51 lines
913 B
Plaintext
51 lines
913 B
Plaintext
minefields()
|
|
{
|
|
minefields = getentarray("minefield", "targetname");
|
|
if (minefields.size > 0)
|
|
{
|
|
level._effect["mine_explosion"] = loadfx ("vfx/gameplay/explosions/weap/gre/vfx_exp_gre_dirt_cg");
|
|
}
|
|
|
|
for(i = 0; i < minefields.size; i++)
|
|
{
|
|
minefields[i] thread minefield_think();
|
|
}
|
|
}
|
|
|
|
minefield_think()
|
|
{
|
|
while (1)
|
|
{
|
|
self waittill ("trigger",other);
|
|
|
|
if(isPlayer(other))
|
|
other thread minefield_kill(self);
|
|
}
|
|
}
|
|
|
|
minefield_kill(trigger)
|
|
{
|
|
if(isDefined(self.minefield))
|
|
return;
|
|
|
|
self.minefield = true;
|
|
// self playsound ("minefield_click");
|
|
|
|
wait(.5);
|
|
wait(randomFloat(.5));
|
|
|
|
if(isdefined(self) && self istouching(trigger))
|
|
{
|
|
origin = self getorigin();
|
|
range = 300;
|
|
maxdamage = 2000;
|
|
mindamage = 50;
|
|
|
|
// self playsound("explo_mine");
|
|
// playfx(level._effect["mine_explosion"], origin);
|
|
radiusDamage(origin, range, maxdamage, mindamage);
|
|
}
|
|
|
|
self.minefield = undefined;
|
|
}
|