PRC8/trunk/psionics/psi_diadra_bth.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

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
}