public TerrainUnitInfo SetTile(Point point, int tile) { TerrainUnitInfo info = null; switch (tile) { case 0: info = GameInformation.instance.GetTerrainInfo(Terrain.GRASS); break; case 4: info = GameInformation.instance.GetTerrainInfo(Terrain.RESTAURANT); break; default: Debug.LogWarning("Map generation tile not set up: " + tile); break; } if (info == null) { info = GameInformation.instance.GetTerrainInfo(Terrain.GRASS); } SetTile(point, info); return(info); }
private void CreateBoard() { int[,] levelMap = generator.GenerateLevel(); TerrainUnitInfo[,] terrainMap = generator.GenerateLevel(levelMap); for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { Point p = new Point(i, j); TerrainUnitInfo info = terrainMap[i, j]; board.SetTile(p, info); if (info.terrain == Terrain.RESTAURANT) { owner.restaurantUnits.Add(board.GetTile(p).GetComponent <TerrainUnit>()); } int terrainInt = levelMap[i, j]; if (terrainInt == 5) { enemyTiles.Add(p); } if (terrainInt == 6) { unitTiles.Add(p); } } } battleUI.SetHealthText(owner.restaurantUnits.Count); }
private List <Tile> GetTilesInDirection(BoardCreator board, Point start, Point dir) { List <Tile> tiles = new List <Tile>(); Point next = start + dir; Tile nextTile = board.GetTile(next); while (nextTile != null) { Unit u = nextTile.content.GetComponent <Unit>(); if (u.type != UnitType.TERRAIN) { break; } TerrainUnitInfo info = u.GetComponent <UnitStats>().terrainUnitInfo; if (info.BlocksProjectiles() && !(u.GetComponent <UnitStats>().IsDead() && !info.BlocksProjectileWhenDead())) { break; } tiles.Add(nextTile); next += dir; nextTile = board.GetTile(next); } if (nextTile != null) { tiles.Add(nextTile); } return(tiles); }
public void ChangeSprite(int health, TerrainUnitInfo info) { try { renderer.sprite = info.unitSprites[health]; } catch (Exception e) { } }
public void SetRiverSprite(bool frozen, TerrainUnitInfo info) { if (frozen) { renderer.sprite = info.frozenSprite; } else { renderer.sprite = info.unitSprite; } }
public TerrainUnitInfo[,] GenerateLevel(int[,] levelMap) { TerrainUnitInfo[,] level = new TerrainUnitInfo[8, 8]; for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { level[i, j] = GetTerrain(levelMap[i, j]); } } return(level); }
public void SetTerrainInfo(TerrainUnitInfo terrainInfo) { _terrainInfo = terrainInfo; info = terrainInfo; health = info.maxHealth; gameObject.name = info.name; GetComponent <SpriteRenderer>().sprite = info.unitSprite; if (terrainInfo.unitSprites.Length != health && terrainInfo.IsDestructible()) { Debug.LogError(terrainInfo.name + "'s unit sprites are not set up correctly."); } }
public void SetTile(Point point, TerrainUnitInfo info) { Tile t = GetTile(point); if (t == null) { t = Instantiate(tilePrefab, transform).GetComponent <Tile>(); t.SetPosition(point); tiles.Add(point, t); } t.GetComponent <UnitStats>().SetTerrainInfo(info); t.GetComponent <TerrainUnit>().Place(t); t.GetComponent <TerrainUnit>().SetSortingLayer(); }
public void CreateBoard(TerrainUnitInfo info) { for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Point p = new Point(i, j); Tile tile = Instantiate(tilePrefab, transform).GetComponent <Tile>(); tile.GetComponent <UnitStats>().SetTerrainInfo(info); tile.GetComponent <TerrainUnit>().Place(tile); tile.SetPosition(p); tiles.Add(p, tile); } } }
public virtual bool CanTraverse(Tile tile) { Unit u = tile.content.GetComponent <Unit>(); if (u.type != UnitType.TERRAIN) { return(false); } TerrainUnitInfo info = u.GetComponent <UnitStats>().terrainUnitInfo; if (!info.IsPassable(u.GetComponent <UnitStats>().HasStatus(StatusEffects.FREEZE), !u.GetComponent <UnitStats>().IsDead())) { return(false); } return(true); }
private bool WillCollideWithObject(Tile tile) { Unit u = tile.content.GetComponent <Unit>(); if (u.type != UnitType.TERRAIN) { return(true); } TerrainUnitInfo info = u.GetComponent <UnitStats>().terrainUnitInfo; if (!info.IsPassable(u.GetComponent <UnitStats>().HasStatus(StatusEffects.FREEZE), !u.GetComponent <UnitStats>().IsDead())) { return(true); } return(false); }