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.
85 lines
2.3 KiB
Plaintext
85 lines
2.3 KiB
Plaintext
/*
|
|
----------------
|
|
Pearl of Black Doubt
|
|
|
|
tob_dmnd_prlbdt
|
|
----------------
|
|
|
|
15/07/07 by Stratovarius
|
|
*/ /** @file
|
|
|
|
Pearl of Black Doubt
|
|
|
|
Diamond Mind (Stance)
|
|
Level: Swordsage 3, Warmage 3
|
|
Prerequisite: One Diamond Mind maneuver.
|
|
Initiation Action: 1 Swift Action
|
|
Range: Personal
|
|
Target: You
|
|
Duration: Stance
|
|
|
|
With every miss, your opponents become more uncertain, their doubt growing
|
|
like an irritating pearl in the mouth of a helpless oyster.
|
|
|
|
Whenever a foe swings and misses you, you gain +2 AC.
|
|
*/
|
|
|
|
void PoBDACRecursive(object oTarget);
|
|
|
|
#include "tob_inc_move"
|
|
#include "tob_movehook"
|
|
////#include "prc_alterations"
|
|
|
|
void PoBDACRecursive(object oTarget)
|
|
{
|
|
// No need to do this if the spell doesn't exist
|
|
if(GetHasSpellEffect(MOVE_DM_PEARL_BLACK_DOUBT, oTarget))
|
|
{ // No bonuses when not in combat
|
|
if (GetIsInCombat(oTarget))
|
|
{
|
|
int nBonus = GetLocalInt(oTarget, "PearlOfBlackDoubtBonus");
|
|
nBonus += 2;
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ExtraordinaryEffect(EffectACIncrease(nBonus)), oTarget, 1.01);
|
|
SetLocalInt(oTarget, "PearlOfBlackDoubtBonus", nBonus);
|
|
}
|
|
DelayCommand(1.0, PoBDACRecursive(oTarget));
|
|
}
|
|
|
|
}
|
|
|
|
// All this one does is zero out the boost every six seconds.
|
|
void PoBDZeroRecursive(object oTarget)
|
|
{
|
|
if(GetHasSpellEffect(MOVE_DM_PEARL_BLACK_DOUBT, oTarget))
|
|
{
|
|
DeleteLocalInt(oTarget, "PearlOfBlackDoubtBonus");
|
|
DelayCommand(6.0, PoBDZeroRecursive(oTarget));
|
|
}
|
|
}
|
|
|
|
void main()
|
|
{
|
|
if (!PreManeuverCastCode())
|
|
{
|
|
// If code within the PreManeuverCastCode (i.e. UMD) reports FALSE, do not run this spell
|
|
return;
|
|
}
|
|
|
|
// End of Spell Cast Hook
|
|
|
|
object oInitiator = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
struct maneuver move = EvaluateManeuver(oInitiator, oTarget);
|
|
|
|
if(move.bCanManeuver)
|
|
{
|
|
object oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oInitiator);
|
|
// Add the OnHit
|
|
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
|
effect eDur = EffectVisualEffect(VFX_DUR_BLUESHIELDPROTECT);
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, ExtraordinaryEffect(eDur), oTarget, 9999.0);
|
|
|
|
|
|
}
|
|
} |