STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228066
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/93900753?noj=FRM93900753-27DC" width="1" height="1"></div>

jungle_bubble.swf

This is the info page for
Flash #240486

(Click the ID number above for more basic data on this flash file.)


Text
<p align="center"><font face="Floraless" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">+9</font></p>

<p align="center"><font face="Floraless" size="22" color="#422400" letterSpacing="0.000000" kerning="1">+9</font></p>

<p align="center"><font face="Floraless" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">Bubbles burst</font></p>

<p align="center"></p>

<p align="center"></p>

<p align="left"></p>

<p align="center"></p>

<p align="right"></p>

<p align="center"></p>

<p align="left"></p>

<p align="right"></p>

<p align="right"></p>

<p align="left"></p>

<p align="left"></p>

<p align="right"></p>

<p align="left"></p>

<p align="center"></p>

<p align="right"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="center"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="right"></p>

<p align="center"></p>

<p align="left"></p>

<p align="right"></p>

<p align="right"></p>

<p align="left"></p>

<p align="center"></p>

<p align="right"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="center"></p>

<p align="center"></p>

<p align="center"></p>

<p align="right"></p>

<p align="left"></p>

<p align="center"></p>

<p align="center"></p>

<p align="center"></p>

<p align="center"></p>

<p align="center"></p>

<p align="center"></p>

ActionScript [AS3]

Section 1
//BaseFlare (anim.BaseFlare) package anim { import flash.display.*; import flash.events.*; import flash.utils.*; public class BaseFlare extends MovieClip { protected var m_isLoop:Boolean; protected var m_frameRate:int; protected var m_isPaused:Boolean; protected var m_isRemoveAfterPlay:Boolean; private var m_startTime:int; private var m_restartAt:int; private var m_frameOffset:int; private var m_startDelay:int; private var m_firstRender:Boolean; private var m_step:Number; private var m_lastFrame:uint; public function BaseFlare(){ super.stop(); m_lastFrame = 0; m_restartAt = 0; m_frameOffset = 0; m_isPaused = false; m_isRemoveAfterPlay = true; m_firstRender = true; m_isLoop = true; m_startDelay = -1; if (!m_isPaused){ start(); }; setFrameRate(30); } public function setStartDelay(_arg1:int):void{ m_startDelay = _arg1; } public function setLoopRestartFrame(_arg1:int):void{ m_restartAt = (_arg1 - 1); } public function start():void{ visible = true; m_lastFrame = 0; m_firstRender = true; addEventListener(Event.ENTER_FRAME, enterFrame); } override public function stop():void{ m_firstRender = true; removeEventListener(Event.ENTER_FRAME, enterFrame); if (m_isRemoveAfterPlay){ parent.removeChild(this); }; } public function setFrameRate(_arg1:int):void{ m_frameRate = _arg1; m_step = ((1 / m_frameRate) * 1000); } public function setLoop(_arg1:Boolean):void{ m_isLoop = _arg1; } public function setDestroyAfterPlay(_arg1:Boolean):void{ m_isRemoveAfterPlay = _arg1; } public function enterFrame(_arg1:Event):void{ var _local2:int = getTimer(); if (((!(m_firstRender)) && (!((m_startDelay == -1))))){ if (_local2 < m_startDelay){ return; }; visible = true; m_startTime = _local2; m_startDelay = -1; }; if (m_firstRender){ m_firstRender = false; if (m_startDelay != -1){ m_startDelay = (m_startDelay + _local2); return; }; visible = true; m_startTime = _local2; }; var _local3:uint = (m_frameOffset + int(Math.round((((_local2 - m_startTime) / m_step) + 1)))); if (_local3 > totalFrames){ if (m_isLoop){ m_firstRender = true; m_frameOffset = m_restartAt; _local3 = totalFrames; } else { gotoAndStop(totalFrames); stop(); return; }; }; if (_local3 != m_lastFrame){ gotoAndStop(_local3); m_lastFrame = _local3; }; } } }//package anim
Section 2
//EaseOutQuadInterpolator (anim.EaseOutQuadInterpolator) package anim { public class EaseOutQuadInterpolator extends Interpolator { public function EaseOutQuadInterpolator(_arg1:Number, _arg2:Number, _arg3:int){ super(_arg1, _arg2, _arg3); } override public function nextPosition():void{ var _local1:Number = m_dt; if (_local1 > m_duration){ _local1 = m_duration; }; var _local2:Number = (m_duration * m_duration); var _local3:Number = (_local1 * _local1); m_value = ((((-(m_dv) * _local3) / _local2) + (((2 * m_dv) * _local1) / m_duration)) + m_startValue); } } }//package anim
Section 3
//Interpolator (anim.Interpolator) package anim { public class Interpolator { protected var m_finished:Boolean; protected var m_duration:int; protected var m_value:Number; protected var m_dv:Number; protected var m_targetValue:Number; protected var m_startValue:Number; protected var m_dt:int; public function Interpolator(_arg1:Number, _arg2:Number, _arg3:int){ m_startValue = _arg1; m_targetValue = _arg2; m_duration = _arg3; m_dt = 0; m_value = _arg1; m_finished = false; m_dv = (m_targetValue - m_startValue); } public function isDone():Boolean{ return (m_finished); } public function getValue():Number{ return (m_value); } public function getTargetValue():Number{ return (m_targetValue); } public function getElapsedPercent():Number{ if (m_duration == 0){ return (1); }; return ((Math.max(0, (m_duration - m_dt)) / m_duration)); } public function update():Boolean{ if (!m_finished){ m_dt++; nextPosition(); if ((((((m_value >= m_targetValue)) && ((m_targetValue >= m_startValue)))) || ((((m_value <= m_targetValue)) && ((m_targetValue <= m_startValue)))))){ m_value = m_targetValue; m_finished = true; }; }; return (m_finished); } public function nextPosition():void{ m_value = (((m_dv * m_dt) / m_duration) + m_startValue); } } }//package anim
Section 4
//PausedLoopingFlare25Fps (anim.PausedLoopingFlare25Fps) package anim { import flash.display.*; public class PausedLoopingFlare25Fps extends BaseFlare { public var inner:MovieClip; public function PausedLoopingFlare25Fps(){ m_isPaused = true; m_isLoop = true; m_isRemoveAfterPlay = false; setFrameRate(25); stop(); } } }//package anim
Section 5
//PausedLoopingFlare30Fps (anim.PausedLoopingFlare30Fps) package anim { public class PausedLoopingFlare30Fps extends BaseFlare { public function PausedLoopingFlare30Fps(){ m_isPaused = true; m_isLoop = true; m_isRemoveAfterPlay = false; setFrameRate(30); stop(); } } }//package anim
Section 6
//PausedSingleFlareDestroy25Fps (anim.PausedSingleFlareDestroy25Fps) package anim { public class PausedSingleFlareDestroy25Fps extends BaseFlare { public function PausedSingleFlareDestroy25Fps(){ m_isPaused = false; m_isLoop = false; m_isRemoveAfterPlay = true; setFrameRate(25); } } }//package anim
Section 7
//AimCursor (game.AimCursor) package game { import flash.display.*; import timing.*; import math.*; public class AimCursor extends MovieClip { public var aim0:MovieClip; public var aim1:MovieClip; public var aim2:MovieClip; public var aim3:MovieClip; public var aim4:MovieClip; public var aim5:MovieClip; public var aim6:MovieClip; public var aim7:MovieClip; public var aim8:MovieClip; private var m_mx:int; private var m_my:int; private var m_ax:int; private var m_ay:int; private var m_dx:int; private var m_dy:int; private var m_vx1:int; private var m_vx2:int; private var m_vy1:int; private var m_vy2:int; private var m_fr:IFloat; private var m_dist:Number; private var m_lastRad:Number; private var m_lengthOffset:Number; private var m_r:Number; private var m_limit1:Number; private var m_limit2:Number; public function AimCursor(){ m_fr = new IFloat(0); m_limit1 = (-3.1414 + Math.PI); m_limit2 = (0.0001 + Math.PI); m_lengthOffset = 87; m_lastRad = 0.1234; stop(); } public function setColor(_arg1:int):void{ var _local3:*; var _local2:* = 0; while (_local2 < 9) { _local3 = getChildByName(("aim" + _local2)); _local3.gotoAndStop(_arg1); _local2++; }; } public function setArrowLength(_arg1:int):void{ m_lengthOffset = _arg1; } public function setRadLimits(_arg1:Number, _arg2:Number):void{ m_limit1 = (_arg1 + Math.PI); m_limit2 = (_arg2 + Math.PI); } public function setVisibleLimit(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ m_vx1 = _arg1; m_vx2 = _arg3; m_vy1 = _arg2; m_vy2 = _arg4; } public function setAncorPosition(_arg1:int, _arg2:int):void{ m_ax = _arg1; m_ay = _arg2; } public function tick(_arg1:int, _arg2:int):void{ m_mx = _arg1; m_my = _arg2; m_dx = (m_ax - m_mx); m_dy = (m_ay - Math.min((m_ay - 30), m_my)); m_r = XPMath.atan2(m_dy, m_dx); if (m_r < m_limit1){ m_r = m_limit1; }; if (m_r > m_limit2){ m_r = m_limit2; }; m_fr.set(m_r); m_dist = (Math.max(0, (Math.sqrt(((m_dx * m_dx) + (m_dy * m_dy))) - m_lengthOffset)) / 8); } public function update(_arg1:int, _arg2:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:*; var _local11:*; var _local3:Number = m_fr.value; if (_local3 != m_lastRad){ x = m_ax; y = m_ay; m_lastRad = _local3; _local4 = XPMath.cos(_local3); _local5 = (-(_local4) * m_lengthOffset); _local6 = (m_dist * _local4); _local7 = XPMath.sin(_local3); _local8 = (-(_local7) * m_lengthOffset); _local9 = (m_dist * _local7); _local10 = 0; while (_local10 < 9) { _local11 = getChildByName(("aim" + _local10)); _local11.x = _local5; _local11.y = _local8; _local5 = (_local5 - _local6); _local8 = (_local8 - _local9); _local10++; }; }; } } }//package game
Section 8
//BigPopper (game.BigPopper) package game { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; public class BigPopper extends MovieClip { public var text1:TextField; public var text2:TextField; private var bspline:Bspline; private var pos:Number;// = 0 private var ln:int; private var speed:Number; private var multiplier:int; private var startTime:int; public function BigPopper(_arg1:int, _arg2:int, _arg3:int=1){ multiplier = _arg3; gotoAndStop(_arg3); visible = false; bspline = new Bspline(); bspline.addPoint(_arg1, _arg2); bspline.addPoint((588 + (Math.random() * 50)), (-40 + (Math.random() * 20))); bspline.addPoint(((182 + (Math.random() * 200)) - 100), (95 + (Math.random() * 50))); bspline.addPoint(0xFF, 0xFF); ln = bspline.length(); speed = 30; startTime = -1; addEventListener(Event.ENTER_FRAME, enterFrame); } public function enterFrame(_arg1:Event):void{ var _local2:int = getTimer(); if (startTime < 0){ startTime = _local2; if (currentFrame == 1){ text1.text = ("+" + multiplier); } else { if (currentFrame == 2){ text2.text = ("+" + multiplier); }; }; visible = true; }; var _local3:* = bspline.lerp(pos); if (pos < 0.6){ alpha = (pos / 0.6); }; if (pos > (ln - 1.45)){ alpha = Math.max(0, (1 - ((pos - (ln - 1.45)) / 0.45))); }; x = int(_local3[0]); y = int(_local3[1]); pos = (((_local2 - startTime) / ((1 / speed) * 1000)) / 10); speed = (30 - ((_local2 - startTime) / 166)); if (pos > (ln - 0.5)){ removeEventListener(Event.ENTER_FRAME, enterFrame); parent.removeChild(this); }; } } }//package game
Section 9
//Bspline (game.Bspline) package game { public class Bspline { private var points:Array; public function Bspline(){ points = []; super(); } public function addPoint(_arg1:Number, _arg2:Number):void{ points.push([_arg1, _arg2]); } public function lerp(_arg1:Number):Array{ var _local2:int = int(_arg1); var _local3:* = bernsteinWeight(((_arg1 - _local2) + 2)); var _local4:* = bernsteinWeight(((_arg1 - _local2) + 1)); var _local5:* = bernsteinWeight((_arg1 - _local2)); var _local6:* = bernsteinWeight(((_arg1 - _local2) - 1)); var _local7:* = bernsteinWeight(((_arg1 - _local2) - 2)); var _local8:* = [0, 0]; var _local9:int = (_local2 - 3); ++_local9; updatePoint(_local9, _local3, _local8); ++_local9; updatePoint(_local9, _local4, _local8); ++_local9; updatePoint(_local9, _local5, _local8); ++_local9; updatePoint(_local9, _local6, _local8); ++_local9; updatePoint(_local9, _local7, _local8); return (_local8); } public function length():int{ return (points.length); } public function clear():void{ points = []; } private function bernsteinWeight(_arg1:Number):Number{ var _local2:* = 0; if (_arg1 <= -1){ _local2 = (2 + _arg1); return (((1 / 6) * ((_local2 * _local2) * _local2))); }; if (_arg1 <= 0){ return (((1 / 6) * ((4 - ((6 * _arg1) * _arg1)) - (((3 * _arg1) * _arg1) * _arg1)))); }; if (_arg1 <= 1){ return (((1 / 6) * ((4 - ((6 * _arg1) * _arg1)) + (((3 * _arg1) * _arg1) * _arg1)))); }; if (_arg1 <= 2){ _local2 = (2 - _arg1); return (((1 / 6) * ((_local2 * _local2) * _local2))); }; return (0); } private function updatePoint(_arg1:int, _arg2:Number, _arg3:Array):void{ if (_arg2 <= 0){ return; }; var _local4:Array = [0, 0]; var _local5:* = points.length; if (_local5 <= 1){ return; }; if ((((_arg1 >= 0)) && ((_arg1 < _local5)))){ _local4 = points[_arg1]; } else { if (_arg1 < 0){ _local4 = [(points[0][0] - (points[1][0] - points[0][0])), (points[0][1] - (points[1][1] - points[0][1]))]; } else { _local5--; _local4 = [(points[_local5][0] - (points[(_local5 - 1)][0] - points[_local5][0])), (points[_local5][1] - (points[(_local5 - 1)][1] - points[_local5][1]))]; }; }; _arg3[0] = (_arg3[0] + (_local4[0] * _arg2)); _arg3[1] = (_arg3[1] + (_local4[1] * _arg2)); } } }//package game
Section 10
//Bubble (game.Bubble) package game { import flash.display.*; import timing.*; import geom.*; import flash.geom.*; import math.*; public class Bubble extends TickObject { public var bubble:BubbleClip; private var bubbleParent:DisplayObjectContainer; public var attachDelay:int; public var isLineBlast:Boolean; public var isBonus:Boolean; public var isStuck:Boolean; public var arrayX:int; public var arrayY:int; public var suggestX:Number; public var suggestY:Number; public var isMultiplier:Boolean; private var m_movement:Vec2D; private var m_position:Vec2D; private var m_speed:Number; private var m_color:int; private var m_fx:IFloat; private var m_fy:IFloat; private var m_oldMovement:Vec2D; private var m_oldPosition:Vec2D; private var m_oldSpeed:Number; private var m_oldColor:int; private var m_oldFx:IFloat; private var m_oldFy:IFloat; private var m_collidableList:Array; private static const SPEED:int = 15; public function Bubble(){ m_position = new Vec2D(); isMultiplier = false; isLineBlast = false; m_speed = (SPEED * 1.25); suggestX = -1; suggestY = -1; } public function setCollidableList(_arg1:Array){ m_collidableList = _arg1; } public function setBubbleParent(_arg1:DisplayObjectContainer):void{ bubbleParent = _arg1; } public function assureFull():void{ if (bubble == null){ bubble = new BubbleClip(this); bubble.ball.gotoAndStop(m_color); if (isMultiplier){ bubble.marker_multiply.visible = true; bubble.marker_multiply.start(); }; if (isLineBlast){ bubble.marker_lineblast.visible = true; bubble.marker_lineblast.start(); }; }; } public function getX():int{ return (m_position.x); } public function getY():int{ return (m_position.y); } public function stick(_arg1:int, _arg2:int):void{ m_movement = null; setPosition(_arg1, _arg2); isStuck = true; isRemoving = true; } public function bounceOff():void{ isStuck = false; isRemoving = true; m_movement = null; if (((!((bubble == null))) && (!((bubble.parent == null))))){ bubble.startDrop(0, 0, false, false); }; } public function explode():void{ isStuck = false; if (bubble != null){ if (bubble.parent != null){ if (isLineBlast){ bubble.startLineBlast(); } else { bubble.startExplosion(); }; }; }; } public function drop(_arg1:Number, _arg2:Number, _arg3:Boolean, _arg4:Boolean):void{ isStuck = false; if (bubble != null){ if (bubble.parent != null){ bubble.startDrop(_arg1, _arg2, _arg3, _arg4); }; }; } public function remove():void{ isStuck = false; isRemoving = true; if (bubble != null){ bubble.stopAnim(); if (bubble.parent != null){ bubble.scaleX = 1; bubble.scaleY = 1; bubble.parent.removeChild(bubble); }; }; bubble = null; } public function disableBubble():void{ if (bubble != null){ if (bubble.parent != null){ bubble.marker_multiply.stop(); bubble.marker_multiply.visible = false; bubble.marker_lineblast.stop(); bubble.marker_lineblast.visible = false; bubble.scaleX = 1; bubble.scaleY = 1; setColorIndex(7); }; }; } public function disableBonusMode():void{ if (isBonus){ isBonus = false; bubble.scaleX = 1; bubble.scaleY = 1; setColorIndex(m_color); }; } private function interpolateColor(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:ColorTransform = new ColorTransform(); _local4.redMultiplier = (_arg1.redMultiplier + ((_arg2.redMultiplier - _arg1.redMultiplier) * _arg3)); _local4.greenMultiplier = (_arg1.greenMultiplier + ((_arg2.greenMultiplier - _arg1.greenMultiplier) * _arg3)); _local4.blueMultiplier = (_arg1.blueMultiplier + ((_arg2.blueMultiplier - _arg1.blueMultiplier) * _arg3)); _local4.alphaMultiplier = (_arg1.alphaMultiplier + ((_arg2.alphaMultiplier - _arg1.alphaMultiplier) * _arg3)); _local4.redOffset = (_arg1.redOffset + ((_arg2.redOffset - _arg1.redOffset) * _arg3)); _local4.greenOffset = (_arg1.greenOffset + ((_arg2.greenOffset - _arg1.greenOffset) * _arg3)); _local4.blueOffset = (_arg1.blueOffset + ((_arg2.blueOffset - _arg1.blueOffset) * _arg3)); _local4.alphaOffset = (_arg1.alphaOffset + ((_arg2.alphaOffset - _arg1.alphaOffset) * _arg3)); return (_local4); } public function pushState():void{ if (m_movement != null){ m_oldMovement = new Vec2D(); m_oldMovement.copyFrom(m_movement); }; m_oldFx = new IFloat(0); m_oldFx.copyFrom(m_fx); m_oldFy = new IFloat(0); m_oldFy.copyFrom(m_fy); m_oldPosition = new Vec2D(); m_oldPosition.copyFrom(m_position); m_oldSpeed = m_speed; } public function popState():void{ if (m_movement != null){ m_movement.copyFrom(m_oldMovement); }; m_fx.copyFrom(m_oldFx); m_fy.copyFrom(m_oldFy); m_position.copyFrom(m_oldPosition); m_speed = m_oldSpeed; } override public function tick(_arg1:int):void{ var _local2:*; var _local3:*; var _local4:Line; var _local5:Boolean; var _local6:int; var _local7:Pt; var _local8:Line; var _local9:Number; var _local10:Line; var _local11:Number; if (isStuck){ isRemoving = true; }; if (m_movement){ _local2 = (m_position.x + (m_movement.x * m_speed)); _local3 = (m_position.y + (m_movement.y * m_speed)); _local4 = new Line(m_position.x, m_position.y, _local2, _local3); _local5 = false; _local6 = 0; while (((!(_local5)) && ((_local6 < m_collidableList.length)))) { _local7 = _local4.intersectionPoint(m_collidableList[_local6]); if (_local7 != null){ _local8 = new Line(m_position.x, m_position.y, _local7.x, _local7.y); _local9 = _local8.length(); m_position.x = (m_position.x + (m_movement.x * _local9)); m_position.y = (m_position.y + (m_movement.y * _local9)); _local10 = new Line(_local7.x, _local7.y, _local2, _local3); _local11 = _local10.length(); m_movement.x = -(m_movement.x); m_position.x = (m_position.x + (m_movement.x * _local11)); m_position.y = (m_position.y + (m_movement.y * _local11)); _local5 = true; }; _local6++; }; if (!_local5){ m_position.x = (m_position.x + (m_movement.x * m_speed)); m_position.y = (m_position.y + (m_movement.y * m_speed)); }; m_speed = Math.max((m_speed = (m_speed * 0.985)), SPEED); }; m_fx.set(m_position.x); m_fy.set(m_position.y); } override public function render(_arg1:int, _arg2:Number):void{ bubble.x = int(m_fx.value); bubble.y = int(m_fy.value); } public function moving():Boolean{ return (!((m_movement == null))); } public function setColorIndex(_arg1:int):void{ m_color = _arg1; if (bubble){ bubble.ball.gotoAndStop(_arg1); }; } public function getColorIndex():int{ return (m_color); } public function gotoAimPosition():void{ setPosition((458 + 8), 334); } public function gotoPreviewPosition():void{ setPosition(396, 405); } public function stopMovement():void{ m_movement = null; } public function setTickedPosition(_arg1:Number, _arg2:Number):void{ m_position.x = int(_arg1); m_position.y = int(_arg2); m_fx.set(_arg1); m_fy.set(_arg2); } public function setPositionLimited(_arg1:int, _arg2:int):void{ m_position.x = _arg1; m_position.y = _arg2; } public function setPosition(_arg1:int, _arg2:int):void{ m_position.x = _arg1; m_fx = new IFloat(_arg1); m_position.y = _arg2; m_fy = new IFloat(_arg2); bubble.x = _arg1; bubble.y = _arg2; } public function fire(_arg1:Number):void{ bubbleParent.addChild(bubble); setPosition(((458 - 322) + 8), 334); m_movement = new Vec2D(XPMath.cos(_arg1), XPMath.sin(_arg1)); } } }//package game
Section 11
//BubbleBox (game.BubbleBox) package game { import sfx.*; import flash.display.*; import timing.*; import geom.*; import anim.*; import math.*; import flash.utils.*; public class BubbleBox extends MovieClip { private var m_dropLayer:DisplayObjectContainer; private var m_listener:Object; private var m_bonusLevelStartDelay:int; private var m_bottomOffset:int; private var m_earlyExitAtRow:int; private var m_maxHeight:int; private var m_numBubble:int; private var m_listenerId:int; private var m_combo:int; private var m_scrollStartDelay:int; private var m_numBubblesDestroyed:int; private var m_numRows; private var m_liveBubble:Array; private var m_delayedBubble:Array; private var m_bubbles:Array; private var m_offsetX:int; private var m_offsetY:int; private var m_height:int; private var m_bonusBubbleRng:MtRandom; private var m_bubbleRng:MtRandom; private var m_viewOffset:Number; private var m_viewBottom:Number;// = 174 private var m_scroller:Interpolator; private var m_viewTop:int; private var m_viewOffsetIp:IFloat; private var m_viewOffsetLast:Number; private var m_numBonusBubbleSpawn:int; private var m_sharedData:SharedData; private var m_consecutiveBursts:int; private var m_numVisibleBubble:int; private var m_isAllowedBottomRow:Boolean; private var m_spawnBonusEnable:Boolean; private var m_isInBonusLevel:Boolean; private var m_isScoreEnable:Boolean; private var m_useScrollDelay:Boolean; private var m_hasBonusBubble:Boolean; private var m_useManualScrolling:Boolean; private var m_disabled:Boolean; private var m_game:Game; private var m_disableRowCount:int; private var m_multiplier:Number; private var m_tick:int; public static const radiusX:int = 30; public static const radiusY:int = 24; private static const m_offsetEven:Array = [[-1, -1], [0, -1], [1, 0], [0, 1], [-1, 1], [-1, 0]]; private static const m_offsetOdd:Array = [[0, -1], [1, -1], [1, 0], [1, 1], [0, 1], [-1, 0]]; public function BubbleBox(_arg1:Game, _arg2:SharedData, _arg3:int, _arg4:int, _arg5:Array, _arg6:int=1, _arg7:int=1){ var _local10:int; var _local12:Boolean; var _local13:int; var _local14:int; var _local15:Bubble; var _local16:*; var _local17:*; super(); var _local8:* = getTimer(); m_game = _arg1; m_multiplier = _arg7; m_disabled = false; m_disableRowCount = -1; m_earlyExitAtRow = -1; m_maxHeight = _arg4; m_numVisibleBubble = 0; m_useScrollDelay = true; m_isInBonusLevel = false; m_spawnBonusEnable = false; m_isAllowedBottomRow = false; m_useManualScrolling = false; m_hasBonusBubble = false; m_sharedData = _arg2; mouseChildren = false; m_bottomOffset = 1; m_scrollStartDelay = -1; m_bonusLevelStartDelay = -1; m_viewTop = 0; m_height = (_arg4 + _arg6); m_listenerId = 0; m_listener = {}; m_liveBubble = new Array(); m_delayedBubble = new Array(); m_bubbles = new Array((_arg4 + _arg6)); m_viewOffsetLast = -1; m_numBubblesDestroyed = 0; m_numBonusBubbleSpawn = 0; m_isScoreEnable = true; m_numBubble = 0; m_bubbleRng = new MtRandom(_arg3); var _local9:* = 0; m_consecutiveBursts = 0; m_bonusBubbleRng = new MtRandom(m_bubbleRng.nextInt(2147483647)); _local10 = 0; while (_local10 < m_bubbles.length) { _local12 = ((_local10 & 1) == 0); _local13 = (_local12) ? 7 : 8; m_bubbles[_local10] = new Array(_local13); if (_local10 < (_arg4 - 2)){ _local14 = 0; while (_local14 < _local13) { _local15 = new Bubble(); _local15.arrayX = _local14; _local15.arrayY = _local10; _local15.isStuck = true; _local16 = ((_local12) ? (radiusX / 2) : 0 + (_local14 * radiusX)); _local17 = (_local10 * radiusY); _local15.setPositionLimited(_local16, _local17); _local15.setColorIndex(_arg5[m_bubbleRng.nextInt(_arg5.length)]); if (((m_sharedData.isSpeedMode) && ((m_bubbleRng.nextDouble() < (1 / 30))))){ _local15.isMultiplier = true; }; if (((((!(_local15.isMultiplier)) && (m_sharedData.isSpeedMode))) && ((m_bubbleRng.nextDouble() < (1 / 20))))){ _local15.isLineBlast = true; }; m_bubbles[_local10][_local14] = _local15; _local9++; _local14++; }; }; _local10++; }; m_numRows = m_bubbles.length; m_viewOffset = -(bubbleHeight()); y = m_viewOffset; m_offsetX = ((16 + 16) + 8); m_offsetY = 28; x = m_offsetX; m_viewOffsetLast = m_viewOffset; m_viewOffsetIp = new IFloat(m_viewOffset); var _local11:* = getTimer(); } public function destroy():void{ var _local2:int; var _local3:Bubble; m_listener = {}; var _local1:int; while (_local1 < m_liveBubble.length) { m_liveBubble[_local1].remove(); _local1++; }; m_liveBubble = null; _local1 = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { _local3 = m_bubbles[_local1][_local2]; if (_local3 != null){ _local3.remove(); }; m_bubbles[_local1][_local2] = null; }; m_bubbles[_local1] = null; }; m_bubbles = null; } public function getNumLiveBubbles():int{ return (m_liveBubble.length); } public function addLiveBubble(_arg1:Bubble):void{ m_liveBubble.push(_arg1); } public function setPreferredBottomPos(_arg1:int):void{ m_bottomOffset = _arg1; } public function disableBubbles():void{ m_disableRowCount = getFirstRowWithBubbles(); m_disabled = true; } public function addListener(_arg1:BubbleListener):String{ var _local2:String = ("@" + ++m_listenerId); m_listener[_local2] = _arg1; return (_local2); } public function getDeepestHole():int{ var _local2:Boolean; var _local3:int; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = false; _local3 = m_bubbles[_local1].length; while (_local3--) { if (m_bubbles[_local1][_local3] == null){ _local2 = true; break; }; }; if (!_local2){ return ((_local1 + 1)); }; }; return (0); } public function getFirstRowWithBubbles():int{ var _local2:int; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { if (m_bubbles[_local1][_local2] != null){ return (_local1); }; }; }; return (0); } public function bubbleHeight():int{ var _local2:int; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { if (m_bubbles[_local1][_local2] != null){ return (((_local1 + 1) * radiusY)); }; }; }; return (0); } public function testForDrop():Boolean{ var _local1:int; var _local2:int; var _local12:BubbleListener; var _local13:Bubble; var _local14:Bubble; var _local15:Bubble; var _local16:int; var _local17:int; var _local18:Array; var _local19:int; var _local20:int; var _local21:uint; var _local22:*; var _local23:*; var _local24:Pt; var _local25:*; var _local3:Array = new Array(); var _local4:int = getTimer(); _local2 = m_bubbles[0].length; while (_local2--) { if (m_bubbles[0][_local2] != null){ _local3.push(m_bubbles[0][_local2]); }; }; var _local5:* = {}; var _local6:* = {}; _local1 = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { _local14 = m_bubbles[_local1][_local2]; if (_local14 != null){ _local6[((_local1 << 8) | _local2)] = _local14; }; }; }; var _local7:int = m_bubbles.length; while (_local3.length > 0) { _local15 = _local3.pop(); _local16 = _local15.arrayX; _local17 = _local15.arrayY; _local18 = ((_local17 & !((1 == 0)))) ? m_offsetEven : m_offsetOdd; _local1 = 6; while (_local1--) { _local19 = (_local16 + _local18[_local1][0]); _local20 = (_local17 + _local18[_local1][1]); _local21 = ((_local20 << 8) | _local19); if (!_local5[_local21]){ _local5[_local21] = 1; if ((((((((_local19 < 0)) || ((_local20 < 0)))) || ((_local20 >= _local7)))) || ((_local19 >= m_bubbles[_local20].length)))){ } else { if (m_bubbles[_local20][_local19]){ _local3.push(m_bubbles[_local20][_local19]); delete _local6[_local21]; }; }; }; }; }; var _local8:Array = [0, 5, 10, 15, 20, 30, 40, 50, 65, 80, 95, 110, 130, 150, 170, 200]; var _local9:Boolean; var _local10 = 1; var _local11:int; for each (_local13 in _local6) { if (_local13.arrayY > 0){ m_bubbles[_local13.arrayY][_local13.arrayX] = null; if (_local13.bubble == null){ _local22 = (((_local13.arrayY)!=0) ? (radiusX / 2) : 0 + (_local13.arrayX * radiusX)); _local23 = (_local13.arrayY * radiusY); _local13.assureFull(); _local13.setPosition(_local22, _local23); if (m_dropLayer){ m_dropLayer.addChild(_local13.bubble); } else { addChild(_local13.bubble); }; } else { if (m_dropLayer){ m_dropLayer.addChild(_local13.bubble); }; }; if (_local13.isMultiplier){ m_multiplier = (m_multiplier + 2); _local24 = matrixToScreen(_local13.arrayX, _local13.arrayY); for each (_local12 in m_listener) { _local12.onMultiplierChanged((_local24.x + parent.x), _local24.y, m_multiplier, 2); }; }; if (_local13.isBonus){ _local10 = _local13.getColorIndex(); _local9 = true; }; m_numBubblesDestroyed++; _local11++; _local13.drop(0, 0, true, _local13.isBonus); }; }; if (_local11 != 0){ for each (_local12 in m_listener) { _local12.onBubbleRemove(_local11); }; }; if (m_isScoreEnable){ _local25 = _local8[Math.min((_local8.length - 1), _local11)]; if (m_sharedData.isSpeedMode){ _local25 = (_local25 * 10); }; m_sharedData.score = (m_sharedData.score + (_local25 * m_multiplier)); }; if (_local9){ m_bonusLevelStartDelay = 25; }; return ((_local11 > 0)); } public function canFire():Boolean{ return ((m_bonusLevelStartDelay == -1)); } public function testForExpansion(_arg1:int, _arg2:int):Boolean{ var _local8:Bubble; var _local9:Array; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:uint; var _local15:Bubble; var _local16:BubbleListener; var _local17:Boolean; var _local18:*; var _local19:Bubble; var _local20:Pt; var _local21:*; var _local22:int; var _local23:int; var _local24:Array; var _local3:Bubble = m_bubbles[_arg2][_arg1]; if (!_local3){ return (false); }; var _local4:* = {}; var _local5:int = _local3.getColorIndex(); var _local6:Array = new Array(); var _local7:Array = new Array(); _local7.push(_local3); while (_local7.length > 0) { _local8 = _local7.shift(); _local9 = ((_local8.arrayY & !((1 == 0)))) ? m_offsetEven : m_offsetOdd; _local10 = 0; _local11 = _local9.length; while (_local10 < _local11) { _local12 = (_local8.arrayX + _local9[_local10][0]); _local13 = (_local8.arrayY + _local9[_local10][1]); _local14 = ((_local13 << 8) | _local12); if (!_local4[_local14]){ _local4[_local14] = 1; if (getColor(_local12, _local13) == _local5){ _local15 = getBubble(_local12, _local13); _local6.push(_local15); _local7.push(_local15); }; }; _local10++; }; }; if (_local6.length >= 3){ _local17 = false; _local18 = 0; for each (_local19 in _local6) { if (_local19.isBonus){ _local17 = true; }; if (_local19.isMultiplier){ m_multiplier++; _local20 = matrixToScreen(_local19.arrayX, _local19.arrayY); for each (_local16 in m_listener) { _local16.onMultiplierChanged((_local20.x + parent.x), _local20.y, m_multiplier, 1); }; }; if (_local19.isLineBlast){ _local10 = 0; while (_local10 < m_bubbles[_local19.arrayY].length) { _local21 = m_bubbles[_local19.arrayY][_local10]; if (_local21){ _local21.explode(); m_bubbles[_local19.arrayY][_local10] = null; }; _local10++; }; if (!m_game.getSoundManager().get("line_blast3").isPlaying()){ m_game.getSoundManager().get("line_blast3").play(); }; }; m_bubbles[_local19.arrayY][_local19.arrayX] = null; _local19.explode(); m_numBubblesDestroyed++; _local18++; }; for each (_local16 in m_listener) { _local16.onBubbleRemove(_local18); }; if (m_isScoreEnable){ _local22 = 10; if (m_sharedData.isSpeedMode){ _local22 = 10; }; _local24 = [0, 3, 5, 7, 10, 15]; if ((((m_consecutiveBursts >= 0)) && ((m_consecutiveBursts < 6)))){ _local23 = ((_local24[m_consecutiveBursts] + _local22) * m_multiplier); m_sharedData.score = (m_sharedData.score + _local23); } else { if (m_consecutiveBursts >= 6){ _local23 = (((15 + (10 * (m_consecutiveBursts - 5))) + _local22) * m_multiplier); m_sharedData.score = (m_sharedData.score + _local23); }; }; }; m_consecutiveBursts++; if (m_consecutiveBursts > 15){ m_consecutiveBursts = 15; }; } else { m_consecutiveBursts = 0; }; return ((_local18 > 0)); } public function getNumRows():int{ return (m_numRows); } public function getMultiplier():int{ return (m_multiplier); } public function getCombo():int{ return (m_combo); } public function getUniqueColors():Array{ var _local3:int; var _local4:int; var _local5:Boolean; var _local6:int; var _local1:* = new Array(); var _local2:int; while (_local2 < m_bubbles.length) { _local3 = m_bubbles[_local2].length; while (_local3--) { if (m_bubbles[_local2][_local3] != null){ _local4 = m_bubbles[_local2][_local3].getColorIndex(); _local5 = false; _local6 = 0; while (((!(_local5)) && ((_local6 < _local1.length)))) { if (_local1[_local6] == _local4){ _local5 = true; }; _local6++; }; if (!_local5){ _local1.push(_local4); }; if (_local1.length == 5){ return (_local1); }; }; }; _local2++; }; if (_local1.length == 0){ _local1.push(7); }; return (_local1); } public function tick(_arg1:int):void{ var _local2:int; var _local3:int; var _local5:Bubble; var _local10:Boolean; var _local11:BubbleListener; var _local12:Boolean; var _local13:int; var _local14:int; var _local15:Number; var _local16:*; var _local17:*; var _local18:*; var _local19:Array; var _local20:Boolean; var _local21:Bubble; var _local22:int; var _local23:*; m_tick = _arg1; if (m_disabled){ if (m_disableRowCount >= 0){ if (m_disableRowCount == (m_bubbles.length - 1)){ _local2 = 0; while (_local2 < m_liveBubble.length) { m_liveBubble[_local2].disableBubble(); _local2++; }; }; _local3 = m_bubbles[m_disableRowCount].length; while (_local3--) { if (m_bubbles[m_disableRowCount][_local3] != null){ m_bubbles[m_disableRowCount][_local3].disableBubble(); }; }; m_disableRowCount--; }; }; if (((!((m_earlyExitAtRow == -1))) && ((((m_maxHeight - getDeepestHole()) - 2) >= m_earlyExitAtRow)))){ _local11 = null; for each (_local11 in m_listener) { _local11.onEarlyExit(); }; }; var _local4:int; _local2 = 0; while (_local2 < m_delayedBubble.length) { _local5 = m_delayedBubble[_local2]; if (--_local5.attachDelay == 0){ m_delayedBubble.splice(_local2, 1); processBubble(_local5); _local4++; } else { _local2++; }; }; _local2 = 0; while (_local2 < m_liveBubble.length) { _local12 = false; _local5 = m_liveBubble[_local2]; _local5.pushState(); _local5.tick((_arg1 + 1)); _local5.tick((_arg1 + 2)); _local13 = _local5.getX(); _local14 = _local5.getY(); _local5.popState(); _local15 = 0; while (_local15 < 1) { _local16 = ((_local5.getX() * (1 - _local15)) + (_local13 * _local15)); _local17 = ((_local5.getY() * (1 - _local15)) + (_local14 * _local15)); _local18 = screenToMatrix(_local16, _local17); if (isClear(_local18.x, _local18.y)){ _local5.suggestX = _local18.x; _local5.suggestY = _local18.y; }; if ((((((_local17 - m_viewOffset) + 9) < 0)) || (testPoint(_local18)))){ if (attachBubble(_local5)){ m_delayedBubble.push(_local5); }; m_liveBubble.splice(_local2, 1); _local12 = true; break; }; _local15 = (_local15 + 0.3334); }; if (!_local12){ _local2++; }; }; m_numRows = 0; m_numBubble = 0; m_numVisibleBubble = 0; var _local6 = -1; var _local7:int = ((-(radiusY) * 2) + m_viewTop); var _local8:int = ((m_height - 2) * radiusY); var _local9:int = (m_bubbles.length * radiusY); _local2 = m_bubbles.length; while (_local2--) { _local9 = (_local9 - radiusY); _local10 = true; _local19 = m_bubbles[_local2]; _local20 = ((m_viewOffset + _local9) > _local7); _local3 = _local19.length; while (_local3--) { _local21 = _local19[_local3]; if (_local21 == null){ } else { if (_local10){ _local10 = false; _local22 = (_local9 + radiusY); if (_local22 < _local6){ _local22 = _local6; }; if (_local22 > _local8){ _local22 = _local8; }; _local6 = _local22; m_numRows++; }; m_numBubble++; if (_local21.isLineBlast){ } else { if (_local20){ if (((((_local21.isStuck) && ((_local21.bubble == null)))) || ((_local21.bubble.parent == null)))){ bubbleInView(_local21); }; m_numVisibleBubble++; }; }; }; }; _local3 = _local19.length; while (_local3--) { _local21 = _local19[_local3]; if ((((_local21 == null)) || (!(_local21.isLineBlast)))){ } else { if (_local20){ if (((((_local21.isStuck) && ((_local21.bubble == null)))) || ((_local21.bubble.parent == null)))){ bubbleInView(_local21); }; m_numVisibleBubble++; }; }; }; }; if (((((!(m_isInBonusLevel)) && ((m_numBubble == 0)))) && ((m_bonusLevelStartDelay == -1)))){ m_sharedData.isNoMoreBubbles = true; }; if (m_bonusLevelStartDelay != -1){ if (--m_bonusLevelStartDelay == 0){ m_bonusLevelStartDelay = -1; }; }; if (!m_useManualScrolling){ if (m_scroller == null){ if ((((_local4 == 0)) && ((m_delayedBubble.length == 0)))){ _local23 = Math.min((radiusY / 2), ((m_viewBottom - _local6) + (m_bottomOffset * radiusY))); if (_local23 != m_viewOffset){ if (((m_useScrollDelay) && ((_local23 > m_viewOffset)))){ m_scrollStartDelay = 10; }; m_scroller = new EaseOutQuadInterpolator(m_viewOffset, _local23, 15); }; }; }; if (m_scroller != null){ if (m_scrollStartDelay < 0){ m_scroller.update(); m_viewOffset = m_scroller.getValue(); if (m_scroller.isDone()){ m_scroller = null; }; } else { m_scrollStartDelay--; }; }; }; m_viewOffsetIp.set(m_viewOffset); } function bubbleInView(_arg1:Bubble):void{ var _local2:* = ((((_arg1.arrayY & 1) == 0)) ? (radiusX / 2) : 0 + (_arg1.arrayX * radiusX)); var _local3:* = (_arg1.arrayY * radiusY); _arg1.assureFull(); _arg1.setPosition(_local2, _local3); addChild(_arg1.bubble); if (m_disabled){ _arg1.disableBubble(); }; } function hasBonusBubble():Boolean{ var _local2:int; var _local3:Bubble; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { _local3 = m_bubbles[_local1][_local2]; if ((((_local3 == null)) || ((_local3.bubble == null)))){ } else { if (_local3.isBonus){ return (true); }; }; }; }; return (false); } function getRandomBottomBubble(_arg1:int):Bubble{ var _local2:int; var _local3:int; var _local4:int; var _local5:Bubble; var _local6:Array = new Array(); _local4 = getFirstRowWithBubbles(); _local2 = _local4; _arg1 = Math.min(_local4, _arg1); while (_local2 > (_local4 - _arg1)) { _local3 = m_bubbles[_local2].length; while (_local3--) { _local5 = m_bubbles[_local2][_local3]; if (((((!((_local5 == null))) && ((_local5.arrayY > 0)))) && (!(_local5.isBonus)))){ _local6.push(_local5); }; }; _local2--; }; if (_local6.length == 0){ return (null); }; var _local7:int = (m_bonusBubbleRng.nextInt(0xA000) % _local6.length); return (Bubble(_local6[_local7])); } function getRandomVisibleBubble():Bubble{ var _local4:int; var _local5:Bubble; var _local6:Pt; var _local1:Array = new Array(); var _local2:int = m_bubbles.length; while (_local2--) { _local4 = m_bubbles[_local2].length; while (_local4--) { _local5 = m_bubbles[_local2][_local4]; if ((((_local5 == null)) || ((_local5.bubble == null)))){ } else { if ((((_local5.arrayY == 0)) || (_local5.isBonus))){ } else { _local6 = matrixToScreen(_local5.arrayX, _local5.arrayY); if (_local6.y < radiusY){ } else { _local1.push(_local5); }; }; }; }; }; if (_local1.length == 0){ return (null); }; var _local3:int = (m_bonusBubbleRng.nextInt(0xA000) % _local1.length); return (Bubble(_local1[_local3])); } public function getBonusBubbleProximityFactor():Number{ if (m_numBonusBubbleSpawn == 5){ return (0); }; if (m_hasBonusBubble){ return (1); }; return ((Math.min(20, m_numBubblesDestroyed) / 20)); } function testPoint(_arg1:Pt):Boolean{ var _local4:int; var _local5:int; var _local6:int; var _local7:Array; var _local8:*; var _local9:*; var _local2:* = ((((_arg1.y & 1) == 0)) ? (radiusX / 2) : 0 + (_arg1.x * radiusX)); var _local3:* = (_arg1.y * radiusY); _local4 = Math.min((m_bubbles.length - 1), (_arg1.y + 1)); _local6 = Math.max(0, (_arg1.y - 2)); while (_local4 >= _local6) { _local7 = m_bubbles[_local4]; _local5 = _local7.length; while (_local5--) { if (_local7[_local5] == null){ } else { _local8 = (_local2 - _local7[_local5].getX()); _local9 = (_local3 - _local7[_local5].getY()); if (((_local8 * _local8) + (_local9 * _local9)) < (1 * 1)){ return (true); }; }; }; _local4--; }; return (false); } private function reraisePowerups(_arg1:MovieClip, _arg2:int):void{ var _local5:Bubble; var _local3:* = m_bubbles[_arg2]; var _local4:int = _local3.length; while (_local4--) { _local5 = _local3[_local4]; if ((((_local5 == null)) || (((!(_local5.isMultiplier)) && (!(_local5.isLineBlast)))))){ } else { if (((!((_local5.bubble == null))) && (!((_local5.bubble.parent == null))))){ setChildIndex(_local5.bubble, getChildIndex(_arg1)); }; }; }; } private function processBubble(_arg1:Bubble):void{ var _local9:*; var _local10:*; var _local11:int; var _local12:Pt; var _local13:*; var _local2:Boolean; var _local3:Boolean; var _local4:int = m_sharedData.score; var _local5:int = m_numBubblesDestroyed; if (!m_disabled){ _local2 = testForExpansion(_arg1.suggestX, _arg1.suggestY); _local3 = testForDrop(); }; var _local6:int = (m_numBubblesDestroyed - _local5); m_combo = Math.max(m_combo, _local6); var _local7:int = m_sharedData.score; if (_local6 > 9){ _local9 = new BurstPop(_local6); _local9.x = 200; _local9.y = 286; parent.parent.addChild(_local9); }; if (_local2){ _local11 = (_local7 - _local4); _local12 = matrixToScreen(_arg1.arrayX, _arg1.arrayY); matrixToScreen(_arg1.arrayX, _arg1.arrayY).x = (_local12.x + 338); if (((((m_sharedData.isSpeedMode) && ((_local11 < 1000)))) || (((!(m_sharedData.isSpeedMode)) && ((_local11 < 100)))))){ _local10 = new ScorePop(_local11); _local10.x = _local12.x; _local10.y = _local12.y; parent.parent.addChild(_local10); } else { if (_local12.x < 370){ _local12.x = 370; }; if (_local12.x > 510){ _local12.x = 510; }; if (_local12.y < 60){ _local12.y = 60; }; _local10 = new ScorePopHigh(_local11); _local10.x = _local12.x; _local10.y = _local12.y; parent.parent.addChild(_local10); }; }; var _local8:SoundManager = m_game.getSoundManager(); if (_local2){ _local13 = (("score_pop" + Math.max(1, Math.min(4, m_consecutiveBursts))) + ".2"); if (!_local8.get(_local13).isPlaying()){ _local8.get(_local13).play(); }; }; if (_local3){ if (!_local8.get("balls_dropped21").isPlaying()){ _local8.get("balls_dropped21").play(); }; }; } public function setEarlyGameEnd(_arg1:int):void{ m_earlyExitAtRow = _arg1; } private function attachBubble(_arg1:Bubble):Boolean{ if (_arg1 == null){ return (false); }; var _local2:* = 0; if ((_arg1.suggestY & 1) == 0){ _local2 = (radiusX / 2); }; var _local3:* = (_local2 + (_arg1.suggestX * radiusX)); var _local4:* = (_arg1.suggestY * radiusY); if ((((_arg1.suggestY < 0)) || (((!(m_isAllowedBottomRow)) && ((_arg1.suggestY == (m_bubbles.length - 2))))))){ _arg1.bounceOff(); _arg1 = null; return (false); }; _arg1.attachDelay = 3; _arg1.arrayX = _arg1.suggestX; _arg1.arrayY = _arg1.suggestY; m_game.sendData((((((("1001," + m_tick) + ",") + _arg1.arrayX) + ",") + _arg1.arrayY) + ",0=0")); _arg1.stick(_local3, _local4); m_bubbles[_arg1.suggestY][_arg1.suggestX] = _arg1; if (!m_game.getSoundManager().get("ball_sticks2").isPlaying()){ m_game.getSoundManager().get("ball_sticks2").play(0.7); }; bubbleInView(_arg1); reraisePowerups(_arg1.bubble, _arg1.suggestY); var _local5:* = false; var _local6:int = m_bubbles[(m_height - 1)].length; while (_local6--) { if (m_bubbles[(m_height - 1)][_local6] != null){ _local5 = true; break; }; }; return (true); } function screenToMatrix(_arg1:int, _arg2:int):Pt{ var _local3:Pt = new Pt(((_arg1 - m_offsetX) + 15), (((_arg2 - m_offsetY) - m_viewOffset) + 15)); _local3.y = int((_local3.y / radiusY)); if ((_local3.y & 1) == 0){ _local3.x = int(((_local3.x - (radiusX / 2)) / radiusX)); if (_local3.x > 6){ _local3.x = 6; }; } else { _local3.x = int((_local3.x / radiusX)); if (_local3.x > 7){ _local3.x = 7; }; }; if (_local3.x < 0){ _local3.x = 0; }; return (_local3); } function matrixToScreen(_arg1:int, _arg2:int):Pt{ var _local3:int; if ((_arg2 & 1) == 0){ _local3 = (radiusX / 2); }; return (new Pt(((m_offsetX + _local3) + (_arg1 * radiusX)), ((m_offsetY + m_viewOffset) + (_arg2 * radiusY)))); } function isClear(_arg1:int, _arg2:int):Boolean{ if ((((((((_arg1 < 0)) || ((_arg2 < 0)))) || ((_arg2 >= m_bubbles.length)))) || ((_arg1 >= m_bubbles[_arg2].length)))){ return (false); }; if (m_bubbles[_arg2][_arg1] == null){ return (true); }; return (false); } function getBubble(_arg1:int, _arg2:int):Bubble{ if ((((((((_arg1 < 0)) || ((_arg2 < 0)))) || ((_arg2 >= m_bubbles.length)))) || ((_arg1 >= m_bubbles[_arg2].length)))){ return (null); }; if (m_bubbles[_arg2][_arg1] != null){ return (m_bubbles[_arg2][_arg1]); }; return (null); } public function getNumBubbles():int{ return (m_numBubble); } public function setScoringEnabled(_arg1:Boolean):void{ m_isScoreEnable = _arg1; } public function setCanSpawnBonus(_arg1:Boolean):void{ m_spawnBonusEnable = _arg1; } public function setUseScrollDelay(_arg1:Boolean):void{ if (!_arg1){ m_scrollStartDelay = -1; }; m_useScrollDelay = _arg1; } public function setAllowedBottomRow(_arg1:Boolean):void{ m_isAllowedBottomRow = _arg1; } public function setUseManualScrolling(_arg1:Boolean):void{ m_useManualScrolling = _arg1; } public function setScrollOffset(_arg1:int):void{ if (m_useManualScrolling){ m_viewOffset = _arg1; }; } public function setViewTop(_arg1:int):void{ m_viewTop = _arg1; } public function popLiveBubbles():void{ var _local2:Bubble; var _local1:int; while (_local1 < m_liveBubble.length) { _local2 = m_liveBubble[_local1]; _local2.explode(); _local2.isRemoving = true; _local1++; }; } public function getNumVisibleBubble():int{ return (m_numVisibleBubble); } function getColor(_arg1:int, _arg2:int):int{ if ((((((((_arg1 < 0)) || ((_arg2 < 0)))) || ((_arg2 >= m_bubbles.length)))) || ((_arg1 >= m_bubbles[_arg2].length)))){ return (0); }; if (m_bubbles[_arg2][_arg1] != null){ return (m_bubbles[_arg2][_arg1].getColorIndex()); }; return (-1); } public function setDropBubbleContainer(_arg1:DisplayObjectContainer):void{ m_dropLayer = _arg1; } public function render(_arg1:int, _arg2:Number):void{ var _local3:* = m_viewOffsetIp.value; if (m_viewOffsetLast != _local3){ m_viewOffsetLast = _local3; y = _local3; if (m_dropLayer){ m_dropLayer.x = x; m_dropLayer.y = y; }; }; } } }//package game
Section 12
//BubbleClip (game.BubbleClip) package game { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; public class BubbleClip extends MovieClip { public var burst:MovieClip; public var marker_lineblast:LineExplosionMarker; public var lineblast:MovieClip; public var ball:MovieClip; public var marker_multiply:MultiplyMarker; private var m_bubble:Bubble; private var m_isZoom:Boolean; private var m_offsetY:int; private var m_startDelay:int; private var m_startTime:int; private var m_lastFrame:uint; private var m_dx:Number; private var m_dy:Number; private var m_dcos:Number; private var m_dsin:Number; private var m_startY; private var m_startX; private var m_projectile0:MovieClip; private var m_projectile1:MovieClip; public function BubbleClip(_arg1:Bubble){ m_dx = 0; m_dy = 0; m_bubble = _arg1; mouseChildren = false; stop(); ball.stop(); marker_lineblast.visible = false; marker_lineblast.stop(); marker_multiply.visible = false; marker_multiply.stop(); burst.stop(); burst.visible = false; lineblast.stop(); lineblast.visible = false; m_offsetY = 480; } public function setDropOffset(_arg1:int){ m_offsetY = _arg1; } public function startExplosion():void{ if (!lineblast.visible){ m_startTime = -1; m_startX = x; m_startY = y; marker_multiply.stop(); marker_multiply.visible = false; marker_lineblast.stop(); marker_lineblast.visible = false; burst.visible = true; ball.visible = false; m_startDelay = (getTimer() + int(((Math.random() * 100) + 1))); addEventListener(Event.ENTER_FRAME, animateExplosion); }; } public function startLineBlast():void{ if (((!(burst.visible)) && (!(lineblast.visible)))){ m_projectile0 = new LineBlastProjectile(); m_projectile1 = new LineBlastProjectile(); addChild(m_projectile0); addChild(m_projectile1); m_startTime = -1; m_startX = x; m_startY = y; lineblast.visible = true; addEventListener(Event.ENTER_FRAME, animateExplosion); }; } public function startDrop(_arg1:Number, _arg2:Number, _arg3:Boolean, _arg4:Boolean):void{ m_startTime = -1; var _local5:* = (Math.random() * Math.PI); m_dcos = Math.cos(_local5); m_dsin = Math.sin(_local5); m_dx = _arg1; m_dy = _arg2; m_isZoom = _arg4; transform.colorTransform = new ColorTransform(); m_startDelay = (_arg3) ? (getTimer() + 150) : 0; addEventListener(Event.ENTER_FRAME, animateDrop); } public function stopAnim():void{ removeEventListener(Event.ENTER_FRAME, animateDrop); removeEventListener(Event.ENTER_FRAME, animateExplosion); } public function animateDrop(_arg1:Event):void{ var _local2:int = getTimer(); if (_local2 < m_startDelay){ return; }; if (m_startTime < 0){ m_startTime = _local2; m_startX = x; m_startY = y; }; var _local3:Number = (_local2 - m_startTime); var _local4:Number = (_local3 / 110); var _local5:Number = (_local4 * 15); x = ((((m_dx * _local3) / 30) + m_startX) + (_local5 * m_dcos)); y = ((((m_dy * _local3) / 30) + m_startY) - ((_local5 * m_dsin) - ((9 * _local4) * _local4))); if (m_isZoom){ scaleX = (1 + (_local4 / 8)); scaleY = (1 + (_local4 / 8)); }; if (y > (m_offsetY - parent.y)){ removeEventListener(Event.ENTER_FRAME, animateDrop); marker_multiply.stop(); marker_lineblast.stop(); m_bubble.remove(); }; } public function animateExplosion(_arg1:Event):void{ var _local5:int; var _local6:*; var _local2:int = getTimer(); if (_local2 < m_startDelay){ return; }; if (m_startTime < 0){ m_startTime = _local2; }; var _local3:Number = (((_local2 - m_startTime) / ((1 / 25) * 1000)) + 1); var _local4:uint = int(Math.round(_local3)); if (burst.visible){ burst.gotoAndStop(_local4); if (_local4 > burst.totalFrames){ removeEventListener(Event.ENTER_FRAME, animateExplosion); marker_multiply.stop(); marker_lineblast.stop(); m_bubble.remove(); }; } else { if (lineblast.visible){ lineblast.gotoAndStop(_local4); _local5 = lineblast.totalFrames; _local6 = 1; if (_local3 > (_local5 - 7)){ _local6 = (1 - Math.min(1, ((_local3 - 7) / (_local5 - 7)))); }; ball.alpha = _local6; m_projectile0.alpha = _local6; m_projectile0.x = (_local3 * 14); m_projectile1.alpha = _local6; m_projectile1.x = (-(_local3) * 14); if (_local4 > _local5){ removeChild(m_projectile0); removeChild(m_projectile1); removeEventListener(Event.ENTER_FRAME, animateExplosion); marker_multiply.stop(); marker_lineblast.stop(); m_bubble.remove(); }; }; }; } } }//package game
Section 13
//BubbleLauncher (game.BubbleLauncher) package game { import flash.display.*; import timing.*; import math.*; public class BubbleLauncher extends MovieClip { private var m_bubble:Bubble; private var m_fr:IFloat; private var m_r:Number; private var m_limit1:Number; private var m_limit2:Number; private var m_x:int; private var m_y:int; private var m_xoffset:int; private var m_yoffset:int; private var m_lastDeg:int; private var m_reload:int; private var m_reloadTime:int; private var m_mouseX:int; private var m_mouseY:int; private var m_aimFn:Function; public function BubbleLauncher(){ m_fr = new IFloat(0); m_r = 0; m_lastDeg = -1; m_xoffset = 0; m_yoffset = 0; m_mouseX = 0; m_mouseY = 0; m_reloadTime = 15; m_reload = m_reloadTime; m_limit1 = -3.1414; m_limit2 = 0.0001; gotoAndStop(2); } public function setRadLimits(_arg1:Number, _arg2:Number):void{ m_limit1 = _arg1; m_limit2 = _arg2; } public function setReloadTime(_arg1:int):void{ m_reloadTime = _arg1; m_reload = 0; } public function setAimChangeCallback(_arg1:Function):void{ m_aimFn = _arg1; } public function setPosition(_arg1:int, _arg2:int):void{ this.x = _arg1; this.y = _arg2; m_x = _arg1; m_y = _arg2; } public function setBubble(_arg1:Bubble):void{ m_bubble = _arg1; } public function fire():Bubble{ if ((((m_reload <= 0)) && (!((m_bubble == null))))){ m_bubble.fire(m_r); m_reload = m_reloadTime; return (m_bubble); }; return (null); } public function tick(_arg1:int, _arg2:int, _arg3:int):void{ m_reload--; m_mouseX = (_arg2 + m_xoffset); m_mouseY = (_arg3 + m_yoffset); var _local4:* = m_r; m_r = XPMath.atan2((Math.min((m_y - 30), m_mouseY) - m_y), (m_mouseX - m_x)); if (m_r < m_limit1){ m_r = m_limit1; }; if (m_r > m_limit2){ m_r = m_limit2; }; if (((!((m_aimFn == null))) && (!(((m_r - _local4) == 0))))){ m_aimFn(m_r, _local4); }; m_fr.set(m_r); } public function getRad():Number{ return (m_r); } public function render(_arg1:int, _arg2:Number):void{ var _local3:int = int(((m_fr.value * (180 / Math.PI)) + 90)); if (_local3 != m_lastDeg){ rotation = _local3; }; } } }//package game
Section 14
//BubbleListener (game.BubbleListener) package game { public interface BubbleListener { function onBubbleRemove(_arg1:int):void; function onNoMoreBubbles():void; function onEarlyExit():void; function onMultiplierChanged(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void; } }//package game
Section 15
//BurstPop (game.BurstPop) package game { import flash.display.*; import flash.events.*; import localization.*; import flash.utils.*; public class BurstPop extends MovieClip { public var textclip:MovieClip; public var number0:MovieClip; public var number1:MovieClip; private var m_startTime:int; public function BurstPop(_arg1:int){ if (_arg1 > 99){ _arg1 = 99; }; var _local2:int = ((_arg1 % 10) + 1); number0.gotoAndStop(_local2); _local2 = ((int((_arg1 / 10)) % 10) + 1); number1.gotoAndStop(_local2); textclip.text.text = I18n.getString("end_speed_burst_pop"); gotoAndStop(1); m_startTime = -1; visible = false; addEventListener(Event.ENTER_FRAME, enterFrame); } public function enterFrame(_arg1:Event):void{ var _local2:int = getTimer(); if (m_startTime < 0){ m_startTime = _local2; visible = true; }; var _local3:* = ((1 / 25) * 1000); var _local4:uint = int(Math.round((((_local2 - m_startTime) / _local3) + 1))); if (_local4 > totalFrames){ removeEventListener(Event.ENTER_FRAME, enterFrame); parent.removeChild(this); return; }; if (_local4 != currentFrame){ gotoAndStop(_local4); }; } } }//package game
Section 16
//Game (game.Game) package game { import sfx.*; import flash.display.*; public interface Game { function getSharedData():SharedData; function leaveState():void; function isLowPerformanceMode():Boolean; function hideBack():void; function leaveGame():void; function sendData(_arg1:String):void; function getSoundManager():SoundManager; function getMusicManager():SoundManager; function finalScore(_arg1:int):void; function destroy():void; function flush():void; function toggleSound():void; function getDisplayObjectContainer():DisplayObjectContainer; } }//package game
Section 17
//GameBase (game.GameBase) package game { import sfx.*; import flash.display.*; import timing.*; import flash.events.*; import flash.geom.*; import localization.*; import util.*; import flash.system.*; import flash.external.*; public class GameBase extends MovieClip implements Game, Timeable { private var m_lastKeys:Array; private var m_fpsNextAt:int; private var m_fpsText:String; private var m_prevQuality:String; private var m_hasDecreasedQuality:Boolean; private var m_stats:Stats; private var m_soundMgr:SoundManager; private var m_musicMgr:SoundManager; private var m_states:Array; private var m_stateIdx:int; private var m_nextStateIdx:int; private var m_timer:Timer; private var m_gameCtrl:MovieClip; private var m_base:MovieClip; private var m_sharedData:SharedData; private var m_stateLocalTick:int; private var m_mouseX:int; private var m_mouseY:int; private var m_isFirstEnterFrame:Boolean; private var m_hasCalledQuit:Boolean; private var m_hasCalledEnd:Boolean; private var m_isSoundEnabled:Boolean; private var m_isMusicEnabled:Boolean; private var m_frameBuf:Bitmap; private var m_performance:Performance; private static const AUTO_VERSION:String = "BUILD_[1]_0"; public static const TICK_RATE:int = 30; public static const WIDTH:int = 755; public static const HEIGHT:int = 440; public static const PROTOCOL_VERSION:String = "1"; public static const DEBUG_MODE:Boolean = false; public function GameBase(){ m_mouseX = 0; m_mouseY = 0; m_lastKeys = new Array(10); m_isFirstEnterFrame = true; addEventListener(Event.ENTER_FRAME, enterFrame); } public function mouseMove(_arg1:MouseEvent):void{ m_mouseX = _arg1.stageX; m_mouseY = _arg1.stageY; } public function mouseDown(_arg1:MouseEvent):void{ if (m_mouseY < 530){ m_states[m_stateIdx].onMouseDown(); }; } public function mouseUp(_arg1:MouseEvent):void{ if (m_mouseY < 530){ m_states[m_stateIdx].onMouseUp(); }; } private function init():Boolean{ var data:Object; var prop:XML; var gd:String; m_hasCalledEnd = false; m_hasCalledQuit = false; m_isSoundEnabled = true; m_isMusicEnabled = true; m_performance = new Performance(40); m_performance.addQualityFeedbackListener(onPoorFrameRate); m_stateLocalTick = 0; m_stateIdx = -1; m_nextStateIdx = 0; stage.frameRate = 90; var i:* = 0; i = (i + 1); i = (i + 1); i = (i + 1); m_states = [new StateIntro(this, i), new StateGame(this, i), new StateEnd(this, i)]; m_sharedData = new SharedData(); m_timer = new Timer(this, TICK_RATE); if (DEBUG_MODE){ gd = ""; gd = (((((((((((((((((((((((((((((((((((((((((((((((((((((("<gamedata gametype=\"normal\" timelimit=\"300\" colors=\"3\" rows=\"200\" shotbonus=\"0\" randomseed=\"651156\">" + "<persistent>") + "<bestscore value=\"0\" />") + "<bestmultiplier value=\"0\" />") + "<bestcombo value=\"0\" />") + "<played value=\"0\" />") + "<trophy value=\"\" />") + "<sound value=\"0\" />") + "<music value=\"0\" />") + "</persistent>") + "<text id=\"time\">TIME LEFT</text>") + "<text id=\"score\">BASE SCORE</text>") + "<text id=\"bonus\">BONUS</text>") + "<text id=\"multiplier\">MULTIPLIER</text>") + "<text id=\"end\">END GAME</text>") + "<text id=\"end_opengame\">Register now to play the full game.</text>") + "<text id=\"end_speed_gameover\">Game Over</text>") + "<text id=\"end_speed_total_score\">Total score</text>") + "<text id=\"end_speed_best_score\">Best ever</text>") + "<text id=\"end_speed_this_game\">This game</text>") + "<text id=\"end_speed_personal_best\">Personal best</text>") + "<text id=\"end_speed_multiplier\">Multiplier</text>") + "<text id=\"end_speed_best_combo\">Best combo</text>") + "<text id=\"end_speed_bubbles\">{0} bubbles</text>") + "<text id=\"end_speed_trophy1\">100.000 points</text>") + "<text id=\"end_speed_trophy2\">10 x multiplier</text>") + "<text id=\"end_speed_trophy3\">100 games played</text>") + "<text id=\"end_speed_countdown\">Time to exit {0}</text>") + "<text id=\"end_speed_new_record\">New record!</text>") + "<text id=\"end_speed_burst_pop\">Bubbles burst!</text>") + "<text id=\"end_normal_gameover\">Game Over</text>") + "<text id=\"end_normal_combo_bonus\">Best combo</text>") + "<text id=\"end_normal_combo_bonus_val\">{0} bubbles</text>") + "<text id=\"end_normal_time_bonus\">Time bonus</text>") + "<text id=\"end_normal_move_bonus\">Move bonus</text>") + "<text id=\"end_normal_total_score\">Total score</text>") + "<text id=\"end_normal_best_score\">Best ever</text>") + "<text id=\"end_normal_new_record\">New record!</text>") + "<text id=\"end_normal_trophy1\">20.000 points</text>") + "<text id=\"end_normal_trophy2\">30 bubbles burst</text>") + "<text id=\"end_normal_trophy3\">Finish game under 2 minutes.</text>") + "<text id=\"end_normal_countdown\">Time to exit {0}</text>") + "<text id=\"intro_speed_title\">Instructions</text>") + "<text id=\"intro_speed_text1\">Shoot three or more bubbles of the same colour to remove them.</text>") + "<text id=\"intro_speed_text2\">Burst this bubble to remove everything under it.</text>") + "<text id=\"intro_speed_text3\">Make this bubble drop to increase the score multiplier.</text>") + "<text id=\"intro_speed_countdown\">Time to start {0}</text>") + "<text id=\"intro_normal_title\">Instructions</text>") + "<text id=\"intro_normal_text\">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</text>") + "<text id=\"intro_normal_countdown\">Time to start {0}</text>") + "<boosters>") + "<a value=\"0\" />") + "<b value=\"0\" />") + "</boosters>") + "</gamedata>"); data = {message:gd, success:true}; } else { if (!ExternalInterface.available){ return (false); }; data = ExternalInterface.call("getGameData"); }; if ((((data == null)) || (!(data.success)))){ return (false); }; var x:XML = new XML(data.message); var build:* = AUTO_VERSION.split("_")[1]; var buildDateHex:* = AUTO_VERSION.split("_")[2]; var d:* = parseInt(buildDateHex, 16); m_sharedData.isSpeedMode = ((x.@gametype)=="speed") ? true : false; m_sharedData.isShortMode = (((!(m_sharedData.isSpeedMode)) && ((x.@short == "true")))) ? true : false; m_sharedData.bestScore = x.persistent.bestscore.@value; m_sharedData.trophies = x.persistent.trophy.@value; m_isMusicEnabled = (x.persistent.music.@value == "0"); m_isSoundEnabled = (x.persistent.sound.@value == "0"); if (m_sharedData.isSpeedMode){ m_sharedData.bestMultiplier = x.persistent.bestmultiplier.@value; m_sharedData.bestCombo = x.persistent.bestcombo.@value; m_sharedData.numPlayed = x.persistent.played.@value; }; m_sharedData.build = parseInt(build.substring(1, (build.length - 1))); m_sharedData.buildDate = new Date(); m_sharedData.buildDate.setTime(d); var extraTime:int; var startMultiplier = 1; if (x.boosters != null){ extraTime = ((int(x.boosters.a.@value) == 0)) ? 0 : 5; startMultiplier = ((int(x.boosters.b.@value) == 0)) ? 1 : 3; }; m_sharedData.setGameTime((int(x.@timelimit) + extraTime)); m_sharedData.startMultiplier = startMultiplier; m_sharedData.shotBonusMax = int(x.@shotbonus); m_sharedData.rows = Math.max(3, int(x.@rows)); m_sharedData.colors = Math.min(6, Math.max(2, int(x.@colors))); m_sharedData.globalSeed = int(x.@randomseed); if (DEBUG_MODE){ m_sharedData.globalSeed = int((Math.random() * 2147483647)); }; var loc:Object = new Object(); for each (prop in x.children()) { loc[prop.@id] = prop.text(); }; I18n.init(loc); m_gameCtrl = new GameControl(); m_gameCtrl.exit_btn.stop(); m_gameCtrl.exit_hit.addEventListener(MouseEvent.CLICK, onClickExit); m_gameCtrl.exit_hit.addEventListener(MouseEvent.ROLL_OVER, function (_arg1:MouseEvent){ m_gameCtrl.exit_btn.gotoAndStop(2); }); m_gameCtrl.exit_hit.addEventListener(MouseEvent.ROLL_OUT, function (_arg1:MouseEvent){ m_gameCtrl.exit_btn.gotoAndStop(1); }); m_gameCtrl.exit_hit.buttonMode = true; m_gameCtrl.exit_hit.useHandCursor = true; m_gameCtrl.sfx_btn.stop(); m_gameCtrl.sfx_hit.addEventListener(MouseEvent.CLICK, onClickToggleSound); m_gameCtrl.sfx_hit.addEventListener(MouseEvent.ROLL_OVER, function (_arg1:MouseEvent){ m_gameCtrl.sfx_btn.gotoAndStop((m_isSoundEnabled) ? 2 : 4); }); m_gameCtrl.sfx_hit.addEventListener(MouseEvent.ROLL_OUT, function (_arg1:MouseEvent){ m_gameCtrl.sfx_btn.gotoAndStop((m_isSoundEnabled) ? 1 : 3); }); m_gameCtrl.sfx_btn.gotoAndStop((m_isSoundEnabled) ? 1 : 3); m_gameCtrl.sfx_hit.buttonMode = true; m_gameCtrl.sfx_hit.useHandCursor = true; m_gameCtrl.music_btn.stop(); m_gameCtrl.music_hit.addEventListener(MouseEvent.CLICK, onClickToggleMusic); m_gameCtrl.music_hit.addEventListener(MouseEvent.ROLL_OVER, function (_arg1:MouseEvent){ m_gameCtrl.music_btn.gotoAndStop((m_isMusicEnabled) ? 2 : 4); }); m_gameCtrl.music_hit.addEventListener(MouseEvent.ROLL_OUT, function (_arg1:MouseEvent){ m_gameCtrl.music_btn.gotoAndStop((m_isMusicEnabled) ? 1 : 3); }); m_gameCtrl.music_btn.gotoAndStop((m_isMusicEnabled) ? 1 : 3); m_gameCtrl.music_hit.buttonMode = true; m_gameCtrl.music_hit.useHandCursor = true; m_gameCtrl.visible = true; m_frameBuf = new Bitmap(new BitmapData(WIDTH, HEIGHT, false, 0)); addChild(m_frameBuf); m_base = new Assembly(); m_base.scrollRect = new Rectangle(0, 0, WIDTH, HEIGHT); m_base.mouseChildren = false; m_base.gotoAndStop((m_sharedData.isSpeedMode) ? 1 : 2); addChild(m_base); addChild(m_gameCtrl); m_fpsNextAt = -1; if (DEBUG_MODE){ m_stats = new Stats(); m_gameCtrl.addChild(m_stats); }; m_soundMgr = new SoundManager(); m_musicMgr = new SoundManager(); m_soundMgr.setVolume((m_isSoundEnabled) ? 1 : 0); m_musicMgr.setVolume((m_isMusicEnabled) ? 1 : 0); return (true); } public function enterFrame(_arg1:Event):void{ var _local2:MovieClip; var _local3:int; if (m_isFirstEnterFrame){ if (init()){ m_isFirstEnterFrame = false; } else { _local2 = new ErrorSymbol(); _local2.x = (755 / 2); _local2.y = (440 / 2); addChild(_local2); removeEventListener(Event.ENTER_FRAME, enterFrame); }; return; }; if (m_nextStateIdx != m_stateIdx){ _local3 = m_stateIdx; m_frameBuf.bitmapData.draw(getDisplayObjectContainer()); m_frameBuf.visible = true; if (m_stateIdx != -1){ m_states[m_stateIdx].disengage(); }; m_stateLocalTick = 0; m_stateIdx = m_nextStateIdx; m_states[m_stateIdx].engage(); stage.focus = this; if (m_hasDecreasedQuality){ m_states[m_stateIdx].onPoorFrameRate(); }; m_gameCtrl.sfx_btn.visible = false; m_gameCtrl.sfx_hit.visible = false; m_gameCtrl.music_btn.visible = false; m_gameCtrl.music_hit.visible = false; if (m_states[m_stateIdx].hasSoundButton()){ m_gameCtrl.sfx_btn.visible = true; m_gameCtrl.sfx_hit.visible = true; m_gameCtrl.music_btn.visible = true; m_gameCtrl.music_hit.visible = true; }; m_gameCtrl.exit_btn.visible = false; m_gameCtrl.exit_hit.visible = false; if (m_states[m_stateIdx].hasExitButton()){ m_gameCtrl.exit_btn.visible = true; m_gameCtrl.exit_hit.visible = true; }; if ((((_local3 == -1)) && (!((m_stateIdx == -1))))){ addEventListener(MouseEvent.MOUSE_MOVE, mouseMove); addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); addEventListener(MouseEvent.MOUSE_UP, mouseUp); }; }; if (m_stateIdx != -1){ m_states[m_stateIdx].onMouseMove(m_mouseX, m_mouseY); }; m_timer.advanceTime(); m_soundMgr.update(); m_musicMgr.update(); m_performance.frameUpdated(); } public function hideBack():void{ m_frameBuf.visible = false; } public function tick(_arg1:int):void{ m_sharedData.globalTick = _arg1; if (m_stateIdx != -1){ m_states[m_stateIdx].tick(m_stateLocalTick++); }; } public function render(_arg1:int, _arg2:Number):void{ if (m_stateIdx != -1){ m_states[m_stateIdx].render(m_stateLocalTick, _arg2); }; } public function getSharedData():SharedData{ return (m_sharedData); } public function flush():void{ m_timer.flush(); } public function onPoorFrameRate(_arg1:Number):void{ if (!m_hasDecreasedQuality){ if (m_stateIdx != -1){ m_states[m_stateIdx].onPoorFrameRate(); }; m_hasDecreasedQuality = true; stage.quality = "low"; }; } public function leaveState():void{ switch (m_stateIdx){ case 0: if (!DEBUG_MODE){ fscommand("gameStart", ""); }; sendData((((((("33,0," + PROTOCOL_VERSION) + ",") + m_sharedData.build) + ",") + m_sharedData.buildDate.getTime()) + ",0=0")); m_nextStateIdx = 1; break; }; } public function finalScore(_arg1:int):void{ if (((!(m_hasCalledQuit)) && (!(m_hasCalledEnd)))){ sendData((((("36,-1," + (m_isSoundEnabled) ? 0 : 1) + ",") + (m_isMusicEnabled) ? 0 : 1) + ",0=0")); if (!DEBUG_MODE){ fscommand("gameEnd", ("" + _arg1)); }; m_hasCalledEnd = true; }; } public function destroy():void{ if (((m_hasCalledEnd) && (!(m_hasCalledQuit)))){ removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove); removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown); removeEventListener(MouseEvent.MOUSE_UP, mouseUp); m_states[m_stateIdx].disengage(); if (!DEBUG_MODE){ fscommand("gameQuit", ""); }; m_hasCalledQuit = true; m_stateIdx = -1; m_nextStateIdx = -1; }; } public function isLowPerformanceMode():Boolean{ return (m_hasDecreasedQuality); } public function getDisplayObjectContainer():DisplayObjectContainer{ return (m_base); } public function sendData(_arg1:String):void{ if (!DEBUG_MODE){ ExternalInterface.call("playData", _arg1); }; } public function leaveGame():void{ m_nextStateIdx = 2; } public function toggleSound():void{ m_gameCtrl.sfx_btn.gotoAndStop((m_isSoundEnabled) ? 4 : 2); m_isSoundEnabled = !(m_isSoundEnabled); m_soundMgr.setVolume((m_isSoundEnabled) ? 1 : 0); } public function onClickToggleMusic(_arg1:MouseEvent):void{ m_gameCtrl.music_btn.gotoAndStop((m_isMusicEnabled) ? 4 : 2); m_isMusicEnabled = !(m_isMusicEnabled); m_musicMgr.setVolume((m_isMusicEnabled) ? 1 : 0); } public function onClickToggleSound(_arg1:MouseEvent):void{ toggleSound(); } public function onClickExit(_arg1:MouseEvent):void{ if (m_stateIdx != -1){ m_states[m_stateIdx].onGameQuitButton(); }; m_nextStateIdx = 2; } public function onFullscreen(_arg1:Event):void{ stage.displayState = "fullScreen"; stage.quality = "low"; } public function getSoundManager():SoundManager{ return (m_soundMgr); } public function getMusicManager():SoundManager{ return (m_musicMgr); } } }//package game
Section 18
//Leaf (game.Leaf) package game { import flash.display.*; import flash.events.*; import localization.*; import flash.utils.*; public class Leaf extends MovieClip { private const m_step:int = 40; public var texts:MovieClip; public var isAutoLeave:Boolean;// = false private var m_sharedData:SharedData; private var m_game:Game; private var m_startTime:int; private var m_stopFrame:int; private var m_doInit:Boolean; var textsAppearAt:int;// = -1 var autoLeaveAt:int;// = -1 var wiggleTrophy1:Boolean; var wiggleTrophy2:Boolean; var wiggleTrophy3:Boolean; public function Leaf(){ stop(); } public function setGame(_arg1:Game):void{ m_game = _arg1; m_sharedData = m_game.getSharedData(); } public function transitionIntro():void{ m_doInit = false; addEventListener(Event.ENTER_FRAME, animFw); m_startTime = -1; textsAppearAt = -1; m_stopFrame = 23; isAutoLeave = false; } public function transitionSpeedIntro():void{ m_doInit = false; addEventListener(Event.ENTER_FRAME, animFw); m_startTime = -1; textsAppearAt = -1; m_stopFrame = 25; isAutoLeave = false; } public function transitionNormalOutro():void{ m_doInit = false; addEventListener(Event.ENTER_FRAME, animFw); m_startTime = -1; textsAppearAt = -1; m_stopFrame = 24; isAutoLeave = false; } public function transitionOpenOutro():void{ m_doInit = false; addEventListener(Event.ENTER_FRAME, animFw); m_startTime = -1; textsAppearAt = -1; m_stopFrame = 27; isAutoLeave = false; } public function transitionSpeedOutro():void{ m_doInit = false; addEventListener(Event.ENTER_FRAME, animFw); m_startTime = -1; textsAppearAt = -1; isAutoLeave = false; m_stopFrame = 26; } public function startIntro():void{ if (texts.anim1){ texts.anim1.start(); }; if (texts.anim2){ texts.anim2.start(); }; if (texts.anim3){ texts.anim3.start(); }; } public function transitionRemove():void{ m_doInit = false; m_startTime = -1; removeEventListener(Event.ENTER_FRAME, appear); if (texts.anim1){ texts.anim1.stop(); }; if (texts.anim2){ texts.anim2.stop(); }; if (texts.anim3){ texts.anim3.stop(); }; addEventListener(Event.ENTER_FRAME, animRw); } public function animRw(_arg1:Event):void{ var _local2:int = getTimer(); if (m_startTime < 0){ m_startTime = _local2; }; var _local3:int = (22 - int(Math.round((((_local2 - m_startTime) / m_step) + 1)))); if (_local3 <= 1){ removeEventListener(Event.ENTER_FRAME, animRw); _local3 = 1; }; if (_local3 != currentFrame){ gotoAndStop(_local3); }; } public function appear(_arg1:Event):void{ var _local2:int = getTimer(); if (textsAppearAt < 0){ textsAppearAt = (_local2 + 500); autoLeaveAt = (_local2 + 10000); }; texts.alpha = (1 - (Math.max(0, (textsAppearAt - _local2)) / 500)); if (m_stopFrame == 23){ texts.countdown_txt.text = I18n.getString("intro_normal_countdown", int(((autoLeaveAt - _local2) / 1000))); }; if (m_stopFrame == 25){ texts.countdown_txt.text = I18n.getString("intro_speed_countdown", int(((autoLeaveAt - _local2) / 1000))); }; if ((((m_stopFrame == 24)) || ((m_stopFrame == 27)))){ texts.countdown_txt.text = I18n.getString("end_normal_countdown", int(((autoLeaveAt - _local2) / 1000))); }; if (m_stopFrame == 26){ texts.countdown_txt.text = I18n.getString("end_speed_countdown", int(((autoLeaveAt - _local2) / 1000))); }; if (wiggleTrophy1){ texts.trophy1.rotation = (Math.sin((_local2 / 200)) * 12); }; if (wiggleTrophy2){ texts.trophy2.rotation = (Math.sin(((_local2 + 150) / 200)) * 12); }; if (wiggleTrophy3){ texts.trophy3.rotation = (Math.sin(((_local2 + 300) / 200)) * 12); }; if (_local2 > autoLeaveAt){ isAutoLeave = true; removeEventListener(Event.ENTER_FRAME, appear); }; } public function animFw(_arg1:Event):void{ var _local4:int; var _local5:int; var _local2:int = getTimer(); if (((!(m_doInit)) && ((currentFrame == m_stopFrame)))){ m_doInit = true; return; }; if (m_doInit){ if (m_stopFrame == 23){ texts.instructions_txt.text = I18n.getString("intro_normal_text"); texts.title_txt.text = I18n.getString("intro_normal_title"); }; if (m_stopFrame == 25){ texts.anim1.start(); texts.anim2.start(); texts.text1_txt.text = I18n.getString("intro_speed_text1"); texts.text2_txt.text = I18n.getString("intro_speed_text2"); texts.text3_txt.text = I18n.getString("intro_speed_text3"); texts.title_txt.text = I18n.getString("intro_speed_title"); }; if (m_stopFrame == 24){ if (m_sharedData.finalScore > m_sharedData.bestScore){ texts.record_pop.start(); } else { texts.record_pop.visible = false; }; m_sharedData.bestScore = Math.max(m_sharedData.finalScore, m_sharedData.bestScore); texts.title_txt.text = I18n.getString("end_normal_gameover"); texts.total_score_txt.text = I18n.getString("end_normal_total_score"); texts.total_score_val_txt.text = ("" + m_sharedData.finalScore); texts.best_ever_txt.text = I18n.getString("end_normal_best_score"); texts.best_ever_val_txt.text = ("" + m_sharedData.bestScore); texts.combo_txt.text = I18n.getString("end_normal_combo_bonus"); texts.combo_val_txt.text = ("" + I18n.getString("end_normal_combo_bonus_val", m_sharedData.finalCombo)); texts.time_txt.text = I18n.getString("end_normal_time_bonus"); texts.time_val_txt.text = ("" + m_sharedData.timeBonus); texts.move_txt.text = I18n.getString("end_normal_move_bonus"); texts.move_val_txt.text = ("" + m_sharedData.shotBonus); texts.trophy1_txt.text = I18n.getString("end_normal_trophy1"); texts.trophy2_txt.text = I18n.getString("end_normal_trophy2"); texts.trophy3_txt.text = I18n.getString("end_normal_trophy3"); texts.record_pop.inner.txt.text = I18n.getString("end_normal_new_record"); if (m_sharedData.trophies.indexOf("1") != -1){ texts.trophy1.gotoAndStop(10); wiggleTrophy1 = true; } else { if (m_sharedData.finalScore >= 20000){ texts.trophy1.start(); }; }; if (m_sharedData.trophies.indexOf("2") != -1){ texts.trophy2.gotoAndStop(10); wiggleTrophy2 = true; } else { if (m_sharedData.finalCombo >= 30){ texts.trophy2.start(); }; }; _local4 = int(((m_sharedData.totalGameTime - m_sharedData.numGameTicksLeft) / GameBase.TICK_RATE)); if (m_sharedData.trophies.indexOf("3") != -1){ texts.trophy3.gotoAndStop(10); wiggleTrophy3 = true; } else { if (((m_sharedData.isGameWin) && ((_local4 < 120)))){ texts.trophy3.start(); }; }; }; if (m_stopFrame == 26){ if (m_sharedData.finalScore > m_sharedData.bestScore){ texts.record_pop.start(); } else { texts.record_pop.visible = false; }; m_sharedData.bestScore = Math.max(m_sharedData.bestScore, m_sharedData.finalScore); m_sharedData.bestMultiplier = Math.max(m_sharedData.bestMultiplier, m_sharedData.finalMultiplier); m_sharedData.bestCombo = Math.max(m_sharedData.bestCombo, m_sharedData.finalCombo); texts.title_txt.text = I18n.getString("end_speed_gameover"); texts.score_txt.text = I18n.getString("end_speed_total_score"); texts.score_val_txt.text = m_sharedData.finalScore; texts.score_best_txt.text = I18n.getString("end_speed_best_score"); texts.score_best_val_txt.text = m_sharedData.bestScore; texts.record_this_game_txt.text = I18n.getString("end_speed_this_game"); texts.personal_best_txt.text = I18n.getString("end_speed_personal_best"); texts.multiplier_txt.text = I18n.getString("end_speed_multiplier"); texts.record_this_game_mul_val_txt.text = ("" + m_sharedData.finalMultiplier); texts.personal_best_mul_val_txt.text = ("" + m_sharedData.bestMultiplier); texts.best_combo_txt.text = I18n.getString("end_speed_best_combo"); texts.record_this_game_combo_val_txt.text = I18n.getString("end_speed_bubbles", m_sharedData.finalCombo); texts.personal_best_combo_val_txt.text = I18n.getString("end_speed_bubbles", m_sharedData.bestCombo); texts.trophy1_txt.text = I18n.getString("end_speed_trophy1"); texts.trophy2_txt.text = I18n.getString("end_speed_trophy2"); texts.trophy3_txt.text = I18n.getString("end_speed_trophy3"); texts.record_pop.inner.txt.text = I18n.getString("end_speed_new_record"); _local5 = 0; if (m_sharedData.trophies.indexOf("1") != -1){ texts.trophy1.gotoAndStop(10); wiggleTrophy1 = true; } else { if (m_sharedData.bestScore >= 200000){ texts.trophy1.start(); _local5++; }; }; if (m_sharedData.trophies.indexOf("2") != -1){ texts.trophy2.gotoAndStop(10); wiggleTrophy2 = true; } else { if (m_sharedData.bestMultiplier >= 20){ texts.trophy2.start(); _local5++; }; }; if (m_sharedData.trophies.indexOf("3") != -1){ texts.trophy3.gotoAndStop(10); wiggleTrophy3 = true; } else { if ((m_sharedData.numPlayed + 1) >= 100){ texts.trophy3.start(); _local5++; }; }; if (_local5 > 0){ }; }; if (m_stopFrame == 27){ texts.title_txt.text = I18n.getString("end_normal_gameover"); texts.msg_txt.text = I18n.getString("end_opengame"); texts.score_txt.text = I18n.getString("end_normal_total_score"); texts.score_val_txt.text = ("" + m_sharedData.finalScore); }; addEventListener(Event.ENTER_FRAME, appear); removeEventListener(Event.ENTER_FRAME, animFw); return; }; if (m_startTime < 0){ m_startTime = _local2; }; var _local3:int = int(Math.round((((_local2 - m_startTime) / m_step) + 1))); if (_local3 > 22){ _local3 = m_stopFrame; }; if (_local3 != currentFrame){ gotoAndStop(_local3); }; } } }//package game
Section 19
//ScorePop (game.ScorePop) package game { import flash.display.*; import flash.events.*; import flash.utils.*; public class ScorePop extends MovieClip { public var number0:MovieClip; public var number1:MovieClip; public var number2:MovieClip; private var m_startTime:int; public function ScorePop(_arg1:int){ var _local2:int = ((_arg1 % 10) + 1); number0.gotoAndStop(_local2); _local2 = ((int((_arg1 / 10)) % 10) + 1); number1.gotoAndStop(_local2); _local2 = ((int((_arg1 / 100)) % 10) + 1); number2.gotoAndStop(_local2); number1.visible = (_arg1 > 9); number2.visible = (_arg1 > 99); gotoAndStop(1); m_startTime = -1; visible = false; addEventListener(Event.ENTER_FRAME, enterFrame); } public function enterFrame(_arg1:Event):void{ var _local2:int = getTimer(); if (m_startTime < 0){ m_startTime = _local2; visible = true; }; var _local3:* = ((1 / 25) * 1000); var _local4:uint = int(Math.round((((_local2 - m_startTime) / _local3) + 1))); if (_local4 > totalFrames){ removeEventListener(Event.ENTER_FRAME, enterFrame); parent.removeChild(this); return; }; if (_local4 != currentFrame){ gotoAndStop(_local4); }; } } }//package game
Section 20
//ScorePopHigh (game.ScorePopHigh) package game { import flash.display.*; import flash.events.*; import flash.utils.*; public class ScorePopHigh extends MovieClip { public var number0:MovieClip; public var pop3:MovieClip; public var number1:MovieClip; public var pop4:MovieClip; public var number2:MovieClip; public var pop5:MovieClip; public var number3:MovieClip; public var number4:MovieClip; private var startTime:int; private var spark:Boolean; private var score:int; public function ScorePopHigh(_arg1:int){ var _local2:int; super(); this.spark = false; this.score = _arg1; number0.visible = false; number1.visible = false; number2.visible = false; number3.visible = false; number4.visible = false; if (_arg1 > 9999){ _local2 = ((_arg1 % 10) + 1); number0.gotoAndStop(_local2); number0.visible = true; _local2 = ((int((_arg1 / 10)) % 10) + 1); number1.gotoAndStop(_local2); number1.visible = true; _local2 = ((int((_arg1 / 100)) % 10) + 1); number2.gotoAndStop(_local2); number2.visible = true; _local2 = ((int((_arg1 / 1000)) % 10) + 1); number3.gotoAndStop(_local2); number3.visible = true; _local2 = ((int((_arg1 / 10000)) % 10) + 1); number4.gotoAndStop(_local2); number4.visible = true; } else { if (_arg1 > 999){ _local2 = ((_arg1 % 10) + 1); number0.gotoAndStop(_local2); number0.visible = true; _local2 = ((int((_arg1 / 10)) % 10) + 1); number1.gotoAndStop(_local2); number1.visible = true; _local2 = ((int((_arg1 / 100)) % 10) + 1); number2.gotoAndStop(_local2); number2.visible = true; _local2 = ((int((_arg1 / 1000)) % 10) + 1); number3.gotoAndStop(_local2); number3.visible = true; } else { if (_arg1 > 99){ _local2 = ((_arg1 % 10) + 1); number1.gotoAndStop(_local2); number1.visible = true; _local2 = ((int((_arg1 / 10)) % 10) + 1); number2.gotoAndStop(_local2); number2.visible = true; _local2 = ((int((_arg1 / 100)) % 10) + 1); number3.gotoAndStop(_local2); number3.visible = true; }; }; }; number0.bkg1.visible = (Math.random() > 0.5); number0.bkg2.visible = (Math.random() > 0.25); number1.bkg1.visible = (Math.random() > 0.5); number1.bkg2.visible = (Math.random() > 0.25); number2.bkg1.visible = (Math.random() > 0.5); number2.bkg2.visible = (Math.random() > 0.25); number3.bkg1.visible = (Math.random() > 0.5); number3.bkg2.visible = (Math.random() > 0.25); number4.bkg1.visible = (Math.random() > 0.5); number4.bkg2.visible = (Math.random() > 0.25); gotoAndStop(1); startTime = -1; visible = false; pop5.visible = false; pop4.visible = false; pop3.visible = false; addEventListener(Event.ENTER_FRAME, enterFrame); } public function enterFrame(_arg1:Event):void{ var _local2:int = getTimer(); if (startTime < 0){ startTime = _local2; visible = true; }; var _local3:* = ((1 / 25) * 1000); var _local4:uint = int(Math.round((((_local2 - startTime) / _local3) + 1))); if ((((_local4 > (totalFrames - 3))) && (!(spark)))){ spark = true; if (score > 9999){ pop5.visible = true; } else { if (score > 999){ pop4.visible = true; } else { if (score > 99){ pop3.visible = true; }; }; }; }; if (_local4 > totalFrames){ removeEventListener(Event.ENTER_FRAME, enterFrame); parent.removeChild(this); return; }; if (_local4 != currentFrame){ gotoAndStop(_local4); }; } } }//package game
Section 21
//SharedData (game.SharedData) package game { public class SharedData { public var bestScore:int; public var bestMultiplier:int; public var bestCombo:int; public var numPlayed:int; public var finalMultiplier:int; public var finalCombo:int; public var trophies:String; public var score:int; public var shotBonus:int; public var timeBonus:int; public var finalScore:int; public var shotBonusMax:int; public var isGameWin:Boolean; public var isGameOver:Boolean; public var isNoMoreBubbles:Boolean; public var globalTick:int; public var globalSeed:int; public var numGameTicksLeft:int; public var build:int; public var colors:int; public var rows:int; public var buildDate:Date; public var totalGameTime:int; public var isShortMode:Boolean; public var isSpeedMode:Boolean; public var bonusLevel:Array; public var bonusLevelSubScore:Array; public var startMultiplier:int; public function SharedData(){ trophies = ""; bestScore = 0; bestCombo = 0; bestMultiplier = 0; isShortMode = false; bonusLevel = new Array(); bonusLevelSubScore = new Array(); score = 0; timeBonus = 0; rows = 20; colors = 5; finalScore = 0; shotBonus = 25000; isGameWin = false; isNoMoreBubbles = false; isGameOver = false; globalSeed = 0; startMultiplier = 1; } public function setGameTime(_arg1:int):void{ totalGameTime = (numGameTicksLeft = int((GameBase.TICK_RATE * _arg1))); } } }//package game
Section 22
//State (game.State) package game { public interface State { function tick(_arg1:int):void; function render(_arg1:int, _arg2:Number):void; function engage():void; function disengage():void; function hasExitButton():Boolean; function hasSoundButton():Boolean; function onGameQuitButton():void; function onMouseDown():void; function onMouseUp():void; function onMouseMove(_arg1:int, _arg2:int):void; function onPoorFrameRate():void; } }//package game
Section 23
//StateBase (game.StateBase) package game { public class StateBase implements State { public function tick(_arg1:int):void{ } public function render(_arg1:int, _arg2:Number):void{ } public function engage():void{ } public function disengage():void{ } public function hasExitButton():Boolean{ return (true); } public function hasSoundButton():Boolean{ return (true); } public function onGameQuitButton():void{ } public function onMouseDown():void{ } public function onMouseUp():void{ } public function onMouseMove(_arg1:int, _arg2:int):void{ } public function onPoorFrameRate():void{ } } }//package game
Section 24
//StateEnd (game.StateEnd) package game { public class StateEnd extends StateBase { private var m_game:Game; private var m_tick:int; private var m_sendQuitAt:int; private var m_isMouseDown:Boolean; private var m_isEarlyExit:Boolean; public function StateEnd(_arg1:Game, _arg2:int){ m_game = _arg1; } override public function tick(_arg1:int):void{ m_tick = _arg1; var _local2:* = m_game.getDisplayObjectContainer(); if (((!(m_isEarlyExit)) && (_local2.big_leaf.isAutoLeave))){ m_isEarlyExit = true; m_isMouseDown = false; m_sendQuitAt = (_arg1 + 1); } else { if (((((!(m_isEarlyExit)) && ((_arg1 > 45)))) && (m_isMouseDown))){ m_isEarlyExit = true; m_isMouseDown = false; m_sendQuitAt = (_arg1 + (GameBase.TICK_RATE * 2)); }; }; if (m_sendQuitAt == _arg1){ m_game.destroy(); }; m_isMouseDown = false; } override public function render(_arg1:int, _arg2:Number):void{ } override public function engage():void{ var _local3:Number; var _local1:SharedData = m_game.getSharedData(); m_sendQuitAt = (GameBase.TICK_RATE * 10); m_isEarlyExit = false; m_sendQuitAt = -1; var _local2:* = m_game.getDisplayObjectContainer(); if (!_local1.isGameWin){ _local1.shotBonus = 0; } else { _local3 = GameBase.TICK_RATE; _local1.timeBonus = int((((_local1.numGameTicksLeft / _local3) / (_local1.totalGameTime / _local3)) * 1000)); }; m_game.sendData((((((((("201," + m_tick) + ",") + _local1.score) + ",") + _local1.shotBonus) + ",0,") + _local1.timeBonus) + ",0=0")); _local1.finalScore = ((_local1.score + _local1.shotBonus) + _local1.timeBonus); m_game.getMusicManager().stopAll(); if (_local1.isShortMode){ m_game.getMusicManager().get("end2").play(0.6); _local2.big_leaf.transitionOpenOutro(); } else { if (_local1.isSpeedMode){ m_game.getMusicManager().get("end1").play(0.6); _local2.big_leaf.transitionSpeedOutro(); } else { m_game.getMusicManager().get("end2").play(0.6); _local2.big_leaf.transitionNormalOutro(); }; }; m_game.finalScore(_local1.finalScore); } override public function onMouseDown():void{ m_isMouseDown = true; } override public function disengage():void{ var _local1:SharedData = m_game.getSharedData(); if (_local1.isSpeedMode){ m_game.getMusicManager().get("end1").fadeToAndStop(0, 1000); } else { m_game.getMusicManager().get("end2").fadeToAndStop(0, 1000); }; } override public function hasSoundButton():Boolean{ return (true); } override public function hasExitButton():Boolean{ return (false); } } }//package game
Section 25
//StateGame (game.StateGame) package game { import sfx.*; import geom.*; import math.*; import util.*; public class StateGame extends StateBase implements BubbleListener { private var m_newMouseX:int; private var m_newMouseY:int; private var m_mouseX:int; private var m_mouseY:int; private var m_game:Game; private var m_bubbles:BubbleBox; private var m_aimCursor:AimCursor; private var m_bubbleLauncher:BubbleLauncher; private var m_tick:int; private var m_ballRng:MtRandom; private var m_tickList:Array; private var m_aimBubble:Bubble; private var m_nextBubble:Bubble; private var m_isMouseDown:Boolean; private var m_lastTickScore:int; private var m_lastScoring:int; private var m_lastScoreDisp:int; private var m_lastShotBonusDisp:int; private var m_leaveGameAt:int; private var m_collidableList:Array; private var m_lastMultipierX:int; private var m_lastMultipierY:int; private var m_accumulatedMultiplierInc:int; private var m_startLoopAt:int; var animalLever:int;// = 2 public function StateGame(_arg1:Game, _arg2:int){ m_game = _arg1; m_tick = -2; m_leaveGameAt = -1; m_lastScoreDisp = -1; m_lastShotBonusDisp = -1; m_collidableList = new Array(); m_collidableList.push(new Line(32, -2500, 32, 500)); m_collidableList.push(new Line(0x0100, -2500, 0x0100, 500)); m_isMouseDown = false; m_tickList = new Array(); } public function onMultiplierChanged(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ m_lastMultipierX = _arg1; m_lastMultipierY = _arg2; if (m_accumulatedMultiplierInc == -1){ m_accumulatedMultiplierInc = _arg4; } else { m_accumulatedMultiplierInc = (m_accumulatedMultiplierInc + _arg4); }; if (_arg4 <= 1){ if (!m_game.getSoundManager().get("multiplier_collected1").isPlaying()){ m_game.getSoundManager().get("multiplier_collected1").play(); }; }; if (_arg4 >= 2){ if (!m_game.getSoundManager().get("double_multiplier_collected").isPlaying()){ m_game.getSoundManager().get("double_multiplier_collected").play(); }; }; var _local5:* = m_game.getDisplayObjectContainer(); _local5.bonus_val_txt.text = ("x " + _arg3); } public function onEarlyExit():void{ m_leaveGameAt = (m_tick + 1); } public function onBubbleRemove(_arg1:int):void{ var _local4:int; var _local5:int; var _local2:Array = m_bubbles.getUniqueColors(); var _local3:Boolean; _local5 = 0; while (((!(_local3)) && ((_local5 < _local2.length)))) { if (m_aimBubble.getColorIndex() == _local2[_local5]){ _local3 = true; }; _local5++; }; if (!_local3){ _local4 = _local2[m_ballRng.nextInt(_local2.length)]; m_aimBubble.setColorIndex(_local4); }; _local3 = false; _local5 = 0; while (((!(_local3)) && ((_local5 < _local2.length)))) { if (m_nextBubble.getColorIndex() == _local2[_local5]){ _local3 = true; }; _local5++; }; if (!_local3){ _local4 = _local2[m_ballRng.nextInt(_local2.length)]; m_nextBubble.setColorIndex(_local4); }; m_aimCursor.setColor(m_aimBubble.getColorIndex()); } public function onNoMoreBubbles():void{ } override public function tick(_arg1:int):void{ var _local8:TickObject; var _local9:ManagedSoundChannel; m_tick = _arg1; var _local2:* = m_game.getSharedData(); var _local3:* = m_game.getDisplayObjectContainer(); m_lastTickScore = _local2.score; if (m_accumulatedMultiplierInc != -1){ _local3.addChild(new BigPopper(m_lastMultipierX, m_lastMultipierY, m_accumulatedMultiplierInc)); m_accumulatedMultiplierInc = -1; }; if (_local2.numGameTicksLeft == (GameBase.TICK_RATE * 10)){ _local3.time_up.start(); m_game.getSoundManager().get("time_warning1").play(); }; if ((((_local2.numGameTicksLeft == 0)) && (!(_local2.isGameOver)))){ _local3.time_up.remove(); _local2.isGameOver = true; _local2.isGameWin = false; m_leaveGameAt = (_arg1 + (GameBase.TICK_RATE * 2)); m_bubbles.disableBubbles(); }; if (_arg1 == m_leaveGameAt){ m_game.leaveGame(); return; }; handleMouseDown(); m_bubbles.tick(_arg1); m_bubbleLauncher.tick(_arg1, m_mouseX, m_mouseY); m_aimCursor.tick(m_mouseX, m_mouseY); if (!_local2.isGameOver){ if (_local2.isNoMoreBubbles){ m_game.sendData((("200," + m_tick) + ",0=0")); _local2.isGameOver = true; _local2.isGameWin = true; m_leaveGameAt = (m_tick + (GameBase.TICK_RATE * 2)); } else { _local2.numGameTicksLeft--; }; }; var _local4:int; while (_local4 < m_tickList.length) { _local8 = m_tickList[_local4]; _local8.tick(_arg1); if (_local8.isRemoving){ _local8.isRemoving = false; m_tickList.splice(_local4, 1); } else { _local4++; }; }; var _local5:int = int(((_local2.numGameTicksLeft / GameBase.TICK_RATE) * 1000)); var _local6:String = Numbers.asTime(_local5, false, true); if (_local3.time_val_txt.text != _local6){ _local3.time_val_txt.text = _local6; }; if (m_startLoopAt == _arg1){ _local9 = m_game.getMusicManager().get("loop1").loop(0); _local9.fadeTo(0.6, 500); }; if (m_lastScoreDisp != _local2.score){ m_lastScoreDisp = _local2.score; _local3.points_val_txt.text = _local2.score; }; if (!_local2.isSpeedMode){ if (m_lastShotBonusDisp != _local2.shotBonus){ m_lastShotBonusDisp = _local2.shotBonus; _local3.bonus_val_txt.text = _local2.shotBonus; }; }; var _local7:int = (_local2.score - m_lastTickScore); if (_local7 > 0){ m_lastScoring = _arg1; }; if (_local7 != 0){ m_game.sendData(((("2," + m_tick) + ",0=") + _local7)); }; } override public function render(_arg1:int, _arg2:Number):void{ var _local3:int; while (_local3 < m_tickList.length) { m_tickList[_local3].render(_arg1, _arg2); _local3++; }; m_bubbles.render(_arg1, _arg2); m_bubbleLauncher.render(_arg1, _arg2); m_aimCursor.update(_arg1, _arg2); } override public function engage():void{ var _local1:* = m_game.getDisplayObjectContainer(); var _local2:SharedData = m_game.getSharedData(); m_aimCursor = _local1.aim_over; m_aimCursor.setAncorPosition((454 + 8), 334); m_aimCursor.setVisibleLimit(332, 20, 588, 560); m_bubbleLauncher = _local1.bubble_launcher; m_bubbleLauncher.setPosition((458 + 8), 334); m_bubbleLauncher.setAimChangeCallback(onChangeBubbleAim); m_accumulatedMultiplierInc = -1; var _local3:int = _local2.globalSeed; _local2.shotBonus = _local2.shotBonusMax; m_bubbles = new BubbleBox(m_game, _local2, _local3, _local2.rows, [1, 2, 3, 4, 5].splice(0, _local2.colors), 10, _local2.startMultiplier); m_bubbles.setPreferredBottomPos(2); if (_local2.isShortMode){ m_bubbles.setEarlyGameEnd(12); }; m_bubbles.addListener(this); var _local4:* = _local1.getChildByName("bubbleBoxParent"); _local4.addChild(m_bubbles); m_ballRng = new MtRandom((_local3 + 1)); m_startLoopAt = (m_tick + 25); m_game.getMusicManager().get("game_start").play(); m_game.sendData((((("99," + m_tick) + ",") + _local2.globalSeed) + ",0=0")); nextBubble(); m_game.flush(); } public function onChangeBubbleAim(_arg1:Number, _arg2:Number):void{ var _local3:* = m_game.getDisplayObjectContainer(); if (_arg1 < ((-(Math.PI) / 2) - (Math.PI / 4))){ _local3.animal.gotoAndStop(1); } else { if (_arg1 < (-(Math.PI) / 2)){ _local3.animal.gotoAndStop(2); } else { if (_arg1 > ((-(Math.PI) / 2) + (Math.PI / 4))){ _local3.animal.gotoAndStop(3); } else { if (_arg1 > (-(Math.PI) / 2)){ _local3.animal.gotoAndStop(2); } else { _local3.gotoAndStop(1); }; }; }; }; } override public function disengage():void{ var _local1:* = m_game.getDisplayObjectContainer(); _local1.time_up.remove(); var _local2:SharedData = m_game.getSharedData(); _local2.finalMultiplier = m_bubbles.getMultiplier(); _local2.finalCombo = m_bubbles.getCombo(); if (m_aimBubble != null){ m_aimBubble.remove(); m_aimBubble = null; }; if (m_nextBubble != null){ m_nextBubble.remove(); m_nextBubble = null; }; } override public function onGameQuitButton():void{ m_game.getSharedData().shotBonus = 0; m_game.sendData((("113," + m_tick) + ",0=0")); } override public function onMouseDown():void{ if (m_game.getSharedData().isGameOver){ return; }; if (m_mouseY > 390){ return; }; m_game.sendData((((((("1," + m_tick) + ",") + m_mouseX) + ",") + m_mouseY) + ",0=0")); m_isMouseDown = true; } private function handleMouseDown():void{ m_mouseX = m_newMouseX; m_mouseY = m_newMouseY; if (!m_isMouseDown){ return; }; m_isMouseDown = false; if (((m_bubbles.canFire()) && (m_bubbleLauncher.fire()))){ m_game.getSoundManager().get("ball_shot1").play(); m_game.sendData((((("1002," + m_tick) + ",") + m_bubbleLauncher.getRad()) + ",0=0")); m_game.getSharedData().shotBonus = (m_game.getSharedData().shotBonus - 200); if (m_game.getSharedData().shotBonus < 0){ m_game.getSharedData().shotBonus = 0; }; m_bubbles.addLiveBubble(m_aimBubble); m_tickList.push(m_aimBubble); nextBubble(); }; } override public function hasSoundButton():Boolean{ return (true); } override public function hasExitButton():Boolean{ return (true); } override public function onMouseMove(_arg1:int, _arg2:int):void{ m_newMouseX = _arg1; m_newMouseY = _arg2; } private function nextBubble():void{ var _local1:int; var _local2:Array; var _local3:* = m_game.getDisplayObjectContainer(); if (m_aimBubble == null){ m_aimBubble = new Bubble(); m_aimBubble.setBubbleParent(_local3.bubble_base); m_aimBubble.assureFull(); m_aimBubble.setCollidableList(m_collidableList); _local3.addChild(m_aimBubble.bubble); _local2 = m_bubbles.getUniqueColors(); _local1 = _local2[m_ballRng.nextInt(_local2.length)]; m_aimBubble.setColorIndex(_local1); m_game.sendData((((("76," + m_tick) + ",") + _local1) + ",0=0")); m_aimBubble.gotoAimPosition(); } else { m_aimBubble = m_nextBubble; m_aimBubble.gotoAimPosition(); }; m_bubbleLauncher.setBubble(m_aimBubble); m_nextBubble = new Bubble(); m_nextBubble.assureFull(); m_nextBubble.setBubbleParent(_local3.bubble_base); m_nextBubble.setCollidableList(m_collidableList); _local3.addChild(m_nextBubble.bubble); _local2 = m_bubbles.getUniqueColors(); _local1 = _local2[m_ballRng.nextInt(_local2.length)]; m_nextBubble.setColorIndex(_local1); m_game.sendData((((("77," + m_tick) + ",") + _local1) + ",0=0")); m_nextBubble.gotoPreviewPosition(); m_aimCursor.setColor(m_aimBubble.getColorIndex()); } } }//package game
Section 26
//StateIntro (game.StateIntro) package game { import localization.*; import util.*; public class StateIntro extends StateBase { private var m_mouseX:int; private var m_mouseY:int; private var m_game:Game; private var m_hasLeft:Boolean; private var m_hideAt:int; private var m_possiblyLeaveDelay:int; private var m_leaveAt:int; private var m_nextSlideAt:int; private var m_startIntroAt:int; private var m_tick:int; public function StateIntro(_arg1:Game, _arg2:int){ m_hideAt = -1; m_startIntroAt = -1; m_leaveAt = -1; m_possiblyLeaveDelay = -1; m_hasLeft = false; m_game = _arg1; m_tick = -2; } override public function tick(_arg1:int):void{ var _local2:* = m_game.getDisplayObjectContainer(); m_tick = _arg1; if (m_startIntroAt == -1){ m_startIntroAt = (m_tick + (GameBase.TICK_RATE * 1.5)); }; if (m_startIntroAt == _arg1){ _local2.big_leaf.startIntro(); m_possiblyLeaveDelay = (m_tick + (GameBase.TICK_RATE * 1)); }; if (m_hideAt == _arg1){ _local2.big_leaf.transitionRemove(); }; if (((!(m_hasLeft)) && (_local2.big_leaf.isAutoLeave))){ leave(); }; if (m_leaveAt == _arg1){ m_game.leaveState(); }; } public function leave(){ if (((((!(m_hasLeft)) && (!((m_possiblyLeaveDelay == -1))))) && ((m_tick > m_possiblyLeaveDelay)))){ m_hasLeft = true; m_hideAt = (m_tick + 1); m_leaveAt = (m_tick + 25); }; } override public function render(_arg1:int, _arg2:Number):void{ } override public function engage():void{ var _local1:* = m_game.getSharedData(); var _local2:* = m_game.getDisplayObjectContainer(); _local2.animal.stop(); _local2.time_txt.text = I18n.getString("time"); var _local3:int = int(((_local1.numGameTicksLeft / GameBase.TICK_RATE) * 1000)); _local2.time_val_txt.text = Numbers.asTime(_local3, false, true); _local2.points_txt.text = I18n.getString("score"); _local2.points_val_txt.text = "0"; _local2.big_leaf.setGame(m_game); if (_local1.isSpeedMode){ m_game.getMusicManager().get("intro1").play(); _local2.bonus_val_txt.text = ("x " + String(_local1.startMultiplier)); _local2.bonus_txt.text = I18n.getString("multiplier"); _local2.big_leaf.transitionSpeedIntro(); } else { m_game.getMusicManager().get("intro2").play(); _local2.bonus_txt.text = I18n.getString("bonus"); _local2.bonus_val_txt.text = _local1.shotBonus; _local2.big_leaf.transitionIntro(); }; } override public function disengage():void{ m_game.getMusicManager().stopAll(); } override public function onMouseMove(_arg1:int, _arg2:int):void{ m_mouseX = _arg1; m_mouseY = _arg2; } override public function onGameQuitButton():void{ m_game.getSharedData().shotBonus = 0; } override public function onMouseDown():void{ if (m_mouseY < 390){ leave(); }; } override public function hasSoundButton():Boolean{ return (true); } override public function hasExitButton():Boolean{ return (false); } } }//package game
Section 27
//TickObject (game.TickObject) package game { public class TickObject { public var isRemoving:Boolean; public function TickObject(){ isRemoving = false; } public function tick(_arg1:int):void{ } public function render(_arg1:int, _arg2:Number):void{ } } }//package game
Section 28
//TimeUp (game.TimeUp) package game { import flash.display.*; import flash.events.*; import flash.utils.*; public class TimeUp extends MovieClip { private var startTime:int; public function TimeUp(){ gotoAndStop(1); visible = false; } public function remove(){ removeEventListener(Event.ENTER_FRAME, enterFrame); visible = false; } public function start(){ startTime = -1; addEventListener(Event.ENTER_FRAME, enterFrame); } public function enterFrame(_arg1:Event):void{ var _local2:int = getTimer(); if (startTime < 0){ startTime = _local2; visible = true; }; var _local3:* = ((1 / 30) * 1000); var _local4:uint = int(Math.round((((_local2 - startTime) / _local3) + 1))); if (_local4 > totalFrames){ _local4 = totalFrames; startTime = -1; }; if (_local4 != currentFrame){ gotoAndStop(_local4); }; } } }//package game
Section 29
//Line (geom.Line) package geom { public class Line { public var x1:Number; public var y1:Number; public var x2:Number; public var y2:Number; public function Line(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.x1 = _arg1; this.y1 = _arg2; this.x2 = _arg3; this.y2 = _arg4; } public function distance(_arg1:Number, _arg2:Number):Number{ return (Math.sqrt(distanceSquared(_arg1, _arg2))); } public function distanceSquared(_arg1:Number, _arg2:Number):Number{ var _local3:* = (x2 - x1); var _local4:* = (y2 - y1); var _local5:* = (_arg1 - x1); var _local6:* = (_arg2 - y1); var _local7:* = ((_local5 * _local3) + (_local6 * _local4)); var _local8:* = ((_local3 * _local3) + (_local4 * _local4)); var _local9:* = (_local7 / _local8); var _local10:* = (x1 + (_local9 * _local3)); var _local11:* = (y1 + (_local9 * _local4)); var _local12:* = (_arg1 - _local10); _local12 = ((_arg1 - _local10) * _local12); var _local13:* = (_arg2 - _local11); _local13 = ((_arg2 - _local11) * _local13); return ((_local12 + _local13)); } public function intersects(_arg1:Line):Boolean{ var _local10:*; var _local2:* = (x2 - x1); var _local3:* = (y2 - y1); var _local4:* = (_arg1.x2 - _arg1.x1); var _local5:* = (_arg1.y2 - _arg1.y1); var _local6:* = ((_local5 * _local2) - (_local4 * _local3)); if (_local6 == 0){ return (false); }; var _local7:* = (x1 - _arg1.x1); var _local8:* = (y1 - _arg1.y1); var _local9:* = (((_local4 * _local8) - (_local5 * _local7)) / _local6); if ((((_local9 > 0)) && ((_local9 < 1)))){ _local10 = (((_local2 * _local8) - (_local3 * _local7)) / _local6); return ((((_local10 > 0)) && ((_local10 < 1)))); }; return (false); } public function length():Number{ var _local1:* = (x1 - x2); var _local2:* = (y1 - y2); return (Math.sqrt(((_local1 * _local1) + (_local2 * _local2)))); } public function intersectionPoint(_arg1:Line):Pt{ var _local2:* = _arg1.x1; var _local3:* = _arg1.x2; var _local4:* = _arg1.y1; var _local5:* = _arg1.y2; var _local6:* = (x1 - _local2); var _local7:* = (y1 - _local4); var _local8:* = (_local3 - _local2); var _local9:* = (_local5 - _local4); var _local10:* = (x2 - x1); var _local11:* = (y2 - y1); var _local12:* = ((_local9 * _local10) - (_local8 * _local11)); var _local13:* = (((_local8 * _local7) - (_local9 * _local6)) / _local12); var _local14:* = (((_local10 * _local7) - (_local11 * _local6)) / _local12); var _local15:Pt; if ((((((_local13 > 0)) && ((_local13 < 1)))) && ((((_local14 > 0)) && ((_local14 < 1)))))){ _local15 = new Pt((x1 + (_local13 * (x2 - x1))), (y1 + (_local13 * (y2 - y1)))); }; return (_local15); } } }//package geom
Section 30
//Pt (geom.Pt) package geom { public class Pt { public var x:Number; public var y:Number; public function Pt(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } public function toString():String{ return ((((("Pt[" + x) + ",") + y) + "]")); } } }//package geom
Section 31
//Vec2D (geom.Vec2D) package geom { public class Vec2D { public var x:Number; public var y:Number; public function Vec2D(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } public function normalize():void{ var _local2:*; var _local1:* = Math.sqrt(((x * x) + (y * y))); if (_local1 > 0){ _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); }; } public function copyFrom(_arg1:Vec2D):void{ x = _arg1.x; y = _arg1.y; } public function dot(_arg1:Vec2D):Number{ return (((_arg1.x * x) + (_arg1.y * y))); } public function length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function toString():String{ return (((x + ", ") + y)); } } }//package geom
Section 32
//bubbleBoxContainer_7 (jungle_bubble_fla.bubbleBoxContainer_7) package jungle_bubble_fla { import flash.display.*; public dynamic class bubbleBoxContainer_7 extends MovieClip { public function bubbleBoxContainer_7(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package jungle_bubble_fla
Section 33
//I18n (localization.I18n) package localization { public class I18n { private static var m_strings:Object; public function I18n(){ m_strings = new Object(); } public static function init(_arg1:Object):void{ var _local2:String; m_strings = new Object(); for (_local2 in _arg1) { m_strings[_local2] = _arg1[_local2]; }; } public static function getString(_arg1:String, ... _args):String{ var _local3:String; var _local4:*; var _local5:RegExp; if (m_strings[_arg1] != undefined){ _local3 = m_strings[_arg1]; if (_args.length > 0){ _local4 = 0; while (_local4 < _args.length) { _local5 = new RegExp((("\\{" + _local4) + "\\}"), "gi"); _local3 = _local3.replace(_local5, _args[_local4]); _local4++; }; }; return (_local3); } else { }; return ((!NULL! + !NULL!)); } } }//package localization
Section 34
//MtRandom (math.MtRandom) package math { import flash.utils.*; public class MtRandom { private var mt:Array; private var mti:uint; public static var N:int = 624; public static var M:int = 397; public static var MATRIX_A:uint = 2567483615; public static var UPPER_MASK:uint = 2147483648; public static var LOWER_MASK:uint = 2147483647; private static var mag01:Array = [uint(0), uint(MATRIX_A)]; public function MtRandom(_arg1:uint=0){ mti = (N + 1); super(); if (_arg1 == 0){ _arg1 = getTimer(); }; mt = new Array(N); init_genrand(_arg1); } public function setSeed(_arg1:uint):void{ init_genrand(_arg1); } public function nextInt(_arg1:uint):uint{ return (((genrand_int32() & 2147483647) % _arg1)); } public function nextFloat():Number{ return ((next(24) / 16777216)); } public function nextDouble():Number{ return ((next(24) / 16777216)); } private function next(_arg1:uint):uint{ return ((genrand_int32() & ((uint(1) << _arg1) - uint(1)))); } private function init_genrand(_arg1:uint){ var _local2:uint; var _local3:uint; mt[0] = uint(_arg1); mti = 1; while (mti < N) { _local2 = (mt[(mti - 1)] ^ (mt[(mti - 1)] >>> 30)); _local3 = uint((_local2 * 1289)); _local3 = uint((_local3 * 1406077)); _local3 = uint((_local3 + mti)); mt[mti] = _local3; mti++; }; } private function genrand_int32():uint{ var _local1:Number; var _local2:uint; if (mti >= N){ if (mti == (N + 1)){ init_genrand(5489); }; _local2 = 0; while (_local2 < (N - M)) { _local1 = ((mt[_local2] & UPPER_MASK) | (mt[(_local2 + 1)] & LOWER_MASK)); mt[_local2] = ((mt[(_local2 + M)] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]); _local2++; }; while (_local2 < (N - 1)) { _local1 = ((mt[_local2] & UPPER_MASK) | (mt[(_local2 + 1)] & LOWER_MASK)); mt[_local2] = ((mt[(_local2 + (M - N))] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]); _local2++; }; _local1 = ((mt[(N - 1)] & UPPER_MASK) | (mt[0] & LOWER_MASK)); mt[(N - 1)] = ((mt[(M - 1)] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]); mti = 0; }; _local1 = mt[mti++]; _local1 = (_local1 ^ (_local1 >>> 11)); _local1 = (_local1 ^ ((_local1 << 7) & 2636928640)); _local1 = (_local1 ^ ((_local1 << 15) & 4022730752)); _local1 = (_local1 ^ (_local1 >>> 18)); return (uint(_local1)); } } }//package math
Section 35
//XPMath (math.XPMath) package math { public class XPMath { public static function atan2(_arg1:Number, _arg2:Number):Number{ var _local5:Number; var _local3:Number = 3.14159265358979; var _local4:Number = 1.5707963267949; if (_arg2 == 0){ if (_arg1 > 0){ return (_local4); }; if (_arg1 == 0){ return (0); }; return (-(_local4)); }; var _local6:Number = (_arg1 / _arg2); if (Math.abs(_local6) < 1){ _local5 = (_local6 / (1 + ((0.28 * _local6) * _local6))); if (_arg2 < 0){ if (_arg1 < 0){ return ((_local5 - _local3)); }; return ((_local5 + _local3)); }; } else { _local5 = (_local4 - (_local6 / ((_local6 * _local6) + 0.28))); if (_arg1 < 0){ return ((_local5 - _local3)); }; }; return (_local5); } public static function cos(_arg1:Number):Number{ var _local2:* = 0; var _local3:* = ((_arg1 > 0)) ? _arg1 : -(_arg1); var _local4:* = 1.5707963267949; if (_local3 >= (12.5663706143592 + _local4)){ _local2 = int((_local3 * 0.636619772367581)); if ((_local2 & 1) != 0){ _local2++; }; _local3 = (_local3 - (_local2 * _local4)); } else { if (_local3 < _local4){ } else { if (_local3 < (_local4 + 3.14159265358979)){ _local3 = (_local3 - 3.14159265358979); _local2 = 2; } else { if (_local3 < (6.28318530717959 + _local4)){ _local3 = (_local3 - 6.28318530717959); } else { if (_local3 < (9.42477796076938 + _local4)){ _local3 = (_local3 - 9.42477796076938); _local2 = 2; } else { _local3 = (_local3 - 12.5663706143592); }; }; }; }; }; var _local5:* = (_local3 * _local3); var _local6:* = (0.999999953027512 + (_local5 * (-0.499999047777921 + (_local5 * (0.041663573160188 + (_local5 * (-0.0013853629536173 + (_local5 * 2.31524166599385E-5)))))))); return ((((_local2 & 2))!=0) ? -(_local6) : _local6); } public static function sin(_arg1:Number):Number{ _arg1 = (_arg1 - 1.5707963267949); var _local2:* = 0; var _local3:* = ((_arg1 > 0)) ? _arg1 : -(_arg1); if (_local3 >= (12.5663706143592 + 1.5707963267949)){ _local2 = int((_local3 * 0.636619772367581)); if ((_local2 & 1) != 0){ _local2++; }; _local3 = (_local3 - (_local2 * 1.5707963267949)); } else { if (_local3 < 1.5707963267949){ } else { if (_local3 < (1.5707963267949 + 3.14159265358979)){ _local3 = (_local3 - 3.14159265358979); _local2 = 2; } else { if (_local3 < (6.28318530717959 + 1.5707963267949)){ _local3 = (_local3 - 6.28318530717959); } else { if (_local3 < (9.42477796076938 + 1.5707963267949)){ _local3 = (_local3 - 9.42477796076938); _local2 = 2; } else { _local3 = (_local3 - 12.5663706143592); }; }; }; }; }; var _local4:* = (_local3 * _local3); var _local5:* = (0.999999953027512 + (_local4 * (-0.499999047777921 + (_local4 * (0.041663573160188 + (_local4 * (-0.0013853629536173 + (_local4 * 2.31524166599385E-5)))))))); return ((((_local2 & 2))!=0) ? -(_local5) : _local5); } } }//package math
Section 36
//ManagedSound (sfx.ManagedSound) package sfx { import flash.media.*; public class ManagedSound { private var ClassReference:Class; public var activeSounds:Array; private var manager:SoundManager; public function ManagedSound(_arg1:SoundManager, _arg2:Class){ activeSounds = new Array(); super(); this.manager = _arg1; this.ClassReference = _arg2; } public function play(_arg1:Number=1, _arg2:Number=0):ManagedSoundChannel{ if (manager.isMuted){ return (new ManagedSoundChannel(manager, this, null)); }; var _local3:SoundChannel = new ClassReference().play(0, 0, new SoundTransform(_arg1, _arg2)); return (new ManagedSoundChannel(manager, this, _local3)); } public function loop(_arg1:Number=1, _arg2:Number=0):ManagedSoundChannel{ var _local3:SoundChannel = new ClassReference().play(0, 999999999, new SoundTransform(_arg1, _arg2)); return (new ManagedSoundChannel(manager, this, _local3)); } public function repeat(_arg1:int, _arg2:Number=1, _arg3:Number=0):ManagedSoundChannel{ var _local4:SoundChannel = new ClassReference().play(0, _arg1, new SoundTransform(_arg2, _arg3)); return (new ManagedSoundChannel(manager, this, _local4)); } public function stop():void{ var _local1:int; while (_local1 < activeSounds.length) { activeSounds[_local1].stop(); _local1++; }; } public function setPan(_arg1:Number):void{ var _local2:int; while (_local2 < activeSounds.length) { activeSounds[_local2].setPan(_arg1); _local2++; }; } public function setVolume(_arg1:Number):void{ var _local2:int; while (_local2 < activeSounds.length) { activeSounds[_local2].setVolume(_arg1); _local2++; }; } public function fadeTo(_arg1:Number, _arg2:int):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].fadeTo(_arg1, _arg2); _local3++; }; } public function fadeToAndStop(_arg1:Number, _arg2:int):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].fadeToAndStop(_arg1, _arg2); _local3++; }; } public function panTo(_arg1:Number, _arg2:int):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].panTo(_arg1, _arg2); _local3++; }; } public function isPlaying():Boolean{ return ((activeSounds.length > 0)); } public function update():void{ var _local1:int; while (_local1 < activeSounds.length) { activeSounds[_local1].update(); _local1++; }; } } }//package sfx
Section 37
//ManagedSoundChannel (sfx.ManagedSoundChannel) package sfx { import flash.media.*; import flash.events.*; import flash.utils.*; public class ManagedSoundChannel { private var sound:ManagedSound; private var channel:SoundChannel; private var manager:SoundManager; private var targetVolume:Number; private var targetPan:Number; private var fadeStartTime:int;// = -1 private var fadeEndTime:int;// = -1 private var fadeStartVolume:Number;// = -1 private var fadeEndVolume:Number;// = -1 private var panStartTime:int;// = -1 private var panEndTime:int;// = -1 private var panStartVolume:Number;// = -1 private var panEndVolume:Number;// = -1 private var stopAfterFade:Boolean;// = false private var playing:Boolean;// = true public function ManagedSoundChannel(_arg1:SoundManager, _arg2:ManagedSound, _arg3:SoundChannel){ this.manager = _arg1; this.sound = _arg2; this.channel = _arg3; _arg2.activeSounds.push(this); if (_arg3 == null){ soundComplete(null); return; }; _arg3.addEventListener(Event.SOUND_COMPLETE, soundComplete); targetVolume = _arg3.soundTransform.volume; targetPan = _arg3.soundTransform.pan; update(); } public function soundComplete(_arg1:Event):void{ if (!playing){ return; }; sound.activeSounds.splice(sound.activeSounds.indexOf(this), 1); playing = false; } public function setPan(_arg1:Number):void{ if (!playing){ return; }; if (channel == null){ return; }; channel.soundTransform.pan = _arg1; panStartTime = -1; update(); } public function setVolume(_arg1:Number):void{ if (!playing){ return; }; stopAfterFade = false; this.targetVolume = _arg1; fadeStartTime = -1; update(); } public function stop():void{ if (!playing){ return; }; if (channel == null){ return; }; channel.stop(); soundComplete(null); } public function fadeTo(_arg1:Number, _arg2:Number):void{ if (!playing){ return; }; fadeStartVolume = Math.sqrt(targetVolume); fadeEndVolume = Math.sqrt(_arg1); fadeStartTime = getTimer(); fadeEndTime = (getTimer() + _arg2); stopAfterFade = false; } public function fadeToAndStop(_arg1:Number, _arg2:Number):void{ if (!playing){ return; }; fadeTo(_arg1, _arg2); stopAfterFade = true; } public function panTo(_arg1:Number, _arg2:Number):void{ if (!playing){ return; }; panStartVolume = targetPan; panEndVolume = _arg1; panStartTime = getTimer(); panEndTime = (getTimer() + _arg2); } public function update():void{ var _local1:Number; if (!playing){ return; }; if (fadeStartTime >= 0){ _local1 = ((getTimer() - fadeStartTime) / (fadeEndTime - fadeStartTime)); if (_local1 < 0){ _local1 = 0; }; if (_local1 > 1){ _local1 = 1; }; targetVolume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local1)); targetVolume = (targetVolume * targetVolume); if (_local1 == 1){ fadeStartTime = -1; }; if ((((_local1 == 1)) && (stopAfterFade))){ stop(); }; }; if (panStartTime >= 0){ _local1 = ((getTimer() - panStartTime) / (panEndTime - panStartTime)); if (_local1 < 0){ _local1 = 0; }; if (_local1 > 1){ _local1 = 1; }; targetPan = (panStartVolume + ((panEndVolume - panStartVolume) * _local1)); if (_local1 == 1){ panStartTime = -1; }; }; var _local2:Number = (targetVolume * manager.volume); var _local3:Number = targetPan; if (channel == null){ return; }; if (((!((_local2 == channel.soundTransform.volume))) || (!((_local3 == channel.soundTransform.pan))))){ channel.soundTransform = new SoundTransform(_local2, _local3); }; } public function isPlaying():Boolean{ return (playing); } } }//package sfx
Section 38
//SoundManager (sfx.SoundManager) package sfx { import flash.utils.*; public class SoundManager { public var volume:Number;// = 1 public var isMuted:Boolean;// = false private var managedSoundMap:Object; private var managedSounds:Array; private var lastTime:int;// = -1 private var fadeStartTime:int;// = -1 private var fadeEndTime:int;// = -1 private var fadeStartVolume:Number;// = -1 private var fadeEndVolume:Number;// = -1 public function SoundManager(){ managedSoundMap = new Object(); managedSounds = new Array(); super(); } public function get(_arg1:String):ManagedSound{ var _local2:Class; if (managedSoundMap[_arg1] == null){ _local2 = (getDefinitionByName(("sound." + _arg1)) as Class); if (_local2 == null){ throw (new Error((("Failed to find sound [sound." + _arg1) + "]"))); }; managedSoundMap[_arg1] = new ManagedSound(this, _local2); managedSounds.push(managedSoundMap[_arg1]); }; return (managedSoundMap[_arg1]); } public function fadeTo(_arg1:Number, _arg2:int):void{ fadeStartVolume = Math.sqrt(volume); fadeEndVolume = Math.sqrt(_arg1); fadeStartTime = getTimer(); fadeEndTime = (getTimer() + _arg2); } public function setVolume(_arg1:Number):void{ isMuted = (_arg1 == 0); this.volume = _arg1; fadeStartTime = -1; } public function stopAll():void{ var _local1:int; while (_local1 < managedSounds.length) { managedSounds[_local1].stop(); _local1++; }; } public function update():void{ var _local3:Number; var _local1:int = getTimer(); if (lastTime < 0){ lastTime = _local1; }; if (fadeStartTime >= 0){ _local3 = ((_local1 - fadeStartTime) / (fadeEndTime - fadeStartTime)); if (_local3 < 0){ _local3 = 0; }; if (_local3 > 1){ _local3 = 1; }; volume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local3)); volume = (volume * volume); if (_local3 == 1){ fadeStartTime = -1; }; }; var _local2:int; while (_local2 < managedSounds.length) { managedSounds[_local2].update(); _local2++; }; } } }//package sfx
Section 39
//2 (sound.score_pop1.2) package sound.score_pop1 { import flash.media.*; public dynamic class 2 extends Sound { } }//package sound.score_pop1
Section 40
//2 (sound.score_pop2.2) package sound.score_pop2 { import flash.media.*; public dynamic class 2 extends Sound { } }//package sound.score_pop2
Section 41
//2 (sound.score_pop3.2) package sound.score_pop3 { import flash.media.*; public dynamic class 2 extends Sound { } }//package sound.score_pop3
Section 42
//2 (sound.score_pop4.2) package sound.score_pop4 { import flash.media.*; public dynamic class 2 extends Sound { } }//package sound.score_pop4
Section 43
//ball_shot1 (sound.ball_shot1) package sound { import flash.media.*; public dynamic class ball_shot1 extends Sound { } }//package sound
Section 44
//ball_sticks2 (sound.ball_sticks2) package sound { import flash.media.*; public dynamic class ball_sticks2 extends Sound { } }//package sound
Section 45
//balls_dropped21 (sound.balls_dropped21) package sound { import flash.media.*; public dynamic class balls_dropped21 extends Sound { } }//package sound
Section 46
//double_multiplier_collected (sound.double_multiplier_collected) package sound { import flash.media.*; public dynamic class double_multiplier_collected extends Sound { } }//package sound
Section 47
//end1 (sound.end1) package sound { import flash.media.*; public dynamic class end1 extends Sound { } }//package sound
Section 48
//end2 (sound.end2) package sound { import flash.media.*; public dynamic class end2 extends Sound { } }//package sound
Section 49
//game_start (sound.game_start) package sound { import flash.media.*; public dynamic class game_start extends Sound { } }//package sound
Section 50
//intro1 (sound.intro1) package sound { import flash.media.*; public dynamic class intro1 extends Sound { } }//package sound
Section 51
//intro2 (sound.intro2) package sound { import flash.media.*; public dynamic class intro2 extends Sound { } }//package sound
Section 52
//line_blast3 (sound.line_blast3) package sound { import flash.media.*; public dynamic class line_blast3 extends Sound { } }//package sound
Section 53
//loop1 (sound.loop1) package sound { import flash.media.*; public dynamic class loop1 extends Sound { } }//package sound
Section 54
//multiplier_collected1 (sound.multiplier_collected1) package sound { import flash.media.*; public dynamic class multiplier_collected1 extends Sound { } }//package sound
Section 55
//time_warning1 (sound.time_warning1) package sound { import flash.media.*; public dynamic class time_warning1 extends Sound { } }//package sound
Section 56
//unlocked_trophy (sound.unlocked_trophy) package sound { import flash.media.*; public dynamic class unlocked_trophy extends Sound { } }//package sound
Section 57
//IFloat (timing.IFloat) package timing { public class IFloat { public var ivalue:Number; private var lastValue:Number; private static var alpha:Number; public function IFloat(_arg1:Number){ ivalue = _arg1; lastValue = _arg1; alpha = 0; } public function copyFrom(_arg1:IFloat):void{ ivalue = _arg1.ivalue; lastValue = _arg1.lastValue; } public function setTo(_arg1:Number){ ivalue = _arg1; lastValue = _arg1; } public function set(_arg1:Number){ lastValue = ivalue; ivalue = _arg1; } public function get(_arg1:Number){ return ((lastValue + ((ivalue - lastValue) * _arg1))); } public function get value():Number{ return ((lastValue + ((ivalue - lastValue) * alpha))); } public function set value(_arg1:Number):void{ ivalue = _arg1; lastValue = _arg1; } public static function setAlpha(_arg1:Number):void{ alpha = _arg1; } } }//package timing
Section 58
//Performance (timing.Performance) package timing { import flash.utils.*; public class Performance { private var fpsCount:Number; private var totalFps:Number; private var lastFpsCount:Number; private var nextFpsUpdate:Number; private var startAt:Number; private var period:Number; private var periodFps:Number; private var idealFps:Number; private var listeners:Array; private var updates:Number; private var minPeriodFps:Number; private var measurePeriod:Number; public function Performance(_arg1:Number){ this.idealFps = _arg1; this.measurePeriod = 5; this.minPeriodFps = ((_arg1 / 2) * measurePeriod); this.listeners = []; begin(); } public function begin():void{ startAt = -1; period = -1; nextFpsUpdate = getTimer(); totalFps = 0; fpsCount = 0; lastFpsCount = -1; periodFps = 0; updates = 0; } public function frameUpdated():void{ var _local2:*; fpsCount++; var _local1:* = getTimer(); if (startAt < 0){ startAt = _local1; }; if (_local1 > nextFpsUpdate){ if (updates > 0){ lastFpsCount = fpsCount; totalFps = (totalFps + fpsCount); }; periodFps = (periodFps + fpsCount); if (++period == measurePeriod){ if (periodFps < minPeriodFps){ for (_local2 in listeners) { var _local5 = listeners; _local5[_local2]((periodFps / measurePeriod)); }; }; period = 0; periodFps = 0; }; nextFpsUpdate = (_local1 + 1000); fpsCount = 0; updates++; }; } public function addQualityFeedbackListener(_arg1:Function):void{ listeners.push(_arg1); } public function setFpsThreshold(_arg1:Number, _arg2:Number):void{ this.minPeriodFps = (_arg1 * _arg2); this.measurePeriod = _arg2; } public function get fps():int{ return (lastFpsCount); } public function get averageFps():Number{ return ((totalFps / ((getTimer() - startAt) / 1000))); } } }//package timing
Section 59
//Timeable (timing.Timeable) package timing { public interface Timeable { function tick(_arg1:int):void; function render(_arg1:int, _arg2:Number):void; } }//package timing
Section 60
//Timer (timing.Timer) package timing { import flash.utils.*; public class Timer { private var time:Number;// = 0 private var startTime:Number;// = -1 private var lastTime:Number;// = 0 private var unprocessedTime:Number;// = 0 private var tick:Number;// = 0 private var millisPerGameTick:Number;// = 0 private var maxTickTime:Number;// = -1 private var timeable:Timeable; public function Timer(_arg1:Timeable, _arg2:Number){ millisPerGameTick = (1000 / _arg2); this.timeable = _arg1; this.maxTickTime = 500; } public function getMillisPerTick():Number{ return (millisPerGameTick); } public function setMaxTickTime(_arg1:Number):void{ maxTickTime = _arg1; } public function flush(){ unprocessedTime = 0; lastTime = getTimer(); } public function advanceTime2():void{ var _local4:*; var _local1:* = getTimer(); if (startTime < 0){ startTime = _local1; unprocessedTime = millisPerGameTick; }; time = (_local1 - startTime); var _local2:* = (time - lastTime); lastTime = time; unprocessedTime = (unprocessedTime + _local2); if (unprocessedTime >= millisPerGameTick){ _local4 = (maxTickTime + _local1); do { timeable.tick(tick); tick++; unprocessedTime = (unprocessedTime - millisPerGameTick); } while ((((unprocessedTime >= millisPerGameTick)) && ((getTimer() < _local4)))); }; var _local3:Number = ((unprocessedTime % millisPerGameTick) / millisPerGameTick); IFloat.setAlpha(_local3); timeable.render(tick, _local3); } public function advanceTime(){ time = getTimer(); var _local1:* = (time - lastTime); lastTime = time; unprocessedTime = (unprocessedTime + _local1); var _local2:Number = 0; while (unprocessedTime > millisPerGameTick) { unprocessedTime = (unprocessedTime - millisPerGameTick); timeable.tick(tick); tick++; _local2++; if (_local2 >= 10){ unprocessedTime = 0; }; }; var _local3:Number = (unprocessedTime / millisPerGameTick); IFloat.setAlpha(_local3); timeable.render(tick, _local3); } } }//package timing
Section 61
//Numbers (util.Numbers) package util { public class Numbers { public static function dec2hex(_arg1:Number, _arg2:Boolean):String{ var _local3:* = ""; while (_arg1 != 0) { _local3 = ("0123456789abcdef".charAt((_arg1 & 15)) + _local3); _arg1 = (_arg1 >>> 4); }; if (_arg2){ if (_local3.length == 0){ _local3 = "00"; }; if (_local3.length < 2){ _local3 = ("0" + _local3); }; } else { if (_local3.length == 0){ _local3 = "0"; }; }; return (_local3); } public static function itoa(_arg1:Number, _arg2:Number):String{ var _local4:*; var _local3:String = ("" + _arg1); if (_arg2){ _local4 = (_arg2 - 1); while (_local4 > 0) { if (_arg1 < Math.pow(10, _local4)){ _local3 = ("0" + _local3); }; _local4--; }; }; return (_local3); } public static function asTime(_arg1:Number, _arg2:Boolean, _arg3:Boolean){ if (_arg2){ _arg3 = true; }; if (_arg1 < 0){ _arg1 = 0; }; _arg1 = (_arg1 / 1000); _arg1 = Math.floor(_arg1); var _local4:Number = Math.floor((_arg1 / 3600)); var _local5:Number = (Math.floor((_arg1 / 60)) % 60); var _local6:Number = (_arg1 % 60); var _local7 = ""; if (((_arg2) || ((_local4 > 0)))){ _local7 = (_local7 + itoa(_local4, 2)); }; if (((_arg2) || ((_local7.length > 0)))){ _local7 = (_local7 + ":"); }; var _local8:Number = _local7.length; if (((((_arg3) || ((_local5 > 0)))) || ((_local4 > 0)))){ _local7 = (_local7 + itoa(_local5, 2)); }; if (((_arg3) || (!((_local7.length == _local8))))){ _local7 = (_local7 + ":"); }; return ((_local7 + itoa(_local6, 2))); } } }//package util
Section 62
//Stats (util.Stats) package util { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.system.*; public class Stats extends Sprite { private var graph:BitmapData; private var ver:Sprite; private var fpsText:TextField; private var msText:TextField; private var memText:TextField; private var verText:TextField; private var format:TextFormat; private var fps:int; private var timer:int; private var ms:int; private var msPrev:int;// = 0 private var mem:Number;// = 0 private var rectangle:Rectangle; public function Stats():void{ addEventListener(Event.ADDED_TO_STAGE, init); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); } private function init(_arg1:Event):void{ x = 5; y = 5; removeEventListener(Event.ADDED_TO_STAGE, init); graphics.beginFill(51, 0.5); graphics.drawRect(0, 0, 72, 40); graphics.endFill(); ver = new Sprite(); ver.graphics.beginFill(51, 0.5); ver.graphics.drawRect(0, 0, 72, 30); ver.graphics.endFill(); ver.y = 90; ver.visible = false; addChild(ver); verText = new TextField(); fpsText = new TextField(); msText = new TextField(); memText = new TextField(); format = new TextFormat("_sans", 9); verText.defaultTextFormat = (fpsText.defaultTextFormat = (msText.defaultTextFormat = (memText.defaultTextFormat = format))); verText.width = (fpsText.width = (msText.width = (memText.width = 72))); verText.selectable = (fpsText.selectable = (msText.selectable = (memText.selectable = false))); verText.textColor = 0xFFFFFF; verText.text = ((Capabilities.version.split(" ")[0] + "\n") + Capabilities.version.split(" ")[1]); ver.addChild(verText); fpsText.textColor = 0xFFFF00; fpsText.text = "FPS: "; addChild(fpsText); msText.y = 10; msText.textColor = 0xFF00; msText.text = "MS: "; addChild(msText); memText.y = 20; memText.textColor = 0xFFFF; memText.text = "MEM: "; addChild(memText); graph = new BitmapData(72, 50, true, 2147483699); var _local2:Bitmap = new Bitmap(graph); _local2.y = 40; addChild(_local2); rectangle = new Rectangle(0, 0, 1, graph.height); } private function onAddedToStage(_arg1:Event):void{ addEventListener(MouseEvent.CLICK, onClick); addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); addEventListener(Event.ENTER_FRAME, update); } private function onRemovedFromStage(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, onClick); removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut); removeEventListener(Event.ENTER_FRAME, update); } private function update(_arg1:Event):void{ var _local2:int; var _local3:Number; timer = getTimer(); fps++; if ((timer - 1000) > msPrev){ msPrev = timer; mem = Number((System.totalMemory * 9.54E-7).toFixed(3)); _local2 = Math.min(50, ((50 / stage.frameRate) * fps)); _local3 = (Math.min(50, Math.sqrt(Math.sqrt((mem * 5000)))) - 2); graph.scroll(1, 0); graph.fillRect(rectangle, 2147483699); graph.setPixel32(0, (graph.height - _local2), 0xFFFF00); graph.setPixel32(0, (graph.height - ((timer - ms) >> 1)), 0xFF00); graph.setPixel32(0, (graph.height - _local3), 0xFFFF); fpsText.text = ((("FPS: " + fps) + " / ") + stage.frameRate); memText.text = ("MEM: " + mem); fps = 0; }; msText.text = ("MS: " + (timer - ms)); ms = timer; } private function onClick(_arg1:MouseEvent):void{ if (mouseY > (height * 0.35)){ stage.frameRate--; } else { stage.frameRate++; }; fpsText.text = ((("FPS: " + fps) + " / ") + stage.frameRate); } private function onMouseOver(_arg1:MouseEvent):void{ ver.visible = true; } private function onMouseOut(_arg1:MouseEvent):void{ ver.visible = false; } } }//package util
Section 63
//Assembly (Assembly) package { import game.*; import flash.display.*; import flash.text.*; public dynamic class Assembly extends MovieClip { public var bonus_val_txt:TextField; public var time_txt:TextField; public var aim_over:AimCursor; public var big_leaf:Leaf; public var bonus_txt:TextField; public var bubbleBoxFxParent:MovieClip; public var bubbleBoxParent:MovieClip; public var animal:MovieClip; public var bubble_base:MovieClip; public var bubble_launcher:bubbleshooter; public var time_up:TimeUp; public var points_txt:TextField; public var points_val_txt:TextField; public var time_val_txt:TextField; public function Assembly(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 64
//bubbleshooter (bubbleshooter) package { import game.*; public dynamic class bubbleshooter extends BubbleLauncher { } }//package
Section 65
//ErrorSymbol (ErrorSymbol) package { import flash.display.*; public dynamic class ErrorSymbol extends MovieClip { } }//package
Section 66
//GameControl (GameControl) package { import flash.display.*; public dynamic class GameControl extends MovieClip { public var sfx_btn:MovieClip; public var exit_btn:MovieClip; public var music_btn:MovieClip; public var sfx_hit:MovieClip; public var music_hit:MovieClip; public var exit_hit:MovieClip; } }//package
Section 67
//instruction_anim (instruction_anim) package { import anim.*; public dynamic class instruction_anim extends PausedLoopingFlare30Fps { } }//package
Section 68
//instruction_anim_speed (instruction_anim_speed) package { import anim.*; public dynamic class instruction_anim_speed extends PausedLoopingFlare30Fps { } }//package
Section 69
//LineBlastProjectile (LineBlastProjectile) package { import flash.display.*; public dynamic class LineBlastProjectile extends MovieClip { } }//package
Section 70
//LineExplosionMarker (LineExplosionMarker) package { import anim.*; public dynamic class LineExplosionMarker extends PausedLoopingFlare25Fps { } }//package
Section 71
//MultiplyMarker (MultiplyMarker) package { import anim.*; public dynamic class MultiplyMarker extends PausedLoopingFlare25Fps { } }//package
Section 72
//newrecord_anim (newrecord_anim) package { import anim.*; public dynamic class newrecord_anim extends PausedLoopingFlare25Fps { } }//package
Section 73
//PopX (PopX) package { import anim.*; public dynamic class PopX extends PausedSingleFlareDestroy25Fps { } }//package
Section 74
//trophy_2_anim (trophy_2_anim) package { import anim.*; public dynamic class trophy_2_anim extends PausedLoopingFlare25Fps { } }//package
Section 75
//trophy_3_anim (trophy_3_anim) package { import anim.*; public dynamic class trophy_3_anim extends PausedLoopingFlare25Fps { } }//package
Section 76
//trophy_anim (trophy_anim) package { import anim.*; public dynamic class trophy_anim extends PausedLoopingFlare25Fps { } }//package

