STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 228071 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2560 · P5120 |
This is the info page for Flash #120173 |
Loading... |
Enter your name here |
You passed all levels! |
Main Menu |
More Games |
Congratulations! |
Submit score |
Submit score |
You score is: |
00000000 |
Continue |
Restart level |
Help |
Abort game |
Rotate the group of three figures by clicking at it with the mouse. If the figures in the group are identical they will disappear and the triangle where they are situated will change into gold. To pass to the next level turn all triangles on the playing field into gold. Do not forget about the timer, it shows how much time you have. |
Rules |
(Click to continue) |
Rotate the group of three figures by clicking at it with the mouse. If the figures in the group are identical they will disappear and the triangle where they are situated will change into gold. To pass to the next level turn all triangles on the playing field into gold. Do not forget about the timer, it shows how much time you have. |
1/3 |
Shuffle – use this bonus to shuffle the figures on the playing field. It fills up in time. Bomb – you can explode the figures in any triangle using the bomb. Make combos to get this bonus. Lightning – blasts three triangles on the playing field. The more combos you collect the quicker you get the bonus. |
Bonuses |
(the bonuses become available as you are passing) |
2/3 |
Production, design, sounds GameGlade Team Programming: Daniel Vibe Music: Eugeny Serov |
Credits |
3/3 |
Ok |
Time bonus score: |
Level score: |
Total score: |
0 |
0 |
0 |
Level Complete! |
v.1.0 |
New game |
Your time is over. Try the level again. |
Play |
Enter your name here |
00000000 |
Do not forget about the timer, it shows how much time you have |
(click to continue) |
Black figures do not disappear even if they are collected 3 or more together. |
Collect 3 figures of the same color in this triangle to destroy the lock |
To destroy such lock make two matches in this triangle |
To destroy such lock collect three figures of the same color in this triangle |
The chain does not allow the figure to move. To destroy it make the match with the figure under the chain |
The double chain can be destroyed only with the double match with the figure under the chain |
Use this bonus to shuffle the figures on the playing filed. It fills up in time. |
The bonus “Bomb” is available. Use it to explode figures in any triangle. To get this bonus collect combos. |
“Lightning” is available. It blasts three triangles on the playing field. The more click- combos you collect the quicker you get the bonus. |
The bonus “Bomb” has filled up! Use it to explode figures in any triangle. |
“Lightning” has filled up! Use it to blasts figures in three triangles on the playing field. |
Cancel |
Level 100 |
50 |
Download |
ActionScript [AS3]
Section 1//png (cursor.png) package cursor { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:int=49, _arg2:int=49){ super(_arg1, _arg2); } } }//package cursorSection 2//png (cursor_bomb.png) package cursor_bomb { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:int=49, _arg2:int=49){ super(_arg1, _arg2); } } }//package cursor_bombSection 3//png (cursor_color_bomb.png) package cursor_color_bomb { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:int=49, _arg2:int=49){ super(_arg1, _arg2); } } }//package cursor_color_bombSection 4//AlphaObject (main.AlphaObject) package main { import flash.events.*; public class AlphaObject extends CustomAlphaObject { override protected function OnAlphaUpdate(_arg1:Event):void{ if (Game.gamePause){ return; }; super.OnAlphaUpdate(_arg1); } } }//package mainSection 5//BasicObject (main.BasicObject) package main { import flash.events.*; import flash.geom.*; public class BasicObject extends AlphaObject { protected var m_velocity:Vect; private var m_startPoint:Point; private var m_targetPoint:Point; private var m_speed:Number; private var m_distance:Number;// = 0 private var m_moving:Boolean;// = false private var m_targetPoints:Array; public static const MOVE_FINISH = "moveFinish"; public static const MOVE_START = "moveStart"; public function BasicObject(){ m_velocity = new Vect(); } protected function updateVelocity(){ m_velocity.setMembers((m_targetPoint.x - x), (m_targetPoint.y - y)); m_velocity.mulScalar((m_speed / m_velocity.magnitude())); } public function moveToPoint(_arg1:Point, _arg2:int, _arg3:Number=1){ m_startPoint = null; m_targetPoint = null; m_startPoint = new Point(x, y); m_targetPoint = new Point(_arg1.x, _arg1.y); m_speed = _arg2; m_startAlpha = alpha; m_finishAlpha = _arg3; updateVelocity(); m_distance = Point.distance(new Point(x, y), m_targetPoint); addEventListener(Event.ENTER_FRAME, Update); m_moving = true; doOnMoveStart(m_startPoint, m_targetPoint, m_speed); } public function moveToPoints(_arg1:Array, _arg2:int){ if (!_arg1.length){ return; }; m_targetPoints = new Array(); m_targetPoints = _arg1.concat(); var _local3:Point = m_targetPoints[0]; moveToPoint(_local3, _arg2); } protected function move():void{ if (Game.gamePause){ return; }; x = (x + m_velocity.x); y = (y + m_velocity.y); } private function doOnMoveStart(_arg1:Point, _arg2:Point, _arg3:int){ if (((m_targetPoints) && (m_targetPoints.length))){ if (_arg2.equals(m_targetPoints[0])){ dispatchEvent(new MoveEvent(BasicObject.MOVE_START, _arg1, _arg2, _arg3)); }; } else { dispatchEvent(new MoveEvent(BasicObject.MOVE_START, _arg1, _arg2, _arg3)); }; } private function doOnMoveFinish(_arg1:Point, _arg2:Point, _arg3:int){ var _local4:int; if (((m_targetPoints) && (m_targetPoints.length))){ _local4 = 0; while (_local4 < m_targetPoints.length) { if (_arg2.equals(m_targetPoints[_local4])){ break; }; _local4++; }; if (_local4 == (m_targetPoints.length - 1)){ m_targetPoints.length = 0; m_targetPoints = null; dispatchEvent(new MoveEvent(BasicObject.MOVE_FINISH, _arg1, _arg2, _arg3)); } else { if (_local4 < (m_targetPoints.length - 1)){ moveToPoint(m_targetPoints[(_local4 + 1)], _arg3); } else { throw (new Error("Ошибка при движении по маршруту")); }; }; } else { dispatchEvent(new MoveEvent(BasicObject.MOVE_FINISH, _arg1, _arg2, _arg3)); }; } private function Update(_arg1:Event):void{ var _local3:Number; var _local4:Number; move(); updateVelocity(); var _local2:Number = Point.distance(new Point(x, y), m_targetPoint); if ((((_local2 > m_distance)) || ((_local2 == 0)))){ removeEventListener(Event.ENTER_FRAME, Update); x = m_targetPoint.x; y = m_targetPoint.y; alpha = m_finishAlpha; m_moving = false; doOnMoveFinish(m_startPoint, m_targetPoint, m_speed); } else { m_distance = _local2; if (((((!((m_startAlpha == m_finishAlpha))) && ((m_rest_alpha == 0)))) && (!((alpha == m_finishAlpha))))){ _local3 = Point.distance(m_startPoint, m_targetPoint); _local4 = (((m_finishAlpha - m_startAlpha) * _local2) / _local3); alpha = (m_finishAlpha - _local4); }; }; } public function get moving():Boolean{ return (m_moving); } } }//package mainSection 6//BombaSound (main.BombaSound) package main { import flash.media.*; public dynamic class BombaSound extends Sound { } }//package mainSection 7//BombButtonFilling (main.BombButtonFilling) package main { import flash.text.*; public class BombButtonFilling extends ButtonFilling { public var m_text:TextField; override protected function getText():TextField{ return (m_text); } } }//package mainSection 8//BombMovie (main.BombMovie) package main { import flash.display.*; public class BombMovie extends MyButton { override protected function createAnimation(_arg1:int):MovieClip{ switch (_arg1){ case MyButton.MODE_NORMAL: return (new BombMovieNormal()); case MyButton.MODE_OVER: return (new BombMovieOver()); case MyButton.MODE_PRESSED: return (new BombMoviePressed()); case MyButton.MODE_DISABLED: return (new BombMovieDisabled()); }; return (null); } } }//package mainSection 9//BombMovieDisabled (main.BombMovieDisabled) package main { import flash.display.*; public dynamic class BombMovieDisabled extends MovieClip { } }//package mainSection 10//BombMovieNormal (main.BombMovieNormal) package main { import flash.display.*; public dynamic class BombMovieNormal extends MovieClip { } }//package mainSection 11//BombMovieOver (main.BombMovieOver) package main { import flash.display.*; public dynamic class BombMovieOver extends MovieClip { } }//package mainSection 12//BombMoviePressed (main.BombMoviePressed) package main { import flash.display.*; public dynamic class BombMoviePressed extends MovieClip { } }//package mainSection 13//BonusFullSound (main.BonusFullSound) package main { import flash.media.*; public dynamic class BonusFullSound extends Sound { } }//package mainSection 14//Boom1Sound (main.Boom1Sound) package main { import flash.media.*; public dynamic class Boom1Sound extends Sound { } }//package mainSection 15//Burst1Sound (main.Burst1Sound) package main { import flash.media.*; public dynamic class Burst1Sound extends Sound { } }//package mainSection 16//Burst2Sound (main.Burst2Sound) package main { import flash.media.*; public dynamic class Burst2Sound extends Sound { } }//package mainSection 17//Burst3Sound (main.Burst3Sound) package main { import flash.media.*; public dynamic class Burst3Sound extends Sound { } }//package mainSection 18//Burst4Sound (main.Burst4Sound) package main { import flash.media.*; public dynamic class Burst4Sound extends Sound { } }//package mainSection 19//Burst5Sound (main.Burst5Sound) package main { import flash.media.*; public dynamic class Burst5Sound extends Sound { } }//package mainSection 20//Button1Sound (main.Button1Sound) package main { import flash.media.*; public dynamic class Button1Sound extends Sound { } }//package mainSection 21//ButtonFilling (main.ButtonFilling) package main { import flash.media.*; import flash.events.*; import flash.text.*; import flash.display.*; public class ButtonFilling extends MovieClip { protected var m_percent:Number;// = 0 private var m_savePercent:Number;// = 0 private var m_fillingNumber:TextField; public static const ON_FULL = "onButtonFull"; public static const ON_PERCENT_CHANGE = "onPercentChange"; public function ButtonFilling(){ gotoAndStop(1); m_fillingNumber = getText(); } protected function getText():TextField{ return (null); } protected function internalSetPersent(_arg1:Number){ m_percent = _arg1; } public function save(){ m_savePercent = m_percent; } public function restore(){ m_percent = m_savePercent; } public function set percent(_arg1:Number){ var _local7:Sound; if (m_percent == _arg1){ return; }; var _local2:Number = m_percent; internalSetPersent(_arg1); m_percent = Math.min(m_percent, GameSettings.MaxBonusFillPercent); if (_local2 == m_percent){ return; }; dispatchEvent(new Event(ON_PERCENT_CHANGE)); var _local3:uint = (_local2 / 100); var _local4:uint = (m_percent / 100); if (_local3 < _local4){ if (Game.soundOn){ _local7 = new BonusFullSound(); _local7.play(); }; dispatchEvent(new Event(ON_FULL)); }; var _local5:uint = (((m_percent - 1) % 100) + 1); var _local6:uint = ((totalFrames * _local5) / 100); gotoAndStop(_local6); m_fillingNumber = getText(); if (m_fillingNumber){ _local4 = (m_percent / 100); if (_local4 == 0){ m_fillingNumber.text = ""; } else { m_fillingNumber.text = String(_local4); }; }; } public function get percent():Number{ return (m_percent); } } }//package mainSection 22//Chain1 (main.Chain1) package main { import flash.display.*; public dynamic class Chain1 extends MovieClip { } }//package mainSection 23//Chain2 (main.Chain2) package main { import flash.display.*; public dynamic class Chain2 extends MovieClip { } }//package mainSection 24//Chains (main.Chains) package main { import flash.display.*; public class Chains extends ObjectManager { public static const MODE_NO_CHAIN = 0; public static const MODE_CHAIN = 1; public static const MODE_DOUBLE_CHAIN = 2; override protected function createAnimation(_arg1:int):MovieClip{ switch (_arg1){ case MODE_CHAIN: return (new Chain1()); case MODE_DOUBLE_CHAIN: return (new Chain2()); }; return (null); } } }//package mainSection 25//Cursor (main.Cursor) package main { import flash.display.*; public class Cursor extends MovieClip { private var m_mode:int; public static const MODE_NORMAL = 1; public static const MODE_BOMB = 2; public static const MODE_COLOR_BOMB = 3; public function Cursor(){ mode = MODE_NORMAL; } public function get mode():int{ return (m_mode); } public function set mode(_arg1:int):void{ if (m_mode == _arg1){ return; }; m_mode = _arg1; switch (m_mode){ case MODE_NORMAL: gotoAndStop(1); break; case MODE_BOMB: gotoAndStop(2); break; case MODE_COLOR_BOMB: gotoAndStop(3); break; }; } } }//package mainSection 26//CustomAlphaObject (main.CustomAlphaObject) package main { import flash.events.*; import flash.display.*; public class CustomAlphaObject extends MovieClip { protected var m_startAlpha:Number; protected var m_finishAlpha:Number; private var m_inc_alpha:Number; protected var m_rest_alpha:Number;// = 0 public static const ON_FINISH_ALPHA_CHANGE = "OnFinishAlphaChange"; public function changeAlpha(_arg1:Number, _arg2:int){ var _local3:Number; m_startAlpha = alpha; m_finishAlpha = _arg1; if (stage){ _local3 = stage.frameRate; } else { _local3 = GameSettings.FrameRate; }; var _local4:int = ((_local3 * _arg2) / 1000); m_inc_alpha = ((m_finishAlpha - alpha) / _local4); if (m_inc_alpha == 0){ m_inc_alpha = 1E-7; }; m_rest_alpha = Math.abs((alpha - m_finishAlpha)); addEventListener(Event.ENTER_FRAME, OnAlphaUpdate); } protected function OnAlphaUpdate(_arg1:Event):void{ alpha = (alpha + m_inc_alpha); if (Math.abs((alpha - m_finishAlpha)) > m_rest_alpha){ alpha = m_finishAlpha; m_rest_alpha = 0; removeEventListener(Event.ENTER_FRAME, OnAlphaUpdate); dispatchEvent(new Event(ON_FINISH_ALPHA_CHANGE)); } else { m_rest_alpha = Math.abs((alpha - m_finishAlpha)); }; } } }//package mainSection 27//Figure (main.Figure) package main { import flash.events.*; import flash.geom.*; import flash.display.*; public class Figure extends BasicObject { private var m_tremble:Boolean; private var m_figureClip:MovieClip;// = null private var m_tremblePoint:Point; private var m_figureManager:FigureManager; private var m_maxFrame:int; public static const PULL_FINISH = "pullFinish"; public static const DESTROING_FINISH = "destroingFinish"; public function Figure(_arg1:Point, _arg2:uint, _arg3:Boolean){ m_tremblePoint = new Point(); super(); x = _arg1.x; y = _arg1.y; m_maxFrame = Math.min(_arg2, 7); var _local4:uint = (Math.floor((Math.random() * m_maxFrame)) + 1); var _local5:uint = (_arg3) ? 8 : _local4; m_figureManager = new FigureManager(_local5); addChild(m_figureManager); } public function get figureIndex():uint{ return (m_figureManager.figureIndex); } public function randomFrame():void{ var _local1:int; do { _local1 = (Math.floor((Math.random() * m_maxFrame)) + 1); } while (_local1 == m_figureManager.figureIndex); m_figureManager.figureIndex = _local1; } public function get active():Boolean{ return ((m_figureManager.mode == 2)); } public function set active(_arg1:Boolean){ var _local2:int = (_arg1) ? FigureManager.MODE_ACTIVE : FigureManager.MODE_NORMAL; if (m_figureManager.mode == _local2){ return; }; m_figureManager.mode = _local2; } public function get tremble():Boolean{ return (m_tremble); } public function set tremble(_arg1):void{ if (m_tremble == _arg1){ return; }; m_tremble = _arg1; if (m_tremble){ startTremble(); } else { stopTremble(); }; } private function startTremble(){ m_tremblePoint.x = x; m_tremblePoint.y = y; x++; addEventListener(Event.ENTER_FRAME, onTremble); } private function stopTremble(){ removeEventListener(Event.ENTER_FRAME, onTremble); x = m_tremblePoint.x; y = m_tremblePoint.y; } private function onTremble(_arg1:Event){ if (x > m_tremblePoint.x){ x = (m_tremblePoint.x - 1); } else { x = (m_tremblePoint.x + 1); }; } public function get black():Boolean{ return ((m_figureManager.figureIndex == 8)); } public function destroy():void{ m_figureManager.mode = FigureManager.MODE_DESTROY; m_figureManager.addEventListener(ObjectManager2.CHANGE_MODE_FINISH, onDestroingFinish); } private function onDestroingFinish(_arg1:Event):void{ m_figureManager.removeEventListener(ObjectManager2.CHANGE_MODE_FINISH, onDestroingFinish); dispatchEvent(new Event(DESTROING_FINISH)); } public function pull(_arg1:Point, _arg2:int){ moveToPoint(_arg1, _arg2); addEventListener(BasicObject.MOVE_FINISH, OnPull); } private function OnPull(_arg1:MoveEvent){ removeEventListener(BasicObject.MOVE_FINISH, OnPull); moveToPoint(_arg1.startPoint, _arg1.speed); addEventListener(BasicObject.MOVE_FINISH, OnPullFinish); } private function OnPullFinish(_arg1:MoveEvent){ removeEventListener(BasicObject.MOVE_FINISH, OnPullFinish); dispatchEvent(new MoveEvent(Figure.PULL_FINISH, _arg1.startPoint, _arg1.stopPoint, _arg1.speed)); } } }//package mainSection 28//Figure1Active (main.Figure1Active) package main { import flash.display.*; public dynamic class Figure1Active extends MovieClip { public function Figure1Active(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 29//Figure1Destroying (main.Figure1Destroying) package main { import flash.display.*; public dynamic class Figure1Destroying extends MovieClip { } }//package mainSection 30//Figure1Normal (main.Figure1Normal) package main { import flash.display.*; public dynamic class Figure1Normal extends MovieClip { } }//package mainSection 31//Figure2Active (main.Figure2Active) package main { import flash.display.*; public dynamic class Figure2Active extends MovieClip { public function Figure2Active(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 32//Figure2Destroying (main.Figure2Destroying) package main { import flash.display.*; public dynamic class Figure2Destroying extends MovieClip { } }//package mainSection 33//Figure2Normal (main.Figure2Normal) package main { import flash.display.*; public dynamic class Figure2Normal extends MovieClip { } }//package mainSection 34//Figure3Active (main.Figure3Active) package main { import flash.display.*; public dynamic class Figure3Active extends MovieClip { public function Figure3Active(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 35//Figure3Destroying (main.Figure3Destroying) package main { import flash.display.*; public dynamic class Figure3Destroying extends MovieClip { } }//package mainSection 36//Figure3Normal (main.Figure3Normal) package main { import flash.display.*; public dynamic class Figure3Normal extends MovieClip { } }//package mainSection 37//Figure4Active (main.Figure4Active) package main { import flash.display.*; public dynamic class Figure4Active extends MovieClip { public function Figure4Active(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 38//Figure4Destroying (main.Figure4Destroying) package main { import flash.display.*; public dynamic class Figure4Destroying extends MovieClip { } }//package mainSection 39//Figure4Normal (main.Figure4Normal) package main { import flash.display.*; public dynamic class Figure4Normal extends MovieClip { } }//package mainSection 40//Figure5Active (main.Figure5Active) package main { import flash.display.*; public dynamic class Figure5Active extends MovieClip { public function Figure5Active(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 41//Figure5Destroying (main.Figure5Destroying) package main { import flash.display.*; public dynamic class Figure5Destroying extends MovieClip { } }//package mainSection 42//Figure5Normal (main.Figure5Normal) package main { import flash.display.*; public dynamic class Figure5Normal extends MovieClip { } }//package mainSection 43//Figure6Active (main.Figure6Active) package main { import flash.display.*; public dynamic class Figure6Active extends MovieClip { public function Figure6Active(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 44//Figure6Destroying (main.Figure6Destroying) package main { import flash.display.*; public dynamic class Figure6Destroying extends MovieClip { } }//package mainSection 45//Figure6Normal (main.Figure6Normal) package main { import flash.display.*; public dynamic class Figure6Normal extends MovieClip { } }//package mainSection 46//Figure7Active (main.Figure7Active) package main { import flash.display.*; public dynamic class Figure7Active extends MovieClip { public function Figure7Active(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 47//Figure7Destroying (main.Figure7Destroying) package main { import flash.display.*; public dynamic class Figure7Destroying extends MovieClip { } }//package mainSection 48//Figure7Normal (main.Figure7Normal) package main { import flash.display.*; public dynamic class Figure7Normal extends MovieClip { } }//package mainSection 49//FigureBlackActive (main.FigureBlackActive) package main { import flash.display.*; public dynamic class FigureBlackActive extends MovieClip { public function FigureBlackActive(){ addFrameScript(19, frame20); } function frame20(){ this.gotoAndPlay(1); } } }//package mainSection 50//FigureBlackDestroying (main.FigureBlackDestroying) package main { import flash.display.*; public dynamic class FigureBlackDestroying extends MovieClip { } }//package mainSection 51//FigureBlackNormal (main.FigureBlackNormal) package main { import flash.display.*; public dynamic class FigureBlackNormal extends MovieClip { } }//package mainSection 52//FigureInfo (main.FigureInfo) package main { public class FigureInfo { private var m_index:int; private var m_mode:int; public function FigureInfo(_arg1:int, _arg2:int){ m_index = _arg1; m_mode = _arg2; } public function get index():int{ return (m_index); } public function get mode():int{ return (m_mode); } } }//package mainSection 53//FigureManager (main.FigureManager) package main { import flash.display.*; public class FigureManager extends ObjectManager2 { private var m_figureIndex:uint; public static const MODE_NORMAL = 1; public static const MODE_ACTIVE = 2; public static const MODE_DESTROY = 3; public function FigureManager(_arg1:uint){ m_figureIndex = _arg1; mode = MODE_NORMAL; } public function get figureIndex():uint{ return (m_figureIndex); } public function set figureIndex(_arg1:uint){ if (m_figureIndex == _arg1){ return; }; m_figureIndex = _arg1; var _local2:int = mode; mode = -1; mode = _local2; } override protected function createAnimation(_arg1:int):MovieClip{ switch (_arg1){ case MODE_NORMAL: switch (m_figureIndex){ case 1: return (new Figure1Normal()); case 2: return (new Figure2Normal()); case 3: return (new Figure3Normal()); case 4: return (new Figure4Normal()); case 5: return (new Figure5Normal()); case 6: return (new Figure6Normal()); case 7: return (new Figure7Normal()); case 8: return (new FigureBlackNormal()); default: return (null); }; case MODE_ACTIVE: switch (m_figureIndex){ case 1: return (new Figure1Active()); case 2: return (new Figure2Active()); case 3: return (new Figure3Active()); case 4: return (new Figure4Active()); case 5: return (new Figure5Active()); case 6: return (new Figure6Active()); case 7: return (new Figure7Active()); case 8: return (new FigureBlackActive()); default: return (null); }; case MODE_DESTROY: switch (m_figureIndex){ case 1: return (new Figure1Destroying()); case 2: return (new Figure2Destroying()); case 3: return (new Figure3Destroying()); case 4: return (new Figure4Destroying()); case 5: return (new Figure5Destroying()); case 6: return (new Figure6Destroying()); case 7: return (new Figure7Destroying()); case 8: return (new FigureBlackDestroying()); default: return (null); }; }; return (null); } } }//package mainSection 54//FigurePlace (main.FigurePlace) package main { import flash.events.*; import flash.geom.*; import flash.display.*; public class FigurePlace extends MovieClip { private var m_row:int; private var m_col:int; private var m_index:int; private var m_figure:Figure; private var m_chains:Chains; public function FigurePlace(_arg1:Array, _arg2:int, _arg3:int, _arg4:Point){ m_row = _arg2; m_col = _arg3; x = _arg4.x; y = _arg4.y; _arg1[m_row][m_col] = this; m_index = 0; var _local5:int; while (_local5 < m_row) { m_index = (m_index + _arg1[_local5].length); _local5++; }; m_index = (m_index + _arg3); } public function get mode():int{ if (m_chains){ return (m_chains.mode); }; return (Chains.MODE_NO_CHAIN); } public function set mode(_arg1:int):void{ if (mode == _arg1){ return; }; if (!m_chains){ m_chains = new Chains(); addChild(m_chains); }; m_chains.mode = _arg1; } public function get figure(){ return (m_figure); } public function set figure(_arg1){ m_figure = _arg1; } public function get row(){ return (m_row); } public function get col(){ return (m_col); } public function get index(){ return (m_index); } public function get point():Point{ return (new Point(x, y)); } } }//package mainSection 55//FlyingNumber (main.FlyingNumber) package main { import flash.events.*; import flash.geom.*; import flash.text.*; import flash.display.*; import flash.utils.*; public class FlyingNumber extends BasicObject { public var m_text:TextField; private var m_i:int;// = 0 public function FlyingNumber(_arg1:DisplayObjectContainer, _arg2:String, _arg3:Point, _arg4:Point, _arg5:Number){ m_text.text = _arg2; m_text.selectable = false; m_text.embedFonts = true; x = _arg3.x; y = _arg3.y; if (_arg1){ _arg1.addChild(this); }; addEventListener(MouseEvent.CLICK, OnMouseClick); addEventListener(BasicObject.MOVE_FINISH, onMoveFinish); moveToPoint(_arg4, _arg5); var _local6:Timer = new Timer(GameSettings.FLYING_NUMBER_FLY, 1); _local6.addEventListener(TimerEvent.TIMER, onMoveTimer); _local6.start(); } private function OnMouseClick(_arg1:Event){ trace(("click" + m_i++)); } private function onMoveTimer(_arg1:Event){ changeAlpha(0, GameSettings.FLYING_NUMBER_ALPHA); } override protected function move():void{ super.move(); } private function onMoveFinish(_arg1:Event){ removeEventListener(BasicObject.MOVE_FINISH, onMoveFinish); if (parent){ parent.removeChild(this); }; } } }//package mainSection 56//Game (main.Game) package main { import flash.media.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.display.*; import flash.utils.*; import flash.net.*; public class Game extends MovieClip { public var m_musicOffBtn:SimpleButton; public var m_soundOffBtn:SimpleButton; public var m_bombButtonFilling:BombButtonFilling; public var m_shuffleButton:ShuffleButton; public var m_moreGamesBtn:SimpleButton; public var m_levelNumberText:TextField; public var bg:MovieClip; public var m_lightningButtonFilling:BombButtonFilling; public var m_bombButton:BombMovie; public var m_musicOnBtn:SimpleButton; public var m_soundOnBtn:SimpleButton; public var m_lightningButton:LightningButton; public var m_menuButton:SimpleButton; public var m_gameScoreText:TextField; public var m_shuffleButtonFilling:ShuffleButtonFilling; public var m_levelTimer:MovieClip; private var m_level_info_array:Array; private var m_level:PlayingField; private var m_timer:Timer; private var m_blinkTimer:Timer; private var m_lightningTimer:Timer; private var m_lightningPoints:Array; private var m_timerSound:Sound; private var m_timerSoundChannel:SoundChannel; private var m_cursor:Cursor; private var m_musicPlayer:MusicPlayer; private var m_timeScore:uint; private var m_tooltipWindow:TooltipWindow; private var m_tooltipWindowTimer:Timer; private var m_timer_tooltip_show:Boolean;// = false private var m_match4_tooltip_show:Boolean;// = false private var m_match5_tooltip_show:Boolean;// = false private var m_bomb_tooltip_show:Boolean;// = false private var m_onBlackFigureAppearShow:Boolean;// = false private var m_onTriangleLockAppearShow:Boolean;// = false private var m_onTriangleDoubleLockAppearShow:Boolean;// = false private var m_onTriangleColorLockAppearShow:Boolean;// = false private var m_onFigureChainAppearShow:Boolean;// = false private var m_onFigureDoubleChainAppearShow:Boolean;// = false private var m_lightning_tooltip_show:Boolean;// = false private var m_tooltipEvents:Array; private var m_menuBackgroundWindow:MenuBackgroundWindow; public static var GAME_END = "gameEnd"; private static var m_gamePause:Boolean = false; private static var m_soundOn:Boolean = true; private static var m_musicOn:Boolean = true; private static var m_gameScore:uint; private static var m_RealGameScore:uint = 0; public function Game(_arg1:Cursor){ m_tooltipEvents = new Array(); super(); m_cursor = _arg1; m_levelTimer.gotoAndStop(1); m_level_info_array = new Array(new LevelInfo([[0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 1, 0, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 0, 1, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0]], [], 180, 0, 5, 1), new LevelInfo([[0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 2, 2, 1, 1, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 1, 1, 0, 0, 1, 1, 0], [0, 1, 1, 2, 2, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0]], [], 180, 0, 5, 2), new LevelInfo([[0, 1, 1, 1, 1, 1, 1, 0], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 2, 2, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [0, 2, 1, 1, 1, 1, 2, 0]], [], 180, 0, 5, 3), new LevelInfo([[0, 2, 2, 0, 0, 2, 2, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 0, 0, 1, 1, 1], [1, 1, 2, 0, 0, 2, 1, 1], [1, 1, 1, 0, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [2, 1, 1, 0, 0, 1, 1, 2], [1, 1, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0]], [new FigureInfo(28, Chains.MODE_CHAIN), new FigureInfo(30, Chains.MODE_CHAIN)], 180, 0, 5, 3), new LevelInfo([[2, 1, 1, 1, 1, 1, 1, 2], [2, 1, 1, 1, 1, 1, 1, 2], [2, 0, 0, 1, 1, 0, 0, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 1, 2, 2, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0]], [new FigureInfo(10, Chains.MODE_CHAIN), new FigureInfo(12, Chains.MODE_CHAIN)], 240, 0, 6, 3), new LevelInfo([[0, 0, 0, 2, 2, 0, 0, 0], [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, 0, 0, 0, 0, 0, 0, 2], [1, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 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], [0, 0, 0, 2, 2, 0, 0, 0]], [new FigureInfo(23, Chains.MODE_CHAIN), new FigureInfo(26, Chains.MODE_CHAIN), new FigureInfo(32, Chains.MODE_CHAIN), new FigureInfo(35, Chains.MODE_CHAIN)], 240, 0, 6, 3), new LevelInfo([[0, 0, 0, 4, 4, 0, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 1, 1, 0, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 2, 2, 1, 1, 1], [1, 1, 0, 0, 0, 0, 1, 1], [0, 1, 1, 2, 2, 1, 1, 0], [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 0, 4, 4, 0, 0, 0]], [new FigureInfo(19, Chains.MODE_CHAIN), new FigureInfo(21, Chains.MODE_CHAIN), new FigureInfo(37, Chains.MODE_CHAIN), new FigureInfo(38, Chains.MODE_CHAIN), new FigureInfo(39, Chains.MODE_CHAIN)], 240, 0, 6, 3), new LevelInfo([[0, 1, 1, 1, 1, 1, 1, 0], [1, 1, 4, 1, 1, 4, 1, 1], [1, 1, 1, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 0, 1, 1], [0, 1, 0, 2, 2, 0, 1, 0], [0, 2, 1, 4, 4, 1, 2, 0], [0, 1, 0, 2, 2, 0, 1, 0], [1, 1, 0, 1, 1, 0, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 4, 1, 1, 4, 1, 1], [0, 1, 1, 1, 1, 1, 1, 0]], [new FigureInfo(11, Chains.MODE_CHAIN), new FigureInfo(28, Chains.MODE_CHAIN), new FigureInfo(30, Chains.MODE_CHAIN), new FigureInfo(38, Chains.MODE_CHAIN)], 240, 0, 6, 3), new LevelInfo([[4, 0, 0, 0, 0, 0, 0, 4], [4, 0, 0, 0, 0, 0, 0, 4], [4, 0, 0, 0, 0, 0, 0, 4], [2, 2, 0, 0, 0, 0, 2, 2], [1, 1, 0, 0, 0, 0, 1, 1], [1, 1, 0, 0, 0, 0, 1, 1], [1, 1, 1, 0, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [0, 1, 1, 4, 4, 1, 1, 0], [0, 0, 2, 2, 2, 2, 0, 0], [0, 4, 1, 1, 1, 1, 4, 0]], [new FigureInfo(9, Chains.MODE_CHAIN), new FigureInfo(13, Chains.MODE_CHAIN), new FigureInfo(23, Chains.MODE_CHAIN), new FigureInfo(26, Chains.MODE_CHAIN), new FigureInfo(47, Chains.MODE_CHAIN)], 240, 0, 6, 3), new LevelInfo([[2, 0, 0, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 2, 2], [1, 1, 1, 0, 0, 1, 1, 1], [2, 2, 1, 4, 4, 1, 2, 2], [1, 1, 1, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 0, 1, 1], [1, 1, 1, 0, 0, 1, 1, 1], [2, 2, 1, 1, 1, 1, 2, 2], [0, 0, 0, 4, 4, 0, 0, 0], [0, 0, 0, 2, 2, 0, 0, 0], [0, 0, 0, 4, 4, 0, 0, 0]], [new FigureInfo(14, Chains.MODE_CHAIN), new FigureInfo(17, Chains.MODE_CHAIN), new FigureInfo(20, Chains.MODE_CHAIN), new FigureInfo(38, Chains.MODE_CHAIN), new FigureInfo(47, Chains.MODE_CHAIN)], 240, 0, 6, 3), new LevelInfo([[0, 4, 2, 2, 2, 2, 4, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0], [4, 1, 1, 1, 1, 1, 1, 4], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 2, 2, 2, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [4, 1, 1, 1, 1, 1, 1, 4], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 4, 2, 2, 2, 2, 4, 0]], [new FigureInfo(10, Chains.MODE_CHAIN), new FigureInfo(11, Chains.MODE_CHAIN), new FigureInfo(12, Chains.MODE_CHAIN), new FigureInfo(46, Chains.MODE_CHAIN), new FigureInfo(47, Chains.MODE_CHAIN), new FigureInfo(48, Chains.MODE_CHAIN)], 240, 5, 6, 3), new LevelInfo([[0, 4, 4, 0, 0, 4, 4, 0], [1, 1, 1, 0, 0, 1, 1, 1], [2, 1, 1, 0, 0, 1, 1, 2], [1, 1, 4, 0, 0, 4, 1, 1], [2, 1, 1, 0, 0, 1, 1, 2], [1, 1, 0, 0, 0, 0, 1, 1], [2, 1, 1, 0, 0, 1, 1, 2], [1, 1, 4, 0, 0, 4, 1, 1], [2, 1, 1, 0, 0, 1, 1, 2], [1, 1, 1, 0, 0, 1, 1, 1], [0, 4, 4, 0, 0, 4, 4, 0]], [new FigureInfo(10, Chains.MODE_CHAIN), new FigureInfo(12, Chains.MODE_CHAIN), new FigureInfo(14, Chains.MODE_CHAIN), new FigureInfo(17, Chains.MODE_CHAIN), new FigureInfo(41, Chains.MODE_CHAIN), new FigureInfo(44, Chains.MODE_CHAIN), new FigureInfo(46, Chains.MODE_CHAIN), new FigureInfo(48, Chains.MODE_CHAIN)], 240, 8, 6, 3), new LevelInfo([[0, 2, 2, 0, 0, 2, 2, 0], [1, 1, 1, 1, 1, 1, 1, 1], [4, 2, 2, 1, 1, 2, 2, 4], [1, 1, 1, 1, 1, 1, 1, 1], [4, 0, 0, 4, 4, 0, 0, 4], [0, 0, 0, 0, 0, 0, 0, 0], [4, 0, 0, 4, 4, 0, 0, 4], [1, 1, 1, 1, 1, 1, 1, 1], [4, 2, 2, 1, 1, 2, 2, 4], [1, 1, 1, 1, 1, 1, 1, 1], [0, 2, 2, 0, 0, 2, 2, 0]], [new FigureInfo(27, Chains.MODE_CHAIN), new FigureInfo(29, Chains.MODE_CHAIN), new FigureInfo(31, Chains.MODE_CHAIN)], 240, 10, 6, 3), new LevelInfo([[0, 4, 4, 2, 2, 4, 4, 0], [0, 4, 1, 1, 1, 1, 4, 0], [0, 1, 1, 1, 1, 1, 1, 0], [2, 1, 0, 0, 0, 0, 1, 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], [2, 1, 0, 0, 0, 0, 1, 2], [0, 1, 1, 0, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 2, 2, 4, 4, 2, 2, 0]], [new FigureInfo(11, Chains.MODE_CHAIN), new FigureInfo(20, Chains.MODE_CHAIN), new FigureInfo(29, Chains.MODE_CHAIN), new FigureInfo(46, Chains.MODE_CHAIN), new FigureInfo(48, Chains.MODE_CHAIN)], 240, 10, 6, 3), new LevelInfo([[3, 0, 0, 3, 3, 0, 0, 3], [1, 1, 1, 1, 1, 1, 1, 1], [2, 1, 1, 4, 4, 1, 1, 2], [1, 1, 1, 1, 1, 1, 1, 1], [3, 0, 0, 3, 3, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 0], [3, 0, 0, 3, 3, 0, 0, 3], [1, 1, 1, 1, 1, 1, 1, 1], [2, 1, 1, 4, 4, 1, 1, 2], [1, 1, 1, 1, 1, 1, 1, 1], [3, 0, 0, 3, 3, 0, 0, 3]], [new FigureInfo(14, Chains.MODE_CHAIN), new FigureInfo(17, Chains.MODE_CHAIN), new FigureInfo(27, Chains.MODE_CHAIN), new FigureInfo(29, Chains.MODE_CHAIN), new FigureInfo(31, Chains.MODE_CHAIN), new FigureInfo(41, Chains.MODE_CHAIN), new FigureInfo(44, Chains.MODE_CHAIN)], 300, 10, 6, 3), new LevelInfo([[4, 0, 3, 1, 1, 3, 0, 4], [4, 0, 1, 1, 1, 1, 0, 4], [4, 0, 0, 1, 1, 0, 0, 4], [3, 3, 0, 3, 3, 0, 3, 3], [1, 1, 0, 4, 4, 0, 1, 1], [1, 1, 0, 3, 3, 0, 1, 1], [3, 3, 0, 4, 4, 0, 3, 3], [1, 1, 0, 0, 0, 0, 1, 1], [1, 1, 4, 0, 0, 4, 1, 1], [1, 1, 1, 0, 0, 1, 1, 1], [1, 3, 3, 0, 0, 3, 3, 1]], [new FigureInfo(29, Chains.MODE_CHAIN), new FigureInfo(46, Chains.MODE_CHAIN), new FigureInfo(48, Chains.MODE_CHAIN)], 300, 11, 6, 3), new LevelInfo([[0, 2, 3, 0, 0, 3, 2, 0], [1, 1, 1, 0, 0, 1, 1, 1], [2, 1, 1, 0, 0, 1, 1, 2], [3, 2, 1, 2, 2, 1, 2, 3], [2, 1, 4, 1, 1, 4, 1, 2], [1, 1, 3, 4, 4, 3, 1, 1], [0, 0, 0, 3, 3, 0, 0, 0], [4, 4, 0, 0, 0, 0, 4, 4], [2, 2, 0, 3, 3, 0, 2, 2], [4, 4, 0, 3, 3, 0, 4, 4], [0, 0, 0, 3, 3, 0, 0, 0]], [new FigureInfo(29, Chains.MODE_CHAIN), new FigureInfo(32, Chains.MODE_CHAIN), new FigureInfo(35, Chains.MODE_CHAIN), new FigureInfo(38, Chains.MODE_CHAIN)], 300, 11, 6, 3), new LevelInfo([[0, 0, 0, 2, 2, 2, 2, 4], [0, 0, 1, 1, 1, 1, 1, 1], [0, 1, 2, 4, 4, 2, 1, 4], [1, 1, 0, 0, 0, 0, 1, 1], [4, 1, 3, 3, 3, 3, 1, 4], [1, 1, 0, 0, 0, 0, 1, 1], [4, 1, 3, 3, 3, 3, 1, 4], [1, 1, 0, 0, 0, 0, 1, 1], [4, 1, 2, 4, 4, 2, 1, 0], [1, 1, 1, 1, 1, 1, 0, 0], [4, 2, 2, 2, 2, 0, 0, 0]], [new FigureInfo(15, Chains.MODE_CHAIN), new FigureInfo(16, Chains.MODE_CHAIN), new FigureInfo(24, Chains.MODE_CHAIN), new FigureInfo(25, Chains.MODE_CHAIN), new FigureInfo(33, Chains.MODE_CHAIN), new FigureInfo(34, Chains.MODE_CHAIN), new FigureInfo(42, Chains.MODE_CHAIN), new FigureInfo(43, Chains.MODE_CHAIN)], 300, 11, 6, 3), new LevelInfo([[0, 1, 1, 3, 3, 1, 1, 0], [4, 4, 2, 3, 3, 2, 4, 4], [4, 1, 1, 3, 3, 1, 1, 4], [0, 0, 0, 0, 0, 0, 0, 0], [1, 3, 2, 4, 4, 2, 3, 1], [1, 2, 3, 4, 4, 3, 2, 1], [1, 3, 2, 4, 4, 2, 3, 1], [1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 1, 0, 0, 1, 2, 1], [1, 1, 1, 3, 3, 1, 1, 1], [3, 0, 0, 0, 0, 0, 0, 3]], [new FigureInfo(18, Chains.MODE_CHAIN), new FigureInfo(19, Chains.MODE_CHAIN), new FigureInfo(20, Chains.MODE_CHAIN), new FigureInfo(21, Chains.MODE_CHAIN), new FigureInfo(22, Chains.MODE_CHAIN), new FigureInfo(47, Chains.MODE_CHAIN)], 300, 12, 6, 3), new LevelInfo([[4, 1, 1, 3, 3, 1, 1, 4], [0, 0, 1, 1, 1, 1, 0, 0], [3, 4, 1, 3, 3, 1, 4, 3], [0, 0, 3, 3, 3, 3, 0, 0], [0, 1, 3, 0, 0, 3, 1, 0], [4, 4, 3, 0, 0, 3, 4, 4], [0, 1, 3, 0, 0, 3, 1, 0], [0, 0, 3, 3, 3, 3, 0, 0], [3, 4, 1, 3, 3, 1, 4, 3], [0, 0, 1, 1, 1, 1, 0, 0], [4, 1, 1, 3, 3, 1, 1, 4]], [new FigureInfo(5, Chains.MODE_CHAIN), new FigureInfo(8, Chains.MODE_CHAIN), new FigureInfo(14, Chains.MODE_CHAIN), new FigureInfo(17, Chains.MODE_CHAIN), new FigureInfo(41, Chains.MODE_CHAIN), new FigureInfo(44, Chains.MODE_CHAIN), new FigureInfo(50, Chains.MODE_CHAIN), new FigureInfo(53, Chains.MODE_CHAIN)], 300, 12, 6, 3)); var _local2:HelpTooltipWindow = new HelpTooltipWindow(new Point((bg.width / 2), (bg.height / 2))); _local2.addEventListener(MyWindow.ON_CLOSE, OnCloseHelpTooltipWindow); addChild(_local2); if (Game.soundOn){ new HintSound().play(); }; m_shuffleButton.addEventListener(MyButton.BUTTON_CLICK, onShuffleButtonClick); m_shuffleButton.addEventListener(MyButton.DISABLED_BUTTON_CLICK, onDisabledButtonClick); m_shuffleButtonFilling.addEventListener(ButtonFilling.ON_FULL, onShuffleButtonFull); m_shuffleButtonFilling.addEventListener(ButtonFilling.ON_PERCENT_CHANGE, onShuffleButtonUpdate); m_shuffleButton.mode = MyButton.MODE_DISABLED; m_bombButton.addEventListener(MyButton.BUTTON_CLICK, onBombButtonClick); m_bombButton.addEventListener(MyButton.DISABLED_BUTTON_CLICK, onDisabledButtonClick); m_bombButtonFilling.addEventListener(ButtonFilling.ON_FULL, onBombButtonFull); m_bombButtonFilling.addEventListener(ButtonFilling.ON_PERCENT_CHANGE, onBombButtonUpdate); m_bombButton.mode = MyButton.MODE_DISABLED; m_lightningButton.addEventListener(MyButton.BUTTON_CLICK, onLightningButtonClick); m_lightningButton.addEventListener(MyButton.DISABLED_BUTTON_CLICK, onDisabledButtonClick); m_lightningButtonFilling.addEventListener(ButtonFilling.ON_FULL, onLightningButtonFull); m_lightningButtonFilling.addEventListener(ButtonFilling.ON_PERCENT_CHANGE, onLightningButtonUpdate); m_lightningButton.mode = MyButton.MODE_DISABLED; m_menuButton.addEventListener(MouseEvent.CLICK, onMenuButtonClick); m_moreGamesBtn.addEventListener(MouseEvent.CLICK, onMoreGamesBtnClick); m_musicOnBtn.x = m_musicOffBtn.x; m_musicOnBtn.y = m_musicOffBtn.y; m_musicOnBtn.visible = false; m_musicOnBtn.addEventListener(MouseEvent.MOUSE_DOWN, onMusicOnBtnClick); m_soundOnBtn.x = m_soundOffBtn.x; m_soundOnBtn.y = m_soundOffBtn.y; m_soundOnBtn.visible = false; m_soundOnBtn.addEventListener(MouseEvent.MOUSE_DOWN, onSoundOnBtnClick); m_musicOffBtn.addEventListener(MouseEvent.MOUSE_DOWN, onMusicOffBtnClick); m_soundOffBtn.addEventListener(MouseEvent.MOUSE_DOWN, onSoundOffBtnClick); if (!m_musicOn){ onMusicOffBtnClick(null); }; if (!m_soundOn){ onSoundOffBtnClick(null); }; setButtonEnabled(false); } private function setButtonEnabled(_arg1:Boolean){ m_menuButton.enabled = _arg1; m_moreGamesBtn.enabled = _arg1; m_musicOnBtn.enabled = _arg1; m_soundOnBtn.enabled = _arg1; m_musicOffBtn.enabled = _arg1; m_soundOffBtn.enabled = _arg1; if (!_arg1){ m_lightningButton.mode = MyButton.MODE_DISABLED; m_shuffleButton.mode = MyButton.MODE_DISABLED; m_bombButton.mode = MyButton.MODE_DISABLED; } else { onLightningButtonUpdate(null); onShuffleButtonUpdate(null); onBombButtonUpdate(null); }; } private function onShuffleButtonUpdate(_arg1:Event){ if (m_shuffleButtonFilling.percent >= 100){ m_shuffleButton.mode = MyButton.MODE_NORMAL; } else { m_shuffleButton.mode = MyButton.MODE_DISABLED; }; } private function onBombButtonUpdate(_arg1:Event){ if (m_bombButtonFilling.percent >= 100){ m_bombButton.mode = MyButton.MODE_NORMAL; } else { m_bombButton.mode = MyButton.MODE_DISABLED; }; } private function onLightningButtonUpdate(_arg1:Event){ if (m_lightningButtonFilling.percent >= 100){ m_lightningButton.mode = MyButton.MODE_NORMAL; } else { m_lightningButton.mode = MyButton.MODE_DISABLED; }; } private function onMoreGamesBtnClick(_arg1:Event){ var e = _arg1; if (!m_moreGamesBtn.enabled){ return; }; new SoundPlayer(new Button1Sound()); var url:String = GameSettings.MORE_GAME_URL; var request:URLRequest = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } private function keyDownHandler(_arg1:KeyboardEvent){ } private function onMusicOffBtnClick(_arg1:Event){ if (!m_musicOffBtn.enabled){ return; }; m_musicOnBtn.visible = true; m_musicOffBtn.visible = false; musicOn = false; } private function onSoundOffBtnClick(_arg1:Event){ if (!m_soundOffBtn.enabled){ return; }; m_soundOnBtn.visible = true; m_soundOffBtn.visible = false; soundOn = false; } private function onMusicOnBtnClick(_arg1:Event){ if (!m_musicOnBtn.enabled){ return; }; m_musicOnBtn.visible = false; m_musicOffBtn.visible = true; musicOn = true; } private function onSoundOnBtnClick(_arg1:Event){ if (!m_soundOnBtn.enabled){ return; }; m_soundOnBtn.visible = false; m_soundOffBtn.visible = true; soundOn = true; } private function onShuffleButtonFull(_arg1:Event){ m_shuffleButtonFilling.removeEventListener(ButtonFilling.ON_FULL, onShuffleButtonFull); showTooltipWindow(GameSettings.SHUFFLE_TOOLTIP, globalToLocal(new Point(m_shuffleButton.x, m_shuffleButton.y))); } private function onBombButtonFull(_arg1:Event){ m_bombButtonFilling.removeEventListener(ButtonFilling.ON_FULL, onBombButtonFull); showTooltipWindow(GameSettings.BOMB_FULL_TOOLTIP, globalToLocal(new Point(m_bombButton.x, m_bombButton.y))); } private function onLightningButtonFull(_arg1:Event){ m_lightningButtonFilling.removeEventListener(ButtonFilling.ON_FULL, onLightningButtonFull); showTooltipWindow(GameSettings.LIGHTNING_FULL_TOOLTIP, globalToLocal(new Point(m_lightningButton.x, m_lightningButton.y))); } private function endGame(){ freeLevel(); dispatchEvent(new Event(GAME_END)); } private function onDisabledButtonClick(_arg1:Event){ if (Game.soundOn){ new NoSound().play(); }; } private function OnCloseHelpTooltipWindow(_arg1:Event){ var _local2:HelpTooltipWindow = HelpTooltipWindow(_arg1.target); _local2.removeEventListener(MyWindow.ON_CLOSE, OnCloseHelpTooltipWindow); removeChild(_local2); setButtonEnabled(true); loadLevel(1); } private function onBlackFigureAppear(_arg1:TooltipEvent):void{ m_level.removeEventListener(PlayingField.ON_BLACK_FIGURE_APPEAR, onBlackFigureAppear); if (m_onBlackFigureAppearShow){ return; }; m_onBlackFigureAppearShow = true; if (m_level.getMode() == PlayingField.MODE_LOADING){ m_tooltipEvents.push(new TooltipEventInfo(GameSettings.BLACK_FIGURE_TOOLTIP, globalToLocal(_arg1.point))); } else { showTooltipWindow(GameSettings.BLACK_FIGURE_TOOLTIP, globalToLocal(_arg1.point)); }; } private function onTriangleLockAppear(_arg1:TooltipEvent):void{ m_level.removeEventListener(PlayingField.ON_TRIANGLE_LOCK_APPEAR, onTriangleLockAppear); if (m_onTriangleLockAppearShow){ return; }; m_onTriangleLockAppearShow = true; if (m_level.getMode() == PlayingField.MODE_LOADING){ m_tooltipEvents.push(new TooltipEventInfo(GameSettings.LOCK_TOOLTIP, globalToLocal(_arg1.point))); } else { showTooltipWindow(GameSettings.LOCK_TOOLTIP, globalToLocal(_arg1.point)); }; } private function onTriangleDoubleLockAppear(_arg1:TooltipEvent):void{ m_level.removeEventListener(PlayingField.ON_TRIANGLE_DOUBLE_LOCK_APPEAR, onTriangleDoubleLockAppear); if (m_onTriangleDoubleLockAppearShow){ return; }; m_onTriangleDoubleLockAppearShow = true; if (m_level.getMode() == PlayingField.MODE_LOADING){ m_tooltipEvents.push(new TooltipEventInfo(GameSettings.DOUBLE_LOCK_TOOLTIP, globalToLocal(_arg1.point))); } else { showTooltipWindow(GameSettings.DOUBLE_LOCK_TOOLTIP, globalToLocal(_arg1.point)); }; } private function onTriangleColorLockAppear(_arg1:TooltipEvent):void{ m_level.removeEventListener(PlayingField.ON_TRIANGLE_COLOR_LOCK_APPEAR, onTriangleColorLockAppear); if (m_onTriangleColorLockAppearShow){ return; }; m_onTriangleColorLockAppearShow = true; if (m_level.getMode() == PlayingField.MODE_LOADING){ m_tooltipEvents.push(new TooltipEventInfo(GameSettings.COLOR_LOCK_TOOLTIP, globalToLocal(_arg1.point))); } else { showTooltipWindow(GameSettings.COLOR_LOCK_TOOLTIP, globalToLocal(_arg1.point)); }; } private function onFigureChainAppear(_arg1:TooltipEvent):void{ m_level.removeEventListener(PlayingField.ON_FIGURE_CHAIN_APPEAR, onFigureChainAppear); if (m_onFigureChainAppearShow){ return; }; m_onFigureChainAppearShow = true; if (m_level.getMode() == PlayingField.MODE_LOADING){ m_tooltipEvents.push(new TooltipEventInfo(GameSettings.CHAIN_TOOLTIP, globalToLocal(_arg1.point))); } else { showTooltipWindow(GameSettings.CHAIN_TOOLTIP, globalToLocal(_arg1.point)); }; } private function onFigureDoubleChainAppear(_arg1:TooltipEvent):void{ m_level.removeEventListener(PlayingField.ON_FIGURE_DOUBLE_CHAIN_APPEAR, onFigureDoubleChainAppear); if (m_onFigureDoubleChainAppearShow){ return; }; m_onFigureDoubleChainAppearShow = true; if (m_level.getMode() == PlayingField.MODE_LOADING){ m_tooltipEvents.push(new TooltipEventInfo(GameSettings.DOUBLE_CHAIN_TOOLTIP, globalToLocal(_arg1.point))); } else { showTooltipWindow(GameSettings.DOUBLE_CHAIN_TOOLTIP, globalToLocal(_arg1.point)); }; } private function addBackgroundWindow(){ if (!m_menuBackgroundWindow){ m_menuBackgroundWindow = new MenuBackgroundWindow(new Point((bg.width / 2), (bg.height / 2))); m_menuBackgroundWindow.alpha = GameSettings.BACKGROUND_WINDOW_ALPHA; }; if (!contains(m_menuBackgroundWindow)){ addChild(m_menuBackgroundWindow); }; } private function removeBackgroundWindow(){ if (!m_menuBackgroundWindow){ return; }; if (contains(m_menuBackgroundWindow)){ removeChild(m_menuBackgroundWindow); }; m_menuBackgroundWindow = null; } private function onMenuButtonClick(_arg1:Event):void{ if (!m_menuButton.enabled){ return; }; if (gamePause){ return; }; if (Game.soundOn){ new Button1Sound().play(); }; addBackgroundWindow(); var _local2:GameMenuWindow = new GameMenuWindow(new Point((bg.width / 2), (bg.height / 2))); _local2.addEventListener(MyWindow.ON_CLOSE, onMenuWindowClose); addChild(_local2); gamePause = true; } private function onMenuWindowClose(_arg1:Event):void{ var _local2:GameMenuWindow = GameMenuWindow(_arg1.target); if (contains(_local2)){ removeChild(_local2); removeBackgroundWindow(); gamePause = false; switch (_local2.action){ case GameMenuWindow.ACTION_RESTART_LEVEL: m_shuffleButtonFilling.restore(); m_bombButtonFilling.restore(); m_lightningButtonFilling.restore(); loadLevel(m_level.levelNumber); break; case GameMenuWindow.ACTION_ABORT_GAME: endGame(); break; }; }; } private function freeLevel(){ if (stage){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); }; removeEventListener(MouseEvent.CLICK, OnBombMouseClick); m_tooltipEvents.length = 0; if (m_musicPlayer){ m_musicPlayer.stop(0, null); m_musicPlayer = null; }; if (m_timer){ m_timer.stop(); m_timer.removeEventListener(TimerEvent.TIMER, onLevelTimer); m_timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onLevelTimerComplete); m_timer = null; }; if (m_blinkTimer){ m_blinkTimer.removeEventListener(TimerEvent.TIMER, onBlinkTimer); m_blinkTimer = null; }; if (m_level){ m_level.removeEventListener(PlayingField.ON_BOMB_USE, onBombFinish); m_level.removeEventListener(PlayingField.LOAD_COMPLETE, onLevelLoadComplete); m_level.removeEventListener(PlayingField.LEVEL_COMPLETE, onLevelComplete); m_level.removeEventListener(PlayingField.ON_SCORE_CHANGE, onLevelScoreChange); m_level.removeEventListener(PlayingField.ON_BLACK_FIGURE_APPEAR, onBlackFigureAppear); m_level.removeEventListener(PlayingField.ON_TRIANGLE_LOCK_APPEAR, onTriangleLockAppear); m_level.removeEventListener(PlayingField.ON_TRIANGLE_DOUBLE_LOCK_APPEAR, onTriangleDoubleLockAppear); m_level.removeEventListener(PlayingField.ON_TRIANGLE_COLOR_LOCK_APPEAR, onTriangleColorLockAppear); m_level.removeEventListener(PlayingField.ON_FIGURE_CHAIN_APPEAR, onFigureChainAppear); m_level.removeEventListener(PlayingField.ON_FIGURE_DOUBLE_CHAIN_APPEAR, onFigureDoubleChainAppear); removeChild(m_level); m_level = null; }; m_levelTimer.gotoAndStop(1); m_levelTimer.visible = true; } private function loadLevel(_arg1:int){ freeLevel(); m_shuffleButtonFilling.percent = 0; m_levelTimer.gotoAndStop(1); m_levelTimer.visible = true; m_levelNumberText.text = String(_arg1); m_gameScoreText.text = String(m_gameScore); m_RealGameScore = m_gameScore; var _local2:LevelInfo = m_level_info_array[(_arg1 - 1)]; m_timer = new Timer(1000, _local2.time); m_timer.addEventListener(TimerEvent.TIMER, onLevelTimer); m_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onLevelTimerComplete); m_blinkTimer = new Timer(500); m_blinkTimer.addEventListener(TimerEvent.TIMER, onBlinkTimer); m_level = new PlayingField(_local2, _arg1); m_level.x = 63; m_level.y = 63; addChild(m_level); m_level.addEventListener(PlayingField.LOAD_COMPLETE, onLevelLoadComplete); m_level.addEventListener(PlayingField.LEVEL_COMPLETE, onLevelComplete); m_level.addEventListener(PlayingField.ON_SCORE_CHANGE, onLevelScoreChange); m_shuffleButtonFilling.visible = (_local2.bonus >= 1); m_bombButtonFilling.visible = (_local2.bonus >= 2); if (((m_bombButtonFilling.visible) && (!(m_bomb_tooltip_show)))){ m_bomb_tooltip_show = true; m_tooltipEvents.push(new TooltipEventInfo(GameSettings.BOMB_TOOLTIP, globalToLocal(new Point(m_bombButton.x, m_bombButton.y)))); }; m_lightningButtonFilling.visible = (_local2.bonus >= 3); if (((m_lightningButtonFilling.visible) && (!(m_lightning_tooltip_show)))){ m_lightning_tooltip_show = true; m_tooltipEvents.push(new TooltipEventInfo(GameSettings.LIGHTNING_TOOLTIP, globalToLocal(new Point(m_lightningButton.x, m_lightningButton.y)))); }; m_shuffleButton.mode = MyButton.MODE_DISABLED; m_bombButton.mode = MyButton.MODE_DISABLED; m_lightningButton.mode = MyButton.MODE_DISABLED; m_shuffleButtonFilling.save(); m_bombButtonFilling.save(); m_lightningButtonFilling.save(); m_level.addEventListener(PlayingField.ON_BLACK_FIGURE_APPEAR, onBlackFigureAppear); m_level.addEventListener(PlayingField.ON_TRIANGLE_LOCK_APPEAR, onTriangleLockAppear); m_level.addEventListener(PlayingField.ON_TRIANGLE_DOUBLE_LOCK_APPEAR, onTriangleDoubleLockAppear); m_level.addEventListener(PlayingField.ON_TRIANGLE_COLOR_LOCK_APPEAR, onTriangleColorLockAppear); m_level.addEventListener(PlayingField.ON_FIGURE_CHAIN_APPEAR, onFigureChainAppear); m_level.addEventListener(PlayingField.ON_FIGURE_DOUBLE_CHAIN_APPEAR, onFigureDoubleChainAppear); if (stage){ stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); }; } private function onLevelScoreChange(_arg1:ScoreEvent){ var _local2:FlyingNumber; var _local4:uint; var _local5:Star; var _local6:String; var _local7:Point; var _local8:Sound; var _local9:int; (m_gameScore + m_level.levelScore); m_gameScoreText.text = String((m_gameScore + m_level.levelScore)); m_RealGameScore = (m_gameScore + m_level.levelScore); trace("m_RealGameScore=", m_RealGameScore); _local2 = new FlyingNumber(m_level, String(_arg1.score), m_level.globalToLocal(_arg1.point), m_level.globalToLocal(new Point(_arg1.point.x, (_arg1.point.y - 500))), GameSettings.FLYING_NUMBER_SPEED); var _local3:uint; if ((((_arg1.combo > 1)) && (m_bombButtonFilling.visible))){ switch (_arg1.combo){ case 2: _local3 = GameSettings.BONUS_COMBO2_PERSENT; break; case 3: _local3 = GameSettings.BONUS_COMBO3_PERSENT; break; case 4: _local3 = GameSettings.BONUS_COMBO4_PERSENT; break; case 5: _local3 = GameSettings.BONUS_COMBO5_PERSENT; break; default: _local3 = GameSettings.BONUS_COMBO6_PERSENT; break; }; _local4 = 0; while (_local4 < _arg1.points.length) { _local7 = _arg1.points[_local4]; _local5 = new Star(this, globalToLocal(_local7), globalToLocal(m_bombButton.localToGlobal(new Point(0, 0))), GameSettings.STAR_SPEED, _local3); if (_local4 == 0){ _local5.addEventListener(BasicObject.MOVE_FINISH, onBombStarMoveFinish); }; _local4++; }; }; if ((((_arg1.clickCombo > 1)) && (m_lightningButtonFilling.visible))){ switch (_arg1.clickCombo){ case 2: _local3 = GameSettings.BONUS_CLICK_COMBO2_PERSENT; break; case 3: _local3 = GameSettings.BONUS_CLICK_COMBO3_PERSENT; break; case 4: _local3 = GameSettings.BONUS_CLICK_COMBO4_PERSENT; break; case 5: _local3 = GameSettings.BONUS_CLICK_COMBO5_PERSENT; break; default: _local3 = GameSettings.BONUS_CLICK_COMBO6_PERSENT; break; }; _local4 = 0; while (_local4 < _arg1.points.length) { _local7 = _arg1.points[_local4]; _local5 = new Star(this, globalToLocal(_local7), globalToLocal(m_lightningButton.localToGlobal(new Point(0, 0))), GameSettings.STAR_SPEED, _local3); if (_local4 == 0){ _local5.addEventListener(BasicObject.MOVE_FINISH, onLightningStarMoveFinish); }; _local4++; }; }; if ((_arg1.clickCombo * _arg1.combo) > 1){ if (_arg1.clickCombo > 1){ _local6 = (((GameSettings.CLICK_COMBO_TEXT + " ") + String(_arg1.clickCombo)) + "X"); }; if (_arg1.combo > 1){ _local6 = (((GameSettings.COMBO_TEXT + " ") + String(_arg1.combo)) + "X"); }; _local7 = new Point(_arg1.point.x, _arg1.point.y); _local7.offset(0, _local2.height); new FlyingNumber(m_level, _local6, m_level.globalToLocal(_local7), m_level.globalToLocal(new Point(_local7.x, (_local7.y - 500))), GameSettings.FLYING_NUMBER_SPEED); if (Game.soundOn){ _local9 = Math.max(_arg1.clickCombo, _arg1.combo); switch (_local9){ case 2: _local8 = new Burst2Sound(); break; case 3: _local8 = new Burst3Sound(); break; case 4: _local8 = new Burst4Sound(); break; default: _local8 = new Burst5Sound(); break; }; _local8.play(); }; }; } private function onBombStarMoveFinish(_arg1:Event){ var _local2:Star = (_arg1.target as Star); m_bombButtonFilling.percent = (m_bombButtonFilling.percent + _local2.percent); } private function onLightningStarMoveFinish(_arg1:Event){ var _local2:Star = (_arg1.target as Star); m_lightningButtonFilling.percent = (m_lightningButtonFilling.percent + _local2.percent); } private function isLevelLoadComplete():Boolean{ return (((m_level) && (!((m_level.getMode() == PlayingField.MODE_LOADING))))); } private function onLevelLoadComplete(_arg1:Event){ var _local2:TooltipEventInfo; m_timer.start(); m_musicPlayer = new MusicPlayer(new LevelSound()); if (musicOn){ m_musicPlayer.play(); }; onLightningButtonUpdate(null); onShuffleButtonUpdate(null); onBombButtonUpdate(null); if (m_tooltipEvents.length){ _local2 = m_tooltipEvents.shift(); showTooltipWindow(_local2.tooltip, _local2.point); }; } private function onCloseTimeOutWindow(_arg1:Event){ var _local2:TimeOutWindow = TimeOutWindow(_arg1.target); _local2.removeEventListener(MyWindow.ON_CLOSE, onCloseTimeOutWindow); removeChild(_local2); removeBackgroundWindow(); switch (_local2.action){ case TimeOutWindow.ACTION_PLAY: loadLevel(m_level.levelNumber); break; case TimeOutWindow.ACTION_MAIN_MENU: endGame(); break; }; } private function afterLevelMusicStopOnTimeOut(_arg1:Event){ hideTooltipWindow(true); addBackgroundWindow(); var _local2:TimeOutWindow = new TimeOutWindow(new Point((bg.width / 2), (bg.height / 2))); addChild(_local2); _local2.addEventListener(MyWindow.ON_CLOSE, onCloseTimeOutWindow); new SoundPlayer(new TimeOutSound()); } private function onLevelTimerComplete(_arg1:TimerEvent){ m_blinkTimer.stop(); if (m_timerSoundChannel){ m_timerSoundChannel.stop(); }; m_timer.stop(); m_timer.removeEventListener(TimerEvent.TIMER, onLevelTimer); m_timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onLevelTimerComplete); m_timer = null; if (m_musicPlayer.stop(GameSettings.STOP_MUSIC_DELAY, afterLevelMusicStopOnTimeOut)){ afterLevelMusicStopOnTimeOut(null); }; } private function onCloseGameCompleteWindow(_arg1:Event){ var _local2:GameCompleteWindow = GameCompleteWindow(_arg1.target); _local2.removeEventListener(MyWindow.ON_CLOSE, onCloseGameCompleteWindow); removeChild(_local2); removeBackgroundWindow(); endGame(); } private function afterLevelSoundStopOnLevelComplete(_arg1:Event){ hideTooltipWindow(true); addBackgroundWindow(); var _local2:LevelCompleteWindow = new LevelCompleteWindow(new Point((bg.width / 2), (bg.height / 2)), m_level.levelScore, m_timeScore); addChild(_local2); _local2.addEventListener(MyWindow.ON_CLOSE, onCloseLevelCompleteWindow); new SoundPlayer(new LevelCompleteSound()); } private function onLevelComplete(_arg1:Event){ m_timeScore = ((m_timer.repeatCount - m_timer.currentCount) * GameSettings.TIME_SCORE); m_timer.stop(); m_timer.removeEventListener(TimerEvent.TIMER, onLevelTimer); m_timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onLevelTimerComplete); m_timer = null; m_blinkTimer.stop(); if (m_timerSoundChannel){ m_timerSoundChannel.stop(); }; m_gameScore = (m_gameScore + (m_level.levelScore + m_timeScore)); if (m_musicPlayer.stop(GameSettings.STOP_MUSIC_DELAY, afterLevelSoundStopOnLevelComplete)){ afterLevelSoundStopOnLevelComplete(null); }; } private function onCloseLevelCompleteWindow(_arg1:Event){ var _local3:GameCompleteWindow; var _local2:LevelCompleteWindow = LevelCompleteWindow(_arg1.target); removeChild(_local2); if (m_level.levelNumber == m_level_info_array.length){ _local3 = new GameCompleteWindow(new Point((bg.width / 2), (bg.height / 2))); addChild(_local3); _local3.addEventListener(MyWindow.ON_CLOSE, onCloseGameCompleteWindow); if (Game.soundOn){ new Win1Sound().play(); }; } else { removeBackgroundWindow(); loadLevel((m_level.levelNumber + 1)); }; } private function showTooltipWindow(_arg1:uint, _arg2:Point){ if (((m_tooltipWindow) && (contains(m_tooltipWindow)))){ m_tooltipEvents.push(new TooltipEventInfo(_arg1, _arg2)); return; }; m_tooltipWindow = new TooltipWindow(new Point((bg.width / 2), (bg.height / 2)), _arg2, _arg1, new Point(0, 0), new Point(bg.width, bg.height)); addChild(m_tooltipWindow); if (Game.soundOn){ new HintSound().play(); }; m_tooltipWindow.addEventListener(MyWindow.ON_CLOSE, onTooltipWindowTimerComplete); gamePause = true; } private function hideTooltipWindow(_arg1:Boolean=false){ var _local2:TooltipEventInfo; if (((m_tooltipWindow) && (contains(m_tooltipWindow)))){ m_tooltipWindowTimer = null; removeChild(m_tooltipWindow); m_tooltipWindow = null; if (((m_tooltipEvents.length) && (!(_arg1)))){ _local2 = m_tooltipEvents.shift(); showTooltipWindow(_local2.tooltip, _local2.point); } else { m_tooltipEvents.length = 0; gamePause = false; }; }; } private function onTooltipWindowTimerComplete(_arg1:Event){ hideTooltipWindow(); } private function onLevelTimer(_arg1:TimerEvent){ var _local2:uint = ((m_timer.currentCount * m_levelTimer.totalFrames) / m_timer.repeatCount); m_levelTimer.gotoAndStop(_local2); if (m_timer.currentCount >= (m_timer.repeatCount / 2)){ if (!m_timer_tooltip_show){ m_timer_tooltip_show = true; showTooltipWindow(GameSettings.TIMER_TOOLTIP, new Point(bg.width, (bg.height / 2))); }; }; if (m_shuffleButtonFilling.visible){ m_shuffleButtonFilling.percent = (m_shuffleButtonFilling.percent + (100 / GameSettings.SHUFFLE_TIME_COUNT)); }; if (((m_timer.currentCount * 100) / m_timer.repeatCount) >= (100 - GameSettings.LITLE_TIME)){ m_timerSound = new RunningTimeSound(); if (Game.soundOn){ m_timerSoundChannel = m_timerSound.play(); }; m_blinkTimer.start(); }; } private function onBlinkTimer(_arg1:TimerEvent){ m_levelTimer.visible = !(m_levelTimer.visible); } private function onShuffleButtonClick(_arg1:Event){ if (((m_level.isPlayerMove()) || (!((m_level.getMode() == PlayingField.MODE_NORMAL))))){ return; }; if (Game.soundOn){ new Shuffle1Sound().play(); }; m_level.shuffle(); m_shuffleButtonFilling.percent = 0; } private function onBombButtonClick(_arg1:Event){ if (((m_level.isPlayerMove()) || (!((m_level.getMode() == PlayingField.MODE_NORMAL))))){ return; }; m_level.bomb(); if (m_level.getMode() == PlayingField.MODE_BOMB){ if (Game.soundOn){ new BombaSound().play(); }; m_cursor.mode = Cursor.MODE_BOMB; m_level.addEventListener(PlayingField.ON_BOMB_USE, onBombFinish); addEventListener(MouseEvent.CLICK, OnBombMouseClick); } else { throw (new Error("После нажатия на бонус бомба поле не перешло в режим бомбы")); }; } private function OnBombMouseClick(_arg1:MouseEvent){ if (m_level.getMode() != PlayingField.MODE_BOMB){ removeEventListener(MouseEvent.CLICK, OnBombMouseClick); return; }; if (!m_level.haveTriangleByPoint(new Point(_arg1.stageX, _arg1.stageY))){ m_level.cancelBomb(); if (m_level.getMode() == PlayingField.MODE_NORMAL){ removeEventListener(MouseEvent.CLICK, OnBombMouseClick); m_level.removeEventListener(PlayingField.ON_BOMB_USE, onBombFinish); m_cursor.mode = Cursor.MODE_NORMAL; } else { throw (new Error("После отмены бомбы поле не перешло в нормальный режим")); }; }; } private function onBombFinish(_arg1:Event){ removeEventListener(MouseEvent.CLICK, OnBombMouseClick); m_level.removeEventListener(PlayingField.ON_BOMB_USE, onBombFinish); if (m_level.getMode() == PlayingField.MODE_BOMB){ if (m_bombButtonFilling.percent >= 100){ m_bombButtonFilling.percent = (m_bombButtonFilling.percent - 100); m_cursor.mode = Cursor.MODE_NORMAL; } else { throw (new Error("Бомба ещё не заполнена")); }; } else { throw (new Error("После применения бомбы поле не в режиме цветной бомбы")); }; } private function onLightningTimerComplete(_arg1:TimerEvent){ m_level.lightnings(m_lightningPoints); m_lightningTimer = null; m_lightningPoints = null; m_lightningButtonFilling.percent = (m_lightningButtonFilling.percent - 100); } private function onLightningTimer(_arg1:TimerEvent){ var _local2:Point = m_lightningPoints[(m_lightningTimer.currentCount - 1)]; var _local3:MyLightning = new MyLightning(new Point(m_lightningButton.x, m_lightningButton.y), _local2); addChild(_local3); m_level.lightning(_local2); } private function onLightningButtonClick(_arg1:Event){ if (((m_level.isPlayerMove()) || (!((m_level.getMode() == PlayingField.MODE_NORMAL))))){ return; }; if (Game.soundOn){ new Lightning1Sound().play(); }; m_lightningPoints = m_level.getRandomPoints(); m_lightningTimer = new Timer(GameSettings.LIGHTNING_DELAY, m_lightningPoints.length); m_lightningTimer.addEventListener(TimerEvent.TIMER, onLightningTimer); m_lightningTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onLightningTimerComplete); m_lightningTimer.start(); } private function set soundOn(_arg1:Boolean){ var _local2:Boolean; if (m_soundOn == _arg1){ return; }; m_soundOn = _arg1; if (!m_soundOn){ _local2 = ((m_musicPlayer) && (m_musicPlayer.soundChannel)); m_musicPlayer.pause(); SoundMixer.stopAll(); if (((m_musicOn) && (_local2))){ m_musicPlayer.play(); }; }; } private function set musicOn(_arg1:Boolean){ if (m_musicOn == _arg1){ return; }; m_musicOn = _arg1; if (((!(m_musicOn)) && (m_musicPlayer))){ m_musicPlayer.pause(); }; if (((m_musicOn) && (m_musicPlayer))){ m_musicPlayer.play(); }; } private function set gamePause(_arg1:Boolean):void{ if (m_gamePause == _arg1){ return; }; m_gamePause = _arg1; if (m_gamePause){ if (m_level){ m_level.gamePause(); }; if (m_timer){ m_timer.stop(); }; setButtonEnabled(false); } else { if (m_level){ m_level.gameContinue(); }; if (m_timer){ m_timer.start(); }; setButtonEnabled(true); }; } public static function get gamePause():Boolean{ return (m_gamePause); } public static function get soundOn():Boolean{ return (m_soundOn); } public static function get musicOn():Boolean{ return (m_musicOn); } public static function get getScore():uint{ return (m_RealGameScore); } } }//package mainSection 57//GameCompleteWindow (main.GameCompleteWindow) package main { import flash.events.*; import flash.geom.*; import flash.text.*; import flash.display.*; import flash.net.*; public class GameCompleteWindow extends MyWindow { public var m_OKBtn:SimpleButton; public var m_submitScoreButton:SimpleButton; public var txtName:TextField; public var m_submitScoreText:TextField; public var m_downloadBtn:SimpleButton; public function GameCompleteWindow(_arg1:Point){ super(_arg1, false); m_OKBtn.addEventListener(MouseEvent.CLICK, onOkBtnClick); m_downloadBtn.addEventListener(MouseEvent.CLICK, onDownloadBtnClick); m_submitScoreButton.addEventListener(MouseEvent.CLICK, onSubmitBtnClick); m_submitScoreText.text = String(Game.getScore); } private function onOkBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; dispatchEvent(new Event(MyWindow.ON_CLOSE)); } private function onDownloadBtnClick(_arg1:Event):void{ var event = _arg1; new SoundPlayer(new Button1Sound()); var url:String = GameSettings.DOWNLOAD_URL; var request:URLRequest = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } private function onSubmitBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; navigateToURL(new URLRequest(((((("http://www.playonlinepuzzles.com/score.php?&gameid=angkorquest&score=" + Game.getScore) + "&name=") + this.txtName.text) + "&key=") + (((Game.getScore * Game.getScore) + (5 * Game.getScore)) + 34).toString())), "_blank"); m_submitScoreButton.removeEventListener(MouseEvent.CLICK, onSubmitBtnClick); } } }//package mainSection 58//GameMenuWindow (main.GameMenuWindow) package main { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.net.*; public class GameMenuWindow extends MyWindow { public var m_abortGameBtn:SimpleButton; public var m_continueBtn:SimpleButton; public var m_url1Btn:SimpleButton; public var m_restartLevelBtn:SimpleButton; public var m_helpBtn:SimpleButton; private var m_action:uint;// = 0 public static const ACTION_NONE = 0; public static const ACTION_CONTINUE = 1; public static const ACTION_RESTART_LEVEL = 2; public static const ACTION_ABORT_GAME = 4; public function GameMenuWindow(_arg1:Point){ super(_arg1, false); m_continueBtn.addEventListener(MouseEvent.CLICK, onContinueButtonClick); m_restartLevelBtn.addEventListener(MouseEvent.CLICK, onLevelRestartButtonClick); m_helpBtn.addEventListener(MouseEvent.CLICK, onHelpButtonClick); m_abortGameBtn.addEventListener(MouseEvent.CLICK, onAbortGameButtonClick); m_url1Btn.addEventListener(MouseEvent.CLICK, onURL1BtnClick); } public function get action():uint{ return (m_action); } private function onLevelRestartButtonClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; var _local2:SureWindow = new SureWindow(new Point(0, 0), GameSettings.SURE_RESTART_LEVEL); _local2.addEventListener(MyWindow.ON_CLOSE, onSureWindowClose); addChild(_local2); } private function onSureWindowClose(_arg1:Event){ var _local2:SureWindow = SureWindow(_arg1.target); _local2.removeEventListener(MyWindow.ON_CLOSE, onSureWindowClose); removeChild(_local2); if (_local2.action == SureWindow.ACTION_OK){ m_action = ACTION_RESTART_LEVEL; dispatchEvent(new Event(MyWindow.ON_CLOSE)); }; } private function onContinueButtonClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_action = ACTION_CONTINUE; dispatchEvent(new Event(MyWindow.ON_CLOSE)); } private function onHelpButtonClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; var _local2:* = new HelpWindow(new Point(0, 0)); _local2.addEventListener(MyWindow.ON_CLOSE, onHelpClose); addChild(_local2); } private function onHelpClose(_arg1:Event):void{ var _local2:* = HelpWindow(_arg1.target); _local2.removeEventListener(MyWindow.ON_CLOSE, onHelpClose); removeChild(_local2); } private function onAbortGameButtonClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_action = ACTION_ABORT_GAME; var _local2:SureWindow = new SureWindow(new Point(0, 0), GameSettings.SURE_ABORT_GAME); _local2.addEventListener(MyWindow.ON_CLOSE, onSureWindowClose2); addChild(_local2); } private function onURL1BtnClick(_arg1:Event):void{ var event = _arg1; if (Game.soundOn){ new Button1Sound().play(); }; var url:String = GameSettings.DOWNLOAD_URL; var request:URLRequest = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } private function onSureWindowClose2(_arg1:Event){ var _local2:SureWindow = SureWindow(_arg1.target); _local2.removeEventListener(MyWindow.ON_CLOSE, onSureWindowClose2); removeChild(_local2); if (_local2.action == SureWindow.ACTION_OK){ m_action = ACTION_ABORT_GAME; dispatchEvent(new Event(MyWindow.ON_CLOSE)); }; } } }//package mainSection 59//GameSettings (main.GameSettings) package main { public class GameSettings { public static const FrameRate = 24; public static const SHUFFLE_SPEED = 10; public static const DROP_SPEED = 17; public static const TREMBLE_SPEED = 1; public static const DROP_FIGURE_DELAY = 20; public static const DROP_TRIANGLE_DELAY = 20; public static const DROP_OFFSETX = 0; public static const DROP_OFFSETY = -40; public static const LITLE_TIME = 10; public static const FALL_SPEED = 17; public static const ROTATION_SPEED = 18; public static const PULL_OFFSET = (Triangle.triWidth / 8); public static const TRIANGLE_ROW_COUNT = 11; public static const TRIANGLE_COL_COUNT = 8; public static const FIGURE_RADIUS = 17.5; public static const MaxBonusFillPercent = 300; public static const MATCH3 = 30; public static const MATCH4 = 50; public static const MATCH5 = 70; public static const MATCH6 = 100; public static const MATCH7 = 100; public static const MATCH8 = 100; public static const LIGHTNING_DELAY = 250; public static const FLYING_NUMBER_SPEED = 4; public static const FLYING_NUMBER_FLY = 500; public static const FLYING_NUMBER_ALPHA = 500; public static const CLICK_COMBO_TEXT = "Click-combo"; public static const COMBO_TEXT = "Combo"; public static const LEVEL_NUMBER_TEXT = "Level"; public static const BONUS_MATCH4_COUNT = 7; public static const SHUFFLE_TIME_COUNT = 90; public static const BACKGROUND_WINDOW_ALPHA = 0; public static const TIP_POINTER_START = 76; public static const TIP_WINDOW_START = 100; public static const BONUS_MATCH6_PERSENT = 25; public static const BONUS_MATCH5_PERSENT = 15; public static const BONUS_COMBO2_PERSENT = 10; public static const BONUS_COMBO3_PERSENT = 15; public static const BONUS_COMBO4_PERSENT = 20; public static const BONUS_COMBO5_PERSENT = 25; public static const BONUS_COMBO6_PERSENT = 30; public static const BONUS_CLICK_COMBO2_PERSENT = 10; public static const BONUS_CLICK_COMBO3_PERSENT = 15; public static const BONUS_CLICK_COMBO4_PERSENT = 20; public static const BONUS_CLICK_COMBO5_PERSENT = 25; public static const BONUS_CLICK_COMBO6_PERSENT = 30; public static const TOOLTIP_DELAY = 3000; public static const TIMER_TOOLTIP = 1; public static const MATCH4_TOOLTIP = 2; public static const MATCH5_TOOLTIP = 3; public static const CLICK_COMBO_TOOLTIP = 4; public static const BLACK_FIGURE_TOOLTIP = 5; public static const LOCK_TOOLTIP = 6; public static const DOUBLE_LOCK_TOOLTIP = 7; public static const COLOR_LOCK_TOOLTIP = 8; public static const CHAIN_TOOLTIP = 9; public static const DOUBLE_CHAIN_TOOLTIP = 10; public static const SHUFFLE_TOOLTIP = 11; public static const BOMB_TOOLTIP = 12; public static const LIGHTNING_TOOLTIP = 13; public static const COLOR_BOMB_TOOLTIP = 14; public static const CLEANER_TOOLTIP = 15; public static const CLOCK_TOOLTIP = 16; public static const BOMB_FULL_TOOLTIP = 17; public static const LIGHTNING_FULL_TOOLTIP = 18; public static const DOWNLOAD_URL = "http://www.playonlinepuzzles.com/?from=AngkorQuest"; public static const MORE_GAME_URL = "http://www.playonlinepuzzles.com/?from=AngkorQuest"; public static const SURE_ABORT_GAME = "Are you sure you want to abort?"; public static const SURE_RESTART_LEVEL = "Are you sure you wish to restart the level?"; public static const SURE_EXIT = "Are you sure you want to exit the game?"; public static const SURE_LOAD_GAME = "The saved game will be deleted. Are you sure?"; public static const SURE_DELETE_PROFILE = "Are you sure you want to delete the profile?"; public static const CONFIRM_PROFILE_EXIST = "Such profile already exists. Change the name."; public static const CLOCK_VISIBLE_TIME = 20000; public static const CLOCK_ALPHA_CHANGE_TIME = 3000; public static const CLOCK_TIMER_DELAY = 20000; public static const CLOCK_TIMER_DELAY_PERCENT = 40; public static const STAR_SPEED = 15; public static const CLOCK_TIMER_ADD = 60; public static const PROFILE_DIR = "Saves\"; public static const PROFILE_LIST_FILE_NAME = "Profiles.txt"; public static const FILE_LIST_FILE_NAME = "Files.txt"; public static const CURR_PROFILE_FILE_NAME = "CurrProfile.txt"; public static const LEVEL_BUTTON_COUNT = 5; public static const LEVEL_BUTTON_LEVEL_COUNT = 2; public static const OPTIONS_FILENAME = "Options.txt"; public static const PlayingFieldLaphaChanheDelay = 1000; public static const GameBackGroundAlphaDelay = 3000; public static const MAX_PROFILE_LENGTH = 12; public static const PLAY_BTN_LABEL = "Continue Saved Game"; public static const MAIN_MENU_BTN_LABEL = "Main menu"; public static const TIME_SCORE = 10; public static const STOP_MUSIC_DELAY = 300; } }//package mainSection 60//HelpTooltipWindow (main.HelpTooltipWindow) package main { import flash.geom.*; import flash.display.*; public class HelpTooltipWindow extends MyWindow { public var m_help:MovieClip; public function HelpTooltipWindow(_arg1:Point){ super(_arg1); m_help.gotoAndStop(1); } } }//package mainSection 61//HelpWindow (main.HelpWindow) package main { import flash.events.*; import flash.geom.*; import flash.display.*; public class HelpWindow extends MyWindow { public var m_help:MovieClip; public var m_OKBtn:SimpleButton; public var m_backBtn:SimpleButton; public var m_nextBtn:SimpleButton; public function HelpWindow(_arg1:Point){ super(_arg1, false); m_help.gotoAndStop(1); updateButtons(); m_backBtn.addEventListener(MouseEvent.CLICK, onBackBtnClick); m_nextBtn.addEventListener(MouseEvent.CLICK, onNextBtnClick); m_OKBtn.addEventListener(MouseEvent.CLICK, onOkBtnClick); } private function onOkBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; dispatchEvent(new Event(MyWindow.ON_CLOSE)); } private function onBackBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_help.gotoAndStop(Math.max(1, (m_help.currentFrame - 1))); updateButtons(); } private function onNextBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_help.gotoAndStop(Math.min(m_help.totalFrames, (m_help.currentFrame + 1))); updateButtons(); } private function updateButtons(){ m_backBtn.enabled = (m_help.currentFrame > 1); m_nextBtn.enabled = (m_help.currentFrame < m_help.totalFrames); } } }//package mainSection 62//HintSound (main.HintSound) package main { import flash.media.*; public dynamic class HintSound extends Sound { } }//package mainSection 63//LevelBegin1Sound (main.LevelBegin1Sound) package main { import flash.media.*; public dynamic class LevelBegin1Sound extends Sound { } }//package mainSection 64//LevelBegin2Sound (main.LevelBegin2Sound) package main { import flash.media.*; public dynamic class LevelBegin2Sound extends Sound { } }//package mainSection 65//LevelCompleteSound (main.LevelCompleteSound) package main { import flash.media.*; public dynamic class LevelCompleteSound extends Sound { } }//package mainSection 66//LevelCompleteWindow (main.LevelCompleteWindow) package main { import flash.events.*; import flash.geom.*; import flash.text.*; import flash.display.*; import flash.net.*; public class LevelCompleteWindow extends MyWindow { public var m_totalScoreText:TextField; public var m_OKBtn:SimpleButton; public var m_timeScoreText:TextField; public var m_levelScoreText:TextField; public var m_downloadBtn:SimpleButton; public function LevelCompleteWindow(_arg1:Point, _arg2:uint, _arg3:uint){ super(_arg1, false); m_levelScoreText.text = String(_arg2); m_timeScoreText.text = String(_arg3); m_totalScoreText.text = String((_arg2 + _arg3)); m_OKBtn.addEventListener(MouseEvent.CLICK, onOKBtnClick); m_downloadBtn.addEventListener(MouseEvent.CLICK, onDownloadBtnClick); } private function onOKBtnClick(_arg1:Event):void{ new SoundPlayer(new Button1Sound()); dispatchEvent(new Event(MyWindow.ON_CLOSE)); } private function onDownloadBtnClick(_arg1:Event):void{ var event = _arg1; new SoundPlayer(new Button1Sound()); var url:String = GameSettings.DOWNLOAD_URL; var request:URLRequest = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } } }//package mainSection 67//LevelInfo (main.LevelInfo) package main { public class LevelInfo { protected var m_tri_modes:Array; protected var m_figureInfoSet:Array; protected var m_time:uint; protected var m_blackFigurePercent:uint; protected var m_figureColorCount:uint; protected var m_bonus:uint; public function LevelInfo(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint=1){ m_time = _arg3; if (_arg4 > 20){ throw (new Error("% чёрных фигур должен быть от 0 до 20%")); }; m_blackFigurePercent = _arg4; if ((((_arg5 < 5)) || ((_arg5 > 7)))){ throw (new Error("Количество цветов фигур должно быть от 5 до 7")); }; m_figureColorCount = _arg5; if ((((_arg6 < 1)) || ((_arg6 > 5)))){ throw (new Error("Кол-во бонусов должно быть от 1 до 5")); }; m_bonus = _arg6; m_tri_modes = _arg1; if (_arg1.length != GameSettings.TRIANGLE_ROW_COUNT){ _arg1.length = GameSettings.TRIANGLE_ROW_COUNT; }; var _local7:int; while (_local7 < m_tri_modes.length) { if (!(m_tri_modes[_local7] is Array)){ m_tri_modes[_local7] = new Array(GameSettings.TRIANGLE_COL_COUNT); }; if (m_tri_modes[_local7].length != GameSettings.TRIANGLE_COL_COUNT){ m_tri_modes[_local7].length = GameSettings.TRIANGLE_COL_COUNT; }; _local7++; }; m_figureInfoSet = _arg2; } public function get bonus():uint{ return (m_bonus); } public function get figureColorCount():uint{ return (m_figureColorCount); } public function get blackFigurePercent():uint{ return (m_blackFigurePercent); } public function get time():uint{ return (m_time); } public function getFigureInfo(_arg1:int):FigureInfo{ var _local2:FigureInfo; for each (_local2 in m_figureInfoSet) { if (_local2.index == _arg1){ return (_local2); }; }; return (new FigureInfo(_arg1, Chains.MODE_NO_CHAIN)); } public function getTriMode(_arg1:int, _arg2:int):int{ return (m_tri_modes[_arg1][_arg2]); } } }//package mainSection 68//LevelNumber (main.LevelNumber) package main { import flash.geom.*; import flash.text.*; public class LevelNumber extends BasicObject { public var m_text:TextField; public function LevelNumber(_arg1:uint, _arg2:Point){ m_text.text = ((GameSettings.LEVEL_NUMBER_TEXT + " ") + String(_arg1)); m_text.selectable = false; x = _arg2.x; y = _arg2.y; } } }//package mainSection 69//LevelSound (main.LevelSound) package main { import flash.media.*; public dynamic class LevelSound extends Sound { } }//package mainSection 70//Lightning (main.Lightning) package main { import flash.display.*; public dynamic class Lightning extends MovieClip { } }//package mainSection 71//Lightning1Sound (main.Lightning1Sound) package main { import flash.media.*; public dynamic class Lightning1Sound extends Sound { } }//package mainSection 72//LightningButton (main.LightningButton) package main { import flash.display.*; public class LightningButton extends MyButton { override protected function createAnimation(_arg1:int):MovieClip{ switch (_arg1){ case MyButton.MODE_NORMAL: return (new LightningMovieNormal()); case MyButton.MODE_OVER: return (new LightningMovieOver()); case MyButton.MODE_PRESSED: return (new LightningMoviePressed()); case MyButton.MODE_DISABLED: return (new LightningMovieDisabled()); }; return (null); } } }//package mainSection 73//LightningEnd (main.LightningEnd) package main { import flash.display.*; public dynamic class LightningEnd extends MovieClip { } }//package mainSection 74//LightningMovieDisabled (main.LightningMovieDisabled) package main { import flash.display.*; public dynamic class LightningMovieDisabled extends MovieClip { } }//package mainSection 75//LightningMovieNormal (main.LightningMovieNormal) package main { import flash.display.*; public dynamic class LightningMovieNormal extends MovieClip { } }//package mainSection 76//LightningMovieOver (main.LightningMovieOver) package main { import flash.display.*; public dynamic class LightningMovieOver extends MovieClip { } }//package mainSection 77//LightningMoviePressed (main.LightningMoviePressed) package main { import flash.display.*; public dynamic class LightningMoviePressed extends MovieClip { } }//package mainSection 78//Lock1 (main.Lock1) package main { import flash.display.*; public dynamic class Lock1 extends MovieClip { } }//package mainSection 79//Lock2 (main.Lock2) package main { import flash.display.*; public dynamic class Lock2 extends MovieClip { } }//package mainSection 80//Lock3 (main.Lock3) package main { import flash.display.*; public dynamic class Lock3 extends MovieClip { } }//package mainSection 81//Lock4 (main.Lock4) package main { import flash.display.*; public dynamic class Lock4 extends MovieClip { } }//package mainSection 82//Lock5 (main.Lock5) package main { import flash.display.*; public dynamic class Lock5 extends MovieClip { } }//package mainSection 83//Lock6 (main.Lock6) package main { import flash.display.*; public dynamic class Lock6 extends MovieClip { } }//package mainSection 84//Lock7 (main.Lock7) package main { import flash.display.*; public dynamic class Lock7 extends MovieClip { } }//package mainSection 85//LockB1 (main.LockB1) package main { import flash.display.*; public dynamic class LockB1 extends MovieClip { } }//package mainSection 86//LockB2 (main.LockB2) package main { import flash.display.*; public dynamic class LockB2 extends MovieClip { } }//package mainSection 87//Locks (main.Locks) package main { import flash.display.*; public class Locks extends ObjectManager { public static const MODE_NO_LOCK = 1; public static const MODE_LOCK = 2; public static const MODE_DOUBLE_LOCK = 3; public static const MODE_COLOR_LOCK_1 = 7; public static const MODE_COLOR_LOCK_2 = 8; public static const MODE_COLOR_LOCK_3 = 9; public static const MODE_COLOR_LOCK_4 = 10; public static const MODE_COLOR_LOCK_5 = 11; public static const MODE_COLOR_LOCK_6 = 12; public static const MODE_COLOR_LOCK_7 = 13; override protected function createAnimation(_arg1:int):MovieClip{ switch (_arg1){ case MODE_LOCK: return (new LockB1()); case MODE_DOUBLE_LOCK: return (new LockB2()); case MODE_COLOR_LOCK_1: return (new Lock1()); case MODE_COLOR_LOCK_2: return (new Lock2()); case MODE_COLOR_LOCK_3: return (new Lock3()); case MODE_COLOR_LOCK_4: return (new Lock4()); case MODE_COLOR_LOCK_5: return (new Lock5()); case MODE_COLOR_LOCK_6: return (new Lock6()); case MODE_COLOR_LOCK_7: return (new Lock7()); }; return (null); } } }//package mainSection 88//MainClass (main.MainClass) package main { import flash.events.*; import flash.display.*; public class MainClass extends MovieClip { public var m_preloaderMov:preloader; public function MainClass(){ gotoAndStop(1); m_preloaderMov.addEventListener(preloader.LOAD_COMPLETE, doOnLoadComplete); stage.scaleMode = StageScaleMode.NO_SCALE; } private function doOnLoadComplete(_arg1:Event){ m_preloaderMov.removeEventListener(preloader.LOAD_COMPLETE, doOnLoadComplete); gotoAndStop(5); } } }//package mainSection 89//MainMenuWindow (main.MainMenuWindow) package main { import flash.media.*; import flash.events.*; import flash.geom.*; import flash.display.*; import flash.net.*; public class MainMenuWindow extends MovieClip { public var m_newGameBtn:SimpleButton; public var m_url2Btn:SimpleButton; public var m_url2Btn_2:SimpleButton; public var m_helpBtn:SimpleButton; private var m_cursor:Cursor; private var m_menuSound:MenuSound; private var m_menuSoundChannel:SoundChannel; public function MainMenuWindow(_arg1:Cursor){ m_menuSound = new MenuSound(); super(); m_cursor = _arg1; m_newGameBtn.addEventListener(MouseEvent.CLICK, onNewGameBtnClick); m_helpBtn.addEventListener(MouseEvent.CLICK, onHelpBtnClick); m_url2Btn.addEventListener(MouseEvent.CLICK, onURL2BtnClick); m_url2Btn_2.addEventListener(MouseEvent.CLICK, onURL2BtnClick); if (Game.musicOn){ m_menuSoundChannel = m_menuSound.play(0, 1000000); }; } private function onNewGameBtnClick(_arg1:Event):void{ var _local2:Game; var _local3:Point; m_menuSoundChannel.stop(); if (Game.soundOn){ new Button1Sound().play(); }; _local2 = new Game(m_cursor); _local2.addEventListener(Game.GAME_END, onEndGame); _local3 = globalToLocal(new Point(0, 0)); _local2.x = _local3.x; _local2.y = _local3.y; addChild(_local2); } private function onEndGame(_arg1:Event):void{ var _local2:Game = Game(_arg1.target); _local2.removeEventListener(Game.GAME_END, onEndGame); removeChild(_local2); if (Game.musicOn){ m_menuSoundChannel = m_menuSound.play(0, 1000000); }; } private function onHelpClose(_arg1:Event):void{ var _local2:* = HelpWindow(_arg1.target); _local2.removeEventListener(MyWindow.ON_CLOSE, onHelpClose); removeChild(_local2); } private function onHelpBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; var _local2:* = new HelpWindow(new Point(0, 0)); _local2.addEventListener(MyWindow.ON_CLOSE, onHelpClose); addChild(_local2); } private function onURL1BtnClick(_arg1:Event):void{ var event = _arg1; if (Game.soundOn){ new Button1Sound().play(); }; var url:String = GameSettings.DOWNLOAD_URL; var request:URLRequest = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } private function onURL2BtnClick(_arg1:Event):void{ var event = _arg1; if (Game.soundOn){ new Button1Sound().play(); }; var url:String = GameSettings.MORE_GAME_URL; var request:URLRequest = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } } }//package mainSection 90//MenuBackgroundWindow (main.MenuBackgroundWindow) package main { import flash.geom.*; public class MenuBackgroundWindow extends MyWindow { public function MenuBackgroundWindow(_arg1:Point){ super(_arg1, false); } } }//package mainSection 91//MenuSound (main.MenuSound) package main { import flash.media.*; public dynamic class MenuSound extends Sound { } }//package mainSection 92//MoveEvent (main.MoveEvent) package main { import flash.events.*; import flash.geom.*; public class MoveEvent extends Event { private var m_startPoint:Point; private var m_stopPoint:Point; private var m_speed:Number; public function MoveEvent(_arg1:String, _arg2:Point, _arg3:Point, _arg4:Number, _arg5:Boolean=false, _arg6:Boolean=false){ super(_arg1, _arg5, _arg6); m_startPoint = new Point(_arg2.x, _arg2.y); m_stopPoint = new Point(_arg3.x, _arg3.y); m_speed = _arg4; } public function get startPoint():Point{ return (m_startPoint); } public function get speed():Number{ return (m_speed); } public function get stopPoint():Point{ return (m_stopPoint); } } }//package mainSection 93//MusicPlayer (main.MusicPlayer) package main { import flash.media.*; import flash.events.*; import flash.utils.*; public class MusicPlayer { private var m_soundChannel:SoundChannel;// = null private var m_soundTransform:SoundTransform;// = null private var m_soundChannelPosition:Number;// = 0 private var m_sound:Sound; private var m_stopTimer:Timer; private var m_dec_volume:Number; public function MusicPlayer(_arg1:Sound){ m_soundTransform = new SoundTransform(1); m_sound = _arg1; } public function play(){ m_soundChannel = m_sound.play(m_soundChannelPosition); m_soundChannel.soundTransform = m_soundTransform; m_soundChannel.addEventListener(Event.SOUND_COMPLETE, playSoundComplete); } private function playSoundComplete(_arg1:Event){ m_soundChannel.removeEventListener(Event.SOUND_COMPLETE, playSoundComplete); m_soundChannel = m_sound.play(); m_soundChannel.soundTransform = m_soundTransform; m_soundChannel.addEventListener(Event.SOUND_COMPLETE, playSoundComplete); } public function pause(){ if (m_soundChannel){ m_soundChannelPosition = m_soundChannel.position; m_soundChannel.stop(); m_soundChannel = null; } else { m_soundChannelPosition = 0; }; } public function get soundChannel():SoundChannel{ return (m_soundChannel); } private function stopTimerHandler(_arg1:Event){ m_soundTransform.volume = (m_soundTransform.volume - m_dec_volume); if (m_soundChannel){ m_soundChannel.soundTransform = m_soundTransform; }; } private function stopTimerComplete(_arg1:Event){ m_stopTimer.removeEventListener(TimerEvent.TIMER, stopTimerHandler); m_stopTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, stopTimerComplete); m_stopTimer = null; if (m_soundChannel){ m_soundChannel.stop(); }; m_soundChannel = null; m_soundTransform.volume = 1; } public function stop(_arg1:uint, _arg2:Function):Boolean{ if (!m_soundChannel){ return (true); }; if (_arg1 == 0){ m_soundChannel.stop(); m_soundChannel = null; return (true); }; m_stopTimer = new Timer(100, (_arg1 / 100)); m_dec_volume = (m_soundTransform.volume / m_stopTimer.repeatCount); m_stopTimer.addEventListener(TimerEvent.TIMER, stopTimerHandler); m_stopTimer.addEventListener(TimerEvent.TIMER_COMPLETE, stopTimerComplete); if (_arg2 != null){ m_stopTimer.addEventListener(TimerEvent.TIMER_COMPLETE, _arg2); }; m_stopTimer.start(); return (false); } } }//package mainSection 94//MyButton (main.MyButton) package main { import flash.events.*; public class MyButton extends ObjectManager2 { private var m_i:int;// = 0 public static const BUTTON_CLICK = "buttonClick"; public static const DISABLED_BUTTON_CLICK = "disabledButtonClick"; public static const MODE_NORMAL = 1; public static const MODE_OVER = 2; public static const MODE_PRESSED = 3; public static const MODE_DISABLED = 4; public function MyButton(){ gotoAndStop(2); mode = MODE_NORMAL; addEventListener(MouseEvent.MOUSE_MOVE, OnMouseMove); addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut); addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown); addEventListener(MouseEvent.MOUSE_UP, OnMouseUp); } private function OnMouseMove(_arg1:MouseEvent):void{ if (mode == MODE_DISABLED){ return; }; mode = MODE_OVER; } private function OnMouseOut(_arg1:MouseEvent):void{ if (mode == MODE_DISABLED){ return; }; mode = MODE_NORMAL; trace(("out" + m_i++)); } private function OnMouseDown(_arg1:MouseEvent):void{ if (mode == MODE_DISABLED){ return; }; mode = MODE_PRESSED; } private function OnMouseUp(_arg1:MouseEvent):void{ if (mode == MODE_DISABLED){ dispatchEvent(new Event(DISABLED_BUTTON_CLICK)); } else { mode = MODE_OVER; dispatchEvent(new Event(BUTTON_CLICK)); }; } } }//package mainSection 95//MyLightning (main.MyLightning) package main { import flash.events.*; import flash.geom.*; import flash.display.*; public class MyLightning extends MovieClip { private var m_lightning:Lightning; private var m_lightningEnd:LightningEnd; public function MyLightning(_arg1:Point, _arg2:Point){ var _local6:Number; super(); m_lightning = new Lightning(); m_lightning.x = _arg1.x; m_lightning.y = _arg1.y; m_lightningEnd = new LightningEnd(); m_lightningEnd.x = _arg2.x; m_lightningEnd.y = _arg2.y; var _local3:Number = Point.distance(_arg1, _arg2); var _local4:Number = _local3; var _local5:Point = new Point((_arg2.x - _arg1.x), (_arg2.y - _arg1.y)); _local6 = Math.asin((-(_local5.y) / Math.sqrt(((_local5.x * _local5.x) + (_local5.y * _local5.y))))); if (_local5.x < 0){ _local6 = (Math.PI - _local6); }; var _local7:Number = ((180 * _local6) / Math.PI); var _local8:Number = ((-180 * _local6) / Math.PI); m_lightning.width = _local4; m_lightning.rotation = _local8; addEventListener(Event.ENTER_FRAME, myOnEnterFrame); addChild(m_lightning); addChild(m_lightningEnd); } private function myOnEnterFrame(_arg1:Event){ if (((m_lightning) && ((m_lightning.currentFrame == m_lightning.totalFrames)))){ if (parent){ parent.removeChild(this); }; addEventListener(Event.ENTER_FRAME, myOnEnterFrame); }; } } }//package mainSection 96//MyTipPointer (main.MyTipPointer) package main { import flash.geom.*; import flash.display.*; public class MyTipPointer extends MovieClip { private var m_tipPointer:TipPointer; public function MyTipPointer(_arg1:Point, _arg2:Point){ var _local4:Number; super(); m_tipPointer = new TipPointer(); m_tipPointer.x = _arg1.x; m_tipPointer.y = _arg1.y; var _local3:Point = new Point((_arg2.x - _arg1.x), (_arg2.y - _arg1.y)); _local4 = Math.asin((-(_local3.y) / Math.sqrt(((_local3.x * _local3.x) + (_local3.y * _local3.y))))); if (_local3.x < 0){ _local4 = (Math.PI - _local4); }; var _local5:Number = ((180 * _local4) / Math.PI); var _local6:Number = ((-180 * _local4) / Math.PI); m_tipPointer.rotation = _local6; addChild(m_tipPointer); } } }//package mainSection 97//MyWindow (main.MyWindow) package main { import flash.events.*; import flash.geom.*; import flash.display.*; public class MyWindow extends MovieClip { public static const ON_CLOSE = "onCloseWindow"; public function MyWindow(_arg1:Point, _arg2:Boolean=true){ x = _arg1.x; y = _arg1.y; if (_arg2){ addEventListener(MouseEvent.CLICK, OnMouseClick); }; } private function OnMouseClick(_arg1:MouseEvent){ dispatchEvent(new Event(ON_CLOSE)); } } }//package mainSection 98//NoSound (main.NoSound) package main { import flash.media.*; public dynamic class NoSound extends Sound { } }//package mainSection 99//ObjectManager (main.ObjectManager) package main { import flash.events.*; import flash.display.*; public class ObjectManager extends MovieClip { private var m_mode:int; private var m_animationClip:MovieClip; public static const AFTER_MODE_UPDATE = "AfterModeUpdate"; public function get mode():int{ return (m_mode); } public function set mode(_arg1:int):void{ if (m_mode == _arg1){ return; }; if (m_animationClip){ m_animationClip.gotoAndPlay(2); }; m_mode = _arg1; addEventListener(Event.ENTER_FRAME, OnModeUpdate); } protected function createAnimation(_arg1:int):MovieClip{ return (null); } private function OnModeUpdate(_arg1:Event){ if (((!(m_animationClip)) || (((m_animationClip) && ((m_animationClip.currentFrame == m_animationClip.totalFrames)))))){ if (m_animationClip){ m_animationClip.stop(); removeChild(m_animationClip); m_animationClip = null; }; removeEventListener(Event.ENTER_FRAME, OnModeUpdate); m_animationClip = createAnimation(m_mode); if (m_animationClip){ m_animationClip.gotoAndStop(1); addChild(m_animationClip); }; dispatchEvent(new Event(AFTER_MODE_UPDATE)); }; } } }//package mainSection 100//ObjectManager2 (main.ObjectManager2) package main { import flash.events.*; import flash.display.*; public class ObjectManager2 extends MovieClip { private var m_mode:int; private var m_animationClip:MovieClip; private var m_animationMode:uint;// = 1 public static const CHANGE_MODE_FINISH = "ChangeModeFinish"; public static const ANIMATION_STOP_ON_LAST_CADR = 1; public static const ANIMATION_CYCLE = 2; protected function get animationClip():MovieClip{ return (m_animationClip); } public function get mode():int{ return (m_mode); } public function set mode(_arg1:int):void{ if (m_mode == _arg1){ return; }; if (m_animationClip){ m_animationClip.stop(); removeChild(m_animationClip); m_animationClip = null; }; m_mode = _arg1; m_animationClip = createAnimation(m_mode); m_animationMode = getAnimationMode(); if (m_animationClip){ addChild(m_animationClip); m_animationClip.play(); }; addEventListener(Event.ENTER_FRAME, OnModeUpdate); } protected function createAnimation(_arg1:int):MovieClip{ return (null); } protected function getAnimationMode():uint{ return (ANIMATION_STOP_ON_LAST_CADR); } private function OnModeUpdate(_arg1:Event){ if (m_animationClip){ if ((((m_animationClip.currentFrame == m_animationClip.totalFrames)) && ((m_animationMode == ANIMATION_STOP_ON_LAST_CADR)))){ m_animationClip.stop(); removeEventListener(Event.ENTER_FRAME, OnModeUpdate); dispatchEvent(new Event(CHANGE_MODE_FINISH)); } else { if (Game.gamePause){ m_animationClip.stop(); } else { m_animationClip.play(); }; }; } else { removeEventListener(Event.ENTER_FRAME, OnModeUpdate); }; } } }//package mainSection 101//PlayingField (main.PlayingField) package main { import flash.media.*; import flash.events.*; import flash.geom.*; import flash.display.*; import flash.utils.*; public class PlayingField extends MovieClip { private var m_mode:int;// = 1 private var m_levelNumberText:LevelNumber; private var m_blackFigureTryCount:uint; private var m_triangles:Array; private var m_trianglesCount:uint; private var m_figurePlaces:Array; private var m_figures:Array; private var m_figurePlaceCount:uint; private var m_movingFigures:Array; private var m_rowCount:int;// = 11 private var m_colCount:int;// = 8 private var m_levelInfo:LevelInfo; private var m_levelNumber:int; private var m_rotatedTriangle:Triangle; private var m_playerMoveIterate:uint; private var m_clickComboCoeff:uint; private var m_playerMoveScore:uint; private var m_levelScore:uint; private var m_movedfpSet:Array; private var m_figureTimer:Timer; private var m_triTimer:Timer; private var m_timers:Array; private var m_rotate_sound:Sound; private var m_rotate_wrong_sound:Sound; private var m_levelBeginSound:Sound; private var m_levelBeginSoundChannel:SoundChannel; public static const LEVEL_COMPLETE = "levelComplete"; public static const LOAD_COMPLETE = "loadComplete"; public static const ON_SCORE_CHANGE = "onScoreChange"; public static const ON_MODE_CHANGE = "onModeChange"; public static const ON_PLAYER_MOVE_START = "onPlayerMoveStart"; public static const ON_PLAYER_MOVE_END = "onPlayerMoveEnd"; public static const ON_BLACK_FIGURE_APPEAR = "onBlackFigureAppear"; public static const ON_TRIANGLE_LOCK_APPEAR = "onTriangleLockAppear"; public static const ON_TRIANGLE_DOUBLE_LOCK_APPEAR = "onTriangleDoubleLockAppear"; public static const ON_TRIANGLE_COLOR_LOCK_APPEAR = "onTriangleColorLockAppear"; public static const ON_FIGURE_CHAIN_APPEAR = "onFigureChainAppear"; public static const ON_FIGURE_DOUBLE_CHAIN_APPEAR = "onFigureDoubleChainAppear"; public static const ON_BOMB_USE = "onBombUse"; public static const MODE_LOADING = 1; public static const MODE_NORMAL = 2; public static const MODE_BOMB = 3; public static const MODE_COMPLETE = 4; public function PlayingField(_arg1:LevelInfo, _arg2:int){ var _local3:Triangle; var _local4:Boolean; var _local6:int; var _local8:Array; var _local10:FigurePlace; var _local11:Array; var _local12:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:Triangle; var _local18:uint; m_timers = new Array(); m_rotate_sound = new RotateSound(); m_rotate_wrong_sound = new RotateWrongSound(); super(); var _local5:Point = new Point(0, 0); m_levelInfo = _arg1; m_levelNumber = _arg2; m_movingFigures = new Array(); m_movedfpSet = new Array(); m_figures = new Array(); m_triangles = new Array(); var _local7:int; while (_local7 < m_rowCount) { if ((_local7 % 2) == 0){ _local5.y = (((_local7 / 2) * Triangle.triHeight) + (Triangle.triHeight / 2)); _local4 = false; } else { _local5.y = Math.floor((((_local7 / 2) + 0.5) * Triangle.triHeight)); _local4 = true; }; m_triangles[_local7] = new Array(); _local14 = 0; while (_local14 < m_colCount) { _local6 = _arg1.getTriMode(_local7, _local14); if (_local6 > 0){ m_trianglesCount++; _local5.x = ((_local14 * Triangle.triWidth) + (Triangle.triWidth / 2)); _local3 = new Triangle(_local5, _local4, _local7, _local14, _local6); _local3.addEventListener(Triangle.ON_GOLD_TRIANGLE, onGoldTriangle); m_triangles[_local7][_local14] = _local3; }; _local4 = !(_local4); _local14++; }; _local7++; }; m_triTimer = new Timer(GameSettings.DROP_TRIANGLE_DELAY, m_trianglesCount); m_triTimer.addEventListener(TimerEvent.TIMER, onTriTimer); m_triTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTriTimerComplete); m_triTimer.start(); m_levelNumberText = new LevelNumber(_arg2, new Point((width / 2), (height / 2))); addChild(m_levelNumberText); m_levelBeginSound = new LevelBegin1Sound(); new SoundPlayer(new LevelBegin1Sound()); m_figurePlaces = new Array(); _local7 = 0; while (_local7 < (m_rowCount + 2)) { _local5.y = ((_local7 * Triangle.triHeight) / 2); if ((_local7 % 2) == 0){ _local15 = 5; } else { _local15 = 4; }; m_figurePlaces[_local7] = new Array(_local15); _local14 = 0; while (_local14 < _local15) { if ((_local7 % 2) == 0){ _local5.x = ((_local14 * Triangle.triWidth) * 2); } else { _local5.x = (Triangle.triWidth + ((_local14 * Triangle.triWidth) * 2)); }; addChild(new FigurePlace(m_figurePlaces, _local7, _local14, _local5)); _local14++; }; _local7++; }; var _local9:Array = new Array(); m_figurePlaceCount = 0; _local7 = 0; while (_local7 < m_rowCount) { _local14 = 0; while (_local14 < m_colCount) { _local3 = m_triangles[_local7][_local14]; if (_local3){ _local8 = getFigurePlacesByTriangle(_local3); for each (_local10 in _local8) { if (_local9.indexOf(_local10) < 0){ _local9.push(_local10); m_figurePlaceCount++; }; }; }; _local14++; }; _local7++; }; _local9 = null; var _local13:Boolean; _local7 = 0; while (_local7 < m_rowCount) { _local14 = 0; while (_local14 < m_colCount) { _local3 = m_triangles[_local7][_local14]; if (_local3){ _local8 = getFigurePlacesByTriangle(_local3); _local16 = 0; while (_local16 < _local8.length) { _local10 = _local8[_local16]; if (!_local10.figure){ createFigure(_local10); if (figureCount(_local3) == 3){ _local12 = trianglesByFigurePlace(_local10); do { _local13 = false; for each (_local17 in _local12) { if (figureCount(_local17) < 3){ } else { _local11 = getTriangleFigureColors(_local17); while (_local11.length == 1) { _local10.figure.randomFrame(); _local11 = getTriangleFigureColors(_local17); _local13 = true; }; }; }; } while (_local13); }; }; _local16++; }; switch (_local3.mode){ case Triangle.MODE_COLOR_LOCK_A: case Triangle.MODE_COLOR_LOCK_B: case Triangle.MODE_COLOR_LOCK_C: _local10 = _local8[(_local3.mode - Triangle.MODE_COLOR_LOCK_A)]; if (_local10.figure.black){ _local18 = 1; } else { _local18 = _local10.figure.figureIndex; }; _local3.mode = ((_local18 - 1) + Triangle.MODE_COLOR_LOCK_1); }; }; _local14++; }; _local7++; }; _local7 = (m_figurePlaces.length - 1); while (_local7 >= 0) { _local14 = (m_figurePlaces[_local7].length - 1); while (_local14 >= 0) { _local10 = m_figurePlaces[_local7][_local14]; if (_local10.figure){ _local10.figure.x = (_local10.figure.x + 1); } else { delete m_figurePlaces[_local7][_local14]; }; _local14--; }; _local7--; }; m_figureTimer = new Timer(GameSettings.DROP_FIGURE_DELAY, m_figures.length); m_figureTimer.addEventListener(TimerEvent.TIMER, onFigureTimer); } private function addLevelScore(_arg1:uint, _arg2:Point, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:Array){ var _local8:FigurePlace; var _local7:Array = new Array(); for each (_local8 in _arg6) { _local7.push(localToGlobal(_local8.point)); }; m_levelScore = (m_levelScore + _arg1); if ((((_arg4 > 1)) && ((_arg5 > 1)))){ throw (new Error("Комбо и клик-комбо не могут быть одновременно!")); }; dispatchEvent(new ScoreEvent(ON_SCORE_CHANGE, _arg2, _arg1, _arg3, _arg4, _arg5, _local7)); } public function get levelNumber():int{ return (m_levelNumber); } private function get goldTriangleCount():uint{ var _local3:int; var _local4:Triangle; var _local1:uint; var _local2:int; while (_local2 < m_triangles.length) { _local3 = 0; while (_local3 < m_triangles[_local2].length) { _local4 = m_triangles[_local2][_local3]; if (((_local4) && ((_local4.mode == Triangle.MODE_GOLD)))){ _local1++; }; _local3++; }; _local2++; }; return (_local1); } private function onGoldTriangle(_arg1:Event){ dispatchEvent(new Event(Triangle.ON_GOLD_TRIANGLE)); if (goldTriangleCount >= m_trianglesCount){ mode = MODE_COMPLETE; }; } private function onTriTimer(_arg1:TimerEvent):void{ var _local3:int; var _local4:Triangle; var _local2:int; while (_local2 < m_triangles.length) { _local3 = 0; while (_local3 < m_triangles[_local2].length) { _local4 = m_triangles[_local2][_local3]; if (((_local4) && (!(contains(_local4))))){ _local4.alpha = 0; addChild(_local4); setChildIndex(m_levelNumberText, (numChildren - 1)); _local4.changeAlpha(1, 2000); _local4.addEventListener(CustomAlphaObject.ON_FINISH_ALPHA_CHANGE, onTriangleLockAppear); return; }; _local3++; }; _local2++; }; } private function onTriangleLockAppear(_arg1:Event){ var _local2:Triangle = Triangle(_arg1.target); _local2.removeEventListener(CustomAlphaObject.ON_FINISH_ALPHA_CHANGE, onTriangleLockAppear); var _local3:String; switch (_local2.mode){ case Triangle.MODE_LOCK: _local3 = ON_TRIANGLE_LOCK_APPEAR; break; case Triangle.MODE_DOUBLE_LOCK: _local3 = ON_TRIANGLE_DOUBLE_LOCK_APPEAR; break; case Triangle.MODE_COLOR_LOCK_A: case Triangle.MODE_COLOR_LOCK_B: case Triangle.MODE_COLOR_LOCK_C: case Triangle.MODE_COLOR_LOCK_1: case Triangle.MODE_COLOR_LOCK_2: case Triangle.MODE_COLOR_LOCK_3: case Triangle.MODE_COLOR_LOCK_4: case Triangle.MODE_COLOR_LOCK_5: case Triangle.MODE_COLOR_LOCK_6: case Triangle.MODE_COLOR_LOCK_7: _local3 = ON_TRIANGLE_COLOR_LOCK_APPEAR; break; }; if (_local3 != null){ dispatchEvent(new TooltipEvent(_local3, _local2.localToGlobal(_local2.centerPoint))); }; } private function onTriTimerComplete(_arg1:TimerEvent):void{ m_figureTimer.start(); new SoundPlayer(new LevelBegin2Sound()); } private function onFigureTimer(_arg1:TimerEvent):void{ var _local3:int; var _local4:FigurePlace; var _local2:int = (m_figurePlaces.length - 1); while (_local2 >= 0) { _local3 = (m_figurePlaces[_local2].length - 1); while (_local3 >= 0) { _local4 = m_figurePlaces[_local2][_local3]; if (((_local4) && (_local4.figure))){ if (((!(_local4.figure.moving)) && (!(_local4.point.equals(new Point(_local4.figure.x, _local4.figure.y)))))){ dropObject(_local4.point, _local4.figure, GameSettings.DROP_SPEED); setChildIndex(m_levelNumberText, (numChildren - 1)); return; }; }; _local3--; }; _local2--; }; } private function blackFigureCount():uint{ var _local2:Figure; var _local1:uint; for each (_local2 in m_figures) { if (_local2.black){ _local1++; }; }; return (_local1); } private function createFigure(_arg1:FigurePlace){ if (_arg1.figure){ throw (new Error("Ошибка при создании фигуры. Выбранное место уже содержит другую фигуру")); }; var _local2:Boolean; var _local3:uint = (Math.floor((Math.random() * 100)) + 1); if (((m_blackFigureTryCount) || ((_local3 <= (m_levelInfo.blackFigurePercent + 5))))){ if ((((((mode == MODE_LOADING)) && ((m_levelInfo.getFigureInfo(_arg1.index).mode == Chains.MODE_NO_CHAIN)))) || (((!((mode == MODE_LOADING))) && ((_arg1.mode == Chains.MODE_NO_CHAIN)))))){ if ((blackFigureCount() + 1) <= Math.floor(((m_figurePlaceCount * m_levelInfo.blackFigurePercent) / 100))){ _local2 = true; }; if (m_blackFigureTryCount){ m_blackFigureTryCount--; }; } else { m_blackFigureTryCount++; }; }; _arg1.figure = new Figure(_arg1.point, m_levelInfo.figureColorCount, _local2); m_figures.push(_arg1.figure); _arg1.figure.alpha = 0; _arg1.figure.addEventListener(BasicObject.MOVE_START, OnFigureMoveStart); _arg1.figure.addEventListener(BasicObject.MOVE_FINISH, OnFigureMoveFinish); } private function updateChildIndex(){ var _local2:int; var _local3:int; var _local4:Triangle; var _local5:FigurePlace; var _local1:uint; _local2 = 0; while (_local2 < m_triangles.length) { _local3 = 0; while (_local3 < m_triangles[_local2].length) { _local4 = m_triangles[_local2][_local3]; if (((_local4) && (contains(_local4)))){ setChildIndex(_local4, 1); }; _local3++; }; _local2++; }; _local2 = 0; while (_local2 < m_figurePlaces.length) { _local3 = 0; while (_local3 < m_figurePlaces[_local2].length) { _local5 = m_figurePlaces[_local2][_local3]; if (((_local5) && (contains(_local5)))){ setChildIndex(_local5, (numChildren - 1)); }; _local3++; }; _local2++; }; } private function dropObject(_arg1:Point, _arg2:BasicObject, _arg3:int):void{ var _local4:Point = new Point(_arg1.x, _arg1.y); _local4.offset(GameSettings.DROP_OFFSETX, GameSettings.DROP_OFFSETY); _arg2.x = _local4.x; _arg2.y = _local4.y; _arg2.moveToPoint(_arg1, _arg3); addChild(_arg2); updateChildIndex(); } private function destroyFigure(_arg1:FigurePlace):void{ var _local2:int = m_figures.indexOf(_arg1.figure); if (_local2 < 0){ throw (new Error("Фигура не найдена в массиве созданных ранее фигур")); }; m_figures.splice(_local2, 1); _arg1.figure.removeEventListener(BasicObject.MOVE_START, OnFigureMoveStart); _arg1.figure.removeEventListener(BasicObject.MOVE_FINISH, OnFigureMoveFinish); _arg1.figure.addEventListener(Figure.DESTROING_FINISH, onFigureDestroingFinish); _arg1.figure.destroy(); _arg1.figure = null; } private function onFigureDestroingFinish(_arg1:Event){ var _local2:Figure = Figure(_arg1.target); _local2.removeEventListener(Figure.DESTROING_FINISH, onFigureDestroingFinish); removeChild(_local2); } private function upperTrianglesByFigurePlace(_arg1:FigurePlace):Array{ var fp = _arg1; var push:Function = function (_arg1:Array, _arg2:int, _arg3:int){ if ((((((((((_arg2 >= 0)) && ((_arg2 < m_triangles.length)))) && ((_arg3 >= 0)))) && ((_arg3 < m_triangles[_arg2].length)))) && (m_triangles[_arg2][_arg3]))){ _arg1.push(m_triangles[_arg2][_arg3]); }; }; var triangles:Array = new Array(); var k:int = ((m_figurePlaces[fp.row].length)==5) ? -1 : 1; push(triangles, (fp.row - 2), (fp.col * 2)); push(triangles, (fp.row - 2), ((fp.col * 2) + k)); return (triangles); } private function leftAndRightTrianglesByFigurePlace(_arg1:FigurePlace):Array{ var fp = _arg1; var push:Function = function (_arg1:Array, _arg2:int, _arg3:int){ if ((((((((((_arg2 >= 0)) && ((_arg2 < m_triangles.length)))) && ((_arg3 >= 0)))) && ((_arg3 < m_triangles[_arg2].length)))) && (m_triangles[_arg2][_arg3]))){ _arg1.push(m_triangles[_arg2][_arg3]); }; }; var triangles:Array = new Array(); var k:int = ((m_figurePlaces[fp.row].length)==5) ? -1 : 1; push(triangles, (fp.row - 1), (fp.col * 2)); push(triangles, (fp.row - 1), ((fp.col * 2) + k)); return (triangles); } private function getUpperFigurePlaces(_arg1:FigurePlace):Array{ var _local5:Triangle; var _local6:Array; var _local7:int; var _local2:Array = new Array(null, null, null); var _local3:Array = upperTrianglesByFigurePlace(_arg1); var _local4:Array = leftAndRightTrianglesByFigurePlace(_arg1); if (_local3.length){ _local5 = _local3[0]; _local6 = getFigurePlacesByTriangle(_local5); _local2[1] = _local6[0]; }; if (_local4.length){ for each (_local5 in _local4) { _local6 = getFigurePlacesByTriangle(_local5); _local7 = (_local5.isLeft) ? 2 : 0; _local2[_local7] = _local6[0]; }; }; return (_local2); } private function neighboringFigurePlaces(_arg1:FigurePlace){ var _local4:Triangle; var _local5:Array; var _local6:FigurePlace; var _local2:Array = new Array(); _local2.push(_arg1); var _local3:Array = trianglesByFigurePlace(_arg1); for each (_local4 in _local3) { _local5 = getFigurePlacesByTriangle(_local4); for each (_local6 in _local5) { if (_local2.indexOf(_local6) < 0){ _local2.push(_local6); }; }; }; _local2.shift(); return (_local2); } private function trianglesByFigurePlace(_arg1:FigurePlace):Array{ var fp = _arg1; var push:Function = function (_arg1:Array, _arg2:int, _arg3:int){ if ((((((((((_arg2 >= 0)) && ((_arg2 < m_triangles.length)))) && ((_arg3 >= 0)))) && ((_arg3 < m_triangles[_arg2].length)))) && (m_triangles[_arg2][_arg3]))){ _arg1.push(m_triangles[_arg2][_arg3]); }; }; var triangles:Array = new Array(); var k:int = ((m_figurePlaces[fp.row].length)==5) ? -1 : 1; var i:int; while (i < 3) { push(triangles, (fp.row - i), (fp.col * 2)); push(triangles, (fp.row - i), ((fp.col * 2) + k)); i = (i + 1); }; return (triangles); } public function haveTriangleByPoint(_arg1:Point):Boolean{ return ((getTriangleByPoint(_arg1)) ? true : false); } private function getTriangleByPoint(_arg1:Point):Triangle{ var _local3:int; var _local4:Triangle; var _local2:int; while (_local2 < m_rowCount) { _local3 = 0; while (_local3 < m_colCount) { _local4 = Triangle(m_triangles[_local2][_local3]); if (((_local4) && (_local4.PointInTriangle(_local4.globalToLocal(_arg1))))){ return (_local4); }; _local3++; }; _local2++; }; return (null); } private function getFigurePlacesByTriangle(_arg1:Triangle):Array{ var _local3:int; var _local4:int; var _local5:int; var _local2:Array = new Array(3); var _local6:int; var _local7 = 1; var _local8 = 2; if ((_arg1.row % 2) == 0){ _local3 = ((_arg1.col + 1) / 2); _local4 = (_arg1.col / 2); } else { _local3 = (_arg1.col / 2); _local4 = ((_arg1.col + 1) / 2); }; _local5 = _local3; if (!_arg1.isLeft){ _local7 = 2; _local8 = 1; }; _local2[_local6] = m_figurePlaces[_arg1.row][_local3]; _local2[_local7] = m_figurePlaces[(_arg1.row + 1)][_local4]; _local2[_local8] = m_figurePlaces[(_arg1.row + 2)][_local5]; return (_local2); } private function triangleHaveChain(_arg1:Triangle):Boolean{ var _local3:FigurePlace; var _local2:Array = getFigurePlacesByTriangle(_arg1); for each (_local3 in _local2) { if (((_local3.figure) && ((((_local3.mode == Chains.MODE_CHAIN)) || ((_local3.mode == Chains.MODE_DOUBLE_CHAIN)))))){ return (true); }; }; return (false); } private function equalFigurePlaces(_arg1:Array, _arg2:Array):Boolean{ var _local3:FigurePlace; for each (_local3 in _arg1) { if (_arg2.indexOf(_local3) < 0){ return (false); }; }; return (true); } private function changeActiveTriangle(_arg1:Triangle){ var _local2:Triangle; var _local3:Array; var _local4:FigurePlace; var _local7:int; var _local8:Boolean; var _local5:Array = new Array(); var _local6:int; while (_local6 < m_figurePlaces.length) { _local7 = 0; while (_local7 < m_figurePlaces[_local6].length) { _local4 = m_figurePlaces[_local6][_local7]; if (((((_local4) && (_local4.figure))) && (_local4.figure.active))){ _local5.push(_local4); }; _local7++; }; _local6++; }; _local6 = 0; while (_local6 < m_rowCount) { _local7 = 0; while (_local7 < m_colCount) { _local2 = Triangle(m_triangles[_local6][_local7]); if (_local2){ if (_local2 == _arg1){ switch (mode){ case MODE_NORMAL: if (triangleHaveChain(_local2)){ _local2.state = Triangle.STATE_DISABLED; } else { _local2.state = Triangle.STATE_ACTIVE; }; break; case MODE_BOMB: _local2.state = Triangle.STATE_NORMAL; break; }; setChildIndex(_local2, ((1 + m_trianglesCount) - 1)); _local3 = getFigurePlacesByTriangle(_local2); _local8 = equalFigurePlaces(_local3, _local5); for each (_local4 in _local3) { if (_local4.figure){ if (!_local8){ _local4.figure.active = false; }; _local4.figure.active = true; if (mode == MODE_BOMB){ _local4.figure.tremble = true; }; }; }; } else { _local2.state = Triangle.STATE_NORMAL; }; }; _local7++; }; _local6++; }; _local6 = 0; while (_local6 < m_figurePlaces.length) { _local7 = 0; while (_local7 < m_figurePlaces[_local6].length) { _local4 = m_figurePlaces[_local6][_local7]; if (((_local4) && (_local4.figure))){ if (((!(_local3)) || (((_local3) && ((_local3.indexOf(_local4) < 0)))))){ _local4.figure.active = false; _local4.figure.tremble = false; }; }; _local7++; }; _local6++; }; } private function activateTriangleByPoint(_arg1:Point){ var _local2:Triangle = getTriangleByPoint(_arg1); changeActiveTriangle(_local2); } private function onBombMouseMoveProcess(_arg1:Event){ activateTriangleByPoint(localToGlobal(new Point(mouseX, mouseY))); } private function OnMouseMove(_arg1:MouseEvent):void{ if (m_movingFigures.length){ return; }; activateTriangleByPoint(new Point(_arg1.stageX, _arg1.stageY)); } private function OnMouseOut(_arg1:MouseEvent):void{ } private function blowTriangles(_arg1:Array){ var _local2:Triangle; var _local3:Array; var _local6:int; var _local7:FigurePlace; var _local4:Array = new Array(); var _local5:Array = new Array(); for each (_local2 in _arg1) { _local2.mode = Triangle.MODE_GOLD; m_playerMoveScore = getScoreForMatch(3); m_playerMoveIterate = 1; m_clickComboCoeff = 1; addLevelScore(m_playerMoveScore, _local2.localToGlobal(_local2.centerPoint), 3, m_playerMoveIterate, m_clickComboCoeff, getFigurePlacesByTriangle(_local2)); }; for each (_local2 in _arg1) { _local3 = getFigurePlacesByTriangle(_local2); for each (_local7 in _local3) { if (_local4.indexOf(_local7) < 0){ _local7.mode = Chains.MODE_NO_CHAIN; _local4.push(_local7); _local5.push(_local7.figure); destroyFigure(_local7); }; }; }; if (_arg1.length){ new SoundPlayer(new Burst1Sound()); }; _local6 = getMaxRow(_local4); while (_local6 > 0) { startFigureFall(_local6); _local6--; }; dropFigures(_local5.length); } private function OnBombMouseClick(_arg1:MouseEvent):void{ if (mode != MODE_BOMB){ removeEventListener(MouseEvent.CLICK, OnBombMouseClick); return; }; var _local2:Triangle = getTriangleByPoint(new Point(_arg1.stageX, _arg1.stageY)); if (_local2){ blowTriangles(new Array(_local2)); if (Game.soundOn){ new Boom1Sound().play(); }; dispatchEvent(new Event(ON_BOMB_USE)); mode = MODE_NORMAL; }; } private function OnMouseClick(_arg1:MouseEvent):void{ var _local3:Array; var _local4:FigurePlace; var _local5:FigurePlace; var _local6:FigurePlace; var _local7:Vect; var _local8:Vect; var _local9:Vect; if (m_movingFigures.length){ return; }; if (_arg1.ctrlKey){ }; var _local2:Triangle = getTriangleByPoint(new Point(_arg1.stageX, _arg1.stageY)); if (_local2){ _local3 = getFigurePlacesByTriangle(_local2); _local4 = _local3[0]; _local5 = _local3[1]; _local6 = _local3[2]; if (triangleHaveChain(_local2)){ _local7 = new Vect((_local5.point.x - _local4.point.x), (_local5.point.y - _local4.point.y)); _local7.mulScalar((GameSettings.PULL_OFFSET / _local7.magnitude())); _local8 = new Vect((_local6.point.x - _local5.point.x), (_local6.point.y - _local5.point.y)); _local8.mulScalar((GameSettings.PULL_OFFSET / _local8.magnitude())); _local9 = new Vect((_local4.point.x - _local6.point.x), (_local4.point.y - _local6.point.y)); _local9.mulScalar((GameSettings.PULL_OFFSET / _local9.magnitude())); if (Game.soundOn){ m_rotate_wrong_sound.play(); }; if (_local4.figure){ _local4.figure.pull(new Point((_local4.figure.x + _local7.x), (_local4.figure.y + _local7.y)), GameSettings.ROTATION_SPEED); }; if (_local5.figure){ _local5.figure.pull(new Point((_local5.figure.x + _local8.x), (_local5.figure.y + _local8.y)), GameSettings.ROTATION_SPEED); }; if (_local6.figure){ _local6.figure.pull(new Point((_local6.figure.x + _local9.x), (_local6.figure.y + _local9.y)), GameSettings.ROTATION_SPEED); }; } else { if (Game.soundOn){ m_rotate_sound.play(); }; if (_local4.figure){ _local4.figure.moveToPoint(new Point(_local5.point.x, _local5.point.y), GameSettings.ROTATION_SPEED); }; if (_local5.figure){ _local5.figure.moveToPoint(new Point(_local6.point.x, _local6.point.y), GameSettings.ROTATION_SPEED); }; if (_local6.figure){ _local6.figure.moveToPoint(new Point(_local4.point.x, _local4.point.y), GameSettings.ROTATION_SPEED); }; m_rotatedTriangle = _local2; }; }; } private function figureCount(_arg1:Triangle):int{ var _local4:FigurePlace; var _local2:Array = getFigurePlacesByTriangle(_arg1); var _local3:int; for each (_local4 in _local2) { if (_local4.figure){ _local3++; }; }; return (_local3); } private function getTriangleFigureColors(_arg1:Triangle):Array{ var _local4:FigurePlace; var _local2:Array = new Array(); var _local3:Array = getFigurePlacesByTriangle(_arg1); for each (_local4 in _local3) { if (_local4.figure){ if (_local2.indexOf(_local4.figure.figureIndex) < 0){ _local2.push(_local4.figure.figureIndex); }; }; }; return (_local2); } private function triangleHaveBlackFigure(_arg1:Triangle){ var _local3:FigurePlace; var _local2:Array = getFigurePlacesByTriangle(_arg1); for each (_local3 in _local2) { if (((_local3.figure) && (_local3.figure.black))){ return (true); }; }; return (false); } function getMaxRow(_arg1:Array){ var _local3:FigurePlace; var _local2 = -1; for each (_local3 in _arg1) { if (_local3.row > _local2){ _local2 = _local3.row; }; }; return (_local2); } function startFigureFall(_arg1:int){ var f:Figure; var fp:FigurePlace; var i = _arg1; var getFigureForPlace:Function = function (_arg1:FigurePlace, _arg2:Array):Figure{ var _local3:Array; var _local4:FigurePlace; var _local5:FigurePlace; var _local6:FigurePlace; var _local7:Figure; _local3 = getUpperFigurePlaces(_arg1); _local4 = _local3[1]; if (_local4){ if (((((_local4.figure) && (!((_local4.mode == Chains.MODE_CHAIN))))) && (!((_local4.mode == Chains.MODE_DOUBLE_CHAIN))))){ _arg2.push(new Point(_arg1.point.x, _arg1.point.y)); return (_local4.figure); }; if (!_local4.figure){ _local7 = getFigureForPlace(_local4, _arg2); if (_local7){ _arg2.push(new Point(_arg1.point.x, _arg1.point.y)); return (_local7); }; }; }; _local4 = _local3[0]; if (((((((_local4) && (_local4.figure))) && (!((_local4.mode == Chains.MODE_CHAIN))))) && (!((_local4.mode == Chains.MODE_DOUBLE_CHAIN))))){ _arg2.push(new Point(_arg1.point.x, _arg1.point.y)); return (_local4.figure); }; _local4 = _local3[2]; if (((((((_local4) && (_local4.figure))) && (!((_local4.mode == Chains.MODE_CHAIN))))) && (!((_local4.mode == Chains.MODE_DOUBLE_CHAIN))))){ _arg2.push(new Point(_arg1.point.x, _arg1.point.y)); return (_local4.figure); }; _local4 = _local3[0]; if (((_local4) && (!(_local4.figure)))){ _local7 = getFigureForPlace(_local4, _arg2); if (_local7){ _arg2.push(new Point(_arg1.point.x, _arg1.point.y)); return (_local7); }; }; _local4 = _local3[2]; if (((_local4) && (!(_local4.figure)))){ _local7 = getFigureForPlace(_local4, _arg2); if (_local7){ _arg2.push(new Point(_arg1.point.x, _arg1.point.y)); return (_local7); }; }; return (null); }; var points:Array = new Array(); for each (fp in m_figurePlaces[i]) { if (((!(fp)) || (fp.figure))){ } else { points.length = 0; f = getFigureForPlace(fp, points); if (f){ f.moveToPoints(points, GameSettings.FALL_SPEED); fp.figure = f; }; }; }; } function dropFigures(_arg1:int){ var _local2:FigurePlace; var _local3:Figure; var _local4:int; var _local6:int; var _local5:int = (m_figurePlaces.length - 1); while (_local5 >= 0) { _local6 = 0; while (_local6 < m_figurePlaces[_local5].length) { _local2 = m_figurePlaces[_local5][_local6]; if (((_local2) && (!(_local2.figure)))){ ++_local4; if (_local4 > _arg1){ throw (new Error("Кол-во добавленных фигур больше кол-ва удалённых")); }; createFigure(_local2); dropObject(_local2.point, _local2.figure, GameSettings.FALL_SPEED); }; _local6++; }; _local5--; }; if (_local4 != _arg1){ throw (new Error("Кол-во добавленных фигур не равно кол-ву удалённых")); }; } private function sameFigurePlaces(_arg1:FigurePlace, _arg2:Array):Array{ var fp = _arg1; var p_figurePlaces = _arg2; var internalSameFigurePlaces:Function = function (_arg1:Array, _arg2:FigurePlace){ var _local4:FigurePlace; var _local3:Array = neighboringFigurePlaces(_arg2); for each (_local4 in _local3) { if ((((((((_arg1.indexOf(_local4) < 0)) && ((p_figurePlaces.indexOf(_local4) >= 0)))) && (_local4.figure))) && ((_local4.figure.figureIndex == _arg2.figure.figureIndex)))){ _arg1.push(_local4); internalSameFigurePlaces(_arg1, _local4); }; }; }; if (!fp.figure){ throw (new Error("ошибка при вызове sameFigurePlaces")); }; var res:Array = new Array(); internalSameFigurePlaces(res, fp); return (res); } private function getMatches(_arg1:Array):Array{ var _local2:Array; var _local4:Boolean; var _local5:FigurePlace; var _local3:Array = new Array(); for each (_local5 in _arg1) { _local4 = false; for each (_local2 in _local3) { if (_local2.indexOf(_local5) >= 0){ _local4 = true; break; }; }; if (!_local4){ _local2 = sameFigurePlaces(_local5, _arg1); _local3.push(_local2); }; }; return (_local3); } private function getScoreForMatch(_arg1:int){ switch (_arg1){ case 3: return (GameSettings.MATCH3); case 4: return (GameSettings.MATCH4); case 5: return (GameSettings.MATCH5); case 6: return (GameSettings.MATCH6); case 7: return (GameSettings.MATCH7); case 8: return (GameSettings.MATCH8); }; } private function getMatchCenter(_arg1:Array):Point{ var _local2:FigurePlace = _arg1[0]; var _local3:int = _local2.point.x; var _local4:int = _local2.point.y; var _local5:int = _local2.point.x; var _local6:int = _local2.point.y; for each (_local2 in _arg1) { if (_local2.point.x < _local3){ _local3 = _local2.point.x; }; if (_local2.point.x > _local5){ _local5 = _local2.point.x; }; if (_local2.point.y < _local4){ _local4 = _local2.point.y; }; if (_local2.point.y > _local6){ _local6 = _local2.point.y; }; }; return (new Point((_local3 + ((_local5 - _local3) / 2)), (_local4 + ((_local6 - _local4) / 2)))); } private function onPlayerMove(_arg1:Array):int{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:Triangle; var _local6:FigurePlace; var _local7:Figure; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:uint; var _local19:Array; var _local20:uint; var _local21:uint; var _local22:uint; var _local23:Array; var _local24:Sound; var _local8:Array = new Array(); var _local9:Array = new Array(); var _local10:Array = new Array(); var _local11:Array = new Array(); var _local12:Array = new Array(); var _local13:Array = new Array(); for each (_local6 in _arg1) { _local2 = trianglesByFigurePlace(_local6); for each (_local5 in _local2) { if (_local8.indexOf(_local5) < 0){ _local8.push(_local5); }; }; }; for each (_local5 in _local8) { if (figureCount(_local5) != 3){ } else { _local4 = getTriangleFigureColors(_local5); if (_local4.length != 1){ } else { if (triangleHaveBlackFigure(_local5)){ } else { _local14 = _local4[0]; switch (_local5.mode){ case Triangle.MODE_NORMAL: if (!triangleHaveChain(_local5)){ _local5.mode = Triangle.MODE_GOLD; _local9.push(_local5); }; _local10.push(_local5); break; case Triangle.MODE_LOCK: _local5.mode = Triangle.MODE_NORMAL; _local10.push(_local5); break; case Triangle.MODE_DOUBLE_LOCK: _local5.mode = Triangle.MODE_LOCK; _local10.push(_local5); break; case Triangle.MODE_GOLD: _local10.push(_local5); break; case Triangle.MODE_COLOR_LOCK_1: case Triangle.MODE_COLOR_LOCK_2: case Triangle.MODE_COLOR_LOCK_3: case Triangle.MODE_COLOR_LOCK_4: case Triangle.MODE_COLOR_LOCK_5: case Triangle.MODE_COLOR_LOCK_6: case Triangle.MODE_COLOR_LOCK_7: _local10.push(_local5); if (((_local4[0] - 1) + Triangle.MODE_COLOR_LOCK_1) == _local5.mode){ _local5.mode = Triangle.MODE_NORMAL; }; break; }; }; }; }; }; if (!_local10.length){ return (0); }; for each (_local5 in _local10) { _local3 = getFigurePlacesByTriangle(_local5); for each (_local6 in _local3) { if (_local13.indexOf(_local6) < 0){ _local13.push(_local6); }; if (_local11.indexOf(_local6) < 0){ if (_local6.mode == Chains.MODE_CHAIN){ _local6.mode = Chains.MODE_NO_CHAIN; } else { if (_local6.mode == Chains.MODE_DOUBLE_CHAIN){ _local6.mode = Chains.MODE_CHAIN; } else { _local11.push(_local6); _local12.push(_local6); }; }; }; }; }; _local17 = 0; _local19 = getMatches(_local13); _local20 = m_clickComboCoeff; _local21 = m_playerMoveIterate; for each (_local23 in _local19) { if (m_playerMoveIterate == 1){ _local21 = 1; } else { _local20 = 1; }; _local22 = getScoreForMatch(_local23.length); _local18 = ((_local22 * _local21) * _local20); _local17 = (_local17 + _local18); addLevelScore(_local18, localToGlobal(getMatchCenter(_local23)), _local23.length, _local21, _local20, _local23); }; for each (_local6 in _local12) { destroyFigure(_local6); }; switch (Math.max(_local21, _local21)){ case 1: _local24 = new Burst2Sound(); break; case 2: _local24 = new Burst2Sound(); break; case 3: _local24 = new Burst3Sound(); break; case 4: _local24 = new Burst4Sound(); break; default: _local24 = new Burst5Sound(); break; }; new SoundPlayer(_local24); _local15 = getMaxRow(_local11); while (_local15 > 0) { startFigureFall(_local15); _local15--; }; dropFigures(_local12.length); return (_local17); } private function findFigurePlace(_arg1:Point):FigurePlace{ var _local2:FigurePlace; var _local4:int; var _local3:int; while (_local3 < m_figurePlaces.length) { _local4 = 0; while (_local4 < m_figurePlaces[_local3].length) { _local2 = m_figurePlaces[_local3][_local4]; if (((_local2) && (_local2.point.equals(_arg1)))){ return (_local2); }; _local4++; }; _local3++; }; return (null); } private function OnFigureMoveStart(_arg1:MoveEvent){ if ((((m_movingFigures.length == 0)) && (!((mode == MODE_LOADING))))){ dispatchEvent(new Event(ON_PLAYER_MOVE_START)); }; var _local2:Figure = Figure(_arg1.currentTarget); if (m_movingFigures.indexOf(_local2) < 0){ m_movingFigures.push(_local2); }; var _local3:FigurePlace = findFigurePlace(_arg1.startPoint); if (_local3){ _local3.figure = null; }; changeActiveTriangle(null); } private function OnFigureMoveFinish(_arg1:MoveEvent){ var _local5:int; var _local2:Figure = Figure(_arg1.currentTarget); var _local3:int = m_movingFigures.indexOf(_local2); if (_local3 < 0){ throw (new Error("В списке летящих фигур прилетевшая фигура не найдена")); }; m_movingFigures.splice(_local3, 1); if ((((m_movingFigures.length == 0)) && (!((mode == MODE_LOADING))))){ dispatchEvent(new Event(ON_PLAYER_MOVE_END)); }; var _local4:FigurePlace = findFigurePlace(_arg1.stopPoint); if (_local4){ if (((_local4.figure) && (!((_local4.figure == _local2))))){ throw (new Error("На одном месте находятся 2 фигуры")); }; _local4.figure = _local2; if (mode == MODE_LOADING){ _local4.mode = m_levelInfo.getFigureInfo(_local4.index).mode; if (_local2.black){ dispatchEvent(new TooltipEvent(ON_BLACK_FIGURE_APPEAR, localToGlobal(_local4.point))); }; switch (_local4.mode){ case Chains.MODE_CHAIN: dispatchEvent(new TooltipEvent(ON_FIGURE_CHAIN_APPEAR, localToGlobal(_local4.point))); break; case Chains.MODE_DOUBLE_CHAIN: dispatchEvent(new TooltipEvent(ON_FIGURE_DOUBLE_CHAIN_APPEAR, localToGlobal(_local4.point))); break; }; }; m_movedfpSet.push(_local4); }; if (m_movingFigures.length == 0){ if (mode == MODE_LOADING){ mode = MODE_NORMAL; }; if (m_rotatedTriangle){ m_playerMoveScore = 0; m_playerMoveIterate = 1; } else { m_playerMoveIterate++; }; _local5 = onPlayerMove(m_movedfpSet); if (_local5){ m_playerMoveScore = (m_playerMoveScore + _local5); }; m_rotatedTriangle = null; m_movedfpSet.length = 0; if (m_movingFigures.length == 0){ m_playerMoveIterate = 0; if (m_playerMoveScore){ m_clickComboCoeff++; } else { m_clickComboCoeff = 1; }; activateTriangleByPoint(localToGlobal(new Point(mouseX, mouseY))); }; }; } public function shuffle(){ var _local2:FigurePlace; var _local3:FigurePlace; var _local4:uint; var _local5:uint; var _local6:uint; var _local8:int; var _local9:int; var _local10:int; if ((((mode == MODE_LOADING)) || (m_movingFigures.length))){ return; }; m_clickComboCoeff = 1; var _local1:Array = new Array(); var _local7:int; while (_local7 < m_figurePlaces.length) { _local8 = 0; while (_local8 < m_figurePlaces[_local7].length) { _local2 = m_figurePlaces[_local7][_local8]; if (((((_local2) && (!((_local2.mode == Chains.MODE_CHAIN))))) && (!((_local2.mode == Chains.MODE_DOUBLE_CHAIN))))){ _local5++; }; _local8++; }; _local7++; }; _local7 = 0; while (_local7 < m_figurePlaces.length) { _local8 = 0; while (_local8 < m_figurePlaces[_local7].length) { _local2 = m_figurePlaces[_local7][_local8]; if (((((_local2) && (!((_local2.mode == Chains.MODE_CHAIN))))) && (!((_local2.mode == Chains.MODE_DOUBLE_CHAIN))))){ _local4 = (Math.floor((Math.random() * ((_local5 - _local1.length) - 1))) + 1); _local6 = 0; _local9 = 0; while (_local9 < m_figurePlaces.length) { _local10 = 0; while (_local10 < m_figurePlaces[_local9].length) { _local3 = m_figurePlaces[_local9][_local10]; if (((((((((_local3) && (!((_local3 == _local2))))) && ((_local1.indexOf(_local3) < 0)))) && (!((_local3.mode == Chains.MODE_CHAIN))))) && (!((_local3.mode == Chains.MODE_DOUBLE_CHAIN))))){ ++_local6; if (_local6 == _local4){ break; }; }; _local3 = null; _local10++; }; if (_local6 == _local4){ break; }; _local9++; }; if (((_local3) && (_local2.figure))){ _local1.push(_local3); _local2.figure.moveToPoint(_local3.point, GameSettings.SHUFFLE_SPEED); }; }; _local8++; }; _local7++; }; } public function getMode():int{ return (m_mode); } private function get mode():int{ return (m_mode); } private function doOnLoadComplete(){ removeChild(m_levelNumberText); m_levelNumberText = null; updateChildIndex(); dispatchEvent(new Event(PlayingField.LOAD_COMPLETE)); } private function set mode(_arg1:int){ if (m_mode == _arg1){ return; }; if (m_mode == MODE_COMPLETE){ return; }; if (m_mode == MODE_LOADING){ doOnLoadComplete(); }; m_mode = _arg1; removeEventListener(MouseEvent.CLICK, OnMouseClick); removeEventListener(MouseEvent.MOUSE_MOVE, OnMouseMove); removeEventListener(MouseEvent.CLICK, OnBombMouseClick); removeEventListener(Event.ENTER_FRAME, onBombMouseMoveProcess); removeEventListener(Event.ENTER_FRAME, waitForLevelComplete); switch (m_mode){ case MODE_NORMAL: addEventListener(MouseEvent.MOUSE_MOVE, OnMouseMove); addEventListener(MouseEvent.CLICK, OnMouseClick); break; case MODE_BOMB: addEventListener(MouseEvent.CLICK, OnBombMouseClick); addEventListener(Event.ENTER_FRAME, onBombMouseMoveProcess); break; case MODE_COMPLETE: addEventListener(Event.ENTER_FRAME, waitForLevelComplete); break; }; dispatchEvent(new Event(ON_MODE_CHANGE)); } private function waitForLevelComplete(_arg1:Event){ if (m_movingFigures.length == 0){ removeEventListener(Event.ENTER_FRAME, waitForLevelComplete); dispatchEvent(new Event(LEVEL_COMPLETE)); }; } public function bomb(){ mode = MODE_BOMB; } public function cancelBomb(){ if (mode == MODE_BOMB){ mode = MODE_NORMAL; }; } public function getRandomPoints():Array{ var _local5:int; var _local6:Triangle; var _local1:Array = new Array(); var _local2:Array = new Array(); var _local3:uint; var _local4:int; while (_local4 < m_triangles.length) { _local5 = 0; while (_local5 < m_triangles[_local4].length) { _local6 = m_triangles[_local4][_local5]; if (((_local6) && (!((_local6.mode == Triangle.MODE_GOLD))))){ _local2.push(_local6); }; _local5++; }; _local4++; }; while ((((++_local3 <= 3)) && (_local2.length))) { _local4 = Math.floor((Math.random() * _local2.length)); _local6 = _local2[_local4]; _local2.splice(_local4, 1); _local1.push(_local6.localToGlobal(_local6.centerPoint)); }; return (_local1); } public function lightning(_arg1:Point){ var _local2:Triangle = getTriangleByPoint(_arg1); if (_local2){ _local2.mode = Triangle.MODE_GOLD; }; } public function lightnings(_arg1:Array){ var _local3:Point; var _local4:Triangle; var _local2:Array = new Array(); for each (_local3 in _arg1) { _local4 = getTriangleByPoint(_local3); if (_local4){ _local2.push(_local4); }; }; if (_local2.length){ blowTriangles(_local2); }; } public function get levelScore():uint{ return (m_levelScore); } public function gamePause(){ if (((m_figureTimer) && (m_figureTimer.running))){ m_figureTimer.stop(); m_timers.push(m_figureTimer); }; if (((m_triTimer) && (m_triTimer.running))){ m_triTimer.stop(); m_timers.push(m_triTimer); }; } public function gameContinue(){ var _local1:Timer; for each (_local1 in m_timers) { _local1.start(); }; m_timers.length = 0; } public function isPlayerMove():Boolean{ return ((m_movingFigures.length > 0)); } } }//package mainSection 102//preloader (main.preloader) package main { import flash.events.*; import flash.display.*; import flash.text.*; import flash.net.*; public class preloader extends MovieClip { public var txt:TextField; public var m_moreGamesBtn:SimpleButton; public var progressbar:MovieClip; public static const LOAD_COMPLETE = "loadComplete"; public function preloader(){ m_moreGamesBtn.addEventListener(MouseEvent.CLICK, onMoreGamesBtnClick); addEventListener(Event.ENTER_FRAME, Update); } public function Update(_arg1:Event):void{ var _local2:Number = stage.loaderInfo.bytesLoaded; var _local3:Number = stage.loaderInfo.bytesTotal; var _local4 = ""; var _local5:Number = 0; if (_local3 > 0){ _local5 = Math.floor(((_local2 / _local3) * 100)); _local4 = (((((_local5 + "% (") + Math.round((_local2 / 0x0400))) + "kb / ") + Math.round((_local3 / 0x0400))) + "kb)"); }; this.txt.text = ("Loading... " + _local4); this.progressbar.gotoAndStop((_local5 + 1)); if ((((_local2 == _local3)) || ((_local3 == 0)))){ removeEventListener(Event.ENTER_FRAME, Update); dispatchEvent(new Event(LOAD_COMPLETE)); }; } private function onMoreGamesBtnClick(_arg1:Event){ var e = _arg1; var request:URLRequest = new URLRequest("http://www.playonlinepuzzles.com/?from=AngkorQuest"); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } } }//package mainSection 103//RotateSound (main.RotateSound) package main { import flash.media.*; public dynamic class RotateSound extends Sound { } }//package mainSection 104//RotateWrongSound (main.RotateWrongSound) package main { import flash.media.*; public dynamic class RotateWrongSound extends Sound { } }//package mainSection 105//RunningTimeSound (main.RunningTimeSound) package main { import flash.media.*; public dynamic class RunningTimeSound extends Sound { } }//package mainSection 106//ScoreEvent (main.ScoreEvent) package main { import flash.events.*; import flash.geom.*; public class ScoreEvent extends Event { private var m_score:uint; private var m_match:uint; private var m_combo:uint; private var m_clickCombo:uint; private var m_point:Point; private var m_points:Array; public function ScoreEvent(_arg1:String, _arg2:Point, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:Array, _arg8:Boolean=false, _arg9:Boolean=false){ var _local10:Point; super(_arg1, _arg8, _arg9); m_points = new Array(); for each (_local10 in _arg7) { m_points.push(new Point(_local10.x, _local10.y)); }; m_score = _arg3; m_match = _arg4; m_combo = _arg5; m_clickCombo = _arg6; m_point = _arg2; } public function get score():uint{ return (m_score); } public function get point():Point{ return (new Point(m_point.x, m_point.y)); } public function get match():uint{ return (m_match); } public function get combo():uint{ return (m_combo); } public function get clickCombo():uint{ return (m_clickCombo); } public function get points():Array{ return (m_points); } } }//package mainSection 107//Shuffle1Sound (main.Shuffle1Sound) package main { import flash.media.*; public dynamic class Shuffle1Sound extends Sound { } }//package mainSection 108//ShuffleButton (main.ShuffleButton) package main { import flash.display.*; public class ShuffleButton extends MyButton { override protected function createAnimation(_arg1:int):MovieClip{ switch (_arg1){ case MyButton.MODE_NORMAL: return (new ShuffleMovieNormal()); case MyButton.MODE_OVER: return (new ShuffleMovieOver()); case MyButton.MODE_PRESSED: return (new ShuffleMoviePressed()); case MyButton.MODE_DISABLED: return (new ShuffleMovieDisabled()); }; return (null); } } }//package mainSection 109//ShuffleButtonFilling (main.ShuffleButtonFilling) package main { public class ShuffleButtonFilling extends ButtonFilling { override protected function internalSetPersent(_arg1:Number){ m_percent = Math.min(_arg1, 100); } } }//package mainSection 110//ShuffleMovieDisabled (main.ShuffleMovieDisabled) package main { import flash.display.*; public dynamic class ShuffleMovieDisabled extends MovieClip { } }//package mainSection 111//ShuffleMovieNormal (main.ShuffleMovieNormal) package main { import flash.display.*; public dynamic class ShuffleMovieNormal extends MovieClip { } }//package mainSection 112//ShuffleMovieOver (main.ShuffleMovieOver) package main { import flash.display.*; public dynamic class ShuffleMovieOver extends MovieClip { } }//package mainSection 113//ShuffleMoviePressed (main.ShuffleMoviePressed) package main { import flash.display.*; public dynamic class ShuffleMoviePressed extends MovieClip { } }//package mainSection 114//SoundContainer (main.SoundContainer) package main { import flash.display.*; public dynamic class SoundContainer extends MovieClip { } }//package mainSection 115//SoundPlayer (main.SoundPlayer) package main { import flash.media.*; public class SoundPlayer { private var m_soundChannel:SoundChannel;// = null public function SoundPlayer(_arg1:Sound){ if (Game.soundOn){ m_soundChannel = _arg1.play(); }; } public function get soundChannel():SoundChannel{ return (m_soundChannel); } } }//package mainSection 116//Star (main.Star) package main { import flash.events.*; import flash.geom.*; import flash.display.*; public class Star extends BasicObject { private var m_percent:uint; public function Star(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point, _arg4:Number, _arg5:uint){ m_percent = _arg5; x = _arg2.x; y = _arg2.y; if (_arg1){ _arg1.addChild(this); }; addEventListener(BasicObject.MOVE_FINISH, onMoveFinish); moveToPoint(_arg3, _arg4); } public function get percent():uint{ return (m_percent); } private function onMoveFinish(_arg1:Event){ removeEventListener(BasicObject.MOVE_FINISH, onMoveFinish); if (parent){ parent.removeChild(this); }; } } }//package mainSection 117//Starter (main.Starter) package main { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.net.*; import flash.ui.*; public class Starter extends MovieClip { private var m_cursorMov:Cursor; public function Starter(){ var _local3:MainMenuWindow; super(); m_cursorMov = new Cursor(); addChild(m_cursorMov); hideMouseCursor(); m_cursorMov.startDrag(); var _local1:ContextMenuItem = new ContextMenuItem("Download advanced version"); _local1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmi_menuItemSelect); var _local2:ContextMenu = new ContextMenu(); _local2.customItems.push(_local1); _local2.hideBuiltInItems(); contextMenu = _local2; _local3 = new MainMenuWindow(m_cursorMov); _local3.x = (stage.stageWidth / 2); _local3.y = (stage.stageHeight / 2); _local3.x = 320; _local3.y = 300; addChildAt(_local3, 0); addEventListener(MouseEvent.CLICK, doOnMouseClick); addEventListener(MouseEvent.MOUSE_UP, doOnMouseClick); addEventListener(MouseEvent.MOUSE_OVER, doOnMouseClick); } private function hideMouseCursor(){ var _local1:Point = globalToLocal(new Point(mouseX, mouseY)); m_cursorMov.x = (_local1.x + 1); m_cursorMov.y = _local1.y; Mouse.hide(); } private function doOnMouseClick(_arg1:Event){ hideMouseCursor(); } private function cmi_menuItemSelect(_arg1:ContextMenuEvent):void{ var evt = _arg1; var url:String = GameSettings.DOWNLOAD_URL; var request:URLRequest = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } } }//package mainSection 118//SureWindow (main.SureWindow) package main { import flash.events.*; import flash.geom.*; import flash.text.*; import flash.display.*; public class SureWindow extends MyWindow { public var m_OKBtn:SimpleButton; public var m_text:TextField; public var m_cancelBtn:SimpleButton; private var m_action:uint;// = 0 public static const ACTION_NONE = 0; public static const ACTION_OK = 1; public static const ACTION_CANCEL = 2; public function SureWindow(_arg1:Point, _arg2:String){ super(_arg1, false); m_text.text = _arg2; m_OKBtn.addEventListener(MouseEvent.CLICK, onOkBtnClick); m_cancelBtn.addEventListener(MouseEvent.CLICK, onCancelBtnClick); } public function get action():uint{ return (m_action); } private function onOkBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_action = ACTION_OK; dispatchEvent(new Event(MyWindow.ON_CLOSE)); } private function onCancelBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_action = ACTION_CANCEL; dispatchEvent(new Event(MyWindow.ON_CLOSE)); } } }//package mainSection 119//TimeOutSound (main.TimeOutSound) package main { import flash.media.*; public dynamic class TimeOutSound extends Sound { } }//package mainSection 120//TimeOutWindow (main.TimeOutWindow) package main { import flash.events.*; import flash.geom.*; import flash.text.*; import flash.display.*; import flash.net.*; public class TimeOutWindow extends MyWindow { public var m_submitScoreButton:SimpleButton; public var txtName:TextField; public var m_submitScoreText:TextField; public var m_playBtn:SimpleButton; public var m_mainMenuButton:SimpleButton; private var m_action:uint;// = 0 private var m_FirstEditClick;// = true public static const ACTION_NONE = 0; public static const ACTION_MAIN_MENU = 1; public static const ACTION_PLAY = 2; public function TimeOutWindow(_arg1:Point){ super(_arg1, false); m_mainMenuButton.addEventListener(MouseEvent.CLICK, onMainMenuBtnClick); m_playBtn.addEventListener(MouseEvent.CLICK, onPlayBtnClick); m_submitScoreButton.addEventListener(MouseEvent.CLICK, onSubmitBtnClick); m_submitScoreText.text = String(Game.getScore); this.txtName.addEventListener(MouseEvent.CLICK, onEditNameClick); } public function get action():uint{ return (m_action); } private function onMainMenuBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_action = ACTION_MAIN_MENU; dispatchEvent(new Event(MyWindow.ON_CLOSE)); } private function onPlayBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; m_action = ACTION_PLAY; dispatchEvent(new Event(MyWindow.ON_CLOSE)); } private function onSubmitBtnClick(_arg1:Event):void{ if (Game.soundOn){ new Button1Sound().play(); }; trace("score=", Game.getScore); navigateToURL(new URLRequest(((((("http://www.playonlinepuzzles.com/score.php?&gameid=angkorquest&score=" + Game.getScore) + "&name=") + this.txtName.text) + "&key=") + (((Game.getScore * Game.getScore) + (5 * Game.getScore)) + 34).toString())), "_blank"); m_submitScoreButton.removeEventListener(MouseEvent.CLICK, onSubmitBtnClick); } private function onEditNameClick(_arg1:Event):void{ if (m_FirstEditClick){ this.txtName.text = ""; }; m_FirstEditClick = false; } } }//package mainSection 121//TipPointer (main.TipPointer) package main { import flash.display.*; public dynamic class TipPointer extends MovieClip { } }//package mainSection 122//TooltipEvent (main.TooltipEvent) package main { import flash.events.*; import flash.geom.*; public class TooltipEvent extends Event { private var m_point:Point; public function TooltipEvent(_arg1:String, _arg2:Point, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); m_point = new Point(_arg2.x, _arg2.y); } public function get point():Point{ return (m_point); } } }//package mainSection 123//TooltipEventInfo (main.TooltipEventInfo) package main { import flash.geom.*; public class TooltipEventInfo { private var m_tooltip:uint; private var m_point:Point; public function TooltipEventInfo(_arg1:uint, _arg2:Point){ m_tooltip = _arg1; m_point = new Point(_arg2.x, _arg2.y); } public function get tooltip():uint{ return (m_tooltip); } public function get point():Point{ return (new Point(m_point.x, m_point.y)); } } }//package mainSection 124//TooltipWindow (main.TooltipWindow) package main { import flash.geom.*; import flash.text.*; import flash.display.*; public class TooltipWindow extends MyWindow { public var bg:MovieClip; public var m_tipWindowMov:MovieClip; public function TooltipWindow(_arg1:Point, _arg2:Point, _arg3:uint, _arg4:Point, _arg5:Point){ var _local16:Point; var _local17:*; var _local18:Number; var _local19:int; var _local20:int; var _local21:int; var _local22:int; super(_arg1); gotoAndStop(_arg3); var _local6:int = (width / 2); var _local7:int = (height / 2); var _local8:Point = new Point((_arg2.x - _arg1.x), (_arg2.y - _arg1.y)); var _local9:Vect = new Vect((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); _local9.mulScalar((GameSettings.TIP_POINTER_START / _local9.magnitude())); var _local10:Point = new Point((_local8.x + _local9.x), (_local8.y + _local9.y)); var _local11:* = new MyTipPointer(_local10, _local8); addChild(_local11); _local9.setMembers((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); var _local12:uint = GameSettings.TIP_WINDOW_START; _local9.mulScalar((_local12 / _local9.magnitude())); var _local13:Point = new Point((_arg2.x + _local9.x), (_arg2.y + _local9.y)); var _local14:Point = new Point(_arg1.x, _arg1.y); var _local15:Point = new Point(_arg1.x, _arg1.y); if (((pointInWindow(_local14, _local13)) || (pointInWindow(_local14, _arg2)))){ do { _local18 = ((_local9.y > 0)) ? 5 : -5; _local17 = ((_local9.x > 0)) ? 5 : -5; _local14.offset(_local17, _local18); _local19 = ((_local14.x + _local6) - _arg5.x); _local20 = ((_local14.y + _local7) - _arg5.y); _local21 = (_arg4.x - (_local14.x - _local6)); _local22 = (_arg4.y - (_local14.y - _local7)); if (_local19 > 0){ _local14.offset(-(_local19), 0); }; if (_local20 > 0){ _local14.offset(0, -(_local20)); }; if (_local21 > 0){ _local14.offset(_local21, 0); }; if (_local22 > 0){ _local14.offset(0, _local22); }; } while (!(_local14.equals(_local15))); } else { do { _local9.setMembers((_local14.x - _arg2.x), (_local14.y - _arg2.y)); _local12 = (_local9.magnitude() - 10); _local9.mulScalar((_local12 / _local9.magnitude())); _local14.x = (_arg2.x + _local9.x); _local14.y = (_arg2.y + _local9.y); } while (!(pointInWindow(_local14, _local13))); }; _local16 = localToGlobal(new Point(0, 0)); x = _local14.x; y = _local14.y; _local16 = globalToLocal(_local16); _local11.x = _local16.x; _local11.y = _local16.y; } private function pointInWindow(_arg1:Point, _arg2:Point):Boolean{ var _local3:Point = _arg1.subtract(new Point((m_tipWindowMov.width / 2), (m_tipWindowMov.height / 2))); var _local4:Point = _arg1.add(new Point((m_tipWindowMov.width / 2), (m_tipWindowMov.height / 2))); return ((((((((_arg2.x >= _local3.x)) && ((_arg2.x <= _local4.x)))) && ((_arg2.y >= _local3.y)))) && ((_arg2.y <= _local4.y)))); } } }//package mainSection 125//Triangle (main.Triangle) package main { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.filters.*; public class Triangle extends AlphaObject { public var m_ActiveTriangleRight:MovieClip; public var m_LocksRight:Locks; public var m_GoldTriangleRight:MovieClip; public var m_GoldTriangleLeft:MovieClip; public var m_ActiveTriangleLeft:MovieClip; public var m_LocksLeft:Locks; private var m_vertexSet:Array; private var m_ActiveTriangle:MovieClip; private var m_LockTriangle:Locks; private var m_GoldTriangle:MovieClip; private var m_state:int;// = 0 private var m_filter:BitmapFilter; private var m_row:int; private var m_col:int; private var m_isLeft:Boolean; private var m_mode:int;// = -1 public static const ON_GOLD_TRIANGLE = "onGoldtriangle"; public static const MODE_NORMAL = 1; public static const MODE_LOCK = 2; public static const MODE_DOUBLE_LOCK = 3; public static const MODE_COLOR_LOCK_A = 4; public static const MODE_COLOR_LOCK_B = 5; public static const MODE_COLOR_LOCK_C = 6; public static const MODE_COLOR_LOCK_1 = 7; public static const MODE_COLOR_LOCK_2 = 8; public static const MODE_COLOR_LOCK_3 = 9; public static const MODE_COLOR_LOCK_4 = 10; public static const MODE_COLOR_LOCK_5 = 11; public static const MODE_COLOR_LOCK_6 = 12; public static const MODE_COLOR_LOCK_7 = 13; public static const MODE_GOLD = 14; public static const STATE_NORMAL = 0; public static const STATE_ACTIVE = 1; public static const STATE_DISABLED = 2; private static var m_triHeight = 74; private static var m_triWidth = 64; public function Triangle(_arg1:Point, _arg2:Boolean, _arg3:int, _arg4:int, _arg5:int=1){ x = _arg1.x; y = _arg1.y; m_isLeft = _arg2; m_vertexSet = new Array(3); if (_arg2){ m_vertexSet[0] = new Point((triWidth / 2), (-(triHeight) / 2)); m_vertexSet[1] = new Point((-(triWidth) / 2), 0); m_vertexSet[2] = new Point((triWidth / 2), (triHeight / 2)); } else { m_vertexSet[0] = new Point((-(triWidth) / 2), (-(triHeight) / 2)); m_vertexSet[1] = new Point((-(triWidth) / 2), (triHeight / 2)); m_vertexSet[2] = new Point((triWidth / 2), 0); }; m_filter = new GlowFilter(16715824, 0.8, 6, 6, 2, 3, false, false); m_row = _arg3; m_col = _arg4; mode = _arg5; } public function UpdateMode(_arg1:Event):void{ if (m_isLeft){ m_ActiveTriangle = m_ActiveTriangleLeft; m_LockTriangle = m_LocksLeft; m_GoldTriangle = m_GoldTriangleLeft; } else { m_ActiveTriangle = m_ActiveTriangleRight; m_LockTriangle = m_LocksRight; m_GoldTriangle = m_GoldTriangleRight; }; if (((!(m_GoldTriangle)) || (!(m_LockTriangle)))){ return; }; m_GoldTriangle.gotoAndStop(1); m_GoldTriangle.visible = false; m_LockTriangle.gotoAndStop(1); state = m_state; switch (m_mode){ case Triangle.MODE_NORMAL: case Triangle.MODE_LOCK: case Triangle.MODE_DOUBLE_LOCK: case Triangle.MODE_COLOR_LOCK_1: case Triangle.MODE_COLOR_LOCK_2: case Triangle.MODE_COLOR_LOCK_3: case Triangle.MODE_COLOR_LOCK_4: case Triangle.MODE_COLOR_LOCK_5: case Triangle.MODE_COLOR_LOCK_6: case Triangle.MODE_COLOR_LOCK_7: m_LockTriangle.mode = m_mode; break; case Triangle.MODE_GOLD: if (m_LockTriangle.mode == Locks.MODE_NO_LOCK){ m_GoldTriangle.visible = true; m_GoldTriangle.play(); addEventListener(Event.ENTER_FRAME, onGoldTrianglePlaying); } else { m_LockTriangle.addEventListener(ObjectManager.AFTER_MODE_UPDATE, AfterLockDestroy); m_LockTriangle.mode = Locks.MODE_NO_LOCK; }; break; }; removeEventListener(Event.ENTER_FRAME, UpdateMode); } private function AfterLockDestroy(_arg1:Event){ var _local2:Locks = (_arg1.target as Locks); _local2.removeEventListener(ObjectManager.AFTER_MODE_UPDATE, AfterLockDestroy); m_GoldTriangle.visible = true; m_GoldTriangle.play(); addEventListener(Event.ENTER_FRAME, onGoldTrianglePlaying); } private function onGoldTrianglePlaying(_arg1:Event):void{ if (((!(m_GoldTriangle)) || (((m_GoldTriangle) && ((m_GoldTriangle.currentFrame == m_GoldTriangle.totalFrames)))))){ removeEventListener(Event.ENTER_FRAME, onGoldTrianglePlaying); if (m_GoldTriangle){ m_GoldTriangle.stop(); dispatchEvent(new Event(ON_GOLD_TRIANGLE)); }; }; } public function get mode():int{ return (m_mode); } public function set mode(_arg1){ var _local2:int; if (m_mode == _arg1){ return; }; m_mode = _arg1; if (m_isLeft){ _local2 = 1; } else { _local2 = 2; }; gotoAndStop(_local2); addEventListener(Event.ENTER_FRAME, UpdateMode); } public function get isLeft():Boolean{ return (m_isLeft); } public function getVertex(_arg1:int):Point{ return (new Point(m_vertexSet[_arg1].x, m_vertexSet[_arg1].y)); } public function get row(){ return (m_row); } public function get col(){ return (m_col); } public function get state():int{ return (m_state); } public function set state(_arg1:int){ m_state = _arg1; switch (m_state){ case Triangle.STATE_NORMAL: filters = null; hideActiveTriangle(); break; case Triangle.STATE_ACTIVE: filters = null; showActiveTriangle(); break; case Triangle.STATE_DISABLED: filters = new Array(m_filter); hideActiveTriangle(); break; }; } public function PointInTriangle(_arg1:Point):Boolean{ var _local2:int = (((m_vertexSet[1].y - m_vertexSet[0].y) * (_arg1.x - m_vertexSet[0].x)) - ((m_vertexSet[1].x - m_vertexSet[0].x) * (_arg1.y - m_vertexSet[0].y))); var _local3:int = (((m_vertexSet[2].y - m_vertexSet[1].y) * (_arg1.x - m_vertexSet[1].x)) - ((m_vertexSet[2].x - m_vertexSet[1].x) * (_arg1.y - m_vertexSet[1].y))); var _local4:int = (((m_vertexSet[0].y - m_vertexSet[2].y) * (_arg1.x - m_vertexSet[2].x)) - ((m_vertexSet[0].x - m_vertexSet[2].x) * (_arg1.y - m_vertexSet[2].y))); return ((((((((_local2 > 0)) && ((_local3 > 0)))) && ((_local4 > 0)))) || ((((((_local2 < 0)) && ((_local3 < 0)))) && ((_local4 < 0)))))); } private function showActiveTriangle(){ if (!m_ActiveTriangle){ return; }; m_ActiveTriangle.visible = true; m_ActiveTriangle.play(); } private function hideActiveTriangle(){ if (!m_ActiveTriangle){ return; }; m_ActiveTriangle.visible = false; m_ActiveTriangle.gotoAndStop(1); } public function get centerPoint():Point{ return (new Point((((m_vertexSet[0].x + m_vertexSet[1].x) + m_vertexSet[2].x) / 3), (((m_vertexSet[0].y + m_vertexSet[1].y) + m_vertexSet[2].y) / 3))); } public static function get triHeight():int{ return (m_triHeight); } public static function get triWidth():int{ return (m_triWidth); } } }//package mainSection 126//Vect (main.Vect) package main { public class Vect { var x:Number; var y:Number; public function Vect(_arg1:Number=0, _arg2:Number=0){ x = _arg1; y = _arg2; } function copyVect(_arg1:Vect):void{ x = _arg1.x; y = _arg1.y; } function setMembers(_arg1:Number, _arg2:Number):void{ x = _arg1; y = _arg2; } function addVect(_arg1:Vect):void{ x = (x + _arg1.x); y = (y + _arg1.y); } function subVect(_arg1:Vect):void{ x = (x - _arg1.x); y = (y - _arg1.y); } function mulScalar(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } function getMulScalar(_arg1:Number):Vect{ return (new Vect((x * _arg1), (y * _arg1))); } function magnitude():Number{ return (Math.sqrt(((x * x) + (y * y)))); } function magnitude2():Number{ return (((x * x) + (y * y))); } function vectorProjectionOnto(_arg1:Vect):Vect{ var _local2:Vect = _arg1.getUnitVect(); _local2.mulScalar(scalarProjectionOnto(_arg1)); return (_local2); } function getUnitVect():Vect{ var _local1:Number = magnitude(); var _local2:Vect = new Vect(x, y); if (_local1){ _local2.x = (_local2.x / _local1); _local2.y = (_local2.y / _local1); }; return (_local2); } function scalarProjectionOnto(_arg1:Vect):Number{ return ((((x * _arg1.x) + (y * _arg1.y)) / _arg1.magnitude())); } function getDirection():Number{ return (((Math.atan2(y, x) / Math.PI) * 180)); } } }//package mainSection 127//Win1Sound (main.Win1Sound) package main { import flash.media.*; public dynamic class Win1Sound extends Sound { } }//package main
Library Items
Symbol 1 Bitmap | Used by:2 | |
Symbol 2 Graphic | Uses:1 | Used by:Timeline |
Symbol 3 Font | Used by:4 219 220 221 222 223 224 272 336 358 359 | |
Symbol 4 EditableText | Uses:3 | Used by:17 |
Symbol 5 Graphic | Used by:6 | |
Symbol 6 MovieClip | Uses:5 | Used by:9 |
Symbol 7 Bitmap | Used by:8 | |
Symbol 8 Graphic | Uses:7 | Used by:9 |
Symbol 9 MovieClip | Uses:6 8 | Used by:17 |
Symbol 10 Bitmap | Used by:11 | |
Symbol 11 Graphic | Uses:10 | Used by:16 |
Symbol 12 Bitmap | Used by:13 | |
Symbol 13 Graphic | Uses:12 | Used by:16 |
Symbol 14 Bitmap | Used by:15 | |
Symbol 15 Graphic | Uses:14 | Used by:16 |
Symbol 16 Button | Uses:11 13 15 | Used by:17 |
Symbol 17 MovieClip {main.preloader} | Uses:4 9 16 | Used by:Timeline |
Symbol 18 Sound {main.BonusFullSound} | Used by:277 | |
Symbol 19 Sound {main.RotateSound} | Used by:277 | |
Symbol 20 Sound {main.Boom1Sound} | Used by:277 | |
Symbol 21 Sound {main.LevelBegin2Sound} | Used by:277 | |
Symbol 22 Sound {main.Burst1Sound} | Used by:277 | |
Symbol 23 Sound {main.RotateWrongSound} | Used by:277 | |
Symbol 24 Sound {main.LevelBegin1Sound} | Used by:277 | |
Symbol 25 Sound {main.RunningTimeSound} | Used by:277 | |
Symbol 26 Sound {main.Burst4Sound} | Used by:277 | |
Symbol 27 Sound {main.LevelCompleteSound} | Used by:277 | |
Symbol 28 Sound {main.Burst3Sound} | Used by:277 | |
Symbol 29 Sound {main.NoSound} | Used by:277 | |
Symbol 30 Sound {main.Win1Sound} | Used by:277 | |
Symbol 31 Sound {main.LevelSound} | Used by:277 | |
Symbol 32 Sound {main.Button1Sound} | Used by:277 | |
Symbol 33 Sound {main.BombaSound} | Used by:277 | |
Symbol 34 Sound {main.Burst5Sound} | Used by:277 | |
Symbol 35 Sound {main.Burst2Sound} | Used by:277 | |
Symbol 36 Sound {main.HintSound} | Used by:277 | |
Symbol 37 Sound {main.TimeOutSound} | Used by:277 | |
Symbol 38 Sound {main.Shuffle1Sound} | Used by:277 | |
Symbol 39 Sound {main.Lightning1Sound} | Used by:277 | |
Symbol 40 Sound {main.MenuSound} | Used by:277 | |
Symbol 41 Bitmap | Used by:42 | |
Symbol 42 Graphic | Uses:41 | Used by:64 226 251 |
Symbol 43 Graphic | Used by:44 | |
Symbol 44 MovieClip | Uses:43 | Used by:64 251 |
Symbol 45 Font | Used by:46 47 50 56 58 59 60 62 63 67 69 71 73 78 79 80 192 193 194 195 196 197 198 199 200 216 225 229 231 246 247 249 250 257 258 259 260 261 262 263 264 265 266 267 268 269 273 292 715 | |
Symbol 46 EditableText | Uses:45 | Used by:64 |
Symbol 47 Text | Uses:45 | Used by:64 |
Symbol 48 Bitmap | Used by:49 | |
Symbol 49 Graphic | Uses:48 | Used by:55 57 61 68 70 72 74 217 232 233 248 274 716 717 |
Symbol 50 Text | Uses:45 | Used by:55 |
Symbol 51 Bitmap | Used by:52 | |
Symbol 52 Graphic | Uses:51 | Used by:55 57 61 68 70 72 74 217 232 233 248 274 716 717 |
Symbol 53 Bitmap | Used by:54 | |
Symbol 54 Graphic | Uses:53 | Used by:55 57 61 68 70 72 74 217 232 233 248 274 716 717 |
Symbol 55 Button | Uses:49 50 52 54 | Used by:64 251 Timeline |
Symbol 56 Text | Uses:45 | Used by:57 |
Symbol 57 Button | Uses:49 56 52 54 | Used by:64 75 226 243 397 Timeline |
Symbol 58 Text | Uses:45 | Used by:64 |
Symbol 59 Text | Uses:45 | Used by:61 |
Symbol 60 Text | Uses:45 | Used by:61 |
Symbol 61 Button | Uses:49 59 52 60 54 | Used by:64 251 |
Symbol 62 Text | Uses:45 | Used by:64 251 |
Symbol 63 EditableText | Uses:45 | Used by:64 |
Symbol 64 MovieClip {main.GameCompleteWindow} | Uses:42 44 46 47 55 57 58 61 62 63 | Used by:Timeline |
Symbol 65 Bitmap | Used by:66 230 | |
Symbol 66 Graphic | Uses:65 | Used by:75 |
Symbol 67 Text | Uses:45 | Used by:68 |
Symbol 68 Button | Uses:49 67 52 54 | Used by:75 Timeline |
Symbol 69 Text | Uses:45 | Used by:70 |
Symbol 70 Button | Uses:49 69 52 54 | Used by:75 Timeline |
Symbol 71 Text | Uses:45 | Used by:72 233 |
Symbol 72 Button | Uses:49 71 52 54 | Used by:75 Timeline |
Symbol 73 Text | Uses:45 | Used by:74 |
Symbol 74 Button | Uses:49 73 52 54 | Used by:75 Timeline |
Symbol 75 MovieClip {main.GameMenuWindow} | Uses:66 68 70 72 74 57 | Used by:Timeline |
Symbol 76 Bitmap | Used by:77 | |
Symbol 77 Graphic | Uses:76 | Used by:81 201 |
Symbol 78 Text | Uses:45 | Used by:81 |
Symbol 79 Text | Uses:45 | Used by:81 201 |
Symbol 80 Text | Uses:45 | Used by:81 |
Symbol 81 MovieClip | Uses:77 78 79 80 | Used by:189 |
Symbol 82 Bitmap | Used by:84 281 | |
Symbol 83 Bitmap | Used by:84 279 | |
Symbol 84 Graphic | Uses:82 83 | Used by:187 |
Symbol 85 Bitmap | Used by:86 | |
Symbol 86 Graphic | Uses:85 | Used by:87 720 |
Symbol 87 MovieClip {main.Figure1Normal} | Uses:86 | Used by:187 Timeline |
Symbol 88 Bitmap | Used by:89 | |
Symbol 89 Graphic | Uses:88 | Used by:90 616 |
Symbol 90 MovieClip {main.Figure4Normal} | Uses:89 | Used by:187 Timeline |
Symbol 91 Bitmap | Used by:92 | |
Symbol 92 Graphic | Uses:91 | Used by:93 610 |
Symbol 93 MovieClip {main.Figure2Normal} | Uses:92 | Used by:187 Timeline |
Symbol 94 Bitmap | Used by:95 | |
Symbol 95 Graphic | Uses:94 | Used by:96 613 |
Symbol 96 MovieClip {main.Figure3Normal} | Uses:95 | Used by:187 Timeline |
Symbol 97 Bitmap | Used by:98 | |
Symbol 98 Graphic | Uses:97 | Used by:109 |
Symbol 99 Bitmap | Used by:100 | |
Symbol 100 Graphic | Uses:99 | Used by:109 |
Symbol 101 Bitmap | Used by:102 | |
Symbol 102 Graphic | Uses:101 | Used by:109 |
Symbol 103 Bitmap | Used by:104 | |
Symbol 104 Graphic | Uses:103 | Used by:109 |
Symbol 105 Bitmap | Used by:106 | |
Symbol 106 Graphic | Uses:105 | Used by:109 |
Symbol 107 Bitmap | Used by:108 | |
Symbol 108 Graphic | Uses:107 | Used by:109 |
Symbol 109 MovieClip | Uses:98 100 102 104 106 108 | Used by:187 283 |
Symbol 110 Bitmap | Used by:111 | |
Symbol 111 Graphic | Uses:110 | Used by:122 |
Symbol 112 Bitmap | Used by:113 | |
Symbol 113 Graphic | Uses:112 | Used by:122 |
Symbol 114 Bitmap | Used by:115 | |
Symbol 115 Graphic | Uses:114 | Used by:122 |
Symbol 116 Bitmap | Used by:117 | |
Symbol 117 Graphic | Uses:116 | Used by:122 |
Symbol 118 Bitmap | Used by:119 | |
Symbol 119 Graphic | Uses:118 | Used by:122 |
Symbol 120 Bitmap | Used by:121 | |
Symbol 121 Graphic | Uses:120 | Used by:122 |
Symbol 122 MovieClip | Uses:111 113 115 117 119 121 | Used by:187 283 |
Symbol 123 Bitmap | Used by:124 | |
Symbol 124 Graphic | Uses:123 | Used by:187 280 |
Symbol 125 Bitmap | Used by:126 | |
Symbol 126 Graphic | Uses:125 | Used by:139 |
Symbol 127 Bitmap | Used by:128 | |
Symbol 128 Graphic | Uses:127 | Used by:139 |
Symbol 129 Bitmap | Used by:130 | |
Symbol 130 Graphic | Uses:129 | Used by:139 |
Symbol 131 Bitmap | Used by:132 | |
Symbol 132 Graphic | Uses:131 | Used by:139 |
Symbol 133 Bitmap | Used by:134 | |
Symbol 134 Graphic | Uses:133 | Used by:139 |
Symbol 135 Bitmap | Used by:136 | |
Symbol 136 Graphic | Uses:135 | Used by:139 |
Symbol 137 Bitmap | Used by:138 | |
Symbol 138 Graphic | Uses:137 | Used by:139 |
Symbol 139 MovieClip {main.Figure4Destroying} | Uses:126 128 130 132 134 136 138 | Used by:187 Timeline |
Symbol 140 Bitmap | Used by:141 | |
Symbol 141 Graphic | Uses:140 | Used by:154 |
Symbol 142 Bitmap | Used by:143 | |
Symbol 143 Graphic | Uses:142 | Used by:154 |
Symbol 144 Bitmap | Used by:145 | |
Symbol 145 Graphic | Uses:144 | Used by:154 |
Symbol 146 Bitmap | Used by:147 | |
Symbol 147 Graphic | Uses:146 | Used by:154 |
Symbol 148 Bitmap | Used by:149 | |
Symbol 149 Graphic | Uses:148 | Used by:154 |
Symbol 150 Bitmap | Used by:151 | |
Symbol 151 Graphic | Uses:150 | Used by:154 |
Symbol 152 Bitmap | Used by:153 | |
Symbol 153 Graphic | Uses:152 | Used by:154 |
Symbol 154 MovieClip {main.Figure2Destroying} | Uses:141 143 145 147 149 151 153 | Used by:187 Timeline |
Symbol 155 Bitmap | Used by:156 | |
Symbol 156 Graphic | Uses:155 | Used by:169 |
Symbol 157 Bitmap | Used by:158 | |
Symbol 158 Graphic | Uses:157 | Used by:169 |
Symbol 159 Bitmap | Used by:160 | |
Symbol 160 Graphic | Uses:159 | Used by:169 |
Symbol 161 Bitmap | Used by:162 | |
Symbol 162 Graphic | Uses:161 | Used by:169 |
Symbol 163 Bitmap | Used by:164 | |
Symbol 164 Graphic | Uses:163 | Used by:169 |
Symbol 165 Bitmap | Used by:166 | |
Symbol 166 Graphic | Uses:165 | Used by:169 |
Symbol 167 Bitmap | Used by:168 | |
Symbol 168 Graphic | Uses:167 | Used by:169 |
Symbol 169 MovieClip {main.Figure1Destroying} | Uses:156 158 160 162 164 166 168 | Used by:187 Timeline |
Symbol 170 Bitmap | Used by:171 | |
Symbol 171 Graphic | Uses:170 | Used by:187 282 |
Symbol 172 Bitmap | Used by:173 | |
Symbol 173 Graphic | Uses:172 | Used by:186 |
Symbol 174 Bitmap | Used by:175 | |
Symbol 175 Graphic | Uses:174 | Used by:186 |
Symbol 176 Bitmap | Used by:177 | |
Symbol 177 Graphic | Uses:176 | Used by:186 |
Symbol 178 Bitmap | Used by:179 | |
Symbol 179 Graphic | Uses:178 | Used by:186 |
Symbol 180 Bitmap | Used by:181 | |
Symbol 181 Graphic | Uses:180 | Used by:186 |
Symbol 182 Bitmap | Used by:183 | |
Symbol 183 Graphic | Uses:182 | Used by:186 |
Symbol 184 Bitmap | Used by:185 | |
Symbol 185 Graphic | Uses:184 | Used by:186 |
Symbol 186 MovieClip {main.Figure3Destroying} | Uses:173 175 177 179 181 183 185 | Used by:187 Timeline |
Symbol 187 MovieClip | Uses:84 87 90 93 96 109 122 124 139 154 169 171 186 | Used by:188 |
Symbol 188 MovieClip | Uses:187 | Used by:189 201 |
Symbol 189 MovieClip {main.HelpTooltipWindow} | Uses:81 188 | Used by:Timeline |
Symbol 190 Graphic | Used by:191 | |
Symbol 191 Button | Uses:190 | Used by:218 275 |
Symbol 192 Text | Uses:45 | Used by:201 |
Symbol 193 Text | Uses:45 | Used by:201 |
Symbol 194 Text | Uses:45 | Used by:201 |
Symbol 195 Text | Uses:45 | Used by:201 |
Symbol 196 Text | Uses:45 | Used by:201 |
Symbol 197 Text | Uses:45 | Used by:201 |
Symbol 198 Text | Uses:45 | Used by:201 |
Symbol 199 Text | Uses:45 | Used by:201 |
Symbol 200 Text | Uses:45 | Used by:201 |
Symbol 201 MovieClip | Uses:77 192 79 188 193 194 195 196 197 198 199 200 | Used by:218 |
Symbol 202 Bitmap | Used by:203 | |
Symbol 203 Graphic | Uses:202 | Used by:208 |
Symbol 204 Bitmap | Used by:205 | |
Symbol 205 Graphic | Uses:204 | Used by:208 |
Symbol 206 Bitmap | Used by:207 | |
Symbol 207 Graphic | Uses:206 | Used by:208 |
Symbol 208 Button | Uses:203 205 207 | Used by:218 Timeline |
Symbol 209 Bitmap | Used by:210 | |
Symbol 210 Graphic | Uses:209 | Used by:215 |
Symbol 211 Bitmap | Used by:212 | |
Symbol 212 Graphic | Uses:211 | Used by:215 |
Symbol 213 Bitmap | Used by:214 | |
Symbol 214 Graphic | Uses:213 | Used by:215 |
Symbol 215 Button | Uses:210 212 214 | Used by:218 Timeline |
Symbol 216 Text | Uses:45 | Used by:217 |
Symbol 217 Button | Uses:49 216 52 54 | Used by:218 226 275 Timeline |
Symbol 218 MovieClip {main.HelpWindow} | Uses:191 201 208 215 217 | Used by:Timeline |
Symbol 219 Text | Uses:3 | Used by:226 |
Symbol 220 Text | Uses:3 | Used by:226 |
Symbol 221 Text | Uses:3 | Used by:226 |
Symbol 222 EditableText | Uses:3 | Used by:226 |
Symbol 223 EditableText | Uses:3 | Used by:226 |
Symbol 224 EditableText | Uses:3 | Used by:226 |
Symbol 225 Text | Uses:45 | Used by:226 |
Symbol 226 MovieClip {main.LevelCompleteWindow} | Uses:42 219 220 221 222 223 224 225 217 57 | Used by:Timeline |
Symbol 227 Bitmap | Used by:228 | |
Symbol 228 Graphic | Uses:227 | Used by:243 |
Symbol 229 Text | Uses:45 | Used by:243 |
Symbol 230 Graphic | Uses:65 | Used by:243 |
Symbol 231 Text | Uses:45 | Used by:232 |
Symbol 232 Button | Uses:49 231 52 54 | Used by:243 Timeline |
Symbol 233 Button | Uses:49 71 52 54 | Used by:243 Timeline |
Symbol 234 Bitmap | Used by:235 | |
Symbol 235 Graphic | Uses:234 | Used by:243 |
Symbol 236 Bitmap | Used by:237 | |
Symbol 237 Graphic | Uses:236 | Used by:242 |
Symbol 238 Bitmap | Used by:239 | |
Symbol 239 Graphic | Uses:238 | Used by:242 |
Symbol 240 Bitmap | Used by:241 | |
Symbol 241 Graphic | Uses:240 | Used by:242 |
Symbol 242 Button | Uses:237 239 241 | Used by:243 |
Symbol 243 MovieClip {main.MainMenuWindow} | Uses:228 229 230 232 233 57 235 242 | Used by:Timeline |
Symbol 244 Graphic | Used by:245 | |
Symbol 245 MovieClip {main.MenuBackgroundWindow} | Uses:244 | Used by:Timeline |
Symbol 246 Text | Uses:45 | Used by:251 |
Symbol 247 Text | Uses:45 | Used by:248 |
Symbol 248 Button | Uses:49 247 52 54 | Used by:251 Timeline |
Symbol 249 EditableText | Uses:45 | Used by:251 |
Symbol 250 EditableText | Uses:45 | Used by:251 |
Symbol 251 MovieClip {main.TimeOutWindow} | Uses:42 246 55 248 44 249 62 250 61 | Used by:Timeline |
Symbol 252 Graphic | Used by:253 | |
Symbol 253 MovieClip | Uses:252 | Used by:270 |
Symbol 254 Bitmap | Used by:255 271 | |
Symbol 255 Graphic | Uses:254 | Used by:256 |
Symbol 256 MovieClip | Uses:255 | Used by:270 |
Symbol 257 Text | Uses:45 | Used by:270 |
Symbol 258 Text | Uses:45 | Used by:270 |
Symbol 259 Text | Uses:45 | Used by:270 |
Symbol 260 Text | Uses:45 | Used by:270 |
Symbol 261 Text | Uses:45 | Used by:270 |
Symbol 262 Text | Uses:45 | Used by:270 |
Symbol 263 Text | Uses:45 | Used by:270 |
Symbol 264 Text | Uses:45 | Used by:270 |
Symbol 265 Text | Uses:45 | Used by:270 |
Symbol 266 Text | Uses:45 | Used by:270 |
Symbol 267 Text | Uses:45 | Used by:270 |
Symbol 268 Text | Uses:45 | Used by:270 |
Symbol 269 Text | Uses:45 | Used by:270 |
Symbol 270 MovieClip {main.TooltipWindow} | Uses:253 256 257 258 259 260 261 262 263 264 265 266 267 268 269 | Used by:Timeline |
Symbol 271 Graphic | Uses:254 | Used by:275 |
Symbol 272 EditableText | Uses:3 | Used by:275 |
Symbol 273 Text | Uses:45 | Used by:274 |
Symbol 274 Button | Uses:49 273 52 54 | Used by:275 |
Symbol 275 MovieClip {main.SureWindow} | Uses:191 271 272 217 274 | Used by:Timeline |
Symbol 276 Bitmap {cursor.png} | Used by:277 714 | |
Symbol 277 MovieClip {main.SoundContainer} | Uses:276 30 37 38 25 19 23 29 40 39 27 21 24 36 32 34 26 28 35 22 20 18 33 31 | Used by:Timeline |
Symbol 278 MovieClip {main.Locks} | Used by:283 Timeline | |
Symbol 279 Graphic | Uses:83 | Used by:283 |
Symbol 280 MovieClip | Uses:124 | Used by:283 |
Symbol 281 Graphic | Uses:82 | Used by:283 |
Symbol 282 MovieClip | Uses:171 | Used by:283 |
Symbol 283 MovieClip {main.Triangle} | Uses:279 278 280 109 281 282 122 | Used by:Timeline |
Symbol 284 Bitmap | Used by:285 | |
Symbol 285 Graphic | Uses:284 | Used by:286 |
Symbol 286 MovieClip {main.TipPointer} | Uses:285 | Used by:Timeline |
Symbol 287 Bitmap | Used by:288 | |
Symbol 288 Graphic | Uses:287 | Used by:289 |
Symbol 289 MovieClip {main.PlayingField} | Uses:288 | Used by:Timeline |
Symbol 290 MovieClip {main.MyTipPointer} | Used by:Timeline | |
Symbol 291 MovieClip {main.MyLightning} | Used by:Timeline | |
Symbol 292 EditableText | Uses:45 | Used by:293 |
Symbol 293 MovieClip {main.LevelNumber} | Uses:292 | Used by:Timeline |
Symbol 294 Font | Used by:295 | |
Symbol 295 EditableText | Uses:294 | Used by:296 |
Symbol 296 MovieClip {main.FlyingNumber} | Uses:295 | Used by:Timeline |
Symbol 297 MovieClip {main.FigurePlace} | Used by:Timeline | |
Symbol 298 Bitmap | Used by:299 | |
Symbol 299 Graphic | Uses:298 | Used by:314 |
Symbol 300 Bitmap | Used by:301 | |
Symbol 301 Graphic | Uses:300 | Used by:314 |
Symbol 302 Bitmap | Used by:303 | |
Symbol 303 Graphic | Uses:302 | Used by:314 |
Symbol 304 Bitmap | Used by:305 | |
Symbol 305 Graphic | Uses:304 | Used by:314 |
Symbol 306 Bitmap | Used by:307 | |
Symbol 307 Graphic | Uses:306 | Used by:314 |
Symbol 308 Bitmap | Used by:309 | |
Symbol 309 Graphic | Uses:308 | Used by:314 |
Symbol 310 Bitmap | Used by:311 | |
Symbol 311 Graphic | Uses:310 | Used by:314 |
Symbol 312 Bitmap | Used by:313 | |
Symbol 313 Graphic | Uses:312 | Used by:314 |
Symbol 314 MovieClip {main.Chain1} | Uses:299 301 303 305 307 309 311 313 | Used by:Timeline |
Symbol 315 Bitmap | Used by:316 | |
Symbol 316 Graphic | Uses:315 | Used by:331 |
Symbol 317 Bitmap | Used by:318 | |
Symbol 318 Graphic | Uses:317 | Used by:331 |
Symbol 319 Bitmap | Used by:320 | |
Symbol 320 Graphic | Uses:319 | Used by:331 |
Symbol 321 Bitmap | Used by:322 | |
Symbol 322 Graphic | Uses:321 | Used by:331 |
Symbol 323 Bitmap | Used by:324 | |
Symbol 324 Graphic | Uses:323 | Used by:331 |
Symbol 325 Bitmap | Used by:326 | |
Symbol 326 Graphic | Uses:325 | Used by:331 |
Symbol 327 Bitmap | Used by:328 | |
Symbol 328 Graphic | Uses:327 | Used by:331 |
Symbol 329 Bitmap | Used by:330 | |
Symbol 330 Graphic | Uses:329 | Used by:331 |
Symbol 331 MovieClip {main.Chain2} | Uses:316 318 320 322 324 326 328 330 | Used by:Timeline |
Symbol 332 MovieClip {main.Chains} | Used by:Timeline | |
Symbol 333 Graphic | Used by:337 | |
Symbol 334 Bitmap | Used by:335 | |
Symbol 335 Graphic | Uses:334 | Used by:337 |
Symbol 336 EditableText | Uses:3 | Used by:337 |
Symbol 337 MovieClip {main.BombButtonFilling} | Uses:333 335 336 | Used by:397 Timeline |
Symbol 338 Bitmap | Used by:339 | |
Symbol 339 Graphic | Uses:338 | Used by:340 344 |
Symbol 340 MovieClip {main.BombMovie} | Uses:339 | Used by:397 Timeline |
Symbol 341 Bitmap | Used by:342 | |
Symbol 342 Graphic | Uses:341 | Used by:343 |
Symbol 343 MovieClip {main.BombMovieDisabled} | Uses:342 | Used by:Timeline |
Symbol 344 MovieClip {main.BombMovieNormal} | Uses:339 | Used by:Timeline |
Symbol 345 Bitmap | Used by:346 | |
Symbol 346 Graphic | Uses:345 | Used by:347 |
Symbol 347 MovieClip {main.BombMovieOver} | Uses:346 | Used by:Timeline |
Symbol 348 Bitmap | Used by:349 | |
Symbol 349 Graphic | Uses:348 | Used by:350 |
Symbol 350 MovieClip {main.BombMoviePressed} | Uses:349 | Used by:Timeline |
Symbol 351 Bitmap | Used by:352 | |
Symbol 352 Graphic | Uses:351 | Used by:353 |
Symbol 353 MovieClip | Uses:352 | Used by:397 |
Symbol 354 Graphic | Used by:357 | |
Symbol 355 Bitmap | Used by:356 | |
Symbol 356 Graphic | Uses:355 | Used by:357 |
Symbol 357 MovieClip | Uses:354 356 | Used by:397 |
Symbol 358 EditableText | Uses:3 | Used by:397 |
Symbol 359 EditableText | Uses:3 | Used by:397 |
Symbol 360 Graphic | Used by:363 | |
Symbol 361 Bitmap | Used by:362 | |
Symbol 362 Graphic | Uses:361 | Used by:363 |
Symbol 363 MovieClip {main.ShuffleButtonFilling} | Uses:360 362 | Used by:397 Timeline |
Symbol 364 Bitmap | Used by:365 | |
Symbol 365 Graphic | Uses:364 | Used by:366 705 |
Symbol 366 MovieClip {main.ShuffleButton} | Uses:365 | Used by:397 Timeline |
Symbol 367 Bitmap | Used by:368 | |
Symbol 368 Graphic | Uses:367 | Used by:373 |
Symbol 369 Bitmap | Used by:370 | |
Symbol 370 Graphic | Uses:369 | Used by:373 |
Symbol 371 Bitmap | Used by:372 | |
Symbol 372 Graphic | Uses:371 | Used by:373 |
Symbol 373 Button | Uses:368 370 372 | Used by:397 Timeline |
Symbol 374 Bitmap | Used by:375 | |
Symbol 375 Graphic | Uses:374 | Used by:382 383 |
Symbol 376 Bitmap | Used by:377 | |
Symbol 377 Graphic | Uses:376 | Used by:382 383 |
Symbol 378 Bitmap | Used by:379 | |
Symbol 379 Graphic | Uses:378 | Used by:382 383 |
Symbol 380 Bitmap | Used by:381 | |
Symbol 381 Graphic | Uses:380 | Used by:382 383 |
Symbol 382 Button | Uses:375 377 379 381 | Used by:397 |
Symbol 383 Button | Uses:379 381 375 377 | Used by:397 |
Symbol 384 Bitmap | Used by:385 | |
Symbol 385 Graphic | Uses:384 | Used by:392 393 |
Symbol 386 Bitmap | Used by:387 | |
Symbol 387 Graphic | Uses:386 | Used by:392 393 |
Symbol 388 Bitmap | Used by:389 | |
Symbol 389 Graphic | Uses:388 | Used by:392 393 |
Symbol 390 Bitmap | Used by:391 | |
Symbol 391 Graphic | Uses:390 | Used by:392 393 |
Symbol 392 Button | Uses:385 387 389 391 | Used by:397 |
Symbol 393 Button | Uses:389 391 385 387 | Used by:397 |
Symbol 394 Bitmap | Used by:395 | |
Symbol 395 Graphic | Uses:394 | Used by:396 447 |
Symbol 396 MovieClip {main.LightningButton} | Uses:395 | Used by:397 Timeline |
Symbol 397 MovieClip {main.Game} | Uses:353 357 358 359 363 366 337 340 373 382 383 392 393 57 396 | Used by:Timeline |
Symbol 398 Bitmap | Used by:399 | |
Symbol 399 Graphic | Uses:398 | Used by:420 |
Symbol 400 Bitmap | Used by:401 | |
Symbol 401 Graphic | Uses:400 | Used by:420 |
Symbol 402 Bitmap | Used by:403 | |
Symbol 403 Graphic | Uses:402 | Used by:420 |
Symbol 404 Bitmap | Used by:405 | |
Symbol 405 Graphic | Uses:404 | Used by:420 |
Symbol 406 Bitmap | Used by:407 | |
Symbol 407 Graphic | Uses:406 | Used by:420 |
Symbol 408 Bitmap | Used by:409 | |
Symbol 409 Graphic | Uses:408 | Used by:420 |
Symbol 410 Bitmap | Used by:411 | |
Symbol 411 Graphic | Uses:410 | Used by:420 |
Symbol 412 Bitmap | Used by:413 | |
Symbol 413 Graphic | Uses:412 | Used by:420 |
Symbol 414 Bitmap | Used by:415 | |
Symbol 415 Graphic | Uses:414 | Used by:420 |
Symbol 416 Bitmap | Used by:417 | |
Symbol 417 Graphic | Uses:416 | Used by:420 |
Symbol 418 Bitmap | Used by:419 | |
Symbol 419 Graphic | Uses:418 | Used by:420 |
Symbol 420 MovieClip {main.Lightning} | Uses:399 401 403 405 407 409 411 413 415 417 419 | Used by:Timeline |
Symbol 421 Bitmap | Used by:422 | |
Symbol 422 Graphic | Uses:421 | Used by:443 |
Symbol 423 Bitmap | Used by:424 | |
Symbol 424 Graphic | Uses:423 | Used by:443 |
Symbol 425 Bitmap | Used by:426 | |
Symbol 426 Graphic | Uses:425 | Used by:443 |
Symbol 427 Bitmap | Used by:428 | |
Symbol 428 Graphic | Uses:427 | Used by:443 |
Symbol 429 Bitmap | Used by:430 | |
Symbol 430 Graphic | Uses:429 | Used by:443 |
Symbol 431 Bitmap | Used by:432 | |
Symbol 432 Graphic | Uses:431 | Used by:443 |
Symbol 433 Bitmap | Used by:434 | |
Symbol 434 Graphic | Uses:433 | Used by:443 |
Symbol 435 Bitmap | Used by:436 | |
Symbol 436 Graphic | Uses:435 | Used by:443 |
Symbol 437 Bitmap | Used by:438 | |
Symbol 438 Graphic | Uses:437 | Used by:443 |
Symbol 439 Bitmap | Used by:440 | |
Symbol 440 Graphic | Uses:439 | Used by:443 |
Symbol 441 Bitmap | Used by:442 | |
Symbol 442 Graphic | Uses:441 | Used by:443 |
Symbol 443 MovieClip {main.LightningEnd} | Uses:422 424 426 428 430 432 434 436 438 440 442 | Used by:Timeline |
Symbol 444 Bitmap | Used by:445 | |
Symbol 445 Graphic | Uses:444 | Used by:446 |
Symbol 446 MovieClip {main.LightningMovieDisabled} | Uses:445 | Used by:Timeline |
Symbol 447 MovieClip {main.LightningMovieNormal} | Uses:395 | Used by:Timeline |
Symbol 448 Bitmap | Used by:449 | |
Symbol 449 Graphic | Uses:448 | Used by:450 |
Symbol 450 MovieClip {main.LightningMovieOver} | Uses:449 | Used by:Timeline |
Symbol 451 Bitmap | Used by:452 | |
Symbol 452 Graphic | Uses:451 | Used by:453 |
Symbol 453 MovieClip {main.LightningMoviePressed} | Uses:452 | Used by:Timeline |
Symbol 454 Bitmap | Used by:455 | |
Symbol 455 Graphic | Uses:454 | Used by:470 |
Symbol 456 Bitmap | Used by:457 | |
Symbol 457 Graphic | Uses:456 | Used by:470 |
Symbol 458 Bitmap | Used by:459 | |
Symbol 459 Graphic | Uses:458 | Used by:470 |
Symbol 460 Bitmap | Used by:461 | |
Symbol 461 Graphic | Uses:460 | Used by:470 |
Symbol 462 Bitmap | Used by:463 | |
Symbol 463 Graphic | Uses:462 | Used by:470 |
Symbol 464 Bitmap | Used by:465 | |
Symbol 465 Graphic | Uses:464 | Used by:470 |
Symbol 466 Bitmap | Used by:467 | |
Symbol 467 Graphic | Uses:466 | Used by:470 |
Symbol 468 Bitmap | Used by:469 | |
Symbol 469 Graphic | Uses:468 | Used by:470 |
Symbol 470 MovieClip {main.Lock1} | Uses:455 457 459 461 463 465 467 469 | Used by:Timeline |
Symbol 471 Bitmap | Used by:472 | |
Symbol 472 Graphic | Uses:471 | Used by:487 |
Symbol 473 Bitmap | Used by:474 | |
Symbol 474 Graphic | Uses:473 | Used by:487 |
Symbol 475 Bitmap | Used by:476 | |
Symbol 476 Graphic | Uses:475 | Used by:487 |
Symbol 477 Bitmap | Used by:478 | |
Symbol 478 Graphic | Uses:477 | Used by:487 |
Symbol 479 Bitmap | Used by:480 | |
Symbol 480 Graphic | Uses:479 | Used by:487 |
Symbol 481 Bitmap | Used by:482 | |
Symbol 482 Graphic | Uses:481 | Used by:487 |
Symbol 483 Bitmap | Used by:484 | |
Symbol 484 Graphic | Uses:483 | Used by:487 |
Symbol 485 Bitmap | Used by:486 | |
Symbol 486 Graphic | Uses:485 | Used by:487 |
Symbol 487 MovieClip {main.Lock2} | Uses:472 474 476 478 480 482 484 486 | Used by:Timeline |
Symbol 488 Bitmap | Used by:489 | |
Symbol 489 Graphic | Uses:488 | Used by:504 |
Symbol 490 Bitmap | Used by:491 | |
Symbol 491 Graphic | Uses:490 | Used by:504 |
Symbol 492 Bitmap | Used by:493 | |
Symbol 493 Graphic | Uses:492 | Used by:504 |
Symbol 494 Bitmap | Used by:495 | |
Symbol 495 Graphic | Uses:494 | Used by:504 |
Symbol 496 Bitmap | Used by:497 | |
Symbol 497 Graphic | Uses:496 | Used by:504 |
Symbol 498 Bitmap | Used by:499 | |
Symbol 499 Graphic | Uses:498 | Used by:504 |
Symbol 500 Bitmap | Used by:501 | |
Symbol 501 Graphic | Uses:500 | Used by:504 |
Symbol 502 Bitmap | Used by:503 | |
Symbol 503 Graphic | Uses:502 | Used by:504 |
Symbol 504 MovieClip {main.Lock3} | Uses:489 491 493 495 497 499 501 503 | Used by:Timeline |
Symbol 505 Bitmap | Used by:506 | |
Symbol 506 Graphic | Uses:505 | Used by:521 |
Symbol 507 Bitmap | Used by:508 | |
Symbol 508 Graphic | Uses:507 | Used by:521 |
Symbol 509 Bitmap | Used by:510 | |
Symbol 510 Graphic | Uses:509 | Used by:521 |
Symbol 511 Bitmap | Used by:512 | |
Symbol 512 Graphic | Uses:511 | Used by:521 |
Symbol 513 Bitmap | Used by:514 | |
Symbol 514 Graphic | Uses:513 | Used by:521 |
Symbol 515 Bitmap | Used by:516 | |
Symbol 516 Graphic | Uses:515 | Used by:521 |
Symbol 517 Bitmap | Used by:518 | |
Symbol 518 Graphic | Uses:517 | Used by:521 |
Symbol 519 Bitmap | Used by:520 | |
Symbol 520 Graphic | Uses:519 | Used by:521 |
Symbol 521 MovieClip {main.Lock4} | Uses:506 508 510 512 514 516 518 520 | Used by:Timeline |
Symbol 522 Bitmap | Used by:523 | |
Symbol 523 Graphic | Uses:522 | Used by:538 |
Symbol 524 Bitmap | Used by:525 | |
Symbol 525 Graphic | Uses:524 | Used by:538 |
Symbol 526 Bitmap | Used by:527 | |
Symbol 527 Graphic | Uses:526 | Used by:538 |
Symbol 528 Bitmap | Used by:529 | |
Symbol 529 Graphic | Uses:528 | Used by:538 |
Symbol 530 Bitmap | Used by:531 | |
Symbol 531 Graphic | Uses:530 | Used by:538 |
Symbol 532 Bitmap | Used by:533 | |
Symbol 533 Graphic | Uses:532 | Used by:538 |
Symbol 534 Bitmap | Used by:535 | |
Symbol 535 Graphic | Uses:534 | Used by:538 |
Symbol 536 Bitmap | Used by:537 | |
Symbol 537 Graphic | Uses:536 | Used by:538 |
Symbol 538 MovieClip {main.Lock5} | Uses:523 525 527 529 531 533 535 537 | Used by:Timeline |
Symbol 539 Bitmap | Used by:540 | |
Symbol 540 Graphic | Uses:539 | Used by:555 |
Symbol 541 Bitmap | Used by:542 | |
Symbol 542 Graphic | Uses:541 | Used by:555 |
Symbol 543 Bitmap | Used by:544 | |
Symbol 544 Graphic | Uses:543 | Used by:555 |
Symbol 545 Bitmap | Used by:546 | |
Symbol 546 Graphic | Uses:545 | Used by:555 |
Symbol 547 Bitmap | Used by:548 | |
Symbol 548 Graphic | Uses:547 | Used by:555 |
Symbol 549 Bitmap | Used by:550 | |
Symbol 550 Graphic | Uses:549 | Used by:555 |
Symbol 551 Bitmap | Used by:552 | |
Symbol 552 Graphic | Uses:551 | Used by:555 |
Symbol 553 Bitmap | Used by:554 | |
Symbol 554 Graphic | Uses:553 | Used by:555 |
Symbol 555 MovieClip {main.Lock6} | Uses:540 542 544 546 548 550 552 554 | Used by:Timeline |
Symbol 556 Bitmap | Used by:557 | |
Symbol 557 Graphic | Uses:556 | Used by:572 |
Symbol 558 Bitmap | Used by:559 | |
Symbol 559 Graphic | Uses:558 | Used by:572 |
Symbol 560 Bitmap | Used by:561 | |
Symbol 561 Graphic | Uses:560 | Used by:572 |
Symbol 562 Bitmap | Used by:563 | |
Symbol 563 Graphic | Uses:562 | Used by:572 |
Symbol 564 Bitmap | Used by:565 | |
Symbol 565 Graphic | Uses:564 | Used by:572 |
Symbol 566 Bitmap | Used by:567 | |
Symbol 567 Graphic | Uses:566 | Used by:572 |
Symbol 568 Bitmap | Used by:569 | |
Symbol 569 Graphic | Uses:568 | Used by:572 |
Symbol 570 Bitmap | Used by:571 | |
Symbol 571 Graphic | Uses:570 | Used by:572 |
Symbol 572 MovieClip {main.Lock7} | Uses:557 559 561 563 565 567 569 571 | Used by:Timeline |
Symbol 573 Bitmap | Used by:574 | |
Symbol 574 Graphic | Uses:573 | Used by:589 |
Symbol 575 Bitmap | Used by:576 | |
Symbol 576 Graphic | Uses:575 | Used by:589 |
Symbol 577 Bitmap | Used by:578 | |
Symbol 578 Graphic | Uses:577 | Used by:589 |
Symbol 579 Bitmap | Used by:580 | |
Symbol 580 Graphic | Uses:579 | Used by:589 |
Symbol 581 Bitmap | Used by:582 | |
Symbol 582 Graphic | Uses:581 | Used by:589 |
Symbol 583 Bitmap | Used by:584 | |
Symbol 584 Graphic | Uses:583 | Used by:589 |
Symbol 585 Bitmap | Used by:586 | |
Symbol 586 Graphic | Uses:585 | Used by:589 |
Symbol 587 Bitmap | Used by:588 | |
Symbol 588 Graphic | Uses:587 | Used by:589 |
Symbol 589 MovieClip {main.LockB1} | Uses:574 576 578 580 582 584 586 588 | Used by:Timeline |
Symbol 590 Bitmap | Used by:591 | |
Symbol 591 Graphic | Uses:590 | Used by:606 |
Symbol 592 Bitmap | Used by:593 | |
Symbol 593 Graphic | Uses:592 | Used by:606 |
Symbol 594 Bitmap | Used by:595 | |
Symbol 595 Graphic | Uses:594 | Used by:606 |
Symbol 596 Bitmap | Used by:597 | |
Symbol 597 Graphic | Uses:596 | Used by:606 |
Symbol 598 Bitmap | Used by:599 | |
Symbol 599 Graphic | Uses:598 | Used by:606 |
Symbol 600 Bitmap | Used by:601 | |
Symbol 601 Graphic | Uses:600 | Used by:606 |
Symbol 602 Bitmap | Used by:603 | |
Symbol 603 Graphic | Uses:602 | Used by:606 |
Symbol 604 Bitmap | Used by:605 | |
Symbol 605 Graphic | Uses:604 | Used by:606 |
Symbol 606 MovieClip {main.LockB2} | Uses:591 593 595 597 599 601 603 605 | Used by:Timeline |
Symbol 607 MovieClip {main.Figure} | Used by:Timeline | |
Symbol 608 Bitmap | Used by:609 | |
Symbol 609 Graphic | Uses:608 | Used by:610 |
Symbol 610 MovieClip {main.Figure2Active} | Uses:92 609 | Used by:Timeline |
Symbol 611 Bitmap | Used by:612 | |
Symbol 612 Graphic | Uses:611 | Used by:613 |
Symbol 613 MovieClip {main.Figure3Active} | Uses:95 612 | Used by:Timeline |
Symbol 614 Bitmap | Used by:615 | |
Symbol 615 Graphic | Uses:614 | Used by:616 |
Symbol 616 MovieClip {main.Figure4Active} | Uses:89 615 | Used by:Timeline |
Symbol 617 Bitmap | Used by:618 | |
Symbol 618 Graphic | Uses:617 | Used by:621 637 |
Symbol 619 Bitmap | Used by:620 | |
Symbol 620 Graphic | Uses:619 | Used by:621 |
Symbol 621 MovieClip {main.Figure5Active} | Uses:618 620 | Used by:Timeline |
Symbol 622 Bitmap | Used by:623 | |
Symbol 623 Graphic | Uses:622 | Used by:636 |
Symbol 624 Bitmap | Used by:625 | |
Symbol 625 Graphic | Uses:624 | Used by:636 |
Symbol 626 Bitmap | Used by:627 | |
Symbol 627 Graphic | Uses:626 | Used by:636 |
Symbol 628 Bitmap | Used by:629 | |
Symbol 629 Graphic | Uses:628 | Used by:636 |
Symbol 630 Bitmap | Used by:631 | |
Symbol 631 Graphic | Uses:630 | Used by:636 |
Symbol 632 Bitmap | Used by:633 | |
Symbol 633 Graphic | Uses:632 | Used by:636 |
Symbol 634 Bitmap | Used by:635 | |
Symbol 635 Graphic | Uses:634 | Used by:636 |
Symbol 636 MovieClip {main.Figure5Destroying} | Uses:623 625 627 629 631 633 635 | Used by:Timeline |
Symbol 637 MovieClip {main.Figure5Normal} | Uses:618 | Used by:Timeline |
Symbol 638 Bitmap | Used by:639 | |
Symbol 639 Graphic | Uses:638 | Used by:642 658 |
Symbol 640 Bitmap | Used by:641 | |
Symbol 641 Graphic | Uses:640 | Used by:642 |
Symbol 642 MovieClip {main.Figure6Active} | Uses:639 641 | Used by:Timeline |
Symbol 643 Bitmap | Used by:644 | |
Symbol 644 Graphic | Uses:643 | Used by:657 |
Symbol 645 Bitmap | Used by:646 | |
Symbol 646 Graphic | Uses:645 | Used by:657 |
Symbol 647 Bitmap | Used by:648 | |
Symbol 648 Graphic | Uses:647 | Used by:657 |
Symbol 649 Bitmap | Used by:650 | |
Symbol 650 Graphic | Uses:649 | Used by:657 |
Symbol 651 Bitmap | Used by:652 | |
Symbol 652 Graphic | Uses:651 | Used by:657 |
Symbol 653 Bitmap | Used by:654 | |
Symbol 654 Graphic | Uses:653 | Used by:657 |
Symbol 655 Bitmap | Used by:656 | |
Symbol 656 Graphic | Uses:655 | Used by:657 |
Symbol 657 MovieClip {main.Figure6Destroying} | Uses:644 646 648 650 652 654 656 | Used by:Timeline |
Symbol 658 MovieClip {main.Figure6Normal} | Uses:639 | Used by:Timeline |
Symbol 659 Bitmap | Used by:660 | |
Symbol 660 Graphic | Uses:659 | Used by:663 679 |
Symbol 661 Bitmap | Used by:662 | |
Symbol 662 Graphic | Uses:661 | Used by:663 |
Symbol 663 MovieClip {main.Figure7Active} | Uses:660 662 | Used by:Timeline |
Symbol 664 Bitmap | Used by:665 | |
Symbol 665 Graphic | Uses:664 | Used by:678 |
Symbol 666 Bitmap | Used by:667 | |
Symbol 667 Graphic | Uses:666 | Used by:678 |
Symbol 668 Bitmap | Used by:669 | |
Symbol 669 Graphic | Uses:668 | Used by:678 |
Symbol 670 Bitmap | Used by:671 | |
Symbol 671 Graphic | Uses:670 | Used by:678 |
Symbol 672 Bitmap | Used by:673 | |
Symbol 673 Graphic | Uses:672 | Used by:678 |
Symbol 674 Bitmap | Used by:675 | |
Symbol 675 Graphic | Uses:674 | Used by:678 |
Symbol 676 Bitmap | Used by:677 | |
Symbol 677 Graphic | Uses:676 | Used by:678 |
Symbol 678 MovieClip {main.Figure7Destroying} | Uses:665 667 669 671 673 675 677 | Used by:Timeline |
Symbol 679 MovieClip {main.Figure7Normal} | Uses:660 | Used by:Timeline |
Symbol 680 Bitmap | Used by:681 | |
Symbol 681 Graphic | Uses:680 | Used by:684 700 |
Symbol 682 Bitmap | Used by:683 | |
Symbol 683 Graphic | Uses:682 | Used by:684 |
Symbol 684 MovieClip {main.FigureBlackActive} | Uses:681 683 | Used by:Timeline |
Symbol 685 Bitmap | Used by:686 | |
Symbol 686 Graphic | Uses:685 | Used by:699 |
Symbol 687 Bitmap | Used by:688 | |
Symbol 688 Graphic | Uses:687 | Used by:699 |
Symbol 689 Bitmap | Used by:690 | |
Symbol 690 Graphic | Uses:689 | Used by:699 |
Symbol 691 Bitmap | Used by:692 | |
Symbol 692 Graphic | Uses:691 | Used by:699 |
Symbol 693 Bitmap | Used by:694 | |
Symbol 694 Graphic | Uses:693 | Used by:699 |
Symbol 695 Bitmap | Used by:696 | |
Symbol 696 Graphic | Uses:695 | Used by:699 |
Symbol 697 Bitmap | Used by:698 | |
Symbol 698 Graphic | Uses:697 | Used by:699 |
Symbol 699 MovieClip {main.FigureBlackDestroying} | Uses:686 688 690 692 694 696 698 | Used by:Timeline |
Symbol 700 MovieClip {main.FigureBlackNormal} | Uses:681 | Used by:Timeline |
Symbol 701 MovieClip {main.FigureManager} | Used by:Timeline | |
Symbol 702 Bitmap | Used by:703 | |
Symbol 703 Graphic | Uses:702 | Used by:704 |
Symbol 704 MovieClip {main.ShuffleMovieDisabled} | Uses:703 | Used by:Timeline |
Symbol 705 MovieClip {main.ShuffleMovieNormal} | Uses:365 | Used by:Timeline |
Symbol 706 Bitmap | Used by:707 | |
Symbol 707 Graphic | Uses:706 | Used by:708 |
Symbol 708 MovieClip {main.ShuffleMovieOver} | Uses:707 | Used by:Timeline |
Symbol 709 Bitmap | Used by:710 | |
Symbol 710 Graphic | Uses:709 | Used by:711 |
Symbol 711 MovieClip {main.ShuffleMoviePressed} | Uses:710 | Used by:Timeline |
Symbol 712 Bitmap {cursor_bomb.png} | Used by:714 | |
Symbol 713 Bitmap {cursor_color_bomb.png} | Used by:714 | |
Symbol 714 MovieClip {main.Cursor} | Uses:276 712 713 | Used by:Timeline |
Symbol 715 Text | Uses:45 | Used by:716 717 |
Symbol 716 Button | Uses:49 715 52 54 | Used by:Timeline |
Symbol 717 Button | Uses:49 715 52 54 | Used by:Timeline |
Symbol 718 Bitmap | Used by:719 | |
Symbol 719 Graphic | Uses:718 | Used by:720 |
Symbol 720 MovieClip {main.Figure1Active} | Uses:86 719 | Used by:Timeline |
Symbol 721 MovieClip {main.Starter} | Used by:Timeline |
Instance Names
"m_preloaderMov" | Frame 1 | Symbol 17 MovieClip {main.preloader} |
"txt" | Symbol 17 MovieClip {main.preloader} Frame 1 | Symbol 4 EditableText |
"progressbar" | Symbol 17 MovieClip {main.preloader} Frame 1 | Symbol 9 MovieClip |
"m_moreGamesBtn" | Symbol 17 MovieClip {main.preloader} Frame 1 | Symbol 16 Button |
"txtName" | Symbol 64 MovieClip {main.GameCompleteWindow} Frame 1 | Symbol 46 EditableText |
"m_OKBtn" | Symbol 64 MovieClip {main.GameCompleteWindow} Frame 1 | Symbol 55 Button |
"m_downloadBtn" | Symbol 64 MovieClip {main.GameCompleteWindow} Frame 1 | Symbol 57 Button |
"m_submitScoreButton" | Symbol 64 MovieClip {main.GameCompleteWindow} Frame 1 | Symbol 61 Button |
"m_submitScoreText" | Symbol 64 MovieClip {main.GameCompleteWindow} Frame 1 | Symbol 63 EditableText |
"m_continueBtn" | Symbol 75 MovieClip {main.GameMenuWindow} Frame 1 | Symbol 68 Button |
"m_restartLevelBtn" | Symbol 75 MovieClip {main.GameMenuWindow} Frame 1 | Symbol 70 Button |
"m_helpBtn" | Symbol 75 MovieClip {main.GameMenuWindow} Frame 1 | Symbol 72 Button |
"m_abortGameBtn" | Symbol 75 MovieClip {main.GameMenuWindow} Frame 1 | Symbol 74 Button |
"m_url1Btn" | Symbol 75 MovieClip {main.GameMenuWindow} Frame 1 | Symbol 57 Button |
"m_help" | Symbol 189 MovieClip {main.HelpTooltipWindow} Frame 1 | Symbol 81 MovieClip |
"m_help" | Symbol 218 MovieClip {main.HelpWindow} Frame 1 | Symbol 201 MovieClip |
"m_nextBtn" | Symbol 218 MovieClip {main.HelpWindow} Frame 1 | Symbol 208 Button |
"m_backBtn" | Symbol 218 MovieClip {main.HelpWindow} Frame 1 | Symbol 215 Button |
"m_OKBtn" | Symbol 218 MovieClip {main.HelpWindow} Frame 1 | Symbol 217 Button |
"m_levelScoreText" | Symbol 226 MovieClip {main.LevelCompleteWindow} Frame 1 | Symbol 222 EditableText |
"m_timeScoreText" | Symbol 226 MovieClip {main.LevelCompleteWindow} Frame 1 | Symbol 223 EditableText |
"m_totalScoreText" | Symbol 226 MovieClip {main.LevelCompleteWindow} Frame 1 | Symbol 224 EditableText |
"m_OKBtn" | Symbol 226 MovieClip {main.LevelCompleteWindow} Frame 1 | Symbol 217 Button |
"m_downloadBtn" | Symbol 226 MovieClip {main.LevelCompleteWindow} Frame 1 | Symbol 57 Button |
"m_newGameBtn" | Symbol 243 MovieClip {main.MainMenuWindow} Frame 1 | Symbol 232 Button |
"m_helpBtn" | Symbol 243 MovieClip {main.MainMenuWindow} Frame 1 | Symbol 233 Button |
"m_url2Btn" | Symbol 243 MovieClip {main.MainMenuWindow} Frame 1 | Symbol 57 Button |
"m_url2Btn_2" | Symbol 243 MovieClip {main.MainMenuWindow} Frame 1 | Symbol 242 Button |
"m_mainMenuButton" | Symbol 251 MovieClip {main.TimeOutWindow} Frame 1 | Symbol 55 Button |
"m_playBtn" | Symbol 251 MovieClip {main.TimeOutWindow} Frame 1 | Symbol 248 Button |
"txtName" | Symbol 251 MovieClip {main.TimeOutWindow} Frame 1 | Symbol 249 EditableText |
"m_submitScoreText" | Symbol 251 MovieClip {main.TimeOutWindow} Frame 1 | Symbol 250 EditableText |
"m_submitScoreButton" | Symbol 251 MovieClip {main.TimeOutWindow} Frame 1 | Symbol 61 Button |
"bg" | Symbol 270 MovieClip {main.TooltipWindow} Frame 1 | Symbol 253 MovieClip |
"m_tipWindowMov" | Symbol 270 MovieClip {main.TooltipWindow} Frame 1 | Symbol 256 MovieClip |
"m_text" | Symbol 275 MovieClip {main.SureWindow} Frame 1 | Symbol 272 EditableText |
"m_OKBtn" | Symbol 275 MovieClip {main.SureWindow} Frame 1 | Symbol 217 Button |
"m_cancelBtn" | Symbol 275 MovieClip {main.SureWindow} Frame 1 | Symbol 274 Button |
"m_LocksLeft" | Symbol 283 MovieClip {main.Triangle} Frame 1 | Symbol 278 MovieClip {main.Locks} |
"m_GoldTriangleLeft" | Symbol 283 MovieClip {main.Triangle} Frame 1 | Symbol 280 MovieClip |
"m_ActiveTriangleLeft" | Symbol 283 MovieClip {main.Triangle} Frame 1 | Symbol 109 MovieClip |
"m_LocksRight" | Symbol 283 MovieClip {main.Triangle} Frame 2 | Symbol 278 MovieClip {main.Locks} |
"m_GoldTriangleRight" | Symbol 283 MovieClip {main.Triangle} Frame 2 | Symbol 282 MovieClip |
"m_ActiveTriangleRight" | Symbol 283 MovieClip {main.Triangle} Frame 2 | Symbol 122 MovieClip |
"m_text" | Symbol 293 MovieClip {main.LevelNumber} Frame 1 | Symbol 292 EditableText |
"m_text" | Symbol 296 MovieClip {main.FlyingNumber} Frame 1 | Symbol 295 EditableText |
"m_text" | Symbol 337 MovieClip {main.BombButtonFilling} Frame 1 | Symbol 336 EditableText |
"bg" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 353 MovieClip |
"m_levelTimer" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 357 MovieClip |
"m_levelNumberText" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 358 EditableText |
"m_gameScoreText" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 359 EditableText |
"m_shuffleButtonFilling" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 363 MovieClip {main.ShuffleButtonFilling} |
"m_shuffleButton" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 366 MovieClip {main.ShuffleButton} |
"m_bombButtonFilling" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 337 MovieClip {main.BombButtonFilling} |
"m_bombButton" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 340 MovieClip {main.BombMovie} |
"m_menuButton" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 373 Button |
"m_musicOnBtn" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 382 Button |
"m_musicOffBtn" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 383 Button |
"m_soundOnBtn" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 392 Button |
"m_soundOffBtn" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 393 Button |
"m_moreGamesBtn" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 57 Button |
"m_lightningButtonFilling" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 337 MovieClip {main.BombButtonFilling} |
"m_lightningButton" | Symbol 397 MovieClip {main.Game} Frame 1 | Symbol 396 MovieClip {main.LightningButton} |
Special Tags
FileAttributes (69) | Timeline Frame 1 | Access network only, Metadata not present, AS3. |
Protect (24) | Timeline Frame 1 | 31 bytes "..$1$kd$MQIJIcU50hU6/zOr8PO441." |
|