forked from Jaysyn/PRC8
Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
75 lines
3.1 KiB
Plaintext
75 lines
3.1 KiB
Plaintext
//:://////////////////////////////////////////////
|
|
//:: Factotum Cunning X abilities
|
|
//:: prc_fact_cunning
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
@author Stratovarius - 2019.12.21
|
|
*/
|
|
|
|
#include "prc_inc_factotum"
|
|
#include "inc_dynconv"
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
int nSpellID = PRCGetSpellId();
|
|
int nBonus = GetAbilityModifier(ABILITY_INTELLIGENCE, oPC);
|
|
int nClass = GetLevelByClass(CLASS_TYPE_FACTOTUM, oPC);
|
|
|
|
if(GetHasSpellEffect(nSpellID, oPC))
|
|
{
|
|
FloatingTextStringOnCreature("You are already under the effect of this ability!", oPC, FALSE);
|
|
return;
|
|
}
|
|
|
|
if (nSpellID == SPELL_CUNNING_INSIGHT_ATTACK && ExpendInspiration(oPC, 1))
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackIncrease(nBonus), oPC, 6.0);
|
|
else if (nSpellID == SPELL_CUNNING_INSIGHT_DAMAGE && ExpendInspiration(oPC, 1))
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDamageIncrease(IPGetDamageBonusConstantFromNumber(nBonus), DAMAGE_TYPE_BASE_WEAPON), oPC, 6.0);
|
|
else if (nSpellID == SPELL_CUNNING_INSIGHT_SAVES && ExpendInspiration(oPC, 1))
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSavingThrowIncrease(SAVING_THROW_ALL, nBonus), oPC, 6.0);
|
|
else if (nSpellID == SPELL_CUNNING_DEFENSE && 16 > nClass) //Once you get Improved Cunning Defense, you can't use this
|
|
{
|
|
if (ExpendInspiration(oPC, 1))
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACIncrease(nBonus, AC_DODGE_BONUS), oPC, 6.0);
|
|
}
|
|
else if (nSpellID == SPELL_CUNNING_STRIKE && ExpendInspiration(oPC, 1))
|
|
{
|
|
SetLocalInt(oPC, "CunningStrike", TRUE);
|
|
ExecuteScript("prc_sneak_att", oPC);
|
|
DelayCommand(5.9, DeleteLocalInt(oPC, "CunningStrike"));
|
|
DelayCommand(6.0, ExecuteScript("prc_sneak_att", oPC));
|
|
}
|
|
else if (nSpellID == SPELL_CUNNING_SURGE && ExpendInspiration(oPC, 3))
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectHaste(), oPC, 6.0);
|
|
else if (nSpellID == SPELL_CUNNING_BREACH && ExpendInspiration(oPC, 2))
|
|
{
|
|
SetLocalInt(oPC, "CunningBreach", TRUE);
|
|
DelayCommand(5.9, DeleteLocalInt(oPC, "CunningBreach"));
|
|
}
|
|
else if (nSpellID == SPELL_CUNNING_DODGE && ExpendInspiration(oPC, 4))
|
|
{
|
|
SetImmortal(oPC, TRUE);
|
|
DelayCommand(5.9, SetImmortal(oPC, FALSE));
|
|
}
|
|
else if (nSpellID == SPELL_OPPORTUNISTIC_PIETY_HEAL)
|
|
{
|
|
if (ExpendInspiration(oPC, 1))
|
|
{
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
if (PRCGetIsAliveCreature(oTarget))
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nBonus + (nClass*2)), oTarget);
|
|
else if (MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nBonus + (nClass*2)), oTarget);
|
|
|
|
DecrementRemainingFeatUses(oPC, FEAT_OPPORTUNISTIC_PIETY_TURN);
|
|
}
|
|
else
|
|
IncrementRemainingFeatUses(oPC, FEAT_OPPORTUNISTIC_PIETY_HEAL);
|
|
}
|
|
else if (nSpellID == SPELL_CUNNING_KNOWLEDGE && ExpendInspiration(oPC, 1))
|
|
{
|
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
|
StartDynamicConversation("prc_fact_sklconv", oPC, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oPC);
|
|
}
|
|
} |