Initial upload.
Adding base PRC 4.19a files to repository.
This commit is contained in:
117
trunk/newspellbook/tob_tgcw_girwfr.nss
Normal file
117
trunk/newspellbook/tob_tgcw_girwfr.nss
Normal file
@@ -0,0 +1,117 @@
|
||||
//////////////////////////////////////////////////
|
||||
// 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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user