PRC8/nwn/nwnprc/trunk/scripts/prc_swiftwing.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
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.
2024-02-11 14:01:05 -05:00

118 lines
5.2 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Swift Wing
//:: prc_swiftwing.nss
//::///////////////////////////////////////////////
/*
Handles the passive bonuses for Swift Wings
*/
//:://////////////////////////////////////////////
//:: Created By: Fox
//:: Created On: Nov 21, 2007
//:://////////////////////////////////////////////
#include "prc_x2_itemprop"
#include "inc_item_props"
void main()
{
object oPC = OBJECT_SELF;
object oSkin = GetPCSkin(oPC);
int nLevel = GetLevelByClass(CLASS_TYPE_SWIFT_WING, oPC);
//Energy Resistance/Immunity
if(nLevel > 3)
{
//Acid
if(GetHasFeat(FEAT_DRAGON_AFFINITY_BK, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_CP, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_GR, oPC))
{
if(nLevel > 8)
IPSafeAddItemProperty(oSkin, ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ACID, IP_CONST_DAMAGEIMMUNITY_100_PERCENT), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
else
IPSafeAddItemProperty(oSkin, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_ACID, IP_CONST_DAMAGERESIST_20), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
}
//Cold
else if(GetHasFeat(FEAT_DRAGON_AFFINITY_CR, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_SR, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_TP, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_WH, oPC))
{
if(nLevel > 8)
IPSafeAddItemProperty(oSkin, ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_COLD, IP_CONST_DAMAGEIMMUNITY_100_PERCENT), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
else
IPSafeAddItemProperty(oSkin, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_COLD, IP_CONST_DAMAGERESIST_20), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
}
//Electric
else if(GetHasFeat(FEAT_DRAGON_AFFINITY_BL, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_BZ, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_SA, oPC))
{
if(nLevel > 8)
IPSafeAddItemProperty(oSkin, ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ELECTRICAL, IP_CONST_DAMAGEIMMUNITY_100_PERCENT), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
else
IPSafeAddItemProperty(oSkin, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_ELECTRICAL, IP_CONST_DAMAGERESIST_20), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
}
//Fire
else if(GetHasFeat(FEAT_DRAGON_AFFINITY_BS, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_GD, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_RD, oPC)
|| GetHasFeat(FEAT_DRAGON_AFFINITY_AM, oPC))
{
if(nLevel > 8)
IPSafeAddItemProperty(oSkin, ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGEIMMUNITY_100_PERCENT), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
else
IPSafeAddItemProperty(oSkin, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGERESIST_20), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
}
//Sonic
else if(GetHasFeat(FEAT_DRAGON_AFFINITY_EM, oPC))
{
if(nLevel > 8)
IPSafeAddItemProperty(oSkin, ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_SONIC, IP_CONST_DAMAGEIMMUNITY_100_PERCENT), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
else
IPSafeAddItemProperty(oSkin, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SONIC, IP_CONST_DAMAGERESIST_20), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
}
}
//Damage Reduction 5/+1 at level 7
if(nLevel > 6)
IPSafeAddItemProperty(oSkin, ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_1, IP_CONST_DAMAGESOAK_5_HP), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
//Draconic Surge bonuses
if(nLevel > 9)
{
if(GetHasFeat(FEAT_DRACONIC_SURGE_STR, oPC))
{
if(!GetPersistantLocalInt(oPC, "NWNX_DragonicSurgeStr"))
SetCompositeBonus(oSkin, "DrSge_STR", 1, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_STR);
}
if(GetHasFeat(FEAT_DRACONIC_SURGE_DEX, oPC))
{
if(!GetPersistantLocalInt(oPC, "NWNX_DragonicSurgeDex"))
SetCompositeBonus(oSkin, "DrSge_DEX", 1, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_DEX);
}
if(GetHasFeat(FEAT_DRACONIC_SURGE_CON, oPC))
{
if(!GetPersistantLocalInt(oPC, "NWNX_DragonicSurgeCon"))
SetCompositeBonus(oSkin, "DrSge_CON", 1, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CON);
}
if(GetHasFeat(FEAT_DRACONIC_SURGE_INT, oPC))
{
if(!GetPersistantLocalInt(oPC, "NWNX_DragonicSurgeInt"))
SetCompositeBonus(oSkin, "DrSge_INT", 1, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT);
}
if(GetHasFeat(FEAT_DRACONIC_SURGE_WIS, oPC))
{
if(!GetPersistantLocalInt(oPC, "NWNX_DragonicSurgeWis"))
SetCompositeBonus(oSkin, "DrSge_WIS", 1, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS);
}
if(GetHasFeat(FEAT_DRACONIC_SURGE_CHA, oPC))
{
if(!GetPersistantLocalInt(oPC, "NWNX_DragonicSurgeCha"))
SetCompositeBonus(oSkin, "DrSge_CHA", 1, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
}
}
}