Library Items

Symbol 1 Sound {sound.unlocked_trophy}
Symbol 2 Sound {sound.time_warning1}
Symbol 3 Sound {sound.score_pop4.2}
Symbol 4 Sound {sound.score_pop3.2}
Symbol 5 Sound {sound.score_pop2.2}
Symbol 6 Sound {sound.score_pop1.2}
Symbol 7 Sound {sound.multiplier_collected1}
Symbol 8 Sound {sound.line_blast3}
Symbol 9 Sound {sound.loop1}
Symbol 10 Sound {sound.game_start}
Symbol 11 Sound {sound.intro2}
Symbol 12 Sound {sound.intro1}
Symbol 13 Sound {sound.end2}
Symbol 14 Sound {sound.end1}
Symbol 15 Sound {sound.double_multiplier_collected}
Symbol 16 Sound {sound.balls_dropped21}
Symbol 17 Sound {sound.ball_sticks2}
Symbol 18 Sound {sound.ball_shot1}
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:26
Symbol 21 FontUsed by:22 25 27 217 225 228 231 232 233 234 235 236 237 238 239 240 241 242 250 254 257 258 259 260 261 262 263 264 265 267 268 269 270 271 277 278 279 280 281 332 333 334 335 336 337
Symbol 22 EditableTextUses:21Used by:26
Symbol 23 BitmapUsed by:24
Symbol 24 GraphicUses:23Used by:26
Symbol 25 EditableTextUses:21Used by:26
Symbol 26 MovieClip {game.BigPopper}Uses:20 22 24 25
Symbol 27 EditableTextUses:21Used by:28
Symbol 28 MovieClipUses:27Used by:63
Symbol 29 GraphicUsed by:59
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:59
Symbol 32 GraphicUsed by:59
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:33Used by:59
Symbol 35 GraphicUsed by:59
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:59
Symbol 38 GraphicUsed by:59
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:59
Symbol 41 GraphicUsed by:59
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:42Used by:59
Symbol 44 GraphicUsed by:59
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:59
Symbol 47 GraphicUsed by:59
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:48Used by:59
Symbol 50 GraphicUsed by:59
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:59
Symbol 53 GraphicUsed by:59
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClipUses:54Used by:59
Symbol 56 GraphicUsed by:59
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 MovieClipUses:29 31 32 34 35 37 38 40 41 43 44 46 47 49 50 52 53 55 56 58Used by:63
Symbol 60 GraphicUsed by:63
Symbol 61 GraphicUsed by:63
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClip {game.BurstPop}Uses:28 59 60 61 62
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClipUses:64Used by:80
Symbol 66 GraphicUsed by:67
Symbol 67 MovieClipUses:66Used by:80
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used by:80
Symbol 70 GraphicUsed by:80 88
Symbol 71 GraphicUsed by:80 88
Symbol 72 GraphicUsed by:80 88
Symbol 73 GraphicUsed by:80 88
Symbol 74 GraphicUsed by:80 88
Symbol 75 GraphicUsed by:80 88
Symbol 76 GraphicUsed by:80 88
Symbol 77 GraphicUsed by:80 88
Symbol 78 GraphicUsed by:80 88
Symbol 79 GraphicUsed by:80 88
Symbol 80 MovieClipUses:65 67 69 70 71 72 73 74 75 76 77 78 79Used by:87
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClipUses:81Used by:87
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:87
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:87
Symbol 87 MovieClip {game.ScorePopHigh}Uses:80 82 84 86
Symbol 88 MovieClipUses:70 71 72 73 74 75 76 77 78 79Used by:89
Symbol 89 MovieClip {game.ScorePop}Uses:88
Symbol 90 BitmapUsed by:91 186 220 251
Symbol 91 GraphicUses:90Used by:102
Symbol 92 BitmapUsed by:93 186 220 251
Symbol 93 GraphicUses:92Used by:102
Symbol 94 BitmapUsed by:95 186
Symbol 95 GraphicUses:94Used by:102 197 221
Symbol 96 BitmapUsed by:97 220
Symbol 97 GraphicUses:96Used by:102
Symbol 98 BitmapUsed by:99 220
Symbol 99 GraphicUses:98Used by:102
Symbol 100 BitmapUsed by:101
Symbol 101 GraphicUses:100Used by:102
Symbol 102 MovieClipUses:91 93 95 97 99 101Used by:163
Symbol 103 BitmapUsed by:104 188 190
Symbol 104 GraphicUses:103Used by:121 197 221
Symbol 105 BitmapUsed by:106 189 191
Symbol 106 GraphicUses:105Used by:121 197 221
Symbol 107 BitmapUsed by:108 190 192
Symbol 108 GraphicUses:107Used by:121 197 221
Symbol 109 BitmapUsed by:110 191 193
Symbol 110 GraphicUses:109Used by:121 197 221
Symbol 111 BitmapUsed by:112 188 192 194
Symbol 112 GraphicUses:111Used by:121
Symbol 113 BitmapUsed by:114 189 193 195
Symbol 114 GraphicUses:113Used by:121
Symbol 115 BitmapUsed by:116 190 194 196
Symbol 116 GraphicUses:115Used by:121
Symbol 117 BitmapUsed by:118 191 195
Symbol 118 GraphicUses:117Used by:121 197 221
Symbol 119 BitmapUsed by:120 192 196
Symbol 120 GraphicUses:119Used by:121 197 221
Symbol 121 MovieClipUses:104 106 108 110 112 114 116 118 120Used by:163
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:150
Symbol 124 BitmapUsed by:125
Symbol 125 GraphicUses:124Used by:150
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:150
Symbol 128 BitmapUsed by:129
Symbol 129 GraphicUses:128Used by:150
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:150
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:150
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:150
Symbol 136 BitmapUsed by:137
Symbol 137 GraphicUses:136Used by:150
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:150
Symbol 140 BitmapUsed by:141
Symbol 141 GraphicUses:140Used by:150
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:150
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:150
Symbol 146 BitmapUsed by:147
Symbol 147 GraphicUses:146Used by:150
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148Used by:150
Symbol 150 MovieClipUses:123 125 127 129 131 133 135 137 139 141 143 145 147 149Used by:163
Symbol 151 GraphicUsed by:160
Symbol 152 GraphicUsed by:160
Symbol 153 GraphicUsed by:160
Symbol 154 GraphicUsed by:160
Symbol 155 GraphicUsed by:160
Symbol 156 GraphicUsed by:160
Symbol 157 GraphicUsed by:160
Symbol 158 GraphicUsed by:160
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClip {MultiplyMarker}Uses:151 152 153 154 155 156 157 158 159Used by:163 256
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClip {LineExplosionMarker}Uses:161Used by:163 256
Symbol 163 MovieClip {game.BubbleClip}Uses:102 121 150 160 162
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164Used by:166
Symbol 166 MovieClip {PopX}Uses:165
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:169
Symbol 169 MovieClipUses:168Used by:182
Symbol 170 BitmapUsed by:171 172 173
Symbol 171 GraphicUses:170Used by:174
Symbol 172 GraphicUses:170Used by:174
Symbol 173 GraphicUses:170Used by:174
Symbol 174 MovieClipUses:171 172 173Used by:182
Symbol 175 BitmapUsed by:176 177 178
Symbol 176 GraphicUses:175Used by:179
Symbol 177 GraphicUses:175Used by:179
Symbol 178 GraphicUses:175Used by:179
Symbol 179 MovieClipUses:176 177 178Used by:182
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:182
Symbol 182 MovieClip {GameControl}Uses:169 174 179 181
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClipUses:183Used by:185
Symbol 185 MovieClip {ErrorSymbol}Uses:184
Symbol 186 GraphicUses:90 92 94Used by:197
Symbol 187 GraphicUsed by:197 221
Symbol 188 GraphicUses:103 111Used by:197 221
Symbol 189 GraphicUses:105 113Used by:197 221
Symbol 190 GraphicUses:103 107 115Used by:197 221
Symbol 191 GraphicUses:105 109 117Used by:197 221
Symbol 192 GraphicUses:107 111 119Used by:197 221
Symbol 193 GraphicUses:109 113Used by:197 221
Symbol 194 GraphicUses:111 115Used by:197 221
Symbol 195 GraphicUses:113 117Used by:197 221
Symbol 196 GraphicUses:115 119Used by:197 221
Symbol 197 MovieClip {instruction_anim_speed}Uses:186 95 187 104 106 108 110 188 189 190 191 192 193 194 195 196 118 120Used by:256
Symbol 198 BitmapUsed by:199
Symbol 199 GraphicUses:198Used by:204
Symbol 200 BitmapUsed by:201 202
Symbol 201 GraphicUses:200Used by:204
Symbol 202 GraphicUses:200Used by:204
Symbol 203 GraphicUsed by:204 210 215 318
Symbol 204 MovieClip {trophy_3_anim}Uses:199 201 202 203Used by:247 276
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:210
Symbol 207 BitmapUsed by:208 209
Symbol 208 GraphicUses:207Used by:210
Symbol 209 GraphicUses:207Used by:210
Symbol 210 MovieClip {trophy_2_anim}Uses:206 208 209 203Used by:247 276
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:215
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:215
Symbol 215 MovieClip {trophy_anim}Uses:212 214 203Used by:247 276
Symbol 216 GraphicUsed by:219
Symbol 217 EditableTextUses:21Used by:218
Symbol 218 MovieClipUses:217Used by:219
Symbol 219 MovieClip {newrecord_anim}Uses:216 218Used by:247 276
Symbol 220 GraphicUses:90 98 96 92Used by:221
Symbol 221 MovieClip {instruction_anim}Uses:220 95 187 104 106 108 110 188 189 190 191 192 193 194 195 196 118 120Used by:229
Symbol 222 BitmapUsed by:223 243 266
Symbol 223 GraphicUses:222Used by:284
Symbol 224 GraphicUsed by:229
Symbol 225 EditableTextUses:21Used by:229
Symbol 226 FontUsed by:227 244 245 246 248 249 252 253 272 273 274
Symbol 227 EditableTextUses:226Used by:229
Symbol 228 EditableTextUses:21Used by:229
Symbol 229 MovieClipUses:224 225 227 228 221Used by:284
Symbol 230 GraphicUsed by:247
Symbol 231 EditableTextUses:21Used by:247
Symbol 232 EditableTextUses:21Used by:247
Symbol 233 EditableTextUses:21Used by:247
Symbol 234 EditableTextUses:21Used by:247
Symbol 235 EditableTextUses:21Used by:247
Symbol 236 EditableTextUses:21Used by:247
Symbol 237 EditableTextUses:21Used by:247
Symbol 238 EditableTextUses:21Used by:247
Symbol 239 EditableTextUses:21Used by:247
Symbol 240 EditableTextUses:21Used by:247
Symbol 241 EditableTextUses:21Used by:247
Symbol 242 EditableTextUses:21Used by:247
Symbol 243 GraphicUses:222Used by:247
Symbol 244 EditableTextUses:226Used by:247
Symbol 245 EditableTextUses:226Used by:247
Symbol 246 EditableTextUses:226Used by:247
Symbol 247 MovieClipUses:230 231 232 233 234 235 236 237 238 239 240 241 242 219 243 244 245 246 215 210 204Used by:284
Symbol 248 EditableTextUses:226Used by:284
Symbol 249 EditableTextUses:226Used by:256
Symbol 250 EditableTextUses:21Used by:256
Symbol 251 GraphicUses:90 92Used by:256
Symbol 252 EditableTextUses:226Used by:256
Symbol 253 EditableTextUses:226Used by:256
Symbol 254 EditableTextUses:21Used by:256
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClipUses:249 250 251 252 253 254 197 255 162 160Used by:284
Symbol 257 EditableTextUses:21Used by:276
Symbol 258 EditableTextUses:21Used by:276
Symbol 259 EditableTextUses:21Used by:276
Symbol 260 EditableTextUses:21Used by:276
Symbol 261 EditableTextUses:21Used by:276
Symbol 262 EditableTextUses:21Used by:276
Symbol 263 EditableTextUses:21Used by:276
Symbol 264 EditableTextUses:21Used by:276
Symbol 265 EditableTextUses:21Used by:276
Symbol 266 GraphicUses:222Used by:276
Symbol 267 EditableTextUses:21Used by:276
Symbol 268 EditableTextUses:21Used by:276
Symbol 269 EditableTextUses:21Used by:276
Symbol 270 EditableTextUses:21Used by:276
Symbol 271 EditableTextUses:21Used by:276
Symbol 272 EditableTextUses:226Used by:276
Symbol 273 EditableTextUses:226Used by:276
Symbol 274 EditableTextUses:226Used by:276
Symbol 275 GraphicUsed by:276
Symbol 276 MovieClipUses:257 258 259 260 261 262 263 264 265 219 266 267 268 269 270 271 215 272 273 274 275 210 204Used by:284
Symbol 277 EditableTextUses:21Used by:283
Symbol 278 EditableTextUses:21Used by:283
Symbol 279 EditableTextUses:21Used by:283
Symbol 280 EditableTextUses:21Used by:283
Symbol 281 EditableTextUses:21Used by:283
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:277 278 279 280 281 282Used by:284
Symbol 284 MovieClip {game.Leaf}Uses:223 229 247 248 256 276 283Used by:364
Symbol 285 GraphicUsed by:286
Symbol 286 MovieClip {game.TimeUp}Uses:285Used by:364
Symbol 287 GraphicUsed by:309
Symbol 288 GraphicUsed by:289
Symbol 289 MovieClipUses:288Used by:309
Symbol 290 GraphicUsed by:309
Symbol 291 GraphicUsed by:292
Symbol 292 MovieClipUses:291Used by:309
Symbol 293 GraphicUsed by:309
Symbol 294 GraphicUsed by:295
Symbol 295 MovieClipUses:294Used by:309
Symbol 296 GraphicUsed by:309
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClipUses:297Used by:309
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClipUses:299Used by:309
Symbol 301 GraphicUsed by:309
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClipUses:302Used by:309
Symbol 304 GraphicUsed by:305
Symbol 305 MovieClipUses:304Used by:309
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClipUses:306Used by:309
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClip {bubbleshooter}Uses:287 289 290 292 293 295 296 298 300 301 303 305 307 308Used by:364
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:364
Symbol 312 MovieClip {jungle_bubble_fla.bubbleBoxContainer_7}Used by:364
Symbol 313 GraphicUsed by:318
Symbol 314 GraphicUsed by:318
Symbol 315 GraphicUsed by:318
Symbol 316 GraphicUsed by:318
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:313 314 315 316 317 203Used by:326
Symbol 319 GraphicUsed by:325
Symbol 320 GraphicUsed by:325
Symbol 321 GraphicUsed by:325
Symbol 322 GraphicUsed by:325
Symbol 323 GraphicUsed by:325
Symbol 324 GraphicUsed by:325
Symbol 325 MovieClipUses:319 320 321 322 323 324Used by:326
Symbol 326 MovieClip {game.AimCursor}Uses:318 325Used by:364
Symbol 327 MovieClipUsed by:364
Symbol 328 GraphicUsed by:364
Symbol 329 BitmapUsed by:331 354
Symbol 330 BitmapUsed by:331
Symbol 331 GraphicUses:329 330Used by:364
Symbol 332 EditableTextUses:21Used by:364
Symbol 333 EditableTextUses:21Used by:364
Symbol 334 EditableTextUses:21Used by:364
Symbol 335 EditableTextUses:21Used by:364
Symbol 336 EditableTextUses:21Used by:364
Symbol 337 EditableTextUses:21Used by:364
Symbol 338 BitmapUsed by:340 346 348
Symbol 339 BitmapUsed by:340 346 348
Symbol 340 GraphicUses:338 339Used by:350
Symbol 341 GraphicUsed by:342
Symbol 342 MovieClipUses:341Used by:350 363
Symbol 343 GraphicUsed by:350
Symbol 344 BitmapUsed by:345
Symbol 345 GraphicUses:344Used by:350 363
Symbol 346 GraphicUses:338 339Used by:350
Symbol 347 GraphicUsed by:350
Symbol 348 GraphicUses:338 339Used by:350
Symbol 349 GraphicUsed by:350
Symbol 350 MovieClipUses:340 342 343 345 346 347 348 349Used by:364
Symbol 351 BitmapUsed by:352
Symbol 352 GraphicUses:351Used by:364
Symbol 353 BitmapUsed by:354
Symbol 354 GraphicUses:329 353Used by:364
Symbol 355 BitmapUsed by:356 359 361
Symbol 356 GraphicUses:355Used by:363
Symbol 357 BitmapUsed by:358 360 362
Symbol 358 GraphicUses:357Used by:363
Symbol 359 GraphicUses:355Used by:363
Symbol 360 GraphicUses:357Used by:363
Symbol 361 GraphicUses:355Used by:363
Symbol 362 GraphicUses:357Used by:363
Symbol 363 MovieClipUses:356 342 358 345 359 360 361 362Used by:364
Symbol 364 MovieClip {Assembly}Uses:311 312 326 327 328 331 309 332 333 334 335 336 337 286 350 284 352 354 363
Symbol 365 MovieClip {game.BubbleBox}
Symbol 366 BitmapUsed by:367
Symbol 367 GraphicUses:366Used by:368
Symbol 368 MovieClip {LineBlastProjectile}Uses:367

