Files
PRC8/nwn/nwnprc/trunk/newspellbook/moi_mld_krnshrft.nss
Jaysyn904 73ce19db22 2026/02/21 Update
Updated all soulmelds to allow double chakra binds.
Updated Totemist soulmelds to allow double totem binds.
Pearl of Black Doubt should play nice with Vow of Poverty.
2026-02-21 19:25:00 -05:00

75 lines
3.0 KiB
Plaintext

/*
5/1/20 by Stratovarius
Krenshar Mask Totem Bind
Your face becomes one with your krenshar mask, so all its muscles move to match your expressions. A ridge of skin around the edge of the mask quivers when
you grow angry or enter combat, and a growling edge creeps into your voice.
You gain the ability to produce a loud screech (as a standard action) similar to that of a krenshar. In combination with the frightening aspect of the mask,
this shriek causes one creature within 30 feet of you to become frightened for 1 round if it fails a Will save. This is a sonic, mind-affecting fear effect.
*/
//::////////////////////////////////////////////////////////
//::
//:: Updated by: Jaysyn
//:: Updated on: 2026-02-20 19:13:24
//::
//:: Double Totem Bind support added
//:: Double Chakra Bind support added
//::
//::////////////////////////////////////////////////////////
#include "moi_inc_moifunc"
void main()
{
object oMeldshaper = OBJECT_SELF;
int nMeldId = MELD_KRENSHAR_MASK;
// Check if bound to Totem chakra (regular or double)
int nBoundToTotem = FALSE;
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_TOTEM)) == nMeldId ||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_TOTEM)) == nMeldId)
nBoundToTotem = TRUE;
if (!nBoundToTotem) return; // Exit if not bound to Totem
object oTarget = PRCGetSpellTargetObject();
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_KRENSHAR_MASK);
int nMeldshaperLvl = GetMeldshaperLevel(oMeldshaper, CLASS_TYPE_TOTEMIST, MELD_KRENSHAR_MASK);
int nDC = GetMeldshaperDC(oMeldshaper, CLASS_TYPE_TOTEMIST, MELD_KRENSHAR_MASK);
// Exclude the caster from the effects
if (oTarget != oMeldshaper)
{
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oMeldshaper))
{
if (!PRCDoResistSpell(oMeldshaper, oTarget, nMeldshaperLvl))
{
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectFrightened(), oTarget, 6.0);
}
}
}
}
/* void main()
{
object oMeldshaper = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_KRENSHAR_MASK);
int nMeldshaperLvl = GetMeldshaperLevel(oMeldshaper, CLASS_TYPE_TOTEMIST, MELD_KRENSHAR_MASK);
int nDC = GetMeldshaperDC(oMeldshaper, CLASS_TYPE_TOTEMIST, MELD_KRENSHAR_MASK);
//Exclude the caster from the effects
if (oTarget != oMeldshaper)
{
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oMeldshaper))
{
if (!PRCDoResistSpell(oMeldshaper, oTarget, nMeldshaperLvl))
{
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectFrightened(), oTarget, 6.0);
}
}
}
} */