示例#1
0
    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);
    }
示例#2
0
 public void AddFloodedTile(BailPosition flooded)
 {
     floodedTiles.Add(flooded);
     if (floodedTiles.Count >= maxFloodTiles)
     {
         battleManager.ShipDies(this);
     }
 }
示例#3
0
    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);
    }