forked from Jaysyn/PRC8
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"));
|
||
|
}
|
||
|
|
||
|
|