37 lines
991 B
Plaintext
37 lines
991 B
Plaintext
|
|
void main()
|
|
{
|
|
|
|
float fDamageRange = 11.0; // Range of FireDamage
|
|
int iMinDamage = 20; // Minimal Firedamage
|
|
int iAddDamage = d6(8); // Additional (random) Damage
|
|
// TotalDamage to an object is
|
|
// iMinDamage + iAddDamage
|
|
|
|
|
|
|
|
// Do the nice Fire Explosion
|
|
|
|
effect eExpl = EffectVisualEffect(VFX_FNF_FIREBALL);
|
|
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT,eExpl,OBJECT_SELF);
|
|
|
|
// 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_FIRE, DAMAGE_POWER_PLUS_TWO);
|
|
if (GetIsPC(o)){
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT,eFireDamage,o);
|
|
}
|
|
o = GetNextObjectInShape(SHAPE_SPHERE,fDamageRange,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_ALL);
|
|
|
|
}
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(150, DAMAGE_TYPE_FIRE, DAMAGE_POWER_PLUS_FIVE), OBJECT_SELF );
|
|
}
|
|
|
|
|