Ejemplo n.º 1
0
        /// <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();
        }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
 /// <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);
 }