Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Board       = new DemoBuilder().Build();
            Writer      = Console.Out;
            TileDisplay = new TileDisplay(new DisplayFactory());

            BoardDisplay = new BoardDisplay(Writer, TileDisplay);

            MenuDisplay = new MenuDisplay(Writer, new List <MenuOption>
            {
                new MenuOption("Build"),
            });

            Player = new TerraMysticaPlayer("Player 1", new Mermaids());
            Player.Resources.Gold.Add(100);
            Player.Resources.Workers.Add(100);

            BoardDisplay.PrintHeader = true;
            PrintLoop();

            Console.WriteLine($"{Player.Name}, Build a damn Dwelling!");
            Console.ReadKey();

            Console.Clear();

            var tile        = Board.TileForLocation(new HexLocation(3, 0));
            var buildAction = new BuildAction(Board, Player, tile.Location);

            buildAction.Execute();

            PrintLoop();
            Console.WriteLine($"Good, good. Now dance for me!");

            Console.ReadKey();
        }
Exemplo n.º 2
0
        protected TerraMysticaAction(TerraMysticaPlayer player)
        {
            if (player == null)
            {
                throw new ArgumentNullException(nameof(player));
            }

            this.Player = player;
        }
Exemplo n.º 3
0
        public TurnInScrollAction(TerraMysticaPlayer player, ITerraMysticaScroll scroll)
            : base(player)
        {
            if (scroll == null)
            {
                throw new ArgumentNullException(nameof(scroll));
            }

            this.Scroll = scroll;
        }
Exemplo n.º 4
0
        public UsePowerAbilityAction(TerraMysticaPlayer player, IPowerAbility ability) : base(player)
        {
            if (player == null)
            {
                throw new ArgumentNullException(nameof(player));
            }

            if (ability == null)
            {
                throw new ArgumentNullException(nameof(ability));
            }

            this.Ability = ability;
        }
Exemplo n.º 5
0
        public CommitPriestAction(TerraMysticaPlayer player, CultTrack track, PriestSlot slot)
            : base(player)
        {
            if (track == null)
            {
                throw new ArgumentNullException(nameof(track));
            }

            if (slot == null)
            {
                throw new ArgumentNullException(nameof(slot));
            }

            this.CultTrack = track;
            this.Slot      = slot;
        }
Exemplo n.º 6
0
        public BuildAction(IBoard <TerraTile> board, TerraMysticaPlayer player, ILocation location)
            : base(player)
        {
            if (board == null)
            {
                throw new ArgumentNullException(nameof(board));
            }

            if (location == null)
            {
                throw new ArgumentNullException(nameof(location));
            }

            if (player == null)
            {
                throw new ArgumentNullException(nameof(player));
            }

            this.Board    = board;
            this.Location = location;
        }
Exemplo n.º 7
0
        public UpgradeBuildingAction(IBoard <TerraTile> board, TerraMysticaPlayer player, Building building, BuildingUpgrade upgrade)
            : base(player)
        {
            if (board == null)
            {
                throw new ArgumentNullException(nameof(board));
            }

            if (building == null)
            {
                throw new ArgumentNullException(nameof(building));
            }

            if (upgrade == null)
            {
                throw new ArgumentNullException(nameof(upgrade));
            }

            this.Board    = board;
            this.Building = building;
            this.Upgrade  = upgrade;
        }
Exemplo n.º 8
0
        public TerraformAction(IBoard <TerraTile> board, TerraMysticaPlayer player, ILocation location, TerrainType target)
            : base(player)
        {
            if (board == null)
            {
                throw new ArgumentNullException(nameof(board));
            }

            if (location == null)
            {
                throw new ArgumentNullException(nameof(location));
            }

            if (target == TerrainType.Void)
            {
                throw new InvalidOperationException(string.Format(Exceptions.InvalidVoidTerraform));
            }

            this.Board    = board;
            this.Location = location;
            this.Target   = target;
        }
Exemplo n.º 9
0
 public UpgradeTerraformAction(TerraMysticaPlayer player) : base(player)
 {
 }
 public static bool CanAfford(this TerraMysticaPlayer player, IEnumerable <IReadOnlyResource> cost)
 {
     return(cost.All(c =>
                     player.Resources.AllResources.ContainsKey(c.Name) &&
                     player.Resources.AllResources[c.Name].Amount >= c.Amount));
 }
Exemplo n.º 11
0
 public UpgradeShippingAction(TerraMysticaPlayer player)
     : base(player)
 {
 }