private void OnRestart()
    {
        ButtonSound.Play();

        GameStateController.GetInstance().SetPaused(false);
        SceneLoader.GetInstance().ResetScene();
    }
    private void OnLevelSelect()
    {
        ButtonSound.Play();

        GameStateController.GetInstance().SetPaused(false);
        SceneLoader.GetInstance().LoadMainMenuLevelSelect();
    }
    private void OnResume()
    {
        ButtonSound.Play();

        m_isPaused = false;
        GameStateController.GetInstance().SetPaused(false);
        m_pausePanel.SetActive(false);
    }
Exemple #4
0
 private static Tile.TileOperation CreateOperation(int moveX, int moveY, List <Tuple <int, int> > doomLine)
 {
     return((Piece piece) => {
         var gameController = GameStateController.GetInstance();
         ExecuteLineOfDoom(gameController.piece1, moveX, moveY, doomLine);
         return NetworkClient.Send(CreateCommand(moveX, moveY, doomLine));
     });
 }
Exemple #5
0
    private static Tile.TileOperation CreateOperation(int moveX, int moveY, int destroyX, int destroyY)
    {
        var gameController = GameStateController.GetInstance();

        return((Piece piece) => {
            gameController.MovePiece(gameController.piece1, moveX, moveY);
            gameController.DestroyTile(destroyX, destroyY);
            return NetworkClient.Send("MoveAndDestroy " + moveX + " " + moveY + " " + destroyX + " " + destroyY);
        });
    }
Exemple #6
0
    public static void ExecuteLineOfDoom(Piece piece, int moveX, int moveY, List <Tuple <int, int> > doomLine)
    {
        var gameController = GameStateController.GetInstance();

        gameController.MovePiece(piece, moveX, moveY);
        foreach (var pair in doomLine)
        {
            gameController.DestroyTile(pair.Item1, pair.Item2);
        }
    }
    private void OnPause()
    {
        if (m_isPaused)
        {
            OnResume();
        }
        else
        {
            ButtonSound.Play();

            m_isPaused = true;
            //m_slowTime.SetIsPaused(true);
            GameStateController.GetInstance().SetPaused(true);
            m_pausePanel.SetActive(true);
        }
    }
Exemple #8
0
 void Select()
 {
     GameStateController.GetInstance().CardSelected(this.card);
 }
Exemple #9
0
    public void HighlightMoveOptions(int range, int tileX, int tileY)
    {
        var gameController = GameStateController.GetInstance();
        var tiles          = gameController.tiles;

        //UpRight:
        var tileIndex = GetTileIndex(tileX, tileY, HexagonDirection.UpRight, range);

        if (HasTile(tileIndex.Item1, tileIndex.Item2))
        {
            var tile = tiles[tileIndex.Item1, tileIndex.Item2];
            tile.SetHighlight(HighlightType.Move);

            var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.UpRight, range + 1);
            if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
            {
                var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                tileAtt.SetHighlight(HighlightType.Attack);
            }
            tile.Operation = CreateOperation(tileIndex.Item1, tileIndex.Item2, tileIndexAtt.Item1, tileIndexAtt.Item2);
        }


        //UpLeft:
        var tileIndex1 = GetTileIndex(tileX, tileY, HexagonDirection.UpLeft, range);

        if (HasTile(tileIndex1.Item1, tileIndex1.Item2))
        {
            var tile = tiles[tileIndex1.Item1, tileIndex1.Item2];
            tile.SetHighlight(HighlightType.Move);

            var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.UpLeft, range + 1);
            if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
            {
                var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                tileAtt.SetHighlight(HighlightType.Attack);
            }
            tile.Operation = CreateOperation(tileIndex1.Item1, tileIndex1.Item2, tileIndexAtt.Item1, tileIndexAtt.Item2);
        }

        //DownRight:
        var tileIndex2 = GetTileIndex(tileX, tileY, HexagonDirection.DownRight, range);

        if (HasTile(tileIndex2.Item1, tileIndex2.Item2))
        {
            var tile = tiles[tileIndex2.Item1, tileIndex2.Item2];
            tile.SetHighlight(HighlightType.Move);

            var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.DownRight, range + 1);
            if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
            {
                var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                tileAtt.SetHighlight(HighlightType.Attack);
            }
            tile.Operation = CreateOperation(tileIndex2.Item1, tileIndex2.Item2, tileIndexAtt.Item1, tileIndexAtt.Item2);
        }

        //DownLeft:
        var tileIndex3 = GetTileIndex(tileX, tileY, HexagonDirection.DownLeft, range);

        if (HasTile(tileIndex3.Item1, tileIndex3.Item2))
        {
            var tile = tiles[tileIndex3.Item1, tileIndex3.Item2];
            tile.SetHighlight(HighlightType.Move);

            var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.DownLeft, range + 1);
            if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
            {
                var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                tileAtt.SetHighlight(HighlightType.Attack);
            }
            tile.Operation = CreateOperation(tileIndex3.Item1, tileIndex3.Item2, tileIndexAtt.Item1, tileIndexAtt.Item2);
        }

        //Right:
        var tileIndex4 = GetTileIndex(tileX, tileY, HexagonDirection.Right, range);

        if (HasTile(tileIndex4.Item1, tileIndex4.Item2))
        {
            var tile = tiles[tileIndex4.Item1, tileIndex4.Item2];
            tile.SetHighlight(HighlightType.Move);

            var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.Right, range + 1);
            if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
            {
                var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                tileAtt.SetHighlight(HighlightType.Attack);
            }
            tile.Operation = CreateOperation(tileIndex4.Item1, tileIndex4.Item2, tileIndexAtt.Item1, tileIndexAtt.Item2);
        }

        //Left:
        var tileIndex5 = GetTileIndex(tileX, tileY, HexagonDirection.Left, range);

        if (HasTile(tileIndex5.Item1, tileIndex5.Item2))
        {
            var tile = tiles[tileIndex5.Item1, tileIndex5.Item2];
            tile.SetHighlight(HighlightType.Move);

            var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.Left, range + 1);
            if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
            {
                var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                tileAtt.SetHighlight(HighlightType.Attack);
            }
            tile.Operation = CreateOperation(tileIndex5.Item1, tileIndex5.Item2, tileIndexAtt.Item1, tileIndexAtt.Item2);
        }
    }
