Guest User

Untitled

a guest
Nov 29th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         private function getExtent(dx:int, dy:int):uint
  2.         {
  3.             var start:Point2i = player.getIndex();
  4.             var result:uint = 1;
  5.             if (dx > 0)
  6.             {
  7.                 if (!Tile.isSlippery(getTile(start.x + 1, start.y)))
  8.                 {
  9.                     return result;
  10.                 }
  11.                 for (var i:int = start.x + 1; i < cols; i += 1)
  12.                 {
  13.                     var tile:int = getTile(i, start.y);
  14.                     if (Tile.isSlippery(tile))
  15.                     {
  16.                         result += 1;
  17.                         var next:int = getTile(i + 1, start.y);
  18.                         if (!Tile.isWalkable(next))
  19.                         {
  20.                            result -= 1;
  21.                         }
  22.                     }
  23.                     else
  24.                     {
  25.                         break;
  26.                     }
  27.                 }
  28.             }
  29.             else if (dx < 0)
  30.             {
  31.                 if (!Tile.isSlippery(getTile(start.x - 1, start.y)))
  32.                 {
  33.                     return result;
  34.                 }
  35.                 for (var k:int = start.x - 1; k >= 0; k -= 1)
  36.                 {
  37.                     var tile2:int = getTile(k, start.y);
  38.                     if (Tile.isSlippery(tile2))
  39.                     {
  40.                         result += 1;
  41.                         var next2:int = getTile(k - 1, start.y);
  42.                         if (!Tile.isWalkable(next2))
  43.                         {
  44.                            result -= 1;
  45.                         }
  46.                     }
  47.                     else
  48.                     {
  49.                         break;
  50.                     }
  51.                 }
  52.             }
  53.             else if (dy > 0)
  54.             {
  55.                 if (!Tile.isSlippery(getTile(start.x, start.y + 1)))
  56.                 {
  57.                     return result;
  58.                 }
  59.                 for (var r:int = start.y + 1; r < rows; r += 1)
  60.                 {
  61.                     var tile3:int = getTile(start.x, r);
  62.                     if (Tile.isSlippery(tile3))
  63.                     {
  64.                         result += 1;
  65.                         var next3:int = getTile(start.x, r + 1);
  66.                         if (!Tile.isWalkable(next3))
  67.                         {
  68.                            result -= 1;
  69.                         }
  70.                     }
  71.                     else
  72.                     {
  73.                         break;
  74.                     }
  75.                 }
  76.             }
  77.             else if (dy < 0)
  78.             {
  79.                 if (!Tile.isSlippery(getTile(start.x, start.y - 1)))
  80.                 {
  81.                     return result;
  82.                 }
  83.                 for (var c:int = start.y - 1; c >= 0; c -= 1)
  84.                 {
  85.                     var tile4:int = getTile(start.x, c);
  86.                     if (Tile.isSlippery(tile4))
  87.                     {
  88.                         result += 1;
  89.                         var next4:int = getTile(start.x, c - 1);
  90.                         if (!Tile.isWalkable(next4))
  91.                         {
  92.                            result -= 1;
  93.                         }
  94.                     }
  95.                     else
  96.                     {
  97.                         break;
  98.                     }
  99.                 }
  100.             }
  101.             return result;
  102.         }
Add Comment
Please, Sign In to add comment