public int GetUpgradeMax(Upgrade upgrade) { switch (upgrade) { case Upgrade.Tower: return(GameManager.Instance.GetShipTemplate().Towers.Length - 1); case Upgrade.Body: LevelMap map = GameManager.Instance.GetMap(); if (!ReferenceEquals(map, null)) { return(map.GetDepth() - 2); } else { return(0); } case Upgrade.Life: return(GameManager.Instance.GetShipTemplate().Sides.Length - 1); } return(0); }