Instance Names

"text1"Symbol 26 MovieClip {game.BigPopper} Frame 1Symbol 22 EditableText
"text2"Symbol 26 MovieClip {game.BigPopper} Frame 2Symbol 25 EditableText
"text"Symbol 28 MovieClip Frame 1Symbol 27 EditableText
"textclip"Symbol 63 MovieClip {game.BurstPop} Frame 1Symbol 28 MovieClip
"number1"Symbol 63 MovieClip {game.BurstPop} Frame 1Symbol 59 MovieClip
"number0"Symbol 63 MovieClip {game.BurstPop} Frame 1Symbol 59 MovieClip
"bkg3"Symbol 80 MovieClip Frame 1Symbol 65 MovieClip
"bkg2"Symbol 80 MovieClip Frame 1Symbol 67 MovieClip
"bkg1"Symbol 80 MovieClip Frame 1Symbol 69 MovieClip
"number4"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 80 MovieClip
"number3"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 80 MovieClip
"number2"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 80 MovieClip
"number1"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 80 MovieClip
"number0"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 80 MovieClip
"pop5"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 82 MovieClip
"pop4"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 84 MovieClip
"pop3"Symbol 87 MovieClip {game.ScorePopHigh} Frame 1Symbol 86 MovieClip
"number2"Symbol 89 MovieClip {game.ScorePop} Frame 1Symbol 88 MovieClip
"number1"Symbol 89 MovieClip {game.ScorePop} Frame 1Symbol 88 MovieClip
"number0"Symbol 89 MovieClip {game.ScorePop} Frame 1Symbol 88 MovieClip
"ball"Symbol 163 MovieClip {game.BubbleClip} Frame 1Symbol 102 MovieClip
"burst"Symbol 163 MovieClip {game.BubbleClip} Frame 1Symbol 121 MovieClip
"lineblast"Symbol 163 MovieClip {game.BubbleClip} Frame 1Symbol 150 MovieClip
"marker_multiply"Symbol 163 MovieClip {game.BubbleClip} Frame 1Symbol 160 MovieClip {MultiplyMarker}
"marker_lineblast"Symbol 163 MovieClip {game.BubbleClip} Frame 1Symbol 162 MovieClip {LineExplosionMarker}
"exit_btn"Symbol 182 MovieClip {GameControl} Frame 1Symbol 169 MovieClip
"music_btn"Symbol 182 MovieClip {GameControl} Frame 1Symbol 174 MovieClip
"sfx_btn"Symbol 182 MovieClip {GameControl} Frame 1Symbol 179 MovieClip
"exit_hit"Symbol 182 MovieClip {GameControl} Frame 1Symbol 181 MovieClip
"sfx_hit"Symbol 182 MovieClip {GameControl} Frame 1Symbol 181 MovieClip
"music_hit"Symbol 182 MovieClip {GameControl} Frame 1Symbol 181 MovieClip
"txt"Symbol 218 MovieClip Frame 1Symbol 217 EditableText
"inner"Symbol 219 MovieClip {newrecord_anim} Frame 1Symbol 218 MovieClip
"countdown_txt"Symbol 229 MovieClip Frame 1Symbol 225 EditableText
"instructions_txt"Symbol 229 MovieClip Frame 1Symbol 227 EditableText
"title_txt"Symbol 229 MovieClip Frame 1Symbol 228 EditableText
"anim1"Symbol 229 MovieClip Frame 1Symbol 221 MovieClip {instruction_anim}
"combo_txt"Symbol 247 MovieClip Frame 1Symbol 231 EditableText
"title_txt"Symbol 247 MovieClip Frame 1Symbol 232 EditableText
"combo_val_txt"Symbol 247 MovieClip Frame 1Symbol 233 EditableText
"time_txt"Symbol 247 MovieClip Frame 1Symbol 234 EditableText
"move_txt"Symbol 247 MovieClip Frame 1Symbol 235 EditableText
"time_val_txt"Symbol 247 MovieClip Frame 1Symbol 236 EditableText
"move_val_txt"Symbol 247 MovieClip Frame 1Symbol 237 EditableText
"total_score_txt"Symbol 247 MovieClip Frame 1Symbol 238 EditableText
"total_score_val_txt"Symbol 247 MovieClip Frame 1Symbol 239 EditableText
"countdown_txt"Symbol 247 MovieClip Frame 1Symbol 240 EditableText
"best_ever_txt"Symbol 247 MovieClip Frame 1Symbol 241 EditableText
"best_ever_val_txt"Symbol 247 MovieClip Frame 1Symbol 242 EditableText
"record_pop"Symbol 247 MovieClip Frame 1Symbol 219 MovieClip {newrecord_anim}
"trophy1_txt"Symbol 247 MovieClip Frame 1Symbol 244 EditableText
"trophy2_txt"Symbol 247 MovieClip Frame 1Symbol 245 EditableText
"trophy3_txt"Symbol 247 MovieClip Frame 1Symbol 246 EditableText
"trophy1"Symbol 247 MovieClip Frame 1Symbol 215 MovieClip {trophy_anim}
"trophy2"Symbol 247 MovieClip Frame 1Symbol 210 MovieClip {trophy_2_anim}
"trophy3"Symbol 247 MovieClip Frame 1Symbol 204 MovieClip {trophy_3_anim}
"text1_txt"Symbol 256 MovieClip Frame 1Symbol 249 EditableText
"countdown_txt"Symbol 256 MovieClip Frame 1Symbol 250 EditableText
"text2_txt"Symbol 256 MovieClip Frame 1Symbol 252 EditableText
"text3_txt"Symbol 256 MovieClip Frame 1Symbol 253 EditableText
"title_txt"Symbol 256 MovieClip Frame 1Symbol 254 EditableText
"anim3"Symbol 256 MovieClip Frame 1Symbol 197 MovieClip {instruction_anim_speed}
"anim1"Symbol 256 MovieClip Frame 1Symbol 162 MovieClip {LineExplosionMarker}
"anim2"Symbol 256 MovieClip Frame 1Symbol 160 MovieClip {MultiplyMarker}
"multiplier_txt"Symbol 276 MovieClip Frame 1Symbol 257 EditableText
"title_txt"Symbol 276 MovieClip Frame 1Symbol 258 EditableText
"record_this_game_mul_val_txt"Symbol 276 MovieClip Frame 1Symbol 259 EditableText
"best_combo_txt"Symbol 276 MovieClip Frame 1Symbol 260 EditableText
"score_txt"Symbol 276 MovieClip Frame 1Symbol 261 EditableText
"score_val_txt"Symbol 276 MovieClip Frame 1Symbol 262 EditableText
"countdown_txt"Symbol 276 MovieClip Frame 1Symbol 263 EditableText
"score_best_txt"Symbol 276 MovieClip Frame 1Symbol 264 EditableText
"score_best_val_txt"Symbol 276 MovieClip Frame 1Symbol 265 EditableText
"record_pop"Symbol 276 MovieClip Frame 1Symbol 219 MovieClip {newrecord_anim}
"record_this_game_combo_val_txt"Symbol 276 MovieClip Frame 1Symbol 267 EditableText
"record_this_game_txt"Symbol 276 MovieClip Frame 1Symbol 268 EditableText
"personal_best_mul_val_txt"Symbol 276 MovieClip Frame 1Symbol 269 EditableText
"personal_best_combo_val_txt"Symbol 276 MovieClip Frame 1Symbol 270 EditableText
"personal_best_txt"Symbol 276 MovieClip Frame 1Symbol 271 EditableText
"trophy1"Symbol 276 MovieClip Frame 1Symbol 215 MovieClip {trophy_anim}
"trophy1_txt"Symbol 276 MovieClip Frame 1Symbol 272 EditableText
"trophy2_txt"Symbol 276 MovieClip Frame 1Symbol 273 EditableText
"trophy3_txt"Symbol 276 MovieClip Frame 1Symbol 274 EditableText
"trophy2"Symbol 276 MovieClip Frame 1Symbol 210 MovieClip {trophy_2_anim}
"trophy3"Symbol 276 MovieClip Frame 1Symbol 204 MovieClip {trophy_3_anim}
"msg_txt"Symbol 283 MovieClip Frame 1Symbol 277 EditableText
"countdown_txt"Symbol 283 MovieClip Frame 1Symbol 278 EditableText
"title_txt"Symbol 283 MovieClip Frame 1Symbol 279 EditableText
"score_txt"Symbol 283 MovieClip Frame 1Symbol 280 EditableText
"score_val_txt"Symbol 283 MovieClip Frame 1Symbol 281 EditableText
"texts"Symbol 284 MovieClip {game.Leaf} Frame 23Symbol 229 MovieClip
"texts"Symbol 284 MovieClip {game.Leaf} Frame 24Symbol 247 MovieClip
"texts"Symbol 284 MovieClip {game.Leaf} Frame 25Symbol 256 MovieClip
"texts"Symbol 284 MovieClip {game.Leaf} Frame 26Symbol 276 MovieClip
"texts"Symbol 284 MovieClip {game.Leaf} Frame 27Symbol 283 MovieClip
"aim1"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"aim2"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"aim3"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"aim4"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"aim0"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"aim5"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"aim8"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 325 MovieClip
"aim7"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"aim6"Symbol 326 MovieClip {game.AimCursor} Frame 1Symbol 318 MovieClip
"bubbleBoxParent"Symbol 364 MovieClip {Assembly} Frame 1Symbol 312 MovieClip {jungle_bubble_fla.bubbleBoxContainer_7}
"bubbleBoxFxParent"Symbol 364 MovieClip {Assembly} Frame 1Symbol 312 MovieClip {jungle_bubble_fla.bubbleBoxContainer_7}
"aim_over"Symbol 364 MovieClip {Assembly} Frame 1Symbol 326 MovieClip {game.AimCursor}
"bubble_base"Symbol 364 MovieClip {Assembly} Frame 1Symbol 327 MovieClip
"bubble_launcher"Symbol 364 MovieClip {Assembly} Frame 1Symbol 309 MovieClip {bubbleshooter}
"time_txt"Symbol 364 MovieClip {Assembly} Frame 1Symbol 332 EditableText
"time_val_txt"Symbol 364 MovieClip {Assembly} Frame 1Symbol 333 EditableText
"points_txt"Symbol 364 MovieClip {Assembly} Frame 1Symbol 334 EditableText
"points_val_txt"Symbol 364 MovieClip {Assembly} Frame 1Symbol 335 EditableText
"bonus_txt"Symbol 364 MovieClip {Assembly} Frame 1Symbol 336 EditableText
"bonus_val_txt"Symbol 364 MovieClip {Assembly} Frame 1Symbol 337 EditableText
"time_up"Symbol 364 MovieClip {Assembly} Frame 1Symbol 286 MovieClip {game.TimeUp}
"animal"Symbol 364 MovieClip {Assembly} Frame 1Symbol 350 MovieClip
"big_leaf"Symbol 364 MovieClip {Assembly} Frame 1Symbol 284 MovieClip {game.Leaf}
"animal"Symbol 364 MovieClip {Assembly} Frame 2Symbol 363 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 131 bytes "..$1$wu$lZH7/xM2Mkzy3axjhgKRk0."




http://swfchan.com/49/240486/info.shtml
Created: 22/4 -2021 01:30:06 Last modified: 22/4 -2021 01:30:06 Server time: 27/04 -2024 18:43:51