Exemplo n.º 1
0
        public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data)
        {
            base.OnExecute(player, data);

            ActionService.Cook(player, eventTriggers, ((CookActionData)data).Resources, ResultingNotices);
            ActionService.AssignAnimals(player, ((CookActionData)data).AnimalData, ResultingNotices);

            return(this);
        }
Exemplo n.º 2
0
        public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data)
        {
            base.OnExecute(player, data);

            var choiceData = (AnimalChoiceActionData)data;

            if (choiceData.Option == AnimalResource.Sheep)
            {
                player.AddResource(Resource.Food);
            }
            else if (choiceData.Option == AnimalResource.Cattle)
            {
                player.RemoveResource(Resource.Food);
            }

            ActionService.AssignAnimals(player, choiceData.AnimalData, ResultingNotices);
            return(this);
        }
Exemplo n.º 3
0
        public bool CompleteHarvest(AgricolaPlayer player, HarvestData data, out IClientGameUpdate update, out List <GameActionNotice> notices)
        {
            if (Mode == GameMode.Harvest && player.Harvesting && CanCompleteHarvest(player, data))
            {
                var conversions = data.FeedResources;
                var feedNotice  = new List <INoticePredicate>();
                int begAmount;
                player.FeedFamily(data.FeedResources, feedNotice, out begAmount);

                notices = new List <GameActionNotice>();
                ActionService.AssignAnimals(player, data.AnimalData, notices);

                UpdateScorecards();

                if (begAmount > 0)
                {
                    feedNotice.Add(new IdPredicate(begAmount));
                }

                notices.Add(new GameActionNotice(player.Name, NoticeVerb.Fed.ToString(), feedNotice));
                if (IsHarvestComplete())
                {
                    update = StartNextRound(notices);
                }
                else
                {
                    update = new PartialGameUpdate();
                    ((PartialGameUpdate)update).AddPlayer(player);
                }
                return(true);
            }

            update  = null;
            notices = null;
            return(false);
        }
Exemplo n.º 4
0
 public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data)
 {
     base.OnExecute(player, data);
     ActionService.AssignAnimals(player, (AnimalCacheActionData)data, ResultingNotices);
     return(this);
 }