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); }
protected void Deselect() { Selected = null; foreach (var position in HexPosition.AllBoardPositions()) { Board.Get[position].incomingMove = false; Board.Get[position].isSelected = false; } OnSelectionMade(); }
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); } } }
public static IEnumerable <TileState> AllTiles() { return(HexPosition.AllBoardPositions().Select(x => Board.Get[x])); }