lmortar() { lmortars = getentarray("lmortar", "targetname"); if (lmortars.size > 0) { level._effect["explosion"] = loadfx ("fx/impacts/newimps/minefield.efx"); } for(i = 0; i < lmortars.size; i++) { lmortars[i] thread lmortar_think(); } } lmortar_think() { while (1) { self waittill ("trigger",other); if(isPlayer(other)) other thread lmortar_kill(self); } } lmortar_kill(trigger) { if(isDefined(self.flag)) return; self.flag = true; self playsound ("mortar_incoming"); wait(2); wait(randomFloat(.5)); if(self istouching(trigger)) { origin = self getorigin(); range = 300; maxdamage = 2000; mindamage = 50; self playsound ("explo_mine"); playfx ( level._effect["explosion"], origin); radiusDamage(origin, range, maxdamage, mindamage); } self.flag = undefined; }