diff options
Diffstat (limited to 'Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut')
-rw-r--r-- | Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut | 819 |
1 files changed, 0 insertions, 819 deletions
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut b/Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut deleted file mode 100644 index 9114fcad..00000000 --- a/Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut +++ /dev/null @@ -1,819 +0,0 @@ - -global function GameModes_Init - -global function GameMode_Create -global function GameMode_SetName -global function GameMode_SetGameModeAttackAnnouncement -global function GameMode_SetGameModeDefendAnnouncement -global function GameMode_SetAttackDesc -global function GameMode_SetDefendDesc -global function GameMode_SetIcon -global function GameMode_SetDefaultScoreLimits -global function GameMode_AddScoreboardColumnData -global function GameMode_SetGameModeAnnouncement -global function GameMode_SetDefaultTimeLimits -global function GameMode_SetDesc -global function GameMode_SetColor -global function GameMode_SetSuddenDeath - -global function GameMode_GetScoreLimit -global function GameMode_GetRoundScoreLimit -global function GameMode_GetTimeLimit -global function GameMode_GetRoundTimeLimit -global function GameMode_GetGameModeAnnouncement -global function GameMode_GetGameModeAttackAnnouncement -global function GameMode_GetGameModeDefendAnnouncement -global function GameMode_GetDesc -global function GameMode_GetName -global function GameMode_GetIcon -global function GameMode_GetColor -global function GameMode_GetAttackDesc -global function GameMode_GetDefendDesc -global function GameMode_GetPilotSpawnpointsRatingFunc -global function GameMode_GetTitanSpawnpointsRatingFunc -global function GameMode_GetScoreCompareFunc -global function GameMode_GetSuddenDeathEnabled -global function GameMode_GetEvacEnabled -global function GameMode_GetGameEndingWarning -global function GameMode_GetGameEndingConversation -global function GameMode_GetScoreboardColumnTitles -global function GameMode_GetScoreboardColumnScoreTypes -global function GameMode_GetScoreboardColumnNumDigits -global function GameMode_GetCustomIntroAnnouncement -global function GameMode_RunServerInits -global function GameMode_RunClientInits -global function GameMode_RunSharedInits -global function GameMode_IsDefined - -global function GameMode_AddServerInit -global function GameMode_AddClientInit -global function GameMode_AddSharedInit -global function GameMode_SetScoreCompareFunc -global function GameMode_SetPilotSpawnpointsRatingFunc -global function GameMode_SetTitanSpawnpointsRatingFunc -global function GameMode_SetCustomIntroAnnouncement - -global function GameMode_GetGameModeId - -global function GameMode_SetEvacEnabled - -global function GameMode_GetLoadoutSelectTime - -global struct GamemodeSettings -{ - string name = "" - string name_localized = "Undefined Game Mode" - string desc_localized = "Undefined Game Mode Description" - string desc_attack = "" - string desc_defend = "" - string gameModeAnnoucement = "" - string gameModeAttackAnnoucement = "" - string gameModeDefendAnnoucement = "" - asset icon = $"ui/menu/playlist/classic" - array<int> color = [127, 127, 127, 255] - array< void functionref() > serverInits - array< void functionref() > clientInits - array< void functionref() > sharedInits - void functionref( int, array<entity>, int, entity ) pilotSpawnpointRatingFunc - void functionref( int, array<entity>, int, entity ) titanSpawnpointRatingFunc - IntFromEntityCompare scoreCompareFunc - int defaultScoreLimit = 100 - int defaultTimeLimit = 10 - int defaultRoundScoreLimit = 5 - float defaultRoundTimeLimit = 5.0 - bool evacEnabled = true - string gameModeEndingWarning = "#GAMEMODE_END_IN_N_SECONDS" - string gameModeEndingConversation = "" - bool suddenDeathEnabled = false - array<string> scoreboardColumnTitles - array<int> scoreboardColumnScoreTypes - array<int> scoreboardColumnNumDigits - void functionref(entity) customIntroAnnouncementFunc -} - - - -// Don't remove items from this list once the game is in production -// Durango online analytics needs the numbers for each mode to stay the same -// DO NOT CHANGE THESE VALUES AFTER THEY HAVE GONE LIVE -global enum eGameModes -{ - invalid = -1, - TEAM_DEATHMATCH_ID = 0, - CAPTURE_POINT_ID = 1, - ATTRITION_ID = 2, - CAPTURE_THE_FLAG_ID = 3, - MARKED_FOR_DEATH_ID = 4, - LAST_TITAN_STANDING_ID = 5, - WINGMAN_LAST_TITAN_STANDING_ID = 6, - PILOT_SKIRMISH_ID = 7, - MARKED_FOR_DEATH_PRO_ID = 8, - COOPERATIVE_ID = 9, - GAMEMODE_SP_ID = 10, - TITAN_BRAWL_ID = 11, - FFA_ID = 12, - PROTOTYPE2 = 13, - WINGMAN_PILOT_SKIRMISH_ID = 14, - PROTOTYPE3 = 15, - PROTOTYPE4 = 16, - FREE_AGENCY_ID = 17, - PROTOTYPE6 = 18, - COLISEUM_ID = 19, - PROTOTYPE7 = 20, - AI_TDM_ID = 21, - PROTOTYPE8 = 22, - PROTOTYPE9 = 23, - SPEEDBALL_ID = 24, - PROTOTYPE10 = 25, - PROTOTYPE11 = 26, - PROTOTYPE12 = 27, - FD_ID = 28, - PROTOTYPE14 = 29, -} - -const table<string, int> gameModesStringToIdMap = { - [ TEAM_DEATHMATCH ] = eGameModes.TEAM_DEATHMATCH_ID, - [ PILOT_SKIRMISH ] = eGameModes.PILOT_SKIRMISH_ID, - [ CAPTURE_POINT ] = eGameModes.CAPTURE_POINT_ID, - [ ATTRITION ] = eGameModes.ATTRITION_ID, - [ CAPTURE_THE_FLAG ] = eGameModes.CAPTURE_THE_FLAG_ID, - [ LAST_TITAN_STANDING ] = eGameModes.LAST_TITAN_STANDING_ID, - [ GAMEMODE_SP ] = eGameModes.GAMEMODE_SP_ID, - [ FFA ] = eGameModes.FFA_ID, - [ COLISEUM ] = eGameModes.COLISEUM_ID, - [ AI_TDM ] = eGameModes.AI_TDM_ID, - [ SPEEDBALL ] = eGameModes.SPEEDBALL_ID, - [ MARKED_FOR_DEATH ] = eGameModes.MARKED_FOR_DEATH_ID, - [ TITAN_BRAWL ] = eGameModes.TITAN_BRAWL_ID, - [ FREE_AGENCY ] = eGameModes.FREE_AGENCY_ID, - [ FD ] = eGameModes.FD_ID, - [ FD_EASY ] = eGameModes.FD_ID, - [ FD_NORMAL ] = eGameModes.FD_ID, - [ FD_HARD ] = eGameModes.FD_ID, - [ FD_MASTER ] = eGameModes.FD_ID, - [ FD_INSANE ] = eGameModes.FD_ID, -} - -struct -{ - table< string, GamemodeSettings > gameModeDefs -} file - -void function GameModes_Init() -{ - string gameMode - - gameMode = GAMEMODE_SP - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#GAMEMODE_SOLO" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/coop" ) //HACK TODO: get a sp icon - GameMode_SetDesc( gameMode, "#GAMEMODE_SOLO_HINT" ) - GameMode_SetDefaultScoreLimits( gameMode, 0, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 0, 0.0 ) - - gameMode = CAPTURE_POINT - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_hardpoint" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "hp_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_CP" ) - #endif - GameMode_SetDesc( gameMode, "#PL_hardpoint_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/cp" ) - GameMode_SetDefaultScoreLimits( gameMode, 500, 500 ) - GameMode_SetDefaultTimeLimits( gameMode, 15, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_ASSAULT", PGS_ASSAULT_SCORE, 4 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_DEFENSE", PGS_DEFENSE_SCORE, 4 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_KILLS, 2 ) - GameMode_SetColor( gameMode, [46, 188, 180, 255] ) - - gameMode = LAST_TITAN_STANDING - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_last_titan_standing" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "lts_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_LTS" ) - #endif - GameMode_SetDesc( gameMode, "#PL_last_titan_standing_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/lts" ) - GameMode_SetDefaultScoreLimits( gameMode, 0, 4 ) - GameMode_SetDefaultTimeLimits( gameMode, 5, 4.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_TITAN_KILLS", PGS_TITAN_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_TITAN_DAMAGE", PGS_ASSAULT_SCORE, 6 ) - GameMode_SetColor( gameMode, [223, 94, 0, 255] ) - - gameMode = ATTRITION - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_attrition" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "bh_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_AT" ) - #endif - GameMode_SetDesc( gameMode, "#PL_attrition_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/at" ) - GameMode_SetDefaultScoreLimits( gameMode, 5000, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 15, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_SCORE", PGS_ASSAULT_SCORE, 4 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_BONUS", PGS_SCORE, 4 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_KILLS, 2 ) - GameMode_SetColor( gameMode, [88, 172, 67, 255] ) - - gameMode = TEAM_DEATHMATCH - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_pilot_hunter" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "phunt_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_TDM" ) - #endif - GameMode_SetDesc( gameMode, "#PL_pilot_hunter_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/tdm" ) - GameMode_SetDefaultScoreLimits( gameMode, 50, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 15, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_PILOT_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_DEATHS", PGS_DEATHS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_ASSISTS", PGS_ASSISTS, 2 ) - GameMode_SetColor( gameMode, [212, 83, 152, 255] ) - - gameMode = AI_TDM - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_aitdm" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "gnrc_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_TDM" ) - #endif - GameMode_SetDesc( gameMode, "#PL_aitdm_hint" ) - GameMode_SetIcon( gameMode, FFA_MODE_ICON ) - GameMode_SetDefaultScoreLimits( gameMode, 1, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 15, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_SCORE", PGS_ASSAULT_SCORE, 3 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_PILOT_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_TITAN_KILLS", PGS_TITAN_KILLS, 1 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_GRUNT_KILLS", PGS_NPC_KILLS, 2 ) - // GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_DEATHS", PGS_DEATHS, 2 ) - GameMode_SetColor( gameMode, [200, 40, 40, 255] ) - - gameMode = COLISEUM - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_coliseum" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "gnrc_modeDesc" ) //TODO: This is just the mode name as opposed to instructions... - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_PS" ) - #endif - GameMode_SetDesc( gameMode, "#PL_coliseum_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/tdm" ) - GameMode_SetDefaultScoreLimits( gameMode, 15, 2 ) - GameMode_SetDefaultTimeLimits( gameMode, 0, 4.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_KILLS, 2 ) - GameMode_SetColor( gameMode, [151, 71, 175, 255] ) - - gameMode = PILOT_SKIRMISH - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_pilot_skirmish" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "pvp_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_PS" ) - #endif - GameMode_SetDesc( gameMode, "#PL_pilot_skirmish_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/tdm" ) - GameMode_SetDefaultScoreLimits( gameMode, 100, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 15, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_DEATHS", PGS_DEATHS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_ASSISTS", PGS_ASSISTS, 2 ) - GameMode_SetColor( gameMode, [207, 191, 59, 255] ) - - gameMode = CAPTURE_THE_FLAG - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_capture_the_flag" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "ctf_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_CTF" ) - #endif - GameMode_SetDesc( gameMode, "#PL_capture_the_flag_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/ctf" ) - GameMode_SetSuddenDeath( gameMode, true ) - GameMode_SetDefaultScoreLimits( gameMode, 0, 5 ) - GameMode_SetDefaultTimeLimits( gameMode, 0, 3.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_CAPTURES", PGS_ASSAULT_SCORE, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_RETURNS", PGS_DEFENSE_SCORE, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_KILLS, 2 ) - GameMode_SetColor( gameMode, [61, 117, 193, 255] ) - - gameMode = FFA - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_ffa" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "ffa_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_FFA" ) - #endif - GameMode_SetDesc( gameMode, "#PL_ffa_hint" ) - GameMode_SetIcon( gameMode, FFA_MODE_ICON ) - GameMode_SetDefaultScoreLimits( gameMode, 10, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 10, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_SCORE", PGS_ASSAULT_SCORE, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_PILOT_KILLS", PGS_PILOT_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_TITAN_KILLS", PGS_TITAN_KILLS, 2 ) - GameMode_SetColor( gameMode, [147, 204, 57, 255] ) - - gameMode = FREE_AGENCY - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_free_agents" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "freea_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_FREE_AGENCY" ) - #endif - GameMode_SetDesc( gameMode, "#PL_free_agents_hint" ) - GameMode_SetIcon( gameMode, FFA_MODE_ICON ) - GameMode_SetDefaultScoreLimits( gameMode, 10, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 15, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_SCORE", PGS_ASSAULT_SCORE, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_PILOT_KILLS", PGS_PILOT_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_TITAN_KILLS", PGS_TITAN_KILLS, 2 ) - GameMode_SetColor( gameMode, [127, 127, 127, 255] ) - - gameMode = SPEEDBALL - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_speedball" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "gnrc_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_CTF" ) - #endif - GameMode_SetDesc( gameMode, "#PL_speedball_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/ctf" ) - GameMode_SetDefaultScoreLimits( gameMode, 0, 5 ) - GameMode_SetDefaultTimeLimits( gameMode, 0, 1.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_FLAGS_SECURED", PGS_ASSAULT_SCORE, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_DEATHS", PGS_DEATHS, 2 ) - GameMode_SetColor( gameMode, [225, 141, 8, 255] ) - - gameMode = MARKED_FOR_DEATH - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_marked_for_death" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "mfd_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_MFD" ) - #endif - GameMode_SetDesc( gameMode, "#PL_marked_for_death_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/mfd" ) - GameMode_SetDefaultScoreLimits( gameMode, 10, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 10, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_MFD_SCORE", PGS_ASSAULT_SCORE, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_MFD_MARKS_OUTLASTED", PGS_DEFENSE_SCORE, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_KILLS, 2 ) - GameMode_SetColor( gameMode, [127, 127, 127, 255] ) - - gameMode = TITAN_BRAWL - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_titan_brawl" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "lts_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_TTDM" ) - #endif - GameMode_SetDesc( gameMode, "#PL_titan_brawl_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/lts" ) - GameMode_SetDefaultScoreLimits( gameMode, 30, 0 ) - GameMode_SetDefaultTimeLimits( gameMode, 15, 0.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_KILLS", PGS_PILOT_KILLS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_DEATHS", PGS_DEATHS, 2 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_TITAN_DAMAGE", PGS_ASSAULT_SCORE, 6 ) - GameMode_SetColor( gameMode, [83, 212, 152, 255] ) - - gameMode = FD - GameMode_Create( gameMode ) - GameMode_SetName( gameMode, "#PL_fd" ) - #if FACTION_DIALOGUE_ENABLED - GameMode_SetGameModeAnnouncement( gameMode, "fd_modeDesc" ) - #else - GameMode_SetGameModeAnnouncement( gameMode, "GameModeAnnounce_PS" ) - #endif - GameMode_SetDesc( gameMode, "#PL_fd_hint" ) - GameMode_SetIcon( gameMode, $"ui/menu/playlist/tdm" ) - GameMode_SetSuddenDeath( gameMode, true ) - GameMode_SetDefaultScoreLimits( gameMode, 0, 5 ) - GameMode_SetDefaultTimeLimits( gameMode, 0, 5.0 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_TOTAL_SCORE", PGS_DETONATION_SCORE, 4 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_COMBAT_SCORE", PGS_ASSAULT_SCORE, 4 ) - //GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_HEALING_SCORE", PGS_DISTANCE_SCORE, 3 ) - GameMode_AddScoreboardColumnData( gameMode, "#SCOREBOARD_SUPPORT_SCORE", PGS_DEFENSE_SCORE, 4 ) - - #if DEVSCRIPTS - DevGameModes_Init() - #endif - - #if SERVER || CLIENT - // add modes/maps/playlists to private lobby that aren't there by default - PrivateMatchModesInit() - - InitCustomGamemodes() // do custom gamemode callbacks - GameModes_Init_SV_CL() - #endif - - //// - GameMode_VerifyModes() -} - -// TODO: scoreboards - -/************************************************************* - Setters -*************************************************************/ - -GamemodeSettings function GameMode_Create( string gameModeName ) -{ - Assert( !(gameModeName in file.gameModeDefs), "Gametype already defined!" ) - - GamemodeSettings settings - file.gameModeDefs[gameModeName] <- settings - - return file.gameModeDefs[gameModeName] -} - -void function GameMode_SetName( string gameModeName, string nameText ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut (" + gameModeName + ")" ) - file.gameModeDefs[gameModeName].name_localized = nameText -} - -void function GameMode_SetGameModeAnnouncement( string gameModeName, string gameModeAnnoucement ) //Note: Still need to register the conversation -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].gameModeAnnoucement = gameModeAnnoucement -} - -void function GameMode_SetGameModeAttackAnnouncement( string gameModeName, string gameModeAttackAnnoucement ) //Note: Still need to register the conversation -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].gameModeAttackAnnoucement = gameModeAttackAnnoucement -} - -void function GameMode_SetGameModeDefendAnnouncement( string gameModeName, string gameModeDefendAnnoucement ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) //Note: Still need to register the conversation - file.gameModeDefs[gameModeName].gameModeDefendAnnoucement = gameModeDefendAnnoucement -} - -void function GameMode_SetDesc( string gameModeName, string descText ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].desc_localized = descText -} - -void function GameMode_SetAttackDesc( string gameModeName, string descText ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].desc_attack = descText -} - -void function GameMode_SetDefendDesc( string gameModeName, string descText ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].desc_defend = descText -} - -void function GameMode_SetIcon( string gameModeName, asset icon ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].icon = icon -} - -void function GameMode_SetColor( string gameModeName, array<int> color ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].color = color -} - -void function GameMode_SetSuddenDeath( string gameModeName, bool state ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].suddenDeathEnabled = state -} - -void function GameMode_AddServerInit( string gameModeName, void functionref() func ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].serverInits.append( func ) -} - -void function GameMode_AddClientInit( string gameModeName, void functionref() func ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].clientInits.append( func ) -} - -void function GameMode_AddSharedInit( string gameModeName, void functionref() func ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].sharedInits.append( func ) -} - -void function GameMode_SetPilotSpawnpointsRatingFunc( string gameModeName, void functionref( int, array<entity>, int, entity ) func ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].pilotSpawnpointRatingFunc = func -} - -void function GameMode_SetTitanSpawnpointsRatingFunc( string gameModeName, void functionref( int, array<entity>, int, entity ) func ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].titanSpawnpointRatingFunc = func -} - -void function GameMode_SetScoreCompareFunc( string gameModeName, int functionref( entity, entity ) func ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].scoreCompareFunc = func -} - -void function GameMode_SetDefaultScoreLimits( string gameModeName, int scoreLimit, int roundScoreLimit ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].defaultScoreLimit = scoreLimit - file.gameModeDefs[gameModeName].defaultRoundScoreLimit = roundScoreLimit -} - -void function GameMode_SetDefaultTimeLimits( string gameModeName, int timeLimit, float roundTimeLimit ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].defaultTimeLimit = timeLimit - file.gameModeDefs[gameModeName].defaultRoundTimeLimit = roundTimeLimit -} - -void function GameMode_AddScoreboardColumnData( string gameModeName, string title, int scoreType, int numDigits ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].scoreboardColumnTitles.append( title ) - file.gameModeDefs[gameModeName].scoreboardColumnScoreTypes.append( scoreType ) - file.gameModeDefs[gameModeName].scoreboardColumnNumDigits.append( numDigits ) -} - -void function GameMode_SetEvacEnabled( string gameModeName, bool value ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].evacEnabled = value -} - -void function GameMode_SetGameEndingWarning( string gameModeName, string warning ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].gameModeEndingWarning = warning -} - -void function GameMode_SetGameEndingConversation( string gameModeName, string conversation ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].gameModeEndingConversation = conversation -} - -void function GameMode_SetCustomIntroAnnouncement( string gameModeName, void functionref(entity) func ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - file.gameModeDefs[gameModeName].customIntroAnnouncementFunc = func -} - -/************************************************************* - Getters -*************************************************************/ - -int function GameMode_GetScoreLimit( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return GetCurrentPlaylistVarInt( "scorelimit", file.gameModeDefs[gameModeName].defaultScoreLimit ) -} - -int function GameMode_GetRoundScoreLimit( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return GetCurrentPlaylistVarInt( "roundscorelimit", file.gameModeDefs[gameModeName].defaultRoundScoreLimit ) -} - -int function GameMode_GetTimeLimit( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return GetCurrentPlaylistVarInt( "timelimit", file.gameModeDefs[gameModeName].defaultTimeLimit ) -} - -float function GameMode_GetRoundTimeLimit( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return GetCurrentPlaylistVarFloat( "roundtimelimit", file.gameModeDefs[gameModeName].defaultRoundTimeLimit ) -} - -string function GameMode_GetGameModeAnnouncement( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].gameModeAnnoucement -} - -string function GameMode_GetGameModeAttackAnnouncement( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].gameModeAttackAnnoucement -} - -string function GameMode_GetGameModeDefendAnnouncement( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].gameModeDefendAnnoucement -} - -string function GameMode_GetDesc( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].desc_localized -} - -string function GameMode_GetName( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].name_localized -} - -asset function GameMode_GetIcon( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].icon -} - -array<int> function GameMode_GetColor( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].color -} - -string function GameMode_GetAttackDesc( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].desc_attack -} - -string function GameMode_GetDefendDesc( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].desc_defend -} - -void functionref( int, array<entity>, int, entity ) function GameMode_GetPilotSpawnpointsRatingFunc( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - Assert( file.gameModeDefs[gameModeName].pilotSpawnpointRatingFunc != null, "No respawn func set for " + gameModeName ) - return file.gameModeDefs[gameModeName].pilotSpawnpointRatingFunc -} - -void functionref( int, array<entity>, int, entity ) function GameMode_GetTitanSpawnpointsRatingFunc( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - Assert( file.gameModeDefs[gameModeName].titanSpawnpointRatingFunc != null, "No respawn func set for " + gameModeName ) - return file.gameModeDefs[gameModeName].titanSpawnpointRatingFunc -} - -IntFromEntityCompare function GameMode_GetScoreCompareFunc( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].scoreCompareFunc -} - -bool function GameMode_GetSuddenDeathEnabled( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].suddenDeathEnabled -} - -bool function GameMode_GetEvacEnabled( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].evacEnabled -} - -string function GameMode_GetGameEndingWarning( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].gameModeEndingWarning -} - -string function GameMode_GetGameEndingConversation( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].gameModeEndingConversation -} - -array<string> function GameMode_GetScoreboardColumnTitles( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].scoreboardColumnTitles -} - -array<int> function GameMode_GetScoreboardColumnScoreTypes( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].scoreboardColumnScoreTypes -} - -array<int> function GameMode_GetScoreboardColumnNumDigits( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].scoreboardColumnNumDigits -} - -void functionref(entity) function GameMode_GetCustomIntroAnnouncement( string gameModeName ) -{ - Assert( gameModeName in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - return file.gameModeDefs[gameModeName].customIntroAnnouncementFunc -} - -/************************************************************* - -*************************************************************/ -void function GameMode_RunServerInits() -{ - Assert( GAMETYPE in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - - foreach ( initFunc in file.gameModeDefs[GAMETYPE].serverInits ) - { - initFunc() - } -} - -void function GameMode_RunClientInits() -{ - Assert( GAMETYPE in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - - foreach ( initFunc in file.gameModeDefs[GAMETYPE].clientInits ) - { - initFunc() - } -} - -void function GameMode_RunSharedInits() -{ - Assert( GAMETYPE in file.gameModeDefs, "No MP Gametype specified in _settings.nut" ) - - foreach ( initFunc in file.gameModeDefs[GAMETYPE].sharedInits ) - { - initFunc() - } -} - -void function GameMode_VerifyModes() -{ - foreach ( gameModeName, gameModeData in file.gameModeDefs ) - { - int gameModeId = GameMode_GetGameModeId( gameModeName ) - bool foundGameModeIdString = false - foreach ( idString, gameModeEnumId in eGameModes ) - { - if ( gameModeEnumId != gameModeId ) - continue - - foundGameModeIdString = true - break - } - Assert( foundGameModeIdString, "GAMEMODE not defined properly in eGameModes!" ) - - GAMETYPE_TEXT[gameModeName] <- gameModeData.name_localized - GAMETYPE_DESC[gameModeName] <- gameModeData.desc_localized - GAMETYPE_ICON[gameModeName] <- gameModeData.icon - GAMETYPE_COLOR[gameModeName] <- gameModeData.color - #if CLIENT - PrecacheHUDMaterial( GAMETYPE_ICON[gameModeName] ) - #endif - } -} - -int function GameMode_GetGameModeId( string gameModeName ) -{ - if ( gameModeName in gameModesStringToIdMap ) - return gameModesStringToIdMap[gameModeName] - - #if DEVSCRIPTS - if ( gameModeName in devGameModesStringToIdMap ) - return devGameModesStringToIdMap[gameModeName] - #endif - - Assert( false, "GAMEMODE " + gameModeName + " not defined in gameModesStringToIdMap" ) - - return 0 -} - -bool function GameMode_IsDefined( string gameModeName ) -{ - return (gameModeName in file.gameModeDefs) -} - -float function GameMode_GetLoadoutSelectTime() -{ - return GetCurrentPlaylistVarFloat( "pick_loadout_time", 5.0 ) -}
\ No newline at end of file |