Files
PRC8/nwn/nwnprc/trunk/newspellbook/tob_tgcw_bldwtr.nss
Jaysyn904 ce7d550670 2025/12/06 Update
Added Inscribe Epic Runes.
Added Great Intelligence and Inscribe Epic Runes as Runecaster epic bons feats.
Changed Runecaster epic bonus feat progression to 1 every 4 levels past 10th.
Bardic PrCs should be able to take Lingering Song & Extra Music as general feats.
Forsakers can't use psionics, invocations, spellfire, shadowcasting, truenaming, binding, soulmelds or Supernatural Martial Maneuvers.
Fixed elven courtblade / ambidexterity bug.
Added more guardrails to prevent self-damage from onHit spells during PerformAttack().
Updated GetProperTarget()
Removed ableist slur.
RHD casters should work with JPM now.
Reworked Blood in the Water's effect icon.
Fixed Seize Item's VFX.
RHD casters should be able to enter Dragon Disciple.
Sharp Note doesn't step on Dragonfire Inspiration anymore.
2025-12-06 22:55:23 -05:00

153 lines
5.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
----------------
Blood in the Water
tob_tgcw_bldwtr.nss
----------------
27/04/07 by Stratovarius
*/ /** @file
Blood in the Water
Tiger Claw (Stance)
Level: Swordsage 1, Warblade 1
Initiation Action: 1 Swift Action
Range: Personal.
Target: You.
Duration: Stance.
The smell of blood drives you into a fury. As you slash into your foe,
each fresh wound you inflict spurs you onward.
Whenever you successfully critical hit a creature, you gain a +1
Attack and Damage bonus for one minute.
DEV NOTE: This *should* process on undead & constructs
Magic Items and Critical Hits (Dungeon Masters Guide Pg. 222)
Magic Weapons and Critical Hits: Some weapon qualities and some
specific weapons have an extra effect on a critical hit. A flaming
burst weapon, for example, does extra fire damage on a critical hit.
This special effect functions against creatures not subject to
critical hits, such as undead, elementals, and constructs. When
fighting against such creatures, roll for critical hits as you
would against humanoids or any other creature subject to critical
hits. On a successful critical roll, apply the special effect, but
do not multiply the weapons regular damage.
Things in the ToB that work on critical hits specify they do not
work on things that are unaffected by critical hits (i.e., Feral
Death Blow & Flesh Ripper); this one does not.
*/
#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 oItem = IPGetTargetedOrEquippedMeleeWeapon();
// Add the OnHit
IPSafeAddItemProperty(
oItem,
ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1),
9999.0,
X2_IP_ADDPROP_POLICY_KEEP_EXISTING,
FALSE,
FALSE
);
// build stance effects
effect eDur;
effect eTmp;
int nHasEffect = 0;
// --- add harmless anchor so chain persists ---
//eDur = EffectLinkEffects(EffectAttackIncrease(1), EffectAttackDecrease(1));
eDur = EffectIcon(EFFECT_ICON_ATTACK_INCREASE);
nHasEffect = 1;
if (GetHasDefensiveStance(oInitiator, DISCIPLINE_TIGER_CLAW))
{
eTmp = EffectSavingThrowIncrease(SAVING_THROW_ALL, 2, SAVING_THROW_TYPE_ALL);
if (nHasEffect == 0) { eDur = eTmp; nHasEffect = 1; }
else eDur = EffectLinkEffects(eDur, eTmp);
}
if (GetLevelByClass(CLASS_TYPE_BLOODCLAW_MASTER, oInitiator) >= 2)
{
eTmp = EffectMovementSpeedIncrease(33);
if (nHasEffect == 0) { eDur = eTmp; nHasEffect = 1; }
else eDur = EffectLinkEffects(eDur, eTmp);
eTmp = EffectACIncrease(1);
if (nHasEffect == 0) { eDur = eTmp; nHasEffect = 1; }
else eDur = EffectLinkEffects(eDur, eTmp);
}
if (GetLocalInt(oInitiator, "TigerFangSharpClaw"))
{
eTmp = EffectDamageIncrease(DAMAGE_BONUS_1, DAMAGE_TYPE_BASE_WEAPON);
if (nHasEffect == 0) { eDur = eTmp; nHasEffect = 1; }
else eDur = EffectLinkEffects(eDur, eTmp);
}
// apply stance bonuses permanently
if (nHasEffect)
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, ExtraordinaryEffect(eDur), oTarget);
// stance activation VFX, lasts one round only
effect eVFX = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVFX, oTarget, RoundsToSeconds(1));
}
}
/* 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 = IPGetTargetedOrEquippedMeleeWeapon();
// 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;
effect eVFX = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR);
if (GetHasDefensiveStance(oInitiator, DISCIPLINE_TIGER_CLAW))
eDur = EffectLinkEffects(eDur, EffectSavingThrowIncrease(SAVING_THROW_ALL, 2, SAVING_THROW_TYPE_ALL));
if (GetLevelByClass(CLASS_TYPE_BLOODCLAW_MASTER, oInitiator) >= 2)
{
eDur = EffectLinkEffects(eDur, EffectMovementSpeedIncrease(33));
eDur = EffectLinkEffects(eDur, EffectACIncrease(1));
}
if (GetLocalInt(oInitiator, "TigerFangSharpClaw")) eDur = EffectLinkEffects(eDur, EffectDamageIncrease(DAMAGE_BONUS_1, DAMAGE_TYPE_BASE_WEAPON));
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, ExtraordinaryEffect(eDur), oTarget);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVFX, oTarget, 6.0f);
}
} */