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