Files
Anphillia_PRC8/_module/nss/it_firebmb.nss
Jaysyn904 28cdb617b3 Initial commit
Adding all of the current content for Anphillia Unlimited.
2024-01-04 07:49:38 -05:00

45 lines
1.5 KiB
Plaintext

void main()
{
float fRadius = RADIUS_SIZE_MEDIUM;
int nDC = 22;
int nDice = 4;
int nTargetVisualFail = VFX_IMP_FLAME_M;
int nTargetVisualSuccess = VFX_IMP_FLAME_S;
int nImpactVisual = VFX_FNF_LOS_NORMAL_20;
location lTargetLocation = GetItemActivatedTargetLocation();
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fRadius,
lTargetLocation, TRUE);
while(oTarget != OBJECT_INVALID)
{
int nSave = ReflexSave(oTarget, nDC, SAVING_THROW_TYPE_FIRE);
int nDamage = d8(nDice);
effect eDamage;
if(nSave == 0)
{
if(GetHasFeat(FEAT_IMPROVED_EVASION, oTarget))
{
nDamage /= 2;
}
eDamage = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
effect eVisual = EffectVisualEffect(nTargetVisualFail);
eDamage = EffectLinkEffects(eVisual, eDamage);
}
else if(nSave == 1 && !GetHasFeat(FEAT_EVASION, oTarget) &&
!GetHasFeat(FEAT_IMPROVED_EVASION, oTarget))
{
eDamage = EffectDamage(nDamage / 2, DAMAGE_TYPE_FIRE);
effect eVisual = EffectVisualEffect(nTargetVisualSuccess);
eDamage = EffectLinkEffects(eVisual, eDamage);
}
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget);
oTarget = GetNextObjectInShape(SHAPE_SPHERE, fRadius,
lTargetLocation, TRUE);
}
effect eVisual = EffectVisualEffect(nImpactVisual);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVisual, lTargetLocation);
}