private void OnCreateGameEvent(CreateGameEvent createGameEvent) { StartCoroutine(CreateMap(() => { MessageHub.Instance.Publish(new MapCreatedEvent(null) { Map = _map }); })); }
private static void CreateGame() { using (IEventStream stream = _store.OpenStream(_gameId, 0)) { // create game var @event = new CreateGameEvent(); stream.Add(new EventMessage { Body = @event }); stream.CommitChanges(Guid.NewGuid()); } CreateCastle(_castleId); }
private void ResponseParse(AbstractMessage response) { if (response is LoginResponse) { Guid userID = (response as LoginResponse).UserID; curUser = userID; GetLoginEvent.Invoke(userID); } else if (response is CreateGameResponse) { Guid gameID = (response as CreateGameResponse).GameID; curGame = gameID; CreateGameEvent?.Invoke(gameID); } else if (response is GameListResponse) { GetGameListEvent?.Invoke((response as GameListResponse).GameList); } else if (response is SendMazeResponse) { SendMazeEvent?.Invoke(); } else if (response is YourStep) { YourStepEvent?.Invoke(); } else if (response is SendStartPositionResponce) { SendPointEvent?.Invoke(); } else if (response is MoveObjectResponse) { MoveObjectEvent?.Invoke((bool)(response as MoveObjectResponse).IsMoved); } else if (response is GiveMaze) { GiveMazeEvent?.Invoke(); } else if (response is GivePoint) { GivePointEvent?.Invoke(); } //else if (response is CumulativeResponse) //{ // foreach (var resp in (response as CumulativeResponse).ResponseList) // { // ResponseParse(resp); // } //} else if (response is GameFinished) { if ((response as GameFinished).Winner.CompareTo(curUser) == 0) { GameIsFinishedEvent?.Invoke("Вы победили", (response as GameFinished).FullMaze); } else { GameIsFinishedEvent?.Invoke("Вы проиграли", (response as GameFinished).FullMaze); } } else { throw new Exception("Неизвестный пакет: " + response.GetType()); } }
public void OnEvent(CreateGameEvent args) { _createAction.Start(); }