Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void ComputeTargetableCellsRecursively( RoomCell origin, int mvpRemaining )
- {
- if(mvpRemaining <= 0)
- return;
- var cachedCellDict = new Dictionary<RoomCell, int>();
- for(int i = 0; i < 8; i++)
- {
- var cell = Game.Room.GetNeighbor(origin, i);
- if(cell == null || TargetableCells.ContainsKey(cell) || cell.Tile.PassCost == 0 || cell.Actor != null)
- continue;
- var cost = cell.Tile.PassCost;
- //if(i % 2 != 0)
- // cost *= Game.DiagonalMovementMultiplier;
- if(cost <= mvpRemaining)
- {
- cachedCellDict.Add(cell, cost);
- TargetableCells.Add(cell, cost);
- }
- }
- foreach(KeyValuePair<RoomCell, int> kvp in cachedCellDict)
- {
- //Debug.Log(kvp.Key.MapX + "," + kvp.Key.MapY);
- ComputeTargetableCellsRecursively(kvp.Key, mvpRemaining - kvp.Value);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement