PoA_PRC8/_module/nss/expstatuedmged.nss

42 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

2022-10-07 14:20:31 -04:00
void main()
{
float fDamageRange = 17.0; // Range of FireDamage
int iMinDamage = 400; // Minimal Firedamage
int iAddDamage = d20(8); // Additional (random) Damage
// TotalDamage to an object is
// iMinDamage + iAddDamage
// Do the nice Fire Explosion
effect eExpl = EffectVisualEffect(VFX_FNF_STRIKE_HOLY);
effect eExpl2 = EffectVisualEffect(VFX_FNF_DISPEL_DISJUNCTION);
effect eSmoke = EffectVisualEffect(VFX_FNF_SMOKE_PUFF);
effect eBUMP = EffectVisualEffect(VFX_FNF_SCREEN_BUMP);
DelayCommand(0.2,ApplyEffectToObject(DURATION_TYPE_INSTANT,eExpl,OBJECT_SELF));
DelayCommand(0.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,eBUMP,OBJECT_SELF));
DelayCommand(0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,eSmoke,OBJECT_SELF));
DelayCommand(1.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eExpl2,OBJECT_SELF, 5.0));
// Do Damage to all Objects in a range defined by fDamageRange
object o;
effect eFireDamage;
o = GetFirstObjectInShape(SHAPE_SPHERE,fDamageRange,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_ALL);
while(GetIsObjectValid(o))
{
eFireDamage = EffectDamage(iMinDamage + iAddDamage,DAMAGE_TYPE_DIVINE, DAMAGE_POWER_PLUS_FIVE);
DelayCommand(0.9,ApplyEffectToObject(DURATION_TYPE_INSTANT,eFireDamage,o));
o = GetNextObjectInShape(SHAPE_SPHERE,fDamageRange,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_ALL);
}
}