Aantioch_Infernum/_module/nss/_golemstats.nss
2023-08-31 20:34:52 -05:00

82 lines
3.3 KiB
Plaintext

void main()
{
effect eEffect = GetFirstEffect(OBJECT_SELF);
while(GetIsEffectValid(eEffect))
{
RemoveEffect(OBJECT_SELF, eEffect);
eEffect = GetNextEffect(OBJECT_SELF);
}
int nGolemHench = GetStringLeft(GetTag(OBJECT_SELF), 6) == "GOLEMH" ? TRUE : FALSE;
if(nGolemHench)
{
int iHenchHD = GetHitDice(OBJECT_SELF);
int iDeflection = iHenchHD / 2;
int iAbility = iHenchHD / 4;
effect eAC = EffectACIncrease(iDeflection, AC_DEFLECTION_BONUS, AC_VS_DAMAGE_TYPE_ALL);
eAC = ExtraordinaryEffect(eAC);
eAC = UnyieldingEffect(eAC);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAC, OBJECT_SELF);
effect eSL = EffectDamageResistance(DAMAGE_TYPE_SLASHING, iDeflection, 0);
eSL = ExtraordinaryEffect(eSL);
eSL = UnyieldingEffect(eSL);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSL, OBJECT_SELF);
effect eBL = EffectDamageResistance(DAMAGE_TYPE_BLUDGEONING, iDeflection, 0);
eBL = ExtraordinaryEffect(eBL);
eBL = UnyieldingEffect(eBL);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBL, OBJECT_SELF);
effect eDR = EffectDamageResistance(DAMAGE_TYPE_PIERCING, iDeflection, 0);
eDR = ExtraordinaryEffect(eDR);
eDR = UnyieldingEffect(eDR);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDR, OBJECT_SELF);
effect eSTR = EffectAbilityIncrease(ABILITY_STRENGTH, iAbility);
eSTR = ExtraordinaryEffect(eSTR);
eSTR = UnyieldingEffect(eSTR);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSTR, OBJECT_SELF);
effect eCON = EffectAbilityIncrease(ABILITY_CONSTITUTION, iAbility);
eCON = ExtraordinaryEffect(eCON);
eCON = UnyieldingEffect(eCON);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eCON, OBJECT_SELF);
effect eDEX = EffectAbilityIncrease(ABILITY_DEXTERITY, iAbility);
eDEX = ExtraordinaryEffect(eDEX);
eDEX = UnyieldingEffect(eDEX);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDEX, OBJECT_SELF);
effect eWIS = EffectAbilityIncrease(ABILITY_WISDOM, iAbility);
eWIS = ExtraordinaryEffect(eWIS);
eWIS = UnyieldingEffect(eWIS);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eWIS, OBJECT_SELF);
effect eINT = EffectAbilityIncrease(ABILITY_INTELLIGENCE, iAbility);
eINT = ExtraordinaryEffect(eINT);
eINT = UnyieldingEffect(eINT);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eINT, OBJECT_SELF);
effect eCHA = EffectAbilityIncrease(ABILITY_CHARISMA, iAbility);
eCHA = ExtraordinaryEffect(eCHA);
eCHA = UnyieldingEffect(eCHA);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eCHA, OBJECT_SELF);
eSTR = TagEffect(eSTR, "BUFFS");
eCHA = TagEffect(eCHA, "BUFFS");
eDEX = TagEffect(eDEX, "BUFFS");
eCON = TagEffect(eCON, "BUFFS");
eWIS = TagEffect(eWIS, "BUFFS");
eINT = TagEffect(eINT, "BUFFS");
eAC = TagEffect(eAC, "BUFFS");
eSL = TagEffect(eSL, "BUFFS");
eBL = TagEffect(eBL, "BUFFS");
eDR = TagEffect(eDR, "BUFFS");
}
}