public override void OnExecute(AgricolaPlayer player, List <GameActionNotice> resultingNotices)
            {
                int owned = 0;

                if (this.RequiredType.IsAnimal())
                {
                    owned = player.Farmyard.AnimalCount((AnimalResource)this.RequiredType);
                }
                else
                {
                    owned = player.GetResource(this.RequiredType);
                }

                if (!this.Repeat)
                {
                    if (owned >= this.RequiredCount)
                    {
                        ActionService.AssignResource(player, new ResourceCache(this.Type, this.Count), resultingNotices);
                    }
                }
                else
                {
                    var count = (int)(owned / this.RequiredCount);
                    ActionService.AssignResource(player, new ResourceCache(this.Type, this.Count * count), resultingNotices);
                }
            }
Esempio n. 2
0
        protected override void OnExecute(AgricolaPlayer player, GameEventTrigger trigger, Card card, List <GameActionNotice> resultingNotices)
        {
            var dif = 4 - ((TravelingPlayersActionTrigger)trigger).FoodTaken;

            if (dif > 0)
            {
                var resource = new ResourceCache(Resource.Food, dif);
                ActionService.AssignResource(player, resource, resultingNotices);
            }
        }
            public override void OnExecute(AgricolaPlayer player, List <GameActionNotice> resultingNotices)
            {
                var gameRoundsRemaining = ((AgricolaGame)player.Game).RoundsRemaining;

                if (gameRoundsRemaining >= RoundsRemaining)
                {
                    if (this.Type.IsAnimal())
                    {
                        // Animals not supported during this action currently
                    }
                    else
                    {
                        ActionService.AssignResource(player, new ResourceCache(this.Type, this.Count), resultingNotices);
                    }
                }
            }
Esempio n. 4
0
        protected override void OnExecute(AgricolaPlayer player, GameEventTrigger trigger, Card card, List <GameActionNotice> resultingNotices)
        {
            var resource = new ResourceCache(Resources[0].Type, Resources[0].Count * ((BakeTrigger)trigger).GrainBaked);

            ActionService.AssignResource(player, resource, resultingNotices);
        }