/// <summary> /// Ends the current turn and broadcasts the EndOfTurn event. /// </summary> public void EndTurn() { // Prepare event information before information is changed var eventArgs = new EndOfTurnEventArgs() { EndOfTurnCharacterId = CombatStateHandler.CurrentRoundOrder[0].Id, CurrentTurnNumber = TurnCounter }; CombatStateHandler.EndTurn(); EndOfTurn?.Invoke(this, eventArgs); StartTurn(); }
/// <summary> /// Handles any actions that occurs at the end of a turn. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void EndOfTurnTriggered(object sender, EndOfTurnEventArgs args) { Thread.Sleep(1000); _defaultsHandler.ActiveCharacterId = _combatStateHandler.GetActiveCharacterID(); _defaultsHandler.IsInActionPanel = false; _defaultsHandler.IsInCategoryPanel = false; _defaultsHandler.IsInFormationPanel = false; _defaultsHandler.IsInCharacterPanel = false; _defaultsHandler.IsInCommandPanel = false; _defaultsHandler.IsInStatusCommand = false; _defaultsHandler.CurrentTargetPositions = new List <int>(); RefreshActionPanelList(); _uiContainer.PrintUI(); }
/// <summary> /// At the end of the turn, send all connected clients the CombatEntities affected by end of turn effects. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private async void OnEndOfTurn(object sender, EndOfTurnEventArgs args) { // Todo: Send delayed abilities too await _battleHubContext.Clients.Users(args.ParticipantIds).SendAsync("endOfTurn", args.AffectedEntities); }