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.
89 lines
3.0 KiB
Plaintext
89 lines
3.0 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Template main script
|
|
//:: FileName prc_templates
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
This deals with maintaining the bonus' that the
|
|
various templates grant.
|
|
|
|
This also applies the bonuses that Weapons of
|
|
Legacy grant to the PC
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Primogenitor, Strat
|
|
//:: Created On: 18/04/06
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_template"
|
|
|
|
void RunTemplateStuff(int nTemplate, object oPC = OBJECT_SELF)
|
|
{
|
|
//run the maintenance script
|
|
string sScript = Get2DACache("templates", "MaintainScript", nTemplate);
|
|
if(DEBUG) DoDebug("Running template maintenance script "+sScript);
|
|
DelayCommand(0.0f, ExecuteScript(sScript, oPC));
|
|
}
|
|
|
|
void ApplyLegacy(int nWoL, object oPC = OBJECT_SELF)
|
|
{
|
|
object oSkin = GetPCSkin(oPC);
|
|
int nLegacy = GetPersistantLocalInt(oPC, "LegacyRitual");
|
|
if (nLegacy == 1)
|
|
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_LEAST_LEGACY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
|
else if (nLegacy == 2)
|
|
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_LESSER_LEGACY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
|
else if (nLegacy == 3)
|
|
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_GREATER_LEGACY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
|
|
|
// Clean up prior effects before applying new ones
|
|
effect eEffect = GetFirstEffect(oPC);
|
|
while(GetIsEffectValid(eEffect))
|
|
{
|
|
// Is it a WOL effect?
|
|
if(GetEffectTag(eEffect) == "WOLEffect")
|
|
RemoveEffect(oPC, eEffect);
|
|
|
|
eEffect = GetNextEffect(oPC);
|
|
}
|
|
|
|
string sScript = Get2DACache("wol_items", "MaintainScript", nWoL);
|
|
if(DEBUG) DoDebug("Running legacy application script "+sScript);
|
|
DelayCommand(0.0f, ExecuteScript(sScript, oPC));
|
|
if (sScript == "wol_m_devious") DelayCommand(0.0f, ExecuteScript("wol_m_vicious", oPC));
|
|
}
|
|
|
|
void main()
|
|
{
|
|
if(DEBUG) DoDebug("Running prc_templates");
|
|
object oPC = OBJECT_SELF;
|
|
|
|
//loop over all templates and see if the player has them
|
|
if(!persistant_array_exists(oPC, "templates"))
|
|
{
|
|
persistant_array_create(oPC, "templates");
|
|
}
|
|
int i;
|
|
int bHasTemplate = FALSE;
|
|
for(i=0; i<persistant_array_get_size(oPC, "templates"); i++)
|
|
{
|
|
int nTemplate = persistant_array_get_int(oPC, "templates", i);
|
|
if(GetHasTemplate(nTemplate, oPC))
|
|
{
|
|
bHasTemplate = TRUE;
|
|
RunTemplateStuff(nTemplate, oPC);
|
|
}
|
|
}
|
|
|
|
// This stores the row number, if any, for the weapon of legacy
|
|
int nWoL = GetPersistantLocalInt(oPC, "LegacyOwner");
|
|
if (nWoL)
|
|
ApplyLegacy(nWoL, oPC);
|
|
|
|
if(bHasTemplate || nWoL)
|
|
{
|
|
if(DEBUG) DoDebug("Re-running prc_feat");
|
|
|
|
//run the main PRC feat system so we trigger any feats we've borrowed
|
|
DelayCommand(0.5, ExecuteScript("prc_feats", oPC));
|
|
}
|
|
} |