Ejemplo n.º 1
0
        //----------------------------------------------------------------------------------------------------------

        #region Constructor

        public AiModule(IPlayer player, IPrimitiveGame game)
        {
            //add all submodules
            subModules.Add(AiArchetype.Aggressive, GetAi(AiArchetype.Aggressive, player, game));

            //define current ai randomly
            CurrentAi = subModules.Keys.ToList().RandomItem();
        }
Ejemplo n.º 2
0
        //----------------------------------------------------------------------------------------------------------

        #region Factory

        /// <summary>
        ///     Small factory to create sub ai modules.
        /// </summary>
        /// <param name="archetype"></param>
        /// <param name="player"></param>
        /// <param name="game"></param>
        /// <returns></returns>
        private static AiBase GetAi(AiArchetype archetype, IPlayer player, IPrimitiveGame game)
        {
            switch (archetype)
            {
            case AiArchetype.Aggressive: return(new AiAggressive(player, game));

            default:
                throw new ArgumentOutOfRangeException(nameof(archetype), archetype, null);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Create a new game data overriding the previous one. Produces Garbage.
        /// </summary>
        public void CreateGame()
        {
            //create and connect players to their seats
            var player1 = new Player(configurations.PlayerTurn.UserSeat, CreateTestRoster(configurations.PlayerTurn.UserSeat), configurations: configurations);

            //if the second player doesn't have a deck, send null
            var player2 = new Player(PlayerSeat.Right, CreateTestRoster(PlayerSeat.Right), configurations: configurations);

            var board = new Board(configurations);

            //create game data
            RuntimeGame = new Game(new List <IPlayer> {
                player1, player2
            }, board, configurations);
        }
Ejemplo n.º 4
0
 public AiAggressive(IPlayer Player, IPrimitiveGame Game) : base(Player, Game)
 {
     player = Player;
     game   = Game;
 }
Ejemplo n.º 5
0
        //----------------------------------------------------------------------------------------------------------

        #region Constructor

        protected AiBase(IPlayer player, IPrimitiveGame game)
        {
            Game   = game;
            Player = player;
            Enemy  = game.TurnLogic.GetOpponent(player);
        }
Ejemplo n.º 6
0
        //--------------------------------------------------------------------------------------------------------

        #region Operations

        /// <summary>
        ///     Clears the game data.
        /// </summary>
        public void Clear()
        {
            RuntimeGame = null;
        }
Ejemplo n.º 7
0
 public FinishPlayerTurnMechanics(IPrimitiveGame game) : base(game)
 {
 }
Ejemplo n.º 8
0
 public StartPlayerTurnMechanics(IPrimitiveGame game) : base(game)
 {
 }
Ejemplo n.º 9
0
 public FinishGameMechanics(IPrimitiveGame game) : base(game)
 {
 }
Ejemplo n.º 10
0
 public TickTimeMechanics(IPrimitiveGame game) : base(game)
 {
 }
Ejemplo n.º 11
0
 public StartGameMechanics(IPrimitiveGame game) : base(game)
 {
 }
Ejemplo n.º 12
0
 protected BaseGameMechanics(IPrimitiveGame game)
 {
     Game = game;
 }
Ejemplo n.º 13
0
 public SwapMechanics(IPrimitiveGame game) : base(game)
 {
 }