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.
69 lines
2.3 KiB
Plaintext
69 lines
2.3 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Warmind
|
|
//:: psi_warmind.nss
|
|
//:://////////////////////////////////////////////
|
|
//:: Applies the passive bonuses from Warmind
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Stratovarius
|
|
//:: Created On: Dec 15, 2005
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_alterations"
|
|
#include "psi_inc_onhit"
|
|
|
|
void RemoveSweepingStrike(object oPC, object oWeap)
|
|
{
|
|
if (DEBUG) FloatingTextStringOnCreature("Remove Sweeping Strike is run", oPC);
|
|
|
|
RemoveSpecificProperty(oWeap,ITEM_PROPERTY_ONHITCASTSPELL,IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER,0);
|
|
DeleteLocalInt(oWeap, "SweepingStrike");
|
|
}
|
|
|
|
void AddSweepingStrike(object oPC, object oWeap)
|
|
{
|
|
if(GetLocalInt(oWeap, "SweepingStrike"))
|
|
return;
|
|
|
|
//Sweeping Strike only works on melee weapons
|
|
if(!IPGetIsMeleeWeapon(oWeap))
|
|
return;
|
|
|
|
if(DEBUG) FloatingTextStringOnCreature("Add Sweeping Strike is run", oPC);
|
|
|
|
RemoveSweepingStrike(oPC, oWeap);
|
|
DelayCommand(0.1, IPSafeAddItemProperty(oWeap, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE));
|
|
SetLocalInt(oWeap, "SweepingStrike", TRUE);
|
|
}
|
|
|
|
void EnduringBody(object oPC, object oSkin, int nLevel)
|
|
{
|
|
if(GetLocalInt(oSkin, "EnduringBody"))
|
|
return;
|
|
|
|
int nDR = nLevel >= 9 ? IP_CONST_DAMAGERESIST_3:
|
|
nLevel >= 6 ? IP_CONST_DAMAGERESIST_2:
|
|
IP_CONST_DAMAGERESIST_1;
|
|
|
|
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_PIERCING, nDR), oSkin);
|
|
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SLASHING, nDR), oSkin);
|
|
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING, nDR), oSkin);
|
|
SetLocalInt(oSkin, "EnduringBody", TRUE);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oSkin = GetPCSkin(oPC);
|
|
int nWar = GetLevelByClass(CLASS_TYPE_WARMIND, oPC);
|
|
object oWeap = GetItemLastEquipped();
|
|
object oUnequip = GetItemLastUnequipped();
|
|
int iEquip = GetLocalInt(oPC, "ONEQUIP");
|
|
|
|
if(nWar >= 3) EnduringBody(oPC, oSkin, nWar);
|
|
if(nWar >= 5)
|
|
{
|
|
if(iEquip == 1) RemoveSweepingStrike(oPC, oUnequip);
|
|
if(iEquip == 2) AddSweepingStrike(oPC, oWeap);
|
|
}
|
|
}
|