2 void generator_precache()
4 precache_model("models/onslaught/generator.md3");
5 precache_model("models/onslaught/generator_dead.md3");
6 precache_sound("onslaught/generator_underattack.wav");
11 setmodel(self, "models/onslaught/generator_dead.md3");
14 void generator_draw() { } // TODO
16 void generator_construct()
18 self.netname = "Generator";
20 setorigin(self, self.origin);
21 setmodel(self, "models/onslaught/generator.md3");
22 setsize(self, GENERATOR_MIN, GENERATOR_MAX);
24 self.move_movetype = MOVETYPE_NOCLIP;
26 self.solid = SOLID_BBOX;
27 self.movetype = MOVETYPE_NOCLIP;
28 self.move_origin = self.origin;
29 self.move_time = time;
30 self.drawmask = MASK_NORMAL;
32 self.draw = generator_draw;
36 void generator_changeteam()
40 case NUM_TEAM_1: // Red
42 self.glowmod = '2 0 0';
43 self.teamradar_color = '1 0 0';
46 case NUM_TEAM_2: // Blue
48 self.glowmod = '0 0 2';
49 self.teamradar_color = '0 0 1';
52 case NUM_TEAM_3: // Yellow
54 self.glowmod = '1 1 0';
55 self.teamradar_color = '1 1 0';
58 case NUM_TEAM_4: // Pink
60 self.glowmod = '1 0 1';
61 self.teamradar_color = '1 0 1';
67 self.colormap = 1024 + (self.team - 1) * 17;
77 self.origin_x = ReadCoord();
78 self.origin_y = ReadCoord();
79 self.origin_z = ReadCoord();
80 setorigin(self, self.origin);
83 generator_construct();
85 self.glowmod = '1 1 0';
95 generator_changeteam();
100 if(_tmp == 0 && self.health != 0)
109 float generator_send(entity to, float sf)
111 WriteByte(MSG_ENTITY, ENT_CLIENT_GENERATOR);
112 WriteByte(MSG_ENTITY, sf);
115 WriteCoord(MSG_ENTITY, self.origin_x);
116 WriteCoord(MSG_ENTITY, self.origin_y);
117 WriteCoord(MSG_ENTITY, self.origin_z);
122 WriteByte(MSG_ENTITY, self.team);
125 WriteByte(MSG_ENTITY, 0);
127 WriteByte(MSG_ENTITY, ceil((self.health / self.max_health) * 255));
133 void generator_link(void() spawnproc)
135 Net_LinkEntity(self, TRUE, 0, generator_send);
136 self.think = spawnproc;
137 self.nextthink = time;