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

            ActionService.BuyImprovement(player, (ImprovementActionData)data, ResultingNotices);

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

            player.AddFamilyMember();
            AddUser(player);    // Add the baby to the action display

            ResultingNotices.Add(new GameActionNotice(player.Name, NoticeVerb.GrowFamily.ToString()));

            if (mode == FamilyGrowthActionMode.Improvement && ((FamilyGrowthActionData)data).ImprovementData != null)
            {
                ActionService.BuyImprovement(player, ((FamilyGrowthActionData)data).ImprovementData, ResultingNotices);
            }

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

            if (familyMode)
            {
                this.TakeCaches(player);
            }
            else
            {
                var improvementData = ((StartingPlayerActionData)data).ImprovementData;
                if (improvementData != null)
                {
                    ActionService.BuyImprovement(player, improvementData, ResultingNotices);
                }
            }
            Game.StartingPlayer = player;
            this.ResultingNotices.Add(new GameActionNotice(player.Name, NoticeVerb.Starts.ToString()));

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

            ActionService.Renovate(player, ResultingNotices);

            switch (mode)
            {
            case RenovationActionMode.Fences:
                player.PayCosts(additionalCosts);
                ActionService.BuildFences(player, eventTriggers, ResultingNotices, ((RenovationActionData)data).FenceData, pastures.ToImmutableArray());
                break;

            case RenovationActionMode.Improvement:
                var improvementData = ((RenovationActionData)data).ImprovementData;
                if (improvementData != null)
                {
                    ActionService.BuyImprovement(player, ((RenovationActionData)data).ImprovementData, ResultingNotices);
                }
                break;
            }

            return(this);
        }