public BailPosition GetClosestFloodedTile(MovementTile tile) { BailPosition bp = null; int shortestPathCount = int.MaxValue; for (int i = 0; i < floodedTiles.Count; i++) { if (!floodedTiles[i]) { floodedTiles.RemoveAt(i); i--; } if (!floodedTiles[i].isManned) { int pathCount = AStar.FindPath(tile, floodedTiles[i].tile, true).Count; if (shortestPathCount > pathCount) { shortestPathCount = pathCount; bp = floodedTiles[i]; } } } return(bp); }
public void AddFloodedTile(BailPosition flooded) { floodedTiles.Add(flooded); if (floodedTiles.Count >= maxFloodTiles) { battleManager.ShipDies(this); } }
private BailPosition CreateFloodedTile(MovementTile t) { BailPosition bp = Instantiate(floodedTilePrefab, t.transform.position, Quaternion.identity).GetComponent <BailPosition> (); bp.transform.parent = transform.parent; t.floodedTile = bp; bp.tile = t; bp.isAssignAbleTo = isAssignAbleTo; //TODO: make know which ship transform.parent.GetComponent <Ship> ().AddFloodedTile(bp); return(bp); }