diff --git a/MskGs/Classes/MskGs_Endless.uc b/MskGs/Classes/MskGs_Endless.uc new file mode 100644 index 0000000..f349ebb --- /dev/null +++ b/MskGs/Classes/MskGs_Endless.uc @@ -0,0 +1,110 @@ +class MskGs_Endless extends KFGameInfo_Endless; + +function UpdateGameSettings() +{ + local name SessionName; + local KFOnlineGameSettings KFGameSettings; + local int NumHumanPlayers; + local KFGameEngine KFEngine; + local PlayerController PC; + + if (WorldInfo.NetMode == NM_DedicatedServer || WorldInfo.NetMode == NM_ListenServer) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 1 - GameInterface: "$GameInterface); + if (GameInterface != None) + { + KFEngine = KFGameEngine(class'Engine'.static.GetEngine()); + + SessionName = PlayerReplicationInfoClass.default.SessionName; + + if( PlayfabInter != none && PlayfabInter.GetGameSettings() != none ) + { + KFGameSettings = KFOnlineGameSettings(PlayfabInter.GetGameSettings()); + KFGameSettings.bAvailableForTakeover = KFEngine.bAvailableForTakeover; + } + else + { + KFGameSettings = KFOnlineGameSettings(GameInterface.GetGameSettings(SessionName)); + } + //Ensure bug-for-bug compatibility with KF1 + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 2 - KFGameSettings: "$KFGameSettings); + + if (KFGameSettings != None) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 3 - KFGameSettings.bAvailableForTakeover: "$KFGameSettings.bAvailableForTakeover); + + KFGameSettings.Mode = default.GameModes.Find('ClassNameAndPath', "KFGameContent.KFGameInfo_Endless"); + KFGameSettings.Difficulty = GameDifficulty; + //Ensure bug-for-bug compatibility with KF1 + if (WaveNum == 0) + { + KFGameSettings.bInProgress = false; + KFGameSettings.CurrentWave = 1; + } + else + { + KFGameSettings.bInProgress = true; + KFGameSettings.CurrentWave = WaveNum; + } + //Also from KF1 + if(MyKFGRI != none) + { + KFGameSettings.NumWaves = MyKFGRI.GetFinalWaveNum(); + } + else + { + KFGameSettings.NumWaves = WaveMax - 1; + } + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName; + + KFGameSettings.NumPublicConnections = MaxPlayersAllowed; + KFGameSettings.bRequiresPassword = RequiresPassword(); + KFGameSettings.bCustom = False; + KFGameSettings.bUsesStats = !IsUnrankedGame(); + KFGameSettings.NumSpectators = NumSpectators; + if(MyKFGRI != none) + { + MyKFGRI.bCustom = False; + } + + // Set the map name + //@SABER_EGS IsEOSDedicatedServer() case added + if( WorldInfo.IsConsoleDedicatedServer() || WorldInfo.IsEOSDedicatedServer() ) + { + KFGameSettings.MapName = WorldInfo.GetMapName(true); + foreach WorldInfo.AllControllers(class'PlayerController', PC) + if (PC.bIsPlayer) + NumHumanPlayers++; + KFGameSettings.NumOpenPublicConnections = KFGameSettings.NumPublicConnections - NumHumanPlayers; + } + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4 - PlayfabInter: "$PlayfabInter); + if (PlayfabInter != none) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4.1 - IsRegisteredWithPlayfab: "$PlayfabInter.IsRegisteredWithPlayfab()); + } + + if( PlayfabInter != none && PlayfabInter.IsRegisteredWithPlayfab() ) + { + PlayfabInter.ServerUpdateOnlineGame(); + //@SABER_EGS_BEGIN Crossplay support + if (WorldInfo.IsEOSDedicatedServer()) { + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + //@SABER_EGS_END + } + else + { + //Trigger re-broadcast of game settings + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + } + } + } +} + +defaultproperties +{ + bIsCustomGame=False +} \ No newline at end of file diff --git a/MskGs/Classes/MskGs_Objective.uc b/MskGs/Classes/MskGs_Objective.uc new file mode 100644 index 0000000..d20a876 --- /dev/null +++ b/MskGs/Classes/MskGs_Objective.uc @@ -0,0 +1,110 @@ +class MskGs_Objective extends KFGameInfo_Objective; + +function UpdateGameSettings() +{ + local name SessionName; + local KFOnlineGameSettings KFGameSettings; + local int NumHumanPlayers; + local KFGameEngine KFEngine; + local PlayerController PC; + + if (WorldInfo.NetMode == NM_DedicatedServer || WorldInfo.NetMode == NM_ListenServer) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 1 - GameInterface: "$GameInterface); + if (GameInterface != None) + { + KFEngine = KFGameEngine(class'Engine'.static.GetEngine()); + + SessionName = PlayerReplicationInfoClass.default.SessionName; + + if( PlayfabInter != none && PlayfabInter.GetGameSettings() != none ) + { + KFGameSettings = KFOnlineGameSettings(PlayfabInter.GetGameSettings()); + KFGameSettings.bAvailableForTakeover = KFEngine.bAvailableForTakeover; + } + else + { + KFGameSettings = KFOnlineGameSettings(GameInterface.GetGameSettings(SessionName)); + } + //Ensure bug-for-bug compatibility with KF1 + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 2 - KFGameSettings: "$KFGameSettings); + + if (KFGameSettings != None) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 3 - KFGameSettings.bAvailableForTakeover: "$KFGameSettings.bAvailableForTakeover); + + KFGameSettings.Mode = default.GameModes.Find('ClassNameAndPath', "KFGameContent.KFGameInfo_Objective"); + KFGameSettings.Difficulty = GameDifficulty; + //Ensure bug-for-bug compatibility with KF1 + if (WaveNum == 0) + { + KFGameSettings.bInProgress = false; + KFGameSettings.CurrentWave = 1; + } + else + { + KFGameSettings.bInProgress = true; + KFGameSettings.CurrentWave = WaveNum; + } + //Also from KF1 + if(MyKFGRI != none) + { + KFGameSettings.NumWaves = MyKFGRI.GetFinalWaveNum(); + } + else + { + KFGameSettings.NumWaves = WaveMax - 1; + } + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName; + + KFGameSettings.NumPublicConnections = MaxPlayersAllowed; + KFGameSettings.bRequiresPassword = RequiresPassword(); + KFGameSettings.bCustom = False; + KFGameSettings.bUsesStats = !IsUnrankedGame(); + KFGameSettings.NumSpectators = NumSpectators; + if(MyKFGRI != none) + { + MyKFGRI.bCustom = False; + } + + // Set the map name + //@SABER_EGS IsEOSDedicatedServer() case added + if( WorldInfo.IsConsoleDedicatedServer() || WorldInfo.IsEOSDedicatedServer() ) + { + KFGameSettings.MapName = WorldInfo.GetMapName(true); + foreach WorldInfo.AllControllers(class'PlayerController', PC) + if (PC.bIsPlayer) + NumHumanPlayers++; + KFGameSettings.NumOpenPublicConnections = KFGameSettings.NumPublicConnections - NumHumanPlayers; + } + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4 - PlayfabInter: "$PlayfabInter); + if (PlayfabInter != none) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4.1 - IsRegisteredWithPlayfab: "$PlayfabInter.IsRegisteredWithPlayfab()); + } + + if( PlayfabInter != none && PlayfabInter.IsRegisteredWithPlayfab() ) + { + PlayfabInter.ServerUpdateOnlineGame(); + //@SABER_EGS_BEGIN Crossplay support + if (WorldInfo.IsEOSDedicatedServer()) { + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + //@SABER_EGS_END + } + else + { + //Trigger re-broadcast of game settings + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + } + } + } +} + +defaultproperties +{ + bIsCustomGame=False +} \ No newline at end of file diff --git a/MskGs/Classes/MskGs_Survival.uc b/MskGs/Classes/MskGs_Survival.uc new file mode 100644 index 0000000..4dd538c --- /dev/null +++ b/MskGs/Classes/MskGs_Survival.uc @@ -0,0 +1,110 @@ +class MskGs_Survival extends KFGameInfo_Survival; + +function UpdateGameSettings() +{ + local name SessionName; + local KFOnlineGameSettings KFGameSettings; + local int NumHumanPlayers; + local KFGameEngine KFEngine; + local PlayerController PC; + + if (WorldInfo.NetMode == NM_DedicatedServer || WorldInfo.NetMode == NM_ListenServer) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 1 - GameInterface: "$GameInterface); + if (GameInterface != None) + { + KFEngine = KFGameEngine(class'Engine'.static.GetEngine()); + + SessionName = PlayerReplicationInfoClass.default.SessionName; + + if( PlayfabInter != none && PlayfabInter.GetGameSettings() != none ) + { + KFGameSettings = KFOnlineGameSettings(PlayfabInter.GetGameSettings()); + KFGameSettings.bAvailableForTakeover = KFEngine.bAvailableForTakeover; + } + else + { + KFGameSettings = KFOnlineGameSettings(GameInterface.GetGameSettings(SessionName)); + } + //Ensure bug-for-bug compatibility with KF1 + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 2 - KFGameSettings: "$KFGameSettings); + + if (KFGameSettings != None) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 3 - KFGameSettings.bAvailableForTakeover: "$KFGameSettings.bAvailableForTakeover); + + KFGameSettings.Mode = default.GameModes.Find('ClassNameAndPath', "KFGameContent.KFGameInfo_Survival"); + KFGameSettings.Difficulty = GameDifficulty; + //Ensure bug-for-bug compatibility with KF1 + if (WaveNum == 0) + { + KFGameSettings.bInProgress = false; + KFGameSettings.CurrentWave = 1; + } + else + { + KFGameSettings.bInProgress = true; + KFGameSettings.CurrentWave = WaveNum; + } + //Also from KF1 + if(MyKFGRI != none) + { + KFGameSettings.NumWaves = MyKFGRI.GetFinalWaveNum(); + } + else + { + KFGameSettings.NumWaves = WaveMax - 1; + } + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName; + + KFGameSettings.NumPublicConnections = MaxPlayersAllowed; + KFGameSettings.bRequiresPassword = RequiresPassword(); + KFGameSettings.bCustom = False; + KFGameSettings.bUsesStats = !IsUnrankedGame(); + KFGameSettings.NumSpectators = NumSpectators; + if(MyKFGRI != none) + { + MyKFGRI.bCustom = False; + } + + // Set the map name + //@SABER_EGS IsEOSDedicatedServer() case added + if( WorldInfo.IsConsoleDedicatedServer() || WorldInfo.IsEOSDedicatedServer() ) + { + KFGameSettings.MapName = WorldInfo.GetMapName(true); + foreach WorldInfo.AllControllers(class'PlayerController', PC) + if (PC.bIsPlayer) + NumHumanPlayers++; + KFGameSettings.NumOpenPublicConnections = KFGameSettings.NumPublicConnections - NumHumanPlayers; + } + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4 - PlayfabInter: "$PlayfabInter); + if (PlayfabInter != none) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4.1 - IsRegisteredWithPlayfab: "$PlayfabInter.IsRegisteredWithPlayfab()); + } + + if( PlayfabInter != none && PlayfabInter.IsRegisteredWithPlayfab() ) + { + PlayfabInter.ServerUpdateOnlineGame(); + //@SABER_EGS_BEGIN Crossplay support + if (WorldInfo.IsEOSDedicatedServer()) { + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + //@SABER_EGS_END + } + else + { + //Trigger re-broadcast of game settings + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + } + } + } +} + +defaultproperties +{ + bIsCustomGame=False +} \ No newline at end of file diff --git a/MskGs/Classes/MskGs_VersusSurvival.uc b/MskGs/Classes/MskGs_VersusSurvival.uc new file mode 100644 index 0000000..0cc674f --- /dev/null +++ b/MskGs/Classes/MskGs_VersusSurvival.uc @@ -0,0 +1,110 @@ +class MskGs_VersusSurvival extends KFGameInfo_VersusSurvival; + +function UpdateGameSettings() +{ + local name SessionName; + local KFOnlineGameSettings KFGameSettings; + local int NumHumanPlayers; + local KFGameEngine KFEngine; + local PlayerController PC; + + if (WorldInfo.NetMode == NM_DedicatedServer || WorldInfo.NetMode == NM_ListenServer) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 1 - GameInterface: "$GameInterface); + if (GameInterface != None) + { + KFEngine = KFGameEngine(class'Engine'.static.GetEngine()); + + SessionName = PlayerReplicationInfoClass.default.SessionName; + + if( PlayfabInter != none && PlayfabInter.GetGameSettings() != none ) + { + KFGameSettings = KFOnlineGameSettings(PlayfabInter.GetGameSettings()); + KFGameSettings.bAvailableForTakeover = KFEngine.bAvailableForTakeover; + } + else + { + KFGameSettings = KFOnlineGameSettings(GameInterface.GetGameSettings(SessionName)); + } + //Ensure bug-for-bug compatibility with KF1 + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 2 - KFGameSettings: "$KFGameSettings); + + if (KFGameSettings != None) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 3 - KFGameSettings.bAvailableForTakeover: "$KFGameSettings.bAvailableForTakeover); + + KFGameSettings.Mode = default.GameModes.Find('ClassNameAndPath', "KFGameContent.KFGameInfo_VersusSurvival"); + KFGameSettings.Difficulty = GameDifficulty; + //Ensure bug-for-bug compatibility with KF1 + if (WaveNum == 0) + { + KFGameSettings.bInProgress = false; + KFGameSettings.CurrentWave = 1; + } + else + { + KFGameSettings.bInProgress = true; + KFGameSettings.CurrentWave = WaveNum; + } + //Also from KF1 + if(MyKFGRI != none) + { + KFGameSettings.NumWaves = MyKFGRI.GetFinalWaveNum(); + } + else + { + KFGameSettings.NumWaves = WaveMax - 1; + } + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName; + + KFGameSettings.NumPublicConnections = MaxPlayersAllowed; + KFGameSettings.bRequiresPassword = RequiresPassword(); + KFGameSettings.bCustom = False; + KFGameSettings.bUsesStats = !IsUnrankedGame(); + KFGameSettings.NumSpectators = NumSpectators; + if(MyKFGRI != none) + { + MyKFGRI.bCustom = False; + } + + // Set the map name + //@SABER_EGS IsEOSDedicatedServer() case added + if( WorldInfo.IsConsoleDedicatedServer() || WorldInfo.IsEOSDedicatedServer() ) + { + KFGameSettings.MapName = WorldInfo.GetMapName(true); + foreach WorldInfo.AllControllers(class'PlayerController', PC) + if (PC.bIsPlayer) + NumHumanPlayers++; + KFGameSettings.NumOpenPublicConnections = KFGameSettings.NumPublicConnections - NumHumanPlayers; + } + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4 - PlayfabInter: "$PlayfabInter); + if (PlayfabInter != none) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4.1 - IsRegisteredWithPlayfab: "$PlayfabInter.IsRegisteredWithPlayfab()); + } + + if( PlayfabInter != none && PlayfabInter.IsRegisteredWithPlayfab() ) + { + PlayfabInter.ServerUpdateOnlineGame(); + //@SABER_EGS_BEGIN Crossplay support + if (WorldInfo.IsEOSDedicatedServer()) { + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + //@SABER_EGS_END + } + else + { + //Trigger re-broadcast of game settings + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + } + } + } +} + +defaultproperties +{ + bIsCustomGame=False +} \ No newline at end of file diff --git a/MskGs/Classes/MskGs_WeeklySurvival.uc b/MskGs/Classes/MskGs_WeeklySurvival.uc new file mode 100644 index 0000000..2c7da7f --- /dev/null +++ b/MskGs/Classes/MskGs_WeeklySurvival.uc @@ -0,0 +1,110 @@ +class MskGs_WeeklySurvival extends KFGameInfo_WeeklySurvival; + +function UpdateGameSettings() +{ + local name SessionName; + local KFOnlineGameSettings KFGameSettings; + local int NumHumanPlayers; + local KFGameEngine KFEngine; + local PlayerController PC; + + if (WorldInfo.NetMode == NM_DedicatedServer || WorldInfo.NetMode == NM_ListenServer) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 1 - GameInterface: "$GameInterface); + if (GameInterface != None) + { + KFEngine = KFGameEngine(class'Engine'.static.GetEngine()); + + SessionName = PlayerReplicationInfoClass.default.SessionName; + + if( PlayfabInter != none && PlayfabInter.GetGameSettings() != none ) + { + KFGameSettings = KFOnlineGameSettings(PlayfabInter.GetGameSettings()); + KFGameSettings.bAvailableForTakeover = KFEngine.bAvailableForTakeover; + } + else + { + KFGameSettings = KFOnlineGameSettings(GameInterface.GetGameSettings(SessionName)); + } + //Ensure bug-for-bug compatibility with KF1 + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 2 - KFGameSettings: "$KFGameSettings); + + if (KFGameSettings != None) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 3 - KFGameSettings.bAvailableForTakeover: "$KFGameSettings.bAvailableForTakeover); + + KFGameSettings.Mode = default.GameModes.Find('ClassNameAndPath', "KFGameContent.KFGameInfo_WeeklySurvival"); + KFGameSettings.Difficulty = GameDifficulty; + //Ensure bug-for-bug compatibility with KF1 + if (WaveNum == 0) + { + KFGameSettings.bInProgress = false; + KFGameSettings.CurrentWave = 1; + } + else + { + KFGameSettings.bInProgress = true; + KFGameSettings.CurrentWave = WaveNum; + } + //Also from KF1 + if(MyKFGRI != none) + { + KFGameSettings.NumWaves = MyKFGRI.GetFinalWaveNum(); + } + else + { + KFGameSettings.NumWaves = WaveMax - 1; + } + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName; + + KFGameSettings.NumPublicConnections = MaxPlayersAllowed; + KFGameSettings.bRequiresPassword = RequiresPassword(); + KFGameSettings.bCustom = False; + KFGameSettings.bUsesStats = !IsUnrankedGame(); + KFGameSettings.NumSpectators = NumSpectators; + if(MyKFGRI != none) + { + MyKFGRI.bCustom = False; + } + + // Set the map name + //@SABER_EGS IsEOSDedicatedServer() case added + if( WorldInfo.IsConsoleDedicatedServer() || WorldInfo.IsEOSDedicatedServer() ) + { + KFGameSettings.MapName = WorldInfo.GetMapName(true); + foreach WorldInfo.AllControllers(class'PlayerController', PC) + if (PC.bIsPlayer) + NumHumanPlayers++; + KFGameSettings.NumOpenPublicConnections = KFGameSettings.NumPublicConnections - NumHumanPlayers; + } + + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4 - PlayfabInter: "$PlayfabInter); + if (PlayfabInter != none) + { + //`REMOVEMESOON_ServerTakeoverLog("KFGameInfo_Survival.UpdateGameSettings 4.1 - IsRegisteredWithPlayfab: "$PlayfabInter.IsRegisteredWithPlayfab()); + } + + if( PlayfabInter != none && PlayfabInter.IsRegisteredWithPlayfab() ) + { + PlayfabInter.ServerUpdateOnlineGame(); + //@SABER_EGS_BEGIN Crossplay support + if (WorldInfo.IsEOSDedicatedServer()) { + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + //@SABER_EGS_END + } + else + { + //Trigger re-broadcast of game settings + GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true); + } + } + } + } +} + +defaultproperties +{ + bIsCustomGame=False +}