Exemplo n.º 1
0
        /// <summary>
        /// Formats data to send to the client on the start of a new turn in battle.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private async void OnStartOfTurn(object sender, StartOfTurnEventArgs args)
        {
            int     turnExpiration      = (int)(args.TurnExpiration - DateTime.Now).TotalSeconds;
            dynamic actionPointsChanged = null;

            if (args.ActionPointData != null && args.AffectedEntities != null)
            {
                // Get action points changed for CombatEntities that are not in AffectedEntities
                actionPointsChanged = args.ActionPointData.Select(kvp => new
                {
                    FormationId     = kvp.Key,
                    ActionPointData = kvp.Value
                }).ToList();
            }

            // Todo: Send delayed abilities too
            await _battleHubContext.Clients.Users(args.ParticipantIds).SendAsync("startOfTurn", new
            {
                args.ActiveEntities,
                args.AffectedEntities,
                args.IsDefendersTurn,
                actionPointsChanged,
                turnExpiration
            });
        }
Exemplo n.º 2
0
 /// <summary>
 /// Provides the UI character manager with an updated set of round order ids at the start of a new turn.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void OnStartOfTurn(object sender, StartOfTurnEventArgs args)
 {
     _uiCharacterManager.CurrentRoundOrderIds = args.CurrentRoundOrderIds;
     _uiCharacterManager.NextRoundOrderIds    = args.NextRoundOrderIds;
     _defaultsHandler.IsInCommandPanel        = true;
 }