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.
82 lines
4.1 KiB
Plaintext
82 lines
4.1 KiB
Plaintext
|
|
#include "prc_compan_inc"
|
|
#include "pnp_shft_poly"
|
|
#include "prc_inc_dragsham"
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oSkin = GetPCSkin(oPC);
|
|
int nTotem = GetLocalInt(oPC, "DragonShamanTotem");
|
|
|
|
if(!nTotem)
|
|
{
|
|
nTotem = GetHasFeat(FEAT_DRAGONSHAMAN_BLACK, oPC) ? FEAT_DRAGONSHAMAN_BLACK:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_BLUE, oPC) ? FEAT_DRAGONSHAMAN_BLUE:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_BRASS, oPC) ? FEAT_DRAGONSHAMAN_BRASS:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_BRONZE, oPC) ? FEAT_DRAGONSHAMAN_BRONZE:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_COPPER, oPC) ? FEAT_DRAGONSHAMAN_COPPER:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_GOLD, oPC) ? FEAT_DRAGONSHAMAN_GOLD:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_GREEN, oPC) ? FEAT_DRAGONSHAMAN_GREEN:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_SILVER, oPC) ? FEAT_DRAGONSHAMAN_SILVER:
|
|
GetHasFeat(FEAT_DRAGONSHAMAN_WHITE, oPC) ? FEAT_DRAGONSHAMAN_WHITE:
|
|
//GetHasFeat(FEAT_DRAGONSHAMAN_RED, oPC) ? FEAT_DRAGONSHAMAN_RED:// no other totems so Red Dragon will be our default
|
|
FEAT_DRAGONSHAMAN_RED;//default value - no other totem dragons found
|
|
|
|
SetLocalInt(oPC, "DragonShamanTotem", nTotem);
|
|
}
|
|
|
|
if(GetHasFeat(FEAT_SHAMANIC_INVOCATION, oPC))
|
|
ExecuteScript("prc_amagsys_gain", oPC);
|
|
|
|
// For Draconic Resolve
|
|
if(GetHasFeat(FEAT_DRAGONSHAMAN_RESOLVE, oPC))
|
|
{
|
|
IPSafeAddItemProperty(oSkin, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_PARALYSIS), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
IPSafeAddItemProperty(oSkin, ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_SLEEP), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
IPSafeAddItemProperty(oSkin, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_FEAR), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
}
|
|
|
|
// For Draconic Armor
|
|
if(GetHasFeat(FEAT_DRAGONSHAMAN_ARMOR, oPC))
|
|
{
|
|
int nBonus = (GetLevelByClass(CLASS_TYPE_DRAGON_SHAMAN, oPC) - 2) / 5;//+1 every 5 levels starting at lvl 7
|
|
SetCompositeBonus(oSkin, "ScaleThicken", nBonus, ITEM_PROPERTY_AC_BONUS);
|
|
}
|
|
|
|
//For Energy Immunity
|
|
if(GetHasFeat(FEAT_DRAGONSHAMAN_ENERGY_IMMUNITY, oPC))
|
|
{
|
|
int nDamageType = GetDragonDamageType(nTotem);
|
|
int iIP;
|
|
|
|
switch(nDamageType)
|
|
{
|
|
case DAMAGE_TYPE_FIRE: iIP = IP_CONST_DAMAGETYPE_FIRE; break;
|
|
case DAMAGE_TYPE_ELECTRICAL: iIP = IP_CONST_DAMAGETYPE_ELECTRICAL; break;
|
|
case DAMAGE_TYPE_ACID: iIP = IP_CONST_DAMAGETYPE_ACID; break;
|
|
case DAMAGE_TYPE_COLD: iIP = IP_CONST_DAMAGETYPE_COLD; break;
|
|
}
|
|
|
|
IPSafeAddItemProperty(oSkin, ItemPropertyDamageImmunity(iIP, IP_CONST_DAMAGEIMMUNITY_100_PERCENT), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
}
|
|
|
|
if(GetHasFeat(FEAT_DRAGONSHAMAN_WINGS, oPC) && !GetPersistantLocalInt(oPC, "DragShamanWingsApplied"))
|
|
{
|
|
int nWingType = nTotem == FEAT_DRAGONSHAMAN_BLACK ? PRC_WING_TYPE_DRAGON_BLACK:
|
|
nTotem == FEAT_DRAGONSHAMAN_BLUE ? PRC_WING_TYPE_DRAGON_BLUE:
|
|
nTotem == FEAT_DRAGONSHAMAN_BRASS ? PRC_WING_TYPE_DRAGON_BRASS:
|
|
nTotem == FEAT_DRAGONSHAMAN_BRONZE ? PRC_WING_TYPE_DRAGON_BRONZE:
|
|
nTotem == FEAT_DRAGONSHAMAN_COPPER ? PRC_WING_TYPE_DRAGON_COPPER:
|
|
nTotem == FEAT_DRAGONSHAMAN_GOLD ? PRC_WING_TYPE_DRAGON_GOLD:
|
|
nTotem == FEAT_DRAGONSHAMAN_GREEN ? PRC_WING_TYPE_DRAGON_GREEN:
|
|
nTotem == FEAT_DRAGONSHAMAN_SILVER ? PRC_WING_TYPE_DRAGON_SILVER:
|
|
nTotem == FEAT_DRAGONSHAMAN_WHITE ? PRC_WING_TYPE_DRAGON_WHITE:
|
|
nTotem == FEAT_DRAGONSHAMAN_RED ? PRC_WING_TYPE_DRAGON_RED:
|
|
CREATURE_WING_TYPE_DRAGON;
|
|
|
|
SetCompositeBonus(oSkin, "WingBonus", 10, ITEM_PROPERTY_SKILL_BONUS, SKILL_JUMP);
|
|
SetCreatureWingType(nWingType, oPC);
|
|
SetPersistantLocalInt(oPC, "DragShamanWingsApplied", TRUE);
|
|
}
|
|
} |