#include "../gamemode.qh"
-void assault_ScoreRules();
+const int ST_ASSAULT_OBJECTIVES = 1;
REGISTER_MUTATOR(as, false)
{
- ActivateTeamplay();
- have_team_spawns = -1; // request team spawns
-
+ MUTATOR_STATIC();
MUTATOR_ONADD
{
- if (time > 1) // game loads at time 1
- error("This is a game type and it cannot be added at runtime.");
- assault_ScoreRules();
- }
-
- MUTATOR_ONROLLBACK_OR_REMOVE
- {
- // we actually cannot roll back assault_Initialize here
- // BUT: we don't need to! If this gets called, adding always
- // succeeds.
- }
-
- MUTATOR_ONREMOVE
- {
- LOG_INFO("This is a game type and it cannot be removed at runtime.");
- return -1;
+ GameRules_teams(true);
+ int teams = BITS(2); // always red vs blue
+ GameRules_scoring(teams, SFL_SORT_PRIO_SECONDARY, SFL_SORT_PRIO_SECONDARY, {
+ field_team(ST_ASSAULT_OBJECTIVES, "objectives", SFL_SORT_PRIO_PRIMARY);
+ field(SP_ASSAULT_OBJECTIVES, "objectives", SFL_SORT_PRIO_PRIMARY);
+ });
}
-
return 0;
}
.int havocbot_role_flags;
.float havocbot_attack_time;
-.void(entity this) havocbot_role;
-.void(entity this) havocbot_previous_role;
-
void(entity this) havocbot_role_ast_defense;
void(entity this) havocbot_role_ast_offense;
void(entity this, float ratingscale, vector org, float sradius) havocbot_goalrating_items;
void(entity this, float ratingscale, vector org, float sradius) havocbot_goalrating_enemyplayers;
-// scoreboard stuff
-const float ST_ASSAULT_OBJECTIVES = 1;
-
// predefined spawnfuncs
void target_objective_decrease_activate(entity this);