private void OnDestroy() { m_serializer = null; if (m_gState != null) { m_gState.SetValue("LocalGameServer.m_replay", null); } if (m_players != null) { m_players.Remove(m_neutralPlayer.Id); } if (m_room != null) { m_room.Players.Remove(m_neutralPlayer.Id); } if (m_bots != null) { for (int i = 0; i < m_bots.Length; ++i) { IBotController bot = m_bots[i]; if (bot != null) { MatchFactory.DestroyBotController(bot); } } } if (m_engine != null) { MatchFactory.DestroyMatchEngine(m_engine); } }
private void Update() { for (int i = 0; i < m_taskRunners.Length; ++i) { ITaskRunner taskRunner = m_taskRunners[i]; if (taskRunner != null) { taskRunner.Update(); } } for (int i = 0; i < m_pathFinders.Length; ++i) { IPathFinder pathFinder = m_pathFinders[i]; if (pathFinder != null) { pathFinder.Update(); } } if (m_bots != null) { for (int i = 0; i < m_bots.Length; ++i) { IBotController bot = m_bots[i]; if (bot != null) { bot.Update(Time.realtimeSinceStartup); } } } }
static void Main(string[] args) { var logger = LogManager.GetCurrentClassLogger(); AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; try { var arguments = GetArguments(args); var startup = new Startup(arguments); _botController = startup.ServiceProvider.GetService <IBotController>(); _botController.Start(); Console.WriteLine("Press ANY key to exit"); Console.ReadKey(); } catch (Exception ex) { logger.Error(ex, "Stopped program because of exception"); throw; } finally { LogManager.Shutdown(); } }
public MessageController(IVkApi vkApi) { _vkApi = vkApi; _controller = new VkBotController(); _anekManager = new AnekManager(_controller); _sender = new MessageSender(_vkApi); }
public SinglePlayGame(PlayGameInitData playGameInitData) { var playerMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); playerMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("PlayerBullet"); var enemyMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); enemyMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("EnemyBullet"); playerBotController = new PlayerBotController( playGameInitData.botEntityPrefab, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.cameraFollower, playGameInitData.playerHpPresenter, playGameInitData.runButtonEvent, playGameInitData.scriptText, playGameInitData.errorMsg, playGameInitData.soundManager, playerMeleeAttackEntity, playGameInitData.processScrollViewPresenter, playGameInitData.eventSystemWatcher ); enemyBotController = new CpuBotController( playGameInitData.botEntityPrefab2P, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.soundManager, enemyMeleeAttackEntity, playGameInitData.eventSystemWatcher ); }
static void Main(string[] args) { ConfigureServices(); botController = container.GetInstance <IBotController>(); bot.OnMessage += botController.StartBot; bot.StartReceiving(); Console.WriteLine("Bot Started"); Console.ReadKey(); }
public void llExecCharacterCmd(LSL_Integer command, LSL_List options) { IBotManager botManager = World.RequestModuleInterface <IBotManager>(); if (botManager != null) { IBotController controller = botManager.GetCharacterManager(m_host.ParentEntity.UUID); if (controller != null) { if (command == ScriptBaseClass.CHARACTER_CMD_JUMP) { controller.Jump(); } if (command == ScriptBaseClass.CHARACTER_CMD_STOP) { controller.StopMoving(false, true); } } } }
private void Start() { LocalPlayerIndex = m_viewport.LocalPlayerIndex; int playerIndex = m_gameState.LocalToPlayerIndex(LocalPlayerIndex); m_cameraController = Dependencies.GameView.GetCameraController(LocalPlayerIndex); m_locationPicker = Dependencies.GameView.GetLocationPicker(LocalPlayerIndex); m_playersBot = MatchFactoryCli.CreateBotController(m_gameState.GetPlayer(playerIndex), m_engine.GetClientTaskEngine(playerIndex), new PlayerStrategy()); m_playersBot.Init(); SerializedTask[] taskTemplates = m_gameState.GetTaskTemplates(playerIndex); SerializedNamedTaskLaunchInfo[] taskTemplatesData = m_gameState.GetTaskTemplateData(playerIndex); for (int i = 0; i < taskTemplates.Length; ++i) { TaskTemplateType coreTaskType = taskTemplatesData[i].Type; m_playersBot.RegisterTask(coreTaskType, taskTemplates[i]); } }
public ClientMultiPlayGame(PlayGameInitData playGameInitData, MultiGameInfo multiGameInfo) { gameSignalingClient = new GameSignalingClient(multiGameInfo.myTcpClient); gameSignalingClient.ReceivedBattleResult += CheckDeath; var playerMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); playerMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("PlayerBullet"); var enemyMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); enemyMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("EnemyBullet"); playerBotController = new ClientBotController( playGameInitData.botEntityPrefab2P, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.cameraFollower, playGameInitData.playerHpPresenter, playGameInitData.runButtonEvent, playGameInitData.scriptText, playGameInitData.errorMsg, playGameInitData.soundManager, gameSignalingClient, playerMeleeAttackEntity, playGameInitData.processScrollViewPresenter, playGameInitData.eventSystemWatcher ); enemyBotController = new RemoteHostBotController( playGameInitData.botEntityPrefab, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.soundManager, gameSignalingClient, enemyMeleeAttackEntity, playGameInitData.eventSystemWatcher ); gameSignalingClient.ReceivedClientPos += playerBotController.SetPos; gameSignalingClient.ReceivedHostPos += enemyBotController.SetPos; }
public HostMultiPlayGame(PlayGameInitData playGameInitData, MultiGameInfo multiGameInfo) { gameSignalingHost = new GameSignalingHost(multiGameInfo.myTcpClient, SelectedStageData.GetSelectedStageKind()); var playerMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); playerMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("PlayerBullet"); var enemyMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); enemyMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("EnemyBullet"); playerBotController = new HostBotController( playGameInitData.botEntityPrefab, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.cameraFollower, playGameInitData.playerHpPresenter, playGameInitData.runButtonEvent, playGameInitData.scriptText, playGameInitData.errorMsg, playGameInitData.soundManager, gameSignalingHost, playerMeleeAttackEntity, playGameInitData.processScrollViewPresenter, playGameInitData.eventSystemWatcher ); enemyBotController = new RemoteClientBotController( playGameInitData.botEntityPrefab2P, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.soundManager, gameSignalingHost, enemyMeleeAttackEntity, playGameInitData.eventSystemWatcher ); }
public void llUpdateCharacter(LSL_List options) { IBotManager botManager = World.RequestModuleInterface <IBotManager>(); if (botManager != null) { IBotController controller = botManager.GetCharacterManager(m_host.ParentEntity.UUID); if (controller == null) { return; // nothing to controll :( } for (int i = 0; i < options.Length; i += 2) { LSL_Integer opt = options.GetLSLIntegerItem(i); LSL_Float value = options.GetLSLFloatItem(i + 1); if (opt == ScriptBaseClass.CHARACTER_DESIRED_SPEED) { controller.SetSpeedModifier((float)value.value); } else if (opt == ScriptBaseClass.CHARACTER_RADIUS) { } else if (opt == ScriptBaseClass.CHARACTER_LENGTH) { } else if (opt == ScriptBaseClass.CHARACTER_ORIENTATION) { } else if (opt == ScriptBaseClass.CHARACTER_AVOIDANCE_MODE) { } else if (opt == ScriptBaseClass.CHARACTER_TYPE) { } else if (opt == ScriptBaseClass.TRAVERSAL_TYPE) { } else if (opt == ScriptBaseClass.CHARACTER_MAX_ACCEL) { } else if (opt == ScriptBaseClass.CHARACTER_MAX_DECEL) { } else if (opt == ScriptBaseClass.CHARACTER_MAX_TURN_RADIUS) { } else if (opt == ScriptBaseClass.CHARACTER_DESIRED_TURN_SPEED) { } else if (opt == ScriptBaseClass.CHARACTER_MAX_SPEED) { } else if (opt == ScriptBaseClass.CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES) { } else if (opt == ScriptBaseClass.CHARACTER_STAY_WITHIN_PARCEL) { } } } }
public void Setup() { _controller = Substitute.For <IBotController>(); _grindSessionHandler = Substitute.For <IGrindSessionHandler>(); _grindSession = new GrindSession(_controller, _grindSessionHandler); }
private void ProcessRequest(ClientRequest request, Action <ClientRequest> callback) { Cmd cmd = request.Cmd; if (cmd != null) { if (cmd.Code == CmdCode.GrantBotCtrl) { m_bots = new IBotController[m_game.PlayersCount]; for (int i = 0; i < m_bots.Length; ++i) { Player player = m_game.GetPlayer(i); if (player.IsActiveBot) { IBotController bot = MatchFactoryCli.CreateBotController(player, m_taskEngines[i], new DefaultStrategy()); bot.Init(); m_bots[i] = bot; } } callback(request); } else if (cmd.Code == CmdCode.DenyBotCtrl) { m_bots = new IBotController[m_game.PlayersCount]; for (int i = 0; i < m_bots.Length; ++i) { IBotController bot = m_bots[i]; if (bot != null) { bot.Reset(); } } m_bots = null; callback(request); } else { IVoxelDataController dc = m_game.GetVoxelDataController(request.PlayerIndex, cmd.UnitIndex); if (cmd.Code != CmdCode.Move || dc == null) { if (dc == null) { request.Cmd.ErrorCode = CmdResultCode.Fail_NoUnit; } else { request.Cmd.ErrorCode = CmdResultCode.Fail_NotSupported; } SubmitResponse(request); } else { CoordinateCmd coordinateCmd = (CoordinateCmd)cmd; Debug.Assert(coordinateCmd.Coordinates.Length > 1); IPathFinder pathFinder = m_pathFinders[request.PlayerIndex]; #warning PathFinder should igore dataController.ControlledVoxelData pathFinder.Find(cmd.UnitIndex, -1, dc.Clone(), coordinateCmd.Coordinates, (unitIndex, path) => { coordinateCmd.Coordinates = path; request.Cmd = coordinateCmd; callback(request); }, null); } } } }
public GrindSession(IBotController botController, IGrindSessionHandler grindSessionHandler) { _botController = botController; _grindSessionHandler = grindSessionHandler; }
public BotHost(IBotController bot) { _bot = bot ?? throw new ArgumentNullException(nameof(bot)); }
public static void DestroyBotController(IBotController botController) { botController.Destroy(); }
private void OnDestroy() { if (Dependencies.RemoteGameServer != null) { Dependencies.RemoteGameServer.ConnectionStateChanged -= OnRemoteGameServerConnectionStateChanged; } if (m_matchServer != null) { m_matchServer.Tick -= OnTick; m_matchServer.ReadyToPlayAll -= OnReadyToPlayAll; m_matchServer.Ping -= OnPing; m_matchServer.Paused -= OnPaused; m_matchServer.ConnectionStateChanged -= OnConnectionStateChanged; } if (m_taskEngines != null) { for (int i = 0; i < m_taskEngines.Length; ++i) { ITaskEngine taskEngine = m_taskEngines[i]; if (taskEngine != null) { taskEngine.ClientRequest -= ProcessClientRequest; MatchFactoryCli.DestroyTaskEngine(taskEngine); } } } if (m_taskRunners != null) { for (int i = 0; i < m_taskRunners.Length; ++i) { ITaskRunner taskRunner = m_taskRunners[i]; if (taskRunner != null) { MatchFactoryCli.DestroyTaskRunner(taskRunner); } } } if (m_pathFinders != null) { for (int i = 0; i < m_pathFinders.Length; ++i) { IPathFinder pathFinder = m_pathFinders[i]; if (pathFinder != null) { MatchFactoryCli.DestroyPathFinder(pathFinder); } } } if (m_bots != null) { for (int i = 0; i < m_bots.Length; ++i) { IBotController botController = m_bots[i]; if (botController != null) { MatchFactoryCli.DestroyBotController(botController); } } } }
public AnekManager(IBotController controller) { _controller = controller; }