Exemplo n.º 1
0
        public bool ActionIsAvailableToPlayer(ActionEnum actionType, int playerIndex)
        {
            // Check whether specified player is entitled to take this action at this stage (only valid during a started game)
            ActionAvailability aa = this._ActionAvailability.GetValueOrDefault(actionType);

            if (aa.Availability == AvailabilityEnum.NotAvailable)
            {
                return(false);
            }
            else if (aa.Availability == AvailabilityEnum.AnyUnregisteredPlayer & playerIndex == -1)
            {
                return(true);
            }
            else if (aa.Availability == AvailabilityEnum.AnyRegisteredPlayer & playerIndex != -1)
            {
                return(true);
            }
            else if (aa.Availability == AvailabilityEnum.AdministratorOnly & playerIndex != -1 &&
                     this.Participants[playerIndex].IsGameAdministrator)
            {
                return(true);
            }
            else if (aa.Availability == AvailabilityEnum.ActivePlayerOnly
                     & playerIndex == IndexOfParticipantToTakeNextAction
                     & playerIndex != -1)
            {
                return(true);
            }
            return(false);
        }
Exemplo n.º 2
0
        public void SetActionAvailability(ActionEnum ac, AvailabilityEnum av)
        {
            ActionAvailability aa;

            if (_ActionAvailability.TryGetValue(ac, out aa))
            {
                aa.Availability = av;
            }
            else
            {
                aa = new ActionAvailability(ac, av);
                _ActionAvailability.Add(ac, aa); // Note we are adding the ActionAvailability object as the value
                ActionAvailabilityList.Add(aa);  // Also add it to the list that is in included in the JSON export
            }
        }