2 // attacker spawn point
3 void info_player_attacker() {
4 self.team = COLOR_TEAM1; // red, gets swapped every round
5 info_player_deathmatch();
8 // defender spawn point
9 void info_player_defender() {
10 self.team = COLOR_TEAM2; // blue, gets swapped every round
11 info_player_deathmatch();
14 // reset this objective. Used when spawning an objective
15 // and when a new round starts
16 void assault_objective_reset() {
17 if(self.spawnflags) { // first objective
19 self.nextthink = time + 0.1;
21 self.health = ASSAULT_VALUE_INACTIVE;
25 void assault_objective_use() {
28 self.nextthink = time + 0.1;
31 void assault_objective_think() {
35 ent = find(world, targetname, self.target);
39 self.nextthink = time + 0.1;
44 void func_objective() {
45 self.classname = "func_objective";
46 self.think = assault_objective_think;
47 self.use = assault_objective_use;
48 assault_objective_reset();
52 // reset objectives, toggle spawnpoints, reset triggers, ...
53 void assault_new_round() {
55 // this assumes self.classname == "func_assault_roundend"!
56 self.cnt = self.cnt + 1;
58 // swap spawn point teams
62 ent = find(world, classname, "info_player_deathmatch");
67 if(self.team == COLOR_TEAM1) {
68 self.team = COLOR_TEAM2;
70 self.team = COLOR_TEAM1;
74 ent = find(ent, classname, "info_player_deathmatch");
77 // reset all objectives
79 ent = find(world, classname, "func_objective");
84 assault_objective_reset();
87 ent = find(ent, classname, "func_objective");
90 // actually restart round... how to do that?
93 void func_assault_roundend() {
94 self.cnt = 0; // round counter
95 self.classname = "func_assault_roundend";
96 self.use = assault_new_round;