home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Puzzle / blox.swf / scripts / frame_3 / DoAction.as
Encoding:
Text File  |  2006-06-13  |  90.2 KB  |  2,734 lines

  1. function UpdateDieTimer()
  2. {
  3.    var objBrk;
  4.    var i = 1;
  5.    while(i <= num_death_bricks)
  6.    {
  7.       objBrk = this["brcik" + array_death_bricks[i]];
  8.       if(objBrk._DieTimer < 100 && objBrk._DieTimer > 1)
  9.       {
  10.          objBrk._DieTimer -= 10;
  11.          objBrk._Alpha = 30 + objBrk._DieTimer * 0.7;
  12.          if(objBrk._DieTimer < 1)
  13.          {
  14.             objBrk._visible = false;
  15.          }
  16.       }
  17.       else
  18.       {
  19.          DeleteFromDeathArray(array_death_bricks[i]);
  20.       }
  21.       i++;
  22.    }
  23. }
  24. function FillArrayNet()
  25. {
  26.    var objBrk;
  27.    var nMax = field_sizeX * field_sizeY;
  28.    var i = 1;
  29.    while(i <= nMax)
  30.    {
  31.       ArrayNet[i] = 9999;
  32.       i++;
  33.    }
  34.    var i = 1;
  35.    while(i <= num_bricks)
  36.    {
  37.       objBrk = this["brcik" + i];
  38.       if(objBrk._DieTimer == 100)
  39.       {
  40.          objBrk._NetPosX = ConvXtoNetXround(objBrk._x);
  41.          objBrk._NetPosY = ConvYtoNetYround(objBrk._y);
  42.       }
  43.       i++;
  44.    }
  45.    var i = 1;
  46.    while(i <= num_hard_bricks)
  47.    {
  48.       objBrk = this["brcik" + array_hard_bricks[i]];
  49.       ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = array_hard_bricks[i];
  50.       i++;
  51.    }
  52. }
  53. function FillMustDieArray()
  54. {
  55.    var nMax = field_sizeX * field_sizeY;
  56.    total_num_must_die_bricks = 0;
  57.    var i = 1;
  58.    while(i <= nMax)
  59.    {
  60.       array_must_die_bricks[i] = 9999;
  61.       i++;
  62.    }
  63.    var j = 1;
  64.    while(j <= num_bricks)
  65.    {
  66.       if(this["brcik" + j]._MustDie)
  67.       {
  68.          total_num_must_die_bricks++;
  69.          array_must_die_bricks[total_num_must_die_bricks] = j;
  70.       }
  71.       j++;
  72.    }
  73. }
  74. function DeleteFromMustDieArray(n)
  75. {
  76.    var j = 1;
  77.    while(j <= total_num_must_die_bricks)
  78.    {
  79.       if(array_must_die_bricks[j] == n)
  80.       {
  81.          if(j < total_num_must_die_bricks)
  82.          {
  83.             array_must_die_bricks[j] = array_must_die_bricks[total_num_must_die_bricks];
  84.          }
  85.          total_num_must_die_bricks--;
  86.       }
  87.       j++;
  88.    }
  89. }
  90. function DeleteFromCanMoveArray(n)
  91. {
  92.    var j = 1;
  93.    while(j <= num_can_move_bricks)
  94.    {
  95.       if(array_can_move_bricks[j] == n)
  96.       {
  97.          if(j < num_can_move_bricks)
  98.          {
  99.             array_can_move_bricks[j] = array_can_move_bricks[num_can_move_bricks];
  100.          }
  101.          num_can_move_bricks--;
  102.       }
  103.       j++;
  104.    }
  105. }
  106. function SetRightPosition(n)
  107. {
  108.    var objBrk = this["brcik" + n];
  109.    objBrk._x = ConvNetXtoX(objBrk._NetPosX);
  110.    objBrk._y = ConvNetYtoY(objBrk._NetPosY);
  111. }
  112. function SetRightPositionX(n)
  113. {
  114.    var objBrk = this["brcik" + n];
  115.    objBrk._x = ConvNetXtoX(objBrk._NetPosX);
  116. }
  117. function SetRightPositionY(n)
  118. {
  119.    var objBrk = this["brcik" + n];
  120.    objBrk._y = ConvNetYtoY(objBrk._NetPosY);
  121. }
  122. function ConvNetXtoX(val)
  123. {
  124.    return val * brick_size + otstupX;
  125. }
  126. function ConvNetYtoY(val)
  127. {
  128.    return val * brick_size + otstupY;
  129. }
  130. function ConvXtoNetX(val)
  131. {
  132.    return Math.floor((val - otstupX) / brick_size);
  133. }
  134. function ConvYtoNetY(val)
  135. {
  136.    return Math.floor((val - otstupY) / brick_size);
  137. }
  138. function ConvXtoNetXround(val)
  139. {
  140.    return Math.round((val - otstupX) / brick_size);
  141. }
  142. function ConvYtoNetYround(val)
  143. {
  144.    return Math.round((val - otstupY) / brick_size);
  145. }
  146. function GetDifferenParentLastChild(index)
  147. {
  148.    var CurIndex = index;
  149.    var result = -1;
  150.    var objBrk = this["brcik" + CurIndex];
  151.    while(objBrk._Child != 9999)
  152.    {
  153.       CurIndex = objBrk._Child;
  154.       objBrk = this["brcik" + CurIndex];
  155.       result--;
  156.    }
  157.    return result;
  158. }
  159. function DeleteFromMovingArray(n)
  160. {
  161.    var j = 1;
  162.    while(j <= num_moving_bricks)
  163.    {
  164.       if(array_moving_bricks[j] == n)
  165.       {
  166.          if(j < num_moving_bricks)
  167.          {
  168.             array_moving_bricks[j] = array_moving_bricks[num_moving_bricks];
  169.          }
  170.          num_moving_bricks--;
  171.       }
  172.       j++;
  173.    }
  174. }
  175. function UpdateFalling()
  176. {
  177.    var objBrk;
  178.    var objBrk2;
  179.    var i = 1;
  180.    while(i <= total_num_must_die_bricks)
  181.    {
  182.       objBrk = this["brcik" + array_must_die_bricks[i]];
  183.       if(objBrk._Parent == 9999)
  184.       {
  185.          if(objBrk._BelongMagnet == 9999)
  186.          {
  187.             k = 9999;
  188.             if(objBrk._NetPosY < field_sizeY)
  189.             {
  190.                k = FindBrick(objBrk._NetPosX,objBrk._NetPosY + 1);
  191.             }
  192.             if(k == 9999 && objBrk._NetPosY < field_sizeY - 1)
  193.             {
  194.                k = FindBrick(objBrk._NetPosX,objBrk._NetPosY + 2);
  195.             }
  196.             objBrk._OldFalling = objBrk._Falling;
  197.             objBrk._Falling = false;
  198.             objBrk2 = this["brcik" + k];
  199.             if(k == 9999 || objBrk2._y - objBrk._y > brick_size + 6)
  200.             {
  201.                if(objBrk._NetPosY < field_sizeY)
  202.                {
  203.                   ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = 9999;
  204.                   objBrk._Falling = true;
  205.                   objBrk._y += 6;
  206.                   objBrk._NetPosY = ConvYtoNetY(objBrk._y);
  207.                   ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = objBrk._Number;
  208.                }
  209.                else
  210.                {
  211.                   objBrk._NetPosY = ConvYtoNetY(objBrk._y);
  212.                   objBrk._y = ConvNetYtoY(objBrk._NetPosY);
  213.                   if(objBrk._OldFalling == true)
  214.                   {
  215.                      AddToNextStepArray(objBrk._Number);
  216.                   }
  217.                }
  218.             }
  219.             else if(objBrk._Falling != objBrk._OldFalling)
  220.             {
  221.                ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = 9999;
  222.                if(k != 9999)
  223.                {
  224.                   objBrk._y = objBrk2._y - brick_size;
  225.                   objBrk._NetPosY = ConvYtoNetY(objBrk._y);
  226.                   if(objBrk2._Type != 11)
  227.                   {
  228.                      SetRightPosition(array_must_die_bricks[i]);
  229.                   }
  230.                }
  231.                ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = objBrk._Number;
  232.                AddToNextStepArray(objBrk._Number);
  233.             }
  234.          }
  235.       }
  236.       i++;
  237.    }
  238. }
  239. function UpdateMoving()
  240. {
  241.    var i;
  242.    var j;
  243.    var k;
  244.    var objBrk;
  245.    var objBrk2;
  246.    var xConv;
  247.    var yConv;
  248.    var d_x;
  249.    var d_y;
  250.    var mustY;
  251.    i = 1;
  252.    while(i <= num_moving_bricks)
  253.    {
  254.       objBrk = this["brcik" + array_moving_bricks[i]];
  255.       objBrk._LiftStopTime -= 1;
  256.       d_x = 0;
  257.       d_y = 0;
  258.       if(objBrk._MoveX > 0)
  259.       {
  260.          d_x = 1;
  261.       }
  262.       else if(objBrk._MoveX < 0)
  263.       {
  264.          d_x = -1;
  265.       }
  266.       if(objBrk._MoveY > 0)
  267.       {
  268.          d_y = 1;
  269.       }
  270.       else if(objBrk._MoveY < 0)
  271.       {
  272.          d_y = -1;
  273.       }
  274.       if(d_y == -1)
  275.       {
  276.          d_y = GetDifferenParentLastChild(array_moving_bricks[i]);
  277.       }
  278.       if(d_x == 1)
  279.       {
  280.          if(objBrk._NetPosX >= field_sizeX)
  281.          {
  282.             xConv = ConvNetXtoX(objBrk._NetPosX);
  283.             if(objBrk._x > xConv)
  284.             {
  285.                objBrk._x = xConv;
  286.                objBrk._MoveX *= -1;
  287.                objBrk._LiftStopTime = 25;
  288.             }
  289.          }
  290.       }
  291.       else if(d_x == -1)
  292.       {
  293.          if(objBrk._NetPosX <= 0)
  294.          {
  295.             if(objBrk._x < ConvNetXtoX(objBrk._NetPosX))
  296.             {
  297.                objBrk._x = ConvNetXtoX(objBrk._NetPosX + 1);
  298.                objBrk._MoveX *= -1;
  299.                objBrk._LiftStopTime = 25;
  300.             }
  301.          }
  302.       }
  303.       if(d_y == 1)
  304.       {
  305.          if(objBrk._NetPosY > field_sizeY - 1)
  306.          {
  307.             if(objBrk._y > ConvNetYtoY(objBrk._NetPosY))
  308.             {
  309.                SetrightPositionY(array_moving_bricks[i]);
  310.                objBrk._MoveY *= -1;
  311.                objBrk._LiftStopTime = 25;
  312.             }
  313.          }
  314.       }
  315.       else if(d_y < 0)
  316.       {
  317.          if(objBrk._NetPosY + d_y <= 0)
  318.          {
  319.             if(objBrk._y < ConvNetYtoY(objBrk._NetPosY))
  320.             {
  321.                SetrightPositionY(array_moving_bricks[i]);
  322.                objBrk._MoveY *= -1;
  323.                objBrk._LiftStopTime = 25;
  324.             }
  325.          }
  326.       }
  327.       if(objBrk._MoveX > 0)
  328.       {
  329.          d_x = 1;
  330.       }
  331.       else if(objBrk._MoveX < 0)
  332.       {
  333.          d_x = -1;
  334.       }
  335.       if(objBrk._MoveY > 0)
  336.       {
  337.          d_y = 1;
  338.       }
  339.       else if(objBrk._MoveY < 0)
  340.       {
  341.          d_y = GetDifferenParentLastChild(array_moving_bricks[i]);
  342.       }
  343.       if(objBrk._LiftStopTime < 0)
  344.       {
  345.          j = objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX;
  346.          ArrayNet[j] = 9999;
  347.          objBrk._x += objBrk._MoveX;
  348.          objBrk._y += objBrk._MoveY;
  349.          ArrayNet[j] = array_moving_bricks[i];
  350.       }
  351.       if(objBrk._NetPosY + d_y <= field_sizeY)
  352.       {
  353.          if(objBrk._NetPosY + d_y >= 1)
  354.          {
  355.             if(FindBrick(objBrk._NetPosX + d_x,objBrk._NetPosY + d_y) != 9999)
  356.             {
  357.                xConv = ConvNetXtoX(objBrk._NetPosX);
  358.                yConv = ConvNetYtoY(objBrk._NetPosY);
  359.                if(d_x < 0 && objBrk._x < xConv || d_x > 0 && objBrk._x > xConv || d_y < 0 && objBrk._y < yConv || d_y > 0 && objBrk._y > yConv)
  360.                {
  361.                   objBrk._LiftStopTime = 25;
  362.                   objBrk._MoveX *= -1;
  363.                   objBrk._MoveY *= -1;
  364.                   SetrightPosition(array_moving_bricks[i]);
  365.                }
  366.             }
  367.          }
  368.       }
  369.       j = objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX;
  370.       ArrayNet[j] = 9999;
  371.       objBrk._NetPosX = ConvXtoNetXround(objBrk._x);
  372.       objBrk._NetPosY = ConvYtoNetYround(objBrk._y);
  373.       j = objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX;
  374.       ArrayNet[j] = array_moving_bricks[i];
  375.       var s = array_moving_bricks[i];
  376.       objBrk = this["brcik" + s];
  377.       while(objBrk._Child != 9999)
  378.       {
  379.          objBrk2 = this["brcik" + objBrk._Child];
  380.          j = objBrk2._NetPosX + (objBrk2._NetPosY - 1) * field_sizeX;
  381.          ArrayNet[j] = 9999;
  382.          mustY = 9999;
  383.          k = objBrk._y - brick_size - objBrk2._y;
  384.          if(k > 10)
  385.          {
  386.             mustY = objBrk2._y + Math.round(k * 0.75);
  387.          }
  388.          objBrk2._x = objBrk._x;
  389.          objBrk2._y = objBrk._y - brick_size;
  390.          objBrk2._NetPosX = ConvXtoNetXround(objBrk2._x);
  391.          if(MustY != 9999)
  392.          {
  393.             objBrk2._y = mustY;
  394.          }
  395.          objBrk2._NetPosY = ConvYtoNetYround(objBrk2._y);
  396.          j = objBrk2._NetPosX + (objBrk2._NetPosY - 1) * field_sizeX;
  397.          ArrayNet[j] = objBrk._Child;
  398.          s = objBrk._Child;
  399.          objBrk = this["brcik" + s];
  400.       }
  401.       i++;
  402.    }
  403. }
  404. function UpdateParentChild()
  405. {
  406.    var objBrk;
  407.    var objBrk2;
  408.    var i;
  409.    var k;
  410.    i = 1;
  411.    while(i <= num_can_move_bricks)
  412.    {
  413.       objBrk = this["brcik" + array_can_move_bricks[i]];
  414.       if(objBrk._Parent != 9999 || objBrk._MoveY != 0 || objBrk._MoveX != 0)
  415.       {
  416.          if(objBrk._Child == 9999)
  417.          {
  418.             k = FindBrick(objBrk._NetPosX,objBrk._NetPosY - 1);
  419.             if(k != 9999)
  420.             {
  421.                objBrk2 = this["brcik" + k];
  422.                if(objBrk2._Parent == 9999)
  423.                {
  424.                   if(objBrk2._MustDie == 1)
  425.                   {
  426.                      objBrk._Child = k;
  427.                      objBrk2._Parent = array_can_move_bricks[i];
  428.                      objBrk2._Falling = false;
  429.                   }
  430.                }
  431.             }
  432.          }
  433.       }
  434.       i++;
  435.    }
  436.    i = 1;
  437.    while(i <= num_can_move_bricks)
  438.    {
  439.       objBrk = this["brcik" + array_can_move_bricks[i]];
  440.       if(objBrk._Child != 9999)
  441.       {
  442.          MarkBrickToDelete(objBrk._Child);
  443.       }
  444.       i++;
  445.    }
  446. }
  447. function LoadBricks(n, m)
  448. {
  449.    var strBrkName;
  450.    var nBrkType;
  451.    var objBrk;
  452.    var nBrkTypeTop;
  453.    var nBrkTypeLeft;
  454.    var nBrkTypeRight;
  455.    var nBrkTypeBottom;
  456.    var i = 1;
  457.    while(i <= num_bricks)
  458.    {
  459.       removeMovieClip(this["brcik" + i]);
  460.       i++;
  461.    }
  462.    DeleteLaserLines();
  463.    num_bricks = 0;
  464.    belong_brick = 9999;
  465.    took_brick = false;
  466.    num_can_move_bricks = 0;
  467.    num_moving_bricks = 0;
  468.    num_lava_bricks = 0;
  469.    num_teleport_bricks = 0;
  470.    num_hard_bricks = 0;
  471.    num_bomb_bricks = 0;
  472.    num_break_bricks = 0;
  473.    num_laser_bricks = 0;
  474.    num_magnet_bricks = 0;
  475.    num_magnetswitch_bricks = 0;
  476.    num_death_bricks = 0;
  477.    level_failed = false;
  478.    LastScore = Score;
  479.    FinishLevelTimer = 100;
  480.    dialog_mode = false;
  481.    this.ScoreOnBoardText1._DieTimer = -1;
  482.    this.ScoreOnBoardText1._visible = false;
  483.    LevelNet = this["LevelNet" + level_number];
  484.    var i = 1;
  485.    while(i <= m)
  486.    {
  487.       var j = 1;
  488.       while(j <= n)
  489.       {
  490.          nBrkType = LevelNet[j - 1 + (i - 1) * field_sizeX];
  491.          if(nBrkType != 1)
  492.          {
  493.             num_bricks++;
  494.             strBrkName = "brcik" + num_bricks;
  495.             if(nBrkType == 2)
  496.             {
  497.                nBrkTypeTop = 1;
  498.                nBrkTypeLeft = 1;
  499.                nBrkTypeRight = 1;
  500.                nBrkTypeBottom = 1;
  501.                if(j >= 2)
  502.                {
  503.                   nBrkTypeLeft = LevelNet[j - 2 + (i - 1) * field_sizeX];
  504.                }
  505.                if(j < n)
  506.                {
  507.                   nBrkTypeRight = LevelNet[j + (i - 1) * field_sizeX];
  508.                }
  509.                if(i >= 2)
  510.                {
  511.                   nBrkTypeTop = LevelNet[j - 1 + (i - 2) * field_sizeX];
  512.                }
  513.                if(i < m)
  514.                {
  515.                   nBrkTypeBottom = LevelNet[j - 1 + i * field_sizeX];
  516.                }
  517.                if(nBrkTypeLeft == 2 && nBrkTypeRight == 2 && nBrkTypeTop == 2 && nBrkTypeBottom == 2)
  518.                {
  519.                   duplicateMovieClip(LibraryBrickCross,strBrkName,16384 + num_bricks);
  520.                }
  521.                else if(nBrkTypeRight == 2 && nBrkTypeTop == 2 && nBrkTypeBottom == 2)
  522.                {
  523.                   duplicateMovieClip(LibraryBrickLTee,strBrkName,16384 + num_bricks);
  524.                }
  525.                else if(nBrkTypeLeft == 2 && nBrkTypeTop == 2 && nBrkTypeBottom == 2)
  526.                {
  527.                   duplicateMovieClip(LibraryBrickRTee,strBrkName,16384 + num_bricks);
  528.                }
  529.                else if(nBrkTypeLeft == 2 && nBrkTypeRight == 2 && nBrkTypeTop == 2)
  530.                {
  531.                   duplicateMovieClip(LibraryBrickBTee,strBrkName,16384 + num_bricks);
  532.                }
  533.                else if(nBrkTypeLeft == 2 && nBrkTypeRight == 2 && nBrkTypeBottom == 2)
  534.                {
  535.                   duplicateMovieClip(LibraryBrickTTee,strBrkName,16384 + num_bricks);
  536.                }
  537.                else if(nBrkTypeRight == 2 && nBrkTypeBottom == 2)
  538.                {
  539.                   duplicateMovieClip(LibraryBrickUL,strBrkName,16384 + num_bricks);
  540.                }
  541.                else if(nBrkTypeLeft == 2 && nBrkTypeBottom == 2)
  542.                {
  543.                   duplicateMovieClip(LibraryBrickUR,strBrkName,16384 + num_bricks);
  544.                }
  545.                else if(nBrkTypeRight == 2 && nBrkTypeTop == 2)
  546.                {
  547.                   duplicateMovieClip(LibraryBrickLL,strBrkName,16384 + num_bricks);
  548.                }
  549.                else if(nBrkTypeLeft == 2 && nBrkTypeTop == 2)
  550.                {
  551.                   duplicateMovieClip(LibraryBrickLR,strBrkName,16384 + num_bricks);
  552.                }
  553.                else if(nBrkTypeTop == 2 && nBrkTypeBottom == 2)
  554.                {
  555.                   duplicateMovieClip(LibraryBrickLeft,strBrkName,16384 + num_bricks);
  556.                }
  557.                else if(nBrkTypeLeft == 2 && nBrkTypeRight == 2)
  558.                {
  559.                   duplicateMovieClip(LibraryBrickTop,strBrkName,16384 + num_bricks);
  560.                }
  561.                else if(nBrkTypeBottom == 2)
  562.                {
  563.                   duplicateMovieClip(LibraryBrickTCap,strBrkName,16384 + num_bricks);
  564.                }
  565.                else if(nBrkTypeTop == 2)
  566.                {
  567.                   duplicateMovieClip(LibraryBrickBCap,strBrkName,16384 + num_bricks);
  568.                }
  569.                else if(nBrkTypeRight == 2)
  570.                {
  571.                   duplicateMovieClip(LibraryBrickLCap,strBrkName,16384 + num_bricks);
  572.                }
  573.                else if(nBrkTypeLeft == 2)
  574.                {
  575.                   duplicateMovieClip(LibraryBrickRCap,strBrkName,16384 + num_bricks);
  576.                }
  577.                else
  578.                {
  579.                   duplicateMovieClip(LibraryBrickCap,strBrkName,16384 + num_bricks);
  580.                }
  581.             }
  582.             else if(nBrkType == 3)
  583.             {
  584.                duplicateMovieClip(LibraryBrick1,strBrkName,16384 + (num_bricks + 150));
  585.             }
  586.             else if(nBrkType == 4)
  587.             {
  588.                duplicateMovieClip(LibraryBrick2,strBrkName,16384 + (num_bricks + 150));
  589.             }
  590.             else if(nBrkType == 5)
  591.             {
  592.                duplicateMovieClip(LibraryBrick3,strBrkName,16384 + (num_bricks + 150));
  593.             }
  594.             else if(nBrkType == 6)
  595.             {
  596.                duplicateMovieClip(LibraryBrick4,strBrkName,16384 + (num_bricks + 150));
  597.             }
  598.             else if(nBrkType == 7)
  599.             {
  600.                duplicateMovieClip(LibraryBrick5,strBrkName,16384 + (num_bricks + 150));
  601.             }
  602.             else if(nBrkType == 8)
  603.             {
  604.                duplicateMovieClip(LibraryBrick6,strBrkName,16384 + (num_bricks + 150));
  605.             }
  606.             else if(nBrkType == 9)
  607.             {
  608.                duplicateMovieClip(LibraryBrick7,strBrkName,16384 + (num_bricks + 150));
  609.             }
  610.             else if(nBrkType == 10)
  611.             {
  612.                duplicateMovieClip(LibraryBrick8,strBrkName,16384 + (num_bricks + 150));
  613.             }
  614.             else if(nBrkType == 11)
  615.             {
  616.                duplicateMovieClip(LibraryBrickLift,strBrkName,16384 + (num_bricks + 150));
  617.             }
  618.             else if(nBrkType == 12)
  619.             {
  620.                duplicateMovieClip(LibraryBrickWater,strBrkName,16384 + (num_bricks + 150));
  621.             }
  622.             else if(nBrkType == 13)
  623.             {
  624.                duplicateMovieClip(LibraryBrickLava,strBrkName,16384 + (num_bricks + 150));
  625.             }
  626.             else if(nBrkType == 14)
  627.             {
  628.                duplicateMovieClip(LibraryBrickBomb,strBrkName,16384 + num_bricks);
  629.             }
  630.             else if(nBrkType == 15)
  631.             {
  632.                duplicateMovieClip(LibraryBrickBreak,strBrkName,16384 + num_bricks);
  633.             }
  634.             else if(nBrkType == 16)
  635.             {
  636.                duplicateMovieClip(LibraryBrickLift,strBrkName,16384 + (num_bricks + 150));
  637.             }
  638.             else if(nBrkType == 21 || nBrkType == 23 || nBrkType == 25 || nBrkType == 27)
  639.             {
  640.                duplicateMovieClip(LibraryBrickTeleport,strBrkName,16384 + (num_bricks + 150));
  641.             }
  642.             else if(nBrkType == 22 || nBrkType == 24 || nBrkType == 26 || nBrkType == 28)
  643.             {
  644.                duplicateMovieClip(LibraryBrickTeleport2,strBrkName,16384 + (num_bricks + 150));
  645.             }
  646.             else if(nBrkType >= 31 && nBrkType <= 34)
  647.             {
  648.                duplicateMovieClip(LibraryBrickMagnet,strBrkName,16384 + (num_bricks + 150));
  649.             }
  650.             else if(nBrkType >= 41 && nBrkType <= 49)
  651.             {
  652.                duplicateMovieClip(LibraryBrickSwitch,strBrkName,16384 + (num_bricks + 150));
  653.             }
  654.             else if(nBrkType >= 51 && nBrkType <= 99)
  655.             {
  656.                duplicateMovieClip(LibraryBrickLaser,strBrkName,16384 + num_bricks);
  657.             }
  658.             objBrk = this[strBrkName];
  659.             objBrk._x = ConvNetXtoX(j);
  660.             objBrk._y = ConvNetYtoY(i);
  661.             objBrk._NetPosX = j;
  662.             objBrk._NetPosY = i;
  663.             objBrk._MustDie = 0;
  664.             objBrk._Health = 100;
  665.             objBrk._Falling = false;
  666.             objBrk._DeleteMark = false;
  667.             objBrk._visible = true;
  668.             objBrk._Parent = 9999;
  669.             objBrk._Child = 9999;
  670.             objBrk._MoveX = 0;
  671.             objBrk._MoveY = 0;
  672.             objBrk._Number = num_bricks;
  673.             objBrk._DieTimer = 100;
  674.             objBrk._LiftStopTime = 0;
  675.             objBrk._MagnetOn = 2;
  676.             objBrk._BelongMagnet = 9999;
  677.             objBrk._SwitchNumber = 9999;
  678.             objBrk._MustDie = 0;
  679.             objBrk._Type = nBrkType;
  680.             if(nBrkType >= 3 && nBrkType <= 10)
  681.             {
  682.                objBrk._MustDie = 1;
  683.             }
  684.             if(nBrkType == 11)
  685.             {
  686.                objBrk._MoveY = 4;
  687.             }
  688.             else if(nBrkType == 16)
  689.             {
  690.                objBrk._MoveX = 4;
  691.             }
  692.             if(nBrkType >= 3 && nBrkType <= 11 || nBrkType == 16)
  693.             {
  694.                num_can_move_bricks++;
  695.                array_can_move_bricks[num_can_move_bricks] = num_bricks;
  696.             }
  697.             if(nBrkType == 11 || nBrkType == 16)
  698.             {
  699.                num_moving_bricks++;
  700.                array_moving_bricks[num_moving_bricks] = num_bricks;
  701.             }
  702.             else if(nBrkType == 12 || nBrkType == 13)
  703.             {
  704.                num_lava_bricks++;
  705.                array_lava_bricks[num_lava_bricks] = num_bricks;
  706.             }
  707.             else if(nBrkType == 14)
  708.             {
  709.                num_bomb_bricks++;
  710.                array_bomb_bricks[num_bomb_bricks] = num_bricks;
  711.             }
  712.             else if(nBrkType == 15)
  713.             {
  714.                num_break_bricks++;
  715.                array_break_bricks[num_break_bricks] = num_bricks;
  716.             }
  717.             else if(nBrkType >= 21 && nBrkType <= 30)
  718.             {
  719.                num_teleport_bricks++;
  720.                array_teleport_bricks[num_teleport_bricks] = num_bricks;
  721.             }
  722.             if(nBrkType >= 1 && nBrkType <= 11 || nBrkType >= 14 && nBrkType <= 16 || nBrkType >= 31 && nBrkType <= 34 || nBrkType >= 41 && nBrkType <= 49 || nBrkType >= 51 && nBrkType <= 99)
  723.             {
  724.                num_hard_bricks++;
  725.                array_hard_bricks[num_hard_bricks] = num_bricks;
  726.             }
  727.             if(nBrkType >= 51 && nBrkType <= 99)
  728.             {
  729.                num_laser_bricks++;
  730.                array_laser_bricks[num_laser_bricks] = num_bricks;
  731.                objBrk._LaserMaxTime = 80;
  732.                if(nBrkType > 60)
  733.                {
  734.                   objBrk._LaserMaxTime = 100;
  735.                }
  736.                if(nBrkType > 70)
  737.                {
  738.                   objBrk._LaserMaxTime = 120;
  739.                }
  740.                if(nBrkType > 80)
  741.                {
  742.                   objBrk._LaserMaxTime = 140;
  743.                }
  744.                if(nBrkType > 90)
  745.                {
  746.                   objBrk._LaserMaxTime = 160;
  747.                }
  748.                objBrk._LaserTimer = objBrk._LaserMaxTime;
  749.                objBrk._LaserType = 1;
  750.                objBrk._LaserType = nBrkType - Math.round(nBrkType / 10) * 10;
  751.                if(objBrk._LaserType == 2)
  752.                {
  753.                   objBrk._rotation = 90;
  754.                }
  755.                if(objBrk._LaserType == 3)
  756.                {
  757.                   objBrk._rotation = 180;
  758.                }
  759.                if(objBrk._LaserType == 4)
  760.                {
  761.                   objBrk._rotation = 270;
  762.                }
  763.             }
  764.             if(nBrkType >= 31 && nBrkType <= 34)
  765.             {
  766.                num_magnet_bricks++;
  767.                array_magnet_bricks[num_magnet_bricks] = num_bricks;
  768.                objBrk._LaserType = nBrkType - 30;
  769.                if(objBrk._LaserType == 2)
  770.                {
  771.                   objBrk._rotation = 90;
  772.                }
  773.                if(objBrk._LaserType == 3)
  774.                {
  775.                   objBrk._rotation = 180;
  776.                }
  777.                if(objBrk._LaserType == 4)
  778.                {
  779.                   objBrk._rotation = 270;
  780.                }
  781.             }
  782.             if(nBrkType >= 41 && nBrkType <= 49)
  783.             {
  784.                num_magnetswitch_bricks++;
  785.                array_magnetswitch_bricks[num_magnetswitch_bricks] = num_bricks;
  786.                objBrk._SwitchNumber = nBrkType - 40;
  787.             }
  788.          }
  789.          j++;
  790.       }
  791.       i++;
  792.    }
  793.    FillMustDieArray();
  794.    NumberMustDieBricks = GetNumberMustDieBricks();
  795.    SetVisiblePanelBricks();
  796.    CreateLaserLines();
  797.    FillArrayNet();
  798.    SetSwitchMagnetValues();
  799.    ShowStartMessage(level_number);
  800.    delete myDate;
  801.    myDate = new Date();
  802.    CurrentTime = myDate.getTime();
  803.    ElapsedTime = CurrentTime - LastTime;
  804.    LastTime = CurrentTime;
  805. }
  806. function FindBrick(x, y)
  807. {
  808.    return ArrayNet[x + (y - 1) * field_sizeX];
  809. }
  810. function FindBrickByType(n)
  811. {
  812.    var i = 1;
  813.    while(i <= num_bricks)
  814.    {
  815.       if(this["brcik" + i]._DieTimer == 100)
  816.       {
  817.          if(this["brcik" + i]._Type == n)
  818.          {
  819.             return i;
  820.          }
  821.       }
  822.       i++;
  823.    }
  824.    return 9999;
  825. }
  826. function DeleteBrick(n)
  827. {
  828.    var objBrk = this["brcik" + n];
  829.    ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = 9999;
  830.    DeleteFromMustDieArray(n);
  831.    DeleteFromCanMoveArray(n);
  832.    DeleteFromLavaArray(n);
  833.    DeleteFromHardArray(n);
  834.    DeleteFromBombArray(n);
  835.    DeleteFromBreakArray(n);
  836.    DeleteFromLaserArray(n);
  837.    DeleteFromMagnetArray(n);
  838.    DeleteFromSwitchArray(n);
  839.    DeleteFromMovingArray(n);
  840.    AddToDeathArray(n);
  841.    if(belong_brick == n)
  842.    {
  843.       belong_brick = 9999;
  844.    }
  845.    objBrk._DieTimer = 99;
  846.    objBrk.GotoAndPlay(2);
  847.    if(objBrk._Child != 9999)
  848.    {
  849.       this["brcik" + objBrk._Child]._Parent = 9999;
  850.       objBrk._Child = 9999;
  851.    }
  852.    if(objBrk._Parent != 9999)
  853.    {
  854.       this["brcik" + objBrk._Parent]._Child = 9999;
  855.       objBrk._Parent = 9999;
  856.    }
  857. }
  858. function MarkBrickToDelete(n)
  859. {
  860.    var objBrk = this["brcik" + n];
  861.    var objBrk2;
  862.    var i;
  863.    var j;
  864.    var k;
  865.    if(Math.abs(objBrk._x - ConvNetXtoX(objBrk._NetPosX)) > 6)
  866.    {
  867.       return undefined;
  868.    }
  869.    if(Math.abs(objBrk._y - ConvNetYtoY(objBrk._NetPosY)) > 6)
  870.    {
  871.       return undefined;
  872.    }
  873.    if(objBrk._MustDie == 0)
  874.    {
  875.       return undefined;
  876.    }
  877.    if(objBrk._Falling)
  878.    {
  879.       return undefined;
  880.    }
  881.    if(objBrk._DieTimer != 100)
  882.    {
  883.       return undefined;
  884.    }
  885.    if(objBrk._Parent != 9999)
  886.    {
  887.       if(this["brcik" + objBrk._Parent]._y - objBrk._y > brick_size + 6)
  888.       {
  889.          return undefined;
  890.       }
  891.    }
  892.    Marked = false;
  893.    j = 1;
  894.    while(j <= 4)
  895.    {
  896.       k = 9999;
  897.       if(j == 1)
  898.       {
  899.          if(objBrk._NetPosX > 1)
  900.          {
  901.             k = FindBrick(objBrk._NetPosX - 1,objBrk._NetPosY);
  902.          }
  903.       }
  904.       else if(j == 2)
  905.       {
  906.          if(objBrk._NetPosX < field_sizeX)
  907.          {
  908.             k = FindBrick(objBrk._NetPosX + 1,objBrk._NetPosY);
  909.          }
  910.       }
  911.       else if(j == 3)
  912.       {
  913.          if(objBrk._NetPosY > 1)
  914.          {
  915.             k = FindBrick(objBrk._NetPosX,objBrk._NetPosY - 1);
  916.          }
  917.       }
  918.       else if(j == 4)
  919.       {
  920.          if(objBrk._NetPosY < field_sizeX)
  921.          {
  922.             k = FindBrick(objBrk._NetPosX,objBrk._NetPosY + 1);
  923.          }
  924.       }
  925.       if(k != 9999)
  926.       {
  927.          objBrk2 = this["brcik" + k];
  928.          if(objBrk2._DieTimer == 100)
  929.          {
  930.             if(objBrk._Type == objBrk2._Type)
  931.             {
  932.                if(Math.abs(objBrk2._y - ConvNetYtoY(objBrk2._NetPosY)) < 5)
  933.                {
  934.                   if(Math.abs(objBrk2._x - ConvNetXtoX(objBrk2._NetPosX)) < 5)
  935.                   {
  936.                      if(!objBrk2._Falling)
  937.                      {
  938.                         if(!(objBrk2._Parent != 9999 && this["brcik" + objBrk2._Parent]._y - objBrk2._y > brick_size + 6))
  939.                         {
  940.                            difX = objBrk._NetPosX - objBrk2._NetPosX;
  941.                            difY = objBrk._NetPosY - objBrk2._NetPosY;
  942.                            if(difX == 1 && difY == 0 || difX == -1 && difY == 0 || difX == 0 && difY == 1 || difX == 0 && difY == -1)
  943.                            {
  944.                               SetrightPosition(n);
  945.                               SetrightPosition(k);
  946.                               objBrk._DeleteMark = true;
  947.                               objBrk2._DeleteMark = true;
  948.                               if(belong_brick == n || belong_brick == k)
  949.                               {
  950.                                  belong_brick = 9999;
  951.                               }
  952.                               Marked = true;
  953.                            }
  954.                         }
  955.                      }
  956.                   }
  957.                }
  958.             }
  959.          }
  960.       }
  961.       j++;
  962.    }
  963.    if(Marked)
  964.    {
  965.       i = 1;
  966.       while(i <= num_bricks)
  967.       {
  968.          objBrk2 = this["brcik" + i];
  969.          if(objBrk2._visible && objBrk2._DeleteMark)
  970.          {
  971.             if(this.ScoreOnBoardText1._DieTimer != 100)
  972.             {
  973.                this.ScoreOnBoardText1._ScoreMultiplier = 1;
  974.                ScoreTextSetProperty(objBrk._x,objBrk._y - brick_size * 1.5,"50");
  975.             }
  976.             else
  977.             {
  978.                this.ScoreOnBoardText1._ScoreMultiplier = this.ScoreOnBoardText1._ScoreMultiplier + 1;
  979.                if(objBrk._y < this.ScoreOnBoardText1._y + brick_size * 1.5 || this.ScoreOnBoardText1._DieTimer < 100)
  980.                {
  981.                   ScoreTextSetProperty(objBrk._x,objBrk._y - brick_size * 1.5,"50");
  982.                }
  983.                this.ScoreOnBoardText1._DieTimer = 100;
  984.             }
  985.             Score += 100;
  986.             DeleteBrick(i);
  987.          }
  988.          i++;
  989.       }
  990.       FillArrayNet();
  991.       SetVisiblePanelBricks();
  992.       if(this.ScoreOnBoardText1._ScoreMultiplier > 2)
  993.       {
  994.          SoundBonus.start();
  995.       }
  996.       else
  997.       {
  998.          SoundElimenateBlox.start();
  999.       }
  1000.    }
  1001. }
  1002. function GetNumberMustDieBricks()
  1003. {
  1004.    return total_num_must_die_bricks;
  1005. }
  1006. function DeleteFromLavaArray(n)
  1007. {
  1008.    var j = 1;
  1009.    while(j <= num_lava_bricks)
  1010.    {
  1011.       if(array_lava_bricks[j] == n)
  1012.       {
  1013.          if(j < num_lava_bricks)
  1014.          {
  1015.             array_lava_bricks[j] = array_lava_bricks[num_lava_bricks];
  1016.          }
  1017.          num_lava_bricks--;
  1018.       }
  1019.       j++;
  1020.    }
  1021. }
  1022. function UpdateLavaBricks()
  1023. {
  1024.    var objBrk;
  1025.    var i;
  1026.    var n;
  1027.    i = 1;
  1028.    while(i <= num_lava_bricks)
  1029.    {
  1030.       objBrk = this["brcik" + array_lava_bricks[i]];
  1031.       n = FindBrick(objBrk._NetPosX,objBrk._NetPosY);
  1032.       if(n != 9999)
  1033.       {
  1034.          if(objBrk._Type == 12)
  1035.          {
  1036.             DeleteBrick(n);
  1037.             SetVisiblePanelBricks();
  1038.          }
  1039.          else if(objBrk._Type == 13)
  1040.          {
  1041.             level_failed = true;
  1042.             DeleteBrick(n);
  1043.             SetVisiblePanelBricks();
  1044.          }
  1045.       }
  1046.       i++;
  1047.    }
  1048. }
  1049. function UpdateTeleportBricks()
  1050. {
  1051.    var i;
  1052.    var j;
  1053.    var n;
  1054.    var objBrk;
  1055.    var objBrk2;
  1056.    i = 1;
  1057.    while(i <= num_teleport_bricks)
  1058.    {
  1059.       objBrk = this["brcik" + array_teleport_bricks[i]];
  1060.       n = FindBrick(objBrk._NetPosX,objBrk._NetPosY);
  1061.       if(n != 9999)
  1062.       {
  1063.          if(Math.ceil(objBrk._Type / 2) != Math.floor(objBrk._Type / 2))
  1064.          {
  1065.             if(FindBrickByType(objBrk._Type + 1) != 9999)
  1066.             {
  1067.                objBrk2 = this["brcik" + n];
  1068.                j = objBrk2._NetPosX + (objBrk2._NetPosY - 1) * field_sizeX;
  1069.                ArrayNet[j] = 9999;
  1070.                objBrk2._x = this["brcik" + FindBrickByType(objBrk._Type + 1)]._x;
  1071.                objBrk2._y = this["brcik" + FindBrickByType(objBrk._Type + 1)]._y;
  1072.                objBrk2._NetPosX = ConvXtoNetXround(objBrk2._x);
  1073.                objBrk2._NetPosY = ConvYtoNetYround(objBrk2._y);
  1074.                j = objBrk2._NetPosX + (objBrk2._NetPosY - 1) * field_sizeX;
  1075.                ArrayNet[j] = n;
  1076.                objBrk2._Falling = true;
  1077.             }
  1078.          }
  1079.       }
  1080.       i++;
  1081.    }
  1082. }
  1083. function DeleteFromHardArray(n)
  1084. {
  1085.    var j = 1;
  1086.    while(j <= num_hard_bricks)
  1087.    {
  1088.       if(array_hard_bricks[j] == n)
  1089.       {
  1090.          if(j < num_hard_bricks)
  1091.          {
  1092.             array_hard_bricks[j] = array_hard_bricks[num_hard_bricks];
  1093.          }
  1094.          hard_bricks--;
  1095.       }
  1096.       j++;
  1097.    }
  1098. }
  1099. function DeleteFromBombArray(n)
  1100. {
  1101.    var j = 1;
  1102.    while(j <= num_bomb_bricks)
  1103.    {
  1104.       if(array_bomb_bricks[j] == n)
  1105.       {
  1106.          if(j < num_bomb_bricks)
  1107.          {
  1108.             array_bomb_bricks[j] = array_bomb_bricks[num_bomb_bricks];
  1109.          }
  1110.          num_bomb_bricks--;
  1111.       }
  1112.       j++;
  1113.    }
  1114. }
  1115. function UpdateBombBricks()
  1116. {
  1117.    var objBrk;
  1118.    var i;
  1119.    var n;
  1120.    var j;
  1121.    i = 1;
  1122.    while(i <= num_bomb_bricks)
  1123.    {
  1124.       objBrk = this["brcik" + array_bomb_bricks[i]];
  1125.       if(objBrk._NetPosY > 1)
  1126.       {
  1127.          n = FindBrick(objBrk._NetPosX,objBrk._NetPosY - 1);
  1128.          if(n != 9999)
  1129.          {
  1130.             SoundBombExplode.start();
  1131.             DeleteBrick(n);
  1132.             n = FindBrick(objBrk._NetPosX,objBrk._NetPosY + 1);
  1133.             if(n != 9999)
  1134.             {
  1135.                DeleteBrick(n);
  1136.             }
  1137.             n = FindBrick(objBrk._NetPosX - 1,objBrk._NetPosY);
  1138.             if(n != 9999)
  1139.             {
  1140.                DeleteBrick(n);
  1141.             }
  1142.             n = FindBrick(objBrk._NetPosX + 1,objBrk._NetPosY);
  1143.             if(n != 9999)
  1144.             {
  1145.                DeleteBrick(n);
  1146.             }
  1147.             n = FindBrick(objBrk._NetPosX + 1,objBrk._NetPosY - 1);
  1148.             if(n != 9999)
  1149.             {
  1150.                DeleteBrick(n);
  1151.             }
  1152.             n = FindBrick(objBrk._NetPosX + 1,objBrk._NetPosY + 1);
  1153.             if(n != 9999)
  1154.             {
  1155.                DeleteBrick(n);
  1156.             }
  1157.             n = FindBrick(objBrk._NetPosX - 1,objBrk._NetPosY - 1);
  1158.             if(n != 9999)
  1159.             {
  1160.                DeleteBrick(n);
  1161.             }
  1162.             n = FindBrick(objBrk._NetPosX - 1,objBrk._NetPosY + 1);
  1163.             if(n != 9999)
  1164.             {
  1165.                DeleteBrick(n);
  1166.             }
  1167.             objBrk.GotoAndPlay(3);
  1168.             j = 1;
  1169.             while(j <= num_lava_bricks)
  1170.             {
  1171.                objBrk2 = this["brcik" + array_lava_bricks[j]];
  1172.                if(Math.abs(objBrk2._NetPosX - objBrk._NetPosX) <= 1 && Math.abs(objBrk2._NetPosY - objBrk._NetPosY) <= 1)
  1173.                {
  1174.                   DeleteBrick(objBrk2._Number);
  1175.                }
  1176.                j++;
  1177.             }
  1178.             SetVisiblePanelBricks();
  1179.          }
  1180.       }
  1181.       i++;
  1182.    }
  1183. }
  1184. function DeleteFromBreakArray(n)
  1185. {
  1186.    var j = 1;
  1187.    while(j <= num_break_bricks)
  1188.    {
  1189.       if(array_break_bricks[j] == n)
  1190.       {
  1191.          if(j < num_break_bricks)
  1192.          {
  1193.             array_break_bricks[j] = array_break_bricks[num_break_bricks];
  1194.          }
  1195.          num_break_bricks--;
  1196.       }
  1197.       j++;
  1198.    }
  1199. }
  1200. function UpdateBreakBricks()
  1201. {
  1202.    var objBrk;
  1203.    var objBrk2;
  1204.    var i;
  1205.    var n;
  1206.    i = 1;
  1207.    while(i <= num_break_bricks)
  1208.    {
  1209.       objBrk = this["brcik" + array_break_bricks[i]];
  1210.       if(objBrk._NetPosY > 1)
  1211.       {
  1212.          n = FindBrick(objBrk._NetPosX,objBrk._NetPosY - 1);
  1213.          objBrk2 = this["brcik" + n];
  1214.          if(n != 9999)
  1215.          {
  1216.             if(objBrk2._MustDie == 1)
  1217.             {
  1218.                objBrk.GotoAndStop(5 - Math.round(objBrk._Health / 20));
  1219.                objBrk._Health -= 3;
  1220.                if(objBrk._Health <= 0)
  1221.                {
  1222.                   DeleteBrick(FindBrick(objBrk._NetPosX,objBrk._NetPosY));
  1223.                }
  1224.             }
  1225.          }
  1226.       }
  1227.       i++;
  1228.    }
  1229. }
  1230. function DeleteFromLaserArray(n)
  1231. {
  1232.    var j = 1;
  1233.    while(j <= num_laser_bricks)
  1234.    {
  1235.       if(array_laser_bricks[j] == n)
  1236.       {
  1237.          if(j < num_laser_bricks)
  1238.          {
  1239.             array_laser_bricks[j] = array_laser_bricks[num_laser_bricks];
  1240.          }
  1241.          num_laser_bricks--;
  1242.       }
  1243.       j++;
  1244.    }
  1245. }
  1246. function UpdateLaserBricks()
  1247. {
  1248.    var objBrk;
  1249.    var i;
  1250.    i = 1;
  1251.    while(i <= num_laser_bricks)
  1252.    {
  1253.       objBrk = this["brcik" + array_laser_bricks[i]];
  1254.       objBrk._LaserTimer -= 1;
  1255.       if(objBrk._LaserTimer < 1)
  1256.       {
  1257.          objBrk._LaserTimer = objBrk._LaserMaxTime;
  1258.       }
  1259.       GetLaserTarget(array_laser_bricks[i]);
  1260.       if(objBrk._LaserTimer < objBrk._LaserMaxTime / 4)
  1261.       {
  1262.          LaserFire(array_laser_bricks[i]);
  1263.       }
  1264.       UpdateLaserLines(i);
  1265.       i++;
  1266.    }
  1267. }
  1268. function GetLaserTarget(n)
  1269. {
  1270.    var objBrk = this["brcik" + n];
  1271.    var temp_i;
  1272.    var add_x = -1;
  1273.    var add_y = 0;
  1274.    objBrk._LaserEndNetX = 9999;
  1275.    if(objBrk._LaserType == 1)
  1276.    {
  1277.       add_x = -1;
  1278.       add_y = 0;
  1279.    }
  1280.    else if(objBrk._LaserType == 2)
  1281.    {
  1282.       add_x = 0;
  1283.       add_y = -1;
  1284.    }
  1285.    else if(objBrk._LaserType == 3)
  1286.    {
  1287.       add_x = 1;
  1288.       add_y = 0;
  1289.    }
  1290.    else if(objBrk._LaserType == 4)
  1291.    {
  1292.       add_x = 0;
  1293.       add_y = 1;
  1294.    }
  1295.    var b = false;
  1296.    var cur_x = objBrk._NetPosX + add_x;
  1297.    var cur_y = objBrk._NetPosY + add_y;
  1298.    objBrk._LaserStartNetX = cur_x;
  1299.    objBrk._LaserStartNetY = cur_y;
  1300.    while(FindBrick(cur_x,cur_y) == 9999 || this["brcik" + FindBrick(cur_x,cur_y)]._MustDie == 1)
  1301.    {
  1302.       b = true;
  1303.       cur_x += add_x;
  1304.       cur_y += add_y;
  1305.       if(cur_x < 1)
  1306.       {
  1307.          break;
  1308.       }
  1309.       if(cur_y < 1)
  1310.       {
  1311.          break;
  1312.       }
  1313.       if(cur_x > field_sizeX)
  1314.       {
  1315.          break;
  1316.       }
  1317.       if(cur_y > field_sizeY)
  1318.       {
  1319.          break;
  1320.       }
  1321.    }
  1322.    if(b)
  1323.    {
  1324.       objBrk._LaserEndNetX = cur_x - add_x;
  1325.       objBrk._LaserEndNetY = cur_y - add_y;
  1326.       if(objBrk._LaserEndNetX < objBrk._LaserStartNetX)
  1327.       {
  1328.          temp_i = objBrk._LaserEndNetX;
  1329.          objBrk._LaserEndNetX = objBrk._LaserStartNetX;
  1330.          objBrk._LaserStartNetX = temp_i;
  1331.       }
  1332.       if(objBrk._LaserEndNetY < objBrk._LaserStartNetY)
  1333.       {
  1334.          temp_i = objBrk._LaserEndNetY;
  1335.          objBrk._LaserEndNetY = objBrk._LaserStartNetY;
  1336.          objBrk._LaserStartNetY = temp_i;
  1337.       }
  1338.    }
  1339. }
  1340. function LaserFire(n)
  1341. {
  1342.    var objBrk = this["brcik" + n];
  1343.    var objBrk2;
  1344.    var i;
  1345.    var j;
  1346.    var add_x = 0;
  1347.    var add_y = 0;
  1348.    if(objBrk._LaserEndNetX == 9999)
  1349.    {
  1350.       return undefined;
  1351.    }
  1352.    i = objBrk._LaserStartNetX;
  1353.    while(i <= objBrk._LaserEndNetX)
  1354.    {
  1355.       j = objBrk._LaserStartNetY;
  1356.       while(j <= objBrk._LaserEndNetY)
  1357.       {
  1358.          objBrk2 = FindBrick(i,j);
  1359.          if(objBrk2 != 9999)
  1360.          {
  1361.             if(this["brcik" + objBrk2]._MustDie == 1)
  1362.             {
  1363.                level_failed = true;
  1364.                DeleteBrick(objBrk2);
  1365.             }
  1366.          }
  1367.          j++;
  1368.       }
  1369.       i++;
  1370.    }
  1371. }
  1372. function CreateLaserLines()
  1373. {
  1374.    var i;
  1375.    var j;
  1376.    var strName;
  1377.    var objBrk;
  1378.    var objBrk2;
  1379.    i = 1;
  1380.    while(i <= num_laser_bricks)
  1381.    {
  1382.       j = 1;
  1383.       while(j <= 14)
  1384.       {
  1385.          strName = "laser" + i + "_" + j;
  1386.          duplicateMovieClip(LibraryLaser,strName,16384 + (500 + i * 15 + j));
  1387.          objBrk = this[strName];
  1388.          objBrk2 = this["brcik" + array_laser_bricks[i]];
  1389.          objBrk._visible = false;
  1390.          if(objBrk2._LaserType == 2 || objBrk2._LaserType == 4)
  1391.          {
  1392.             objBrk._rotation = 90;
  1393.          }
  1394.          j++;
  1395.       }
  1396.       i++;
  1397.    }
  1398. }
  1399. function DeleteLaserLines()
  1400. {
  1401.    var i;
  1402.    var j;
  1403.    i = 1;
  1404.    while(i <= 20)
  1405.    {
  1406.       j = 1;
  1407.       while(j <= 14)
  1408.       {
  1409.          removeMovieClip(this["laser" + i + "_" + j]);
  1410.          j++;
  1411.       }
  1412.       i++;
  1413.    }
  1414. }
  1415. function UpdateLaserLines(n)
  1416. {
  1417.    var objBrk;
  1418.    var objBrk2;
  1419.    var j = 1;
  1420.    while(j <= 14)
  1421.    {
  1422.       this["laser" + n + "_" + j]._visible = false;
  1423.       j++;
  1424.    }
  1425.    objBrk = this["brcik" + array_laser_bricks[n]];
  1426.    if(objBrk._LaserTimer >= objBrk._LaserMaxTime / 4)
  1427.    {
  1428.       return undefined;
  1429.    }
  1430.    if(objBrk._LaserEndNetX == 9999)
  1431.    {
  1432.       return undefined;
  1433.    }
  1434.    var cur = 1;
  1435.    var i;
  1436.    var j;
  1437.    i = objBrk._LaserStartNetX;
  1438.    while(i <= objBrk._LaserEndNetX)
  1439.    {
  1440.       j = objBrk._LaserStartNetY;
  1441.       while(j <= objBrk._LaserEndNetY)
  1442.       {
  1443.          objBrk2 = this["laser" + n + "_" + cur];
  1444.          objBrk2._visible = true;
  1445.          objBrk2._x = ConvNetXtoX(i);
  1446.          objBrk2._y = ConvNetYtoY(j);
  1447.          cur++;
  1448.          j++;
  1449.       }
  1450.       i++;
  1451.    }
  1452. }
  1453. function DeleteFromMagnetArray(n)
  1454. {
  1455.    var j = 1;
  1456.    while(j <= num_magnet_bricks)
  1457.    {
  1458.       if(array_magnet_bricks[j] == n)
  1459.       {
  1460.          if(j < num_magnet_bricks)
  1461.          {
  1462.             array_magnet_bricks[j] = array_magnet_bricks[num_magnet_bricks];
  1463.          }
  1464.          num_magnet_bricks--;
  1465.       }
  1466.       j++;
  1467.    }
  1468. }
  1469. function UpdateMagnetBricks()
  1470. {
  1471.    var j;
  1472.    var objBrk;
  1473.    var objBrk2;
  1474.    var n;
  1475.    var add_x;
  1476.    var add_y;
  1477.    var i = 1;
  1478.    while(i <= num_magnetswitch_bricks)
  1479.    {
  1480.       objBrk = this["brcik" + array_magnetswitch_bricks[i]];
  1481.       m = FindBrick(objBrk._NetPosX,objBrk._NetPosY - 1);
  1482.       n = objBrk._SwitchNumber;
  1483.       objBrk2 = this["brcik" + n];
  1484.       if(m == 9999)
  1485.       {
  1486.          if(objBrk2._MagnetOn == 1)
  1487.          {
  1488.             ChangeMagnetValue(n,array_magnetswitch_bricks[i]);
  1489.          }
  1490.       }
  1491.       else if(objBrk2._MagnetOn == 2)
  1492.       {
  1493.          ChangeMagnetValue(n,array_magnetswitch_bricks[i]);
  1494.       }
  1495.       i++;
  1496.    }
  1497.    var i = 1;
  1498.    while(i <= num_magnet_bricks)
  1499.    {
  1500.       objBrk = this["brcik" + array_magnet_bricks[i]];
  1501.       if(objBrk._MagnetOn == 1)
  1502.       {
  1503.          if(FindMagnetTarget(array_magnet_bricks[i]) != 9999)
  1504.          {
  1505.             n = FindMagnetTarget(array_magnet_bricks[i]);
  1506.             objBrk2 = this["brcik" + n];
  1507.             if(belong_brick == n)
  1508.             {
  1509.                belong_brick = 9999;
  1510.             }
  1511.             objBrk2._BelongMagnet = array_magnet_bricks[i];
  1512.             objBrk2._Falling = true;
  1513.             if(objBrk._LaserType == 1)
  1514.             {
  1515.                add_y = 1;
  1516.             }
  1517.             else if(objBrk._LaserType == 2)
  1518.             {
  1519.                add_x = -1;
  1520.             }
  1521.             else if(objBrk._LaserType == 3)
  1522.             {
  1523.                add_y = -1;
  1524.             }
  1525.             else if(objBrk._LaserType == 4)
  1526.             {
  1527.                add_x = 1;
  1528.             }
  1529.             if(FindBrick(objBrk._NetPosX + add_x,objBrk._NetPosY + add_y) == 9999 || add_y == 1 && objBrk2._y - ConvNetYtoY(ConvYtoNetY(objBrk2._y)) > Math.abs(objBrk2._MoveY) + 1 || add_x == 1 && objBrk2._x - ConvNetXtoX(ConvXtoNetX(objBrk2._x)) > Math.abs(objBrk2._MoveX) + 1)
  1530.             {
  1531.                j = objBrk2._NetPosX + (objBrk2._NetPosY - 1) * field_sizeX;
  1532.                ArrayNet[j] = 9999;
  1533.                if(objBrk._LaserType == 1)
  1534.                {
  1535.                   if(objBrk2._y > objBrk._y + brick_size + 2)
  1536.                   {
  1537.                      objBrk2._y -= 4;
  1538.                      MarkBrickToDelete(n);
  1539.                   }
  1540.                }
  1541.                else if(objBrk._LaserType == 2)
  1542.                {
  1543.                   objBrk2._x += 4;
  1544.                }
  1545.                else if(objBrk._LaserType == 3)
  1546.                {
  1547.                   objBrk2._y += 4;
  1548.                }
  1549.                else if(objBrk._LaserType == 4)
  1550.                {
  1551.                   objBrk2._x -= 4;
  1552.                }
  1553.                objBrk2._NetPosX = ConvXtoNetX(objBrk2._x);
  1554.                objBrk2._NetPosY = ConvYtoNetY(objBrk2._y);
  1555.                j = objBrk2._NetPosX + (objBrk2._NetPosY - 1) * field_sizeX;
  1556.                ArrayNet[j] = n;
  1557.                if(objBrk._LaserType == 1 || objBrk._LaserType == 3)
  1558.                {
  1559.                   objBrk2._x = ConvNetXtoX(objBrk2._NetPosX);
  1560.                }
  1561.                if(objBrk._LaserType == 2 || objBrk._LaserType == 4)
  1562.                {
  1563.                   objBrk2._y = ConvNetYtoY(objBrk2._NetPosY);
  1564.                }
  1565.             }
  1566.             else
  1567.             {
  1568.                SetrightPosition(n);
  1569.             }
  1570.          }
  1571.       }
  1572.       i++;
  1573.    }
  1574. }
  1575. function FindMagnetTarget(n)
  1576. {
  1577.    var objBrk = this["brcik" + n];
  1578.    var objBrk2;
  1579.    var add_x = 0;
  1580.    var add_y = 0;
  1581.    if(objBrk._LaserType == 1)
  1582.    {
  1583.       add_y = 1;
  1584.    }
  1585.    else if(objBrk._LaserType == 2)
  1586.    {
  1587.       add_x = -1;
  1588.    }
  1589.    else if(objBrk._LaserType == 3)
  1590.    {
  1591.       add_y = -1;
  1592.    }
  1593.    else if(objBrk._LaserType == 4)
  1594.    {
  1595.       add_x = 1;
  1596.    }
  1597.    var b = false;
  1598.    var cur_x = objBrk._NetPosX + 1 * add_x;
  1599.    var cur_y = objBrk._NetPosY + 1 * add_y;
  1600.    while(FindBrick(cur_x,cur_y) == 9999)
  1601.    {
  1602.       b = true;
  1603.       cur_x += add_x;
  1604.       cur_y += add_y;
  1605.       if(cur_x < 1)
  1606.       {
  1607.          break;
  1608.       }
  1609.       if(cur_y < 1)
  1610.       {
  1611.          break;
  1612.       }
  1613.       if(cur_x > field_sizeX)
  1614.       {
  1615.          break;
  1616.       }
  1617.       if(cur_y > field_sizeY)
  1618.       {
  1619.          break;
  1620.       }
  1621.    }
  1622.    if(cur_x >= 1 && cur_y >= 1 && cur_x <= field_sizeX && cur_y <= field_sizeY)
  1623.    {
  1624.       if(FindBrick(cur_x,cur_y) != 9999)
  1625.       {
  1626.          objBrk2 = this["brcik" + FindBrick(cur_x,cur_y)];
  1627.          if(objBrk2._MustDie == 1)
  1628.          {
  1629.             if(objBrk2._Parent == 9999)
  1630.             {
  1631.                return FindBrick(cur_x,cur_y);
  1632.             }
  1633.          }
  1634.       }
  1635.    }
  1636.    return 9999;
  1637. }
  1638. function ChangeMagnetValue(n, m)
  1639. {
  1640.    var objBrk = this["brcik" + n];
  1641.    if(objBrk._MagnetOn == 1)
  1642.    {
  1643.       objBrk._MagnetOn = 2;
  1644.    }
  1645.    else
  1646.    {
  1647.       objBrk._MagnetOn = 1;
  1648.    }
  1649.    if(objBrk._MagnetOn == 1)
  1650.    {
  1651.       this["brcik" + m].GotoAndStop(3);
  1652.    }
  1653.    else if(objBrk._MagnetOn == 2)
  1654.    {
  1655.       this["brcik" + m].GotoAndStop(1);
  1656.    }
  1657. }
  1658. function SetSwitchMagnetValues()
  1659. {
  1660.    var objBrk;
  1661.    var j = 1;
  1662.    while(j <= num_magnetswitch_bricks)
  1663.    {
  1664.       objBrk = this["brcik" + array_magnetswitch_bricks[j]];
  1665.       objBrk._SwitchNumber = this["brcik" + array_magnet_bricks[objBrk._SwitchNumber]]._Number;
  1666.       j++;
  1667.    }
  1668. }
  1669. function DeleteFromSwitchArray(n)
  1670. {
  1671.    var j = 1;
  1672.    while(j <= num_magnetswitch_bricks)
  1673.    {
  1674.       if(array_magnetswitch_bricks[j] == n)
  1675.       {
  1676.          if(j < num_magnetswitch_bricks)
  1677.          {
  1678.             array_magnetswitch_bricks[j] = array_magnetswitch_bricks[num_magnetswitch_bricks];
  1679.          }
  1680.          num_magnetswitch_bricks--;
  1681.       }
  1682.       j++;
  1683.    }
  1684. }
  1685. function DeleteFromDeathArray(n)
  1686. {
  1687.    var j = 1;
  1688.    while(j <= num_death_bricks)
  1689.    {
  1690.       if(array_death_bricks[j] == n)
  1691.       {
  1692.          if(j < num_death_bricks)
  1693.          {
  1694.             array_death_bricks[j] = array_death_bricks[num_death_bricks];
  1695.          }
  1696.          num_death_bricks--;
  1697.       }
  1698.       j++;
  1699.    }
  1700. }
  1701. function AddToDeathArray(n)
  1702. {
  1703.    num_death_bricks++;
  1704.    array_death_bricks[num_death_bricks] = n;
  1705. }
  1706. function AddToNextStepArray(n)
  1707. {
  1708.    num_next_step_array++;
  1709.    mark_next_step_array[num_next_step_array] = n;
  1710. }
  1711. function UpdateNextStepArray()
  1712. {
  1713.    var i = 1;
  1714.    while(i <= num_next_step_array)
  1715.    {
  1716.       MarkBrickToDelete(mark_next_step_array[i]);
  1717.       i++;
  1718.    }
  1719.    num_next_step_array = 0;
  1720. }
  1721. function UpdateGame()
  1722. {
  1723.    var objBrk;
  1724.    var d_x;
  1725.    var d_y;
  1726.    var k;
  1727.    UpdateNextStepArray();
  1728.    var n_x = ConvXtoNetXround(_xmouse);
  1729.    var n_y = ConvYtoNetYround(_ymouse);
  1730.    MovePause--;
  1731.    if(MovePause <= 0)
  1732.    {
  1733.       if(n_x >= 1 && n_x <= field_sizeX && n_y >= 1 && n_y <= field_sizeY)
  1734.       {
  1735.          MovePause = 2;
  1736.          if(n_x > arrow1._NetPosX)
  1737.          {
  1738.             d_x = 1;
  1739.          }
  1740.          if(n_x < arrow1._NetPosX)
  1741.          {
  1742.             d_x = -1;
  1743.          }
  1744.          if(belong_brick == 9999)
  1745.          {
  1746.             arrow1._NetPosX = n_x;
  1747.             arrow1._NetPosY = n_y;
  1748.             arrow1._x = ConvNetXtoX(arrow1._NetPosX);
  1749.             arrow1._y = ConvNetYtoY(arrow1._NetPosY);
  1750.          }
  1751.          else if(n_x != arrow1._NetPosX)
  1752.          {
  1753.             if(FindBrick(arrow1._NetPosX + d_x,arrow1._NetPosY) == 9999)
  1754.             {
  1755.                objBrk = this["brcik" + belong_brick];
  1756.                if(!objBrk._Falling)
  1757.                {
  1758.                   if(!(objBrk._Parent != 9999 && this["brcik" + objBrk._Parent]._y - brick_size - objBrk._y > 10))
  1759.                   {
  1760.                      SoundBloxMoving.start();
  1761.                      ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = 9999;
  1762.                      arrow1._NetPosX += d_x;
  1763.                      arrow1._x = ConvNetXtoX(arrow1._NetPosX);
  1764.                      arrow1._y = ConvNetYtoY(arrow1._NetPosY);
  1765.                      objBrk._x = arrow1._x;
  1766.                      objBrk._y = arrow1._y;
  1767.                      objBrk._NetPosX = arrow1._NetPosX;
  1768.                      objBrk._NetPosY = arrow1._NetPosY;
  1769.                      ArrayNet[objBrk._NetPosX + (objBrk._NetPosY - 1) * field_sizeX] = belong_brick;
  1770.                      if(objBrk._Child != 9999)
  1771.                      {
  1772.                         this["brcik" + objBrk._Child]._Parent = 9999;
  1773.                         objBrk._Child = 9999;
  1774.                      }
  1775.                      if(objBrk._Parent != 9999)
  1776.                      {
  1777.                         this["brcik" + objBrk._Parent]._Child = 9999;
  1778.                         objBrk._Parent = 9999;
  1779.                      }
  1780.                      AddToNextStepArray(belong_brick);
  1781.                   }
  1782.                }
  1783.             }
  1784.             if(belong_brick != 9999)
  1785.             {
  1786.                if(objBrk._Parent == 9999)
  1787.                {
  1788.                   if(!objBrk._Falling)
  1789.                   {
  1790.                      objBrk._x = ConvNetXtoX(objBrk._NetPosX);
  1791.                      objBrk._y = ConvNetYtoY(objBrk._NetPosY);
  1792.                      arrow1._x = this["brcik" + belong_brick]._x;
  1793.                      arrow1._y = this["brcik" + belong_brick]._y;
  1794.                      arrow1._NetPosX = this["brcik" + belong_brick]._NetPosX;
  1795.                      arrow1._NetPosY = this["brcik" + belong_brick]._NetPosY;
  1796.                   }
  1797.                }
  1798.             }
  1799.          }
  1800.       }
  1801.    }
  1802.    UpdateParentChild();
  1803.    UpdateMoving();
  1804.    UpdateFalling();
  1805.    if(num_magnet_bricks > 0)
  1806.    {
  1807.       var i = 1;
  1808.       while(i <= total_num_must_die_bricks)
  1809.       {
  1810.          objBrk = this["brcik" + array_must_die_bricks[i]];
  1811.          objBrk._BelongMagnet = 9999;
  1812.          i++;
  1813.       }
  1814.    }
  1815.    UpdateMoveArrows();
  1816.    ScoreTextUpdate();
  1817.    ScoreBonusTextUpdate();
  1818.    UpdateMagnetBricks();
  1819.    UpdateLaserBricks();
  1820.    UpdateDieTimer();
  1821.    UpdateBreakBricks();
  1822.    UpdateBombBricks();
  1823.    UpdateTeleportBricks();
  1824.    UpdateLavaBricks();
  1825.    objBrk = this["brcik" + belong_brick];
  1826.    arrow1._x = objBrk._x;
  1827.    arrow1._y = objBrk._y;
  1828.    arrow1._NetPosX = objBrk._NetPosX;
  1829.    arrow1._NetPosY = objBrk._NetPosY;
  1830.    NumberMustDieBricks = GetNumberMustDieBricks();
  1831.    if(NumberMustDieBricks == 0 || level_failed)
  1832.    {
  1833.       FinishLevelTimer -= 10;
  1834.    }
  1835.    if(EnableEscSkipLevel == 1)
  1836.    {
  1837.       if(Key.isDown(27) || Key.isDown(39))
  1838.       {
  1839.          ShowLevelFinishedWindow();
  1840.       }
  1841.    }
  1842.    else if(Key.isDown(27))
  1843.    {
  1844.       SoundPushButton.start();
  1845.       ShowGameMenuWindow();
  1846.    }
  1847.    if(FinishLevelTimer < 0)
  1848.    {
  1849.       if(!level_failed)
  1850.       {
  1851.          SoundLevelComplete.start();
  1852.          ShowLevelFinishedWindow();
  1853.       }
  1854.    }
  1855.    if(FinishLevelTimer < 0)
  1856.    {
  1857.       if(level_failed)
  1858.       {
  1859.          SoundLevelInComplete.start();
  1860.          ShowLevelFailedWindow();
  1861.       }
  1862.    }
  1863.    if(took_brick)
  1864.    {
  1865.       if(this.arrow1._currentframe < 35)
  1866.       {
  1867.          this.arrow1.GotoAndPlay(35);
  1868.       }
  1869.    }
  1870.    if(!took_brick)
  1871.    {
  1872.       if(this.arrow1._currentframe >= 35)
  1873.       {
  1874.          this.arrow1.GotoAndPlay(1);
  1875.       }
  1876.    }
  1877.    delete myDate;
  1878.    myDate = new Date();
  1879.    CurrentTime = myDate.getTime();
  1880.    ElapsedTime = (CurrentTime - LastTime) / 250;
  1881.    LastTime = CurrentTime;
  1882.    Time -= ElapsedTime;
  1883.    if(Time < 0)
  1884.    {
  1885.       Time = 0;
  1886.    }
  1887.    TimeRound = Math.Round(Time / 10) * 10;
  1888. }
  1889. function InitPanelBricks()
  1890. {
  1891.    var objBrk;
  1892.    var i = 1;
  1893.    while(i <= 8)
  1894.    {
  1895.       duplicateMovieClip("LibraryBrick" + i,"panel_brick" + i,16384 + (300 + i));
  1896.       i++;
  1897.    }
  1898.    var i = 1;
  1899.    while(i <= 8)
  1900.    {
  1901.       objBrk = this["panel_brick" + i];
  1902.       objBrk._width = 27;
  1903.       objBrk._height = 27;
  1904.       i++;
  1905.    }
  1906.    array_panel_bricks = new array(10);
  1907.    var i = 2;
  1908.    while(i <= 8)
  1909.    {
  1910.       duplicateMovieClip("left_panel_text1","left_panel_text" + i,16384 + (350 + i));
  1911.       i++;
  1912.    }
  1913. }
  1914. function CalculateNumBricksEachColor()
  1915. {
  1916.    var objBrk;
  1917.    num_panel_bricks = 0;
  1918.    var i = 1;
  1919.    while(i <= 8)
  1920.    {
  1921.       array_panel_bricks[i] = 0;
  1922.       var j = 1;
  1923.       while(j <= num_bricks)
  1924.       {
  1925.          objBrk = this["brcik" + j];
  1926.          if(objBrk._DieTimer == 100)
  1927.          {
  1928.             if(objBrk._Type == i + 2)
  1929.             {
  1930.                array_panel_bricks[i]++;
  1931.             }
  1932.          }
  1933.          j++;
  1934.       }
  1935.       i++;
  1936.    }
  1937. }
  1938. function GetBrXCoordFromPlace(place)
  1939. {
  1940.    var leftPanelXCoord = 22;
  1941.    if(place == 1)
  1942.    {
  1943.       return leftPanelXCoord;
  1944.    }
  1945.    if(place == 2)
  1946.    {
  1947.       return leftPanelXCoord;
  1948.    }
  1949.    if(place == 3)
  1950.    {
  1951.       return leftPanelXCoord;
  1952.    }
  1953.    if(place == 4)
  1954.    {
  1955.       return leftPanelXCoord;
  1956.    }
  1957.    if(place == 5)
  1958.    {
  1959.       return leftPanelXCoord + 54;
  1960.    }
  1961.    if(place == 6)
  1962.    {
  1963.       return leftPanelXCoord + 54;
  1964.    }
  1965.    if(place == 7)
  1966.    {
  1967.       return leftPanelXCoord + 54;
  1968.    }
  1969.    if(place == 8)
  1970.    {
  1971.       return leftPanelXCoord + 54;
  1972.    }
  1973. }
  1974. function GetBrYCoordFromPlace(place)
  1975. {
  1976.    var leftPanelYCoord = 240;
  1977.    if(place == 1)
  1978.    {
  1979.       return leftPanelYCoord;
  1980.    }
  1981.    if(place == 2)
  1982.    {
  1983.       return leftPanelYCoord + 35;
  1984.    }
  1985.    if(place == 3)
  1986.    {
  1987.       return leftPanelYCoord + 70;
  1988.    }
  1989.    if(place == 4)
  1990.    {
  1991.       return leftPanelYCoord + 105;
  1992.    }
  1993.    if(place == 5)
  1994.    {
  1995.       return leftPanelYCoord;
  1996.    }
  1997.    if(place == 6)
  1998.    {
  1999.       return leftPanelYCoord + 35;
  2000.    }
  2001.    if(place == 7)
  2002.    {
  2003.       return leftPanelYCoord + 70;
  2004.    }
  2005.    if(place == 8)
  2006.    {
  2007.       return leftPanelYCoord + 105;
  2008.    }
  2009. }
  2010. function SetVisiblePanelBricks()
  2011. {
  2012.    var objBrk;
  2013.    var i = 1;
  2014.    while(i <= 8)
  2015.    {
  2016.       this["panel_brick" + i]._visible = false;
  2017.       i++;
  2018.    }
  2019.    var i = 1;
  2020.    while(i <= 8)
  2021.    {
  2022.       this["left_panel_text" + i]._visible = false;
  2023.       i++;
  2024.    }
  2025.    CalculateNumBricksEachColor();
  2026.    cur_place = 0;
  2027.    var i = 1;
  2028.    while(i <= 8)
  2029.    {
  2030.       if(array_panel_bricks[i] != 0)
  2031.       {
  2032.          cur_place++;
  2033.          objBrk = this["panel_brick" + i];
  2034.          objBrk2 = this["left_panel_text" + i];
  2035.          objBrk._visible = true;
  2036.          objBrk2._visible = true;
  2037.          objBrk2.text = "x" + array_panel_bricks[i];
  2038.          objBrk._x = GetBrXCoordFromPlace(cur_place);
  2039.          objBrk._y = GetBrYCoordFromPlace(cur_place);
  2040.          objBrk2._x = GetBrXCoordFromPlace(cur_place) + 12;
  2041.          objBrk2._y = GetBrYCoordFromPlace(cur_place) - 10;
  2042.       }
  2043.       i++;
  2044.    }
  2045. }
  2046. function ShowStartMessage(n)
  2047. {
  2048.    LevelStart1.hint1_clip._visible = false;
  2049.    LevelStart1.hint2_clip._visible = false;
  2050.    LevelStart1.hint3_clip._visible = false;
  2051.    LevelStart1.hint4_clip._visible = false;
  2052.    LevelStart1.hint5_clip._visible = false;
  2053.    LevelStart1.hint6_clip._visible = false;
  2054.    LevelStart1.hint7_clip._visible = false;
  2055.    LevelStart1.hint8_clip._visible = false;
  2056.    LevelStart1.hint9_clip._visible = false;
  2057.    LevelStart1.hint10_clip._visible = false;
  2058.    if(n == 1)
  2059.    {
  2060.       LevelStart1.hint1_clip._visible = true;
  2061.       LevelStart1.hint1_clip.gotoandplay(1);
  2062.       LevelStart1.Hint.text = "Remove similar colored blox by\nplacing them together.\n\nRemove all colored blox from\nthe board to beat the level.";
  2063.       ShowLevelStartWindow();
  2064.    }
  2065.    else if(n == 2)
  2066.    {
  2067.       LevelStart1.hint9_clip._visible = true;
  2068.       LevelStart1.hint9_clip.gotoandplay(1);
  2069.       LevelStart1.Hint.text = "Move blox in correct order to avoid getting stuck. If stuck click the Retry button.";
  2070.       ShowLevelStartWindow();
  2071.    }
  2072.    else if(n == 3)
  2073.    {
  2074.       LevelStart1.hint7_clip._visible = true;
  2075.       LevelStart1.hint7_clip.gotoandplay(1);
  2076.       LevelStart1.Hint.text = "Use the elevator to move a blox upwards.";
  2077.       ShowLevelStartWindow();
  2078.    }
  2079.    else if(n == 4)
  2080.    {
  2081.       LevelStart1.hint10_clip._visible = true;
  2082.       LevelStart1.hint10_clip.gotoandplay(1);
  2083.       LevelStart1.Hint.text = "Place 3 similar blox together carefully so that you do not end up with 1 blox left.";
  2084.       ShowLevelStartWindow();
  2085.    }
  2086.    else if(n == 6)
  2087.    {
  2088.       LevelStart1.hint3_clip._visible = true;
  2089.       LevelStart1.hint3_clip.gotoandplay(1);
  2090.       LevelStart1.Hint.text = "Damaged blox slowly break apart when\na blox is placed on top of it.";
  2091.       ShowLevelStartWindow();
  2092.    }
  2093.    else if(n == 8)
  2094.    {
  2095.       LevelStart1.hint2_clip._visible = true;
  2096.       LevelStart1.hint2_clip.gotoandplay(1);
  2097.       LevelStart1.Hint.text = "Drop a blox on a bomb to\ndestroy the surrounding blox.\n\nHint: Use the bomb to remove single blox.";
  2098.       ShowLevelStartWindow();
  2099.    }
  2100.    else if(n == 9)
  2101.    {
  2102.       LevelStart1.hint4_clip._visible = true;
  2103.       LevelStart1.hint4_clip.gotoandplay(1);
  2104.       LevelStart1.Hint.text = "Drop blox in water to safely remove them.\nDo not drop in lava (lava in later levels).";
  2105.       ShowLevelStartWindow();
  2106.    }
  2107.    else if(n == 13)
  2108.    {
  2109.       LevelStart1.hint6_clip._visible = true;
  2110.       LevelStart1.hint6_clip.gotoandplay(1);
  2111.       LevelStart1.Hint.text = "Use the warp gate to\ntransport a blox.";
  2112.       ShowLevelStartWindow();
  2113.    }
  2114.    else if(n == 22)
  2115.    {
  2116.       LevelStart1.hint8_clip._visible = true;
  2117.       LevelStart1.hint8_clip.gotoandplay(1);
  2118.       LevelStart1.Hint.text = "Avoid the laser beams.";
  2119.       ShowLevelStartWindow();
  2120.    }
  2121.    else if(n == 27)
  2122.    {
  2123.       LevelStart1.hint5_clip._visible = true;
  2124.       LevelStart1.hint5_clip.gotoandplay(1);
  2125.       LevelStart1.Hint.text = "Use a magnet to lift a blox.\n\nActivate a magnet using the switches.";
  2126.       ShowLevelStartWindow();
  2127.    }
  2128.    else
  2129.    {
  2130.       ShowPlayArea();
  2131.    }
  2132. }
  2133. function ScoreTextSetProperty(x1, y1, p_value)
  2134. {
  2135.    var objScoreText = this.ScoreOnBoardText1;
  2136.    objScoreText._ScoreValue = 100;
  2137.    objScoreText._NetPosX = x1;
  2138.    objScoreText._y = y1;
  2139.    objScoreText.text = p_value;
  2140.    objScoreText._DieTimer = 100;
  2141. }
  2142. function ScoreTextUpdate()
  2143. {
  2144.    var objScoreText = this.ScoreOnBoardText1;
  2145.    objScoreText._DieTimer -= 5;
  2146.    if(objScoreText._DieTimer < 1)
  2147.    {
  2148.       objScoreText._visible = false;
  2149.       return undefined;
  2150.    }
  2151.    objScoreText._visible = true;
  2152.    if(objScoreText._ScoreMultiplier > 2)
  2153.    {
  2154.       objScoreText.text = objScoreText._ScoreValue * objScoreText._ScoreMultiplier + " bonus x" + objScoreText._ScoreMultiplier;
  2155.    }
  2156.    else
  2157.    {
  2158.       objScoreText.text = objScoreText._ScoreValue * objScoreText._ScoreMultiplier;
  2159.    }
  2160.    if(objScoreText._DieTimer > 50)
  2161.    {
  2162.       objScoreText._Alpha = 150 - objScoreText._DieTimer;
  2163.    }
  2164.    else
  2165.    {
  2166.       objScoreText._Alpha = objScoreText._DieTimer * 2;
  2167.    }
  2168.    if(objScoreText._ScoreMultiplier > 2)
  2169.    {
  2170.       if(objScoreText._DieTimer > 80)
  2171.       {
  2172.          objScoreText._xscale = 100 + (objScoreText._DieTimer - 80) * 50;
  2173.       }
  2174.       else
  2175.       {
  2176.          objScoreText._xscale = 100;
  2177.       }
  2178.    }
  2179.    else
  2180.    {
  2181.       objScoreText._xscale = 100;
  2182.       objScoreText._y -= 3;
  2183.    }
  2184.    objScoreText._x = objScoreText._NetPosX - objScoreText._width / 2;
  2185. }
  2186. function InitMoveArrows()
  2187. {
  2188.    movementarrow_right._rotation = 180;
  2189.    movementarrow_left._visible = true;
  2190.    movementarrow_right._visible = true;
  2191.    movementarrow_left._alpha = 0;
  2192.    movementarrow_right._alpha = 0;
  2193. }
  2194. function UpdateMoveArrows()
  2195. {
  2196.    var objBrk = this["brcik" + belong_brick];
  2197.    r_a = false;
  2198.    l_a = false;
  2199.    if(belong_brick != 9999 && took_brick)
  2200.    {
  2201.       if(!objBrk._Falling)
  2202.       {
  2203.          if(FindBrick(arrow1._NetPosX + 1,arrow1._NetPosY) == 9999)
  2204.          {
  2205.             r_a = true;
  2206.          }
  2207.       }
  2208.    }
  2209.    if(belong_brick != 9999 && took_brick)
  2210.    {
  2211.       if(!objBrk._Falling)
  2212.       {
  2213.          if(FindBrick(arrow1._NetPosX - 1,arrow1._NetPosY) == 9999)
  2214.          {
  2215.             l_a = true;
  2216.          }
  2217.       }
  2218.    }
  2219.    if(r_a)
  2220.    {
  2221.       movementarrow_right._x = arrow1._x + 30;
  2222.       movementarrow_right._y = arrow1._y;
  2223.       if(movementarrow_right._alpha < 100)
  2224.       {
  2225.          movementarrow_right._alpha += 30;
  2226.       }
  2227.    }
  2228.    else if(movementarrow_right._alpha > 0)
  2229.    {
  2230.       movementarrow_right._alpha -= 30;
  2231.    }
  2232.    if(l_a)
  2233.    {
  2234.       movementarrow_left._x = arrow1._x - 30;
  2235.       movementarrow_left._y = arrow1._y;
  2236.       if(movementarrow_left._alpha < 100)
  2237.       {
  2238.          movementarrow_left._alpha += 30;
  2239.       }
  2240.    }
  2241.    else if(movementarrow_left._alpha > 0)
  2242.    {
  2243.       movementarrow_left._alpha -= 30;
  2244.    }
  2245.    if(movementarrow_left._alpha > 100)
  2246.    {
  2247.       movementarrow_left._alpha = 100;
  2248.    }
  2249.    else if(movementarrow_left._alpha < 0)
  2250.    {
  2251.       movementarrow_left._alpha = 0;
  2252.    }
  2253.    if(movementarrow_right._alpha > 100)
  2254.    {
  2255.       movementarrow_right._alpha = 100;
  2256.    }
  2257.    else if(movementarrow_right._alpha < 0)
  2258.    {
  2259.       movementarrow_right._alpha = 0;
  2260.    }
  2261.    movementarrow_left._height = movementarrow_left._alpha / 8;
  2262.    movementarrow_left._width = movementarrow_left._alpha / 8;
  2263.    movementarrow_right._height = movementarrow_right._alpha / 8;
  2264.    movementarrow_right._width = movementarrow_right._alpha / 8;
  2265. }
  2266. function HideAllWindows()
  2267. {
  2268.    PlayArea._visible = false;
  2269.    MainMenu1._visible = false;
  2270.    Help1._visible = false;
  2271.    GameMenu1._visible = false;
  2272.    SelectLevel1._visible = false;
  2273.    dialog_level_finished1._visible = false;
  2274.    LevelStart1._visible = false;
  2275.    LevelFailed1._visible = false;
  2276.    EnterYourName1._visible = false;
  2277.    BuyMeWindow1._visible = false;
  2278. }
  2279. function ShowPlayArea()
  2280. {
  2281.    HideAllWindows();
  2282.    PlayArea._visible = true;
  2283.    PlayArea.gotoandplay(1);
  2284.    dialog_mode = false;
  2285.    level_complete_mode = false;
  2286. }
  2287. function ShowMainMenu()
  2288. {
  2289.    HideAllWindows();
  2290.    MainMenu1._visible = true;
  2291.    MainMenu1.gotoandplay(1);
  2292.    dialog_mode = true;
  2293.    if(HiScoreEnabled == 0)
  2294.    {
  2295.       MainMenu1.Button_HighScores._visible = false;
  2296.    }
  2297.    if(RegisteredVersion == 1)
  2298.    {
  2299.       MainMenu1.Button_Buy._visible = false;
  2300.    }
  2301. }
  2302. function ShowSelectLevelWindow()
  2303. {
  2304.    HideAllWindows();
  2305.    SelectLevel1._visible = true;
  2306.    SelectLevel1.gotoandplay(1);
  2307.    dialog_mode = true;
  2308. }
  2309. function ShowEnterYourNameWindow()
  2310. {
  2311.    HideAllWindows();
  2312.    PlayArea._visible = true;
  2313.    EnterYourName1._visible = true;
  2314.    EnterYourName1.gotoandplay(1);
  2315.    dialog_mode = true;
  2316. }
  2317. function ShowBuyMeWindow(buyMeMode)
  2318. {
  2319.    HideAllWindows();
  2320.    BuyMeWindowMode = buyMeMode;
  2321.    BuyMeWindow1._visible = true;
  2322.    BuyMeWindow1.gotoandplay(1);
  2323.    BuyMeWindow1.BuyMe_Hint1_clip.gotoandplay(1);
  2324.    dialog_mode = true;
  2325. }
  2326. function ShowHelpWindow(helpMode)
  2327. {
  2328.    HideAllWindows();
  2329.    helpWindowMode = helpMode;
  2330.    HelpWindowFrameNum = 0;
  2331.    Help1._visible = true;
  2332.    Help1.gotoandplay(1);
  2333.    dialog_mode = true;
  2334. }
  2335. function ShowLevelStartWindow()
  2336. {
  2337.    HideAllWindows();
  2338.    LevelStart1._visible = true;
  2339.    LevelStart1.gotoandplay(1);
  2340.    dialog_mode = true;
  2341. }
  2342. function ShowLevelFinishedWindow()
  2343. {
  2344.    HideAllWindows();
  2345.    dialog_mode = true;
  2346.    level_complete_mode = true;
  2347.    PlayArea._visible = true;
  2348.    dialog_level_finished1._visible = true;
  2349.    dialog_level_finished1.gotoandplay(1);
  2350. }
  2351. function ShowLevelFailedWindow()
  2352. {
  2353.    HideAllWindows();
  2354.    dialog_mode = true;
  2355.    PlayArea._visible = true;
  2356.    LevelFailed1._visible = true;
  2357.    LevelFailed1.gotoandplay(1);
  2358. }
  2359. function ShowGameMenuWindow()
  2360. {
  2361.    HideAllWindows();
  2362.    dialog_mode = true;
  2363.    PlayArea._visible = true;
  2364.    GameMenu1._visible = true;
  2365.    GameMenu1.gotoandplay(1);
  2366. }
  2367. function SelectLevel_StartGame(levelNum, isFreePeek)
  2368. {
  2369.    SoundPushButton.start();
  2370.    if(isFreePeek == 0 && levelNum > 10 && RegisteredVersion == 0)
  2371.    {
  2372.       ShowBuyMeWindow(3);
  2373.    }
  2374.    else
  2375.    {
  2376.       MainMenuMusic.stop();
  2377.       Score = 0;
  2378.       retry = 1;
  2379.       level_number = levelNum;
  2380.       LoadBricks(field_sizeX,field_sizeY);
  2381.       Time = 990;
  2382.    }
  2383. }
  2384. function GotoNextLevel()
  2385. {
  2386.    level_number++;
  2387.    if(level_number > total_num_levels)
  2388.    {
  2389.       if(HiScoreEnabled == 1)
  2390.       {
  2391.          ShowEnterYourNameWindow();
  2392.       }
  2393.       else
  2394.       {
  2395.          MainMenuMusic.start(0,1000000);
  2396.          ShowMainMenu();
  2397.       }
  2398.       level_complete_mode = false;
  2399.    }
  2400.    else if(level_number > 10 && RegisteredVersion == 0)
  2401.    {
  2402.       if(level_number <= 10 && HiScoreEnabled == 1)
  2403.       {
  2404.          ShowEnterYourNameWindow();
  2405.       }
  2406.       else
  2407.       {
  2408.          MainMenuMusic.start(0,1000000);
  2409.          ShowBuyMeWindow(1);
  2410.       }
  2411.    }
  2412.    else
  2413.    {
  2414.       ShowPlayArea();
  2415.       LoadBricks(field_sizeX,field_sizeY);
  2416.       retry = 1;
  2417.       level_complete_mode = false;
  2418.       Time = 990;
  2419.    }
  2420. }
  2421. function EncrpytString(strVal)
  2422. {
  2423.    var strKey = "gBdFcKiAnDbGjLaDeMhHk";
  2424.    var nLenKey = strKey.length;
  2425.    var strZero = "0";
  2426.    var strOut = "";
  2427.    var nTot = strVal.length;
  2428.    var nCntKey = 0;
  2429.    var strOut = "";
  2430.    var nCode1;
  2431.    var nCode2;
  2432.    var nCode3;
  2433.    var strChar;
  2434.    nCnt = 0;
  2435.    while(nCnt < nTot)
  2436.    {
  2437.       nCode1 = strVal.charCodeAt(nCnt);
  2438.       nCode2 = strZero.charCodeAt(0);
  2439.       nCode3 = strKey.charCodeAt(nCntKey);
  2440.       strChar = String.fromCharCode(nCode1 - nCode2 + nCode3);
  2441.       strOut += strChar;
  2442.       nCntKey += 1;
  2443.       If(nCntKey >= nLenKey);
  2444.       nCntKey = 0;
  2445.       nCnt++;
  2446.    }
  2447.    return strOut;
  2448. }
  2449. function OnMdown()
  2450. {
  2451.    if(dialog_mode)
  2452.    {
  2453.       return undefined;
  2454.    }
  2455.    if(NumberMustDieBricks == 0)
  2456.    {
  2457.       return undefined;
  2458.    }
  2459.    n_x = ConvXtoNetXround(_root._xmouse);
  2460.    n_y = ConvYtoNetYround(_root._ymouse);
  2461.    if(FindBrick(n_x,n_y) == 9999)
  2462.    {
  2463.       return undefined;
  2464.    }
  2465.    if(this["brcik" + FindBrick(n_x,n_y)]._MustDie == 0)
  2466.    {
  2467.       return undefined;
  2468.    }
  2469.    if(this["brcik" + FindBrick(n_x,n_y)]._BelongMagnet == 9999)
  2470.    {
  2471.       belong_brick = FindBrick(n_x,n_y);
  2472.    }
  2473.    took_brick = true;
  2474.    SoundGetBlox.start();
  2475. }
  2476. movieClip.prototype.NetPosX = 20;
  2477. movieClip.prototype.NetPosY = 1;
  2478. movieClip.prototype.MustDie;
  2479. movieClip.prototype.Falling;
  2480. movieClip.prototype.OldFalling;
  2481. movieClip.prototype.Type;
  2482. movieClip.prototype.DeleteMark;
  2483. movieClip.prototype.MoveX = 0;
  2484. movieClip.prototype.MoveY = 0;
  2485. movieClip.prototype.Health = 100;
  2486. movieClip.prototype.Child = 9999;
  2487. movieClip.prototype.Parent = 9999;
  2488. movieClip.prototype.Number = 1;
  2489. movieClip.prototype.DieTimer = 100;
  2490. movieClip.prototype.LaserStartNetX = 9999;
  2491. movieClip.prototype.LaserStartNetY = 9999;
  2492. movieClip.prototype.LaserEndNetX = 9999;
  2493. movieClip.prototype.LaserEndNetY = 9999;
  2494. movieClip.prototype.LaserTimer = 1;
  2495. movieClip.prototype.LaserMaxTime = 1;
  2496. movieClip.prototype.LaserType = 1;
  2497. movieClip.prototype.LiftStopTime;
  2498. movieClip.prototype.MagnetOn;
  2499. movieClip.prototype.BelongMagnet;
  2500. movieClip.prototype.SwitchNumber;
  2501. movieClip.prototype.ScoreValue;
  2502. movieClip.prototype.ScoreMultiplier;
  2503. LinkBuyMe = "http://www.arcadetown.com/order/choosemethod.asp?gameid=blox";
  2504. LinkMoreGames = "http://www.arcadetown.com/index.asp?gameid=blox";
  2505. HiScoreEnabled = 1;
  2506. HiScoreSaveURL = "http://www.arcadetown.com/blox/hs.asp";
  2507. HiScoreOpenURL = "http://www.arcadetown.com/scripts/show_hiscore.asp?gameid=blox";
  2508. RegisteredVersion = 0;
  2509. EnableEscSkipLevel = 0;
  2510. total_num_levels = 50;
  2511. LevelNet1 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,10,1,5,4,1,4,6,5,6,10,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2512. LevelNet2 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,4,10,1,1,1,1,1,1,1,1,2,1,1,2,2,2,1,1,1,1,9,1,8,1,2,1,1,2,1,1,1,1,1,2,2,2,2,2,2,1,1,2,1,6,9,6,1,2,1,1,1,1,1,1,1,2,1,2,2,2,2,2,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,8,2,2,1,1,1,1,1,1,1,1,1,1,2,10,4,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2513. LevelNet3 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,8,6,2,1,1,1,2,7,2,1,1,1,1,2,2,2,2,1,1,1,2,6,2,1,1,1,1,2,1,1,1,1,1,1,2,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,8,7,1,2,1,1,1,1,1,1,1,1,2,11,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2514. LevelNet4 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,1,10,1,1,1,1,1,2,1,1,2,7,1,1,1,9,1,1,1,1,8,2,1,1,2,2,2,1,1,5,1,1,2,2,2,2,1,1,1,1,2,1,1,4,1,1,2,1,1,1,1,1,1,1,2,1,1,7,1,1,2,1,1,1,1,1,1,1,2,1,9,8,10,1,2,1,1,1,1,1,1,1,2,7,2,2,2,8,2,1,1,1,1,1,1,1,2,4,2,1,2,5,2,1,1,1,1,1,1,1,2,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2515. LevelNet5 = new array(2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,3,2,1,6,1,1,1,1,1,2,2,2,2,1,2,2,1,2,1,1,8,1,1,1,1,2,2,1,1,1,1,1,1,2,2,1,9,5,1,2,2,3,7,4,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,2,10,1,1,1,2,2,1,1,1,1,1,1,1,2,2,2,1,5,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,3,4,5,6,7,8,9,10,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
  2516. LevelNet6 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,10,4,6,3,5,7,9,8,2,2,1,2,15,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,15,2,2,2,1,2,2,1,7,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,15,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,15,2,2,15,2,2,15,2,2,3,5,8,4,6,10,1,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,9,1,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2);
  2517. LevelNet7 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,2,2,1,1,1,1,1,2,5,3,1,4,1,4,1,2,1,1,1,1,2,2,2,2,1,2,2,2,1,2,2,1,1,1,2,1,1,1,1,1,4,1,1,5,2,1,1,1,2,1,3,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2518. LevelNet8 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,7,2,1,4,5,6,3,7,1,6,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,1,1,1,1,1,1,1,5,1,1,1,1,2,2,1,1,1,1,2,1,2,2,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,14,1,1,1,1,1,2,2,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,6,1,1,2,2,11,2,2,2,1,1,1,4,5,2,1,5,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2);
  2519. LevelNet9 = new array(1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,4,5,7,1,1,2,2,2,1,1,6,1,1,1,2,2,2,1,1,2,2,1,1,4,5,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,12,12,12,12,12,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,2,2,8,6,1,1,8,1,5,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,1);
  2520. LevelNet10 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,2,2,1,1,1,1,1,2,1,4,1,1,1,9,1,2,1,1,1,1,1,2,6,2,1,1,1,2,8,2,1,1,1,1,1,2,7,3,4,2,5,3,4,2,1,1,1,1,1,2,3,2,9,1,3,8,2,2,1,1,1,1,1,2,5,8,7,1,7,6,1,2,1,1,1,1,1,2,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2521. LevelNet11 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,4,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,4,1,4,1,1,10,7,1,1,2,2,1,2,2,2,1,2,2,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,5,1,2,2,1,1,1,1,2,1,1,2,1,1,10,1,2,2,1,2,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,1,1,1,1,1,2,2,1,2,2,4,2,2,2,1,1,1,1,2,2,2,5,2,2,2,2,1,2,2,7,10,2,2,1,2,2,2,1,1,1,1,1,2,2,2,2,1,1,1,1,1);
  2522. LevelNet12 = new array(1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,3,6,1,1,1,1,1,2,1,1,1,1,2,6,5,7,1,1,1,1,2,2,2,2,2,1,2,8,4,3,1,1,8,1,1,2,1,1,1,1,2,2,2,2,1,4,7,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,2,2,1,2,1,2,1,2,1,2,3,2,1,2,2,2,2,2,2,2,2,2,1,2,4,2,1,2,1,1,1,1,1,1,1,1,1,2,5,2,1,2,1,1,1,1,1,1,1,1,1,2,3,2,1,2,1,1,1,1,1,1,1,1,1,2,4,1,1,2,1,1,1,1,1,1,1,1,1);
  2523. LevelNet13 = new array(1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,5,1,22,1,2,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,4,2,2,2,2,2,2,2,2,2,2,1,4,1,5,2,2,1,6,1,1,1,1,1,2,3,2,1,2,2,2,1,2,1,7,5,1,1,2,2,2,2,2,1,2,1,1,1,2,2,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,7,2,1,1,1,1,1,2,1,1,1,2,2,2,2,2,1,1,1,1,1,2,21,6,1,1,1,3,1,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1);
  2524. LevelNet14 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,1,1,5,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,1,1,1,1,1,1,1,2,5,1,1,1,2,1,1,1,1,1,1,1,1,2,4,1,1,1,2,1,1,1,1,1,1,1,1,2,2,1,5,4,2,1,1,1,1,1,1,1,1,1,2,1,4,2,2,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,11,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1);
  2525. LevelNet15 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,1,5,1,1,3,2,1,1,1,1,1,1,1,2,1,6,1,1,6,2,1,1,1,1,1,1,1,2,1,3,1,4,7,2,1,1,1,1,1,1,1,2,2,2,6,2,2,2,1,1,1,1,1,1,1,1,1,2,5,2,2,1,1,1,1,1,1,1,1,1,1,2,4,1,2,2,1,1,1,1,1,1,1,1,1,2,3,1,3,2,1,1,1,1,1,1,1,1,1,2,4,2,2,2,1,1,1,1,1,1,1,1,1,2,7,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1);
  2526. LevelNet16 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,1,1,1,1,9,4,2,1,1,1,1,1,1,2,5,1,1,1,2,2,2,1,1,1,1,1,1,2,2,1,1,2,2,1,1,1,1,1,1,1,1,2,1,1,9,2,1,1,1,1,1,1,1,1,1,2,1,1,7,2,1,1,1,1,1,1,1,1,1,2,2,9,2,2,1,1,1,1,1,1,1,1,1,1,2,7,2,2,2,2,2,1,1,1,1,1,1,1,2,5,1,1,1,4,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2527. LevelNet17 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,4,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,5,1,7,1,1,1,2,1,2,1,1,1,1,1,2,1,2,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,7,2,1,2,1,1,1,1,1,11,1,1,1,1,2,2,1,2,1,4,2,11,5,1,4,1,7,2,2,1,1,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2528. LevelNet18 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,1,1,1,1,1,6,1,1,1,1,1,2,2,2,1,1,3,2,1,2,1,1,1,1,1,2,2,1,1,1,2,1,1,1,1,8,1,6,1,2,2,1,1,3,2,1,7,1,1,2,2,2,2,2,2,1,1,2,2,2,2,1,1,1,1,4,1,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,8,1,1,1,1,1,1,1,4,1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,7,1,1,2,2,1,6,5,4,1,3,8,1,1,4,7,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
  2529. LevelNet19 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,1,8,2,1,1,1,1,1,1,1,1,1,1,2,1,7,2,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,2,7,1,3,1,1,2,1,1,1,1,1,1,1,2,2,11,2,1,7,2,1,1,1,1,1,1,1,2,8,3,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2530. LevelNet20 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,1,1,1,5,1,2,1,1,1,1,1,1,1,2,1,1,1,4,22,2,1,1,1,1,1,1,1,2,1,1,1,3,1,2,1,1,1,1,1,1,1,2,1,1,1,4,1,2,1,1,1,1,1,1,1,2,1,1,1,3,1,2,1,1,1,1,1,1,1,2,1,1,4,5,3,2,1,1,1,1,1,1,1,2,21,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2531. LevelNet21 = new array(2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,1,8,1,2,2,2,9,11,1,1,10,2,2,1,2,2,1,1,3,2,4,1,1,1,2,2,2,1,7,1,1,3,7,8,2,1,1,1,4,2,2,1,2,3,1,2,2,2,2,1,1,2,2,2,2,2,5,7,1,8,2,2,10,1,4,9,10,2,1,2,2,2,1,2,1,1,2,1,2,2,2,2,1,1,1,2,1,2,1,1,2,1,2,1,1,1,1,1,1,2,1,2,1,1,2,1,2,1,1,1,1,1,2,2,1,2,1,1,2,1,2,2,1,1,1,1,2,1,11,5,2,2,1,1,1,2,1,1,1,1,2,2,2,2,1,1,2,2,2,2,1,1);
  2532. LevelNet22 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,4,10,7,1,10,2,1,1,1,1,1,1,1,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,2,93,1,1,2,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,1,1,1,1,1,1,1,2,7,10,1,4,2,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,91,2,1,1,1,1,1,1,1,1,1,1,2,11,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1);
  2533. LevelNet23 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,8,4,1,1,1,1,5,6,7,3,1,2,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,1,10,4,10,1,1,1,1,3,5,6,1,2,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,1,9,4,9,8,1,1,1,1,3,7,1,2,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,1,2,1,1,1,1,1,1,1,1,2,1,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2534. LevelNet24 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,2,5,9,5,9,1,2,1,1,1,1,1,1,1,2,2,5,9,2,1,2,1,1,1,1,1,1,1,1,2,2,5,1,5,2,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,11,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1);
  2535. LevelNet25 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,7,1,1,1,2,2,1,1,1,9,5,1,1,1,15,7,1,1,2,2,1,8,1,2,2,1,1,1,1,2,5,1,2,2,1,9,1,1,4,1,1,2,1,2,7,5,2,2,1,2,2,2,2,1,1,2,12,2,2,2,2,2,1,1,1,1,1,1,4,3,1,6,1,9,2,2,1,1,1,6,1,2,2,2,2,2,15,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,3,1,1,2,1,1,2,2,1,1,9,2,2,4,5,9,8,2,1,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
  2536. LevelNet26 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,64,2,2,64,2,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,1,2,2,6,1,1,1,1,1,1,1,1,1,1,8,2,2,2,1,6,1,1,5,4,1,1,9,1,2,2,2,1,1,2,1,1,4,8,1,1,2,1,1,2,2,1,1,1,1,1,2,2,1,1,1,1,1,2,2,63,1,1,1,1,1,1,1,1,1,1,61,2,2,1,1,1,1,2,1,1,2,1,1,1,1,2,2,5,1,6,1,1,5,8,1,1,4,1,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2537. LevelNet27 = new array(2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,31,2,31,2,31,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,3,4,3,4,3,4,3,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,43,1,1,1,1,1,1,1,1,1,1,1,1,2,2,42,1,1,1,1,1,1,1,1,1,1,1,1,2,2,41,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1);
  2538. LevelNet28 = new array(2,2,2,2,5,2,2,2,2,1,2,2,2,2,2,1,1,1,3,1,1,1,1,1,1,1,1,2,2,1,1,1,4,1,1,1,1,1,2,1,1,2,2,1,1,1,5,1,1,1,1,2,2,2,1,2,2,1,1,1,6,1,1,1,1,1,2,1,1,2,2,1,1,1,7,1,1,1,1,1,1,1,1,2,2,1,1,1,8,1,1,1,1,1,2,1,1,2,2,1,1,1,7,1,1,1,1,2,2,2,1,2,2,1,1,1,6,1,1,1,1,1,2,1,1,2,2,1,1,1,5,1,1,1,1,1,1,1,1,2,2,1,1,1,4,1,1,1,1,1,1,1,1,2,2,1,1,1,3,1,1,1,1,1,14,1,1,2);
  2539. LevelNet29 = new array(1,1,1,1,1,1,1,1,1,1,3,1,1,9,1,15,15,31,15,15,31,15,1,2,2,1,2,2,1,2,2,1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1,2,2,1,1,2,1,4,2,1,1,1,2,1,1,1,1,1,1,2,2,15,2,2,3,2,2,1,2,1,2,2,1,1,2,12,2,2,41,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,2,1,1,2,1,1,1,1,1,1,1,1,2,1,6,1,2,2,1,2,2,2,14,42,2,2,2,1,7,2,1,2,11,1,1,2,2,1,1,3,2,1,6,1,2,2,1,2,2,2,2,2,2,7,1,1,7,1,1,2);
  2540. LevelNet30 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,7,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,5,3,1,8,7,4,1,2,2,2,2,2,1,1,2,2,1,2,2,2,1,2,2,1,1,1,1,1,1,1,11,1,1,1,1,2,2,1,2,12,12,12,2,1,2,1,2,13,13,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,3,2,7,1,1,1,2,2,1,1,1,1,1,1,2,2,2,10,1,1,2,2,7,5,3,1,5,2,2,1,2,2,10,7,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2);
  2541. LevelNet31 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,1,1,1,1,1,1,1,1,1,1,9,2,2,10,1,1,2,2,1,11,2,2,7,1,3,2,2,4,1,4,1,1,1,1,1,1,5,1,6,2,2,2,15,2,2,15,11,1,15,2,2,15,2,2,2,1,1,1,1,1,2,2,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,5,15,5,2,1,7,9,1,2,1,1,1,2,2,8,15,8,2,10,3,10,6,2,1,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
  2542. LevelNet32 = new array(1,3,1,1,1,1,1,1,1,1,1,7,1,1,1,2,2,16,1,1,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,6,1,1,21,1,2,1,1,1,1,1,4,1,1,5,1,1,1,1,2,1,1,4,1,1,3,1,3,2,3,1,1,5,2,1,1,2,1,2,2,1,2,2,2,1,1,4,2,1,1,2,2,2,1,22,1,1,1,1,1,3,2,1,1,31,54,64,1,1,1,1,1,11,2,2,2,1,1,6,1,1,1,1,2,3,1,1,2,5,1,1,1,1,1,1,1,7,2,2,2,1,2,2,2,2,2,1,1,1,1,41,2,1,1,1,1,1,1,1,1);
  2543. LevelNet33 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,1,4,1,1,1,1,1,1,1,2,2,2,1,1,1,3,2,2,2,1,1,1,2,1,1,1,1,1,5,6,1,1,2,2,2,2,2,1,1,1,1,1,6,5,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,1,3,2,2,1,2,2,1,2,2,1,1,1,1,1,4,1,2,15,2,1,1,1,1,2,2,2,4,1,3,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,14,1,1,1,1,1);
  2544. LevelNet34 = new array(2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,2,1,1,2,2,1,2,1,1,31,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1,2,2,2,2,2,1,2,2,1,2,1,1,1,4,1,1,1,1,1,1,2,2,1,2,1,1,1,41,2,2,2,1,1,1,2,2,1,2,1,1,5,2,2,1,1,1,7,1,2,2,1,2,1,1,15,2,2,1,1,1,2,1,2,2,1,2,1,1,13,2,5,1,1,14,2,1,2,2,1,2,2,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,7,2,1,1,7,12,11,2,2,2,2,2,2,2,2,2,2,2,2);
  2545. LevelNet35 = new array(1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,4,1,1,5,1,1,2,1,1,1,1,1,2,2,2,1,1,2,2,2,2,1,1,1,1,1,2,4,1,1,1,1,3,1,2,1,1,1,1,1,2,2,2,1,1,2,2,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,2,1,1,2,1,1,1,1,1,2,1,2,3,14,3,2,1,2,1,1,1,1,1,2,1,1,2,1,2,1,4,2,1,1,1,1,1,2,1,1,1,1,1,1,5,2,1,1,1,1,1,2,1,1,1,11,1,1,3,2,1,1,1,1,1,2,2,2,2,1,2,2,2,2,1,1);
  2546. LevelNet36 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,7,10,8,1,2,2,1,1,1,1,1,1,1,1,9,4,3,8,2,2,1,1,1,2,1,1,16,1,2,2,2,2,2,2,12,12,12,2,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,13,13,13,13,13,13,13,2,63,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,7,1,8,2,1,1,8,2,2,1,1,1,1,2,2,4,2,2,10,1,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2547. LevelNet37 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,31,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,4,7,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,4,2,2,2,2,2,1,1,1,1,1,1,6,2,2,2,1,1,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,3,1,1,2,2,1,3,1,1,1,1,1,1,1,2,1,1,2,2,1,6,1,1,1,1,3,1,1,2,3,1,2,2,5,3,5,1,6,1,5,1,1,2,2,41,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
  2548. LevelNet38 = new array(1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,7,1,1,1,1,3,2,1,1,1,1,1,1,2,4,1,1,1,1,5,2,1,1,1,1,1,1,2,3,1,7,6,1,3,2,1,1,1,1,1,1,2,2,1,2,2,1,2,2,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,2,1,1,2,2,1,1,1,1,1,1,1,1,2,1,7,1,1,2,1,1,1,1,1,1,1,1,2,1,6,5,1,2,1,1,1,1,1,1,1,1,2,4,5,6,4,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1);
  2549. LevelNet39 = new array(2,2,2,2,2,2,2,2,2,2,31,2,22,2,1,1,1,1,1,1,1,1,1,3,1,1,1,1,2,2,2,2,2,1,1,2,2,2,1,2,2,2,1,1,1,1,1,1,1,5,1,2,1,4,1,1,2,2,2,2,2,1,1,2,1,2,1,3,1,1,1,1,1,1,1,1,1,5,1,2,1,2,1,1,1,1,2,2,2,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,41,4,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,14,1,1,1,1,1,1,1,1,1,1,1,5,2,2,2,1,1,1,2,2,2,2,1,2,2,2,2,21,2,2,2,11,2,1,1,2,2,2,1,2);
  2550. LevelNet40 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,4,1,1,1,1,1,1,1,1,4,1,2,2,5,3,1,1,1,1,1,1,1,1,3,10,2,2,2,2,15,2,15,2,2,15,2,15,2,2,2,2,1,1,1,2,6,2,2,6,2,1,1,1,2,2,1,1,1,2,7,2,2,10,2,1,1,1,2,2,1,1,1,2,5,2,2,9,2,1,1,1,2,2,1,1,1,2,8,2,2,7,2,1,1,1,2,2,1,1,1,2,9,1,1,8,2,1,1,1,2,2,1,1,1,2,2,1,1,2,2,1,1,1,2,2,3,4,1,2,2,1,1,2,2,1,3,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
  2551. LevelNet41 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,2,2,2,1,1,1,2,2,1,2,2,1,1,2,2,1,2,2,1,2,2,7,1,3,2,1,1,2,5,1,6,2,2,2,1,3,1,4,1,2,2,1,4,1,4,1,2,2,1,2,1,2,1,7,6,1,2,1,2,1,2,2,1,1,1,1,1,4,7,1,1,1,1,5,2,2,53,1,1,1,1,2,2,1,1,1,1,51,2,2,2,3,15,1,2,1,1,2,1,4,7,2,2,1,2,2,3,2,2,1,1,2,2,5,2,2,1,1,1,2,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2552. LevelNet42 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,31,1,1,31,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,31,1,1,2,2,31,1,16,1,1,2,5,2,1,1,1,31,2,2,1,1,1,1,1,2,10,2,1,1,1,1,2,2,1,1,1,1,1,2,6,2,1,1,1,1,2,2,1,16,1,2,2,2,3,2,1,1,1,1,2,2,3,1,1,1,10,2,2,2,8,7,2,9,2,2,4,3,7,6,5,2,1,2,3,4,9,8,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,5,1,1,1,1,1,1,1,5,1,1,2,2,2,2,44,2,41,2,42,2,43,2,45,2,2);
  2553. LevelNet43 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,8,1,1,1,2,2,7,1,1,1,1,1,1,1,7,1,1,1,2,2,2,1,1,1,1,1,1,1,2,1,1,1,2,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,2,8,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,2,16,1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,7,2,1,1,1,2,11,6,3,14,4,5,1,2,2,2,1,1,1,2,1,2,2,2,2,2,11,2,1,1,1,1,1,2,2,2,1,1,1,2,2,2,1,1);
  2554. LevelNet44 = new array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,2,1,1,5,16,1,1,2,1,2,1,1,2,1,1,1,1,3,1,1,54,1,1,2,1,1,2,1,1,14,1,4,1,1,1,1,1,2,1,1,2,1,1,2,1,2,2,2,1,1,1,2,1,1,2,3,1,1,1,1,1,1,1,4,1,2,1,1,2,2,2,1,2,2,2,2,1,3,1,2,1,1,1,1,2,2,2,1,1,2,2,2,11,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  2555. LevelNet45 = new array(2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,1,8,1,2,1,1,1,1,2,1,1,1,2,2,1,5,1,2,2,2,2,2,2,1,1,24,2,2,1,7,1,3,1,1,1,1,1,1,1,1,2,2,1,5,1,2,1,1,22,1,1,1,1,1,2,2,1,8,1,2,1,1,1,1,1,1,5,1,2,2,1,2,1,2,1,8,1,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1,2,1,1,1,2,2,1,1,23,2,1,1,1,1,2,1,1,1,2,2,1,1,1,2,1,1,8,1,2,1,2,1,2,2,3,21,8,2,3,1,3,1,2,7,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
  2556. LevelNet46 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,2,1,1,1,1,16,2,1,1,2,1,2,1,1,1,1,1,1,5,1,1,1,1,2,1,2,1,1,1,4,3,14,3,4,1,1,1,2,1,2,1,11,2,2,2,2,2,2,2,11,1,2,1,2,1,1,2,1,1,1,1,1,2,1,1,2,1,2,1,1,2,2,2,1,2,2,2,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,2,1,2,1,1,1,2,1,13,14,2,2,1,1,2,1,2,1,1,1,2,1,5,1,1,1,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1);
  2557. LevelNet47 = new array(2,2,2,2,2,2,1,3,2,1,4,1,2,2,2,1,1,1,1,1,1,15,2,1,2,1,1,2,2,1,1,1,1,1,1,15,2,1,2,1,1,2,2,1,1,1,1,1,1,15,2,1,2,1,1,2,2,1,1,1,31,1,1,15,2,1,2,1,1,2,2,1,1,1,1,1,1,15,2,1,2,1,1,2,2,1,1,1,1,1,1,15,2,1,2,1,1,2,2,1,1,1,3,1,1,15,2,1,2,1,1,2,2,1,1,4,5,3,1,15,1,1,4,1,1,2,2,1,41,5,4,5,1,15,1,1,3,1,1,2,2,1,2,2,2,2,1,15,11,2,4,2,1,2,2,2,2,1,1,2,1,13,2,2,2,2,2,2);
  2558. LevelNet48 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,9,3,1,1,3,4,5,8,2,8,2,1,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,1,1,2,9,2,1,1,1,2,1,2,2,1,2,1,1,1,2,1,1,1,1,2,1,2,2,1,2,1,1,1,1,1,1,1,4,2,1,2,2,1,2,1,1,1,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,3,2,2,2,2,2,2,4,3,5,4,11,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2);
  2559. LevelNet49 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,7,3,5,7,3,8,1,1,1,2,2,1,1,1,5,4,9,6,4,5,1,1,1,2,2,1,2,1,2,2,2,2,2,2,10,1,1,2,2,1,2,5,1,1,1,1,1,1,5,2,1,2,2,1,2,2,1,2,10,7,2,1,2,2,1,2,2,1,2,1,1,2,5,10,2,1,1,2,1,2,2,1,2,1,1,2,9,6,2,1,1,2,1,2,2,1,2,1,1,1,7,8,1,1,1,2,1,2,2,1,2,2,3,2,2,2,2,3,2,2,1,2,2,4,2,2,2,2,1,1,2,2,2,2,4,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2);
  2560. LevelNet50 = new array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,7,1,1,10,1,1,1,1,2,2,1,2,4,7,2,2,1,2,4,10,2,1,2,2,1,2,2,2,4,1,1,4,2,2,2,1,2,2,1,2,1,2,2,2,1,2,2,1,2,1,2,2,1,2,1,1,1,5,1,5,1,1,2,1,2,2,1,2,1,3,1,3,1,3,1,1,2,1,2,2,1,2,2,2,2,2,1,2,2,2,2,1,2,2,1,2,1,1,1,2,1,2,1,1,2,1,2,2,1,2,1,1,1,2,1,2,1,1,2,1,2,2,5,2,1,1,1,2,11,2,1,1,2,5,2,2,2,2,1,1,1,2,2,2,1,1,2,2,2);
  2561. level_failed = false;
  2562. level_complete_mode = false;
  2563. retry = 1;
  2564. dialog_mode = false;
  2565. brick_size = 34;
  2566. num_bricks = 0;
  2567. belong_brick = 9999;
  2568. field_sizeX = 14;
  2569. field_sizeY = 12;
  2570. FinishLevelTimer = 100;
  2571. level_number = 1;
  2572. otstupX = 101;
  2573. otstupY = 4;
  2574. NumberMustDieBricks = 10;
  2575. took_brick = false;
  2576. total_num_must_die_bricks = 0;
  2577. array_must_die_bricks = new array(field_sizeX * field_sizeY + 1);
  2578. ArrayNet = new array(field_sizeX * field_sizeY + 1);
  2579. array_can_move_bricks = new array(field_sizeX * field_sizeY + 1);
  2580. num_can_move_bricks = 0;
  2581. array_moving_bricks = new array(20);
  2582. num_moving_bricks = 0;
  2583. array_lava_bricks = new array(20);
  2584. num_lava_bricks = 0;
  2585. array_teleport_bricks = new array(10);
  2586. num_teleport_bricks = 0;
  2587. array_hard_bricks = new array(field_sizeX * field_sizeY + 1);
  2588. num_hard_bricks = 0;
  2589. array_bomb_bricks = new array(20);
  2590. num_bomb_bricks = 0;
  2591. array_break_bricks = new array(100);
  2592. num_break_bricks = 0;
  2593. array_laser_bricks = new array(100);
  2594. num_laser_bricks = 0;
  2595. array_magnet_bricks = new array(100);
  2596. num_magnet_bricks = 0;
  2597. array_death_bricks = new array(100);
  2598. num_death_bricks = 0;
  2599. array_magnetswitch_bricks = new array(100);
  2600. num_magnetswitch_bricks = 0;
  2601. mark_next_step_array = new array(10);
  2602. num_next_step_array = 0;
  2603. LevelScore = 0;
  2604. LastScore = 0;
  2605. Score = 0;
  2606. Time = 0;
  2607. TimeRound = 0;
  2608. MovePause = 2;
  2609. myDate = new Date();
  2610. CurrentTime = myDate.getTime();
  2611. ElapsedTime = CurrentTime - LastTime;
  2612. LastTime = CurrentTime;
  2613. InitPanelBricks();
  2614. MainMenuMusic = new Sound();
  2615. MainMenuMusic.attachSound("mainmenumusic");
  2616. MainMenuMusic.start(0,1000000);
  2617. SoundGetBlox = new Sound();
  2618. SoundGetBlox.attachSound("getblox");
  2619. SoundBloxMoving = new Sound();
  2620. SoundBloxMoving.attachSound("bloxmoving");
  2621. SoundElimenateBlox = new Sound();
  2622. SoundElimenateBlox.attachSound("elimenateblox");
  2623. SoundBombExplode = new Sound();
  2624. SoundBombExplode.attachSound("bombexplode");
  2625. SoundPushButton = new Sound();
  2626. SoundPushButton.attachSound("pushbutton");
  2627. SoundLevelComplete = new Sound();
  2628. SoundLevelComplete.attachSound("s_levelcomplete");
  2629. SoundLevelInComplete = new Sound();
  2630. SoundLevelInComplete.attachSound("s_levelincomplete");
  2631. SoundBonusCount = new Sound();
  2632. SoundBonusCount.attachSound("s_bonuscount");
  2633. SoundBonus = new Sound();
  2634. SoundBonus.attachSound("s_bonus");
  2635. ScoreOnBoardText._visible = false;
  2636. duplicateMovieClip(ScoreOnBoardText,"ScoreOnBoardText1",16886);
  2637. duplicateMovieClip(ScoreOnBoardText,"ScoreOnBoardText2",16887);
  2638. this.ScoreOnBoardText2._visible = false;
  2639. arrow._visible = false;
  2640. duplicateMovieClip(arrow,"arrow1",16884);
  2641. this.arrow1._y = brick_size + otstupX;
  2642. this.arrow1._x = brick_size + otstupY;
  2643. movementarrow._visible = false;
  2644. duplicateMovieClip(movementarrow,"movementarrow_left",16888);
  2645. duplicateMovieClip(movementarrow,"movementarrow_right",16889);
  2646. InitMoveArrows();
  2647. PlayArea._visible = false;
  2648. duplicateMovieClip(dialog_level_finished,"dialog_level_finished1",17385);
  2649. dialog_level_finished._visible = false;
  2650. dialog_level_finished1._visible = false;
  2651. duplicateMovieClip(MainMenu,"MainMenu1",17386);
  2652. MainMenu._visible = false;
  2653. MainMenu1._visible = false;
  2654. duplicateMovieClip(Help,"Help1",17387);
  2655. Help._visible = false;
  2656. Help1._visible = false;
  2657. HelpWindowMode = 1;
  2658. HelpWindowFrameNum = 0;
  2659. duplicateMovieClip(GameMenu,"GameMenu1",17388);
  2660. GameMenu._visible = false;
  2661. GameMenu1._visible = false;
  2662. duplicateMovieClip(SelectLevel,"SelectLevel1",17389);
  2663. SelectLevel._visible = false;
  2664. SelectLevel1._visible = false;
  2665. duplicateMovieClip(LevelStart,"LevelStart1",17390);
  2666. LevelStart._visible = false;
  2667. LevelStart1._visible = false;
  2668. duplicateMovieClip(LevelFailed,"LevelFailed1",17391);
  2669. LevelFailed._visible = false;
  2670. LevelFailed1._visible = false;
  2671. duplicateMovieClip(EnterYourName,"EnterYourName1",17392);
  2672. EnterYourName._visible = false;
  2673. EnterYourName1._visible = false;
  2674. duplicateMovieClip(BuyMeWindow,"BuyMeWindow1",17393);
  2675. BuyMeWindow._visible = false;
  2676. BuyMeWindow1._visible = false;
  2677. BuyMeWindowMode = 1;
  2678. LibraryBrick1._visible = false;
  2679. LibraryBrick2._visible = false;
  2680. LibraryBrick3._visible = false;
  2681. LibraryBrick4._visible = false;
  2682. LibraryBrick5._visible = false;
  2683. LibraryBrick6._visible = false;
  2684. LibraryBrick7._visible = false;
  2685. LibraryBrick8._visible = false;
  2686. LibraryBrickEmpty._visible = false;
  2687. LibraryBrickCross._visible = false;
  2688. LibraryBrickUL._visible = false;
  2689. LibraryBrickUR._visible = false;
  2690. LibraryBrickLL._visible = false;
  2691. LibraryBrickLR._visible = false;
  2692. LibraryBrickLCap._visible = false;
  2693. LibraryBrickRCap._visible = false;
  2694. LibraryBrickTCap._visible = false;
  2695. LibraryBrickBCap._visible = false;
  2696. LibraryBrickCap._visible = false;
  2697. LibraryBrickLTee._visible = false;
  2698. LibraryBrickRTee._visible = false;
  2699. LibraryBrickTTee._visible = false;
  2700. LibraryBrickBTee._visible = false;
  2701. LibraryBrickLeft._visible = false;
  2702. LibraryBrickTop._visible = false;
  2703. LibraryBrickLava._visible = false;
  2704. LibraryBrickWater._visible = false;
  2705. LibraryBrickLift._visible = false;
  2706. LibraryBrickBomb._visible = false;
  2707. LibraryBrickTeleport._visible = false;
  2708. LibraryBrickTeleport2._visible = false;
  2709. LibraryBrickBreak._visible = false;
  2710. LibraryBrickLaser._visible = false;
  2711. LibraryLaser._visible = false;
  2712. LibraryBrickMagnet._visible = false;
  2713. LibraryBrickSwitch._visible = false;
  2714. LoadBricks(field_sizeX,field_sizeY);
  2715. ShowMainMenu();
  2716. someListener = new Object();
  2717. someListener.onMouseDown = function()
  2718. {
  2719.    OnMdown();
  2720. };
  2721. someListener.onMouseUp = function()
  2722. {
  2723.    belong_brick = 9999;
  2724.    took_brick = false;
  2725. };
  2726. Mouse.addListener(someListener);
  2727. _root.onEnterFrame = function()
  2728. {
  2729.    if(!dialog_mode)
  2730.    {
  2731.       UpdateGame();
  2732.    }
  2733. };
  2734.