UW2_PRC8/_module/nss/boom.nss
Jaysyn904 5197ad9a4d Initial upload
Initial upload
2023-09-25 20:24:01 -04:00

44 lines
1.1 KiB
Plaintext

void main()
{
object dam = GetLastDamager();
if (!GetIsPC(dam)){
return;}
string dam2 = GetTag(dam);
if (dam == OBJECT_SELF){dam2 = "self";}
if (dam2 == "boom001"){
return;
}
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 );
}