83 lines
3.0 KiB
Plaintext
83 lines
3.0 KiB
Plaintext
//::///////////////////////////////////////////////
|
||
//:: Talon of Tiamat
|
||
//:: prc_talontiamat.nss
|
||
//::///////////////////////////////////////////////
|
||
/*
|
||
Handles the passive bonuses for Talons of Tiamat
|
||
*/
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Fox
|
||
//:: Created On: Nov 22, 2007
|
||
//:://////////////////////////////////////////////
|
||
|
||
|
||
#include "prc_alterations"
|
||
|
||
void main()
|
||
{
|
||
object oPC = OBJECT_SELF;
|
||
object oSkin = GetPCSkin(oPC);
|
||
int nClass = GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oPC);
|
||
|
||
//Keen senses: Low light at 4, Darkvision at 8
|
||
if(nClass > 3)
|
||
IPSafeAddItemProperty(oSkin, ItemPropertyBonusFeat(IP_CONST_FEAT_LOWLIGHT_VISION), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||
if(nClass > 7)
|
||
IPSafeAddItemProperty(oSkin, ItemPropertyDarkvision(), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||
|
||
// Voice of the Dragon
|
||
if (nClass >= 2)
|
||
{
|
||
int nBonus = 2 * ((nClass - 1) / 4); // +2 at 2–5, +4 at 6–9, +6 at 10–13, etc.
|
||
SetCompositeBonus(oSkin, "ToT_Bluff", nBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_BLUFF);
|
||
SetCompositeBonus(oSkin, "ToT_Intim", nBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_INTIMIDATE);
|
||
}
|
||
|
||
/* //Voice of the Dragon
|
||
switch(nClass)
|
||
{
|
||
case 2:
|
||
case 3:
|
||
case 4:
|
||
case 5:
|
||
SetCompositeBonus(oSkin, "ToT_Bluff", 2, ITEM_PROPERTY_SKILL_BONUS, SKILL_BLUFF);
|
||
SetCompositeBonus(oSkin, "ToT_Intim", 2, ITEM_PROPERTY_SKILL_BONUS, SKILL_INTIMIDATE); break;
|
||
case 6:
|
||
case 7:
|
||
case 8:
|
||
case 9:
|
||
SetCompositeBonus(oSkin, "ToT_Bluff", 4, ITEM_PROPERTY_SKILL_BONUS, SKILL_BLUFF);
|
||
SetCompositeBonus(oSkin, "ToT_Intim", 4, ITEM_PROPERTY_SKILL_BONUS, SKILL_INTIMIDATE); break;
|
||
case 10:
|
||
SetCompositeBonus(oSkin, "ToT_Bluff", 6, ITEM_PROPERTY_SKILL_BONUS, SKILL_BLUFF);
|
||
SetCompositeBonus(oSkin, "ToT_Intim", 6, ITEM_PROPERTY_SKILL_BONUS, SKILL_INTIMIDATE); break;
|
||
default: break;
|
||
} */
|
||
|
||
//Immunities
|
||
if(GetHasFeat(FEAT_TOT_FIRE_IMMUNITY, oPC))
|
||
{
|
||
IPSafeAddItemProperty(oSkin,
|
||
ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGEIMMUNITY_100_PERCENT),
|
||
0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
}
|
||
else if(GetHasFeat(FEAT_TOT_COLD_IMMUNITY, oPC))
|
||
{
|
||
IPSafeAddItemProperty(oSkin,
|
||
ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_COLD, IP_CONST_DAMAGEIMMUNITY_100_PERCENT),
|
||
0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
}
|
||
else if(GetHasFeat(FEAT_TOT_ACID_IMMUNITY, oPC))
|
||
{
|
||
IPSafeAddItemProperty(oSkin,
|
||
ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ACID, IP_CONST_DAMAGEIMMUNITY_100_PERCENT),
|
||
0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
}
|
||
else if(GetHasFeat(FEAT_TOT_ELEC_IMMUNITY, oPC))
|
||
{
|
||
IPSafeAddItemProperty(oSkin,
|
||
ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ELECTRICAL, IP_CONST_DAMAGEIMMUNITY_100_PERCENT),
|
||
0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
}
|
||
}
|