Exemple #10
0
    bool HasTile(int x, int y)
    {
        var gameController = GameStateController.GetInstance();

        return(gameController.HasTile(x, y));
    }
Exemple #11
0
    public void HighlightMoveOptions(int range, int tileX, int tileY)
    {
        var gameController = GameStateController.GetInstance();
        var tiles          = gameController.tiles;

        //UpRight:
        var tileIndex = GetTileIndex(tileX, tileY, HexagonDirection.UpRight, range);

        if (HasTile(tileIndex.Item1, tileIndex.Item2))
        {
            var tile = tiles[tileIndex.Item1, tileIndex.Item2];
            tile.SetHighlight(HighlightType.Move);

            var doomLine = new List <Tuple <int, int> >();
            for (int i = 1; i < 100; i++)
            {
                var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.UpRight, range + i);
                if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
                {
                    var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                    tileAtt.SetHighlight(HighlightType.Attack);
                    doomLine.Add(tileIndexAtt);
                }
            }
            tile.Operation = CreateOperation(tileIndex.Item1, tileIndex.Item2, doomLine);
        }


        //UpLeft:
        var tileIndex1 = GetTileIndex(tileX, tileY, HexagonDirection.UpLeft, range);

        if (HasTile(tileIndex1.Item1, tileIndex1.Item2))
        {
            var tile = tiles[tileIndex1.Item1, tileIndex1.Item2];
            tile.SetHighlight(HighlightType.Move);

            var doomLine = new List <Tuple <int, int> >();
            for (int i = 1; i < 100; i++)
            {
                var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.UpLeft, range + i);
                if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
                {
                    var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                    tileAtt.SetHighlight(HighlightType.Attack);
                    doomLine.Add(tileIndexAtt);
                }
            }
            tile.Operation = CreateOperation(tileIndex1.Item1, tileIndex1.Item2, doomLine);
        }

        //DownRight:
        var tileIndex2 = GetTileIndex(tileX, tileY, HexagonDirection.DownRight, range);

        if (HasTile(tileIndex2.Item1, tileIndex2.Item2))
        {
            var tile = tiles[tileIndex2.Item1, tileIndex2.Item2];
            tile.SetHighlight(HighlightType.Move);

            var doomLine = new List <Tuple <int, int> >();
            for (int i = 1; i < 100; i++)
            {
                var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.DownRight, range + i);
                if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
                {
                    var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                    tileAtt.SetHighlight(HighlightType.Attack);
                    doomLine.Add(tileIndexAtt);
                }
            }
            tile.Operation = CreateOperation(tileIndex2.Item1, tileIndex2.Item2, doomLine);
        }

        //DownLeft:
        var tileIndex3 = GetTileIndex(tileX, tileY, HexagonDirection.DownLeft, range);

        if (HasTile(tileIndex3.Item1, tileIndex3.Item2))
        {
            var tile = tiles[tileIndex3.Item1, tileIndex3.Item2];
            tile.SetHighlight(HighlightType.Move);

            var doomLine = new List <Tuple <int, int> >();
            for (int i = 1; i < 100; i++)
            {
                var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.DownLeft, range + i);
                if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
                {
                    var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                    tileAtt.SetHighlight(HighlightType.Attack);
                    doomLine.Add(tileIndexAtt);
                }
            }
            tile.Operation = CreateOperation(tileIndex3.Item1, tileIndex3.Item2, doomLine);
        }

        //Right:
        var tileIndex4 = GetTileIndex(tileX, tileY, HexagonDirection.Right, range);

        if (HasTile(tileIndex4.Item1, tileIndex4.Item2))
        {
            var tile = tiles[tileIndex4.Item1, tileIndex4.Item2];
            tile.SetHighlight(HighlightType.Move);

            var doomLine = new List <Tuple <int, int> >();
            for (int i = 1; i < 100; i++)
            {
                var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.Right, range + i);
                if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
                {
                    var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                    tileAtt.SetHighlight(HighlightType.Attack);
                    doomLine.Add(tileIndexAtt);
                }
            }
            tile.Operation = CreateOperation(tileIndex4.Item1, tileIndex4.Item2, doomLine);
        }

        //Left:
        var tileIndex5 = GetTileIndex(tileX, tileY, HexagonDirection.Left, range);

        if (HasTile(tileIndex5.Item1, tileIndex5.Item2))
        {
            var tile = tiles[tileIndex5.Item1, tileIndex5.Item2];
            tile.SetHighlight(HighlightType.Move);

            var doomLine = new List <Tuple <int, int> >();
            for (int i = 1; i < 100; i++)
            {
                var tileIndexAtt = GetTileIndex(tileX, tileY, HexagonDirection.Left, range + i);
                if (HasTile(tileIndexAtt.Item1, tileIndexAtt.Item2))
                {
                    var tileAtt = tiles[tileIndexAtt.Item1, tileIndexAtt.Item2];
                    tileAtt.SetHighlight(HighlightType.Attack);
                    doomLine.Add(tileIndexAtt);
                }
            }
            tile.Operation = CreateOperation(tileIndex5.Item1, tileIndex5.Item2, doomLine);
        }
    }