#pragma once
#include "ctf.qh"
-
+ #include <common/items/item/pickup.qh>
+ #include <common/mutators/base.qh>
+ #include <common/gamemodes/sv_rules.qh>
+CLASS(Flag, Pickup)
+ ATTRIB(Flag, m_mins, vector, (PL_MIN_CONST + '0 0 -13') * 1.4); // scaling be damned
+ ATTRIB(Flag, m_maxs, vector, (PL_MAX_CONST + '0 0 -13') * 1.4);
+ENDCLASS(Flag)
+Flag CTF_FLAG;
void ctf_Initialize();
+ int autocvar_captureleadlimit_override;
+ int autocvar_capturelimit_override;
+
REGISTER_MUTATOR(ctf, false)
{
MUTATOR_STATIC();
#include <common/monsters/sv_spawner.qh>
#include <common/monsters/sv_monsters.qh>
+ #include <server/bot/api.qh>
+ #include <server/world.qh>
#include <server/teamplay.qh>
-IntrusiveList g_invasion_roundends;
-IntrusiveList g_invasion_waves;
-IntrusiveList g_invasion_spawns;
-STATIC_INIT(g_invasion)
-{
- g_invasion_roundends = IL_NEW();
- g_invasion_waves = IL_NEW();
- g_invasion_spawns = IL_NEW();
-}
-
float autocvar_g_invasion_round_timelimit;
float autocvar_g_invasion_spawnpoint_spawn_delay;
float autocvar_g_invasion_warmup;
#pragma once
+ #include <common/mutators/base.qh>
+
float autocvar_g_onslaught_point_limit;
+IntrusiveList g_onsshields;
void ons_Initialize();
REGISTER_MUTATOR(ons, false)
bool autocvar_g_instagib_ammo_convert_rockets;
bool autocvar_g_instagib_ammo_convert_shells;
bool autocvar_g_instagib_ammo_convert_bullets;
- int autocvar_g_instagib_extralives;
float autocvar_g_instagib_speed_highspeed;
-IntrusiveList g_instagib_items;
-STATIC_INIT(instagib)
-{
- g_instagib_items = IL_NEW();
- IL_PUSH(g_instagib_items, ITEM_VaporizerCells);
- IL_PUSH(g_instagib_items, ITEM_ExtraLife);
- IL_PUSH(g_instagib_items, ITEM_Invisibility);
- IL_PUSH(g_instagib_items, ITEM_Speed);
-}
-
void instagib_invisibility(entity this)
{
this.strength_finished = autocvar_g_instagib_invisibility_time;
void instagib_invisibility(entity this);
void instagib_extralife(entity this);
void instagib_speed(entity this);
+IntrusiveList g_instagib_items;
- REGISTER_MUTATOR(mutator_instagib, autocvar_g_instagib && !g_nexball)
+ REGISTER_MUTATOR(mutator_instagib, autocvar_g_instagib && !MapInfo_LoadedGametype.m_weaponarena)
{
MUTATOR_ONADD
{
bool autocvar_g_overkill_filter_armormega;
.float ok_item;
+IntrusiveList g_overkill_items;
- REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !MUTATOR_IS_ENABLED(mutator_instagib) && !g_nexball && cvar_string("g_mod_balance") == "Overkill")
+ REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MapInfo_LoadedGametype.m_weaponarena && cvar_string("g_mod_balance") == "Overkill")
{
MUTATOR_ONADD
{
entity g_team_entities[NUM_TEAMS]; ///< Holds global team entities.
-STATIC_INIT(g_team_entities)
+void Team_InitTeams()
{
+ if (g_team_entities[0])
+ return;
for (int i = 0; i < NUM_TEAMS; ++i)
{
- g_team_entities[i] = spawn();
+ g_team_entities[i] = new_pure();
}
}