forked from Jaysyn/PRC8
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.
70 lines
2.4 KiB
Plaintext
70 lines
2.4 KiB
Plaintext
#include "prc_inc_clsfunc"
|
|
#include "prc_inc_unarmed"
|
|
#include "prc_ip_srcost"
|
|
|
|
void SpellResistancePC(object oPC, object oSkin, int iLevel)
|
|
{
|
|
//15 +lvl
|
|
if (iLevel % 2 == 0)
|
|
{
|
|
iLevel = (iLevel-10)/2;
|
|
iLevel = (iLevel>IP_CONST_SPELLRESISTANCEBONUS_60) ? IP_CONST_SPELLRESISTANCEBONUS_60 :iLevel ;
|
|
}
|
|
else
|
|
{
|
|
iLevel = iLevel/2+21;
|
|
iLevel = (iLevel>IP_CONST_SPELLRESISTANCEBONUS_61) ? IP_CONST_SPELLRESISTANCEBONUS_61 :iLevel ;
|
|
|
|
}
|
|
|
|
if (GetLocalInt(oSkin,"IniSR")==iLevel) return;
|
|
RemoveSpecificProperty(oSkin,ITEM_PROPERTY_SPELL_RESISTANCE,-1,IP_CONST_ONHIT_SAVEDC_26,GetLocalInt(oSkin,"IniSR"));
|
|
AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyBonusSpellResistance(iLevel),oSkin);
|
|
SetLocalInt(oSkin,"IniSR",iLevel);
|
|
}
|
|
|
|
void StunStrike(object oPC,object oSkin)
|
|
{
|
|
if (GetLocalInt(oSkin,"IniStunStrk")) return;
|
|
|
|
object oWeapL = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L,oPC);
|
|
|
|
// fixed to work with new unarmed inc
|
|
if(!GetIsPRCCreatureWeapon(oWeapL))
|
|
return;
|
|
|
|
RemoveSpecificProperty(oWeapL,ITEM_PROPERTY_ON_HIT_PROPERTIES,IP_CONST_ONHIT_STUN,IP_CONST_ONHIT_SAVEDC_26,IPRP_CONST_ONHIT_DURATION_5_PERCENT_1_ROUNDS);
|
|
AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyOnHitProps(IP_CONST_ONHIT_STUN,IP_CONST_ONHIT_SAVEDC_26,IPRP_CONST_ONHIT_DURATION_5_PERCENT_1_ROUNDS),oWeapL);
|
|
SetLocalInt(oSkin,"IniStunStrk",1);
|
|
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
|
|
// We cannot add stuff to the creature weapons until they have been evaluated,
|
|
// so we request their evaluation, and wait for it to happen.
|
|
if(!GetLocalInt(OBJECT_SELF, UNARMED_CALLBACK))
|
|
{
|
|
//Evaluate The Unarmed Strike Feats
|
|
//UnarmedFeats(oPC);
|
|
SetLocalInt(oPC, CALL_UNARMED_FEATS, TRUE);
|
|
|
|
//Evaluate Fists
|
|
//UnarmedFists(oPC);
|
|
SetLocalInt(oPC, CALL_UNARMED_FISTS, TRUE);
|
|
|
|
// Request callback once the feat & fist evaluation is done
|
|
AddEventScript(oPC, CALLBACKHOOK_UNARMED, "prc_initdraconic", FALSE, FALSE);
|
|
}
|
|
else
|
|
{
|
|
//Declare main variables.
|
|
object oSkin = GetPCSkin(oPC);
|
|
object oWeapL = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC);
|
|
|
|
if (GetHasFeat(FEAT_INIDR_SPELLRESISTANCE,oPC)) SpellResistancePC(oPC,oSkin,GetLevelByClass(CLASS_TYPE_INITIATE_DRACONIC,oPC)+15);
|
|
if (GetHasFeat(FEAT_INIDR_STUNSTRIKE,oPC)) StunStrike(oPC,oSkin);
|
|
}
|
|
} |