PoA_PRC8/_module/nss/eq_immortalcrown.nss

151 lines
4.3 KiB
Plaintext
Raw Permalink Normal View History

2022-10-07 14:20:31 -04:00
#include "x2_inc_switches"
#include "prc_class_const"
2022-10-07 14:20:31 -04:00
void main()
{
object oPC = GetPCItemLastEquippedBy();
object oItem = GetPCItemLastEquipped();
2022-10-07 14:20:31 -04:00
if (!GetIsPC(oPC)) return;
2022-10-07 14:20:31 -04:00
//:: If they have the spell Clarity On take off the crown.
if (GetHasSpellEffect(SPELL_CLARITY)== TRUE)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
2022-10-07 14:20:31 -04:00
//:: Classes with Immunity to Mind Effects take off the crown and stop script.
if ((GetLevelByClass(CLASS_TYPE_MONK, oPC) > 19 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BINDER, oPC) > 18 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BAELNORN, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_LICH, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_PLANT, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_UNDEAD, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BLIGHTLORD, oPC) > 9 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oPC) > 19 == TRUE))
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
2022-10-07 14:20:31 -04:00
//:: If they have mind immunity take off the crown and stop script.
if (GetIsImmune(oPC, IMMUNITY_TYPE_MIND_SPELLS)== TRUE)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
object oTarget = oPC;
2022-10-07 14:20:31 -04:00
if (GetItemPossessedBy(oPC, "secret2")== OBJECT_INVALID)
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectConfused(), oTarget);
}
effect eEffect;
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_POSITIVE);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_NEGATIVE);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectRegenerate(65, 6.0f);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectACIncrease(40);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectAttackIncrease(20);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectTemporaryHitpoints(300);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectInvisibility(EFFECT_TYPE_INVISIBILITY);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectConcealment(60);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectSpellResistanceIncrease(50);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectSavingThrowIncrease(SAVING_THROW_ALL, 12, SAVING_THROW_TYPE_ALL);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 90);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, 90);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 90);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 90);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectImmunity(IMMUNITY_TYPE_CRITICAL_HIT);
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
eEffect = EffectTrueSeeing();
2022-10-07 14:20:31 -04:00
eEffect = SupernaturalEffect(eEffect);
2022-10-07 14:20:31 -04:00
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
2022-10-07 14:20:31 -04:00
}