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.
117 lines
5.1 KiB
Plaintext
117 lines
5.1 KiB
Plaintext
//////////////////////////////////////////////////
|
|
// Girallon Windmill Flesh Rip
|
|
// tob_tgcw_girwfr.nss
|
|
// Tenjac 10/10/07
|
|
//////////////////////////////////////////////////
|
|
/** @file Girallon Windmill Flesh Rip
|
|
Tiger Claw (Boost)
|
|
Level: Swordsage 8, warblade 8
|
|
Prerequisite: Three Tiger Claw maneuvers
|
|
Inititation Action: 1 swift action
|
|
Range: Melee attack
|
|
Target: One or more creatures
|
|
Duration: 1 round
|
|
|
|
Windmilling your arms in a furious blur, you strike your perplexed enemy from two
|
|
directions at once, rending his flesh with each strike.
|
|
|
|
Each of your attacks is precisely timed to maximize the carnage it inflicts. You must be wielding
|
|
two or more weapons to initiate this maneuver. As you hack into your opponent, you use your weapons
|
|
together to murderous effect. With a cruel twist of your blade, you widen the wounds you cause with
|
|
each successive strike.
|
|
|
|
You must initiate this maneuver before making any attacks in the current round. If you strike an
|
|
opponent multiple times during your turn, you also deal rend damage. This damage is based on the
|
|
number of times you strike your opponent during your turn (see the table below). Determine the
|
|
rend damage dealt immediately after you make your last attack for your turn.
|
|
|
|
If you attack multiple opponents during your turn, you gain this extra damage against each of them.
|
|
A creature takes rend damage based on the number of attakcs that hit it, not the number of successful
|
|
attacks you make. For example, if you hit a fire giant three times and an evil cleric twice during
|
|
your turn, the fire giant takes rend damage for three attacks and the cleric takes rend damage for
|
|
two attacks.
|
|
|
|
Successful Attacks Rend Damage
|
|
|
|
2 8d6
|
|
3 10d6
|
|
4 12d6
|
|
5 14d6
|
|
6 16d6
|
|
7 18d6
|
|
8+ 20d6
|
|
*/
|
|
|
|
void RendDamage(object oInitiator, int nDamType);
|
|
|
|
#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)
|
|
{
|
|
object oWeap1 = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oInitiator);
|
|
object oWeap2 = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oInitiator);
|
|
|
|
//If using 2 weapons
|
|
if(IPGetIsMeleeWeapon(oWeap1) && IPGetIsMeleeWeapon(oWeap2))
|
|
{
|
|
//Add spellhook
|
|
itemproperty ipHook = ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1);
|
|
|
|
IPSafeAddItemProperty(oWeap1, ipHook, RoundsToSeconds(1));
|
|
IPSafeAddItemProperty(oWeap2, ipHook, RoundsToSeconds(1));
|
|
|
|
AddEventScript(oWeap1, EVENT_ITEM_ONHIT, "tob_event_girwfr", TRUE, FALSE);
|
|
AddEventScript(oWeap2, EVENT_ITEM_ONHIT, "tob_event_girwfr", TRUE, FALSE);
|
|
|
|
DelayCommand(RoundsToSeconds(1), RendDamage(oInitiator, GetWeaponDamageType(oWeap1)));
|
|
|
|
DelayCommand(RoundsToSeconds(1), RemoveEventScript(oWeap1, EVENT_ITEM_ONHIT, "tob_event_girwfr", TRUE, TRUE));
|
|
DelayCommand(RoundsToSeconds(1), RemoveEventScript(oWeap2, EVENT_ITEM_ONHIT, "tob_event_girwfr", TRUE, TRUE));
|
|
}
|
|
}
|
|
}
|
|
|
|
void RendDamage(object oInitiator, int nDamType)
|
|
{
|
|
location lLoc = GetLocation(oInitiator);
|
|
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(100.0), lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
|
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
int nHits = GetLocalInt(oTarget, "TOB_GIR_WINDMILL_FR");
|
|
|
|
if(nHits > 1)
|
|
{
|
|
int nDam;
|
|
|
|
if(nHits == 2) nDam = d6(8);
|
|
else if(nHits == 3) nDam = d6(10);
|
|
else if(nHits == 4) nDam = d6(12);
|
|
else if(nHits == 5) nDam = d6(14);
|
|
else if(nHits == 6) nDam = d6(16);
|
|
else if(nHits == 7) nDam = d6(18);
|
|
else nDam = d6(20);
|
|
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDam, nDamType), oTarget);
|
|
}
|
|
|
|
DeleteLocalInt(oTarget, "TOB_GIR_WINDMILL_FR");
|
|
oTarget = MyNextObjectInShape(SHAPE_SPHERE, FeetToMeters(100.0), lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
} |