Further file organization
Further file organization
This commit is contained in:
144
nwn/nwnprc/trunk/scripts/prc_taltia_brth.nss
Normal file
144
nwn/nwnprc/trunk/scripts/prc_taltia_brth.nss
Normal file
@@ -0,0 +1,144 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Talon of Tiamat Breath Weapons
|
||||
//:: prc_taltia_brth.nss
|
||||
//::///////////////////////////////////////////////
|
||||
/*
|
||||
Handles the breath weapons of the Talon of Tiamat
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Fox
|
||||
//:: Created On: Nov 22, 2007
|
||||
//:://////////////////////////////////////////////
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_inc_breath"
|
||||
|
||||
//internal function to reset the breath used marker
|
||||
void RechargeBreath(object oPC)
|
||||
{
|
||||
SendMessageToPC(oPC, "Breath recharged!");
|
||||
SetLocalInt(oPC, "UsedTalonBreath", FALSE);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
|
||||
//check to see if 1d4 rounds have passed
|
||||
if(GetLocalInt(oPC, "UsedTalonBreath"))
|
||||
{
|
||||
FloatingTextStringOnCreature("Your breath is still recharging.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
int nSpellID = GetSpellId();
|
||||
int nClass = GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oPC);
|
||||
struct breath TalonBreath;
|
||||
|
||||
//Acid cone
|
||||
if(nSpellID == SPELL_TOT_ACID_LINE)
|
||||
{
|
||||
if(nClass < 3)
|
||||
{
|
||||
FloatingTextStringOnCreature("This breath requires 3rd level Talon of Tiamat.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetLocalInt(oPC, "TalonBreath1"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You have used your Acid Line Breath for the day.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "TalonBreath1", TRUE);
|
||||
TalonBreath = CreateBreath(oPC, TRUE, 60.0, DAMAGE_TYPE_ACID, 4, 8, ABILITY_CONSTITUTION, nClass);
|
||||
}
|
||||
}
|
||||
|
||||
//Acid line
|
||||
if(nSpellID == SPELL_TOT_ACID_CONE)
|
||||
{
|
||||
if(nClass < 5)
|
||||
{
|
||||
FloatingTextStringOnCreature("This breath requires 5th level Talon of Tiamat.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetLocalInt(oPC, "TalonBreath2"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You have used your Acid Cone Breath for the day.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "TalonBreath2", TRUE);
|
||||
TalonBreath = CreateBreath(oPC, FALSE, 30.0, DAMAGE_TYPE_ACID, 6, 10, ABILITY_CONSTITUTION, nClass);
|
||||
}
|
||||
}
|
||||
|
||||
//Cold
|
||||
if(nSpellID == SPELL_TOT_COLD_CONE)
|
||||
{
|
||||
if (GetLocalInt(oPC, "TalonBreath3"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You have used your Cold Breath for the day.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "TalonBreath3", TRUE);
|
||||
TalonBreath = CreateBreath(oPC, FALSE, 30.0, DAMAGE_TYPE_COLD, 6, 3, ABILITY_CONSTITUTION, nClass);
|
||||
}
|
||||
}
|
||||
|
||||
//Electric
|
||||
if(nSpellID == SPELL_TOT_ELEC_LINE)
|
||||
{
|
||||
if(nClass < 7)
|
||||
{
|
||||
FloatingTextStringOnCreature("This breath requires 7th level Talon of Tiamat.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetLocalInt(oPC, "TalonBreath4"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You have used your Lightning Breath for the day.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "TalonBreath4", TRUE);
|
||||
TalonBreath = CreateBreath(oPC, TRUE, 60.0, DAMAGE_TYPE_ELECTRICAL, 8, 12, ABILITY_CONSTITUTION, nClass);
|
||||
}
|
||||
}
|
||||
|
||||
//Fire
|
||||
if(nSpellID == SPELL_TOT_FIRE_CONE)
|
||||
{
|
||||
if(nClass < 9)
|
||||
{
|
||||
FloatingTextStringOnCreature("This breath requires 9th level Talon of Tiamat.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetLocalInt(oPC, "TalonBreath5"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You have used your Fire Breath for the day.", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "TalonBreath5", TRUE);
|
||||
TalonBreath = CreateBreath(oPC, FALSE, 30.0, DAMAGE_TYPE_FIRE, 8, 14, ABILITY_CONSTITUTION, nClass);
|
||||
}
|
||||
}
|
||||
|
||||
//apply the breath to the affected area
|
||||
ApplyBreath(TalonBreath, PRCGetSpellTargetLocation());
|
||||
|
||||
//apply the recharge delay
|
||||
int nBreathDelay = TalonBreath.nRoundsUntilRecharge;
|
||||
SetLocalInt(oPC, "UsedTalonBreath", TRUE);
|
||||
SendMessageToPC(oPC, IntToString(nBreathDelay) + " rounds until you can use your breath.");
|
||||
DelayCommand(RoundsToSeconds(nBreathDelay), RechargeBreath(oPC));
|
||||
}
|
Reference in New Issue
Block a user