Пример #1
0
    void Awake()
    {
        // Creating Game Board
        this.gameBoard = new GameBoardController(this.boardView, new GameBoardModel(ROWS, COLS));

        // Creating Players
        var userPlayer = new UserPlayer(gameBoard, TileMark.Cross);
        // Use different AI player settings based on selected difficulty
        AbstractPlayer aiPlayer;

        if (PlayerProfile.PreferredDifficulty == 0)
        {
            aiPlayer = new RandomAIPlayer(gameBoard, TileMark.Circle);
        }
        else
        {
            aiPlayer = new MinMaxAIPlayer(gameBoard, TileMark.Circle, PlayerProfile.PreferredDifficulty == 1 ? 0.3f : 0.0f);
        }

        this.turnManager = new TurnManager(gameBoard, userPlayer, aiPlayer);
        this.hudManager.Init();

        // Initializing State Machine
        this.fsm = new SKStateMachine <GameManager>(this, new GameplayState());
        this.fsm.addState(new GameoverState());
        this.fsm.addState(new GameLoadingState());
#if DEBUG
        this.fsm.onStateChanged += () => {
            Debug.LogFormat("<color=green>GameManager FSM state changed to {0}</color>", this.fsm.currentState);
        };
#endif
    }
 public Entity ReplaceGameBoard(GameBoardController newController) {
     var componentPool = GetComponentPool(CellsComponentIds.GameBoard);
     var component = (GameBoardComponent)(componentPool.Count > 0 ? componentPool.Pop() : new GameBoardComponent());
     component.Controller = newController;
     ReplaceComponent(CellsComponentIds.GameBoard, component);
     return this;
 }
Пример #3
0
 void Awake()
 {
     corpo = gameObject.GetComponent<Rigidbody> ();
     controller = GameObject.Find ("GameBoardController").GetComponent<GameBoardController>();
     GameObject botao_de_rolar = GameObject.Find ("Button");
     botao_op= botao_de_rolar.GetComponent<Button> ();
 }
Пример #4
0
 public GameBoardRenderer(GameInstance gameInstance, GameBoardController gameBoardController,
                          GameEventHub eventHub)
 {
     _gameInstance        = gameInstance;
     _gameBoardController = gameBoardController;
     _eventHub            = eventHub;
     _camera = Camera2D.Instance;
 }
Пример #5
0
	// given a string postName of "0-0" representing row-column, ask the GameBoardController how many pieces
	// exist on that specific gameBoardPost 
	private int caclulatePiecesOnPost()
	{
		string[] rowAndColumn = this.name.Split('-');
		int row = int.Parse(rowAndColumn[0]);
		int column = int.Parse(rowAndColumn[1]);
		int piecesOnPost = GameBoardController.findPiecesOnPostForRowAndColumn(row, column);

		return piecesOnPost;
	}
 public Entity SetGameBoard(GameBoardController newController) {
     if (hasGameBoard) {
         throw new EntitasException("Could not set gameBoard!\n" + this + " already has an entity with GameBoardComponent!",
             "You should check if the pool already has a gameBoardEntity before setting it or use pool.ReplaceGameBoard().");
     }
     var entity = CreateEntity();
     entity.AddGameBoard(newController);
     return entity;
 }
Пример #7
0
        public override void Initialize()
        {
            HistoryLog.Initialize(_assetManager.Font, 400, _assetManager);

            HistoryLog.Instance.SortOrder = Camera2D.SortUI + 100;
            HistoryLog.Instance.Hidden    = false;
            AddAndInitializeRootEntity(HistoryLog.Instance, _assetManager);

            var cursorSprite = _assetManager[AssetManager.CrosshairCursor];

            var crosshairCursor = CreateRootEntity(Camera2D.SortUI + 10000);

            crosshairCursor.Renderer = new SpriteRenderer(cursorSprite);
            crosshairCursor.AddComponent(() => {
                crosshairCursor.Position = InputManager.Instance.MousePosition.ToVector2() -
                                           cursorSprite.Bounds.Size.ToVector2() / 2;
            });

            Camera2D.Instance.Translate = new Vector3(600, 400, 0);

            var gameBoardEntity = CreateRootEntity(Camera2D.SortBackground);

            gameBoardEntity.AddComponent(() => {
                if (InputManager.Instance.IsKeyJustPressed(Keys.P))
                {
                    Terminate();
                }
            });

            _gameBoardController = new GameBoardController(_game,
                                                           crosshairCursor,
                                                           this,
                                                           _replay);

            _gameBoardController.GameFinishedCallback = () => GameFinishedCallback?.Invoke();

            gameBoardEntity.AddComponent(_gameBoardController);
            gameBoardEntity.CustomBatch = true;

            BuildUi();

            foreach (var mobId in _game.MobManager.Mobs)
            {
                var mobAnimationController = new MobAnimationController(_game);
                var mobEntity = new MobEntity(mobId, _game)
                {
                    SortOrder = Camera2D.SortMobs,
                    Renderer  = new MobRenderer(_game, mobId, mobAnimationController),
                    Transform = () => Camera2D.Instance.Transform
                };
                mobEntity.AddComponent(mobAnimationController);

                AddAndInitializeRootEntity(mobEntity, _assetManager);
                MobEntities[mobId] = mobEntity;
            }
        }
