Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
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);
|
|
}
|
|
} |