29 actor.inv_endreached =
true;
92 bprint(
"Invasion: round completed.\n");
130 FOREACH(Monsters, it != MON_Null,
167 if(!best || it.cnt > best.cnt)
181 if(wave_ent && wave_ent.spawnmob && wave_ent.spawnmob !=
"")
186 RandomSelection_AddString(it, 1, 1);
197 LOG_TRACE(
"Warning: couldn't find any invasion_spawnpoint spawnpoints, attempting to spawn monsters in random locations");
205 monster.angles_x = monster.angles_z = 0;
228 if(monster.monster_attack)
230 monster.monster_attack =
false;
259 float total_alive_monsters = 0, supermonster_count = 0;
264 ++supermonster_count;
265 ++total_alive_monsters;
286 float winning_score = 0;
290 if(cs > winning_score)
323 it.player_blocked =
false;
404 if(player.bot_attack)
406 player.bot_attack =
false;
455 M_ARGV(1,
string) =
"You cannot spawn monsters during an invasion!";
470 M_ARGV(0,
string) =
"This command does not work during an invasion!";
IntrusiveList g_bot_targets
#define MUTATOR_HOOKFUNCTION(...)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.
const int SFL_SORT_PRIO_PRIMARY
const int INITPRIO_GAMETYPE
float DPCONTENTS_DONOTENTER
float DPCONTENTS_PLAYERCLIP
float DPCONTENTS_MONSTERCLIP
#define spawn_point(name, color)
ERASEABLE void IL_REMOVE(IntrusiveList this, entity it)
Remove any element, anywhere in the list.
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
#define IL_EACH(this, cond, body)
#define IL_CLEAR(this)
Remove all elements.
#define FOREACH_WORD(words, cond, body)
#define FOREACH(list, cond, body)
const int MONSTER_TYPE_PASSIVE
const int MONSTER_TYPE_FLY
const int MONSTER_TYPE_UNDEAD
const int MON_FLAG_HIDDEN
const int MON_FLAG_SUPERMONSTER
const int MONSTER_TYPE_SWIM
const int MONSTER_SIZE_QUAKE
@ STATUSEFFECT_REMOVE_NORMAL
Effect is being removed by a function, calls regular removal mechanics.
void Send_Notification(NOTIF broadcast, entity client, MSG net_type, Notification net_name,...count)
ERASEABLE void RandomSelection_Init()
#define RandomSelection_AddEnt(e, weight, priority)
string RandomSelection_chosen_string
entity RandomSelection_chosen_ent
void round_handler_Init(float the_delay, float the_count, float the_round_timelimit)
void round_handler_Spawn(bool() canRoundStart_func, bool() canRoundEnd_func, void() roundStart_func)
#define round_handler_GetEndTime()
void WinningConditionHelper(entity this)
Sets the following results for the current scores entities.
void StatusEffects_remove(StatusEffect this, entity actor, int removal_type)
int WinningCondition_Invasion()
void target_invasion_roundend_use(entity this, entity actor, entity trigger)
void invasion_DelayedInit(entity this)
void invasion_Initialize()
float autocvar_g_invasion_spawnpoint_spawn_delay
bool Invasion_CheckPlayers()
void Invasion_RoundStart()
float autocvar_g_invasion_warmup
float autocvar_g_invasion_round_timelimit
Monster invasion_PickMonster(int supermonster_count)
int autocvar_g_invasion_monster_count
void invasion_ScoreRules()
entity invasion_GetWaveEntity(int wavenum)
bool Invasion_CheckWinner()
bool autocvar_g_invasion_zombies_only
float autocvar_g_invasion_spawn_delay
entity invasion_PickSpawn()
void invasion_SpawnMonsters(int supermonster_count)
void invasion_SpawnChosenMonster(Monster mon)
IntrusiveList g_invasion_roundends
IntrusiveList g_invasion_waves
int autocvar_g_invasion_type
IntrusiveList g_invasion_spawns
void Monster_Remove(entity this)
const int MONSTERFLAG_SPAWNED
IntrusiveList g_monster_targets
const int MONSTERFLAG_MINIBOSS
const int MONSTERFLAG_RESPAWNED
#define GameRules_score_enabled(value)
#define GameRules_scoring_add(client, fld, value)
#define GameRules_scoring(teams, spprio, stprio, fields)
entity spawnmonster(entity e, string monster, Monster monster_id, entity spawnedby, entity own, vector orig, bool respwn, bool removeifinvalid, int moveflag)
#define IS_REAL_CLIENT(v)
#define FOREACH_CLIENT(cond, body)
void SetWinners(.float field, float value)
float MoveToRandomMapLocation(entity e, float goodcontents, float badcontents, float badsurfaceflags, float attempts, float maxaboveground, float minviewdistance)
void InitializeEntity(entity e, void(entity this) func, int order)