Пример #8
0
 public SpellRenderer(GameInstance game,
                      GameBoardController gameBoardController,
                      Func <CachedMob> mobFunc,
                      int abilityIndex)
 {
     _game = game;
     _gameBoardController = gameBoardController;
     _mobFunc             = mobFunc;
     _abilityIndex        = abilityIndex;
 }
        public Entity ReplaceGameBoard(GameBoardController newController) {
            var entity = gameBoardEntity;
            if (entity == null) {
                entity = SetGameBoard(newController);
            } else {
                entity.ReplaceGameBoard(newController);
            }

            return entity;
        }
Пример #10
0
    // undo the lastMove
    // entry into this method comes as a result of two things; 1) a player has clicked on the
    // undo button and, 2) the .Update() method of this class has picked up the truthy value of
    // undoLastMoveButtonControllerScript.shouldUndoLastMove.
    private void revertLastMove()
    {
        undoLastMoveButtonControllerScript.disable();
        inturruptUndoLastMoveCoroutine();

        PlayerMoveModel lastMove = GameBoardHistory.findLastPlayerMove();

        if (GameBoardHistory.removeLastMoveFromHistory() &&
            GameBoardController.removePlayerAtPoint(lastMove))
        {
            removePlayerPieceFromPost(lastMove);
            finalizePlayerChange();
        }
    }
Пример #11
0
    // perform system cleanups and updates after a move has been made successfully
    // check for a win and stop the game if one is found.
    private void didExecutePlayerMove(string postName, PlayerMoveModel playerMove)
    {
        FormationModel winningFormation = GameBoardController.findWinningFormation(playerMove);

        if (winningFormation != null)
        {
            inturruptUndoLastMoveCoroutine();
            isComplete = true;
            // show winning formation
            PlayerScoreController.declareWinner(playerMove.player);
            buildWinnerText();

            return;
        }

        undoLastMoveCoroutine = enableUndoLastMove();
        StartCoroutine(undoLastMoveCoroutine);
    }
Пример #12
0
 void OnDestroy()
 {
     piece.PieceTouch -= OnPieceTouch;
     if(gameBoardController != null)
     {
         gameBoardController = null;
     }
 }
Пример #13
0
    void Awake()
    {
        Application.targetFrameRate = 25;
        gameBoardController = this;
        GoogleMobileAdsController.Instance.ShowInterstitial();
        GoogleMobileAdsController.Instance.HideBanner();
        timer = MAX_TIME;
        SetInitialGameSettings();

        //MultiplayerController.Instance.SignInAndStartMPGame();
        MultiplayerController.Instance.TrySilentSignIn();
    }
Пример #14
0
 public EndCurrentTurn()
 {
     control = FindObjectsOfType <GameBoardController>()[0];
     endTheTurn();
 }
Пример #15
0
 public GameApiTest()
 {
     _gameBoardController = new GameBoardController(new GameService());
 }
Пример #16
0
 void Awake()
 {
     corpo = gameObject.GetComponent<Rigidbody> ();
     controller = GameObject.Find ("GameBoardController").GetComponent<GameBoardController>();
 }
Пример #17
0
 public RandomAIPlayer(GameBoardController board, TileMark playerType)
     : base(board, playerType)
 {
 }
Пример #18
0
    //////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////

    // place player piece in the view on the selected post
    private void executePlayerMove(PlayerMoveModel playerMove, Vector3 postPosition, string postName)
    {
        GameBoardController.addPlayerAtPoint(playerMove);
        GameBoardHistory.addMoveToHistory(playerMove);
        placePlayerPieceOnPost(postPosition, postName, playerMove.player);
    }
 public void resetGame()
 {
     GameBoardController.resetGameBoard();
     SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
 }
Пример #20
0
 public MinMaxAIPlayer(GameBoardController board, TileMark playerType, float errorProbability)
     : base(board, playerType)
 {
     this.errorProbability = errorProbability;
     MinMaxTree.Instance.PrepareTree();
 }
Пример #21
0
 public UserPlayer(GameBoardController board, TileMark playerType)
     : base(board, playerType)
 {
 }
Пример #22
0
 public TurnManager(GameBoardController board, params AbstractPlayer[] players)
 {
     this.gameBoard        = board;
     this.players          = players;
     this.dOnMoveCompleted = this.OnMoveCompleted;
 }
Пример #23
0
 public AbstractPlayer(GameBoardController board, TileMark defaultType)
 {
     this.board = board;
     this.PrepareForGame(defaultType);
 }