42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
|
|
||
|
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);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|