PRC8/nwn/nwnprc/trunk/newspellbook/tob_dmnd_avlbld.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

77 lines
2.8 KiB
Plaintext

//////////////////////////////////////////////////
// Avalanche of Blades
// tob_dmnd_avlvld.nss
// Tenjac 9/28/07
//////////////////////////////////////////////////
/** @file Avalanche of Blades
Diamond Mind (Strike)
Level: Swordsage 7, warblade 7
Prerequisite: Three Diamond Mind maneuvers
Initiation Action: 1 full-round action
Range: Melee attack
Target: One creature
In a flashing blur of steel, you unleash a devastating volley of deadly
attacks against your enemy, striking it again and again.
You lash at an opponent. If your attack hits, you can repeat the same
attack again and again at nearly superhuman speed, allowing you to score
multiple hits in a blur of activity. Unfortunately, as soon as an attack
misses, your tempo breaks, and this delicate maneuver crumbles into a
flurry of wasted motion.
As part of this maneuver, you make a single melee attack against an
opponent. If that attack hits, resolve your damage as normal. You can then
make another attack against that foe with a -4 penalty on your attack roll.
If that attack hits, you can make another attack against that opponent with
a -8 penalty. You continue to make additional attacks, each one with an
additional -4 penalty, until you miss or your opponent is reduced to -1 hp
or fewer. You must direct all of these attacks at a single foe.
*/
void Owieowieowowow(object oInitiator, object oTarget, int nHit, int nPenalty);
#include "tob_inc_move"
#include "tob_movehook"
////#include "prc_alterations"
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)
{
int nHit = 1;
int nPenalty = 0;
DelayCommand(0.1, Owieowieowowow(oInitiator, oTarget, nHit, nPenalty));
}
}
void Owieowieowowow(object oInitiator, object oTarget, int nHit, int nPenalty)
{
if (GetLocalInt(oInitiator, "SupernalAttack")) nPenalty += 1;
if(nHit == 1)
{
effect eNone;
PerformAttack(oTarget, oInitiator, eNone, 0.0, nPenalty, 0, 0, "Avalanche of Blades Hit", "Avalanche of Blades Miss");
if (GetLocalInt(oTarget, "PRCCombat_StruckByAttack")) nHit = 1;
else
nHit = 0;
nPenalty -= 4;
// Make sure the bonus doesn't get passed around
if (GetLocalInt(oInitiator, "SupernalAttack")) nPenalty -= 1;
//Again! Again!
DelayCommand(0.1, Owieowieowowow(oInitiator, oTarget, nHit, nPenalty));
}
}