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.
55 lines
1.8 KiB
Plaintext
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"));
|
|
}
|
|
|
|
|