// first you start the server passing the engine public void StartServer(IJUMPGameServerEngine gameServerEngine, List <IJUMPBot> bots, bool isOfflinePlayMode) { GameServerEngine = gameServerEngine; Bots = bots; IsOfflinePlayMode = isOfflinePlayMode; Players = new List <IJUMPPlayer>(); }
private void DoStartGameServer() { LogInfo(() => FormatLogMessage("JUMP.DoStartGameServer. Offline:{0}", IsOfflinePlayMode)); if (!IsOfflinePlayMode && !PhotonNetwork.isMasterClient) { LogError(() => FormatLogMessage("Trying to start a game server not on the master client")); return; } LogInfo(() => FormatLogMessage("Starting a game server with Server of class: {0} and bots of class {1}", GameServerEngineTypeName, BotTypeName)); if (!CheckType <IJUMPGameServerEngine>(GameServerEngineTypeName, "GameServerEngineTypeName")) { return; } if (!CheckType <IJUMPBot>(BotTypeName, "BotTypeName")) { return; } // Create the Engine IJUMPGameServerEngine serverEngineInstance = Activator.CreateInstance(Type.GetType(GameServerEngineTypeName)) as IJUMPGameServerEngine; List <IJUMPBot> bots = new List <IJUMPBot>(); if (IsOfflinePlayMode) { // And create the Bots bots = System.Linq.Enumerable.Repeat(Activator.CreateInstance(Type.GetType(BotTypeName)) as IJUMPBot, JUMPOptions.NumPlayers - 1).ToList(); bots.ForEach(x => { x.Engine = serverEngineInstance; }); } // Start the server GameServer.StartServer(serverEngineInstance, bots, IsOfflinePlayMode); }