Exemplo n.º 1
0
    public static GameOverStatus IsLevelOver()
    {
        var  tiles         = HexPosition.AllBoardPositions().Select(Board.ToState);
        bool enemiesRemain = tiles.Any(x => x.Friendliness == Friendliness.Hostile && x.unit != UnitType.Fire);

        if (!enemiesRemain && friendlyDeaths == 1)
        {
            return(GameOverStatus.Win);
        }
        if (friendlyDeaths > 1)
        {
            return(GameOverStatus.Lose_MultipleDied);
        }
        bool forceGameOver = !tiles.Any(MovableFriendly);

        if (forceGameOver)
        {
            if (enemiesRemain)
            {
                return(GameOverStatus.Lose_EnemiesSurvived);
            }
            return(GameOverStatus.Lose_NoDeaths);
        }
        return(GameOverStatus.NotOver);
    }
Exemplo n.º 2
0
 protected void Deselect()
 {
     Selected = null;
     foreach (var position in HexPosition.AllBoardPositions())
     {
         Board.Get[position].incomingMove = false;
         Board.Get[position].isSelected   = false;
     }
     OnSelectionMade();
 }
Exemplo n.º 3
0
 protected void ResetViews()
 {
     if (!Generator.isRunning)
     {
         foreach (var tileView in GameObject.FindObjectsOfType <TileView>())
         {
             GameObject.Destroy(tileView.gameObject);
         }
         foreach (var hexPosition in HexPosition.AllBoardPositions())
         {
             GameObject tile = (GameObject)GameObject.Instantiate(tilePrefab, tileParent.transform);
             tile.GetComponent <TileView>().Move(hexPosition);
         }
     }
 }
Exemplo n.º 4
0
 public static IEnumerable <TileState> AllTiles()
 {
     return(HexPosition.AllBoardPositions().Select(x => Board.Get[x]));
 }