PRC8/nwn/nwnprc/trunk/newspellbook/moi_mld_drgnfrth.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

55 lines
1.8 KiB
Plaintext

/*
1/2/21 by Stratovarius
Dragonfire Mask
Descriptors: Draconic, Fire
Classes: Totemist
Chakra: Brow, throat (totem)
Saving Throw: See text
Chakra Bind (Throat)
A seething ring of fire encircles your neck, and wisps of smoke occasionally burst from the dragon head.
You gain the ability to emit a fiery breath weapon as a standard action. The breath weapon is a 30-foot cone that deals 2d6 points of fire
damage + an extra 1d6 points of fire damage for every point of essentia invested in your dragonfire mask.
Targets are allowed a Reflex save for half damage. After using your breath weapon, you must wait 1d4 rounds before you can use it again.
*/
const string DRAGBREATHLOCK = "DragonBreathLock";
#include "moi_inc_moifunc"
#include "prc_inc_breath"
void main()
{
// Check the dragon breath delay lock
if(GetLocalInt(OBJECT_SELF, DRAGBREATHLOCK))
{
SendMessageToPC(OBJECT_SELF, "You cannot use your breath weapon again so soon");
return;
}
int nDamageDice = 2 + GetEssentiaInvested(OBJECT_SELF, MELD_DRAGONFIRE_MASK);
struct breath FireBreath;
FireBreath = CreateBreath(OBJECT_SELF, FALSE, 30.0, DAMAGE_TYPE_FIRE, 6, nDamageDice, GetMeldshaperDC(OBJECT_SELF, CLASS_TYPE_TOTEMIST, MELD_DRAGONFIRE_MASK), 0);
//Apply the breath
PRCPlayDragonBattleCry();
ApplyBreath(FireBreath, PRCGetSpellTargetLocation());
//Apply the recharge lock
SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE);
// Schedule opening the delay lock
float fDelay = RoundsToSeconds(FireBreath.nRoundsUntilRecharge);
SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(FireBreath.nRoundsUntilRecharge) + " rounds.");
DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK));
DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now"));
}