private void PrepareTestData1(int playerId, int offsetX, int offsetY, out Cmd cmd) { Coordinate[] coords = m_map.FindDataOfType((int)KnownVoxelTypes.Eater, playerId); Assert.AreEqual(coords.Length, 2); VoxelData unit = m_map.Get(coords[0]); Coordinate targetCoordinate = coords[0].Add(offsetX, offsetY); cmd = new MovementCmd(CmdCode.Move, unit.UnitOrAssetIndex, 0) { Coordinates = new[] { targetCoordinate }, }; }
protected void TaskMovementFailed(TaskInfo taskInfo) { Assert.DoesNotThrow(() => { EndTest(); }); Assert.IsTrue(taskInfo.IsFailed); MovementCmd cmd = (MovementCmd)taskInfo.Cmd; Coordinate[] coords = m_map.FindDataOfType((int)KnownVoxelTypes.Eater, 1); Assert.AreNotEqual(cmd.Coordinates[0], coords[0]); Assert.Pass(); }
public IEnumerator FindPathClientSidePreprocessingTest() { BeginTest(TestEnv0, 4, 0, () => { MapRoot map = Dependencies.Map.Map; IMatchEngineCli matchEngineCli = Dependencies.MatchEngine; const int playerId = 3; Coordinate[] coords = map.FindDataOfType((int)KnownVoxelTypes.Eater, playerId); VoxelData data = map.Get(coords[0]); Coordinate targetCoordinate = coords[0].Add(-1, -1); MovementCmd moveCmd = new MovementCmd(CmdCode.Move, data.UnitOrAssetIndex, 0); moveCmd.Coordinates = new[] { coords[0], targetCoordinate }; MatchEngineCliEvent <long, CommandsBundle> eventHandler = null; eventHandler = (e, tick, commandsBundle) => { if (commandsBundle.TasksStateInfo != null) { TaskStateInfo taskStateInfo = commandsBundle.TasksStateInfo[0]; Assert.AreEqual(taskStateInfo.PlayerId, playerId); if (taskStateInfo.State == TaskState.Completed) { matchEngineCli.ExecuteCommands -= eventHandler; Coordinate[] newCoords = map.FindDataOfType((int)KnownVoxelTypes.Eater, playerId); Assert.AreEqual(targetCoordinate, newCoords[0]); EndTest(); } else { Assert.AreEqual(TaskState.Active, taskStateInfo.State); } } }; matchEngineCli.ExecuteCommands += eventHandler; TaskInfo taskInfo = new TaskInfo(moveCmd); taskInfo.RequiresClientSidePreprocessing = true; matchEngineCli.GetClientTaskEngine(playerId).GenerateIdentitifers(taskInfo); matchEngineCli.Submit(playerId, new TaskCmd(SerializedTask.FromTaskInfo(taskInfo))); }); yield return(Run()); }
public IEnumerator FindPathClientSideTaskTest() { BeginTest(TestEnv1, 2, 0, () => { MapRoot map = Dependencies.Map.Map; IMatchEngineCli matchEngineCli = Dependencies.MatchEngine; const int playerId = 1; Coordinate[] coords = map.FindDataOfType((int)KnownVoxelTypes.Eater, playerId); VoxelData data = map.Get(coords[0]); Coordinate targetCoordinate = coords[0].Add(1, -1); MovementCmd moveCmd = new MovementCmd(CmdCode.Move, data.UnitOrAssetIndex, 0); moveCmd.Coordinates = new[] { coords[0], targetCoordinate }; ITaskEngine taskEngine = matchEngineCli.GetClientTaskEngine(playerId); TaskEngineEvent <TaskInfo> taskStateChanged = null; taskStateChanged = taskStateInfo => { if (taskStateInfo.State == TaskState.Completed) { taskEngine.TaskStateChanged -= taskStateChanged; Coordinate[] newCoords = map.FindDataOfType((int)KnownVoxelTypes.Eater, playerId); Assert.AreEqual(targetCoordinate, newCoords[0]); EndTest(); } else { Assert.AreEqual(TaskState.Active, taskStateInfo.State); } }; taskEngine.TaskStateChanged += taskStateChanged; TaskInfo taskInfo = new TaskInfo(moveCmd, playerId); taskInfo.RequiresClientSidePreprocessing = true; taskEngine.SubmitTask(taskInfo); }); yield return(Run()); }