forked from Jaysyn/PRC8
Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
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
|
|
}
|