Further file organization
Further file organization
This commit is contained in:
54
nwn/nwnprc/trunk/newspellbook/moi_mld_drgnfrth.nss
Normal file
54
nwn/nwnprc/trunk/newspellbook/moi_mld_drgnfrth.nss
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
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"));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user