PRC8_fork/nwn/nwnprc/trunk/scripts/inidra_draggas.nss

55 lines
1.8 KiB
Plaintext
Raw Permalink Normal View History

//::///////////////////////////////////////////////
//:: Dragon Breath Gas Cloud
//:: NW_S1_DragGas
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Calculates the proper damage and DC Save for the
breath weapon based on the HD of the dragon.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: May 9, 2001
//:://////////////////////////////////////////////
const string DRAGBREATHLOCK = "DragonBreathLock";
//modified to use the breath include - Fox
#include "prc_inc_spells"
#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;
}
//Declare major variables
int nDCBoost = 11; //mature adult form
nDCBoost += 7; //adjustment for incorrect Con in shifted form.
int nDamage = 7;
struct breath WeakBreath;
//create the breath - Huge dragon, so 50'
WeakBreath = CreateBreath(OBJECT_SELF, FALSE, 50.0, -1, 10, nDamage, ABILITY_CONSTITUTION, nDCBoost, BREATH_WEAKENING);
//Apply the breath
PRCPlayDragonBattleCry();
ApplyBreath(WeakBreath, GetSpellTargetLocation());
//Apply the recharge lock
SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE);
// Schedule opening the delay lock
float fDelay = RoundsToSeconds(WeakBreath.nRoundsUntilRecharge);
SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(WeakBreath.nRoundsUntilRecharge) + " rounds.");
DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK));
DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now"));
}