public PlayerCharacterController(PartyDataWrapper party) { PartyId = (uint)party.PartyId.GetHashCode(); Characters = party.Characters; GameStateUpdatedSignal = new GameStateUpdated(); CombatCompleteSignal = new CombatComplete(); }
private async Task UpdateGameBoardAsync(IPlayer player, GameState state) { var id = ((Individual)player).Id; if (GameStateUpdated != null) { await GameStateUpdated.Invoke(id, state); } }
private async Task OnGameStateUpdated() { if (GameStateUpdated is null) { return; } var tasks = new List <Task>(); var callbackList = GameStateUpdated?.GetInvocationList(); for (int i = 0; i < callbackList.Length; i++) { var func = (Func <IPlayer, GameState, Task>)callbackList[i]; var task = func(_player, _gameScene.State); tasks.Add(task); } await Task.WhenAll(tasks); }
/// <summary> /// Updates player info and raises the appropiate events. /// </summary> public void UpdateGameState(GameState newState) { GameState = newState; GameStateUpdated?.Invoke(newState); }
/// <summary> /// Updates player info and raises the appropiate events. /// </summary> public void UpdateGameState(GameState updatedGameState) { GameState = updatedGameState; GameStateUpdated?.Invoke(updatedGameState); }