first commit
This commit is contained in:
111
mod_slipgate/source/server/bubbles.qc
Normal file
111
mod_slipgate/source/server/bubbles.qc
Normal file
@@ -0,0 +1,111 @@
|
||||
void() make_bubbles;
|
||||
void() bubble_remove;
|
||||
void() bubble_bob;
|
||||
|
||||
/*QUAKED air_bubbles (0 .5 .8) (-8 -8 -8) (8 8 8)
|
||||
|
||||
testing air bubbles
|
||||
*/
|
||||
|
||||
void() air_bubbles =
|
||||
|
||||
{
|
||||
if (deathmatch)
|
||||
{
|
||||
remove (self);
|
||||
return;
|
||||
}
|
||||
precache_model ("progs/s_bubble.spr");
|
||||
self.nextthink = time + 1;
|
||||
self.think = make_bubbles;
|
||||
};
|
||||
|
||||
void() make_bubbles =
|
||||
{
|
||||
local entity bubble;
|
||||
|
||||
bubble = spawn();
|
||||
setmodel (bubble, "progs/s_bubble.spr");
|
||||
setorigin (bubble, self.origin);
|
||||
bubble.movetype = MOVETYPE_NOCLIP;
|
||||
bubble.solid = SOLID_NOT;
|
||||
bubble.velocity = '0 0 15';
|
||||
bubble.nextthink = time + 0.5;
|
||||
bubble.think = bubble_bob;
|
||||
bubble.touch = bubble_remove;
|
||||
bubble.classname = "bubble";
|
||||
bubble.frame = 0;
|
||||
bubble.cnt = 0;
|
||||
setsize (bubble, '-8 -8 -8', '8 8 8');
|
||||
self.nextthink = time + random() + 0.5;
|
||||
self.think = make_bubbles;
|
||||
};
|
||||
|
||||
void() bubble_split =
|
||||
{
|
||||
local entity bubble;
|
||||
bubble = spawn();
|
||||
setmodel (bubble, "progs/s_bubble.spr");
|
||||
setorigin (bubble, self.origin);
|
||||
bubble.movetype = MOVETYPE_NOCLIP;
|
||||
bubble.solid = SOLID_NOT;
|
||||
bubble.velocity = self.velocity;
|
||||
bubble.nextthink = time + 0.5;
|
||||
bubble.think = bubble_bob;
|
||||
bubble.touch = bubble_remove;
|
||||
bubble.classname = "bubble";
|
||||
bubble.frame = 1;
|
||||
bubble.cnt = 10;
|
||||
setsize (bubble, '-8 -8 -8', '8 8 8');
|
||||
self.frame = 1;
|
||||
self.cnt = 10;
|
||||
if (self.waterlevel != 3)
|
||||
remove (self);
|
||||
};
|
||||
|
||||
void() bubble_remove =
|
||||
{
|
||||
if (other.classname == self.classname)
|
||||
{
|
||||
// dprint ("bump");
|
||||
return;
|
||||
}
|
||||
remove(self);
|
||||
};
|
||||
|
||||
void() bubble_bob =
|
||||
{
|
||||
local float rnd1, rnd2, rnd3;
|
||||
|
||||
self.cnt = self.cnt + 1;
|
||||
if (self.cnt == 4)
|
||||
bubble_split();
|
||||
if (self.cnt == 20)
|
||||
remove(self);
|
||||
|
||||
rnd1 = self.velocity_x + (-10 + (random() * 20));
|
||||
rnd2 = self.velocity_y + (-10 + (random() * 20));
|
||||
rnd3 = self.velocity_z + 10 + random() * 10;
|
||||
|
||||
if (rnd1 > 10)
|
||||
rnd1 = 5;
|
||||
if (rnd1 < -10)
|
||||
rnd1 = -5;
|
||||
|
||||
if (rnd2 > 10)
|
||||
rnd2 = 5;
|
||||
if (rnd2 < -10)
|
||||
rnd2 = -5;
|
||||
|
||||
if (rnd3 < 10)
|
||||
rnd3 = 15;
|
||||
if (rnd3 > 30)
|
||||
rnd3 = 25;
|
||||
|
||||
self.velocity_x = rnd1;
|
||||
self.velocity_y = rnd2;
|
||||
self.velocity_z = rnd3;
|
||||
|
||||
self.nextthink = time + 0.5;
|
||||
self.think = bubble_bob;
|
||||
};
|
||||
Reference in New Issue
Block a user