NS/main/source/mod/AvHAIConfig.h
RGreenlees e17fba76ea Bot Relocation
* Marine bots can now relocate their base to a nearby hive
* If the chance to relocate is above 0 (configurable in nsbots.ini) then the bots will relocate at the start of a match based on the percentage set, or if the current base is overrun and about to be lost
* The bot will recycle the old comm chair
* The bot will abandon the relocation attempt if unsuccessful 90 seconds into a match
2024-06-03 23:53:08 -04:00

72 lines
No EOL
2.3 KiB
C

#pragma once
#ifndef AVH_AI_CONFIG_H
#define AVH_AI_CONFIG_H
#include "AvHAIConstants.h"
// Bot fill mode determines how bots should be automatically added/removed from teams
typedef enum _BOTFILLMODE
{
BOTFILL_MANUAL = 0, // Manual, no automatic adding or removal of bots
BOTFILL_BALANCEONLY, // Bots are automatically added/removed to ensure teams remain balanced
BOTFILL_FILLTEAMS // Bots are automatically added/removed to ensure teams maintain a certain number of players (see TeamSizeDefinitions)
} BotFillMode;
// Each map can have a desired marine and alien team size
typedef struct _TEAMSIZEDEFINITIONS
{
int TeamASize = 6;
int TeamBSize = 6;
} TeamSizeDefinitions;
typedef enum _BOTFILLTIMING
{
FILLTIMING_MAPLOAD = 0, // Bots will start filling teams after map load (after grace period)
FILLTIMING_ALLHUMANS, // Bots will only start filling teams once all humans in the ready room have joined a team
FILLTIMING_ROUNDSTART // Bots will only start filling teams after round start
} BotFillTiming;
// Reads evobot.cfg in addons/evobot and populates all the settings from it
void CONFIG_ParseConfigFile();
string CONFIG_GetBotPrefix();
// Returns the current commander wait time is COMMANDERMODE_ALWAYS (see CONFIG_GetCommanderMode())
float CONFIG_GetCommanderWaitTime();
// Returns the current lerk cooldown (how long aliens wait before evolving another lerk after the last one died)
float CONFIG_GetLerkCooldown();
bool CONFIG_IsLerkAllowed();
bool CONFIG_IsFadeAllowed();
bool CONFIG_IsOnosAllowed();
bool CONFIG_IsRelocationAllowed();
float CONFIG_GetRelocationChance();
// Returns the max time a bot is allowed to be stuck before suiciding (0 means forever)
float CONFIG_GetMaxStuckTime();
float CONFIG_GetMaxAIMatchTimeMinutes();
// Returns the desired marine team size for the given map, indexes into TeamSizeMap
int CONFIG_GetTeamASizeForMap(const char* MapName);
// Returns the desired alien team size for the given map, indexes into TeamSizeMap
int CONFIG_GetTeamBSizeForMap(const char* MapName);
// Returns the configured hive tech at that index (chamber build sequence)
AvHMessageID CONFIG_GetHiveTechAtIndex(const int Index);
bot_skill CONFIG_GetBotSkillLevel();
BotFillTiming CONFIG_GetBotFillTiming();
void CONFIG_RegenerateIniFile();
void CONFIG_PopulateBotNames();
string CONFIG_GetNextBotName();
#endif