Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function getExtent(dx:int, dy:int):uint
- {
- var start:Point2i = player.getIndex();
- var result:uint = 1;
- if (dx > 0)
- {
- if (!Tile.isSlippery(getTile(start.x + 1, start.y)))
- {
- return result;
- }
- for (var i:int = start.x + 1; i < cols; i += 1)
- {
- var tile:int = getTile(i, start.y);
- if (Tile.isSlippery(tile))
- {
- result += 1;
- var next:int = getTile(i + 1, start.y);
- if (!Tile.isWalkable(next))
- {
- result -= 1;
- }
- }
- else
- {
- break;
- }
- }
- }
- else if (dx < 0)
- {
- if (!Tile.isSlippery(getTile(start.x - 1, start.y)))
- {
- return result;
- }
- for (var k:int = start.x - 1; k >= 0; k -= 1)
- {
- var tile2:int = getTile(k, start.y);
- if (Tile.isSlippery(tile2))
- {
- result += 1;
- var next2:int = getTile(k - 1, start.y);
- if (!Tile.isWalkable(next2))
- {
- result -= 1;
- }
- }
- else
- {
- break;
- }
- }
- }
- else if (dy > 0)
- {
- if (!Tile.isSlippery(getTile(start.x, start.y + 1)))
- {
- return result;
- }
- for (var r:int = start.y + 1; r < rows; r += 1)
- {
- var tile3:int = getTile(start.x, r);
- if (Tile.isSlippery(tile3))
- {
- result += 1;
- var next3:int = getTile(start.x, r + 1);
- if (!Tile.isWalkable(next3))
- {
- result -= 1;
- }
- }
- else
- {
- break;
- }
- }
- }
- else if (dy < 0)
- {
- if (!Tile.isSlippery(getTile(start.x, start.y - 1)))
- {
- return result;
- }
- for (var c:int = start.y - 1; c >= 0; c -= 1)
- {
- var tile4:int = getTile(start.x, c);
- if (Tile.isSlippery(tile4))
- {
- result += 1;
- var next4:int = getTile(start.x, c - 1);
- if (!Tile.isWalkable(next4))
- {
- result -= 1;
- }
- }
- else
- {
- break;
- }
- }
- }
- return result;
- }
Add Comment
Please, Sign In to add comment