home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Puzzle / HexiomConnect.swf / scripts / TitleScreen.as < prev   
Encoding:
Text File  |  2008-08-29  |  27.6 KB  |  730 lines

  1. package
  2. {
  3.    import flash.display.DisplayObjectContainer;
  4.    import flash.display.MovieClip;
  5.    import flash.display.SimpleButton;
  6.    import flash.display.Sprite;
  7.    import flash.events.Event;
  8.    import flash.events.MouseEvent;
  9.    import flash.text.TextField;
  10.    
  11.    public class TitleScreen extends Sprite
  12.    {
  13.       
  14.       private static var Gfx:Class = TitleScreen_Gfx;
  15.       
  16.       private static var Instructions:Class = TitleScreen_Instructions;
  17.       
  18.       private static const BAR_WIDTH:Number = 200;
  19.       
  20.       protected static var TitleGfx:Class = TitleScreen_TitleGfx;
  21.       
  22.       protected static var AdvancedRandomDialog:Class = TitleScreen_AdvancedRandomDialog;
  23.       
  24.       protected static var LoadDialog:Class = TitleScreen_LoadDialog;
  25.       
  26.       protected static var BasicRandomDialog:Class = TitleScreen_BasicRandomDialog;
  27.       
  28.       private static var Credits:Class = TitleScreen_Credits;
  29.        
  30.       
  31.       private var advancedColor4Button:SimpleButton;
  32.       
  33.       private var instructionsTime:int = 0;
  34.       
  35.       private var basicRandom5Button:SimpleButton;
  36.       
  37.       private var advancedRandom3Button:SimpleButton;
  38.       
  39.       private var advancedColorDisplay:MovieClip;
  40.       
  41.       private var advancedRandomDialog:Sprite;
  42.       
  43.       private var advancedColors:int = 4;
  44.       
  45.       private var basicRandomDialog:Sprite;
  46.       
  47.       private var instructionsBoard:Board;
  48.       
  49.       private var advancedColor1Button:SimpleButton;
  50.       
  51.       private var advancedLockedSliderHandle:Sprite;
  52.       
  53.       private var basicRandom6Button:SimpleButton;
  54.       
  55.       private var title:MovieClip;
  56.       
  57.       private var levelButtons:Array;
  58.       
  59.       private var advancedRandom4Button:SimpleButton;
  60.       
  61.       private var loadStatus:TextField;
  62.       
  63.       private var advancedColor2Button:SimpleButton;
  64.       
  65.       private var loadInput:TextField;
  66.       
  67.       private var basicRandom3Button:SimpleButton;
  68.       
  69.       private var credits:Sprite;
  70.       
  71.       private var advancedConnectionsSlider:Sprite;
  72.       
  73.       private var advancedRandom5Button:SimpleButton;
  74.       
  75.       private var instructions:Sprite;
  76.       
  77.       private var colorBlindOnButton:SimpleButton;
  78.       
  79.       private var advancedColor3Button:SimpleButton;
  80.       
  81.       private var advancedLocked:Number = 0.1;
  82.       
  83.       private var advancedLockedSlider:Sprite;
  84.       
  85.       private var loadDialog:Sprite;
  86.       
  87.       private var advancedConnections:Number = 0.4;
  88.       
  89.       private var basicRandom4Button:SimpleButton;
  90.       
  91.       private var advancedRandomMenuButton:SimpleButton;
  92.       
  93.       private var advancedConnectionsSliderHandle:Sprite;
  94.       
  95.       private var basicRandomMenuButton:SimpleButton;
  96.       
  97.       private var advancedRandom6Button:SimpleButton;
  98.       
  99.       private var instructionsState:int = 0;
  100.       
  101.       private var colorBlindOffButton:SimpleButton;
  102.       
  103.       public function TitleScreen()
  104.       {
  105.          var _loc9_:TileButton = null;
  106.          var _loc11_:TextButton = null;
  107.          var _loc12_:Sprite = null;
  108.          super();
  109.          var _loc1_:DisplayObjectContainer = new Gfx();
  110.          while(_loc1_.numChildren)
  111.          {
  112.             addChild(_loc1_.getChildAt(0));
  113.          }
  114.          var _loc2_:Sprite = new TitleGfx();
  115.          addChild(_loc2_);
  116.          _loc2_.x = 200;
  117.          title = _loc2_.getChildByName("hexiom") as MovieClip;
  118.          title.addFrameScript(title.totalFrames - 1,stopTitle);
  119.          var _loc3_:Sprite = _loc2_.getChildByName("connect") as Sprite;
  120.          var _loc4_:Sprite;
  121.          (_loc4_ = _loc3_.getChildByName("lights") as Sprite).transform.colorTransform = Tile.COLORS[1];
  122.          var _loc5_:SimpleButton;
  123.          (_loc5_ = getChildByName("editButton") as SimpleButton).addEventListener(MouseEvent.CLICK,editClick,false,0,true);
  124.          var _loc6_:SimpleButton;
  125.          (_loc6_ = getChildByName("randomButton") as SimpleButton).addEventListener(MouseEvent.CLICK,basicRandomClick,false,0,true);
  126.          var _loc7_:SimpleButton;
  127.          (_loc7_ = getChildByName("loadButton") as SimpleButton).addEventListener(MouseEvent.CLICK,loadClick,false,0,true);
  128.          var _loc8_:SimpleButton;
  129.          (_loc8_ = getChildByName("qualityButton") as SimpleButton).addEventListener(MouseEvent.CLICK,qualityClick,false,0,true);
  130.          colorBlindOnButton = getChildByName("colorBlindOnButton") as SimpleButton;
  131.          colorBlindOnButton.addEventListener(MouseEvent.CLICK,colorBlindOnClick,false,0,true);
  132.          colorBlindOffButton = getChildByName("colorBlindOffButton") as SimpleButton;
  133.          colorBlindOffButton.addEventListener(MouseEvent.CLICK,colorBlindOffClick,false,0,true);
  134.          if(Game.colorBlind)
  135.          {
  136.             colorBlindOnButton.visible = false;
  137.          }
  138.          else
  139.          {
  140.             colorBlindOffButton.visible = false;
  141.          }
  142.          levelButtons = new Array(41);
  143.          var _loc10_:int = 40;
  144.          while(_loc10_ >= 1)
  145.          {
  146.             (_loc9_ = new TileButton(_loc10_,Tile.COLORS[int((_loc10_ - 1) / 10) + 1])).y = 200 + int((_loc10_ - 1) / 10) * 30;
  147.             _loc9_.x = 30 * ((_loc10_ - 1) % 10) + 65;
  148.             _loc9_.addEventListener(MouseEvent.CLICK,levelClick,false,0,true);
  149.             addChild(_loc9_);
  150.             levelButtons[_loc10_] = _loc9_;
  151.             _loc10_--;
  152.          }
  153.          update();
  154.          _loc11_ = new TextButton(TextButton.LONG,"Begin");
  155.          _loc11_.scaleX = _loc11_.scaleY = 0.8;
  156.          _loc11_.x = 200;
  157.          _loc11_.y = 115;
  158.          _loc11_.addEventListener(MouseEvent.CLICK,beginClick,false,0,true);
  159.          addChild(_loc11_);
  160.          _loc11_ = new TextButton(TextButton.LONG,"Instructions");
  161.          _loc11_.scaleX = _loc11_.scaleY = 0.8;
  162.          _loc11_.x = 157;
  163.          _loc11_.y = 140;
  164.          _loc11_.addEventListener(MouseEvent.CLICK,instructionsClick,false,0,true);
  165.          addChild(_loc11_);
  166.          _loc11_ = new TextButton(TextButton.LONG,"Credits");
  167.          _loc11_.scaleX = _loc11_.scaleY = 0.8;
  168.          _loc11_.x = 243;
  169.          _loc11_.y = 140;
  170.          _loc11_.addEventListener(MouseEvent.CLICK,creditsClick,false,0,true);
  171.          addChild(_loc11_);
  172.          _loc11_ = new TextButton(TextButton.LONG,"More Games");
  173.          _loc11_.scaleX = _loc11_.scaleY = 0.8;
  174.          _loc11_.x = 200;
  175.          _loc11_.y = 165;
  176.          _loc11_.addEventListener(MouseEvent.CLICK,moreGamesClick,false,0,true);
  177.          addChild(_loc11_);
  178.          loadDialog = new LoadDialog();
  179.          (_loc11_ = new TextButton(TextButton.LONG,"Ok")).x = 140;
  180.          _loc11_.y = 240;
  181.          _loc11_.addEventListener(MouseEvent.CLICK,loadOkClick,false,0,true);
  182.          loadDialog.addChild(_loc11_);
  183.          (_loc11_ = new TextButton(TextButton.LONG,"Cancel")).x = 260;
  184.          _loc11_.y = 240;
  185.          _loc11_.addEventListener(MouseEvent.CLICK,loadCancelClick,false,0,true);
  186.          loadDialog.addChild(_loc11_);
  187.          loadInput = loadDialog.getChildByName("input") as TextField;
  188.          loadStatus = loadDialog.getChildByName("status") as TextField;
  189.          instructions = new Instructions();
  190.          (_loc11_ = new TextButton(TextButton.LONG,"Close")).x = 200;
  191.          _loc11_.y = 355;
  192.          _loc11_.addEventListener(MouseEvent.CLICK,closeHelpClick,false,0,true);
  193.          instructions.addChild(_loc11_);
  194.          basicRandomDialog = new BasicRandomDialog();
  195.          basicRandom3Button = basicRandomDialog.getChildByName("button3") as SimpleButton;
  196.          basicRandom4Button = basicRandomDialog.getChildByName("button4") as SimpleButton;
  197.          basicRandom5Button = basicRandomDialog.getChildByName("button5") as SimpleButton;
  198.          basicRandom6Button = basicRandomDialog.getChildByName("button6") as SimpleButton;
  199.          basicRandom3Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  200.          _loc12_ = basicRandomDialog.getChildByName("onlyOnKongregate") as Sprite;
  201.          if(Factory.ON_KONG || Factory.ON_BICLOPS)
  202.          {
  203.             basicRandomDialog.removeChild(_loc12_);
  204.             basicRandom4Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  205.             basicRandom5Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  206.             basicRandom6Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  207.          }
  208.          else
  209.          {
  210.             _loc12_.buttonMode = true;
  211.             _loc12_.addEventListener(MouseEvent.CLICK,Links.unlockLink,false,0,true);
  212.          }
  213.          basicRandomMenuButton = basicRandomDialog.getChildByName("backButton") as SimpleButton;
  214.          basicRandomMenuButton.addEventListener(MouseEvent.CLICK,randomMenuClick,false,0,true);
  215.          (_loc11_ = new TextButton(TextButton.LONG,"Advanced")).x = 200;
  216.          _loc11_.y = 245;
  217.          _loc11_.addEventListener(MouseEvent.CLICK,advancedRandomClick,false,0,true);
  218.          basicRandomDialog.addChild(_loc11_);
  219.          advancedRandomDialog = new AdvancedRandomDialog();
  220.          advancedRandom3Button = advancedRandomDialog.getChildByName("button3") as SimpleButton;
  221.          advancedRandom4Button = advancedRandomDialog.getChildByName("button4") as SimpleButton;
  222.          advancedRandom5Button = advancedRandomDialog.getChildByName("button5") as SimpleButton;
  223.          advancedRandom6Button = advancedRandomDialog.getChildByName("button6") as SimpleButton;
  224.          advancedRandom3Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  225.          _loc12_ = advancedRandomDialog.getChildByName("onlyOnKongregate") as Sprite;
  226.          if(Factory.ON_KONG || Factory.ON_BICLOPS)
  227.          {
  228.             advancedRandomDialog.removeChild(_loc12_);
  229.             advancedRandom4Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  230.             advancedRandom5Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  231.             advancedRandom6Button.addEventListener(MouseEvent.CLICK,randomSizeClick,false,0,true);
  232.          }
  233.          else
  234.          {
  235.             _loc12_.buttonMode = true;
  236.             _loc12_.addEventListener(MouseEvent.CLICK,Links.unlockLink,false,0,true);
  237.          }
  238.          advancedRandomMenuButton = advancedRandomDialog.getChildByName("backButton") as SimpleButton;
  239.          advancedRandomMenuButton.addEventListener(MouseEvent.CLICK,randomMenuClick,false,0,true);
  240.          advancedConnectionsSlider = advancedRandomDialog.getChildByName("connectionsSlider") as Sprite;
  241.          advancedConnectionsSliderHandle = advancedConnectionsSlider.getChildByName("handle") as Sprite;
  242.          advancedConnectionsSlider.addEventListener(MouseEvent.MOUSE_DOWN,dragConnectionsSlider,false,0,true);
  243.          advancedLockedSlider = advancedRandomDialog.getChildByName("lockedSlider") as Sprite;
  244.          advancedLockedSliderHandle = advancedLockedSlider.getChildByName("handle") as Sprite;
  245.          advancedLockedSlider.addEventListener(MouseEvent.MOUSE_DOWN,dragLockedSlider,false,0,true);
  246.          advancedColorDisplay = advancedRandomDialog.getChildByName("colorDisplay") as MovieClip;
  247.          advancedColor1Button = advancedColorDisplay.getChildByName("button1") as SimpleButton;
  248.          advancedColor2Button = advancedColorDisplay.getChildByName("button2") as SimpleButton;
  249.          advancedColor3Button = advancedColorDisplay.getChildByName("button3") as SimpleButton;
  250.          advancedColor4Button = advancedColorDisplay.getChildByName("button4") as SimpleButton;
  251.          advancedColor1Button.addEventListener(MouseEvent.CLICK,randomColorClick,false,0,true);
  252.          advancedColor2Button.addEventListener(MouseEvent.CLICK,randomColorClick,false,0,true);
  253.          advancedColor3Button.addEventListener(MouseEvent.CLICK,randomColorClick,false,0,true);
  254.          advancedColor4Button.addEventListener(MouseEvent.CLICK,randomColorClick,false,0,true);
  255.          advancedColorDisplay.gotoAndStop(advancedColors);
  256.          (_loc11_ = new TextButton(TextButton.LONG,"Basic")).x = 200;
  257.          _loc11_.y = 295;
  258.          _loc11_.addEventListener(MouseEvent.CLICK,basicRandomClick,false,0,true);
  259.          advancedRandomDialog.addChild(_loc11_);
  260.          (_loc11_ = new TextButton(TextButton.LONG,"Defaults")).x = 270;
  261.          _loc11_.y = 200;
  262.          _loc11_.addEventListener(MouseEvent.CLICK,advancedRandomDefaultsClick,false,0,true);
  263.          advancedRandomDialog.addChild(_loc11_);
  264.          advancedRandomDefaultsClick();
  265.       }
  266.       
  267.       private function advancedRandomClick(param1:MouseEvent) : void
  268.       {
  269.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  270.          if(basicRandomDialog.parent == this)
  271.          {
  272.             removeChild(basicRandomDialog);
  273.          }
  274.          addChild(advancedRandomDialog);
  275.       }
  276.       
  277.       protected function creditsClick(param1:MouseEvent) : void
  278.       {
  279.          var _loc2_:SimpleButton = null;
  280.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  281.          if(credits)
  282.          {
  283.             return;
  284.          }
  285.          credits = new Credits();
  286.          _loc2_ = credits.getChildByName("biclops") as SimpleButton;
  287.          if(_loc2_)
  288.          {
  289.             _loc2_.addEventListener(MouseEvent.CLICK,Links.biclopsLink,false,0,true);
  290.          }
  291.          _loc2_ = credits.getChildByName("sponsor") as SimpleButton;
  292.          if(_loc2_)
  293.          {
  294.             _loc2_.addEventListener(MouseEvent.CLICK,Links.sponsorLink,false,0,true);
  295.          }
  296.          _loc2_ = credits.getChildByName("rig") as SimpleButton;
  297.          if(_loc2_)
  298.          {
  299.             _loc2_.addEventListener(MouseEvent.CLICK,Links.rigLink,false,0,true);
  300.          }
  301.          var _loc3_:Sprite = credits.getChildByName("bg") as Sprite;
  302.          if(_loc3_)
  303.          {
  304.             _loc3_.addEventListener(MouseEvent.CLICK,closeCredits,false,0,true);
  305.          }
  306.          addChild(credits);
  307.       }
  308.       
  309.       private function randomColorClick(param1:MouseEvent) : void
  310.       {
  311.          switch(param1.currentTarget)
  312.          {
  313.             case advancedColor1Button:
  314.                advancedColors = 1;
  315.                break;
  316.             case advancedColor2Button:
  317.                advancedColors = 2;
  318.                break;
  319.             case advancedColor3Button:
  320.                advancedColors = 3;
  321.                break;
  322.             case advancedColor4Button:
  323.                advancedColors = 4;
  324.          }
  325.          advancedColorDisplay.gotoAndStop(advancedColors);
  326.       }
  327.       
  328.       private function dropLockedSlider(param1:MouseEvent) : void
  329.       {
  330.          stage.removeEventListener(MouseEvent.MOUSE_MOVE,moveLockedSlider);
  331.          stage.removeEventListener(MouseEvent.MOUSE_UP,dropLockedSlider);
  332.          moveLockedSlider(param1);
  333.       }
  334.       
  335.       protected function colorBlindOffClick(param1:MouseEvent) : void
  336.       {
  337.          colorBlindOnButton.visible = true;
  338.          colorBlindOffButton.visible = false;
  339.          Game.setColorBlind(false);
  340.       }
  341.       
  342.       private function loadClick(param1:MouseEvent) : void
  343.       {
  344.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  345.          loadInput.text = "";
  346.          loadInput.scrollH = 0;
  347.          loadStatus.text = "Paste level code above.";
  348.          loadStatus.textColor = 16777215;
  349.          stage.focus = loadInput;
  350.          addChild(loadDialog);
  351.       }
  352.       
  353.       private function loadOkClick(param1:MouseEvent) : void
  354.       {
  355.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  356.          var _loc2_:Board = Board.loadFromText(loadInput.text);
  357.          if(_loc2_)
  358.          {
  359.             dispatchEvent(new HexEvent(HexEvent.LOAD,false,false,_loc2_));
  360.             if(loadDialog.parent == this)
  361.             {
  362.                removeChild(loadDialog);
  363.             }
  364.          }
  365.          else
  366.          {
  367.             loadStatus.text = "Error loading level.";
  368.             loadStatus.textColor = 16711680;
  369.          }
  370.       }
  371.       
  372.       private function advanceInstructions(param1:Event) : void
  373.       {
  374.          var _loc2_:Tile = null;
  375.          var _loc3_:Tile = null;
  376.          var _loc4_:Boolean = false;
  377.          if(instructionsState == 1)
  378.          {
  379.             _loc2_ = instructionsBoard.slots[3].tile;
  380.             _loc3_ = instructionsBoard.slots[5].tile;
  381.          }
  382.          else if(instructionsState == 3)
  383.          {
  384.             _loc2_ = instructionsBoard.slots[2].tile;
  385.             _loc3_ = instructionsBoard.slots[1].tile;
  386.          }
  387.          else if(instructionsState == 5)
  388.          {
  389.             _loc2_ = instructionsBoard.slots[2].tile;
  390.             _loc3_ = instructionsBoard.slots[3].tile;
  391.          }
  392.          else if(instructionsState == 6)
  393.          {
  394.             for each(_loc2_ in instructionsBoard.tiles)
  395.             {
  396.                _loc2_.flash();
  397.             }
  398.             ++instructionsState;
  399.             _loc4_ = true;
  400.          }
  401.          else if(instructionsState == 9)
  402.          {
  403.             for each(_loc2_ in instructionsBoard.tiles)
  404.             {
  405.                _loc2_.slot = _loc2_.startSlot;
  406.                _loc2_.slot.tile = _loc2_;
  407.                _loc2_.snapToSlot();
  408.                _loc2_.checkNeighbours();
  409.             }
  410.             instructionsState = 0;
  411.             _loc4_ = true;
  412.          }
  413.          else
  414.          {
  415.             _loc4_ = true;
  416.          }
  417.          if(_loc4_)
  418.          {
  419.             ++instructionsTime;
  420.             if(instructionsTime > 40)
  421.             {
  422.                instructionsTime = 0;
  423.                ++instructionsState;
  424.             }
  425.             return;
  426.          }
  427.          var _loc5_:Number = 6;
  428.          var _loc6_:Number = _loc3_.x - _loc2_.x;
  429.          var _loc7_:Number = _loc3_.y - _loc2_.y;
  430.          var _loc8_:Number;
  431.          if((_loc8_ = Math.sqrt(_loc6_ * _loc6_ + _loc7_ * _loc7_)) <= _loc5_)
  432.          {
  433.             _loc2_.slot.swapTiles(_loc3_.slot);
  434.             _loc2_.flash();
  435.             _loc3_.flash();
  436.             ++instructionsState;
  437.          }
  438.          else
  439.          {
  440.             _loc2_.parent.setChildIndex(_loc2_,_loc2_.parent.numChildren - 1);
  441.             _loc2_.x += _loc6_ / _loc8_ * _loc5_;
  442.             _loc2_.y += _loc7_ / _loc8_ * _loc5_;
  443.          }
  444.       }
  445.       
  446.       public function flashTitle() : void
  447.       {
  448.          title.gotoAndPlay(1);
  449.       }
  450.       
  451.       protected function beginClick(param1:MouseEvent) : void
  452.       {
  453.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  454.          dispatchEvent(new HexEvent(HexEvent.PLAY));
  455.       }
  456.       
  457.       private function dropConnectionsSlider(param1:MouseEvent) : void
  458.       {
  459.          stage.removeEventListener(MouseEvent.MOUSE_MOVE,moveConnectionsSlider);
  460.          stage.removeEventListener(MouseEvent.MOUSE_UP,dropConnectionsSlider);
  461.          moveConnectionsSlider(param1);
  462.       }
  463.       
  464.       private function loadCancelClick(param1:MouseEvent) : void
  465.       {
  466.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  467.          if(loadDialog.parent == this)
  468.          {
  469.             removeChild(loadDialog);
  470.          }
  471.       }
  472.       
  473.       protected function levelClick(param1:MouseEvent) : void
  474.       {
  475.          var _loc2_:TileButton = param1.currentTarget as TileButton;
  476.          if(!_loc2_)
  477.          {
  478.             return;
  479.          }
  480.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  481.          dispatchEvent(new HexEvent(HexEvent.PLAY,false,false,null,_loc2_.level));
  482.       }
  483.       
  484.       public function stopTitle() : void
  485.       {
  486.          title.stop();
  487.       }
  488.       
  489.       private function basicRandomClick(param1:MouseEvent) : void
  490.       {
  491.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  492.          if(advancedRandomDialog.parent == this)
  493.          {
  494.             removeChild(advancedRandomDialog);
  495.          }
  496.          addChild(basicRandomDialog);
  497.       }
  498.       
  499.       protected function moreGamesClick(param1:MouseEvent) : void
  500.       {
  501.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  502.          Links.sponsorLink();
  503.       }
  504.       
  505.       protected function closeCredits(param1:MouseEvent) : void
  506.       {
  507.          var _loc2_:SimpleButton = null;
  508.          if(!credits)
  509.          {
  510.             return;
  511.          }
  512.          _loc2_ = credits.getChildByName("biclops") as SimpleButton;
  513.          if(_loc2_)
  514.          {
  515.             _loc2_.removeEventListener(MouseEvent.CLICK,Links.biclopsLink);
  516.          }
  517.          _loc2_ = credits.getChildByName("sponsor") as SimpleButton;
  518.          if(_loc2_)
  519.          {
  520.             _loc2_.removeEventListener(MouseEvent.CLICK,Links.sponsorLink);
  521.          }
  522.          _loc2_ = credits.getChildByName("rig") as SimpleButton;
  523.          if(_loc2_)
  524.          {
  525.             _loc2_.removeEventListener(MouseEvent.CLICK,Links.rigLink);
  526.          }
  527.          var _loc3_:Sprite = credits.getChildByName("bg") as Sprite;
  528.          if(_loc3_)
  529.          {
  530.             _loc3_.removeEventListener(MouseEvent.CLICK,closeCredits);
  531.          }
  532.          if(credits.parent == this)
  533.          {
  534.             removeChild(credits);
  535.          }
  536.          credits = null;
  537.       }
  538.       
  539.       private function randomSizeClick(param1:MouseEvent) : void
  540.       {
  541.          var _loc2_:int = 0;
  542.          var _loc5_:int = 0;
  543.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  544.          var _loc3_:Boolean = false;
  545.          switch(param1.currentTarget)
  546.          {
  547.             case basicRandom3Button:
  548.                _loc2_ = 3;
  549.                break;
  550.             case basicRandom4Button:
  551.                _loc2_ = 4;
  552.                break;
  553.             case basicRandom5Button:
  554.                _loc2_ = 5;
  555.                break;
  556.             case basicRandom6Button:
  557.                _loc2_ = 6;
  558.                break;
  559.             case advancedRandom3Button:
  560.                _loc2_ = 3;
  561.                _loc3_ = true;
  562.                break;
  563.             case advancedRandom4Button:
  564.                _loc2_ = 4;
  565.                _loc3_ = true;
  566.                break;
  567.             case advancedRandom5Button:
  568.                _loc2_ = 5;
  569.                _loc3_ = true;
  570.                break;
  571.             case advancedRandom6Button:
  572.                _loc2_ = 6;
  573.                _loc3_ = true;
  574.          }
  575.          if(!_loc2_)
  576.          {
  577.             return;
  578.          }
  579.          var _loc4_:Board = new Board(_loc2_);
  580.          if(_loc3_)
  581.          {
  582.             _loc4_.randomFill(advancedConnections,advancedLocked,advancedColors);
  583.             _loc5_ = Level.ADVANCED_RANDOM;
  584.          }
  585.          else
  586.          {
  587.             _loc4_.randomFill();
  588.             _loc5_ = Level.BASIC_RANDOM;
  589.          }
  590.          _loc4_.shuffleStart();
  591.          dispatchEvent(new HexEvent(HexEvent.RANDOM,false,false,_loc4_,_loc5_));
  592.          if(basicRandomDialog.parent == this)
  593.          {
  594.             removeChild(basicRandomDialog);
  595.          }
  596.          if(advancedRandomDialog.parent == this)
  597.          {
  598.             removeChild(advancedRandomDialog);
  599.          }
  600.       }
  601.       
  602.       private function editClick(param1:MouseEvent) : void
  603.       {
  604.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  605.          dispatchEvent(new HexEvent(HexEvent.EDIT));
  606.       }
  607.       
  608.       private function closeHelpClick(param1:MouseEvent) : void
  609.       {
  610.          removeEventListener(Event.ENTER_FRAME,advanceInstructions);
  611.          if(instructions.parent == this)
  612.          {
  613.             removeChild(instructions);
  614.          }
  615.          if(instructionsBoard.parent == instructions)
  616.          {
  617.             instructions.removeChild(instructionsBoard);
  618.          }
  619.          instructionsBoard = null;
  620.       }
  621.       
  622.       private function moveConnectionsSlider(param1:MouseEvent) : void
  623.       {
  624.          advancedConnectionsSliderHandle.x = Math.max(0,Math.min(BAR_WIDTH,advancedConnectionsSlider.mouseX));
  625.          advancedConnections = Board.MIN_CONNECTIONS + advancedConnectionsSliderHandle.x / BAR_WIDTH * (Board.MAX_CONNECTIONS - Board.MIN_CONNECTIONS);
  626.       }
  627.       
  628.       public function update() : void
  629.       {
  630.          var _loc2_:int = 0;
  631.          var _loc3_:TileButton = null;
  632.          var _loc1_:Array = new Array(41);
  633.          _loc2_ = 1;
  634.          while(_loc2_ <= 40)
  635.          {
  636.             _loc1_[_loc2_] = Game.getLevelComplete(_loc2_);
  637.             _loc2_++;
  638.          }
  639.          _loc2_ = 1;
  640.          while(_loc2_ <= 40)
  641.          {
  642.             _loc3_ = levelButtons[_loc2_];
  643.             if(_loc1_[_loc2_])
  644.             {
  645.                _loc3_.complete();
  646.                if(_loc2_ > 1 && _loc1_[_loc2_ - 1] && _loc2_ % 10 != 1)
  647.                {
  648.                   _loc3_.addLeft();
  649.                   levelButtons[_loc2_ - 1].addRight();
  650.                }
  651.                if(_loc2_ < 40 && _loc1_[_loc2_ + 1] && _loc2_ % 10 != 0)
  652.                {
  653.                   _loc3_.addRight();
  654.                   levelButtons[_loc2_ + 1].addLeft();
  655.                }
  656.             }
  657.             _loc2_++;
  658.          }
  659.       }
  660.       
  661.       protected function qualityClick(param1:MouseEvent) : void
  662.       {
  663.          Game.nextQuality();
  664.       }
  665.       
  666.       private function advancedRandomDefaultsClick(param1:MouseEvent = null) : void
  667.       {
  668.          advancedConnections = Board.DEFAULT_CONNECTIONS;
  669.          advancedLocked = Board.DEFAULT_LOCKED;
  670.          advancedColors = Board.DEFAULT_COLORS;
  671.          advancedConnectionsSliderHandle.x = (advancedConnections - Board.MIN_CONNECTIONS) / (Board.MAX_CONNECTIONS - Board.MIN_CONNECTIONS) * BAR_WIDTH;
  672.          advancedLockedSliderHandle.x = (advancedLocked - Board.MIN_LOCKED) / (Board.MAX_LOCKED - Board.MIN_LOCKED) * BAR_WIDTH;
  673.          advancedColorDisplay.gotoAndStop(advancedColors);
  674.       }
  675.       
  676.       protected function colorBlindOnClick(param1:MouseEvent) : void
  677.       {
  678.          colorBlindOffButton.visible = true;
  679.          colorBlindOnButton.visible = false;
  680.          Game.setColorBlind(true);
  681.       }
  682.       
  683.       private function dragConnectionsSlider(param1:MouseEvent) : void
  684.       {
  685.          stage.addEventListener(MouseEvent.MOUSE_MOVE,moveConnectionsSlider,false,0,true);
  686.          stage.addEventListener(MouseEvent.MOUSE_UP,dropConnectionsSlider,false,0,true);
  687.          moveConnectionsSlider(param1);
  688.       }
  689.       
  690.       private function dragLockedSlider(param1:MouseEvent) : void
  691.       {
  692.          stage.addEventListener(MouseEvent.MOUSE_MOVE,moveLockedSlider,false,0,true);
  693.          stage.addEventListener(MouseEvent.MOUSE_UP,dropLockedSlider,false,0,true);
  694.          moveLockedSlider(param1);
  695.       }
  696.       
  697.       private function randomMenuClick(param1:MouseEvent) : void
  698.       {
  699.          SoundBar.playSound(SoundBar.BUTTON_CLICK_SOUND,mouseX / Game.MIDX - 1);
  700.          if(basicRandomDialog.parent == this)
  701.          {
  702.             removeChild(basicRandomDialog);
  703.          }
  704.          if(advancedRandomDialog.parent == this)
  705.          {
  706.             removeChild(advancedRandomDialog);
  707.          }
  708.       }
  709.       
  710.       protected function instructionsClick(param1:MouseEvent) : void
  711.       {
  712.          addChild(instructions);
  713.          var _loc2_:Board = instructionsBoard = Board.loadFromText(Levels.TUTORIAL);
  714.          _loc2_.scaleX = _loc2_.scaleY = 0.45;
  715.          _loc2_.x = 200;
  716.          _loc2_.y = 145;
  717.          _loc2_.mouseChildren = false;
  718.          instructions.addChild(_loc2_);
  719.          instructionsState = 0;
  720.          addEventListener(Event.ENTER_FRAME,advanceInstructions,false,0,true);
  721.       }
  722.       
  723.       private function moveLockedSlider(param1:MouseEvent) : void
  724.       {
  725.          advancedLockedSliderHandle.x = Math.max(0,Math.min(BAR_WIDTH,advancedLockedSlider.mouseX));
  726.          advancedLocked = Board.MIN_LOCKED + advancedLockedSliderHandle.x / BAR_WIDTH * (Board.MAX_LOCKED - Board.MIN_LOCKED);
  727.       }
  728.    }
  729. }
  730.