Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
63 lines
2.3 KiB
Plaintext
63 lines
2.3 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Psionic Breath Weapon feats for Diamond Dragon
|
|
//:: psi_diadra_bth.nss
|
|
//::///////////////////////////////////////////////
|
|
/*
|
|
Handles the breath weapon for the Diamond Dragon prestige class.
|
|
Since it acts like a power, it uses the psionics system ro handle
|
|
the costs, and the breath include to resolve the damage.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Fox
|
|
//:: Created On: Nov 14, 2007
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "psi_inc_psifunc"
|
|
#include "prc_inc_spells"
|
|
#include "psi_inc_enrgypow"
|
|
#include "prc_inc_breath"
|
|
|
|
|
|
void main()
|
|
{
|
|
|
|
object oManifester = OBJECT_SELF;
|
|
struct manifestation manif =
|
|
EvaluateDiaDragChannel(oManifester, OBJECT_INVALID,
|
|
PowerAugmentationProfile(1,
|
|
1, PRC_UNLIMITED_AUGMENTATION
|
|
),
|
|
3 //Acts as a Level 3 Power in regards to PP cost
|
|
);
|
|
|
|
if(manif.bCanManifest)
|
|
{
|
|
struct energy_adjustments enAdj =
|
|
EvaluateEnergy(manif.nSpellID, POWER_DIADRAG_BREATH_COLD, POWER_DIADRAG_BREATH_ELEC,
|
|
POWER_DIADRAG_BREATH_FIRE, POWER_DIADRAG_BREATH_SONIC,
|
|
VFX_IMP_FROST_L, VFX_IMP_LIGHTNING_S, VFX_IMP_FLAME_M, VFX_IMP_SONIC);
|
|
|
|
int nDCBoost = GetLevelByClass(CLASS_TYPE_DIAMOND_DRAGON, oManifester) + enAdj.nDCMod;
|
|
int nNumberOfDice = 5 + manif.nTimesAugOptUsed_1;
|
|
location lTarget = PRCGetSpellTargetLocation();
|
|
|
|
//create the breath
|
|
struct breath DiamondBreath =
|
|
CreateBreath(oManifester, FALSE, 30.0, enAdj.nDamageType, 6, nNumberOfDice, ABILITY_INTELLIGENCE, nDCBoost, BREATH_NORMAL, 0);
|
|
|
|
//adjust for electric line
|
|
if(enAdj.nSaveType == SAVING_THROW_TYPE_ELECTRICITY)
|
|
{
|
|
DiamondBreath.bLine = TRUE;
|
|
DiamondBreath.fRange = 60.0;
|
|
}
|
|
|
|
if(enAdj.nSaveType == SAVING_THROW_TYPE_COLD)
|
|
DiamondBreath.nSaveUsed = SAVING_THROW_FORT;
|
|
|
|
//resolve the breath
|
|
ApplyBreath(DiamondBreath, lTarget);
|
|
|
|
}// end if - Successfull manifestation
|
|
}
|