// Call this on the OnDeath event of gas canisters. // When destroyed, gas canisters explode and deal damage to everyone within 5 meters, including PCs. // Also lights targets on fire for a random amount of time. #include "cbt_atk_inc" void main() { object oSelf = OBJECT_SELF; int iCount = 1; object oTarget = GetNearestObject(OBJECT_TYPE_CREATURE, oSelf, iCount); location lLocation = GetLocation(oSelf); object oKiller = GetLastKiller(); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_IMPLOSION), lLocation); while(GetIsObjectValid(oTarget)) { float fDistance = GetDistanceBetweenLocations(GetLocation(oTarget), lLocation); if(fDistance > 6.5 || fDistance == 0.0) break; AssignCommand(oKiller, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(Random(10) + 5, DAMAGE_TYPE_FIRE), oTarget)); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_INFERNO_CHEST), oTarget, 1.0); int bCurrentlyOnFire = GetLocalInt(oTarget, "INCENDIARY_DAMAGE_COUNTER"); SetLocalInt(oTarget, "INCENDIARY_DAMAGE_COUNTER", Random(4) + 1); if(!bCurrentlyOnFire) DelayCommand(1.0, IncendiaryDamage(oTarget, Random(3) + 3)); // Fix the reputation - prevents zombies from bashing gas canisters AdjustReputation(oSelf, oTarget, 100); iCount++; oTarget = GetNearestObject(OBJECT_TYPE_CREATURE, oSelf, iCount); } }