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

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM99396492-8DC&rnd=99396492" width="1" height="1"></div>

monkey.swf

This is the info page for
Flash #259655

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


Text


射击额外奖励

分数

时间额外奖励

0987654321


0987654321

098:::764321

小游戏模式!


阿萨德






说明

星星泡泡将会出现,如果能让它掉落下来,就会进入另外的小游戏模式,通过这些小游戏获取图腾的石头
射击泡泡使它们3个颜色一一样的泡泡能在一起,这样他们就会爆炸掉落.
能量满后星星泡泡就会出现,如果能让它掉落下来,就会进入另外的小游戏模式,通过这些小游戏获取图腾的石头


总分

0987654321



游戏结束,点击再来一次










<p align="center"><font face="ShiShangZhongHeiJianTi" size="16" color="#000000" letterSpacing="0.000000" kerning="0">再来一次</font></p>

ActionScript [AS3]

Section 1
//AutoLoopingFlare30Fps (anim.AutoLoopingFlare30Fps) package anim { public class AutoLoopingFlare30Fps extends BaseFlare { public function AutoLoopingFlare30Fps(){ m_isPaused = false; m_isLoop = true; m_isRemoveAfterPlay = false; setFrameRate(30); start(); } } }//package anim
Section 2
//AutoSingleFlare30Fps (anim.AutoSingleFlare30Fps) package anim { public class AutoSingleFlare30Fps extends BaseFlare { public function AutoSingleFlare30Fps(){ m_isPaused = false; m_isLoop = false; m_isRemoveAfterPlay = false; setFrameRate(30); start(); } } }//package anim
Section 3
//AutoSingleFlare60Fps (anim.AutoSingleFlare60Fps) package anim { public class AutoSingleFlare60Fps extends BaseFlare { public function AutoSingleFlare60Fps(){ m_isPaused = false; m_isLoop = false; m_isRemoveAfterPlay = false; setFrameRate(60); start(); } } }//package anim
Section 4
//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_isPaused:Boolean; private var m_frameOffset:int; private var m_restartAt:int; private var m_firstRender:Boolean; private var m_step:Number; private var m_lastFrame:uint; protected var m_frameRate:int; protected var m_isRemoveAfterPlay:Boolean; private var m_startTime:int; 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; if (!(m_isPaused)){ start(); }; setFrameRate(30); } override public function stop():void{ m_firstRender = true; removeEventListener(Event.ENTER_FRAME, enterFrame); if (m_isRemoveAfterPlay){ parent.removeChild(this); }; } public function setDestroyAfterPlay(_arg1:Boolean):void{ m_isRemoveAfterPlay = _arg1; } public function start():void{ visible = true; m_lastFrame = 0; m_firstRender = true; addEventListener(Event.ENTER_FRAME, enterFrame); } public function setLoopRestartFrame(_arg1:int):void{ m_restartAt = (_arg1 - 1); } public function setLoop(_arg1:Boolean):void{ m_isLoop = _arg1; } public function setFrameRate(_arg1:int):void{ m_frameRate = _arg1; m_step = ((1 / m_frameRate) * 1000); } public function enterFrame(_arg1:Event):void{ var _local2:int; _local2 = getTimer(); if (m_firstRender){ visible = true; m_startTime = _local2; m_firstRender = false; }; 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 5
//EaseInQuadInterpolator (anim.EaseInQuadInterpolator) package anim { public class EaseInQuadInterpolator extends Interpolator { public function EaseInQuadInterpolator(_arg1:Number, _arg2:Number, _arg3:int){ super(_arg1, _arg2, _arg3); } override public function nextPosition():void{ var _local1:Number = (m_dt * m_dt); var _local2:Number = (m_duration * m_duration); m_value = (((m_dv * _local1) / _local2) + m_startValue); } } }//package anim
Section 6
//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 7
//Interpolator (anim.Interpolator) package anim { public class Interpolator { protected var m_startValue:Number; protected var m_finished:Boolean; protected var m_duration:int; protected var m_dt:int; protected var m_dv:Number; protected var m_targetValue:Number; protected var m_value:Number; 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 nextPosition():void{ m_value = (((m_dv * m_dt) / m_duration) + m_startValue); } public function getValue():Number{ return (m_value); } 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 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 isDone():Boolean{ return (m_finished); } } }//package anim
Section 8
//PausedLoopingFlare30Fps (anim.PausedLoopingFlare30Fps) package anim { import flash.display.*; import flash.text.*; public class PausedLoopingFlare30Fps extends BaseFlare { public var countdown_txt:TextField; public var gameover:MovieClip; public var sign_title_txt:TextField; public var instructions1:instructions_1; public var instructions2:instructions_2; public var bottom_txt:TextField; public function PausedLoopingFlare30Fps(){ m_isPaused = true; m_isLoop = true; m_isRemoveAfterPlay = false; setFrameRate(30); stop(); } } }//package anim
Section 9
//PausedSingleFlare30Fps (anim.PausedSingleFlare30Fps) package anim { import flash.display.*; public class PausedSingleFlare30Fps extends BaseFlare { public var anima:MovieClip; public var scoreflash:MovieClip; public var smoke:MovieClip; public function PausedSingleFlare30Fps(){ m_isPaused = true; m_isLoop = false; m_isRemoveAfterPlay = false; setFrameRate(30); stop(); } } }//package anim
Section 10
//Line (geom.Line) package geom { public class Line { public var x1:Number; public var y1:Number; public var y2:Number; public var x2: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 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 = (_local12 * _local12); var _local13:* = (_arg2 - _local11); _local13 = (_local13 * _local13); return ((_local12 + _local13)); } 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 _local15: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); if ((((((_local13 > 0)) && ((_local13 < 1)))) && ((((_local14 > 0)) && ((_local14 < 1)))))){ _local15 = new Pt((x1 + (_local13 * (x2 - x1))), (y1 + (_local13 * (y2 - y1)))); }; return (_local15); } public function distance(_arg1:Number, _arg2:Number):Number{ return (Math.sqrt(distanceSquared(_arg1, _arg2))); } public function intersects(_arg1:Line):Boolean{ var _local2:*; var _local3:* = (x2 - x1); var _local4:* = (y2 - y1); var _local5:* = (_arg1.x2 - _arg1.x1); var _local6:* = (_arg1.y2 - _arg1.y1); var _local7:* = ((_local6 * _local3) - (_local5 * _local4)); if (_local7 == 0){ return (false); }; var _local8:* = (x1 - _arg1.x1); var _local9:* = (y1 - _arg1.y1); var _local10:* = (((_local5 * _local9) - (_local6 * _local8)) / _local7); if ((((_local10 > 0)) && ((_local10 < 1)))){ _local2 = (((_local3 * _local9) - (_local4 * _local8)) / _local7); return ((((_local2 > 0)) && ((_local2 < 1)))); }; return (false); } } }//package geom
Section 11
//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 12
//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 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)); } public function normalize():void{ var _local1:*; var _local2:* = Math.sqrt(((x * x) + (y * y))); if (_local2 > 0){ _local1 = (1 / _local2); x = (x * _local1); y = (y * _local1); }; } public function copyFrom(_arg1:Vec2D):void{ x = _arg1.x; y = _arg1.y; } } }//package geom
Section 13
//monkeybody_100 (jungle_bubble_deluxe_fla.monkeybody_100) package jungle_bubble_deluxe_fla { import flash.display.*; public dynamic class monkeybody_100 extends MovieClip { } }//package jungle_bubble_deluxe_fla
Section 14
//monkeyhead_3 (jungle_bubble_deluxe_fla.monkeyhead_3) package jungle_bubble_deluxe_fla { import flash.display.*; public dynamic class monkeyhead_3 extends MovieClip { } }//package jungle_bubble_deluxe_fla
Section 15
//rank_anim_13 (jungle_bubble_deluxe_fla.rank_anim_13) package jungle_bubble_deluxe_fla { import flash.display.*; public dynamic class rank_anim_13 extends MovieClip { public var inner1:rank_green_anim; public var inner2:rank_blue_anim; public var inner3:rank_purple_anim; public var inner4:rank_gold_anim; public var inner5:rank_silver_anim; public var inner6:rank_stone_anim; } }//package jungle_bubble_deluxe_fla
Section 16
//ranking_104 (jungle_bubble_deluxe_fla.ranking_104) package jungle_bubble_deluxe_fla { import flash.display.*; public dynamic class ranking_104 extends MovieClip { } }//package jungle_bubble_deluxe_fla
Section 17
//AimCursor (junglebubble.AimCursor) package junglebubble { import flash.display.*; import timing.*; import math.*; public class AimCursor extends MovieClip { private var m_r:Number; private var m_dx:int; private var m_dy:int; private var m_lengthOffset:Number; public var c0:MovieClip; public var c1:MovieClip; public var c2:MovieClip; public var c3:MovieClip; public var c4:MovieClip; public var c5:MovieClip; private var m_dist:Number; private var m_mx:int; private var m_my:int; public var c6:MovieClip; private var m_ax:int; private var m_ay:int; private var m_lastRad:Number; private var m_vx1:int; private var m_vx2:int; private var m_limit1:Number; private var m_limit2:Number; private var m_fr:IFloat; private var m_vy1:int; private var m_vy2:int; public function AimCursor(){ var _local1:int; super(); m_fr = new IFloat(0); mouseChildren = false; m_limit1 = (-3.1414 + Math.PI); m_limit2 = (0.0001 + Math.PI); m_lengthOffset = 115; m_lastRad = 0.1234; x = 0; y = 0; while (_local1 < 7) { this[("c" + _local1)].x = 0; this[("c" + _local1)].y = 0; _local1++; }; } public function setArrowLength(_arg1:int):void{ m_lengthOffset = _arg1; } public function tick(_arg1:int, _arg2:int):void{ m_mx = _arg1; m_my = _arg2; if (!((((((((m_mx < m_vx1)) || ((m_mx > m_vx2)))) || ((m_my < m_vy1)))) || ((m_my > m_vy2)))) != visible){ visible = !(visible); }; 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)) / 6); } public function setAncorPosition(_arg1:int, _arg2:int):void{ m_ax = _arg1; m_ay = _arg2; } public function setRadLimits(_arg1:Number, _arg2:Number):void{ m_limit1 = (_arg1 + Math.PI); m_limit2 = (_arg2 + Math.PI); } public function update(_arg1:int, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number = m_fr.value; if (_local9 != m_lastRad){ m_lastRad = _local9; _local3 = Math.cos(_local9); _local4 = ((-(_local3) * m_lengthOffset) + m_ax); _local5 = (m_dist * _local3); _local6 = Math.sin(_local9); _local7 = ((-(_local6) * m_lengthOffset) + m_ay); _local8 = (m_dist * _local6); c0.x = _local4; c0.y = _local7; _local4 = (_local4 - _local5); _local7 = (_local7 - _local8); c1.x = _local4; c1.y = _local7; _local4 = (_local4 - _local5); _local7 = (_local7 - _local8); c2.x = _local4; c2.y = _local7; _local4 = (_local4 - _local5); _local7 = (_local7 - _local8); c3.x = _local4; c3.y = _local7; _local4 = (_local4 - _local5); _local7 = (_local7 - _local8); c4.x = _local4; c4.y = _local7; _local4 = (_local4 - _local5); _local7 = (_local7 - _local8); c5.x = _local4; c5.y = _local7; _local4 = (_local4 - _local5); _local7 = (_local7 - _local8); c6.x = _local4; c6.y = _local7; }; } public function setVisibleLimit(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ m_vx1 = _arg1; m_vx2 = _arg3; m_vy1 = _arg2; m_vy2 = _arg4; } } }//package junglebubble
Section 18
//Bomb (junglebubble.Bomb) package junglebubble { import flash.display.*; import timing.*; import geom.*; import anim.*; import math.*; public class Bomb extends TickObject { private var m_movement:Vec2D; private var m_explosion:BaseFlare; private var m_rotation:Number; private var m_fr:IFloat; public var bomb:BombClip; private var m_fx:IFloat; private var m_fy:IFloat; private var m_effects:DisplayObjectContainer; private var m_collidableList:Array; private var m_speed:Number; private var m_position:Vec2D; private static var SPEED:int = 25; public function Bomb(_arg1:DisplayObjectContainer, _arg2:Array){ bomb = new BombClip(this); m_effects = _arg1; m_collidableList = _arg2; m_explosion = new RockExplosion2(); m_explosion.setDestroyAfterPlay(true); m_position = new Vec2D(); m_speed = (SPEED * 1.25); m_rotation = 0; m_fx = new IFloat(0); m_fr = new IFloat(0); m_fy = new IFloat(0); } public function getX():int{ return (m_position.x); } public function getY():int{ return (m_position.y); } override public function render(_arg1:int, _arg2:Number):void{ bomb.x = m_fx.value; bomb.y = m_fy.value; bomb.rotation = m_fr.value; } 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 (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_rotation = (m_rotation + 16); }; m_fx.set(m_position.x); m_fy.set(m_position.y); m_fr.set(m_rotation); } public function explode():void{ if (bomb.parent){ m_explosion.x = bomb.x; m_explosion.y = bomb.y; m_effects.addChild(m_explosion); m_explosion.start(); bomb.parent.removeChild(bomb); }; isRemoving = true; } public function setPosition(_arg1:int, _arg2:int):void{ m_position.x = int(_arg1); m_fx = new IFloat(_arg1); m_position.y = int(_arg2); m_fy = new IFloat(_arg2); bomb.x = _arg1; bomb.y = _arg2; } public function fire(_arg1:Number):void{ m_movement = new Vec2D(XPMath.cos(_arg1), XPMath.sin(_arg1)); } } }//package junglebubble
Section 19
//BombClip (junglebubble.BombClip) package junglebubble { import flash.display.*; public class BombClip extends MovieClip { private var m_bomb:Bomb; public function BombClip(_arg1:Bomb){ addFrameScript(0, frame1); m_bomb = _arg1; } function frame1(){ stop(); } } }//package junglebubble
Section 20
//BombLauncher (junglebubble.BombLauncher) package junglebubble { import flash.display.*; import timing.*; import math.*; public class BombLauncher extends MovieClip { private var m_aimFn:Function; private var m_fr:IFloat; private var m_r:Number; private var m_mouseX:int; private var m_x:int; private var m_y:int; private var m_reload:int; private var m_mouseY:int; private var m_bomb:Bomb; private var m_lastDeg:int; public function BombLauncher(){ m_fr = new IFloat(0); m_r = 0; m_lastDeg = -1; m_reload = 0; m_mouseX = 0; m_mouseY = 0; m_x = (0 | x); m_y = (0 | y); } public function tick(_arg1:int, _arg2:int, _arg3:int):void{ m_reload--; m_mouseX = _arg2; m_mouseY = (_arg3 + 620); var _local4:* = m_r; m_r = XPMath.atan2((Math.min((m_y - 30), m_mouseY) - m_y), (m_mouseX - m_x)); if (((!((m_aimFn == null))) && (!(((m_r - _local4) == 0))))){ m_aimFn(m_r, _local4); }; m_fr.set(m_r); } public function setBomb(_arg1:Bomb):void{ m_bomb = _arg1; } 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; }; } public function fire():Bomb{ if ((((m_reload <= 0)) && (!((m_bomb == null))))){ m_bomb.fire(m_r); m_reload = 25; return (m_bomb); }; return (null); } public function setAimChangeCallback(_arg1:Function):void{ m_aimFn = _arg1; } } }//package junglebubble
Section 21
//BonusClock (junglebubble.BonusClock) package junglebubble { import flash.display.*; public class BonusClock extends MovieClip { private var m_paused:Boolean; private var m_numTicksTotal:int; private var m_lastFrame:int; private var m_numTicksLeft:int; private var m_game:Game; private var m_callbackFired:Boolean; private var m_fnCallback:Function; private static const LIMIT:int = 20000; public function BonusClock(){ reset(); } public function reset():void{ m_paused = false; m_numTicksTotal = (LIMIT / GameBase.TICK_RATE); m_numTicksLeft = -1; m_callbackFired = false; m_lastFrame = -1; if (m_game){ m_game.getSoundManager().get("bonus_time_warning").stop(); }; gotoAndStop(1); } public function start(_arg1:Function):void{ m_fnCallback = _arg1; m_numTicksLeft = m_numTicksTotal; m_callbackFired = false; } public function setGame(_arg1:Game):void{ m_game = _arg1; } public function pause():void{ if (m_game){ m_game.getSoundManager().get("bonus_time_warning").stop(); }; m_paused = true; m_lastFrame = -1; } public function render():void{ var _local1:int; if (m_numTicksLeft >= 0){ _local1 = (100 - (100 * (m_numTicksLeft / m_numTicksTotal))); if (_local1 > 100){ _local1 = 100; }; if (_local1 < 1){ _local1 = 1; }; if (_local1 != m_lastFrame){ m_lastFrame = _local1; gotoAndStop(_local1); }; }; } public function tick():void{ if (m_paused){ return; }; if (m_numTicksLeft > 0){ m_numTicksLeft--; }; if (m_numTicksLeft == int((5000 / GameBase.TICK_RATE))){ if (m_game){ m_game.getSoundManager().get("bonus_time_warning").loop(); }; }; if (((!(m_callbackFired)) && ((m_numTicksLeft == 0)))){ if (m_fnCallback != null){ m_fnCallback(); }; m_callbackFired = true; if (m_game){ m_game.getSoundManager().get("bonus_time_warning").stop(); }; }; } } }//package junglebubble
Section 22
//BonusCompleteSign (junglebubble.BonusCompleteSign) package junglebubble { import flash.display.*; import flash.events.*; import anim.*; import localization.*; import flash.utils.*; public class BonusCompleteSign extends MovieClip { private var m_scoreVal:RollingScore; private var m_completedLevel:int; public var sign:MovieClip; private var m_subSuccessLevel:Number; private var m_game:Game; private var m_successLevel:int; var m_missedTime:int; private var m_jewelAnim:BaseFlare; private var m_lastFrame:int; private var m_removeAt:int; private var m_step:Number; var m_prevTime:int; private var m_dir:int; private var m_startTime:int; public function BonusCompleteSign(){ sign.content.item.stop(); sign.content.stop(); sign.stop(); stop(); } public function show(_arg1:int, _arg2:Number, _arg3:int):void{ if (_arg3 == 5){ sign.content.item.gotoAndStop((1 + _arg1)); } else { sign.content.item.gotoAndStop(((1 + 4) + (3 - _arg1))); }; sign.content.item.visible = false; m_successLevel = _arg1; m_subSuccessLevel = _arg2; m_completedLevel = _arg3; m_scoreVal = new RollingScore(sign.content.score_txt, 0, -1); sign.content.msg_txt.text = I18n.getString("bonus_acquired"); sign.content.score_txt.text = "0"; sign.content.head.head.gotoAndStop((2 + _arg1)); m_startTime = -1; m_lastFrame = -1; m_step = ((1 / 60) * 1000); m_removeAt = -1; m_dir = 1; m_missedTime = 0; m_prevTime = getTimer(); addEventListener(Event.ENTER_FRAME, animateAppear); m_game.getSoundManager().get("sign_appear").play(0.7); } public function animateAppear(_arg1:Event):void{ var _local2:int; _local2 = getTimer(); m_missedTime = (m_missedTime + (_local2 - m_prevTime)); m_prevTime = _local2; var _local3:int = (1000 / GameBase.TICK_RATE); while (m_missedTime > _local3) { m_scoreVal.update(); m_missedTime = (m_missedTime - _local3); }; m_scoreVal.render(); if ((((((m_dir == 0)) && (!((m_removeAt == -1))))) && ((_local2 > m_removeAt)))){ m_dir = -1; m_startTime = -1; m_game.getSoundManager().get("sign_appear").play(0.7); }; sign.content.head.rotation = (Math.sin(((_local2 - m_startTime) / 100)) * 20); if (m_dir == 0){ return; }; if (m_startTime < 0){ visible = true; m_startTime = _local2; }; var _local4:uint = int(Math.round((((_local2 - m_startTime) / m_step) + 1))); if (m_dir > 0){ if (_local4 > 40){ if (m_removeAt == -1){ m_dir = 0; if (sign.content.item.currentFrame == 5){ sign.content.item.inner4.anima.gotoAndStop((1 + ((4 - m_completedLevel) * 3))); sign.content.item.inner4.gotoAndStop(1); }; if (sign.content.item.currentFrame == 6){ sign.content.item.inner5.anima.gotoAndStop((2 + ((4 - m_completedLevel) * 3))); sign.content.item.inner5.gotoAndStop(1); }; if (sign.content.item.currentFrame == 7){ sign.content.item.inner6.anima.gotoAndStop((3 + ((4 - m_completedLevel) * 3))); sign.content.item.inner6.gotoAndStop(1); }; sign.content.item.visible = true; m_game.getMusicManager().get("bonus_end_good").play(); m_scoreVal.setValue(((m_successLevel * 5000) + int((m_subSuccessLevel * 2500)))); m_jewelAnim = sign.content.item[("inner" + (sign.content.item.currentFrame - 1))]; if (m_completedLevel < 5){ m_jewelAnim.setLoopRestartFrame(7); m_jewelAnim.setLoop(true); }; m_jewelAnim.start(); m_removeAt = (_local2 + 3000); }; _local4 = 40; }; } else { if (m_dir < 0){ _local4 = (_local4 + 40); if (_local4 > 70){ m_jewelAnim.stop(); stop(); sign.stop(); sign.content.stop(); sign.content.item.stop(); removeEventListener(Event.ENTER_FRAME, animateAppear); }; }; }; if (_local4 != m_lastFrame){ gotoAndStop(_local4); m_lastFrame = _local4; }; } public function setGame(_arg1:Game):void{ m_game = _arg1; } } }//package junglebubble
Section 23
//BonusGame (junglebubble.BonusGame) package junglebubble { public interface BonusGame { function init(_arg1:int):void; function render(_arg1:int, _arg2:Number):void; function onMouseDown():void; function tidy(_arg1:Boolean):void; function tick(_arg1:int, _arg2:int, _arg3:int):void; } }//package junglebubble
Section 24
//BonusGameBubbleMining (junglebubble.BonusGameBubbleMining) package junglebubble { import flash.display.*; import timing.*; import geom.*; import anim.*; import math.*; public class BonusGameBubbleMining implements BonusGame, BubbleListener { private var m_game:Game; private var m_mineCollidabelList:Array; private var m_bubbleQueue:Array; private var m_isTimeStarted:Boolean; public var isBonusLevelCompleted:Boolean; private var m_isTimeOver:Boolean; private var m_aimCursor:AimCursor; private var m_tick:int; private var m_externalListener:BubbleListener; private var m_effects:DisplayObjectContainer; private var m_bonusTime:BonusClock; private var m_explosion:BaseFlare; private var m_main:GameAssembly; private var m_bubbleBox:BubbleBox; private var m_subSuccessLevel:Number; private var m_dropLayer:MovieClip; private var m_successLevel:int; private var m_rng:MtRandom; private var m_bubbleLauncher:BubbleLauncher; private var m_aimBubble:Bubble; private var m_cursor:MeterArrow; private var m_tickList:Array; private var m_dynamiteBlasted:Boolean; private var m_cursorY:int; private var m_cursorYF:IFloat; private var m_nextBubble:Bubble; private var m_bubbleAimMoving:int; private var m_leaveAt:int; private static const COLORS:Array = [1, 3, 5]; public function BonusGameBubbleMining(_arg1:Game, _arg2:DisplayObjectContainer, _arg3:BubbleListener, _arg4:GameAssembly, _arg5:Array){ m_game = _arg1; m_externalListener = _arg3; m_effects = _arg2; m_cursor = new MeterArrow(); m_cursor.x = 700; m_cursor.visible = false; m_effects = _arg2; m_effects.addChild(m_cursor); m_dropLayer = new MovieClip(); m_mineCollidabelList = new Array(); m_mineCollidabelList.push(new Line(372, -2500, 372, 600)); m_mineCollidabelList.push(new Line(648, -2500, 648, 600)); m_main = _arg4; m_tickList = _arg5; m_main.top_layer.under.addChild(m_dropLayer); m_bonusTime = m_main.bonus_time; m_bonusTime.setGame(_arg1); m_aimCursor = m_effects["aim_under"]; m_bubbleLauncher = m_main.bubble_launcher_under; m_explosion = BaseFlare(m_main.big_explosion); m_explosion.visible = false; m_rng = new MtRandom((m_game.getSharedData().globalSeed + 101)); } public function onChangeBubbleAim(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.abs((_arg1 - _arg2)); m_bubbleAimMoving++; m_main.monkey_under.setFrame(((_arg1 < (-(Math.PI) / 2))) ? 2 : 1); m_main.lever_underworld.rotation = (Math.sin((_arg1 / 2)) * 12); } public function onBubbleOverflow():void{ m_dynamiteBlasted = true; m_explosion.visible = true; m_explosion.start(); m_bonusTime.pause(); m_leaveAt = (m_tick + 3); m_game.getSoundManager().get("explosion").play(); m_game.getMusicManager().get("bonus_loop2").fadeToAndStop(0, 500); } public function onTimeUp():void{ m_isTimeOver = true; } public function init(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:MovieClip; var _local5:int; var _local6:int; var _local7:Bubble; var _local12:int; isBonusLevelCompleted = false; m_bubbleQueue = new Array(); m_successLevel = 0; m_subSuccessLevel = 0; m_cursorY = (390 + 31); m_cursorYF = new IFloat(m_cursorY); m_leaveAt = -1; m_isTimeStarted = false; var _local8:* = 13; var _local9:* = m_game.getSharedData(); m_bubbleBox = new BubbleBox(m_game, _local9, _arg1, _local8, COLORS, 0); m_bubbleBox.setPreferredBottomPos(7); m_bubbleBox.setCanSpawnBonus(false); m_bubbleBox.setAllowedBottomRow(true); m_bubbleBox.setScoringEnabled(false); m_bubbleBox.setUseScrollDelay(false); m_bubbleBox.addListener(this); m_main.rock_base.addChild(m_bubbleBox); m_bubbleBox.setDropBubbleContainer(m_dropLayer); m_explosion.setFrameRate(60); m_explosion.gotoAndStop(1); m_explosion.visible = false; m_dynamiteBlasted = false; m_main.bubble_launcher_under.visible = true; m_main.bomb_launcher.visible = false; m_main.bubble_frame.gotoAndStop(1); m_main.bubble_frame.visible = true; m_aimCursor.setAncorPosition(508, 540); m_aimCursor.setVisibleLimit(330, 4, 690, 560); m_aimCursor.setArrowLength(88); m_aimCursor.setRadLimits(-3.1414, 0.0001); m_aimCursor.visible = false; m_aimBubble = new Bubble(); m_aimBubble.assureFull(); m_aimBubble.setCollidableList(m_mineCollidabelList); m_aimBubble.setPosition(508, 540); m_main.rock_base.addChild(m_aimBubble.bubble); m_main.bubble_launcher_obj_shadow.visible = true; m_bubbleLauncher.setBubble(m_aimBubble); m_bubbleLauncher.setReloadTime(12); m_bubbleLauncher.setRadLimits(-3.1414, 0.0001); m_bubbleLauncher.setAimChangeCallback(onChangeBubbleAim); var _local10:int = 5; var _local11:Array = [COLORS[0], COLORS[1], COLORS[2]]; while (_local12 < m_rng.nextInt(4)) { _local11.push(_local11.shift()); _local12++; }; var _local13:int = (_local10 - _local11.length); _local12 = 0; while (_local12 < _local13) { _local2 = m_rng.nextInt(_local11.length); _local11.splice(_local2, 0, _local11[_local2]); _local12++; }; _local12 = 0; while (_local12 < 5) { _local3 = _local11.shift(); if (_local12 == 0){ m_aimBubble.setColorIndex(_local3); } else { _local4 = MovieClip(m_main[("under_bubble_" + _local12)]); _local5 = _local4.x; _local6 = (_local4.y - 620); _local7 = new Bubble(); _local7.assureFull(); _local7.setPosition(_local5, _local6); _local7.setColorIndex(_local3); _local7.setCollidableList(m_mineCollidabelList); m_main.rock_base.addChild(_local7.bubble); m_bubbleQueue.push(_local7); }; _local12++; }; } public function render(_arg1:int, _arg2:Number):void{ m_aimCursor.update(_arg1, _arg2); m_bonusTime.render(); m_bubbleLauncher.render(_arg1, _arg2); m_bubbleBox.render(_arg1, _arg2); m_cursor.y = m_cursorYF.value; } public function onLeaveBonusMode(_arg1:int, _arg2:Number):void{ } public function tick(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:int; m_tick = _arg1; m_bonusTime.tick(); if (m_bubbleAimMoving > 0){ m_main.rep_under.visible = ((_arg1 % 3) == 0); m_bubbleAimMoving--; }; if (!(m_isTimeStarted)){ m_aimCursor.visible = true; m_cursor.start(); m_cursor.visible = true; m_cursor.visible = true; m_isTimeStarted = true; m_isTimeOver = false; m_bonusTime.start(onTimeUp); }; m_aimCursor.tick(_arg2, _arg3); if (m_leaveAt == _arg1){ m_bubbleBox.popLiveBubbles(); m_externalListener.onLeaveBonusMode(m_successLevel, m_subSuccessLevel); return; }; if (m_leaveAt == -1){ m_bubbleBox.tick(_arg1); _local4 = m_bubbleBox.getDeepestHole(); m_cursorY = ((((390 * _local4) / 11) - (BubbleBox.radiusY / 2)) + 31); if (m_cursorY < 31){ m_cursorY = 31; }; if (m_cursorY > 421){ m_cursorY = 421; }; if (m_cursorY < 165){ m_subSuccessLevel = (1 - ((m_cursorY - 31) / (165 - 31))); m_successLevel = 3; } else { if (m_cursorY < 291){ m_subSuccessLevel = (1 - ((m_cursorY - 165) / (291 - 165))); m_successLevel = 2; } else { m_subSuccessLevel = (1 - ((m_cursorY - 291) / (421 - 291))); m_successLevel = 1; }; }; if (m_dynamiteBlasted){ m_successLevel = 0; m_subSuccessLevel = 0; }; if (_local4 == 0){ isBonusLevelCompleted = true; }; }; m_cursorYF.set(m_cursorY); if ((((((((m_leaveAt == -1)) && ((m_bubbleBox.getNumLiveBubbles() == 0)))) && ((m_aimBubble == null)))) && ((m_bubbleQueue.length == 0)))){ isBonusLevelCompleted = true; }; if (((m_isTimeOver) && ((m_bubbleBox.getNumLiveBubbles() == 0)))){ isBonusLevelCompleted = true; }; if (((isBonusLevelCompleted) && ((m_leaveAt == -1)))){ m_game.getMusicManager().get("bonus_loop2").fadeToAndStop(0, 500); if (!(m_dynamiteBlasted)){ m_bubbleBox.popLiveBubbles(); m_externalListener.onBeforeLeaveBonusMode(m_successLevel, m_subSuccessLevel); }; m_leaveAt = ((_arg1 + (GameBase.TICK_RATE * 4)) + 8); m_bonusTime.pause(); }; m_bubbleLauncher.tick(_arg1, _arg2, _arg3); } public function onBubbleRemove():void{ } public function onNoMoreBubbles():void{ } public function onMouseDown():void{ if (((((m_isTimeOver) || (isBonusLevelCompleted))) || (m_dynamiteBlasted))){ return; }; if (((!((m_aimBubble == null))) && (m_bubbleLauncher.fire()))){ m_game.getSoundManager().get("shot1").play(); m_bubbleBox.addLiveBubble(m_aimBubble); m_tickList.push(m_aimBubble); if (m_bubbleQueue.length == 0){ m_main.bubble_launcher_obj_shadow.visible = false; }; nextBubble(); }; } public function onBeforeLeaveBonusMode(_arg1:int, _arg2:Number):void{ } public function tidy(_arg1:Boolean):void{ var _local2:Bubble; if (_arg1){ m_game.getMusicManager().get("bonus_loop2").fadeToAndStop(0, 100); return; }; m_cursor.stop(); m_cursor.visible = false; m_bubbleBox.destroy(); m_bonusTime.reset(); if (m_aimBubble){ m_aimBubble.remove(); m_aimBubble = null; }; while ((_local2 = m_bubbleQueue.pop()) != null) { _local2.remove(); }; } public function onBonusBubbleWasted():void{ } private function nextBubble():void{ var _local1:int; m_nextBubble = m_bubbleQueue.shift(); if (m_nextBubble){ m_aimBubble = m_nextBubble; m_aimBubble.animateSmallJump(); m_tickList.push(m_aimBubble); m_bubbleLauncher.setBubble(m_aimBubble); } else { m_aimBubble = null; }; while (_local1 < m_bubbleQueue.length) { m_bubbleQueue[_local1].animateLeft(); m_tickList.push(m_bubbleQueue[_local1]); _local1++; }; } public function onBonusBubbleCollected(_arg1:int):void{ } } }//package junglebubble
Section 25
//BonusGameDefense (junglebubble.BonusGameDefense) package junglebubble { import flash.display.*; import timing.*; import geom.*; import anim.*; import math.*; public class BonusGameDefense implements BonusGame { private var m_game:Game; private var m_mineCollidabelList:Array; private var m_numSpawnBubble:int; private var m_isTimeStarted:Boolean; public var isBonusLevelCompleted:Boolean; private var m_isTimeOver:Boolean; private var m_fallingBubble:Array; private var m_numPoppedBubble:int; private var m_aimCursor:AimCursor; private var m_tick:int; private var m_externalListener:BubbleListener; private var m_dynamiteBlasted:Boolean; private var m_effects:DisplayObjectContainer; private var m_bonusTime:BonusClock; private var m_spawnNextBubbleAt:int; private var m_shotBubble:Array; private var m_poppedBubbleYAccumulate:int; private var m_main:GameAssembly; private var m_startTick:int; private var m_subSuccessLevel:Number; private var m_successLevel:int; private var m_rng:MtRandom; private var m_explosion:BaseFlare; private var m_bubbleLauncher:BubbleLauncher; private var m_compositeBubbleList:Array; private var m_bubbleColor:int; private var m_aimBubble:Bubble; private var m_cursor:CursorLine; private var m_nextBubble:Bubble; private var m_groupSeq:int; private var m_tickList:Array; private var m_bubbleAimMoving:int; private var m_cursorY:int; private var m_cursorYF:IFloat; private var m_leaveAt:int; private static const numColor:int = 3; public function BonusGameDefense(_arg1:Game, _arg2:DisplayObjectContainer, _arg3:BubbleListener, _arg4:GameAssembly, _arg5:Array){ m_game = _arg1; m_externalListener = _arg3; m_effects = _arg2; m_cursor = new CursorLine(); m_cursor.x = 700; m_cursor.visible = false; m_effects.addChild(m_cursor); m_mineCollidabelList = new Array(); m_mineCollidabelList.push(new Line(372, -2500, 372, 600)); m_mineCollidabelList.push(new Line(648, -2500, 648, 600)); m_main = _arg4; m_tickList = _arg5; m_bonusTime = m_main.bonus_time; m_bonusTime.setGame(_arg1); m_aimCursor = m_effects["aim_under"]; m_bubbleLauncher = m_main.bubble_launcher_under; m_explosion = BaseFlare(m_main.big_explosion); m_explosion.visible = false; } public function onChangeBubbleAim(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.abs((_arg1 - _arg2)); m_bubbleAimMoving++; m_main.monkey_under.setFrame(((_arg1 < (-(Math.PI) / 2))) ? 2 : 1); m_main.lever_underworld.rotation = (Math.sin((_arg1 / 2)) * 12); } public function onTimeUp():void{ m_isTimeOver = true; } public function init(_arg1:int):void{ m_rng = new MtRandom(_arg1); m_compositeBubbleList = new Array(); m_groupSeq = 0; isBonusLevelCompleted = false; m_bubbleColor = (m_rng.nextInt(5) + 1); m_poppedBubbleYAccumulate = 0; m_numPoppedBubble = 0; m_fallingBubble = new Array(); m_shotBubble = new Array(); m_startTick = -1; m_successLevel = 0; m_subSuccessLevel = 0; m_cursorY = 421; m_cursorYF = new IFloat(m_cursorY); m_leaveAt = -1; m_spawnNextBubbleAt = -2; m_numSpawnBubble = 1; m_isTimeStarted = false; var _local2:* = m_game.getSharedData(); m_main.bubble_frame.visible = false; m_explosion.setFrameRate(60); m_explosion.gotoAndStop(1); m_explosion.visible = false; m_dynamiteBlasted = false; m_aimCursor.setAncorPosition(508, 540); m_aimCursor.setVisibleLimit(330, 4, 690, 560); m_aimCursor.setRadLimits((-(Math.PI) + 0.7), -0.7); m_aimCursor.setArrowLength(88); m_aimCursor.visible = false; m_main.bubble_launcher_under.visible = true; m_main.bubble_launcher_obj_shadow.visible = true; m_main.bomb_launcher.visible = false; m_main.bubble_frame.visible = false; nextBubble(); m_main.rock_base.addChild(m_aimBubble.bubble); m_bubbleLauncher.setBubble(m_aimBubble); m_bubbleLauncher.setReloadTime(12); m_bubbleLauncher.setRadLimits((-(Math.PI) + 0.7), -0.7); m_bubbleLauncher.setAimChangeCallback(onChangeBubbleAim); } public function tick(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:int; var _local5:CompositeBubble; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Bubble; var _local11:CompositeBubble; var _local12:int; var _local13:int; var _local14:int; var _local15:Number; var _local16:Bubble; var _local17:Bubble; var _local18:int; var _local19:int; var _local20:Bubble; var _local21:int; var _local22:*; var _local23:*; var _local24:Boolean; var _local25:CompositeBubble; var _local26:int; m_tick = _arg1; m_bonusTime.tick(); if (m_bubbleAimMoving > 0){ m_main.rep_under.visible = ((_arg1 % 3) == 0); m_bubbleAimMoving--; }; if (!(m_isTimeStarted)){ m_aimCursor.visible = true; m_cursor.visible = true; m_isTimeStarted = true; m_startTick = _arg1; m_isTimeOver = false; m_bonusTime.start(onTimeUp); }; m_aimCursor.tick(_arg2, _arg3); if ((((m_spawnNextBubbleAt == _arg1)) || ((m_spawnNextBubbleAt == -2)))){ m_spawnNextBubbleAt = -1; _local5 = new CompositeBubble(); _local6 = ((((Math.PI * 2) - (Math.PI / 2)) + (2.4 * m_rng.nextDouble())) - 1.2); _local7 = (XPMath.cos(_local6) * 7); _local8 = (-(XPMath.sin(_local6)) * 7); _local9 = (508 + (m_rng.nextInt(150) - 75)); _local5.setMovement(_local7, _local8); _local5.setPosition(_local9, -(BubbleBox.radiusY)); _local5.setWall((372 + 19), (648 - 19)); _local4 = 0; while (_local4 < 1) { _local10 = new Bubble(); _local10.assureFull(); _local10.setCollidableList(m_mineCollidabelList); _local10.setColorIndex(m_bubbleColor); _local10.arrayX = _local4; _local10.arrayY = m_groupSeq; m_main.rock_base.addChild(_local10.bubble); m_fallingBubble.push(_local10); _local5.addBubble(_local10, 0, 0); _local4++; }; _local5.group = m_groupSeq; m_compositeBubbleList.push(_local5); m_groupSeq++; }; if (((!(isBonusLevelCompleted)) && ((m_spawnNextBubbleAt == -1)))){ m_spawnNextBubbleAt = (_arg1 + 75); }; _local4 = 0; while (_local4 < m_compositeBubbleList.length) { _local11 = m_compositeBubbleList[_local4]; _local11.tick(_arg1); if (_local11.exploding()){ m_compositeBubbleList.splice(_local4, 1); _local26 = 0; while (_local26 < m_fallingBubble.length) { _local16 = m_fallingBubble[_local26]; if (_local11.group == _local16.arrayY){ _local16.isRemoving = true; _local16.bubble.setDropOffset(1200); _local16.drop(_local11.getMoveX(), _local11.getMoveY(), false, false); m_fallingBubble.splice(_local26, 1); } else { _local26++; }; }; _local12 = _local11.getY(); _local13 = 200; _local14 = 400; if (_local12 < _local13){ _local12 = _local13; }; if (_local12 > _local14){ _local12 = _local14; }; _local15 = ((_local12 - _local13) / (_local14 - _local13)); m_poppedBubbleYAccumulate = (m_poppedBubbleYAccumulate + int(((390 * _local15) + 16))); m_numPoppedBubble++; } else { _local4++; }; }; _local4 = 0; while (_local4 < m_fallingBubble.length) { _local17 = m_fallingBubble[_local4]; _local18 = _local17.getY(); if (_local18 > 430){ if (!(m_dynamiteBlasted)){ finishOff(); isBonusLevelCompleted = true; m_dynamiteBlasted = true; m_explosion.visible = true; m_explosion.start(); m_game.getSoundManager().get("explosion").play(); m_bonusTime.pause(); m_leaveAt = (m_tick + 3); }; break; }; if (!(_local17.isStuck)){ _local19 = 0; while (_local19 < m_shotBubble.length) { _local20 = m_shotBubble[_local19]; _local21 = _local20.getY(); if (_local21 < -50){ m_game.getSoundManager().get("scream").play(); m_poppedBubbleYAccumulate = (m_poppedBubbleYAccumulate + 200); m_shotBubble.splice(_local19, 1); _local20.remove(); } else { m_shotBubble.slice(); if (!(_local20.isStuck)){ _local22 = (_local20.getX() - _local17.getX()); _local23 = (_local21 - _local18); if (((_local22 * _local22) + (_local23 * _local23)) < (35 * 35)){ m_shotBubble.splice(_local19, 1); _local24 = false; _local26 = 0; while (_local26 < m_compositeBubbleList.length) { _local25 = m_compositeBubbleList[_local26]; if (_local25.group == _local17.arrayY){ if (_local25.aboutToExplode()){ _local20.explode(); break; }; if (_local25.getNumBubbles() == 1){ _local25.setBubbleOffset(0, -19, 0); _local25.addBubble(_local20, 19, 0); _local20.arrayX = 2; _local20.arrayY = _local25.group; m_fallingBubble.push(_local20); } else { if (_local25.getNumBubbles() == 2){ m_game.getSoundManager().get("burst").play(0.7); _local25.setBubbleOffset(0, -19, (19 / 2)); _local25.setBubbleOffset(1, 19, (19 / 2)); _local25.addBubble(_local20, 0, (-19 * 1.1)); _local20.arrayX = 3; _local20.arrayY = _local25.group; m_fallingBubble.push(_local20); }; }; break; }; _local26++; }; _local20.isRemoving = true; } else { _local19++; }; }; }; }; _local4++; }; }; if (m_leaveAt == _arg1){ m_externalListener.onLeaveBonusMode((m_dynamiteBlasted) ? 0 : m_successLevel, (m_dynamiteBlasted) ? 0 : m_subSuccessLevel); return; }; if (m_numPoppedBubble > 0){ m_cursorY = (m_poppedBubbleYAccumulate / m_numPoppedBubble); } else { m_cursorY = 421; }; if (m_cursorY < 31){ m_cursorY = 31; }; if (m_cursorY > 421){ m_cursorY = 421; }; if (m_leaveAt == -1){ if (m_cursorY < 162){ m_subSuccessLevel = (1 - ((m_cursorY - 31) / (162 - 31))); m_successLevel = 3; } else { if (m_cursorY < 291){ m_subSuccessLevel = (1 - ((m_cursorY - 162) / (291 - 162))); m_successLevel = 2; } else { m_subSuccessLevel = (1 - ((m_cursorY - 291) / (421 - 291))); m_successLevel = 1; }; }; }; m_cursorYF.set(m_cursorY); if (((m_isTimeOver) && ((m_shotBubble.length == 0)))){ isBonusLevelCompleted = true; }; if (((isBonusLevelCompleted) && ((m_leaveAt == -1)))){ finishOff(); m_compositeBubbleList = []; m_externalListener.onBeforeLeaveBonusMode((m_dynamiteBlasted) ? 0 : m_successLevel, (m_dynamiteBlasted) ? 0 : m_subSuccessLevel); m_leaveAt = ((_arg1 + (GameBase.TICK_RATE * 4)) + 8); m_spawnNextBubbleAt = -1; m_bonusTime.pause(); }; m_bubbleLauncher.tick(_arg1, _arg2, _arg3); } public function render(_arg1:int, _arg2:Number):void{ var _local3:* = 0; while (_local3 < m_compositeBubbleList.length) { m_compositeBubbleList[_local3].render(_arg1, _arg2); _local3++; }; m_aimCursor.update(_arg1, _arg2); m_bonusTime.render(); m_bubbleLauncher.render(_arg1, _arg2); m_cursor.y = m_cursorYF.value; } public function onMouseDown():void{ if (((((m_isTimeOver) || (isBonusLevelCompleted))) || (m_dynamiteBlasted))){ return; }; if (m_bubbleLauncher.fire()){ m_game.getSoundManager().get("shot1").play(); m_tickList.push(m_aimBubble); m_shotBubble.push(m_aimBubble); nextBubble(); }; } public function tidy(_arg1:Boolean):void{ if (_arg1){ m_game.getMusicManager().get("bonus_loop1").fadeToAndStop(0, 100); return; }; finishOff(); if (m_nextBubble){ m_nextBubble.remove(); m_nextBubble = null; }; if (m_aimBubble){ m_aimBubble.remove(); m_aimBubble = null; }; m_cursor.visible = false; m_bonusTime.reset(); } private function finishOff():void{ var _local1:int; m_game.getMusicManager().get("bonus_loop1").fadeToAndStop(0, 500); m_main.bubble_launcher_obj_shadow.visible = false; _local1 = 0; while (_local1 < m_shotBubble.length) { m_shotBubble[_local1].explode(); m_shotBubble[_local1].isRemoving = true; _local1++; }; _local1 = 0; while (_local1 < m_fallingBubble.length) { m_fallingBubble[_local1].explode(); m_fallingBubble[_local1].isRemoving = true; _local1++; }; m_compositeBubbleList = []; m_fallingBubble = []; m_shotBubble = []; if (m_nextBubble){ m_nextBubble.remove(); m_nextBubble = null; }; if (m_aimBubble){ m_aimBubble.remove(); m_aimBubble = null; }; } private function nextBubble():void{ if (m_nextBubble == null){ m_nextBubble = new Bubble(); m_nextBubble.assureFull(); m_nextBubble.setCollidableList(m_mineCollidabelList); m_nextBubble.setPosition(508, 540); m_nextBubble.setColorIndex(m_bubbleColor); }; var _local1:Bubble = new Bubble(); _local1.assureFull(); _local1.setCollidableList(m_mineCollidabelList); var _local2:MovieClip = MovieClip(m_main["under_bubble_1"]); var _local3:int = _local2.x; var _local4:int = (_local2.y - 620); _local1.setPosition(_local3, _local4); _local1.setColorIndex(m_bubbleColor); m_main.rock_base.addChild(_local1.bubble); m_aimBubble = m_nextBubble; m_nextBubble = _local1; m_nextBubble.bubble.visible = false; m_aimBubble.bubble.visible = true; m_aimBubble.setPosition(508, 540); m_bubbleLauncher.setBubble(m_aimBubble); } } }//package junglebubble
Section 26
//BonusGameNull (junglebubble.BonusGameNull) package junglebubble { import flash.display.*; import anim.*; public class BonusGameNull implements BonusGame { private var m_explosion:BaseFlare; private var m_game:Game; private var m_main:GameAssembly; private var m_startTick:int; private var m_successLevel:int; public var isBonusLevelCompleted:Boolean; private var m_tickList:Array; private var m_tick:int; private var m_externalListener:BubbleListener; private var m_effects:DisplayObjectContainer; private var m_leaveAt:int; public function BonusGameNull(_arg1:Game, _arg2:DisplayObjectContainer, _arg3:BubbleListener, _arg4:GameAssembly, _arg5:Array){ m_game = _arg1; m_externalListener = _arg3; m_effects = _arg2; m_main = _arg4; m_tickList = _arg5; m_explosion = BaseFlare(m_main.big_explosion); m_explosion.visible = false; } public function onTimeUp():void{ isBonusLevelCompleted = true; } public function tidy(_arg1:Boolean):void{ } public function onMouseDown():void{ } public function init(_arg1:int):void{ isBonusLevelCompleted = false; m_leaveAt = -1; } public function tick(_arg1:int, _arg2:int, _arg3:int):void{ m_tick = _arg1; if (m_leaveAt == _arg1){ m_externalListener.onLeaveBonusMode(1, 0); return; }; if (m_leaveAt == -1){ m_externalListener.onBeforeLeaveBonusMode(1, 0); m_leaveAt = ((_arg1 + (GameBase.TICK_RATE * 4)) + 8); }; } public function render(_arg1:int, _arg2:Number):void{ } public function onChangeBubbleAim(_arg1:Number, _arg2:Number):void{ } } }//package junglebubble
Section 27
//BonusGameRock (junglebubble.BonusGameRock) package junglebubble { import flash.display.*; import timing.*; import geom.*; public class BonusGameRock implements BonusGame { private var m_explosion:MovieClip; private var m_game:Game; private var m_main:GameAssembly; private var m_mineCollidabelList:Array; private var m_rockBox:RockBox; private var m_isTimeStarted:Boolean; public var isBonusLevelCompleted:Boolean; private var m_bombAimMoving:int; private var m_tickList:Array; private var m_externalListener:BubbleListener; private var m_cursorYF:IFloat; private var m_cursor:MovieClip; private var m_bonusTime:BonusClock; private var m_bombLauncher:BombLauncher; private var m_leaveAt:int; public function BonusGameRock(_arg1:Game, _arg2:DisplayObjectContainer, _arg3:BubbleListener, _arg4:GameAssembly, _arg5:Array){ m_game = _arg1; m_externalListener = _arg3; m_cursor = new CursorLine(); m_cursor.x = 700; m_cursor.visible = false; _arg2.addChild(m_cursor); m_mineCollidabelList = new Array(); m_mineCollidabelList.push(new Line(372, -2500, 372, 600)); m_mineCollidabelList.push(new Line(648, -2500, 648, 600)); m_main = _arg4; m_explosion = m_main.big_explosion; m_tickList = _arg5; var _local6:* = m_game.getSharedData(); m_rockBox = new RockBox(m_main.rock_base.rock_sublayer, m_main.rock_base.rock_effects, m_main.bonus_time, (_local6.globalSeed + 1)); m_main.rock_base.addChild(m_rockBox); m_bonusTime = m_main.bonus_time; m_bonusTime.setGame(_arg1); m_bombLauncher = m_main.bomb_launcher; } public function onTimeUp():void{ isBonusLevelCompleted = true; } public function onMouseDown():void{ var _local1:Bomb; var _local2:*; if (!(m_rockBox.isBonusLevelCompleted)){ _local1 = m_bombLauncher.fire(); if (_local1 != null){ m_rockBox.addBomb(_local1); m_tickList.push(_local1); _local2 = new Bomb(m_main.rock_base, m_mineCollidabelList); m_main.rock_base.addChild(_local2.bomb); _local2.setPosition((384 + 125), 540); m_bombLauncher.setBomb(_local2); }; }; } public function tidy(_arg1:Boolean):void{ m_bonusTime.reset(); m_rockBox.reset(); } public function init(_arg1:int):void{ m_rockBox.init(_arg1); m_explosion.setFrameRate(60); m_explosion.gotoAndStop(1); m_explosion.visible = false; m_cursorYF = new IFloat(0); m_isTimeStarted = false; m_cursor.visible = false; isBonusLevelCompleted = false; m_leaveAt = -1; m_main.bubble_launcher_under.visible = false; m_main.bomb_launcher.visible = true; m_main.bubble_frame.visible = false; var _local2:* = new Bomb(m_main.rock_base, m_mineCollidabelList); m_main.rock_base.addChild(_local2.bomb); _local2.setPosition((384 + 125), 540); m_bombLauncher.setBomb(_local2); m_bombLauncher.setAimChangeCallback(onChangeBombAim); } public function onChangeBombAim(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.abs((_arg1 - _arg2)); m_bombAimMoving = (m_bombAimMoving + 1); m_main.monkey_under.setFrame(((_arg1 < (-(Math.PI) / 2))) ? 2 : 1); m_main.lever_underworld.rotation = (Math.sin((_arg1 / 2)) * 12); } public function render(_arg1:int, _arg2:Number):void{ m_bonusTime.render(); m_bombLauncher.render(_arg1, _arg2); m_rockBox.render(_arg1, _arg2); m_cursor.y = m_cursorYF.value; } public function tick(_arg1:int, _arg2:int, _arg3:int):void{ m_bonusTime.tick(); if (m_bombAimMoving > 0){ m_main.rep_under.visible = ((_arg1 % 3) == 0); m_bombAimMoving--; }; if (!(m_isTimeStarted)){ m_cursor.visible = true; m_isTimeStarted = true; m_bonusTime.start(onTimeUp); }; if (m_leaveAt == _arg1){ m_externalListener.onLeaveBonusMode(m_rockBox.getBonusSuccessLevel(), 0); m_bonusTime.reset(); return; }; m_rockBox.tick(_arg1); m_cursorYF.set(m_rockBox.getCursorPos()); if (((isBonusLevelCompleted) && ((m_leaveAt == -1)))){ m_externalListener.onBeforeLeaveBonusMode(m_rockBox.getBonusSuccessLevel(), 0); m_rockBox.blowAllBombs(); m_leaveAt = ((_arg1 + (GameBase.TICK_RATE * 4)) + 8); m_bonusTime.pause(); }; if (m_rockBox.isExplosion()){ if (!(m_explosion.visible)){ m_explosion.start(); m_explosion.visible = true; m_leaveAt = (_arg1 + 3); return; }; }; m_bombLauncher.tick(_arg1, _arg2, _arg3); } } }//package junglebubble
Section 28
//BonusGameSurvivor (junglebubble.BonusGameSurvivor) package junglebubble { import flash.display.*; import timing.*; import geom.*; import anim.*; import math.*; public class BonusGameSurvivor implements BonusGame { private var m_game:Game; private var m_scrollPos:int; private var m_mineCollidabelList:Array; private var m_isTimeStarted:Boolean; public var isBonusLevelCompleted:Boolean; private var m_isTimeOver:Boolean; private var m_aimCursor:AimCursor; private var m_tick:int; private var m_externalListener:BubbleListener; private var m_advanceDelay:int; private var m_effects:DisplayObjectContainer; private var m_bonusTime:BonusClock; private var m_explosion:BaseFlare; private var m_main:GameAssembly; private var m_scroller:Interpolator; private var m_bubbleBox:BubbleBox; private var m_subSuccessLevel:Number; private var m_dropLayer:MovieClip; private var m_scrollOffset:int; private var m_successLevel:int; private var m_startTick:int; private var m_bubbleLauncher:BubbleLauncher; private var m_aimBubble:Bubble; private var m_rng:MtRandom; private var m_cursor:MeterArrow; private var m_tickList:Array; private var m_cursorY:int; private var m_cursorYF:IFloat; private var m_dynamiteBlasted:Boolean; private var m_nextBubble:Bubble; private var m_bubbleAimMoving:int; private var m_leaveAt:int; private static const COLORS:Array = [1, 2, 4]; private static const numColor:int = 3; public function BonusGameSurvivor(_arg1:Game, _arg2:DisplayObjectContainer, _arg3:BubbleListener, _arg4:GameAssembly, _arg5:Array){ m_game = _arg1; m_externalListener = _arg3; m_effects = _arg2; m_cursor = new MeterArrow(); m_cursor.x = 700; m_cursor.visible = false; m_effects.addChild(m_cursor); m_dropLayer = new MovieClip(); m_mineCollidabelList = new Array(); m_mineCollidabelList.push(new Line(372, -2500, 372, 600)); m_mineCollidabelList.push(new Line(648, -2500, 648, 600)); m_main = _arg4; m_tickList = _arg5; m_aimCursor = m_effects["aim_under"]; m_bonusTime = m_main.bonus_time; m_bonusTime.setGame(_arg1); m_bubbleLauncher = m_main.bubble_launcher_under; m_main.top_layer.under.addChild(m_dropLayer); m_explosion = BaseFlare(m_main.big_explosion); m_explosion.visible = false; } public function onTimeUp():void{ m_isTimeOver = true; } public function onChangeBubbleAim(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.abs((_arg1 - _arg2)); m_bubbleAimMoving++; m_main.monkey_under.setFrame(((_arg1 < (-(Math.PI) / 2))) ? 2 : 1); m_main.lever_underworld.rotation = (Math.sin((_arg1 / 2)) * 12); } public function init(_arg1:int):void{ isBonusLevelCompleted = false; m_startTick = -1; m_successLevel = 0; m_subSuccessLevel = 0; m_cursorY = (390 + 31); m_cursorYF = new IFloat(m_cursorY); m_leaveAt = -1; m_isTimeStarted = false; var _local2:* = 80; var _local3:* = m_game.getSharedData(); m_bubbleBox = new BubbleBox(m_game, _local3, _arg1, _local2, COLORS, 10); m_rng = new MtRandom((_arg1 + 1)); m_advanceDelay = 0; m_scrollPos = 0; m_bubbleBox.setCanSpawnBonus(false); m_bubbleBox.setAllowedBottomRow(true); m_bubbleBox.setUseManualScrolling(true); m_bubbleBox.setScoringEnabled(false); m_main.rock_base.addChild(m_bubbleBox); m_bubbleBox.setDropBubbleContainer(m_dropLayer); m_main.bubble_frame.gotoAndStop(2); m_main.bubble_frame.visible = false; m_explosion.setFrameRate(60); m_explosion.gotoAndStop(1); m_explosion.visible = false; m_dynamiteBlasted = false; m_main.bubble_launcher_under.visible = true; m_main.bomb_launcher.visible = false; m_main.bubble_frame.visible = true; m_aimCursor.setAncorPosition(508, 540); m_aimCursor.setVisibleLimit(330, 4, 690, 560); m_aimCursor.setArrowLength(88); m_aimCursor.setRadLimits(-3.1414, 0.0001); m_aimCursor.visible = false; nextBubble(); m_main.rock_base.addChild(m_aimBubble.bubble); m_main.bubble_launcher_obj_shadow.visible = true; m_bubbleLauncher.setBubble(m_aimBubble); m_bubbleLauncher.setReloadTime(12); m_bubbleLauncher.setRadLimits(-3.1414, 0.0001); m_bubbleLauncher.setAimChangeCallback(onChangeBubbleAim); m_scrollOffset = m_bubbleBox.bubbleHeight(); m_bubbleBox.setScrollOffset((-(m_scrollOffset) + (BubbleBox.radiusY * 3))); m_bubbleBox.tick(1); m_bubbleBox.render(1, 0); m_bubbleBox.tick(1); m_bubbleBox.render(1, 0); m_bubbleBox.tick(1); m_bubbleBox.render(1, 0); } public function render(_arg1:int, _arg2:Number):void{ m_aimCursor.update(_arg1, _arg2); m_bonusTime.render(); m_bubbleLauncher.render(_arg1, _arg2); if (m_leaveAt == -1){ m_bubbleBox.render(_arg1, _arg2); }; m_cursor.y = m_cursorYF.value; } public function tick(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:int; var _local5:int; var _local6:*; m_tick = _arg1; m_bonusTime.tick(); if (m_bubbleAimMoving > 0){ m_main.rep_under.visible = ((_arg1 % 3) == 0); m_bubbleAimMoving--; }; if (!(m_isTimeStarted)){ m_aimCursor.visible = true; m_cursor.start(); m_cursor.visible = true; m_isTimeStarted = true; m_isTimeOver = false; m_startTick = _arg1; m_bonusTime.start(onTimeUp); }; m_aimCursor.tick(_arg2, _arg3); if (m_leaveAt == _arg1){ m_externalListener.onLeaveBonusMode((m_dynamiteBlasted) ? 0 : m_successLevel, (m_dynamiteBlasted) ? 0 : m_subSuccessLevel); return; }; if (m_leaveAt == -1){ m_bubbleBox.tick(_arg1); if (m_bubbleBox.getNumVisibleBubble() == 0){ m_cursorY = 31; isBonusLevelCompleted = true; }; if (m_advanceDelay > 0){ m_advanceDelay--; } else { _local6 = (GameBase.TICK_RATE * 2); m_advanceDelay = (_local6 - (_local6 / 4)); m_scroller = new EaseOutQuadInterpolator(m_scrollPos, (m_scrollPos + BubbleBox.radiusY), (_local6 / 4)); }; if (((!(isBonusLevelCompleted)) && (!((m_scroller == null))))){ m_scroller.update(); m_scrollPos = m_scroller.getValue(); if (m_scroller.isDone()){ m_scroller = null; }; }; _local4 = ((m_scrollPos - m_scrollOffset) + (BubbleBox.radiusY * 3)); m_bubbleBox.setScrollOffset(_local4); _local5 = m_bubbleBox.bubbleHeight(); if (!(isBonusLevelCompleted)){ m_cursorY = ((_local5 + _local4) - (BubbleBox.radiusY / 2)); }; if (m_cursorY < 31){ m_cursorY = 31; }; if (m_cursorY > 421){ m_cursorY = 421; }; if (m_cursorY < 165){ m_subSuccessLevel = (1 - ((m_cursorY - 31) / (165 - 31))); m_successLevel = 3; } else { if (m_cursorY < 291){ m_subSuccessLevel = (1 - ((m_cursorY - 165) / (291 - 165))); m_successLevel = 2; } else { m_subSuccessLevel = (1 - ((m_cursorY - 291) / (421 - 291))); m_successLevel = 1; }; }; if (((!(m_dynamiteBlasted)) && (((_local5 + _local4) >= 464)))){ m_game.getMusicManager().get("bonus_loop3").fadeToAndStop(0, 500); m_game.getSoundManager().get("explosion").play(); isBonusLevelCompleted = true; m_dynamiteBlasted = true; m_explosion.visible = true; m_explosion.start(); m_bonusTime.pause(); m_leaveAt = (m_tick + 3); }; if (((m_isTimeOver) && ((m_bubbleBox.getNumLiveBubbles() == 0)))){ isBonusLevelCompleted = true; }; if (((isBonusLevelCompleted) && ((m_leaveAt == -1)))){ m_bubbleBox.popLiveBubbles(); m_game.getMusicManager().get("bonus_loop3").fadeToAndStop(0, 500); m_externalListener.onBeforeLeaveBonusMode((m_dynamiteBlasted) ? 0 : m_successLevel, (m_dynamiteBlasted) ? 0 : m_subSuccessLevel); m_leaveAt = ((_arg1 + (GameBase.TICK_RATE * 4)) + 8); m_bonusTime.pause(); }; }; m_cursorYF.set(m_cursorY); m_bubbleLauncher.tick(_arg1, _arg2, _arg3); } public function onMouseDown():void{ if (((((m_isTimeOver) || (isBonusLevelCompleted))) || (m_dynamiteBlasted))){ return; }; if (m_bubbleLauncher.fire()){ m_game.getSoundManager().get("shot1").play(); m_bubbleBox.addLiveBubble(m_aimBubble); m_tickList.push(m_aimBubble); nextBubble(); }; } public function tidy(_arg1:Boolean):void{ if (_arg1){ m_game.getMusicManager().get("bonus_loop3").fadeToAndStop(0, 100); return; }; m_cursor.stop(); m_cursor.visible = false; if (m_nextBubble){ m_nextBubble.remove(); m_nextBubble = null; }; if (m_aimBubble){ m_aimBubble.remove(); m_aimBubble = null; }; m_bubbleBox.destroy(); m_bonusTime.reset(); } private function nextBubble():void{ if (m_nextBubble == null){ m_nextBubble = new Bubble(); m_nextBubble.assureFull(); m_nextBubble.setCollidableList(m_mineCollidabelList); m_nextBubble.setPosition(508, 540); m_nextBubble.setColorIndex(COLORS[m_rng.nextInt(COLORS.length)]); }; var _local1:Bubble = new Bubble(); _local1.assureFull(); _local1.setCollidableList(m_mineCollidabelList); var _local2:MovieClip = MovieClip(m_main["under_bubble_1"]); var _local3:int = _local2.x; var _local4:int = (_local2.y - 620); _local1.setPosition(_local3, _local4); _local1.setColorIndex(COLORS[m_rng.nextInt(COLORS.length)]); m_main.rock_base.addChild(_local1.bubble); m_aimBubble = m_nextBubble; m_aimBubble.animateSmallJump(); m_tickList.push(m_aimBubble); m_nextBubble = _local1; m_nextBubble.animateIntoView(); m_tickList.push(m_nextBubble); m_bubbleLauncher.setBubble(m_aimBubble); } } }//package junglebubble
Section 29
//BonusIntroSign (junglebubble.BonusIntroSign) package junglebubble { import flash.display.*; import flash.events.*; import localization.*; import flash.utils.*; public class BonusIntroSign extends MovieClip { private var m_startTime:int; private var m_lastFrame:int; private var m_removeAt:int; private var m_game:Game; private var m_isFinished:Boolean; private var m_numTicksLeft:int; private var m_dir:int; public var sign:MovieClip; private var m_step:Number; public function BonusIntroSign(){ gotoAndStop(1); sign.gotoAndStop(1); visible = false; m_isFinished = false; } public function setGame(_arg1:Game):void{ m_game = _arg1; } public function isFinished():Boolean{ return (m_isFinished); } public function show(_arg1:int):void{ m_isFinished = false; m_numTicksLeft = (GameBase.TICK_RATE * 4); m_startTime = -1; m_lastFrame = -1; m_step = ((1 / 60) * 1000); m_removeAt = -1; m_dir = 1; visible = true; sign.gotoAndStop((_arg1 + 1)); sign.title_txt.text = I18n.getString((("bonus_mode_" + (_arg1 + 1)) + "_head")); sign.label_txt.text = I18n.getString((("bonus_mode_" + (_arg1 + 1)) + "_content")); addEventListener(Event.ENTER_FRAME, animateAppear); m_game.getSoundManager().get("sign_appear").play(0.7); } public function animateAppear(_arg1:Event):void{ var _local2:int; _local2 = getTimer(); if ((((((m_dir == 0)) && (!((m_removeAt == -1))))) && ((_local2 > m_removeAt)))){ m_dir = -1; m_startTime = -1; m_game.getSoundManager().get("sign_appear").play(0.7); }; if (m_dir == 0){ return; }; if (m_startTime < 0){ visible = true; m_startTime = _local2; }; var _local3:uint = int(Math.round((((_local2 - m_startTime) / m_step) + 1))); if (m_dir > 0){ if (_local3 > 25){ if (m_removeAt == -1){ m_dir = 0; m_removeAt = (_local2 + 3000); }; _local3 = 25; }; } else { if (m_dir < 0){ _local3 = (_local3 + 25); if (_local3 > 50){ stop(); visible = false; removeEventListener(Event.ENTER_FRAME, animateAppear); }; }; }; if (_local3 != m_lastFrame){ gotoAndStop(_local3); m_lastFrame = _local3; }; } public function tick():void{ if (m_numTicksLeft > 0){ m_numTicksLeft--; } else { m_isFinished = true; }; } } }//package junglebubble
Section 30
//BonusSign (junglebubble.BonusSign) package junglebubble { import sfx.*; import flash.display.*; import flash.text.*; import timing.*; import anim.*; import localization.*; public class BonusSign extends MovieClip { private var m_game:Game; public var bonus_txt:TextField; private var m_bubbler:Number; private var m_bubbles:Array; public var stars:bonusmode_stars; private var m_anim:Interpolator; private var m_bubbleColor:int; private var m_bubbleYF1:IFloat; private var m_y:int; private var m_reverseAt:int; private var m_fy:IFloat; private var m_bubbleYF2:IFloat; private var m_bonusIdx:int; private var m_dir:int; public function BonusSign(){ m_y = -160; m_fy = new IFloat(m_y); m_bubbles = new Array(); m_bubbles.push(new BubbleClip(null)); m_bubbles.push(new BubbleClip(null)); m_bubbles.push(new BubbleClip(null)); addChild(m_bubbles[0]); addChild(m_bubbles[1]); addChild(m_bubbles[2]); m_bubbles[0].x = 90; m_bubbles[1].x = (90 + 60); m_bubbles[2].x = ((90 + 60) + 60); m_bubbleYF1 = new IFloat(0); m_bubbleYF2 = new IFloat(0); m_reverseAt = -1; } public function render():void{ var _local1:*; var _local2:* = m_fy.value; if (y != _local2){ y = _local2; }; if (visible){ _local1 = m_bubbleYF1.value; m_bubbles[0].y = _local1; m_bubbles[2].y = _local1; m_bubbles[1].y = m_bubbleYF2.value; }; } public function tick(_arg1:int):void{ var _local2:SoundManager; if (m_reverseAt == _arg1){ m_anim = new EaseOutQuadInterpolator(190, -160, 15); m_game.getSoundManager().get("sign_appear").play(0.7); }; if (m_dir == -1){ _local2 = m_game.getMusicManager(); if (((!(_local2.get("bonus_start").isPlaying())) && (!(_local2.get(("bonus_loop" + (m_bonusIdx + 1))).isPlaying())))){ _local2.get(("bonus_loop" + (m_bonusIdx + 1))).loop(0.75); }; }; if (m_anim){ m_anim.update(); m_y = m_anim.getValue(); if (m_anim.isDone()){ m_anim = null; if (m_dir == -1){ visible = false; m_dir = 0; }; if (m_dir == 1){ m_game.getMusicManager().get("bonus_start").play(); m_dir = -1; stars.start(); m_reverseAt = (_arg1 + 75); }; }; }; if (visible){ m_bubbleYF1.set(((Math.sin(m_bubbler) * 15) + 95)); m_bubbleYF2.set(((Math.sin((m_bubbler + Math.PI)) * 15) + 95)); m_bubbler = (m_bubbler + 0.12); }; m_fy.set(m_y); } public function setGame(_arg1:Game):void{ m_game = _arg1; } public function show(_arg1:int, _arg2:int):void{ m_bonusIdx = _arg2; m_bubbleColor = _arg1; m_bubbles[0].ball.gotoAndStop(_arg1); m_bubbles[1].ball.gotoAndStop(_arg1); m_bubbles[2].ball.gotoAndStop(_arg1); m_dir = 1; visible = true; m_bubbler = 0; m_anim = new EaseInQuadInterpolator(-160, 190, 15); m_game.getSoundManager().get("sign_appear").play(0.7); bonus_txt.text = I18n.getString("bonus_mode_title"); } } }//package junglebubble
Section 31
//Bubble (junglebubble.Bubble) package junglebubble { import timing.*; import geom.*; import flash.events.*; import flash.geom.*; import anim.*; import math.*; import flash.utils.*; public class Bubble extends TickObject { private var m_oldFx:IFloat; private var m_oldFy:IFloat; private var m_scaleVal:IFloat; public var bubble:BubbleClip; private var m_oldColor:int; private var m_color:int; public var isStuck:Boolean; public var isBonus:Boolean; private var m_oldPosition:Vec2D; public var arrayX:int; public var arrayY:int; private var m_oldMovement:Vec2D; private var m_animX:Interpolator; private var m_collidableList:Array; private var m_position:Vec2D; private var m_movement:Vec2D; public var suggestX:Number; public var suggestY:Number; private var m_jumpPtr1:int; private var m_fx:IFloat; private var m_fy:IFloat; private var m_oldSpeed:Number; private var m_jumpPtr2:int; private var m_flashR:Number; private var m_speed:Number; private var m_flashT:int; private var m_scale:Interpolator; private var m_flashStart:int; private static const SPEED:int = 25; private static const RADIUS:int = 8; public function Bubble(){ m_position = new Vec2D(); m_speed = (SPEED * 1.25); m_jumpPtr1 = -1; m_jumpPtr2 = -1; m_oldColor = -1; suggestX = -1; suggestY = -1; } public function remove():void{ isStuck = false; isRemoving = true; if (bubble != null){ bubble.stopAnim(); bubble.removeEventListener(Event.ENTER_FRAME, animateBonusFlash); if (bubble.parent != null){ bubble.transform.colorTransform = new ColorTransform(); bubble.transform_anim.visible = false; bubble.transform_anim.stop(); bubble.bonus_sparkle.visible = false; bubble.bonus_sparkle.stop(); bubble.scaleX = 1; bubble.scaleY = 1; bubble.parent.removeChild(bubble); }; }; bubble = null; } public function assureFull():void{ if (bubble == null){ bubble = new BubbleClip(this); bubble.ball.gotoAndStop(m_color); }; if (!(m_scaleVal)){ m_scaleVal = new IFloat(0); }; } public function promoteToBonus():void{ isBonus = true; m_oldColor = m_color; setColorIndex(6); if (bubble == null){ assureFull(); }; var _local1:* = ((((arrayY & 1) == 0)) ? (BubbleBox.radiusX / 2) : 0 + (arrayX * BubbleBox.radiusX)); var _local2:* = (arrayY * BubbleBox.radiusY); setPosition(_local1, _local2); bubble.transform_anim.visible = true; bubble.transform_anim.start(); bubble.bonus_sparkle.visible = true; bubble.bonus_sparkle.start(); m_flashT = -1; m_flashStart = (m_flashT + 2500); m_flashR = (Math.PI / 2); if (bubble){ bubble.addEventListener(Event.ENTER_FRAME, animateBonusFlash); }; } public function animateLeft():void{ isRemoving = false; m_animX = new EaseOutQuadInterpolator(m_position.x, (m_position.x - 39), 6); } public function disableBubble():void{ if (bubble != null){ bubble.removeEventListener(Event.ENTER_FRAME, animateBonusFlash); if (bubble.parent != null){ bubble.transform.colorTransform = new ColorTransform(); bubble.transform_anim.visible = false; bubble.transform_anim.stop(); bubble.bonus_sparkle.visible = false; bubble.bonus_sparkle.stop(); bubble.scaleX = 1; bubble.scaleY = 1; m_oldColor = m_color; setColorIndex(7); }; }; } override public function render(_arg1:int, _arg2:Number):void{ var _local3:*; bubble.x = m_fx.value; bubble.y = m_fy.value; if (m_scale){ _local3 = m_scaleVal.value; bubble.scaleX = _local3; bubble.scaleY = _local3; }; } public function stick(_arg1:int, _arg2:int):void{ m_movement = null; setPosition(_arg1, _arg2); isStuck = true; isRemoving = true; } public function setCollidableList(_arg1:Array){ m_collidableList = _arg1; } public function getColorIndex():int{ return (m_color); } 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; } 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; var _local12:*; if (isStuck){ isRemoving = true; }; if (m_jumpPtr1 != -1){ m_position.x = ((-(m_jumpPtr1) * 5.5) + 562); m_position.y = ((XPMath.sin((Math.PI + (((Math.PI / 12) * m_jumpPtr1) * 1.09))) * 50) + 555); m_jumpPtr1++; if (m_jumpPtr1 > 10){ setPosition(508, 540); isRemoving = true; m_jumpPtr1 = -1; }; }; if (m_jumpPtr2 != -1){ m_position.x = ((-(m_jumpPtr2) * 10.79) + 629); m_position.y = ((XPMath.sin((Math.PI + (((Math.PI / 12) * m_jumpPtr2) * 0.86))) * 100) + 555); m_jumpPtr2++; if (m_jumpPtr2 > 10){ gotoAimPosition(); isRemoving = true; m_jumpPtr2 = -1; }; }; 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); }; if (m_animX){ if (m_animX.isDone()){ setPosition(m_animX.getTargetValue(), m_position.y); m_animX = null; isRemoving = true; } else { m_animX.update(); m_position.x = m_animX.getValue(); }; }; if (m_scale){ if (m_scale.isDone()){ _local12 = m_scale.getTargetValue(); bubble.scaleX = _local12; bubble.scaleY = _local12; m_scale = null; isRemoving = true; } else { m_scale.update(); m_scaleVal.set(m_scale.getValue()); }; }; m_fx.set(m_position.x); m_fy.set(m_position.y); } public function gotoPreviewPosition():void{ setPosition(628, 555); } public function gotoAimPosition():void{ setPosition(521, 477); } public function animateIntoView():void{ m_scale = new EaseOutQuadInterpolator(0, 1, 15); } public function fire(_arg1:Number):void{ m_movement = new Vec2D(XPMath.cos(_arg1), XPMath.sin(_arg1)); m_jumpPtr1 = -1; m_jumpPtr2 = -1; } 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 getX():int{ return (m_position.x); } public function getY():int{ return (m_position.y); } 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 setColorIndex(_arg1:int):void{ m_color = _arg1; if (bubble){ bubble.ball.gotoAndStop(_arg1); }; } public function animateLongJump():void{ isRemoving = false; m_jumpPtr2 = 0; } public function moving():Boolean{ return (!((m_movement == null))); } public function stopMovement():void{ m_movement = null; } public function animateBonusFlash(_arg1:Event):void{ var _local2:ColorTransform; var _local3:ColorTransform; var _local4:Number; if (!(bubble)){ bubble.removeEventListener(Event.ENTER_FRAME, animateBonusFlash); return; }; var _local5:int = getTimer(); if (_local5 < m_flashStart){ return; }; if (m_flashT == -1){ m_flashT = _local5; }; var _local6:int = (_local5 - m_flashT); m_flashT = _local5; m_flashR = (m_flashR + (_local6 * 0.02)); if (m_flashR > ((Math.PI / 2) + (Math.PI * 2))){ m_flashStart = (_local5 + 2000); m_flashR = (Math.PI / 2); m_flashT = -1; bubble.scaleX = 1; bubble.scaleY = 1; bubble.transform.colorTransform = new ColorTransform(); } else { _local2 = new ColorTransform(); _local3 = new ColorTransform(); _local2.color = 0xFFFFFF; _local4 = Math.sin(m_flashR); bubble.transform.colorTransform = interpolateColor(_local2, _local3, ((_local4 * 0.5) + 0.5)); bubble.scaleX = ((_local4 * 0.25) + 1); bubble.scaleY = ((_local4 * 0.25) + 1); }; } 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 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; } public function disableBonusMode():void{ if (isBonus){ isBonus = false; bubble.removeEventListener(Event.ENTER_FRAME, animateBonusFlash); bubble.transform.colorTransform = new ColorTransform(); bubble.transform_anim.visible = false; bubble.transform_anim.stop(); bubble.bonus_sparkle.visible = false; bubble.bonus_sparkle.stop(); bubble.scaleX = 1; bubble.scaleY = 1; setColorIndex(m_oldColor); m_oldColor = -1; }; } public function explode():void{ isStuck = false; if (bubble != null){ if (bubble.parent != null){ bubble.startExplosion(); }; bubble.removeEventListener(Event.ENTER_FRAME, animateBonusFlash); }; } 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 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); }; bubble.removeEventListener(Event.ENTER_FRAME, animateBonusFlash); }; } public function animateSmallJump():void{ isRemoving = false; m_jumpPtr1 = 0; } public function setPositionLimited(_arg1:int, _arg2:int):void{ m_position.x = _arg1; m_position.y = _arg2; } } }//package junglebubble
Section 32
//BubbleBox (junglebubble.BubbleBox) package junglebubble { import sfx.*; import flash.display.*; import timing.*; import geom.*; import anim.*; import math.*; import flash.utils.*; public class BubbleBox extends MovieClip { private var m_listenerId:int; private var m_isInBonusLevel:Boolean; private var m_disabled:Boolean; private var m_bubbleRng:MtRandom; private var m_tick:int; private var m_bottomOffset:int; private var m_bonusBubbleRng:MtRandom; private var m_height:int; private var m_viewBottom:Number;// = 315 private var m_isAllowedBottomRow:Boolean; private var m_listener:Object; private var m_numVisibleBubble:int; private var m_consecutiveBursts:int; private var m_numBubblesDestroyed:int; private var m_dropLayer:DisplayObjectContainer; private var m_offsetX:int; private var m_bonusLevelStartDelay:int; private var m_viewOffsetLast:Number; private var m_numBubble:int; private var m_useManualScrolling:Boolean; private var m_viewOffsetIp:IFloat; private var m_scrollStartDelay:int; private var m_numBonusBubbleSpawn:int; private var m_disableRowCount:int; private var m_bubbles:Array; private var m_spawnBonusEnable:Boolean; private var m_game:Game; private var m_viewTop:int; private var m_hasBonusBubble:Boolean; private var m_viewOffset:Number; private var m_numRows; private var m_liveBubble:Array; private var m_sharedData:SharedData; private var m_useScrollDelay:Boolean; private var m_scroller:Interpolator; private var m_isScoreEnable:Boolean; public static const radiusX:int = 38; public static const radiusY:int = 35; 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){ var _local7:int; var _local8:Boolean; var _local9:int; var _local10:int; var _local11:Bubble; var _local12:*; var _local13:*; super(); var _local14:* = getTimer(); m_game = _arg1; m_disabled = false; m_disableRowCount = -1; m_numVisibleBubble = 0; m_useScrollDelay = true; m_isInBonusLevel = false; m_spawnBonusEnable = true; 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_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 _local15:* = 0; m_consecutiveBursts = 0; m_bonusBubbleRng = new MtRandom(m_bubbleRng.nextInt(2147483647)); _local7 = 0; while (_local7 < m_bubbles.length) { _local8 = ((_local7 & 1) == 0); _local9 = (_local8) ? 7 : 8; m_bubbles[_local7] = new Array(_local9); if (_local7 < (_arg4 - 2)){ _local10 = 0; while (_local10 < _local9) { _local11 = new Bubble(); _local11.arrayX = _local10; _local11.arrayY = _local7; _local11.isStuck = true; _local12 = ((_local8) ? (radiusX / 2) : 0 + (_local10 * radiusX)); _local13 = (_local7 * radiusY); _local11.setPositionLimited(_local12, _local13); _local11.setColorIndex(_arg5[m_bubbleRng.nextInt(_arg5.length)]); m_bubbles[_local7][_local10] = _local11; _local15++; _local10++; }; }; _local7++; }; m_numRows = m_bubbles.length; m_viewOffset = -(bubbleHeight()); y = m_viewOffset; m_offsetX = 376; x = m_offsetX; m_viewOffsetLast = m_viewOffset; m_viewOffsetIp = new IFloat(m_viewOffset); var _local16:* = getTimer(); } public function setCanSpawnBonus(_arg1:Boolean):void{ m_spawnBonusEnable = _arg1; } public function getUniqueColors():Array{ var _local1:int; var _local2:int; var _local3:Boolean; var _local4:int; var _local6:int; var _local5:* = new Array(); while (_local6 < m_bubbles.length) { _local1 = m_bubbles[_local6].length; while (_local1--) { if (m_bubbles[_local6][_local1] != null){ _local2 = m_bubbles[_local6][_local1].getColorIndex(); if (_local2 != 6){ _local3 = false; _local4 = 0; while (((!(_local3)) && ((_local4 < _local5.length)))) { if (_local5[_local4] == _local2){ _local3 = true; }; _local4++; }; if (!(_local3)){ _local5.push(_local2); }; if (_local5.length == 5){ return (_local5); }; }; }; }; _local6++; }; if (_local5.length == 0){ _local5.push(7); }; return (_local5); } public function addLiveBubble(_arg1:Bubble):void{ m_liveBubble.push(_arg1); } 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); } function testPoint(_arg1:Pt):Boolean{ var _local2:int; var _local3:int; var _local4:int; var _local5:Array; var _local6:*; var _local7:*; var _local8:* = ((((_arg1.y & 1) == 0)) ? (radiusX / 2) : 0 + (_arg1.x * radiusX)); var _local9:* = (_arg1.y * radiusY); _local2 = Math.min((m_bubbles.length - 1), (_arg1.y + 1)); _local4 = Math.max(0, (_arg1.y - 2)); while (_local2 >= _local4) { _local5 = m_bubbles[_local2]; _local3 = _local5.length; while (_local3--) { if (_local5[_local3] != null){ _local6 = (_local8 - _local5[_local3].getX()); _local7 = (_local9 - _local5[_local3].getY()); if (((_local6 * _local6) + (_local7 * _local7)) <= (20 * 20)){ return (true); }; }; }; _local2--; }; return (false); } public function getFirstRowWithBubbles():int{ var _local1:int; var _local2:int = m_bubbles.length; while (_local2--) { _local1 = m_bubbles[_local2].length; while (_local1--) { if (m_bubbles[_local2][_local1] != null){ return (_local2); }; }; }; return (0); } public function canFire():Boolean{ return ((m_bonusLevelStartDelay == -1)); } public function getNumVisibleBubble():int{ return (m_numVisibleBubble); } private function attachBubble(_arg1:Bubble):void{ var _local2:BubbleListener; var _local6:Boolean; var _local7:Boolean; if (_arg1 == null){ return; }; var _local3:* = 0; if ((_arg1.suggestY & 1) == 0){ _local3 = (radiusX / 2); }; var _local4:* = (_local3 + (_arg1.suggestX * radiusX)); var _local5:* = (_arg1.suggestY * radiusY); if ((((_arg1.suggestY < 0)) || (((!(m_isAllowedBottomRow)) && ((_arg1.suggestY == (m_bubbles.length - 1))))))){ _arg1.bounceOff(); _arg1 = null; return; }; _arg1.arrayX = _arg1.suggestX; _arg1.arrayY = _arg1.suggestY; _arg1.stick(_local4, _local5); m_bubbles[_arg1.suggestY][_arg1.suggestX] = _arg1; bubbleInView(_arg1); if (!(m_disabled)){ _local6 = testForExpansion(_arg1.suggestX, _arg1.suggestY); _local7 = testForDrop(); }; var _local8:SoundManager = m_game.getSoundManager(); if (((_local7) && (_local6))){ _local8.get("shot3").play(); } else { if (((!(_local7)) && (_local6))){ _local8.get("shot2").play(); } else { _local8.get("shot4").play(); }; }; var _local9:* = false; var _local10:int = m_bubbles[(m_height - 1)].length; while (_local10--) { if (m_bubbles[(m_height - 1)][_local10] != null){ _local9 = true; break; }; }; if (_local9){ for each (_local2 in m_listener) { _local2.onBubbleOverflow(); }; }; } public function getNumRows():int{ return (m_numRows); } public function setUseManualScrolling(_arg1:Boolean):void{ m_useManualScrolling = _arg1; } 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); } public function visitBonusLevel():void{ m_isInBonusLevel = true; } public function disableBubbles():void{ m_disableRowCount = getFirstRowWithBubbles(); m_disabled = true; } function getRandomVisibleBubble():Bubble{ var _local1:int; var _local2:Bubble; var _local3:Pt; var _local4:Array = new Array(); var _local5:int = m_bubbles.length; while (_local5--) { _local1 = m_bubbles[_local5].length; while (_local1--) { _local2 = m_bubbles[_local5][_local1]; if (!((((_local2 == null)) || ((_local2.bubble == null))))){ if (!((((_local2.arrayY == 0)) || (_local2.isBonus)))){ _local3 = matrixToScreen(_local2.arrayX, _local2.arrayY); if (_local3.y >= radiusY){ _local4.push(_local2); }; }; }; }; }; if (_local4.length == 0){ return (null); }; var _local6:int = (m_bonusBubbleRng.nextInt(0xA000) % _local4.length); return (Bubble(_local4[_local6])); } public function testForDrop():Boolean{ var _local1:int; var _local2:int; var _local3:Bubble; var _local4:Bubble; var _local5:Bubble; var _local6:int; var _local7:int; var _local8:Array; var _local9:int; var _local10:int; var _local11:int; var _local12:*; var _local13:*; var _local14:BubbleListener; var _local15:*; var _local22:Boolean; var _local24:int; var _local16:Array = new Array(); var _local17:int = getTimer(); _local2 = m_bubbles[0].length; while (_local2--) { if (m_bubbles[0][_local2] != null){ _local16.push(m_bubbles[0][_local2]); }; }; var _local18:Object = {}; var _local19:* = {}; _local1 = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { _local4 = m_bubbles[_local1][_local2]; if (_local4 != null){ _local19[((_local2 << 16) | _local1)] = _local4; }; }; }; var _local20:int = m_bubbles.length; while (_local16.length > 0) { _local5 = _local16.pop(); _local6 = _local5.arrayX; _local7 = _local5.arrayY; _local8 = ((_local7 & !((1 == 0)))) ? m_offsetEven : m_offsetOdd; _local1 = 6; while (_local1--) { _local9 = (_local6 + _local8[_local1][0]); _local10 = (_local7 + _local8[_local1][1]); _local11 = ((_local9 << 16) | _local10); if (!(_local18[_local11])){ _local18[_local11] = 1; if (!((((((((_local9 < 0)) || ((_local10 < 0)))) || ((_local10 >= _local20)))) || ((_local9 >= m_bubbles[_local10].length))))){ if (m_bubbles[_local10][_local9]){ _local16.push(m_bubbles[_local10][_local9]); delete _local19[_local11]; }; }; }; }; }; var _local21:Array = [0, 50, 100, 150, 200, 300, 400, 500, 650, 800, 950, 1100, 1300, 1500, 1700, 2000]; var _local23:int = 1; for each (_local3 in _local19) { if (_local3.arrayY > 0){ m_bubbles[_local3.arrayY][_local3.arrayX] = null; if (_local3.bubble == null){ _local12 = (((_local3.arrayY)!=0) ? (radiusX / 2) : 0 + (_local3.arrayX * radiusX)); _local13 = (_local3.arrayY * radiusY); _local3.assureFull(); _local3.setPosition(_local12, _local13); if (m_dropLayer){ m_dropLayer.addChild(_local3.bubble); } else { addChild(_local3.bubble); }; } else { if (m_dropLayer){ m_dropLayer.addChild(_local3.bubble); }; }; if (_local3.isBonus){ _local23 = _local3.getColorIndex(); _local22 = true; }; m_numBubblesDestroyed++; _local24++; _local3.drop(0, 0, true, _local3.isBonus); }; }; if (_local24 != 0){ for each (_local14 in m_listener) { _local14.onBubbleRemove(); }; }; if (m_isScoreEnable){ _local15 = _local21[Math.min((_local21.length - 1), _local24)]; m_sharedData.score = (m_sharedData.score + _local15); }; if (_local22){ m_game.getSoundManager().get("bonusdrop").play(); m_bonusLevelStartDelay = 25; }; return ((_local24 > 0)); } public function getNumLiveBubbles():int{ return (m_liveBubble.length); } public function setAllowedBottomRow(_arg1:Boolean):void{ m_isAllowedBottomRow = _arg1; } public function visitBonusLevelEnd():void{ m_isInBonusLevel = false; m_hasBonusBubble = hasBonusBubble(); } public function setScoringEnabled(_arg1:Boolean):void{ m_isScoreEnable = _arg1; } public function addListener(_arg1:BubbleListener):String{ var _local2:String = ("@" + ++m_listenerId); m_listener[_local2] = _arg1; return (_local2); } public function setScrollOffset(_arg1:int):void{ if (m_useManualScrolling){ m_viewOffset = _arg1; }; } 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 tick(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:BubbleListener; var _local5:Boolean; var _local6:Boolean; var _local7:Bubble; var _local8:int; var _local9:int; var _local10:Number; var _local14:Bubble; var _local15:Bubble; var _local16:Array; var _local17:Boolean; var _local18:Bubble; var _local19:int; var _local11:* = undefined; var _local12:* = undefined; var _local13:* = undefined; var _local20:* = undefined; 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 = (_local2 + 1); }; }; _local3 = m_bubbles[m_disableRowCount].length; while ((_local3 = (_local3 - 1))) { if (m_bubbles[m_disableRowCount][_local3] != null){ m_bubbles[m_disableRowCount][_local3].disableBubble(); }; }; m_disableRowCount--; }; }; _local2 = 0; while (_local2 < m_liveBubble.length) { _local6 = false; _local7 = m_liveBubble[_local2]; _local7.pushState(); _local7.tick((_arg1 + 1)); _local7.tick((_arg1 + 2)); _local8 = _local7.getX(); _local9 = _local7.getY(); _local7.popState(); _local10 = 0; while (_local10 < 1) { _local11 = ((_local7.getX() * (1 - _local10)) + (_local8 * _local10)); _local12 = ((_local7.getY() * (1 - _local10)) + (_local9 * _local10)); _local13 = screenToMatrix(_local11, _local12); if (isClear(_local13.x, _local13.y)){ _local7.suggestX = _local13.x; _local7.suggestY = _local13.y; }; if ((((((_local12 - m_viewOffset) + 20) < 0)) || (testPoint(_local13)))){ attachBubble(_local7); m_liveBubble.splice(_local2, 1); _local6 = true; break; }; _local10 = (_local10 + 0.3334); }; if (m_spawnBonusEnable){ if ((((m_numBonusBubbleSpawn < 5)) && ((m_numBubblesDestroyed >= 20)))){ m_numBubblesDestroyed = 0; if (!(hasBonusBubble())){ _local14 = getRandomBottomBubble(5); m_game.getSoundManager().get("bubble_appear").play(); if (_local14 != null){ try { setChildIndex(_local14.bubble, (numChildren - 1)); } catch(ex) { }; _local14.promoteToBonus(); for each (_local4 in m_listener) { _local4.onBubbleRemove(); }; } else { _local2 = 0; while (_local2 < m_bubbles[0].length) { if (m_bubbles[0][_local2] != null){ _local11 = (_local2 * radiusX); _local12 = (1 * radiusY); _local15 = new Bubble(); _local15.assureFull(); _local15.arrayX = _local2; _local15.arrayY = 1; _local15.isStuck = true; _local15.setColorIndex(1); _local15.promoteToBonus(); _local15.setPositionLimited(_local11, _local12); m_bubbles[1][_local2] = _local15; break; }; _local2 = (_local2 + 1); }; }; m_numBonusBubbleSpawn++; m_hasBonusBubble = true; } else { m_hasBonusBubble = true; }; }; }; if (!(_local6)){ _local2 = (_local2 + 1); }; }; m_numRows = 0; m_numBubble = 0; m_numVisibleBubble = 0; var _local21:int = -1; var _local22:int = ((-(radiusY) * 2) + m_viewTop); var _local23:int = ((m_height - 2) * radiusY); var _local24:int = (m_bubbles.length * radiusY); _local2 = m_bubbles.length; while (_local2--) { _local24 = (_local24 - radiusY); _local5 = true; _local16 = m_bubbles[_local2]; _local17 = ((m_viewOffset + _local24) > _local22); _local3 = _local16.length; while (_local3--) { _local18 = _local16[_local3]; if (_local18 != null){ if (_local17){ if (((((_local18.isStuck) && ((_local18.bubble == null)))) || ((_local18.bubble.parent == null)))){ bubbleInView(_local18); }; m_numVisibleBubble++; }; if (_local5){ _local5 = false; _local19 = (_local24 + radiusY); if (_local19 < _local21){ _local19 = _local21; }; if (_local19 > _local23){ _local19 = _local23; }; _local21 = _local19; m_numRows++; }; m_numBubble++; }; }; }; if (((((!(m_isInBonusLevel)) && ((m_numBubble == 0)))) && ((m_bonusLevelStartDelay == -1)))){ for each (_local4 in m_listener) { _local4.onNoMoreBubbles(); }; }; if (m_bonusLevelStartDelay != -1){ if (--m_bonusLevelStartDelay == 0){ for each (_local4 in m_listener) { _local4.onBonusBubbleCollected(6); }; m_bonusLevelStartDelay = -1; }; }; if (!(m_useManualScrolling)){ if (m_scroller == null){ _local20 = Math.min((radiusY / 2), ((m_viewBottom - _local21) + (m_bottomOffset * radiusY))); if (_local20 != m_viewOffset){ if (((m_useScrollDelay) && ((_local20 > m_viewOffset)))){ m_scrollStartDelay = 11; }; m_scroller = new EaseOutQuadInterpolator(m_viewOffset, _local20, 12); }; }; 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); } 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; }; }; } function screenToMatrix(_arg1:int, _arg2:int):Pt{ var _local3:Pt = new Pt(((_arg1 - m_offsetX) + 20), ((_arg2 - m_viewOffset) + 20)); _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 hasBonusBubble():Boolean{ var _local1:int; var _local2:Bubble; var _local3:int = m_bubbles.length; while (_local3--) { _local1 = m_bubbles[_local3].length; while (_local1--) { _local2 = m_bubbles[_local3][_local1]; if (!((((_local2 == null)) || ((_local2.bubble == null))))){ if (_local2.isBonus){ return (true); }; }; }; }; return (false); } public function setViewTop(_arg1:int):void{ m_viewTop = _arg1; } 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_viewOffset + (_arg2 * radiusY)))); } public function testForExpansion(_arg1:int, _arg2:int):Boolean{ var _local3:Bubble; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:String; var _local9:int; var _local10:Bubble; var _local11:Boolean; var _local12:*; var _local13:Bubble; var _local14:BubbleListener; var _local15:Array; var _local16:* = {}; var _local17:Bubble = m_bubbles[_arg2][_arg1]; var _local18:int = _local17.getColorIndex(); var _local19:Array = new Array(); var _local20:Array = new Array(); _local20.push(_local17); while (_local20.length > 0) { _local3 = _local20.shift(); _local4 = ((_local3.arrayY & !((1 == 0)))) ? m_offsetEven : m_offsetOdd; _local5 = 0; while (_local5 < _local4.length) { _local6 = (_local3.arrayX + _local4[_local5][0]); _local7 = (_local3.arrayY + _local4[_local5][1]); _local8 = ((_local6 + ",") + _local7); if (!(_local16[_local8])){ _local16[_local8] = 1; _local9 = getColor(_local6, _local7); if (_local9 == _local18){ _local10 = getBubble(_local6, _local7); _local19.push(_local10); _local20.push(_local10); }; }; _local5++; }; }; if (_local19.length >= 3){ _local11 = false; _local12 = 0; for each (_local13 in _local19) { if (_local13.isBonus){ _local11 = true; }; m_bubbles[_local13.arrayY][_local13.arrayX] = null; _local13.explode(); m_numBubblesDestroyed++; _local12++; }; for each (_local14 in m_listener) { _local14.onBubbleRemove(); }; if (m_isScoreEnable){ m_sharedData.score = (m_sharedData.score + 10); _local15 = [0, 30, 50, 70, 100, 150]; if ((((m_consecutiveBursts > 0)) && ((m_consecutiveBursts < 6)))){ m_sharedData.score = (m_sharedData.score + _local15[m_consecutiveBursts]); } else { if (m_consecutiveBursts >= 6){ m_sharedData.score = (m_sharedData.score + (15 + (100 * (m_consecutiveBursts - 5)))); }; }; }; if (_local11){ for each (_local14 in m_listener) { _local14.onBonusBubbleWasted(); }; }; m_consecutiveBursts++; if (m_consecutiveBursts > 15){ m_consecutiveBursts = 15; }; } else { m_consecutiveBursts = 0; }; return ((_local12 > 0)); } public function setUseScrollDelay(_arg1:Boolean):void{ if (!(_arg1)){ m_scrollStartDelay = -1; }; m_useScrollDelay = _arg1; } public function setPreferredBottomPos(_arg1:int):void{ m_bottomOffset = _arg1; } public function getBonusBubbleProximityFactor():Number{ if (m_numBonusBubbleSpawn == 5){ return (0); }; if (m_hasBonusBubble){ return (1); }; return ((Math.min(20, m_numBubblesDestroyed) / 20)); } 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 getDeepestHole():int{ var _local1:Boolean; var _local2:int; var _local3:int = m_bubbles.length; while (_local3--) { _local1 = false; _local2 = m_bubbles[_local3].length; while (_local2--) { if (m_bubbles[_local3][_local2] == null){ _local1 = true; break; }; }; if (!(_local1)){ return ((_local3 + 1)); }; }; return (0); } public function popLiveBubbles():void{ var _local1:Bubble; var _local2:int; while (_local2 < m_liveBubble.length) { _local1 = m_liveBubble[_local2]; _local1.explode(); _local1.isRemoving = true; _local2++; }; } public function bubbleHeight():int{ var _local1:int; var _local2:int = m_bubbles.length; while (_local2--) { _local1 = m_bubbles[_local2].length; while (_local1--) { if (m_bubbles[_local2][_local1] != null){ return (((_local2 + 1) * radiusY)); }; }; }; return (0); } 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])); } public function getNumBubbles():int{ return (m_numBubble); } public function destroy():void{ var _local1:int; var _local2:Bubble; var _local3:int; m_listener = {}; while (_local3 < m_liveBubble.length) { m_liveBubble[_local3].remove(); _local3++; }; m_liveBubble = null; _local3 = m_bubbles.length; while (_local3--) { _local1 = m_bubbles[_local3].length; while (_local1--) { _local2 = m_bubbles[_local3][_local1]; if (_local2 != null){ _local2.remove(); }; m_bubbles[_local3][_local1] = null; }; m_bubbles[_local3] = null; }; m_bubbles = null; } } }//package junglebubble
Section 33
//BubbleBoxTop (junglebubble.BubbleBoxTop) package junglebubble { public class BubbleBoxTop extends BubbleBox { public function BubbleBoxTop(_arg1:Game, _arg2:SharedData, _arg3:int, _arg4:int, _arg5:Array, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } } }//package junglebubble
Section 34
//BubbleBoxUnder (junglebubble.BubbleBoxUnder) package junglebubble { public class BubbleBoxUnder extends BubbleBox { public function BubbleBoxUnder(_arg1:Game, _arg2:SharedData, _arg3:int, _arg4:int, _arg5:Array, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } } }//package junglebubble
Section 35
//BubbleClip (junglebubble.BubbleClip) package junglebubble { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; public class BubbleClip extends MovieClip { private var m_bubble:Bubble; public var transform_anim:transform_animation; private var m_dsin:Number; private var m_startY; private var m_startX; private var m_startDelay:int; private var m_offsetY:int; private var m_lastFrame:uint; private var m_dy:Number; private var m_dx:Number; private var m_isZoom:Boolean; private var m_nextJerkAt:int; private var m_dcos:Number; public var bonus_sparkle:bonus_bubble; private var m_startTime:int; public var ball:MovieClip; public function BubbleClip(_arg1:Bubble){ m_dx = 0; m_dy = 0; m_bubble = _arg1; bonus_sparkle.stop(); bonus_sparkle.visible = false; bonus_sparkle.setLoopRestartFrame(35); transform_anim.visible = false; mouseChildren = false; stop(); ball.stop(); m_offsetY = 600; } public function stopAnim():void{ removeEventListener(Event.ENTER_FRAME, animateDrop); removeEventListener(Event.ENTER_FRAME, animateExplosion); } public function startExplosion():void{ m_startTime = -1; m_startX = x; m_startY = y; m_startDelay = (getTimer() + 100); m_nextJerkAt = 0; addEventListener(Event.ENTER_FRAME, animateExplosion); } public function setDropOffset(_arg1:int){ m_offsetY = _arg1; } 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); m_bubble.remove(); }; } 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 animateExplosion(_arg1:Event):void{ var _local2:*; var _local3:int = getTimer(); if (_local3 < m_startDelay){ if (_local3 >= m_nextJerkAt){ m_nextJerkAt = (_local3 + 5); _local2 = (16 * (1 - ((m_startDelay - _local3) / 100))); x = ((m_startX + (Math.random() * _local2)) - (_local2 / 2)); y = ((m_startY + ((Math.random() * _local2) / 4)) - (_local2 / 8)); rotation = ((Math.random() * 14) - 7); }; return; }; if (m_startTime < 0){ m_startTime = _local3; }; var _local4:uint = uint(Math.round((((_local3 - m_startTime) / ((1 / 30) * 1000)) + 1))); if (_local4 > totalFrames){ removeEventListener(Event.ENTER_FRAME, animateExplosion); m_bubble.remove(); return; }; if (_local4 != m_lastFrame){ gotoAndStop(_local4); m_lastFrame = _local4; }; } } }//package junglebubble
Section 36
//BubbleLauncher (junglebubble.BubbleLauncher) package junglebubble { import flash.display.*; import timing.*; import math.*; public class BubbleLauncher extends MovieClip { private var m_reloadTime:int; private var m_aimFn:Function; private var m_fr:IFloat; private var m_r:Number; private var m_mouseX:int; private var m_x:int; private var m_y:int; private var m_limit1:Number; private var m_limit2:Number; private var m_reload:int; private var m_bubble:Bubble; private var m_mouseY:int; private var m_xoffset:int; private var m_yoffset:int; private var m_lastDeg:int; 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 = 0; m_limit1 = -3.1414; m_limit2 = 0.0001; gotoAndStop(2); } public function setReloadTime(_arg1:int):void{ m_reloadTime = _arg1; m_reload = 0; } public function setPosition(_arg1:int, _arg2:int):void{ m_x = _arg1; m_y = _arg2; } public function setBubble(_arg1:Bubble):void{ m_bubble = _arg1; } public function setRadLimits(_arg1:Number, _arg2:Number):void{ m_limit1 = _arg1; m_limit2 = _arg2; } 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; }; } public function setAimChangeCallback(_arg1:Function):void{ m_aimFn = _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); } } }//package junglebubble
Section 37
//BubbleListener (junglebubble.BubbleListener) package junglebubble { public interface BubbleListener { function onNoMoreBubbles():void; function onBonusBubbleCollected(_arg1:int):void; function onBonusBubbleWasted():void; function onBeforeLeaveBonusMode(_arg1:int, _arg2:Number):void; function onLeaveBonusMode(_arg1:int, _arg2:Number):void; function onBubbleOverflow():void; function onBubbleRemove():void; } }//package junglebubble
Section 38
//Bushes (junglebubble.Bushes) package junglebubble { import flash.display.*; import flash.events.*; import flash.utils.*; import localization.*; public class Bushes extends MovieClip { private var m_pieceTimer:uint; private var m_game:Game; var m_headStart:int;// = -1 private var m_bonusVal:RollingScore; private var m_isSignAppear:Boolean; private var m_playRange:Array; private var m_isStatueComplete:Boolean; private var m_isInitDone:Boolean; private var m_lastFrame:int; public var sign:MovieClip; private var m_scoreVal:RollingScore; private var m_isGameOver:Boolean; private var m_sharedData:SharedData; private var m_totalStatueBonus:int; private var m_bonusPtr:int; private var m_finalScoreVal:RollingScore; private var m_startTime:int; public function Bushes(){ addFrameScript(0, frame1); m_totalStatueBonus = 0; m_startTime = -1; m_playRange = null; m_isInitDone = false; m_isStatueComplete = false; sign.visible = false; sign.stop(); visible = false; gotoAndStop(19); } public function isStatueComplete():Boolean{ return (m_isStatueComplete); } private function dropNextPiece():void{ var _local1:int = m_sharedData.bonusLevel[m_bonusPtr]; var _local2:Number = m_sharedData.bonusLevelSubScore[m_bonusPtr]; m_bonusPtr++; sign.platta.texts.gameover.statue.dropBlock(_local1, _local2); if (m_bonusPtr < m_sharedData.bonusLevel.length){ m_pieceTimer = setTimeout(dropNextPiece, 2200); } else { m_isStatueComplete = true; }; } public function pullDown():void{ m_playRange = [1, 19]; m_startTime = -1; visible = true; addEventListener(Event.ENTER_FRAME, animateBushes); } public function pullApart():void{ m_playRange = [19, 40]; m_startTime = -1; visible = true; addEventListener(Event.ENTER_FRAME, animateBushes); } public function render():void{ if (m_isInitDone){ m_bonusVal.render(); m_scoreVal.render(); m_finalScoreVal.render(); }; } public function setTimeLeftToAutoExit(_arg1:int):void{ if (!(m_isGameOver)){ sign.platta.texts.countdown_txt.text = I18n.getString("countdown_instructions", int((_arg1 / 1000))); }; } public function hideSign():void{ if (!(m_isGameOver)){ sign.platta.texts.instructions1.stop(); sign.platta.texts.instructions2.stop(); }; m_isSignAppear = false; m_playRange = [20, 40]; m_startTime = -1; sign.addEventListener(Event.ENTER_FRAME, animateSign); } public function tick():void{ if (m_isInitDone){ m_bonusVal.update(); m_scoreVal.update(); m_finalScoreVal.update(); }; } private function animateSign(_arg1:Event):void{ var _local2:MovieClip; var _local3:*; var _local4:int; var _local5:*; var _local6:int = getTimer(); if (m_startTime < 0){ m_startTime = _local6; m_lastFrame = 0; if (((m_isGameOver) && (m_isSignAppear))){ GameBase.MARK = true; trace("zhelilai"); _local2 = sign.platta.texts.gameover; _local2.smoke.visible = false; _local2.scorepop.visible = false; _local3 = 0; _local4 = 0; while (_local4 < m_sharedData.bonusLevel.length) { _local3 = (_local3 + m_sharedData.bonusLevel[_local4]); _local4++; }; if (m_sharedData.bonusLevel.length != 0){ _local3 = (_local3 / m_sharedData.bonusLevel.length); }; if (_local3 > 2.5){ _local2.head.head.gotoAndStop(Monkey.MOOD_HAPPY); } else { if (_local3 > 2){ _local2.head.head.gotoAndStop(Monkey.MOOD_NEUTRAL); } else { if (_local3 > 1){ _local2.head.head.gotoAndStop(Monkey.MOOD_DISTRESSED); } else { _local2.head.head.gotoAndStop(Monkey.MOOD_CRYING); }; }; }; _local2.head.addEventListener(Event.ENTER_FRAME, animateHead); _local2.sign_title_txt.text = I18n.getString("game_over_title"); _local2.shot_bonus_txt.text = I18n.getString("end_shotbonus"); _local2.shot_bonus_val_txt.text = ("" + m_sharedData.shotBonus); _local2.score_txt.text = I18n.getString("end_score"); _local2.score_val_txt.text = ("" + m_sharedData.score); _local2.bonus_txt.text = I18n.getString("end_bonus"); _local2.bonus_val_txt.text = "0"; _local2.restartBtn.addEventListener(MouseEvent.CLICK, onRestart); if (!(m_sharedData.isShortMode)){ _local2.time_bonus_txt.text = I18n.getString("end_time_bonus"); _local2.time_bonus_val_txt.text = ("" + m_sharedData.timeBonus); } else { _local2.open_msg_txt.text = I18n.getString("open_game_message"); }; _local2.total_score_txt.text = I18n.getString("end_final_score"); _local2.total_score_val_txt.text = ("" + (m_sharedData.score + m_sharedData.shotBonus)); m_scoreVal = new RollingScore(_local2.score_val_txt, m_sharedData.score, -1); m_bonusVal = new RollingScore(_local2.bonus_val_txt, 0, -1); _local5 = ((m_sharedData.score + m_sharedData.shotBonus) + m_sharedData.timeBonus); m_finalScoreVal = new RollingScore(_local2.total_score_val_txt, _local5, -1); m_bonusPtr = 0; sign.platta.texts.gameover.statue.setGame(m_game); sign.platta.texts.gameover.statue.setLandingCallback(pieceLanded); if (!(m_isStatueComplete)){ if (m_sharedData.bonusLevel.length > 0){ sign.platta.texts.gameover.smoke.visible = false; m_pieceTimer = setTimeout(dropNextPiece, 1000); } else { sign.platta.texts.gameover.statue.visible = false; m_pieceTimer = setTimeout(showNoBonusSmoke, 1000); }; }; m_isInitDone = true; }; }; var _local7:Number = ((1 / 50) * 1000); var _local8:uint = (m_playRange[0] + uint(Math.round((((_local6 - m_startTime) / _local7) + 1)))); if (_local8 >= m_playRange[1]){ _local8 = m_playRange[1]; sign.removeEventListener(Event.ENTER_FRAME, animateSign); }; if (_local8 != m_lastFrame){ if (!(sign.visible)){ sign.visible = true; visible = true; }; sign.gotoAndStop(_local8); m_lastFrame = _local8; }; } private function showNoBonusSmoke():void{ sign.platta.texts.gameover.smoke.visible = true; sign.platta.texts.gameover.smoke.start(); } public function hurryScoreCount():void{ var _local2:int; var _local3:int; m_isStatueComplete = true; var _local1:* = sign.platta.texts.gameover; _local1.statue.setState(m_sharedData.bonusLevel, m_sharedData.bonusLevelSubScore); while (_local3 < m_sharedData.bonusLevel.length) { _local2 = (_local2 + ((m_sharedData.bonusLevel[_local3] * 5000) + int((m_sharedData.bonusLevelSubScore[_local3] * 2500)))); _local3++; }; _local1.scorepop.scoreflash.score_val_txt.text = ("" + _local2); _local1.scorepop.start(); m_bonusVal.setValue(_local2); m_finalScoreVal.setValue((((m_sharedData.score + m_sharedData.shotBonus) + m_sharedData.timeBonus) + _local2)); m_game.getSoundManager().get("counter").play(0.75, 0.8); clearTimeout(m_pieceTimer); } private function animateBushes(_arg1:Event):void{ var _local2:int = getTimer(); if (m_startTime < 0){ cacheAsBitmap = false; m_startTime = _local2; m_lastFrame = 0; }; var _local3:Number = ((1 / 50) * 1000); var _local4:uint = (m_playRange[0] + uint(Math.round((((_local2 - m_startTime) / _local3) + 1)))); if (_local4 > m_playRange[1]){ removeEventListener(Event.ENTER_FRAME, animateBushes); gotoAndStop(m_playRange[1]); stop(); cacheAsBitmap = true; return; }; if (_local4 != m_lastFrame){ if (!(visible)){ visible = true; }; gotoAndStop(_local4); m_lastFrame = _local4; }; } private function pieceLanded(_arg1:int, _arg2:int, _arg3:Number):void{ var _local4:int = ((_arg2 * 5000) + int((_arg3 * 2500))); m_totalStatueBonus = (m_totalStatueBonus + _local4); m_game.getSoundManager().get("counter").play(0.75, 0.8); m_bonusVal.setValue(m_totalStatueBonus); m_finalScoreVal.setValue((((m_sharedData.score + m_sharedData.shotBonus) + m_sharedData.timeBonus) + m_totalStatueBonus)); sign.platta.texts.gameover.scorepop.scoreflash.score_val_txt.text = ("" + _local4); sign.platta.texts.gameover.scorepop.start(); } public function gotoNextInstructionSlide():Boolean{ var _local1:* = sign.platta.texts; _local1.bottom_txt.text = I18n.getString("bottom_text_instructions_2"); _local1.instructions2.start(); _local1.instructions1.stop(); _local1.instructions1.visible = false; return (false); } public function showSign(_arg1:Boolean):void{ m_playRange = [1, 20]; m_startTime = -1; m_isGameOver = _arg1; m_isSignAppear = true; if (_arg1){ sign.platta.texts.gotoAndStop(4); } else { sign.platta.texts.sign_title_txt.text = I18n.getString("title_instructions"); sign.platta.texts.countdown_txt.text = I18n.getString("countdown_instructions", 10); sign.platta.texts.bottom_txt.text = I18n.getString("bottom_text_instructions_1"); sign.platta.texts.instructions1.start(); sign.platta.texts.instructions2.visible = false; }; sign.addEventListener(Event.ENTER_FRAME, animateSign); } function frame1(){ } private function onRestart(_arg1:Event):void{ Eventer.getInstance().dispatchEvent(new Event("restartGame")); } private function animateHead(_arg1:Event):void{ var _local2:int = getTimer(); if (m_headStart < 0){ m_headStart = _local2; }; sign.platta.texts.gameover.head.rotation = (Math.sin(((_local2 - m_headStart) / 100)) * 20); } public function setGame(_arg1:Game){ m_sharedData = _arg1.getSharedData(); m_game = _arg1; } } }//package junglebubble
Section 39
//CompositeBubble (junglebubble.CompositeBubble) package junglebubble { import math.*; public class CompositeBubble { private var m_rotationS:Number; private var m_right:int; private var m_rotation:Number; private var m_left:int; private var m_exploding:Boolean; private var m_flipBlock:int; private var m_bubble:Array; private var m_explodeCountdown:int; private var m_dx:Number; private var m_dy:Number; private var m_x:Number; private var m_y:Number; public var group:int; public function CompositeBubble(){ group = -1; m_flipBlock = 0; m_rotation = 0; m_bubble = new Array(); m_x = 0; m_y = 0; m_dx = 3; m_dy = 1; m_left = 48; m_right = (250 - 48); m_rotationS = 0; m_explodeCountdown = -1; m_exploding = false; } public function setBubbleOffset(_arg1:int, _arg2:Number, _arg3:Number):void{ m_bubble[_arg1][1] = _arg2; m_bubble[_arg1][2] = _arg3; } public function addBubble(_arg1:Bubble, _arg2:Number, _arg3:Number):void{ var _local4:* = 1; m_bubble.push([_arg1, _arg2, _arg3]); if (_arg1.getX() > m_x){ _local4 = -1; }; if (m_bubble.length == 2){ m_rotationS = (_local4 * 0.7); }; if (m_bubble.length == 3){ m_rotationS = (_local4 * 0.5); m_explodeCountdown = 8; }; _arg1.setPosition(m_x, m_y); } public function getY():int{ return (m_y); } public function render(_arg1:int, _arg2:Number):void{ var _local3:int; while (_local3 < m_bubble.length) { m_bubble[_local3][0].render(_arg1, _arg2); _local3++; }; } public function setWall(_arg1:int, _arg2:int):void{ m_left = _arg1; m_right = _arg2; } public function exploding():Boolean{ return (m_exploding); } public function aboutToExplode():Boolean{ return (!((m_explodeCountdown == -1))); } public function setPosition(_arg1:int, _arg2:int):void{ m_x = _arg1; m_y = _arg2; } public function tick(_arg1:int):void{ var _local2:Array; var _local3:*; var _local4:*; var _local7:int; if (m_exploding){ return; }; if (m_flipBlock != 0){ m_flipBlock--; }; if (((!(m_exploding)) && (!((m_explodeCountdown == -1))))){ if (--m_explodeCountdown == 0){ m_exploding = true; }; }; m_x = (m_x + m_dx); m_y = (m_y + m_dy); var _local5:* = XPMath.sin(m_rotation); var _local6:* = XPMath.cos(m_rotation); while (_local7 < m_bubble.length) { _local2 = m_bubble[_local7]; _local3 = (((_local6 * _local2[1]) + (_local5 * _local2[2])) + m_x); _local4 = (((_local5 * _local2[1]) - (_local6 * _local2[2])) + m_y); _local2[0].setTickedPosition(_local3, _local4); if ((((m_flipBlock == 0)) && (((_local3 - 19) > m_right)))){ m_dx = -(m_dx); m_flipBlock = 20; m_rotationS = (m_rotationS * 0.9); }; if ((((m_flipBlock == 0)) && (((_local3 + 19) < m_left)))){ m_dx = -(m_dx); m_flipBlock = 20; m_rotationS = (m_rotationS * 0.9); }; _local7++; }; m_rotation = (m_rotation + m_rotationS); m_rotationS = (m_rotationS * 0.94); m_dx = (m_dx * 0.993); m_dy = (m_dy * 0.993); } public function getMoveX():Number{ return (m_dx); } public function getDebugData():Array{ return ([m_x, m_y, m_dx, m_dy, m_rotation, m_rotationS]); } public function getNumBubbles():int{ return (m_bubble.length); } public function setMovement(_arg1:Number, _arg2:Number):void{ m_dx = _arg1; m_dy = _arg2; } public function getMoveY():Number{ return (m_dy); } } }//package junglebubble
Section 40
//Game (junglebubble.Game) package junglebubble { import sfx.*; import flash.display.*; public interface Game { function leaveState():void; function getSharedData():SharedData; function isLowPerformanceMode():Boolean; function leaveGame():void; function sendData(_arg1:String):void; function getSoundManager():SoundManager; function getDisplayObjectContainer():DisplayObjectContainer; function hideBack():void; function destroy():void; function toggleSound():void; function finalScore(_arg1:int):void; function getMusicManager():SoundManager; } }//package junglebubble
Section 41
//GameAssembly (junglebubble.GameAssembly) package junglebubble { import flash.display.*; import flash.text.*; import timing.*; import flash.geom.*; import anim.*; import localization.*; import util.*; public class GameAssembly extends MovieClip { public var monkey_smoke:smoke_anim; private var m_frameBufCache:Bitmap; private var m_lowPerformanceMode:Boolean; var renderCount:int; private var m_bonusVal:RollingScore; public var bonus_bell:MovieClip; private var m_mineTick:int; private var m_overTick:int; private var m_scrollDir:int; public var bonus_val_txt:TextField; public var bubble_launcher_obj_shadow:MovieClip; public var rep_over:MovieClip; public var lever_normal:MovieClip; public var score_txt:TextField; public var monkey_jumper:Monkey; public var bucket_under:MovieClip; public var bonus_txt:TextField; public var bonussign:bonus_sign; public var bonus_meter:NextBonusMeter; public var rock_base:MovieClip; public var monkey_under:Monkey; private var m_isInMine:Boolean; private var m_yoffset:IFloat; public var aim_over:aim_cursor; public var lever_underworld:MovieClip; public var bubble_launcher_under:bubblelauncherunder; public var big_explosion:dynamite_explosion; private var m_scrollAnim:Interpolator; public var bomb_launcher:bomblauncher; public var bubble_base:MovieClip; public var score_val_txt:TextField; public var lamp_under:MovieClip; public var rep_under:MovieClip; public var items:MovieClip; private var m_scoreVal:RollingScore; public var under_bubble_0:MovieClip; public var under_bubble_1:MovieClip; public var under_bubble_2:MovieClip; public var under_bubble_3:MovieClip; public var under_bubble_4:MovieClip; private var m_normalQuality:String; public var bonus_intro_sign:BonusIntroSign; public var parrot_over:parrot; public var time_val_txt:TextField; public var monkey_over:Monkey; public var statue:statue_animation; public var top_layer:MovieClip; public var bonus_time:BonusClock; public var parrot_under:MovieClip; public var bubble_launcher:bubbleshooter; public var bubble_frame:MovieClip; public var time_txt:TextField; public function GameAssembly(){ m_overTick = 0; m_isInMine = false; m_lowPerformanceMode = false; bonus_txt.text = I18n.getString("bonus_label"); bonus_val_txt.text = ""; score_txt.text = I18n.getString("score_label"); score_val_txt.text = ""; time_txt.text = I18n.getString("time_label"); time_val_txt.text = ""; items.stop(); bonus_time.gotoAndStop(1); bonus_bell.gotoAndStop(1); monkey_jumper.visible = false; m_scrollDir = 0; m_scoreVal = new RollingScore(score_val_txt, 0, -1); m_bonusVal = new RollingScore(bonus_val_txt, 250000, -1); under_bubble_0.visible = false; under_bubble_1.visible = false; under_bubble_2.visible = false; under_bubble_3.visible = false; under_bubble_4.visible = false; rock_base.scrollRect = new Rectangle(0, 0, 754, 620); bubble_launcher_under.x = int(bomb_launcher.x); bubble_launcher_under.y = int(bomb_launcher.y); bubble_launcher_under.setPosition(508, 541); m_frameBufCache = new Bitmap(new BitmapData(754, (620 * 2), false, 0x666666)); } public function doScrollDown():void{ var _local1:* = 0; if (m_scrollAnim.update()){ _local1 = m_scrollAnim.getValue(); m_scrollAnim = undefined; m_scrollDir = 0; endUseSnapshot(); y = _local1; monkey_over.reset(); monkey_over.visible = false; m_isInMine = true; m_mineTick = 0; } else { _local1 = m_scrollAnim.getValue(); }; m_yoffset.set(_local1); } public function doScrollUp():void{ var _local1:* = 0; if (m_scrollAnim.update()){ _local1 = m_scrollAnim.getValue(); m_scrollAnim = undefined; endUseSnapshot(); m_isInMine = false; m_scrollDir = 0; y = _local1; monkey_under.reset(); m_overTick = 0; } else { _local1 = m_scrollAnim.getValue(); }; m_yoffset.set(_local1); } public function scrollDown():void{ monkey_jumper.visible = false; monkey_over.visible = false; useSnapshot(); m_frameBufCache.y = 0; m_yoffset = new IFloat(m_frameBufCache.y); m_scrollDir = 1; m_scrollAnim = new EaseOutQuadInterpolator(m_frameBufCache.y, -620, 25); } public function setBonusScoreTime(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:int = int(((_arg3 / GameBase.TICK_RATE) * 1000)); var _local5:String = Numbers.asTime(_local4, false, true); if (time_val_txt.text != _local5){ time_val_txt.text = _local5; trace(_local5); }; m_scoreVal.setValue(_arg2); m_bonusVal.setValue(_arg1); } public function scrollUp():void{ useSnapshot(); m_frameBufCache.y = -620; m_yoffset = new IFloat(m_frameBufCache.y); m_scrollDir = -1; m_scrollAnim = new EaseOutQuadInterpolator(m_frameBufCache.y, 0, 8); } public function hasPoorFrameRate():void{ if (!(m_lowPerformanceMode)){ m_lowPerformanceMode = true; }; } public function useSnapshot():void{ m_frameBufCache.bitmapData.draw(this); m_frameBufCache.visible = true; visible = false; m_normalQuality = stage.quality; stage.quality = "low"; parent.addChild(m_frameBufCache); } public function endUseSnapshot():void{ parent.removeChild(m_frameBufCache); stage.quality = m_normalQuality; visible = true; } public function tick(_arg1:int):void{ m_bonusVal.update(); m_scoreVal.update(); if (m_scrollDir < 0){ doScrollUp(); } else { if (m_scrollDir > 0){ doScrollDown(); }; }; if (m_isInMine){ m_mineTick++; } else { m_overTick++; }; } public function render(_arg1:int, _arg2:Number):void{ var _local3:*; var _local4:*; var _local5:*; m_bonusVal.render(); m_scoreVal.render(); if (m_scrollDir != 0){ m_frameBufCache.y = m_yoffset.value; }; if (((m_isInMine) && (!(m_lowPerformanceMode)))){ _local4 = (180 / Math.PI); _local3 = ((m_mineTick + _arg2) / 10); _local5 = (renderCount % 3); if (_local5 == 0){ lamp_under.rotation = ((_local4 * Math.sin((1.5 + _local3))) * 0.015); } else { if (_local5 == 1){ parrot_under.rotation = ((_local4 * Math.sin(_local3)) * 0.05); } else { if (_local5 == 2){ }; }; }; }; if (((!(m_isInMine)) && (!(m_lowPerformanceMode)))){ _local4 = (180 / Math.PI); _local3 = ((m_overTick + _arg2) / 10); _local5 = (renderCount % 3); if (_local5 == 0){ parrot_over.rotation = ((_local4 * Math.sin(_local3)) * 0.05); }; }; renderCount++; } } }//package junglebubble
Section 42
//GameBase (junglebubble.GameBase) package junglebubble { import flash.display.*; import flash.events.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.system.*; import localization.*; import sfx.*; import timing.*; import util.*; public class GameBase extends MovieClip implements Game, Timeable { private var m_hasDecreasedQuality:Boolean; private var m_timer:Timer; private var m_isSoundEnabled:Boolean; private var m_gameCtrl:MovieClip; private var m_nextStateIdx:int; private var m_states:Array; private var m_soundMgr:SoundManager; private var m_stateLocalTick:int; private var m_hasCalledEnd:Boolean; private var m_isMusicEnabled:Boolean; private var m_lastKeys:Array; private var m_sharedData:SharedData; private var m_musicMgr:SoundManager; private var m_stats:Stats; private var m_hasCalledQuit:Boolean; private var m_frameBuf:Bitmap; private var m_performance:Performance; private var m_fpsText:String; private var m_mouseX:int; private var m_isFirstEnterFrame:Boolean; private var m_basePlate:MovieClip; private var m_mouseY:int; private var m_prevQuality:String; private var m_fpsNextAt:int; private var m_stateIdx:int; private static const AUTO_VERSION:String = "BUILD_[55]_121e2dd8a0a"; public static const TICK_RATE:int = 30; public static const WIDTH:int = 754; public static const HEIGHT:int = 600; public static const PROTOCOL_VERSION:String = "32"; public static const DEBUG_MODE:Boolean = true; public static var MARK:Boolean; public static var _4399_function_ad_id:String = "92d6cef76cd06829e088932fe9fd819b"; public static var _4399_function_medal_id:String = "efc988075e91d8d16ed3f51f0eb29223"; public function GameBase(){ m_mouseX = 0; m_mouseY = 0; m_lastKeys = new Array(10); m_isFirstEnterFrame = true; addEventListener(Event.ENTER_FRAME, enterFrame); Eventer.getInstance().addEventListener("restartGame", onrestart); } private function onrestart(_arg1:Event):void{ trace("游戏结束"); var _local2 = this.parent; _local2["restart"](); } 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 = (754 / 2); _local2.y = (600 / 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.sound.visible = false; m_gameCtrl.hit_sound.visible = false; m_gameCtrl.music.visible = false; m_gameCtrl.hit_music.visible = false; if (m_states[m_stateIdx].hasSoundButton()){ m_gameCtrl.sound.visible = true; m_gameCtrl.hit_sound.visible = true; m_gameCtrl.music.visible = true; m_gameCtrl.hit_music.visible = true; }; m_gameCtrl.exit.visible = false; m_gameCtrl.hit_exit.visible = false; if (m_states[m_stateIdx].hasExitButton()){ m_gameCtrl.exit.visible = true; m_gameCtrl.hit_exit.visible = true; }; if ((((_local3 == -1)) && (!((m_stateIdx == -1))))){ stage.addEventListener(KeyboardEvent.KEY_UP, reportKeyUp); 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 reportKeyUp(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:int; var _local4:*; var _local5:*; var _local6:* = _arg1.keyCode; _local2 = (m_lastKeys.length - 1); while (_local2 > 0) { m_lastKeys[_local2] = m_lastKeys[(_local2 - 1)]; _local2--; }; m_lastKeys[0] = _local6; var _local7:* = [83, 85, 84, 78, 79, 80, 71, 78, 73, 75]; var _local8:* = true; var _local9:* = [68, 76, 73, 85, 66, -1, -1, -1, -1, -1]; var _local10:* = true; _local2 = 0; _local3 = m_lastKeys.length; while (((((_local10) || (_local8))) && ((_local2 < _local3)))) { _local4 = m_lastKeys[_local2]; _local5 = _local7[_local2]; if (((!((_local4 == _local5))) && (!((_local5 == -1))))){ _local8 = false; }; _local5 = _local9[_local2]; if (((!((_local4 == _local5))) && (!((_local5 == -1))))){ _local10 = false; }; _local2++; }; if (_local10){ if (m_stats == null){ m_stats = new Stats(); m_gameCtrl.addChild(m_stats); } else { m_stats.visible = !(m_stats.visible); m_gameCtrl.ver_txt.visible = m_stats.visible; }; }; if (_local8){ m_gameCtrl.full.visible = true; m_gameCtrl.hit_full.visible = true; }; } public function onClickToggleMusic(_arg1:MouseEvent):void{ m_gameCtrl.music.icon.gotoAndStop((m_isMusicEnabled) ? 1 : 2); m_isMusicEnabled = !(m_isMusicEnabled); m_musicMgr.setVolume((m_isMusicEnabled) ? 1 : 0); } 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 = 200; var i:* = 0; i = (i + 1); i = (i + 1); i = (i + 1); m_states = [new StateIntro(this, i), new StateGameMode(this, i), new StateGameOver(this, i)]; m_sharedData = new SharedData(); m_timer = new Timer(this, TICK_RATE); if (DEBUG_MODE){ gd = ""; 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 = <gamedata short="false" randomseed="836853286"> <text id="end_time_bonus">时间奖励</text> <text id="time_label">时间</text> <text id="end_shotbonus">射击奖励</text> <text id="bonus_mode_1_content">尽最快的速度射击掉落的泡泡!</text> <text id="bonus_mode_3_content">尽可能的坚持到最后</text> <text id="bottom_text_instructions_1">射击泡泡使3个颜色一样的泡泡能在一起,这样他们就会爆炸掉落.5分钟内尽可能的获取更多分数!</text> <text id="bottom_text_instructions_2">能量满后星星泡泡就会出现,如果能让它掉落下来,就会进入另外的小游戏模式,通过这些小游戏获取图腾的石头.</text> <text id="sound_btn">Sound on/off</text> <text id="title_instructions">说明</text> <text id="bonus_mode_2_head">挖深</text> <text id="open_game_message"> </text> <text id="game_over_title">游戏结束,点击再来一次</text> <text id="countdown_instructions">点击开始游戏 ...</text> <text id="end_final_score">总分</text> <text id="bonus_mode_1_head">神枪手</text> <text id="bonus_label">奖励</text> <text id="bonus_mode_2_content">用5个泡泡尽可能的挖深泡泡堆!</text> <text id="bonus_mode_3_head">生存</text> <text id="score_label">分数</text> <text id="bonus_acquired">漂亮!</text> <text id="end_bonus">图腾奖励</text> <text id="exit_btn">退出</text> <text id="bonus_mode_title">小游戏模式!</text> <text id="music_btn">Music on/off</text> <text id="end_score">分数</text> </gamedata> ; var build:* = AUTO_VERSION.split("_")[1]; var buildDateHex:* = AUTO_VERSION.split("_")[2]; var d:* = parseInt(buildDateHex, 16); m_sharedData.build = parseInt(build.substring(1, (build.length - 1))); m_sharedData.buildDate = new Date(); m_sharedData.buildDate.setTime(d); m_sharedData.globalSeed = int(x.@randomseed); m_sharedData.isShortMode = (x.@short == "true"); 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.hit_music.addEventListener(MouseEvent.CLICK, onClickToggleMusic); m_gameCtrl.hit_music.addEventListener(MouseEvent.ROLL_OVER, function (_arg1:MouseEvent){ m_gameCtrl.music.filters = [new GlowFilter(0xFFFF00, 1, 5, 5, 2, 1, false, false)]; }); m_gameCtrl.hit_music.addEventListener(MouseEvent.ROLL_OUT, function (_arg1:MouseEvent){ m_gameCtrl.music.filters = []; }); m_gameCtrl.music.icon.gotoAndStop(2); m_gameCtrl.music.buttonMode = true; m_gameCtrl.music.useHandCursor = true; m_gameCtrl.music.mouseChildren = false; m_gameCtrl.hit_sound.addEventListener(MouseEvent.CLICK, onClickToggleSound); m_gameCtrl.hit_sound.addEventListener(MouseEvent.ROLL_OVER, function (_arg1:MouseEvent){ m_gameCtrl.sound.filters = [new GlowFilter(0xFFFF00, 1, 5, 5, 2, 1, false, false)]; }); m_gameCtrl.hit_sound.addEventListener(MouseEvent.ROLL_OUT, function (_arg1:MouseEvent){ m_gameCtrl.sound.filters = []; }); m_gameCtrl.sound.icon.gotoAndStop(2); m_gameCtrl.sound.buttonMode = true; m_gameCtrl.sound.useHandCursor = true; m_gameCtrl.sound.mouseChildren = false; m_gameCtrl.hit_full.addEventListener(MouseEvent.CLICK, onFullscreen); m_gameCtrl.hit_full.addEventListener(MouseEvent.ROLL_OVER, function (_arg1:MouseEvent){ m_gameCtrl.full.filters = [new GlowFilter(0xFFFF00, 1, 5, 5, 2, 1, false, false)]; }); m_gameCtrl.hit_full.addEventListener(MouseEvent.ROLL_OUT, function (_arg1:MouseEvent){ m_gameCtrl.full.filters = []; }); m_gameCtrl.full.txt.text = "Fullscreen"; m_gameCtrl.full.buttonMode = true; m_gameCtrl.full.mouseChildren = false; m_gameCtrl.full.useHandCursor = true; m_gameCtrl.full.visible = false; m_gameCtrl.hit_full.visible = false; m_gameCtrl.hit_exit.addEventListener(MouseEvent.CLICK, onClickExit); m_gameCtrl.hit_exit.addEventListener(MouseEvent.ROLL_OVER, function (_arg1:MouseEvent){ m_gameCtrl.exit.filters = [new GlowFilter(0xFFFF00, 1, 5, 5, 2, 1, false, false)]; }); m_gameCtrl.hit_exit.addEventListener(MouseEvent.ROLL_OUT, function (_arg1:MouseEvent){ m_gameCtrl.exit.filters = []; }); m_gameCtrl.exit.txt.text = I18n.getString("exit_btn"); m_gameCtrl.exit.buttonMode = true; m_gameCtrl.exit.mouseChildren = false; m_gameCtrl.exit.useHandCursor = true; m_gameCtrl.ver_txt.visible = false; m_gameCtrl.visible = true; m_frameBuf = new Bitmap(new BitmapData(WIDTH, HEIGHT, false, 0)); addChild(m_frameBuf); m_basePlate = new MovieClip(); m_basePlate.scrollRect = new Rectangle(0, 0, WIDTH, HEIGHT); m_basePlate.mouseChildren = false; addChild(m_basePlate); addChild(m_gameCtrl); m_fpsNextAt = -1; if (DEBUG_MODE){ m_stats = new Stats(); m_gameCtrl.addChild(m_stats); m_gameCtrl.ver_txt.visible = true; }; m_soundMgr = new SoundManager(); m_musicMgr = new SoundManager(); return (true); } public function mouseMove(_arg1:MouseEvent):void{ m_mouseX = _arg1.stageX; m_mouseY = _arg1.stageY; } public function tick(_arg1:int):void{ m_sharedData.globalTick = _arg1; if (m_stateIdx != -1){ m_states[m_stateIdx].tick(m_stateLocalTick++); }; } public function mouseUp(_arg1:MouseEvent):void{ if (m_mouseY < 530){ m_states[m_stateIdx].onMouseUp(); }; } public function leaveState():void{ switch (m_stateIdx){ case 0: fscommand("gameStart", ""); m_nextStateIdx = 1; return; }; } public function getSoundManager():SoundManager{ return (m_soundMgr); } public function render(_arg1:int, _arg2:Number):void{ if (m_stateIdx != -1){ m_states[m_stateIdx].render(m_stateLocalTick, _arg2); }; } public function destroy():void{ if (((m_hasCalledEnd) && (!(m_hasCalledQuit)))){ m_states[m_stateIdx].disengage(); if (!(DEBUG_MODE)){ fscommand("gameQuit", ""); }; m_hasCalledQuit = true; }; } public function toggleSound():void{ m_gameCtrl.sound.icon.gotoAndStop((m_isSoundEnabled) ? 1 : 2); m_isSoundEnabled = !(m_isSoundEnabled); m_soundMgr.setVolume((m_isSoundEnabled) ? 1 : 0); } public function getSharedData():SharedData{ return (m_sharedData); } public function getMusicManager():SoundManager{ return (m_musicMgr); } public function onClickExit(_arg1:MouseEvent):void{ if (m_stateIdx != -1){ m_states[m_stateIdx].onGameQuitButton(); }; m_nextStateIdx = 2; } public function hideBack():void{ m_frameBuf.visible = false; } public function finalScore(_arg1:int):void{ if (((!(m_hasCalledQuit)) && (!(m_hasCalledEnd)))){ if (!(DEBUG_MODE)){ fscommand("gameEnd", ("" + _arg1)); }; m_hasCalledEnd = true; }; } public function onFullscreen(_arg1:Event):void{ stage.displayState = "fullScreen"; stage.quality = "low"; } 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 getDisplayObjectContainer():DisplayObjectContainer{ return (m_basePlate); } public function isLowPerformanceMode():Boolean{ return (m_hasDecreasedQuality); } public function mouseDown(_arg1:MouseEvent):void{ if (m_mouseY < 530){ m_states[m_stateIdx].onMouseDown(); }; } public function sendData(_arg1:String):void{ if (!(DEBUG_MODE)){ ExternalInterface.call("playData", _arg1); }; } public function onClickToggleSound(_arg1:MouseEvent):void{ toggleSound(); } public function leaveGame():void{ m_nextStateIdx = 2; } } }//package junglebubble
Section 43
//GameControl (junglebubble.GameControl) package junglebubble { import flash.display.*; import flash.text.*; public dynamic class GameControl extends MovieClip { public var sound:MovieClip; public var hit_exit:MovieClip; public var exit:MovieClip; public var hit_full:MovieClip; public var full:MovieClip; public var music:MovieClip; public var hit_sound:MovieClip; public var hit_music:MovieClip; public var ver_txt:TextField; } }//package junglebubble
Section 44
//JungleSounds (junglebubble.JungleSounds) package junglebubble { import sfx.*; import flash.utils.*; public class JungleSounds { private var m_soundMgr:SoundManager; private var m_interval:Array; private var m_lastPlayed:Array; public function JungleSounds(_arg1:SoundManager){ m_soundMgr = _arg1; reset(); } public function update():void{ var _local1:String; var _local2:Number; var _local3:Number; var _local4:int = getTimer(); var _local5:int = m_lastPlayed.length; while (_local5--) { if (_local4 > m_lastPlayed[_local5]){ _local1 = ("ambience" + _local5); _local2 = ((randInt(1000) / 500) - 1); _local3 = ((randInt(1000) / 3000) + 0.15); m_soundMgr.get(_local1).play(_local3, _local2); if (randInt(100) < 10){ m_soundMgr.get(_local1).fadeToAndStop(0, (randInt(500) + 1200)); } else { if (randInt(100) < 8){ m_soundMgr.get(_local1).setVolume(0); m_soundMgr.get(_local1).fadeTo(_local3, (randInt(500) + 1200)); }; }; m_lastPlayed[_local5] = ((_local4 + randInt(m_interval[_local5])) + 4000); }; }; } private function randInt(_arg1:int):int{ return ((int((Math.random() * (1 << 24))) % _arg1)); } public function reset():void{ var _local1:int = getTimer(); m_interval = [17000, 17000, 20000, 25000]; m_lastPlayed = [(randInt(m_interval[0]) + _local1), (randInt(m_interval[1]) + _local1), (randInt(m_interval[2]) + _local1), (randInt(m_interval[3]) + _local1)]; } } }//package junglebubble
Section 45
//Monkey (junglebubble.Monkey) package junglebubble { import flash.display.*; public class Monkey extends MovieClip { private var m_prevNum:int; private var m_prev:int; public var head:MovieClip; public var body:MovieClip; private var m_adjustDelay:int; private var m_feeling:int; private var m_feelingHist:Array; public var helmet:MovieClip; public static var MOOD_HAPPY = 5; public static var MOOD_NEUTRAL = 4; public static var MOOD_CONCENTRATED = 3; public static var MOOD_DISTRESSED = 2; public static var MOOD_CRYING = 1; public function Monkey(){ m_feelingHist = new Array(); gotoAndStop(1); readyNormal(); } public function update(_arg1:int):void{ var _local3:int; if ((_arg1 % 4) == 0){ if (m_feeling > 0){ m_feeling--; }; if (m_feeling < 0){ m_feeling++; }; }; if (m_feelingHist.length > 10){ m_feelingHist.shift(); }; m_feelingHist.push(m_feeling); var _local2:* = 0; while (_local3 < m_feelingHist.length) { _local2 = (_local2 + m_feelingHist[_local3]); _local3++; }; _local2 = (_local2 / m_feelingHist.length); if (_local2 >= 40){ setMood(MOOD_HAPPY); } else { if ((((_local2 < 40)) && ((_local2 >= 0)))){ setMood(MOOD_NEUTRAL); } else { if ((((_local2 < 0)) && ((_local2 >= -10)))){ setMood(MOOD_CONCENTRATED); } else { if ((((_local2 < -10)) && ((_local2 >= -40)))){ setMood(MOOD_DISTRESSED); } else { if (_local2 < -40){ setMood(MOOD_CRYING); }; }; }; }; }; } public function reset():void{ gotoAndStop(1); } public function setFrame(_arg1:int):void{ if (body.currentFrame != _arg1){ body.gotoAndStop(_arg1); }; } public function setHelmet(_arg1:Boolean):void{ helmet.visible = _arg1; } public function jumpDown():void{ gotoAndStop(3); } public function readyNormal():void{ body.stop(); m_feeling = 0; setMood(MOOD_NEUTRAL); helmet.visible = false; visible = true; } public function jumpUp():void{ gotoAndStop(4); } public function setMood(_arg1:uint):void{ if ((((_arg1 >= MOOD_CRYING)) && ((_arg1 <= MOOD_HAPPY)))){ if (head.currentFrame != _arg1){ head.gotoAndStop(_arg1); }; }; } public function feeling(_arg1:int):void{ m_feeling = (m_feeling + _arg1); } } }//package junglebubble
Section 46
//NextBonusMeter (junglebubble.NextBonusMeter) package junglebubble { import flash.display.*; public class NextBonusMeter extends MovieClip { private var m_valuei:int; private var m_targetValue:int; private var m_currentValue:int; private var m_value:Number; public function NextBonusMeter(){ stop(); m_value = 0; m_currentValue = 0; m_valuei = 0; m_targetValue = 0; } public function setValue(_arg1:Number):void{ m_targetValue = int((100 * _arg1)); } public function render():void{ if (m_currentValue != m_valuei){ m_currentValue = m_valuei; gotoAndStop(m_currentValue); }; } public function tick():void{ if (m_value > m_targetValue){ m_value = (m_value - ((m_value - m_targetValue) * 0.1667)); m_valuei = int(Math.round(m_value)); } else { m_value = (m_value + ((m_targetValue - m_value) * 0.1667)); m_valuei = int(Math.round(m_value)); }; } } }//package junglebubble
Section 47
//Rock (junglebubble.Rock) package junglebubble { import flash.display.*; public class Rock { public var posX:int; public var posY:int; private var m_wasBlasted:Boolean; private var m_blastCountDown:int; private var m_color:int; public var arrayX:int; public var arrayY:int; public var rock:RockClip; private var m_effects:DisplayObjectContainer; public var isHidden:Boolean; public function Rock(_arg1:DisplayObjectContainer){ rock = new RockClip(this); m_effects = _arg1; m_blastCountDown = 0; } public function update():void{ var _local1:*; if (((isHidden) || (!(m_wasBlasted)))){ return; }; if (m_blastCountDown == 0){ isHidden = true; if (rock.parent){ _local1 = new RockExplosion2(); m_effects.addChild(_local1); _local1.setDestroyAfterPlay(true); _local1.x = (posX + rock.parent.x); _local1.y = (posY + rock.parent.y); _local1.start(); rock.parent.removeChild(rock); }; m_wasBlasted = false; } else { if (m_blastCountDown > 0){ rock.x = ((posX + (Math.random() * 4)) - 2); rock.y = ((posY + (Math.random() * 4)) - 2); m_blastCountDown--; }; }; } public function reset(_arg1:int, _arg2:int, _arg3:int):void{ m_blastCountDown = -1; this.arrayX = _arg1; this.arrayY = _arg2; isHidden = false; m_color = _arg3; m_wasBlasted = false; rock.gotoAndStop((m_color + 1)); } public function cycle():void{ if (m_color == 2){ return; }; m_color++; m_color = (m_color % 2); rock.gotoAndStop((m_color + 1)); } public function getColor():int{ return (m_color); } public function blast(){ m_wasBlasted = true; posX = rock.x; posY = rock.y; m_blastCountDown = 20; } public function fall():void{ var _local1:*; m_wasBlasted = true; isHidden = true; if (rock.parent){ _local1 = new RockClip(null); _local1.gotoAndStop(rock.currentFrame); _local1.x = rock.x; _local1.y = rock.y; _local1.fall(); rock.parent.addChild(_local1); rock.parent.removeChild(rock); }; } } }//package junglebubble
Section 48
//RockBox (junglebubble.RockBox) package junglebubble { import flash.display.*; import timing.*; import geom.*; import math.*; public class RockBox extends MovieClip { private var m_isTimeStarted:Boolean; private var m_currentBonusSuccessLevel:int; public var isBonusLevelCompleted:Boolean; private var m_sublayer:DisplayObjectContainer; private var m_viewOffsetYLast:Number; private var m_scrollSpeed:Number; private var m_effects:DisplayObjectContainer; private var m_viewOffsetYF:IFloat; private var m_isExplosion:Boolean; private var m_rValPt:Pt; private var m_isFinished:Boolean; private var m_isFirst:Boolean; private var m_rng:MtRandom; private var m_rocks:Array; private var m_bombs:Array; private var m_scrollViewOffsetY:int; private var m_pauseScrollTicks:int; private var m_scrollBack:Bitmap; private var m_viewOffsetY:Number; private var m_cursorY:int; public function RockBox(_arg1:DisplayObjectContainer, _arg2:DisplayObjectContainer, _arg3:BonusClock, _arg4:int){ m_rValPt = new Pt(0, 0); super(); m_sublayer = _arg1; m_sublayer.x = 384; m_effects = _arg2; m_isFirst = true; } function isExplosion():Boolean{ return (m_isExplosion); } public function init(_arg1:int):void{ m_rng = new MtRandom(_arg1); if (m_isFirst){ reset(); }; m_isFirst = false; } public function render(_arg1:int, _arg2:Number):void{ var _local3:* = m_viewOffsetYF.value; if (m_viewOffsetYLast != _local3){ m_viewOffsetYLast = _local3; m_sublayer.y = _local3; }; } public function tick(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:Rock; var _local5:BubbleListener; var _local6:Bomb; var _local7:Array; var _local8:*; var _local9:Rock; var _local10:Array; var _local11:*; if (m_isFinished){ m_viewOffsetYF.set(m_viewOffsetY); return; }; _local2 = 0; while (_local2 < m_bombs.length) { _local6 = m_bombs[_local2]; if ((((_local6.getY() < 0)) || (testPoint((_local6.getX() - 384), _local6.getY())))){ _local6.explode(); _local7 = blastAt((_local6.getX() - 384), _local6.getY()); _local8 = testForCombo(_local7); if (_local8.length >= 3){ m_pauseScrollTicks = 18; for each (_local9 in _local8) { _local9.blast(); }; }; m_bombs.splice(_local2, 1); }; _local2++; }; testForDrop(); var _local12:* = true; _local2 = (m_rocks.length - 1); _local3 = 0; while (((_local12) && ((_local3 < 5)))) { _local12 = m_rocks[_local2][_local3].isHidden; _local3++; }; if (_local12){ _local10 = new Array(8); _local2 = 1; while (_local2 < 8) { _local10[_local2] = new Array(5); _local3 = 0; while (_local3 < 5) { _local10[_local2][_local3] = m_rocks[(_local2 - 1)][_local3]; _local10[_local2][_local3].arrayY++; _local3++; }; _local2++; }; m_scrollViewOffsetY = (m_scrollViewOffsetY - 62); _local10[0] = new Array(5); _local3 = 0; while (_local3 < 5) { _local4 = m_rocks[(m_rocks.length - 1)][_local3]; _local4.reset(_local3, 0, getNewColor()); _local4.rock.x = (_local3 * 62); _local4.rock.y = m_scrollViewOffsetY; _local10[0][_local3] = _local4; _local3++; }; m_rocks = _local10; }; _local2 = m_rocks.length; while (_local2--) { _local11 = m_rocks[_local2]; _local3 = _local11.length; while (_local3--) { _local4 = _local11[_local3]; if (_local11[_local3] != null){ _local11[_local3].update(); if (!(_local11[_local3].isHidden)){ if (_local11[_local3].rock.parent == null){ matrixToScreen(_local3, _local2); if (m_rValPt.y >= -31){ m_sublayer.addChild(_local11[_local3].rock); }; }; }; }; }; }; matrixToScreen(0, (m_rocks.length - 1)); m_rValPt.y = (m_rValPt.y + 31); m_viewOffsetYF.set(m_viewOffsetY); if (((!(isBonusLevelCompleted)) && ((m_rValPt.y < 445)))){ if (m_rValPt.y < 165){ m_currentBonusSuccessLevel = 3; } else { if (m_rValPt.y < 291){ m_currentBonusSuccessLevel = 2; } else { m_currentBonusSuccessLevel = 1; }; }; m_cursorY = m_rValPt.y; if (m_cursorY > 421){ m_cursorY = 421; }; if (m_cursorY < 31){ m_cursorY = 31; }; if (m_pauseScrollTicks == 0){ m_viewOffsetY = (m_viewOffsetY + m_scrollSpeed); if (m_rValPt.y > 100){ if (m_scrollSpeed > 1){ m_scrollSpeed = (m_scrollSpeed * 0.98); } else { m_scrollSpeed = 1; }; } else { m_scrollSpeed = ((4 * 1) - (Math.max(0, m_rValPt.y) / 100)); }; } else { m_pauseScrollTicks--; }; } else { if (m_rValPt.y >= 445){ if (!(m_isFinished)){ m_currentBonusSuccessLevel = 0; m_isExplosion = true; m_isFinished = true; return; }; }; }; } function testPoint(_arg1:int, _arg2:int):Boolean{ var _local3:int; var _local4:int; var _local5:*; var _local6:Rock; var _local7:int; var _local8:int; _local3 = m_rocks.length; while (_local3--) { _local5 = m_rocks[_local3]; _local4 = _local5.length; while (_local4--) { _local6 = _local5[_local4]; if (!(_local6.isHidden)){ matrixToScreen(_local4, _local3); _local7 = (_arg1 - m_rValPt.x); _local8 = (_arg2 - m_rValPt.y); if (((_local7 * _local7) + (_local8 * _local8)) < (40 * 40)){ return (true); }; }; }; }; return (false); } private function getNewColor():int{ var _local1:* = m_rng.nextInt(100); var _local2:* = 0; if (_local1 < 12){ _local2 = 2; } else { if (_local1 < 56){ _local2 = 1; }; }; return (_local2); } function isRock(_arg1:int, _arg2:int):Boolean{ if ((((((((_arg2 > (m_rocks.length - 1))) || ((_arg1 > 4)))) || ((_arg1 < 0)))) || ((_arg2 < 0)))){ return (false); }; if (m_rocks[_arg2][_arg1].isHidden){ return (false); }; return (true); } function blowAllBombs():void{ var _local1:Bomb; for each (_local1 in m_bombs) { _local1.explode(); }; m_isFinished = true; } public function blastAt(_arg1:int, _arg2:int):Array{ var _local3:int; var _local4:int; var _local5:*; var _local6:Rock; var _local7:int; var _local8:int; var _local9:Array = []; _local3 = m_rocks.length; while (_local3--) { _local5 = m_rocks[_local3]; _local4 = _local5.length; while (_local4--) { _local6 = _local5[_local4]; if (!(_local6.isHidden)){ matrixToScreen(_local4, _local3); _local7 = (_arg1 - m_rValPt.x); _local8 = (_arg2 - m_rValPt.y); if (((_local7 * _local7) + (_local8 * _local8)) < (50 * 50)){ _local6.cycle(); _local9.push(new Pt(_local4, _local3)); }; }; }; }; return (_local9); } public function reset():void{ var _local1:int; var _local2:int; var _local3:Rock; var _local4:Pt; var _local5:*; var _local6:Bomb; if (m_rocks){ _local1 = m_rocks.length; while (_local1--) { _local5 = m_rocks[_local1]; _local2 = _local5.length; while (_local2--) { _local3 = _local5[_local2]; if (_local5[_local2] != null){ if (_local5[_local2].rock.parent != null){ _local5[_local2].rock.parent.removeChild(_local5[_local2].rock); }; }; }; }; _local1 = 0; while (_local1 < m_bombs.length) { _local6 = m_bombs[_local1]; if (_local6.bomb.parent){ _local6.bomb.parent.removeChild(_local6.bomb); }; _local1++; }; }; m_pauseScrollTicks = 0; m_scrollSpeed = 4; m_cursorY = 31; isBonusLevelCompleted = false; m_isFinished = false; m_isTimeStarted = false; m_currentBonusSuccessLevel = 0; m_bombs = new Array(); m_isExplosion = false; m_viewOffsetY = (-62 * 7); m_viewOffsetYLast = -1; m_viewOffsetYF = new IFloat(m_viewOffsetY); x = 384; y = m_viewOffsetY; m_scrollViewOffsetY = 0; m_rocks = new Array(8); _local1 = 0; while (_local1 < m_rocks.length) { m_rocks[_local1] = new Array(5); _local2 = 0; while (_local2 < 5) { _local3 = new Rock(m_effects); _local3.reset(_local2, _local1, getNewColor()); _local3.isHidden = (_local2 > (m_rocks.length - _local1)); _local3.rock.x = (_local2 * 62); _local3.rock.y = (_local1 * 62); m_rocks[_local1][_local2] = _local3; _local2++; }; _local1++; }; } private function matrixToScreen(_arg1:int, _arg2:int):void{ var _local3:* = (_arg1 * 62); var _local4:* = (((_arg2 * 62) + m_viewOffsetY) + m_scrollViewOffsetY); m_rValPt.x = _local3; m_rValPt.y = _local4; } function getColorByPos(_arg1:int, _arg2:int):int{ if ((((((((_arg2 > (m_rocks.length - 1))) || ((_arg1 > 4)))) || ((_arg1 < 0)))) || ((_arg2 < 0)))){ return (-1); }; if (m_rocks[_arg2][_arg1].isHidden){ return (-1); }; return (m_rocks[_arg2][_arg1].getColor()); } public function addBomb(_arg1:Bomb):void{ m_bombs.push(_arg1); } function getCursorPos():int{ return (m_cursorY); } function getBonusSuccessLevel():int{ return (m_currentBonusSuccessLevel); } public function testForDrop():void{ var _local1:int; var _local2:int; var _local3:Rock; var _local4:Rock; var _local5:int; var _local6:int; var _local7:String; var _local8:Array = new Array(); _local2 = m_rocks[0].length; while (_local2--) { if (!(m_rocks[0][_local2].isHidden)){ _local8.push(m_rocks[0][_local2]); }; }; var _local9:* = {}; var _local10:Array = [[1, 0], [0, 1], [-1, 0], [0, -1]]; var _local11:Object = {}; _local1 = m_rocks.length; while (_local1--) { _local2 = m_rocks[_local1].length; while (_local2--) { if (!(m_rocks[_local1][_local2].isHidden)){ _local11[((_local2 + ",") + _local1)] = m_rocks[_local1][_local2]; }; }; }; while (_local8.length > 0) { _local4 = _local8.shift(); _local1 = 0; while (_local1 < _local10.length) { _local5 = (_local4.arrayX + _local10[_local1][0]); _local6 = (_local4.arrayY + _local10[_local1][1]); _local7 = ((_local5 + ",") + _local6); if (((!(_local9[_local7])) && (isRock(_local5, _local6)))){ _local9[_local7] = 1; delete _local11[_local7]; _local8.push(m_rocks[_local6][_local5]); }; _local1++; }; }; for each (_local3 in _local11) { _local3.fall(); }; } function testForCombo(_arg1:Array):Array{ var _local2:Rock; var _local3:int; var _local4:int; var _local5:String; var _local6:int; var _local7:* = {}; var _local8:Array = new Array(); var _local9:Array = new Array(); var _local10:Array = [[1, 0], [0, 1], [-1, 0], [0, -1]]; _local6 = 0; while (_local6 < _arg1.length) { _local9.push(m_rocks[_arg1[_local6].y][_arg1[_local6].x]); _local6++; }; while (_local9.length > 0) { _local2 = _local9.shift(); if (_local2.getColor() != 2){ _local6 = 0; while (_local6 < _local10.length) { _local3 = (_local2.arrayX + _local10[_local6][0]); _local4 = (_local2.arrayY + _local10[_local6][1]); _local5 = ((_local3 + ",") + _local4); if (((!(_local7[_local5])) && ((getColorByPos(_local3, _local4) == _local2.getColor())))){ _local8.push(m_rocks[_local4][_local3]); _local9.push(m_rocks[_local4][_local3]); }; _local7[_local5] = 1; _local6++; }; }; }; return (_local8); } } }//package junglebubble
Section 49
//RockClip (junglebubble.RockClip) package junglebubble { import flash.display.*; import flash.events.*; import flash.utils.*; public class RockClip extends MovieClip { private var startY:int; private var m_startTime:int; public function RockClip(_arg1:Rock){ stop(); } public function animateDrop(_arg1:Event):void{ var _local2:int = getTimer(); if (m_startTime < 0){ m_startTime = _local2; startY = y; }; var _local3:* = ((_local2 - m_startTime) / 100); y = (y + _local3); if (y > 750){ removeEventListener(Event.ENTER_FRAME, animateDrop); parent.removeChild(this); }; } public function fall():void{ m_startTime = -1; addEventListener(Event.ENTER_FRAME, animateDrop); } } }//package junglebubble
Section 50
//RollingScore (junglebubble.RollingScore) package junglebubble { import flash.text.*; import util.*; public class RollingScore { private var m_pad:int; private var m_target:TextField; private var m_valuei:int; private var m_targetValue:int; private var m_currentVal:int; private var m_value:Number; public function RollingScore(_arg1:TextField, _arg2:int, _arg3:int){ m_pad = _arg3; m_currentVal = -1; m_target = _arg1; m_value = _arg2; m_valuei = _arg2; m_targetValue = _arg2; } public function update():void{ if (m_value > m_targetValue){ m_value = (m_value - ((m_value - m_targetValue) * 0.1667)); m_valuei = int(Math.round(m_value)); } else { m_value = (m_value + ((m_targetValue - m_value) * 0.1667)); m_valuei = int(Math.round(m_value)); }; } public function setValue(_arg1:int):void{ m_targetValue = _arg1; } public function render():void{ if (m_currentVal != m_valuei){ m_currentVal = m_valuei; if (m_pad < 0){ m_target.text = ("" + m_currentVal); } else { m_target.text = Numbers.itoa(m_currentVal, m_pad); }; }; } } }//package junglebubble
Section 51
//SharedData (junglebubble.SharedData) package junglebubble { public class SharedData { public var isGameWin:Boolean; public var totalGameTime:int; public var shotBonus:int; public var buildDate:Date; public var score:int; public var timeBonus:int; public var globalTick:int; public var numGameTicksLeft:int; public var bonusLevel:Array; public var build:int; public var isGameOver:Boolean; public var globalSeed:int; public var isShortMode:Boolean; public var bonusLevelSubScore:Array; public var finalScore:int; public function SharedData(){ isShortMode = false; bonusLevel = new Array(); bonusLevelSubScore = new Array(); score = 0; timeBonus = 0; finalScore = 0; shotBonus = 250000; isGameWin = false; isGameOver = false; globalSeed = 0; totalGameTime = (numGameTicksLeft = int(((GameBase.TICK_RATE * 60) * 5))); } } }//package junglebubble
Section 52
//State (junglebubble.State) package junglebubble { public interface State { function onMouseUp():void; function hasSoundButton():Boolean; function engage():void; function hasExitButton():Boolean; function onPoorFrameRate():void; function onMouseDown():void; function onGameQuitButton():void; function render(_arg1:int, _arg2:Number):void; function onMouseMove(_arg1:int, _arg2:int):void; function tick(_arg1:int):void; function disengage():void; } }//package junglebubble
Section 53
//StateBase (junglebubble.StateBase) package junglebubble { public class StateBase implements State { public function engage():void{ } public function onMouseMove(_arg1:int, _arg2:int):void{ } public function hasSoundButton():Boolean{ return (true); } public function onPoorFrameRate():void{ } public function onMouseUp():void{ } public function hasExitButton():Boolean{ return (true); } public function onGameQuitButton():void{ } public function render(_arg1:int, _arg2:Number):void{ } public function onMouseDown():void{ } public function tick(_arg1:int):void{ } public function disengage():void{ } } }//package junglebubble
Section 54
//StateGameMode (junglebubble.StateGameMode) package junglebubble { import sfx.*; import flash.display.*; import geom.*; import math.*; public class StateGameMode extends StateBase implements BubbleListener { private var m_bonusModeReadyAt:int; private var m_isMouseDown:Boolean; private var m_monkeyJumpDownAt:int; private var m_bonusSubSuccessLevel:Number; private var m_selectedBonusGameIdx:int; private var m_bonusSign:BonusCompleteSign; private var m_tick:int; private var m_collidableList:Array; private var m_restartMusicAt:int; private var m_screenScrollDownAt:int; private var m_main:GameAssembly; private var m_bubbleBox:BubbleBox; private var m_ballRng:MtRandom; private var m_bubbleLauncher:BubbleLauncher; private var m_bonusGame:BonusGame; private var m_isNormalGamePaused:Boolean; private var m_bonusGameRock:BonusGameRock; private var m_mouseX:int; private var m_mouseY:int; private var m_resumeNormalGameAt:int; private var m_tickList:Array; private var m_nextBubble:Bubble; private var m_bonusGameSurvivor:BonusGameSurvivor; private var m_monkeyJumpUpAt:int; private var m_game:Game; private var m_bonusGameNull:BonusGameNull; private var m_lastScoring:int; private var m_leaveGameAt:int; private var m_lastBonusGameIdx:int; private var m_bonusRng:MtRandom; private var m_nextBonusTestAt:int; private var m_isBonusModePrepare:Boolean; private var m_bushes:Bushes; private var m_aimCursor:AimCursor; private var m_lastTickScore:int; private var m_bonusSuccessLevel:int; private var m_monkeyJumpUpReadyAt:int; private var m_removeBackAt:int; private var m_completedBonusLevels:int; private var m_bonusLevel:int; private var m_screenScrollUpAt:int; private var m_isBonusModeReady:Boolean; private var m_newMouseX:int; private var m_newMouseY:int; private var m_bonusMeter:NextBonusMeter; private var m_aimBubble:Bubble; private var m_bonusGameDefense:BonusGameDefense; private var m_jungleSounds:JungleSounds; private var m_bubbleAimMoving:int; private var m_bonusGameBubbleMining:BonusGameBubbleMining; public function StateGameMode(_arg1:Game, _arg2:int){ m_isBonusModeReady = false; m_leaveGameAt = -1; m_restartMusicAt = -1; m_lastBonusGameIdx = -1; m_selectedBonusGameIdx = -1; m_monkeyJumpDownAt = -1; m_screenScrollDownAt = -1; m_bonusModeReadyAt = -1; m_screenScrollUpAt = -1; m_monkeyJumpUpAt = -1; m_monkeyJumpUpReadyAt = -1; m_resumeNormalGameAt = -1; m_completedBonusLevels = 0; m_game = _arg1; m_nextBonusTestAt = 250; m_tickList = new Array(); m_collidableList = new Array(); m_collidableList.push(new Line(648, -2500, 648, 500)); m_collidableList.push(new Line(367, -2500, 367, 500)); m_bonusLevel = 1; m_isMouseDown = false; m_isNormalGamePaused = false; } public function onNoMoreBubbles():void{ var _local1:SharedData = m_game.getSharedData(); if (!(_local1.isGameOver)){ m_game.sendData((("200," + m_tick) + ",0=0")); m_main.monkey_over.feeling(100); _local1.isGameOver = true; _local1.isGameWin = true; m_leaveGameAt = (m_tick + (GameBase.TICK_RATE * 2)); m_game.getSoundManager().get("ambience3").play(); }; } public function onBeforeLeaveBonusMode(_arg1:int, _arg2:Number):void{ m_game.sendData((((((("101," + m_tick) + ",") + _arg1) + ",") + _arg2) + ",0=0")); if (_arg1 > 0){ m_completedBonusLevels++; m_bonusSign = new BonusCompleteSign(); m_bonusSign.setGame(m_game); m_main.addChild(m_bonusSign); m_bonusSign.x = 762; m_bonusSign.y = 760; m_bonusSign.show(_arg1, _arg2, m_completedBonusLevels); }; } public function onLeaveBonusMode(_arg1:int, _arg2:Number):void{ var _local3:SharedData; m_game.sendData((((((("102," + m_tick) + ",") + _arg1) + ",") + _arg2) + ",0=0")); if (_arg1 > 0){ m_main.monkey_over.feeling(120); m_game.getSharedData().bonusLevel.push(_arg1); m_game.getSharedData().bonusLevelSubScore.push(_arg2); } else { m_main.monkey_over.feeling(-100); m_game.getMusicManager().get("bonus_end_bad").play(); }; m_bonusSuccessLevel = _arg1; m_bonusSubSuccessLevel = _arg2; m_bubbleBox.visitBonusLevelEnd(); if ((((m_bubbleBox.getNumBubbles() == 0)) || (!((m_leaveGameAt == -1))))){ _local3 = m_game.getSharedData(); if (!(_local3.isGameOver)){ _local3.isGameOver = true; _local3.isGameWin = true; }; m_game.leaveGame(); return; }; if (m_bonusSuccessLevel > 0){ m_game.getMusicManager().get("loop_game").loop(0); m_game.getMusicManager().get("loop_game").fadeTo(1, 500); } else { m_restartMusicAt = (m_tick + 70); }; if (m_game.getSharedData().isShortMode){ m_leaveGameAt = (m_tick + 1); } else { m_aimCursor.visible = true; m_isBonusModeReady = false; m_isBonusModePrepare = false; m_screenScrollUpAt = (m_tick + 2); m_monkeyJumpUpAt = (m_tick + 12); m_monkeyJumpUpReadyAt = (m_tick + 30); m_resumeNormalGameAt = (m_tick + GameBase.TICK_RATE); }; } override public function onPoorFrameRate():void{ m_main.hasPoorFrameRate(); } override public function engage():void{ var _local1:SoundManager = m_game.getMusicManager(); _local1.get("loop_game").loop(0); _local1.get("loop_game").fadeTo(1, 500); m_jungleSounds = new JungleSounds(_local1); m_main = new GameAssembly(); m_game.getDisplayObjectContainer().addChild(m_main); m_bushes = new Bushes(); m_bushes.setGame(m_game); m_bushes.visible = true; m_main.addChild(m_bushes); m_bushes.pullApart(); m_removeBackAt = -1; m_main.monkey_over.setMood(Monkey.MOOD_NEUTRAL); m_main.monkey_under.setMood(Monkey.MOOD_NEUTRAL); m_main.monkey_under.setHelmet(true); m_main.lever_normal.inner.gotoAndStop(1); m_main.lever_underworld.inner.gotoAndStop(1); var _local2:SharedData = m_game.getSharedData(); var _local3:* = 25; m_bubbleBox = new BubbleBox(m_game, _local2, _local2.globalSeed, _local3, [1, 2, 3, 4, 5], 15); m_bubbleBox.addListener(this); var _local4:* = new MovieClip(); m_main.top_layer.top.addChild(_local4); m_main.bubble_base.addChild(m_bubbleBox); m_bubbleBox.setDropBubbleContainer(_local4); m_game.sendData((((("99," + m_tick) + ",") + _local2.globalSeed) + ",0=0")); m_main.statue.setGame(m_game); m_main.statue.setLandingCallback(onStatuePieceLand); m_ballRng = new MtRandom((_local2.globalSeed + 2)); m_main.bonus_intro_sign.setGame(m_game); m_main.bonussign.setGame(m_game); m_bonusRng = new MtRandom((_local2.globalSeed + 5)); m_aimCursor = m_main.aim_over; m_aimCursor.setAncorPosition(521, 477); m_aimCursor.setVisibleLimit(340, 4, 680, 560); m_bubbleLauncher = m_main.bubble_launcher; m_bubbleLauncher.setPosition(521, 476); m_bonusMeter = m_main.bonus_meter; m_bonusGameDefense = new BonusGameDefense(m_game, m_main.rock_base.rock_effects, this, m_main, m_tickList); m_bonusGameBubbleMining = new BonusGameBubbleMining(m_game, m_main.rock_base.rock_effects, this, m_main, m_tickList); m_bonusGameSurvivor = new BonusGameSurvivor(m_game, m_main.rock_base.rock_effects, this, m_main, m_tickList); m_bonusGameRock = new BonusGameRock(m_game, m_main.rock_base.rock_effects, this, m_main, m_tickList); m_bonusGameNull = new BonusGameNull(m_game, m_main.rock_base.rock_effects, this, m_main, m_tickList); m_bubbleLauncher.setAimChangeCallback(onChangeBubbleAim); nextBubble(); } override public function disengage():void{ if (((((m_isBonusModeReady) || (m_isBonusModePrepare))) && (m_bonusGame))){ m_bonusGame.tidy(true); }; var _local1:SoundManager = m_game.getMusicManager(); if (_local1.get("loop_bonus").isPlaying()){ _local1.get("loop_bonus").fadeToAndStop(0, 500); }; if (_local1.get("loop_game").isPlaying()){ _local1.get("loop_game").fadeToAndStop(0, 500); }; m_game.getDisplayObjectContainer().removeChild(m_main); } public function onBubbleOverflow():void{ var _local1:SharedData = m_game.getSharedData(); if (!(_local1.isGameOver)){ m_main.monkey_over.feeling(-100); _local1.isGameOver = true; _local1.isGameWin = false; m_leaveGameAt = (m_tick + GameBase.TICK_RATE); }; } private function nextBubble():void{ var _local1:int; var _local2:Array; if (m_aimBubble == null){ m_aimBubble = new Bubble(); m_aimBubble.assureFull(); m_aimBubble.setCollidableList(m_collidableList); m_main.bubble_base.addChild(m_aimBubble.bubble); _local2 = m_bubbleBox.getUniqueColors(); _local1 = _local2[m_ballRng.nextInt(_local2.length)]; m_aimBubble.setColorIndex(_local1); m_aimBubble.gotoAimPosition(); } else { m_aimBubble = m_nextBubble; m_aimBubble.animateLongJump(); m_tickList.push(m_aimBubble); }; m_bubbleLauncher.setBubble(m_aimBubble); m_nextBubble = new Bubble(); m_nextBubble.assureFull(); m_nextBubble.setCollidableList(m_collidableList); m_main.bubble_base.addChild(m_nextBubble.bubble); _local2 = m_bubbleBox.getUniqueColors(); _local1 = _local2[m_ballRng.nextInt(_local2.length)]; m_nextBubble.setColorIndex(_local1); m_nextBubble.gotoPreviewPosition(); m_nextBubble.animateIntoView(); m_tickList.push(m_nextBubble); } public function onBonusBubbleCollected(_arg1:int):void{ m_isNormalGamePaused = true; m_isBonusModePrepare = true; m_aimCursor.visible = false; m_monkeyJumpDownAt = (m_tick + 60); m_screenScrollDownAt = (m_monkeyJumpDownAt + 40); m_bonusModeReadyAt = (m_screenScrollDownAt + 25); m_selectedBonusGameIdx = m_bonusRng.nextInt(3); if (m_lastBonusGameIdx == m_selectedBonusGameIdx){ if (m_bonusRng.nextDouble() > 0.5){ if (++m_selectedBonusGameIdx > 2){ m_selectedBonusGameIdx = 0; }; } else { if (--m_selectedBonusGameIdx < 0){ m_selectedBonusGameIdx = 2; }; }; }; m_lastBonusGameIdx = m_selectedBonusGameIdx; if (m_selectedBonusGameIdx == 0){ m_bonusGame = m_bonusGameDefense; }; if (m_selectedBonusGameIdx == 1){ m_bonusGame = m_bonusGameBubbleMining; }; if (m_selectedBonusGameIdx == 2){ m_bonusGame = m_bonusGameSurvivor; }; var _local2:int = m_bonusRng.nextInt(2147483647); m_game.sendData((((((("100," + m_tick) + ",") + _arg1) + ",") + _local2) + ",0=0")); m_bonusGame.init(_local2); m_game.getMusicManager().get("loop_game").fadeToAndStop(0, 500); m_main.monkey_over.feeling(250); m_main.bonussign.show(_arg1, m_selectedBonusGameIdx); m_bubbleBox.visitBonusLevel(); m_main.items.gotoAndStop((m_completedBonusLevels + 1)); } public function onChangeBubbleAim(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.abs((_arg1 - _arg2)); m_bubbleAimMoving = (m_bubbleAimMoving + 1); m_main.monkey_over.setFrame(((_arg1 < (-(Math.PI) / 2))) ? 2 : 1); m_main.lever_normal.rotation = (Math.sin((_arg1 / 2)) * 12); } override public function tick(_arg1:int):void{ var _local2:TickObject; var _local4:int; m_tick = _arg1; var _local3:SharedData = m_game.getSharedData(); m_lastTickScore = _local3.score; if (_local3.numGameTicksLeft == int((5000 / GameBase.TICK_RATE))){ m_game.getSoundManager().get("time_warning").play(); }; if ((((_local3.numGameTicksLeft == 0)) && (!(_local3.isGameOver)))){ _local3.isGameOver = true; _local3.isGameWin = false; m_leaveGameAt = (_arg1 + (GameBase.TICK_RATE * 2)); m_game.getSoundManager().get("time_out").play(); m_bubbleBox.disableBubbles(); }; if (_arg1 == m_leaveGameAt){ m_game.leaveGame(); return; }; if (m_removeBackAt == -1){ m_removeBackAt = (_arg1 + 50); }; if (m_removeBackAt == _arg1){ m_game.hideBack(); }; handleMouseDown(); if (_arg1 == m_bonusModeReadyAt){ m_isBonusModeReady = true; m_isBonusModePrepare = false; m_main.bonus_intro_sign.show(m_selectedBonusGameIdx); }; if (_arg1 == m_monkeyJumpDownAt){ m_main.monkey_over.jumpDown(); m_game.getSoundManager().get("monkey_jump_down").play(); }; if (_arg1 == m_screenScrollDownAt){ m_main.scrollDown(); }; if (_arg1 == m_screenScrollUpAt){ m_main.scrollUp(); }; if (_arg1 == m_monkeyJumpUpAt){ m_main.monkey_jumper.visible = true; m_main.monkey_jumper.jumpUp(); m_game.getSoundManager().get("monkey_jump_up").play(); }; if (_arg1 == m_restartMusicAt){ m_game.getMusicManager().get("loop_game").loop(0); m_game.getMusicManager().get("loop_game").fadeTo(1, 1000); }; if (_arg1 == m_monkeyJumpUpReadyAt){ m_main.monkey_jumper.reset(); m_main.monkey_over.readyNormal(); m_main.monkey_over.visible = true; if (m_bonusSuccessLevel == 0){ m_main.monkey_smoke.start(); } else { m_main.statue.dropBlock(m_bonusSuccessLevel, m_bonusSubSuccessLevel); }; }; if (_arg1 == m_resumeNormalGameAt){ m_jungleSounds.reset(); m_bonusGame.tidy(false); if (m_bonusSign){ m_main.removeChild(m_bonusSign); }; m_bonusSign = null; m_isNormalGamePaused = false; }; if (!(m_isNormalGamePaused)){ if (!(m_game.isLowPerformanceMode())){ m_jungleSounds.update(); }; m_bubbleBox.tick(_arg1); m_main.monkey_over.update(_arg1); m_bubbleLauncher.tick(_arg1, m_mouseX, m_mouseY); m_bonusMeter.setValue(m_bubbleBox.getBonusBubbleProximityFactor()); m_bonusMeter.tick(); m_aimCursor.tick(m_mouseX, m_mouseY); if (!(_local3.isGameOver)){ _local3.numGameTicksLeft--; }; } else { if (m_isBonusModeReady){ m_main.bonus_intro_sign.tick(); if (m_main.bonus_intro_sign.isFinished()){ m_bonusGame.tick(_arg1, m_mouseX, m_mouseY); }; }; }; if (m_bubbleAimMoving > 0){ m_main.rep_over.visible = ((_arg1 % 3) == 0); m_bubbleAimMoving--; }; m_main.bonussign.tick(_arg1); m_main.tick(_arg1); while (_local4 < m_tickList.length) { _local2 = m_tickList[_local4]; _local2.tick(_arg1); if (_local2.isRemoving){ _local2.isRemoving = false; m_tickList.splice(_local4, 1); } else { _local4++; }; }; var _local5:int = (_local3.score - m_lastTickScore); if (_local5 > 0){ m_main.monkey_over.feeling((_local5 / 100)); m_lastScoring = _arg1; }; if ((_arg1 % 4) == 0){ if ((_arg1 - m_lastScoring) > 100){ if ((_arg1 - m_lastScoring) < 500){ m_main.monkey_over.feeling((-((_arg1 - m_lastScoring)) / 100)); } else { m_main.monkey_over.feeling(-1); }; }; }; if (_local5 != 0){ m_game.sendData(((("2," + m_tick) + ",0=") + _local5)); }; } override public function render(_arg1:int, _arg2:Number):void{ var _local3:int; while (_local3 < m_tickList.length) { m_tickList[_local3].render(_arg1, _arg2); _local3++; }; if (!(m_isNormalGamePaused)){ m_bubbleLauncher.render(_arg1, _arg2); m_aimCursor.update(_arg1, _arg2); m_bubbleBox.render(_arg1, _arg2); } else { if (m_isBonusModeReady){ if (m_main.bonus_intro_sign.isFinished()){ m_bonusGame.render(_arg1, _arg2); }; }; }; var _local4:SharedData = m_game.getSharedData(); m_main.setBonusScoreTime(_local4.shotBonus, _local4.score, _local4.numGameTicksLeft); m_main.bonussign.render(); m_main.render(_arg1, _arg2); m_bonusMeter.render(); } private function handleMouseDown():void{ m_mouseX = m_newMouseX; m_mouseY = m_newMouseY; if (!(m_isMouseDown)){ return; }; m_isMouseDown = false; if (m_isBonusModeReady){ if (m_main.bonus_intro_sign.isFinished()){ m_bonusGame.onMouseDown(); }; } else { if (!(m_isNormalGamePaused)){ if (((m_bubbleBox.canFire()) && (m_bubbleLauncher.fire()))){ m_game.getSoundManager().get("shot1").play(); m_game.getSharedData().shotBonus = (m_game.getSharedData().shotBonus - 2000); if (m_game.getSharedData().shotBonus < 0){ m_game.getSharedData().shotBonus = 0; }; m_bubbleBox.addLiveBubble(m_aimBubble); m_tickList.push(m_aimBubble); nextBubble(); }; }; }; } override public function onGameQuitButton():void{ if (m_game.getSharedData().isGameOver){ return; }; m_game.getSharedData().shotBonus = 0; m_game.sendData((("113," + m_tick) + ",0=0")); } public function onBubbleRemove():void{ var _local1:int; var _local2:int; var _local4:Boolean; var _local3:Array = m_bubbleBox.getUniqueColors(); _local2 = 0; while (((!(_local4)) && ((_local2 < _local3.length)))) { if (m_aimBubble.getColorIndex() == _local3[_local2]){ _local4 = true; }; _local2++; }; if (!(_local4)){ _local1 = _local3[m_ballRng.nextInt(_local3.length)]; m_aimBubble.setColorIndex(_local1); }; _local4 = false; _local2 = 0; while (((!(_local4)) && ((_local2 < _local3.length)))) { if (m_nextBubble.getColorIndex() == _local3[_local2]){ _local4 = true; }; _local2++; }; if (!(_local4)){ _local1 = _local3[m_ballRng.nextInt(_local3.length)]; m_nextBubble.setColorIndex(_local1); }; } public function onStatuePieceLand(_arg1:int, _arg2:int, _arg3:Number):void{ } public function onBonusBubbleWasted():void{ m_main.monkey_over.feeling(-60); } override public function onMouseDown():void{ if (m_game.getSharedData().isGameOver){ return; }; m_game.sendData((((((("1," + m_tick) + ",") + m_mouseX) + ",") + m_mouseY) + ",0=0")); m_isMouseDown = true; } override public function onMouseMove(_arg1:int, _arg2:int):void{ m_newMouseX = _arg1; m_newMouseY = _arg2; } } }//package junglebubble
Section 55
//StateGameOver (junglebubble.StateGameOver) package junglebubble { import flash.events.*; public class StateGameOver extends StateBase { private var m_game:Game; private var m_isEarlyExit:Boolean; private var m_isMouseDown:Boolean; private var m_sendQuitAt:int; private var m_sendEndAt:int; private var m_tick:int; private var m_bushes:Bushes; public function StateGameOver(_arg1:Game, _arg2:int){ m_game = _arg1; } override public function onMouseDown():void{ m_isMouseDown = true; if (GameBase.MARK){ Eventer.getInstance().dispatchEvent(new Event("restartGame")); GameBase.MARK = false; }; } override public function engage():void{ var _local1:Number; m_sendEndAt = (GameBase.TICK_RATE * 20); m_isEarlyExit = false; m_sendQuitAt = -1; var _local2:SharedData = m_game.getSharedData(); if (!(_local2.isGameWin)){ _local2.shotBonus = 0; } else { _local1 = GameBase.TICK_RATE; _local2.timeBonus = int((((_local2.numGameTicksLeft / _local1) / (_local2.totalGameTime / _local1)) * 10000)); }; var _local3:* = 0; var _local4:* = 0; while (_local4 < _local2.bonusLevel.length) { _local3 = (_local3 + ((_local2.bonusLevel[_local4] * 5000) + int((_local2.bonusLevelSubScore[_local4] * 2500)))); _local4++; }; m_game.sendData((((((((((("201," + m_tick) + ",") + _local2.score) + ",") + _local2.shotBonus) + ",") + _local3) + ",") + _local2.timeBonus) + ",0=0")); _local2.finalScore = (((_local2.score + _local2.shotBonus) + _local3) + _local2.timeBonus); m_game.finalScore(_local2.finalScore); m_bushes = new Bushes(); m_bushes.setGame(m_game); m_bushes.gotoAndStop(1); m_game.getDisplayObjectContainer().addChild(m_bushes); } override public function tick(_arg1:int):void{ m_tick = _arg1; if (_arg1 == 20){ m_bushes.pullDown(); }; if (_arg1 == 40){ m_game.getSoundManager().get("sign_appear").play(); m_bushes.showSign(true); }; if (_arg1 == 5){ m_game.getMusicManager().get("outro").play(); }; if ((((((((_arg1 > 45)) && (m_isMouseDown))) && (!(m_bushes.isStatueComplete())))) && (!(m_isEarlyExit)))){ m_isEarlyExit = true; m_isMouseDown = false; m_bushes.hurryScoreCount(); m_sendEndAt = (_arg1 + (GameBase.TICK_RATE * 4)); }; if ((((((((_arg1 > 80)) && ((m_sendQuitAt == -1)))) && (m_isMouseDown))) && (!(m_isEarlyExit)))){ m_sendEndAt = _arg1; }; if (m_sendEndAt == _arg1){ m_sendQuitAt = (_arg1 + (GameBase.TICK_RATE * 2)); m_bushes.hideSign(); m_game.getSoundManager().get("sign_appear").play(); }; if (m_sendQuitAt == _arg1){ m_game.destroy(); }; m_bushes.tick(); m_isMouseDown = false; } override public function render(_arg1:int, _arg2:Number):void{ m_bushes.render(); } override public function hasSoundButton():Boolean{ return (true); } override public function hasExitButton():Boolean{ return (false); } override public function disengage():void{ m_game.getMusicManager().get("outro").fadeToAndStop(0, 1000); } } }//package junglebubble
Section 56
//StateIntro (junglebubble.StateIntro) package junglebubble { public class StateIntro extends StateBase { private var m_game:Game; private var m_hasLeft:Boolean; private var m_hideAt:int; private var m_bushes:Bushes; private var m_autoLeaveDelay:int; private var m_tick:int; private var m_leaveAt:int; private var m_nextSlideAt:int; private var ss:int; public function StateIntro(_arg1:Game, _arg2:int){ m_autoLeaveDelay = (GameBase.TICK_RATE * 15); m_hideAt = -1; m_leaveAt = -1; m_hasLeft = false; m_game = _arg1; m_tick = -2; } override public function onMouseDown():void{ leave(); } override public function render(_arg1:int, _arg2:Number):void{ } override public function engage():void{ m_game.getMusicManager().get("intro").play(); m_bushes = new Bushes(); m_bushes.setGame(m_game); m_bushes.visible = true; m_nextSlideAt = (GameBase.TICK_RATE * 6); m_game.getDisplayObjectContainer().addChild(m_bushes); } override public function tick(_arg1:int):void{ m_tick = _arg1; if (_arg1 == m_autoLeaveDelay){ leave(); }; if (_arg1 == 15){ m_bushes.showSign(false); m_game.getSoundManager().get("sign_appear").play(0.7); }; if (m_hideAt == _arg1){ m_bushes.hideSign(); m_game.getSoundManager().get("sign_appear").play(0.7); }; if (m_leaveAt == _arg1){ m_game.leaveState(); }; if (m_nextSlideAt == _arg1){ if (!(m_bushes.gotoNextInstructionSlide())){ m_nextSlideAt = (_arg1 + (GameBase.TICK_RATE * 5)); }; }; var _local2:* = ((Math.max(0, (m_autoLeaveDelay - _arg1)) / GameBase.TICK_RATE) * 1000); m_bushes.setTimeLeftToAutoExit(_local2); } override public function hasExitButton():Boolean{ return (false); } override public function hasSoundButton():Boolean{ return (true); } override public function onGameQuitButton():void{ m_game.getSharedData().shotBonus = 0; } override public function disengage():void{ m_game.getMusicManager().get("intro").fadeToAndStop(0, 500); m_game.getDisplayObjectContainer().removeChild(m_bushes); m_bushes = null; } public function leave(){ if (!(m_hasLeft)){ m_hasLeft = true; m_hideAt = (m_tick + 5); m_leaveAt = (m_tick + 25); }; } } }//package junglebubble
Section 57
//Statue (junglebubble.Statue) package junglebubble { import flash.display.*; import flash.events.*; import flash.utils.*; public class Statue extends MovieClip { private var m_startTime:int; private var m_activePiece:Array; private var m_game:Game; public var jewel1:jewels_small; public var jewel2:jewels_small; public var jewel3:jewels_big; public var belly:MovieClip; private var m_spans:Array; private var m_pieceList:Array; private var m_nextPieceLevel:int; public var jewel3_glow:MovieClip; public var jewel1_glow:MovieClip; private var m_callback:Function; public var head:MovieClip; private var m_nextPiece:int; private var delay:int; private var m_lastFrame:uint; public var feet:MovieClip; public var crown:MovieClip; public var jewel2_glow:MovieClip; public function Statue(){ m_spans = [[1, 15, ["feet"]], [15, 29, ["belly"]], [29, 43, ["head"]], [44, 58, ["crown"]], [58, 82, ["jewel1"]], [82, 106, ["jewel2"]], [106, 130, ["jewel3"]]]; feet.stop(); belly.stop(); head.stop(); crown.stop(); jewel1.stop(); jewel2.stop(); jewel3.stop(); stop(); m_pieceList = []; m_lastFrame = 0; m_nextPiece = 0; visible = false; } public function setGame(_arg1:Game):void{ m_game = _arg1; } public function setLandingCallback(_arg1:Function):void{ m_callback = _arg1; } public function enterFrame(_arg1:Event):void{ var _local2:Array; var _local3:*; var _local4:int = getTimer(); if (m_startTime < 0){ m_activePiece = m_pieceList.shift(); _local2 = m_spans[m_activePiece[0]][2]; _local3 = 0; while (_local3 < _local2.length) { this[_local2[_local3]].gotoAndStop(m_activePiece[1]); _local3++; }; m_startTime = _local4; }; var _local5:int = m_activePiece[0]; var _local6:* = ((1 / 25) * 1000); var _local7:uint = (m_spans[_local5][0] + uint(Math.round((((_local4 - m_startTime) / _local6) + 1)))); if ((((_local7 > (m_spans[_local5][1] - 8))) && ((_local4 > delay)))){ if (m_game){ if (_local5 < 4){ m_game.getSoundManager().get("statue_lands").play(); } else { m_game.getSoundManager().get(("jewel" + (_local5 - 3))).play(); }; delay = (_local4 + 500); }; }; if (_local7 > m_spans[_local5][1]){ if (m_callback != null){ if ((((_local5 < 4)) || ((_local5 == 6)))){ m_callback(_local5, (4 - m_activePiece[1]), m_activePiece[2]); }; }; if (m_pieceList.length > 0){ m_startTime = -1; } else { removeEventListener(Event.ENTER_FRAME, enterFrame); m_activePiece = null; }; gotoAndStop(m_spans[_local5][1]); return; }; if (_local7 != m_lastFrame){ gotoAndStop(_local7); m_lastFrame = _local7; }; } public function dropBlock(_arg1:int, _arg2:Number):void{ if (_arg1 > 3){ _arg1 = 3; }; if (_arg1 < 1){ _arg1 = 1; }; if (m_nextPiece < m_spans.length){ if (m_pieceList.length == 0){ addEventListener(Event.ENTER_FRAME, enterFrame); }; if (m_nextPiece == 4){ m_pieceList.push([m_nextPiece, (4 - _arg1), _arg2]); m_nextPiece++; m_pieceList.push([m_nextPiece, (4 - _arg1), _arg2]); m_nextPiece++; m_pieceList.push([m_nextPiece, (4 - _arg1), _arg2]); m_nextPiece++; } else { m_pieceList.push([m_nextPiece, (4 - _arg1), _arg2]); m_nextPiece++; }; m_startTime = -1; delay = -1; }; visible = true; } public function setState(_arg1:Array, _arg2:Array):void{ var _local3:Array; var _local4:Array; var _local5:int; var _local7:int; removeEventListener(Event.ENTER_FRAME, enterFrame); if (_arg1.length == 0){ gotoAndStop(1); visible = false; return; }; var _local6:Array = new Array(); while (_local5 < _arg1.length) { if (_local5 == 4){ _local6.push([_arg1[_local5], _arg2[_local5]]); _local6.push([_arg1[_local5], _arg2[_local5]]); _local6.push([_arg1[_local5], _arg2[_local5]]); } else { _local6.push([_arg1[_local5], _arg2[_local5]]); }; _local5++; }; while (_local6.length > 0) { _local3 = _local6.shift(); _local4 = m_spans[_local7][2]; _local5 = 0; while (_local5 < _local4.length) { this[_local4[_local5]].gotoAndStop((4 - _local3[0])); _local5++; }; _local7++; }; var _local8:int = (_arg1.length - 1); if (_local8 > 3){ _local8 = 6; }; var _local9:int = m_spans[_local8][1]; gotoAndStop(_local9); visible = true; } } }//package junglebubble
Section 58
//TickObject (junglebubble.TickObject) package junglebubble { public class TickObject { public var isRemoving:Boolean; public function TickObject(){ isRemoving = false; } public function render(_arg1:int, _arg2:Number):void{ } public function tick(_arg1:int):void{ } } }//package junglebubble
Section 59
//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); }; return ((("{" + _arg1) + "}")); } } }//package localization
Section 60
//MtRandom (math.MtRandom) package math { import flash.utils.*; public class MtRandom { private var mti:uint; private var mt:Array; 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); } 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)); } 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++; }; } public function nextFloat():Number{ return ((next(24) / 16777216)); } public function setSeed(_arg1:uint):void{ init_genrand(_arg1); } public function nextDouble():Number{ return ((next(24) / 16777216)); } public function nextInt(_arg1:uint):uint{ return (((genrand_int32() & 2147483647) % _arg1)); } } }//package math
Section 61
//XPMath (math.XPMath) package math { public class XPMath { 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){ 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); } public static function atan2(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number = 3.14159265358979; var _local5:Number = 1.5707963267949; if (_arg2 == 0){ if (_arg1 > 0){ return (_local5); }; if (_arg1 == 0){ return (0); }; return (-(_local5)); }; var _local6:Number = (_arg1 / _arg2); if (Math.abs(_local6) < 1){ _local3 = (_local6 / (1 + ((0.28 * _local6) * _local6))); if (_arg2 < 0){ if (_arg1 < 0){ return ((_local3 - _local4)); }; return ((_local3 + _local4)); }; } else { _local3 = (_local5 - (_local6 / ((_local6 * _local6) + 0.28))); if (_arg1 < 0){ return ((_local3 - _local4)); }; }; return (_local3); } 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){ 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); } } }//package math
Section 62
//ManagedSound (sfx.ManagedSound) package sfx { import flash.media.*; public class ManagedSound { public var activeSounds:Array; private var manager:SoundManager; private var ClassReference:Class; public function ManagedSound(_arg1:SoundManager, _arg2:Class){ activeSounds = new Array(); super(); this.manager = _arg1; this.ClassReference = _arg2; } public function stop():void{ var _local1:int; while (_local1 < activeSounds.length) { activeSounds[_local1].stop(); _local1++; }; } 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 fadeToAndStop(_arg1:Number, _arg2:int):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].fadeToAndStop(_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++; }; } public function fadeTo(_arg1:Number, _arg2:int):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].fadeTo(_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 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++; }; } } }//package sfx
Section 63
//ManagedSoundChannel (sfx.ManagedSoundChannel) package sfx { import flash.media.*; import flash.events.*; import flash.utils.*; public class ManagedSoundChannel { private var fadeStartVolume:Number;// = -1 private var channel:SoundChannel; private var fadeEndVolume:Number;// = -1 private var targetVolume:Number; private var targetPan:Number; private var sound:ManagedSound; private var stopAfterFade:Boolean;// = false private var panEndTime:int;// = -1 private var fadeEndTime:int;// = -1 private var manager:SoundManager; private var playing:Boolean;// = true private var panStartTime:int;// = -1 private var fadeStartTime:int;// = -1 private var panEndVolume:Number;// = -1 private var panStartVolume:Number;// = -1 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 stop():void{ if (!(playing)){ return; }; if (channel == null){ return; }; channel.stop(); soundComplete(null); } 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 panTo(_arg1:Number, _arg2:Number):void{ if (!(playing)){ return; }; panStartVolume = targetPan; panEndVolume = _arg1; panStartTime = getTimer(); panEndTime = (getTimer() + _arg2); } 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 setPan(_arg1:Number):void{ if (!(playing)){ return; }; if (channel == null){ return; }; channel.soundTransform.pan = _arg1; panStartTime = -1; update(); } public function fadeToAndStop(_arg1:Number, _arg2:Number):void{ if (!(playing)){ return; }; fadeTo(_arg1, _arg2); stopAfterFade = true; } public function setVolume(_arg1:Number):void{ if (!(playing)){ return; }; stopAfterFade = false; this.targetVolume = _arg1; fadeStartTime = -1; update(); } public function soundComplete(_arg1:Event):void{ if (!(playing)){ return; }; sound.activeSounds.splice(sound.activeSounds.indexOf(this), 1); playing = false; } public function isPlaying():Boolean{ return (playing); } } }//package sfx
Section 64
//SoundManager (sfx.SoundManager) package sfx { import flash.utils.*; import sound.*; public class SoundManager { private var fadeStartVolume:Number;// = -1 public var isMuted:Boolean;// = false private var managedSounds:Array; private var lastTime:int;// = -1 private var managedSoundMap:Object; private var fadeStartTime:int;// = -1 private var fadeEndVolume:Number;// = -1 public var volume:Number;// = 1 private var fadeEndTime:int;// = -1 public function SoundManager(){ managedSoundMap = new Object(); managedSounds = new Array(); super(); } public function update():void{ var _local1:Number; var _local3:int; var _local2:int = getTimer(); if (lastTime < 0){ lastTime = _local2; }; if (fadeStartTime >= 0){ _local1 = ((_local2 - fadeStartTime) / (fadeEndTime - fadeStartTime)); if (_local1 < 0){ _local1 = 0; }; if (_local1 > 1){ _local1 = 1; }; volume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local1)); volume = (volume * volume); if (_local1 == 1){ fadeStartTime = -1; }; }; while (_local3 < managedSounds.length) { managedSounds[_local3].update(); _local3++; }; } public function stopAll():void{ var _local1:int; while (_local1 < managedSounds.length) { managedSounds[_local1].stop(); _local1++; }; } 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; } } }//package sfx
Section 65
//ambience0 (sound.ambience0) package sound { import flash.media.*; public dynamic class ambience0 extends Sound { } }//package sound
Section 66
//ambience1 (sound.ambience1) package sound { import flash.media.*; public dynamic class ambience1 extends Sound { } }//package sound
Section 67
//ambience2 (sound.ambience2) package sound { import flash.media.*; public dynamic class ambience2 extends Sound { } }//package sound
Section 68
//ambience3 (sound.ambience3) package sound { import flash.media.*; public dynamic class ambience3 extends Sound { } }//package sound
Section 69
//bonus_end_bad (sound.bonus_end_bad) package sound { import flash.media.*; public dynamic class bonus_end_bad extends Sound { } }//package sound
Section 70
//bonus_end_good (sound.bonus_end_good) package sound { import flash.media.*; public dynamic class bonus_end_good extends Sound { } }//package sound
Section 71
//bonus_loop1 (sound.bonus_loop1) package sound { import flash.media.*; public dynamic class bonus_loop1 extends Sound { } }//package sound
Section 72
//bonus_loop2 (sound.bonus_loop2) package sound { import flash.media.*; public dynamic class bonus_loop2 extends Sound { } }//package sound
Section 73
//bonus_loop3 (sound.bonus_loop3) package sound { import flash.media.*; public dynamic class bonus_loop3 extends Sound { } }//package sound
Section 74
//bonus_start (sound.bonus_start) package sound { import flash.media.*; public dynamic class bonus_start extends Sound { } }//package sound
Section 75
//bonus_time_warning (sound.bonus_time_warning) package sound { import flash.media.*; public dynamic class bonus_time_warning extends Sound { } }//package sound
Section 76
//bonusdrop (sound.bonusdrop) package sound { import flash.media.*; public dynamic class bonusdrop extends Sound { } }//package sound
Section 77
//bubble_appear (sound.bubble_appear) package sound { import flash.media.*; public dynamic class bubble_appear extends Sound { } }//package sound
Section 78
//burst (sound.burst) package sound { import flash.media.*; public dynamic class burst extends Sound { } }//package sound
Section 79
//counter (sound.counter) package sound { import flash.media.*; public dynamic class counter extends Sound { } }//package sound
Section 80
//explosion (sound.explosion) package sound { import flash.media.*; public dynamic class explosion extends Sound { } }//package sound
Section 81
//intro (sound.intro) package sound { import flash.media.*; public dynamic class intro extends Sound { } }//package sound
Section 82
//jewel1 (sound.jewel1) package sound { import flash.media.*; public dynamic class jewel1 extends Sound { } }//package sound
Section 83
//jewel2 (sound.jewel2) package sound { import flash.media.*; public dynamic class jewel2 extends Sound { } }//package sound
Section 84
//jewel3 (sound.jewel3) package sound { import flash.media.*; public dynamic class jewel3 extends Sound { } }//package sound
Section 85
//loop_bonus (sound.loop_bonus) package sound { import flash.media.*; public dynamic class loop_bonus extends Sound { } }//package sound
Section 86
//loop_game (sound.loop_game) package sound { import flash.media.*; public dynamic class loop_game extends Sound { } }//package sound
Section 87
//monkey_jump_down (sound.monkey_jump_down) package sound { import flash.media.*; public dynamic class monkey_jump_down extends Sound { } }//package sound
Section 88
//monkey_jump_up (sound.monkey_jump_up) package sound { import flash.media.*; public dynamic class monkey_jump_up extends Sound { } }//package sound
Section 89
//outro (sound.outro) package sound { import flash.media.*; public dynamic class outro extends Sound { } }//package sound
Section 90
//scream (sound.scream) package sound { import flash.media.*; public dynamic class scream extends Sound { } }//package sound
Section 91
//shot1 (sound.shot1) package sound { import flash.media.*; public dynamic class shot1 extends Sound { } }//package sound
Section 92
//shot2 (sound.shot2) package sound { import flash.media.*; public dynamic class shot2 extends Sound { } }//package sound
Section 93
//shot3 (sound.shot3) package sound { import flash.media.*; public dynamic class shot3 extends Sound { } }//package sound
Section 94
//shot4 (sound.shot4) package sound { import flash.media.*; public dynamic class shot4 extends Sound { } }//package sound
Section 95
//sign_appear (sound.sign_appear) package sound { import flash.media.*; public dynamic class sign_appear extends Sound { } }//package sound
Section 96
//statue_lands (sound.statue_lands) package sound { import flash.media.*; public dynamic class statue_lands extends Sound { } }//package sound
Section 97
//time_out (sound.time_out) package sound { import flash.media.*; public dynamic class time_out extends Sound { } }//package sound
Section 98
//time_warning (sound.time_warning) package sound { import flash.media.*; public dynamic class time_warning extends Sound { } }//package sound
Section 99
//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 get value():Number{ return ((lastValue + ((ivalue - lastValue) * alpha))); } public function set(_arg1:Number){ lastValue = ivalue; ivalue = _arg1; } public function get(_arg1:Number){ return ((lastValue + ((ivalue - lastValue) * _arg1))); } public function set value(_arg1:Number):void{ ivalue = _arg1; lastValue = _arg1; } public function setTo(_arg1:Number){ ivalue = _arg1; lastValue = _arg1; } public function copyFrom(_arg1:IFloat):void{ ivalue = _arg1.ivalue; lastValue = _arg1.lastValue; } public static function setAlpha(_arg1:Number):void{ alpha = _arg1; } } }//package timing
Section 100
//Performance (timing.Performance) package timing { import flash.utils.*; public class Performance { private var period:Number; private var totalFps:Number; private var measurePeriod:Number; private var updates:Number; private var idealFps:Number; private var lastFpsCount:Number; private var nextFpsUpdate:Number; private var fpsCount:Number; private var periodFps:Number; private var startAt:Number; private var minPeriodFps:Number; private var listeners:Array; public function Performance(_arg1:Number){ this.idealFps = _arg1; this.measurePeriod = 5; this.minPeriodFps = ((_arg1 / 2) * measurePeriod); this.listeners = []; begin(); } public function setFpsThreshold(_arg1:Number, _arg2:Number):void{ this.minPeriodFps = (_arg1 * _arg2); this.measurePeriod = _arg2; } public function frameUpdated():void{ var _local1:*; var _local3:*; fpsCount++; var _local2:* = getTimer(); if (startAt < 0){ startAt = _local2; }; if (_local2 > nextFpsUpdate){ if (updates > 0){ lastFpsCount = fpsCount; totalFps = (totalFps + fpsCount); }; periodFps = (periodFps + fpsCount); if (++period == measurePeriod){ if (periodFps < minPeriodFps){ for (_local1 in listeners) { _local3 = listeners; var _local6 = _local3; _local6[_local1]((periodFps / measurePeriod)); }; }; period = 0; periodFps = 0; }; nextFpsUpdate = (_local2 + 1000); fpsCount = 0; updates++; }; } public function get averageFps():Number{ return ((totalFps / ((getTimer() - startAt) / 1000))); } public function addQualityFeedbackListener(_arg1:Function):void{ listeners.push(_arg1); } public function begin():void{ startAt = -1; period = -1; nextFpsUpdate = getTimer(); totalFps = 0; fpsCount = 0; lastFpsCount = -1; periodFps = 0; updates = 0; } public function get fps():int{ return (lastFpsCount); } } }//package timing
Section 101
//Timeable (timing.Timeable) package timing { public interface Timeable { function tick(_arg1:int):void; function render(_arg1:int, _arg2:Number):void; } }//package timing
Section 102
//Timer (timing.Timer) package timing { import flash.utils.*; public class Timer { private var unprocessedTime:Number;// = 0 private var lastTime:Number;// = 0 private var millisPerGameTick:Number;// = 0 private var timeable:Timeable; private var maxTickTime:Number;// = -1 private var startTime:Number;// = -1 private var time:Number;// = 0 private var tick:Number;// = 0 public function Timer(_arg1:Timeable, _arg2:Number){ millisPerGameTick = (1000 / _arg2); this.timeable = _arg1; this.maxTickTime = 500; } public function getMillisPerTick():Number{ return (millisPerGameTick); } public function advanceTime2():void{ var _local1:*; var _local2:* = getTimer(); if (startTime < 0){ startTime = _local2; unprocessedTime = millisPerGameTick; }; time = (_local2 - startTime); var _local3:* = (time - lastTime); lastTime = time; unprocessedTime = (unprocessedTime + _local3); if (unprocessedTime >= millisPerGameTick){ _local1 = (maxTickTime + _local2); do { timeable.tick(tick); tick++; unprocessedTime = (unprocessedTime - millisPerGameTick); } while ((((unprocessedTime >= millisPerGameTick)) && ((getTimer() < _local1)))); }; var _local4:Number = ((unprocessedTime % millisPerGameTick) / millisPerGameTick); IFloat.setAlpha(_local4); timeable.render(tick, _local4); } 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); } public function setMaxTickTime(_arg1:Number):void{ maxTickTime = _arg1; } } }//package timing
Section 103
//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 _local3:*; var _local4:String = ("" + _arg1); if (_arg2){ _local3 = (_arg2 - 1); while (_local3 > 0) { if (_arg1 < Math.pow(10, _local3)){ _local4 = ("0" + _local4); }; _local3--; }; }; return (_local4); } 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 104
//Stats (util.Stats) package util { import flash.display.*; import flash.text.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import flash.system.*; public class Stats extends Sprite { private var timer:int; private var graph:BitmapData; private var mem:Number;// = 0 private var memText:TextField; private var ver:Sprite; private var fps:int; private var ms:int; private var rectangle:Rectangle; private var verText:TextField; private var msText:TextField; private var fpsText:TextField; private var format:TextFormat; private var msPrev:int;// = 0 public function Stats():void{ } private function onMouseOver(_arg1:MouseEvent):void{ ver.visible = true; } 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 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 onMouseOut(_arg1:MouseEvent):void{ ver.visible = false; } 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 onClick(_arg1:MouseEvent):void{ if (mouseY > (height * 0.35)){ stage.frameRate--; } else { stage.frameRate++; }; fpsText.text = ((("FPS: " + fps) + " / ") + stage.frameRate); } } }//package util
Section 105
//aim_cursor (aim_cursor) package { import junglebubble.*; public dynamic class aim_cursor extends AimCursor { } }//package
Section 106
//bomblauncher (bomblauncher) package { import junglebubble.*; public dynamic class bomblauncher extends BombLauncher { } }//package
Section 107
//bonus_bubble (bonus_bubble) package { import anim.*; public dynamic class bonus_bubble extends PausedLoopingFlare30Fps { } }//package
Section 108
//bonus_sign (bonus_sign) package { import junglebubble.*; public dynamic class bonus_sign extends BonusSign { } }//package
Section 109
//bonus_sign_bubbles (bonus_sign_bubbles) package { import anim.*; public dynamic class bonus_sign_bubbles extends PausedLoopingFlare30Fps { } }//package
Section 110
//bonusmode_stars (bonusmode_stars) package { import anim.*; public dynamic class bonusmode_stars extends PausedSingleFlare30Fps { } }//package
Section 111
//bubblelauncherunder (bubblelauncherunder) package { import junglebubble.*; public dynamic class bubblelauncherunder extends BubbleLauncher { } }//package
Section 112
//bubbleshooter (bubbleshooter) package { import junglebubble.*; public dynamic class bubbleshooter extends BubbleLauncher { } }//package
Section 113
//buskar (buskar) package { import anim.*; public dynamic class buskar extends PausedLoopingFlare30Fps { } }//package
Section 114
//CursorLine (CursorLine) package { import flash.display.*; public dynamic class CursorLine extends MovieClip { } }//package
Section 115
//dustcloud (dustcloud) package { import anim.*; public dynamic class dustcloud extends AutoSingleFlare30Fps { } }//package
Section 116
//dynamite_explosion (dynamite_explosion) package { import anim.*; public dynamic class dynamite_explosion extends PausedSingleFlare30Fps { } }//package
Section 117
//ErrorSymbol (ErrorSymbol) package { import flash.display.*; public dynamic class ErrorSymbol extends MovieClip { } }//package
Section 118
//Eventer (Eventer) package { import flash.events.*; public class Eventer extends EventDispatcher { public static var instance:Eventer; public static function getInstance():Eventer{ if (instance == null){ instance = new (Eventer); }; return (instance); } } }//package
Section 119
//gameover_scorepop (gameover_scorepop) package { import anim.*; public dynamic class gameover_scorepop extends PausedSingleFlare30Fps { } }//package
Section 120
//instructions_1 (instructions_1) package { import anim.*; public dynamic class instructions_1 extends PausedLoopingFlare30Fps { } }//package
Section 121
//instructions_2 (instructions_2) package { import anim.*; public dynamic class instructions_2 extends PausedLoopingFlare30Fps { } }//package
Section 122
//jewels_big (jewels_big) package { import anim.*; public dynamic class jewels_big extends AutoSingleFlare30Fps { } }//package
Section 123
//jewels_small (jewels_small) package { import anim.*; public dynamic class jewels_small extends AutoSingleFlare30Fps { } }//package
Section 124
//MeterArrow (MeterArrow) package { import anim.*; public dynamic class MeterArrow extends PausedLoopingFlare30Fps { } }//package
Section 125
//monkeyjump (monkeyjump) package { import anim.*; public dynamic class monkeyjump extends AutoSingleFlare60Fps { } }//package
Section 126
//monkeyjump_2 (monkeyjump_2) package { import anim.*; public dynamic class monkeyjump_2 extends AutoSingleFlare60Fps { } }//package
Section 127
//parrot (parrot) package { import anim.*; public dynamic class parrot extends AutoLoopingFlare30Fps { } }//package
Section 128
//rank_blue_anim (rank_blue_anim) package { import anim.*; public dynamic class rank_blue_anim extends PausedSingleFlare30Fps { } }//package
Section 129
//rank_gold_anim (rank_gold_anim) package { import anim.*; public dynamic class rank_gold_anim extends PausedSingleFlare30Fps { } }//package
Section 130
//rank_green_anim (rank_green_anim) package { import anim.*; public dynamic class rank_green_anim extends PausedSingleFlare30Fps { } }//package
Section 131
//rank_purple_anim (rank_purple_anim) package { import anim.*; public dynamic class rank_purple_anim extends PausedSingleFlare30Fps { } }//package
Section 132
//rank_silver_anim (rank_silver_anim) package { import anim.*; public dynamic class rank_silver_anim extends PausedSingleFlare30Fps { } }//package
Section 133
//rank_stone_anim (rank_stone_anim) package { import anim.*; public dynamic class rank_stone_anim extends PausedSingleFlare30Fps { } }//package
Section 134
//RockExplosion (RockExplosion) package { import anim.*; public dynamic class RockExplosion extends PausedSingleFlare30Fps { } }//package
Section 135
//RockExplosion2 (RockExplosion2) package { import anim.*; public dynamic class RockExplosion2 extends PausedSingleFlare30Fps { } }//package
Section 136
//smoke_anim (smoke_anim) package { import anim.*; public dynamic class smoke_anim extends PausedSingleFlare30Fps { } }//package
Section 137
//smoke_scorepop (smoke_scorepop) package { import anim.*; public dynamic class smoke_scorepop extends PausedSingleFlare30Fps { } }//package
Section 138
//statue_animation (statue_animation) package { import junglebubble.*; public dynamic class statue_animation extends Statue { } }//package
Section 139
//transform_animation (transform_animation) package { import anim.*; public dynamic class transform_animation extends PausedSingleFlare30Fps { } }//package

Library Items

Symbol 1 Sound {sound.monkey_jump_up}
Symbol 2 Sound {sound.scream}
Symbol 3 Sound {sound.outro}
Symbol 4 Sound {sound.shot1}
Symbol 5 Sound {sound.shot4}
Symbol 6 Sound {sound.sign_appear}
Symbol 7 Sound {sound.bonusdrop}
Symbol 8 Sound {sound.bonus_end_bad}
Symbol 9 Sound {sound.bonus_end_good}
Symbol 10 Sound {sound.bonus_loop1}
Symbol 11 Sound {sound.bonus_loop2}
Symbol 12 Sound {sound.statue_lands}
Symbol 13 Sound {sound.bonus_loop3}
Symbol 14 Sound {sound.bonus_start}
Symbol 15 Sound {sound.bonus_time_warning}
Symbol 16 Sound {sound.bubble_appear}
Symbol 17 Sound {sound.shot2}
Symbol 18 Sound {sound.burst}
Symbol 19 Sound {sound.counter}
Symbol 20 Sound {sound.explosion}
Symbol 21 Sound {sound.shot3}
Symbol 22 Sound {sound.loop_game}
Symbol 23 Sound {sound.time_out}
Symbol 24 Sound {sound.intro}
Symbol 25 Sound {sound.jewel1}
Symbol 26 Sound {sound.jewel2}
Symbol 27 Sound {sound.jewel3}
Symbol 28 Sound {sound.ambience1}
Symbol 29 Sound {sound.ambience2}
Symbol 30 Sound {sound.ambience0}
Symbol 31 Sound {sound.ambience3}
Symbol 32 Sound {sound.loop_bonus}
Symbol 33 Sound {sound.monkey_jump_down}
Symbol 34 Sound {sound.time_warning}
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClipUses:35Used by:43
Symbol 37 GraphicUsed by:42
Symbol 38 GraphicUsed by:42
Symbol 39 GraphicUsed by:42
Symbol 40 GraphicUsed by:42
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClip {jungle_bubble_deluxe_fla.monkeyhead_3}Uses:37 38 39 40 41Used by:43 47 241
Symbol 43 MovieClip {ErrorSymbol}Uses:36 42
Symbol 44 GraphicUsed by:192 193 419 489
Symbol 45 FontUsed by:46 48 545 555 558 562 563 564 565 566 567 568 569 570
Symbol 46 EditableTextUses:45Used by:191
Symbol 47 MovieClipUses:42Used by:191 574
Symbol 48 EditableTextUses:45Used by:191
Symbol 49 GraphicUsed by:56
Symbol 50 GraphicUsed by:54
Symbol 51 BitmapUsed by:52
Symbol 52 GraphicUses:51Used by:53
Symbol 53 MovieClipUses:52Used by:54
Symbol 54 MovieClipUses:50 53Used by:56 266
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClip {rank_green_anim}Uses:49 54 55Used by:190
Symbol 57 GraphicUsed by:64
Symbol 58 GraphicUsed by:62
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:61
Symbol 61 MovieClipUses:60Used by:62
Symbol 62 MovieClipUses:58 61Used by:64 266
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClip {rank_blue_anim}Uses:57 62 63Used by:190
Symbol 65 GraphicUsed by:72
Symbol 66 GraphicUsed by:70
Symbol 67 BitmapUsed by:68
Symbol 68 GraphicUses:67Used by:69
Symbol 69 MovieClipUses:68Used by:70
Symbol 70 MovieClipUses:66 69Used by:72 266
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClip {rank_purple_anim}Uses:65 70 71Used by:190
Symbol 73 GraphicUsed by:186
Symbol 74 GraphicUsed by:75 245
Symbol 75 MovieClipUses:74Used by:186
Symbol 76 GraphicUsed by:186
Symbol 77 GraphicUsed by:78 247
Symbol 78 MovieClipUses:77Used by:186
Symbol 79 GraphicUsed by:186
Symbol 80 GraphicUsed by:81 249
Symbol 81 MovieClipUses:80Used by:186
Symbol 82 GraphicUsed by:186
Symbol 83 GraphicUsed by:84 85 96 97 109 110 111 114 115 116 117 118 119 120 123 124 125 128 129 130 131 132 133 134 144 145 146 147 148 149 155 156 157 158 159 160 166 172 173 179 180 251 252 260 261 536 541 584 586
Symbol 84 MovieClipUses:83Used by:186
Symbol 85 MovieClipUses:83Used by:186
Symbol 86 GraphicUsed by:186
Symbol 87 GraphicUsed by:88 254
Symbol 88 MovieClipUses:87Used by:186
Symbol 89 GraphicUsed by:186
Symbol 90 GraphicUsed by:91 256
Symbol 91 MovieClipUses:90Used by:186
Symbol 92 GraphicUsed by:186
Symbol 93 GraphicUsed by:94 258
Symbol 94 MovieClipUses:93Used by:186
Symbol 95 GraphicUsed by:186
Symbol 96 MovieClipUses:83Used by:186
Symbol 97 MovieClipUses:83Used by:186
Symbol 98 GraphicUsed by:186 266
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:186 266
Symbol 101 GraphicUsed by:186 266
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:186 266
Symbol 104 GraphicUsed by:186 266
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClipUses:105Used by:186 266
Symbol 107 GraphicUsed by:186 266
Symbol 108 GraphicUsed by:186 266 428
Symbol 109 MovieClipUses:83Used by:186 266 428
Symbol 110 MovieClipUses:83Used by:186 266 428
Symbol 111 MovieClipUses:83Used by:186 266 428
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:186 266 428
Symbol 114 MovieClipUses:83Used by:186 266 428
Symbol 115 MovieClipUses:83Used by:186 266 428
Symbol 116 MovieClipUses:83Used by:186 266 428
Symbol 117 MovieClipUses:83Used by:186 266 428
Symbol 118 MovieClipUses:83Used by:186 266 428
Symbol 119 MovieClipUses:83Used by:186 266 428
Symbol 120 MovieClipUses:83Used by:186 266 428
Symbol 121 GraphicUsed by:186 266 428
Symbol 122 GraphicUsed by:186 266 428
Symbol 123 MovieClipUses:83Used by:186 266 428
Symbol 124 MovieClipUses:83Used by:186 266 428
Symbol 125 MovieClipUses:83Used by:186 266 428
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:186 266 428
Symbol 128 MovieClipUses:83Used by:186 266 428
Symbol 129 MovieClipUses:83Used by:186 266 428
Symbol 130 MovieClipUses:83Used by:186 266 428
Symbol 131 MovieClipUses:83Used by:186 266 428
Symbol 132 MovieClipUses:83Used by:186 266 428
Symbol 133 MovieClipUses:83Used by:186 266 428
Symbol 134 MovieClipUses:83Used by:186 266 428
Symbol 135 GraphicUsed by:186 266 428
Symbol 136 GraphicUsed by:186 266 428
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClipUses:137Used by:186 266 428
Symbol 139 GraphicUsed by:186 266 428
Symbol 140 GraphicUsed by:186 266 427
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:141Used by:186 266 427
Symbol 143 GraphicUsed by:186 266 427
Symbol 144 MovieClipUses:83Used by:186 266 427
Symbol 145 MovieClipUses:83Used by:186 266 427
Symbol 146 MovieClipUses:83Used by:186 266 427
Symbol 147 MovieClipUses:83Used by:186 266 427
Symbol 148 MovieClipUses:83Used by:186 266 427
Symbol 149 MovieClipUses:83Used by:186 266 427
Symbol 150 GraphicUsed by:186 266 427
Symbol 151 GraphicUsed by:186 266 427
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:152Used by:186 266 427
Symbol 154 GraphicUsed by:186 266 427
Symbol 155 MovieClipUses:83Used by:186 266 427
Symbol 156 MovieClipUses:83Used by:186 266 427
Symbol 157 MovieClipUses:83Used by:186 266 427
Symbol 158 MovieClipUses:83Used by:186 266 427
Symbol 159 MovieClipUses:83Used by:186 266 427
Symbol 160 MovieClipUses:83Used by:186 266 427
Symbol 161 GraphicUsed by:186 266 427
Symbol 162 GraphicUsed by:186 266 427
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:186 266 427
Symbol 165 GraphicUsed by:186 266 427
Symbol 166 MovieClipUses:83Used by:186 266 427
Symbol 167 GraphicUsed by:186 266 427
Symbol 168 GraphicUsed by:186 266 426
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:169Used by:186 266 426
Symbol 171 GraphicUsed by:186 266 426
Symbol 172 MovieClipUses:83Used by:186 266 426
Symbol 173 MovieClipUses:83Used by:186 266 426
Symbol 174 GraphicUsed by:186 266 426
Symbol 175 GraphicUsed by:186 266 426
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:176Used by:186 266 426
Symbol 178 GraphicUsed by:186 266 426
Symbol 179 MovieClipUses:83Used by:186 266 426
Symbol 180 MovieClipUses:83Used by:186 266 426
Symbol 181 GraphicUsed by:186 266 426
Symbol 182 GraphicUsed by:186 266 426
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClipUses:183Used by:186 266 426
Symbol 185 GraphicUsed by:186 266 426
Symbol 186 MovieClipUses:73 75 76 78 79 81 82 84 85 86 88 89 91 92 94 95 96 97 98 100 101 103 104 106 107 108 109 110 111 113 114 115 116 117 118 119 120 121 122 123 124 125 127 128 129 130 131 132 133 134 135 136 138 139 140 142 143 144 145 146 147 148 149 150 151 153 154 155 156 157 158 159 160 161 162 164 165 166 167 168 170 171 172 173 174 175 177 178 179 180 181 182 184 185Used by:187 188 189 468
Symbol 187 MovieClip {rank_gold_anim}Uses:186Used by:190
Symbol 188 MovieClip {rank_silver_anim}Uses:186Used by:190
Symbol 189 MovieClip {rank_stone_anim}Uses:186Used by:190
Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13}Uses:56 64 72 187 188 189Used by:191
Symbol 191 MovieClipUses:46 47 48 190Used by:192 193
Symbol 192 MovieClipUses:44 191Used by:194
Symbol 193 MovieClipUses:44 191Used by:194
Symbol 194 MovieClip {junglebubble.BonusCompleteSign}Uses:192 193
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClip {CursorLine}Uses:195
Symbol 197 BitmapUsed by:198
Symbol 198 GraphicUses:197Used by:217
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:217
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:217
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:217
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:217
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:217
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:217
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:217
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:217
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:217
Symbol 217 MovieClip {RockExplosion2}Uses:198 200 202 204 206 208 210 212 214 216
Symbol 218 MovieClip {junglebubble.RockBox}
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:227
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:227
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:227
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:227
Symbol 227 MovieClip {junglebubble.RockClip}Uses:220 222 224 226
Symbol 228 MovieClip {junglebubble.BubbleBoxTop}
Symbol 229 MovieClip {junglebubble.BubbleBoxUnder}
Symbol 230 GraphicUsed by:232
Symbol 231 GraphicUsed by:232
Symbol 232 MovieClip {jungle_bubble_deluxe_fla.monkeybody_100}Uses:230 231Used by:241
Symbol 233 GraphicUsed by:234
Symbol 234 MovieClipUses:233Used by:241
Symbol 235 GraphicUsed by:237 240
Symbol 236 GraphicUsed by:237 240
Symbol 237 MovieClip {monkeyjump}Uses:235 236Used by:241
Symbol 238 GraphicUsed by:240
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClip {monkeyjump_2}Uses:235 238 236 239Used by:241
Symbol 241 MovieClip {junglebubble.Monkey}Uses:232 42 234 237 240Used by:494
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:494
Symbol 244 GraphicUsed by:266
Symbol 245 MovieClipUses:74Used by:266
Symbol 246 GraphicUsed by:266
Symbol 247 MovieClipUses:77Used by:266
Symbol 248 GraphicUsed by:266
Symbol 249 MovieClipUses:80Used by:266
Symbol 250 GraphicUsed by:266
Symbol 251 MovieClipUses:83Used by:266
Symbol 252 MovieClipUses:83Used by:266
Symbol 253 GraphicUsed by:266
Symbol 254 MovieClipUses:87Used by:266
Symbol 255 GraphicUsed by:266
Symbol 256 MovieClipUses:90Used by:266
Symbol 257 GraphicUsed by:266
Symbol 258 MovieClipUses:93Used by:266
Symbol 259 GraphicUsed by:266
Symbol 260 MovieClipUses:83Used by:266
Symbol 261 MovieClipUses:83Used by:266
Symbol 262 GraphicUsed by:266
Symbol 263 MovieClipUsed by:266
Symbol 264 GraphicUsed by:266
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClip {jungle_bubble_deluxe_fla.ranking_104}Uses:168 170 171 172 173 174 175 177 178 179 180 181 182 184 185 140 142 143 144 145 146 147 148 149 150 151 153 154 155 156 157 158 159 160 161 162 164 165 166 167 108 109 110 111 113 114 115 116 117 118 119 120 121 122 123 124 125 127 128 129 130 131 132 133 134 135 136 138 139 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 98 100 101 103 104 106 107 262 70 263 264 54 265 62Used by:494
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:494
Symbol 269 GraphicUsed by:273
Symbol 270 GraphicUsed by:273
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClipUses:271Used by:273
Symbol 273 MovieClip {junglebubble.NextBonusMeter}Uses:269 270 272Used by:494
Symbol 274 BitmapUsed by:275
Symbol 275 GraphicUses:274Used by:276
Symbol 276 MovieClip {parrot}Uses:275Used by:494
Symbol 277 FontUsed by:278 279 280 281 282 283 418 543 544 549 550 561 572
Symbol 278 EditableTextUses:277Used by:494
Symbol 279 EditableTextUses:277Used by:494
Symbol 280 EditableTextUses:277Used by:494
Symbol 281 EditableTextUses:277Used by:494
Symbol 282 EditableTextUses:277Used by:494
Symbol 283 EditableTextUses:277Used by:494
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:286
Symbol 286 MovieClipUses:285Used by:494
Symbol 287 BitmapUsed by:288
Symbol 288 GraphicUses:287Used by:289
Symbol 289 MovieClipUses:288Used by:494
Symbol 290 GraphicUsed by:296
Symbol 291 GraphicUsed by:292
Symbol 292 MovieClipUses:291Used by:296
Symbol 293 GraphicUsed by:296
Symbol 294 GraphicUsed by:296
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:290 292 293 294 295Used by:297
Symbol 297 MovieClipUses:296Used by:494
Symbol 298 GraphicUsed by:302
Symbol 299 GraphicUsed by:302
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClipUses:300Used by:302
Symbol 302 MovieClipUses:298 299 301Used by:350 530
Symbol 303 GraphicUsed by:307
Symbol 304 GraphicUsed by:307
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClipUses:305Used by:307
Symbol 307 MovieClipUses:303 304 306Used by:350 530
Symbol 308 GraphicUsed by:312
Symbol 309 GraphicUsed by:312
Symbol 310 GraphicUsed by:311
Symbol 311 MovieClipUses:310Used by:312
Symbol 312 MovieClipUses:308 309 311Used by:350 530
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:313Used by:350 530
Symbol 315 GraphicUsed by:321
Symbol 316 GraphicUsed by:321
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:317Used by:321
Symbol 319 GraphicUsed by:320
Symbol 320 MovieClipUses:319Used by:321
Symbol 321 MovieClipUses:315 316 318 320Used by:350 530
Symbol 322 GraphicUsed by:326
Symbol 323 GraphicUsed by:326
Symbol 324 GraphicUsed by:325
Symbol 325 MovieClipUses:324Used by:326
Symbol 326 MovieClipUses:322 323 325Used by:350 530
Symbol 327 GraphicUsed by:329
Symbol 328 GraphicUsed by:329
Symbol 329 MovieClipUses:327 328Used by:350 530
Symbol 330 GraphicUsed by:350 530
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:333
Symbol 333 MovieClipUses:332Used by:350 530
Symbol 334 GraphicUsed by:350 530
Symbol 335 GraphicUsed by:336
Symbol 336 MovieClipUses:335Used by:350 530
Symbol 337 GraphicUsed by:350 530
Symbol 338 GraphicUsed by:339
Symbol 339 MovieClipUses:338Used by:350 530
Symbol 340 GraphicUsed by:350 530
Symbol 341 GraphicUsed by:342
Symbol 342 MovieClipUses:341Used by:350 530
Symbol 343 GraphicUsed by:350 530
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClipUses:344Used by:350 530
Symbol 346 GraphicUsed by:347
Symbol 347 MovieClipUses:346Used by:350 530
Symbol 348 BitmapUsed by:349
Symbol 349 GraphicUses:348Used by:350
Symbol 350 MovieClip {bubbleshooter}Uses:302 307 312 314 321 326 329 330 333 334 336 337 339 340 342 343 345 347 349Used by:494
Symbol 351 BitmapUsed by:352
Symbol 352 GraphicUses:351Used by:353 354
Symbol 353 MovieClip {bomblauncher}Uses:352Used by:494
Symbol 354 MovieClip {bubblelauncherunder}Uses:352Used by:494
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClipUses:355Used by:494
Symbol 357 GraphicUsed by:359
Symbol 358 GraphicUsed by:359
Symbol 359 MovieClipUses:357 358Used by:494
Symbol 360 BitmapUsed by:361 529 535 537 538
Symbol 361 GraphicUses:360Used by:374 536
Symbol 362 BitmapUsed by:363 529 534 537 538
Symbol 363 GraphicUses:362Used by:374
Symbol 364 BitmapUsed by:365 529 534 537 539
Symbol 365 GraphicUses:364Used by:374 541
Symbol 366 BitmapUsed by:367 529 534 537 538
Symbol 367 GraphicUses:366Used by:374
Symbol 368 BitmapUsed by:369 529 534 537 538
Symbol 369 GraphicUses:368Used by:374
Symbol 370 BitmapUsed by:371
Symbol 371 GraphicUses:370Used by:374 541
Symbol 372 BitmapUsed by:373
Symbol 373 GraphicUses:372Used by:374
Symbol 374 MovieClipUses:361 363 365 367 369 371 373Used by:494 586
Symbol 375 MovieClipUsed by:494
Symbol 376 MovieClipUsed by:383
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClipUses:377Used by:381
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:379Used by:381
Symbol 381 MovieClip {aim_cursor}Uses:378 380Used by:382 494
Symbol 382 MovieClipUses:381Used by:383
Symbol 383 MovieClipUses:376 382Used by:494
Symbol 384 BitmapUsed by:385
Symbol 385 GraphicUses:384Used by:386
Symbol 386 MovieClipUses:385Used by:494
Symbol 387 BitmapUsed by:388
Symbol 388 GraphicUses:387Used by:389
Symbol 389 MovieClipUses:388Used by:494
Symbol 390 BitmapUsed by:391
Symbol 391 GraphicUses:390Used by:392
Symbol 392 MovieClipUses:391Used by:494
Symbol 393 GraphicUsed by:400
Symbol 394 GraphicUsed by:395
Symbol 395 MovieClipUses:394Used by:400
Symbol 396 GraphicUsed by:400
Symbol 397 GraphicUsed by:400
Symbol 398 GraphicUsed by:400
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:393 395 396 397 398 399Used by:494
Symbol 401 GraphicUsed by:411
Symbol 402 GraphicUsed by:403 405 406 408 409
Symbol 403 MovieClipUses:402Used by:411
Symbol 404 GraphicUsed by:411
Symbol 405 MovieClipUses:402Used by:411
Symbol 406 MovieClipUses:402Used by:411
Symbol 407 GraphicUsed by:411
Symbol 408 MovieClipUses:402Used by:411
Symbol 409 MovieClipUses:402Used by:411
Symbol 410 GraphicUsed by:411
Symbol 411 MovieClip {junglebubble.BonusClock}Uses:401 403 404 405 406 407 408 409 410Used by:494
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClipUses:412Used by:414
Symbol 414 MovieClip {bonusmode_stars}Uses:413Used by:419
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClip {bonus_bubble}Uses:415Used by:417 586
Symbol 417 MovieClip {bonus_sign_bubbles}Uses:416Used by:419
Symbol 418 EditableTextUses:277Used by:419
Symbol 419 MovieClip {bonus_sign}Uses:44 414 417 418Used by:494
Symbol 420 GraphicUsed by:421 559
Symbol 421 MovieClipUses:420Used by:422
Symbol 422 MovieClip {smoke_anim}Uses:421Used by:494
Symbol 423 BitmapUsed by:424
Symbol 424 GraphicUses:423Used by:494
Symbol 425 GraphicUsed by:468
Symbol 426 MovieClipUses:168 170 171 172 173 174 175 177 178 179 180 181 182 184 185Used by:468
Symbol 427 MovieClipUses:140 142 143 144 145 146 147 148 149 150 151 153 154 155 156 157 158 159 160 161 162 164 165 166 167Used by:468
Symbol 428 MovieClipUses:108 109 110 111 113 114 115 116 117 118 119 120 121 122 123 124 125 127 128 129 130 131 132 133 134 135 136 138 139Used by:468
Symbol 429 GraphicUsed by:445
Symbol 430 GraphicUsed by:434 439 444 450 455 460
Symbol 431 BitmapUsed by:432
Symbol 432 GraphicUses:431Used by:433
Symbol 433 MovieClipUses:432Used by:434
Symbol 434 MovieClipUses:430 433Used by:445
Symbol 435 GraphicUsed by:445
Symbol 436 BitmapUsed by:437
Symbol 437 GraphicUses:436Used by:438
Symbol 438 MovieClipUses:437Used by:439
Symbol 439 MovieClipUses:430 438Used by:445
Symbol 440 GraphicUsed by:445
Symbol 441 BitmapUsed by:442
Symbol 442 GraphicUses:441Used by:443
Symbol 443 MovieClipUses:442Used by:444
Symbol 444 MovieClipUses:430 443Used by:445
Symbol 445 MovieClip {jewels_small}Uses:429 434 435 439 440 444Used by:468
Symbol 446 GraphicUsed by:461
Symbol 447 BitmapUsed by:448
Symbol 448 GraphicUses:447Used by:449
Symbol 449 MovieClipUses:448Used by:450
Symbol 450 MovieClipUses:430 449Used by:461
Symbol 451 GraphicUsed by:461
Symbol 452 BitmapUsed by:453
Symbol 453 GraphicUses:452Used by:454
Symbol 454 MovieClipUses:453Used by:455
Symbol 455 MovieClipUses:430 454Used by:461
Symbol 456 GraphicUsed by:461
Symbol 457 BitmapUsed by:458
Symbol 458 GraphicUses:457Used by:459
Symbol 459 MovieClipUses:458Used by:460
Symbol 460 MovieClipUses:430 459Used by:461
Symbol 461 MovieClip {jewels_big}Uses:446 450 451 455 456 460Used by:468
Symbol 462 GraphicUsed by:465
Symbol 463 GraphicUsed by:465
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClip {dustcloud}Uses:462 463 464Used by:468
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClipUses:466Used by:468
Symbol 468 MovieClip {statue_animation}Uses:425 426 427 428 186 445 461 465 467Used by:494 574
Symbol 469 BitmapUsed by:471
Symbol 470 BitmapUsed by:471
Symbol 471 GraphicUses:469 470Used by:494
Symbol 472 GraphicUsed by:477
Symbol 473 GraphicUsed by:477
Symbol 474 GraphicUsed by:477
Symbol 475 GraphicUsed by:477
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClip {dynamite_explosion}Uses:472 473 474 475 476Used by:494
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:489
Symbol 480 FontUsed by:483 484 495 503 513 542
Symbol 481 Font
Symbol 482 Font
Symbol 483 EditableTextUses:480Used by:489
Symbol 484 EditableTextUses:480Used by:489
Symbol 485 BitmapUsed by:486
Symbol 486 GraphicUses:485Used by:489
Symbol 487 BitmapUsed by:488
Symbol 488 GraphicUses:487Used by:489
Symbol 489 MovieClipUses:44 479 483 484 486 488Used by:490
Symbol 490 MovieClip {junglebubble.BonusIntroSign}Uses:489Used by:494
Symbol 491 MovieClipUsed by:493
Symbol 492 MovieClipUsed by:493
Symbol 493 MovieClipUses:491 492Used by:494
Symbol 494 MovieClip {junglebubble.GameAssembly}Uses:241 243 266 268 273 276 278 279 280 281 282 283 286 289 297 350 353 354 356 359 374 375 383 386 389 392 400 411 381 419 422 424 468 471 477 490 493
Symbol 495 EditableTextUses:480Used by:498
Symbol 496 GraphicUsed by:497
Symbol 497 MovieClipUses:496Used by:498
Symbol 498 MovieClipUses:495 497Used by:515
Symbol 499 GraphicUsed by:501
Symbol 500 GraphicUsed by:501
Symbol 501 MovieClipUses:499 500Used by:502
Symbol 502 MovieClipUses:501Used by:515
Symbol 503 EditableTextUses:480Used by:504
Symbol 504 MovieClipUses:503Used by:515
Symbol 505 GraphicUsed by:507
Symbol 506 GraphicUsed by:507
Symbol 507 MovieClipUses:505 506Used by:508
Symbol 508 MovieClipUses:507Used by:515
Symbol 509 GraphicUsed by:510 511 512 514
Symbol 510 MovieClipUses:509Used by:515
Symbol 511 MovieClipUses:509Used by:515
Symbol 512 MovieClipUses:509Used by:515
Symbol 513 EditableTextUses:480Used by:515
Symbol 514 MovieClipUses:509Used by:515
Symbol 515 MovieClip {junglebubble.GameControl}Uses:498 502 504 508 510 511 512 513 514
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:520
Symbol 518 GraphicUsed by:520
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClip {junglebubble.BombClip}Uses:517 518 519
Symbol 521 GraphicUsed by:582
Symbol 522 GraphicUsed by:582
Symbol 523 GraphicUsed by:582
Symbol 524 GraphicUsed by:582
Symbol 525 GraphicUsed by:526
Symbol 526 MovieClipUses:525Used by:528
Symbol 527 GraphicUsed by:528
Symbol 528 MovieClipUses:526 527Used by:576
Symbol 529 GraphicUses:366 360 368 364 362Used by:536
Symbol 530 MovieClipUses:302 307 312 314 321 326 329 330 333 334 336 337 339 340 342 343 345 347Used by:536 541
Symbol 531 GraphicUsed by:536 541
Symbol 532 GraphicUsed by:536 541
Symbol 533 GraphicUsed by:536
Symbol 534 GraphicUses:366 368 364 362Used by:536
Symbol 535 GraphicUses:360Used by:536
Symbol 536 MovieClip {instructions_1}Uses:529 530 361 531 532 533 534 83 535Used by:575
Symbol 537 GraphicUses:368 364 366 360 362Used by:541
Symbol 538 GraphicUses:368 366 360 362Used by:541
Symbol 539 GraphicUses:364Used by:541
Symbol 540 GraphicUsed by:541
Symbol 541 MovieClip {instructions_2}Uses:537 371 530 365 531 532 538 83 539 540Used by:575
Symbol 542 EditableTextUses:480Used by:575
Symbol 543 EditableTextUses:277Used by:575
Symbol 544 EditableTextUses:277Used by:575
Symbol 545 EditableTextUses:45Used by:575
Symbol 546 GraphicUsed by:575
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:574
Symbol 549 EditableTextUses:277Used by:574
Symbol 550 EditableTextUses:277Used by:574
Symbol 551 GraphicUsed by:552
Symbol 552 MovieClipUses:551Used by:574
Symbol 553 GraphicUsed by:574
Symbol 554 GraphicUsed by:556
Symbol 555 EditableTextUses:45Used by:556
Symbol 556 MovieClipUses:554 555Used by:557
Symbol 557 MovieClip {gameover_scorepop}Uses:556Used by:574
Symbol 558 EditableTextUses:45Used by:559
Symbol 559 MovieClipUses:420 558Used by:560
Symbol 560 MovieClip {smoke_scorepop}Uses:559Used by:574
Symbol 561 EditableTextUses:277Used by:574
Symbol 562 EditableTextUses:45Used by:574
Symbol 563 EditableTextUses:45Used by:574
Symbol 564 EditableTextUses:45Used by:574
Symbol 565 EditableTextUses:45Used by:574
Symbol 566 EditableTextUses:45Used by:574
Symbol 567 EditableTextUses:45Used by:574
Symbol 568 EditableTextUses:45Used by:574
Symbol 569 EditableTextUses:45Used by:574
Symbol 570 EditableTextUses:45Used by:574
Symbol 571 GraphicUsed by:573
Symbol 572 EditableTextUses:277Used by:573
Symbol 573 ButtonUses:571 572Used by:574
Symbol 574 MovieClipUses:548 468 549 550 552 553 557 560 47 561 562 563 564 565 566 567 568 569 570 573Used by:575
Symbol 575 MovieClip {buskar}Uses:536 541 542 543 544 545 546 574Used by:576
Symbol 576 MovieClipUses:528 575Used by:577
Symbol 577 MovieClipUses:576Used by:582
Symbol 578 GraphicUsed by:582
Symbol 579 GraphicUsed by:582
Symbol 580 GraphicUsed by:582
Symbol 581 GraphicUsed by:582
Symbol 582 MovieClip {junglebubble.Bushes}Uses:521 522 523 524 577 578 579 580 581
Symbol 583 GraphicUsed by:584
Symbol 584 MovieClip {transform_animation}Uses:83 583Used by:586
Symbol 585 GraphicUsed by:586
Symbol 586 MovieClip {junglebubble.BubbleClip}Uses:374 416 584 83 585
Symbol 587 GraphicUsed by:591
Symbol 588 GraphicUsed by:591
Symbol 589 GraphicUsed by:591
Symbol 590 GraphicUsed by:591
Symbol 591 MovieClip {RockExplosion}Uses:587 588 589 590
Symbol 592 GraphicUsed by:596
Symbol 593 GraphicUsed by:596
Symbol 594 GraphicUsed by:595
Symbol 595 MovieClipUses:594Used by:596
Symbol 596 MovieClipUses:592 593 595Used by:624
Symbol 597 GraphicUsed by:601
Symbol 598 GraphicUsed by:601
Symbol 599 GraphicUsed by:600
Symbol 600 MovieClipUses:599Used by:601
Symbol 601 MovieClipUses:597 598 600Used by:624
Symbol 602 GraphicUsed by:606
Symbol 603 GraphicUsed by:606
Symbol 604 GraphicUsed by:605
Symbol 605 MovieClipUses:604Used by:606
Symbol 606 MovieClipUses:602 603 605Used by:624
Symbol 607 GraphicUsed by:608
Symbol 608 MovieClipUses:607Used by:624
Symbol 609 GraphicUsed by:615
Symbol 610 GraphicUsed by:615
Symbol 611 GraphicUsed by:612
Symbol 612 MovieClipUses:611Used by:615
Symbol 613 GraphicUsed by:614
Symbol 614 MovieClipUses:613Used by:615
Symbol 615 MovieClipUses:609 610 612 614Used by:624
Symbol 616 GraphicUsed by:620
Symbol 617 GraphicUsed by:620
Symbol 618 GraphicUsed by:619
Symbol 619 MovieClipUses:618Used by:620
Symbol 620 MovieClipUses:616 617 619Used by:624
Symbol 621 GraphicUsed by:623
Symbol 622 GraphicUsed by:623
Symbol 623 MovieClipUses:621 622Used by:624
Symbol 624 MovieClipUses:596 601 606 608 615 620 623Used by:625
Symbol 625 MovieClip {MeterArrow}Uses:624

Instance Names

"head"Symbol 47 MovieClip Frame 1Symbol 42 MovieClip {jungle_bubble_deluxe_fla.monkeyhead_3}
"anima"Symbol 187 MovieClip {rank_gold_anim} Frame 1Symbol 186 MovieClip
"anima"Symbol 188 MovieClip {rank_silver_anim} Frame 1Symbol 186 MovieClip
"anima"Symbol 189 MovieClip {rank_stone_anim} Frame 1Symbol 186 MovieClip
"inner1"Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 2Symbol 56 MovieClip {rank_green_anim}
"inner2"Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 3Symbol 64 MovieClip {rank_blue_anim}
"inner3"Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 4Symbol 72 MovieClip {rank_purple_anim}
"inner4"Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 5Symbol 187 MovieClip {rank_gold_anim}
"inner5"Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 6Symbol 188 MovieClip {rank_silver_anim}
"inner6"Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 7Symbol 189 MovieClip {rank_stone_anim}
"msg_txt"Symbol 191 MovieClip Frame 1Symbol 46 EditableText
"head"Symbol 191 MovieClip Frame 1Symbol 47 MovieClip
"score_txt"Symbol 191 MovieClip Frame 1Symbol 48 EditableText
"item"Symbol 191 MovieClip Frame 1Symbol 190 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13}
"content"Symbol 192 MovieClip Frame 1Symbol 191 MovieClip
"content"Symbol 193 MovieClip Frame 1Symbol 191 MovieClip
"sign"Symbol 194 MovieClip {junglebubble.BonusCompleteSign} Frame 1Symbol 192 MovieClip
"sign"Symbol 194 MovieClip {junglebubble.BonusCompleteSign} Frame 70Symbol 193 MovieClip
"body"Symbol 241 MovieClip {junglebubble.Monkey} Frame 1Symbol 232 MovieClip {jungle_bubble_deluxe_fla.monkeybody_100}
"head"Symbol 241 MovieClip {junglebubble.Monkey} Frame 1Symbol 42 MovieClip {jungle_bubble_deluxe_fla.monkeyhead_3}
"helmet"Symbol 241 MovieClip {junglebubble.Monkey} Frame 1Symbol 234 MovieClip
"inner"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"c1"Symbol 381 MovieClip {aim_cursor} Frame 1Symbol 378 MovieClip
"c2"Symbol 381 MovieClip {aim_cursor} Frame 1Symbol 378 MovieClip
"c3"Symbol 381 MovieClip {aim_cursor} Frame 1Symbol 378 MovieClip
"c4"Symbol 381 MovieClip {aim_cursor} Frame 1Symbol 378 MovieClip
"c0"Symbol 381 MovieClip {aim_cursor} Frame 1Symbol 378 MovieClip
"c5"Symbol 381 MovieClip {aim_cursor} Frame 1Symbol 378 MovieClip
"c6"Symbol 381 MovieClip {aim_cursor} Frame 1Symbol 380 MovieClip
"aim_under"Symbol 382 MovieClip Frame 1Symbol 381 MovieClip {aim_cursor}
"rock_sublayer"Symbol 383 MovieClip Frame 1Symbol 376 MovieClip
"rock_effects"Symbol 383 MovieClip Frame 1Symbol 382 MovieClip
"stars"Symbol 419 MovieClip {bonus_sign} Frame 1Symbol 414 MovieClip {bonusmode_stars}
"bonus_txt"Symbol 419 MovieClip {bonus_sign} Frame 1Symbol 418 EditableText
"feet"Symbol 468 MovieClip {statue_animation} Frame 1Symbol 426 MovieClip
"belly"Symbol 468 MovieClip {statue_animation} Frame 1Symbol 427 MovieClip
"head"Symbol 468 MovieClip {statue_animation} Frame 1Symbol 428 MovieClip
"crown"Symbol 468 MovieClip {statue_animation} Frame 1Symbol 186 MovieClip
"jewel1"Symbol 468 MovieClip {statue_animation} Frame 1Symbol 445 MovieClip {jewels_small}
"jewel2"Symbol 468 MovieClip {statue_animation} Frame 1Symbol 445 MovieClip {jewels_small}
"jewel3"Symbol 468 MovieClip {statue_animation} Frame 1Symbol 461 MovieClip {jewels_big}
"jewel1_glow"Symbol 468 MovieClip {statue_animation} Frame 70Symbol 467 MovieClip
"jewel2_glow"Symbol 468 MovieClip {statue_animation} Frame 94Symbol 467 MovieClip
"jewel3_glow"Symbol 468 MovieClip {statue_animation} Frame 118Symbol 467 MovieClip
"title_txt"Symbol 489 MovieClip Frame 1Symbol 483 EditableText
"label_txt"Symbol 489 MovieClip Frame 1Symbol 484 EditableText
"sign"Symbol 490 MovieClip {junglebubble.BonusIntroSign} Frame 1Symbol 489 MovieClip
"top"Symbol 493 MovieClip Frame 1Symbol 491 MovieClip
"under"Symbol 493 MovieClip Frame 1Symbol 492 MovieClip
"monkey_under"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 241 MovieClip {junglebubble.Monkey}
"items"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 266 MovieClip {jungle_bubble_deluxe_fla.ranking_104}
"bonus_meter"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 273 MovieClip {junglebubble.NextBonusMeter}
"items"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 266 MovieClip {jungle_bubble_deluxe_fla.ranking_104}
"parrot_over"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 276 MovieClip {parrot}
"bonus_txt"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 278 EditableText
"score_txt"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 279 EditableText
"time_txt"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 280 EditableText
"bonus_val_txt"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 281 EditableText
"score_val_txt"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 282 EditableText
"time_val_txt"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 283 EditableText
"rep_under"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 286 MovieClip
"rep_over"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 289 MovieClip
"lever_normal"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 297 MovieClip
"lever_underworld"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 297 MovieClip
"bubble_launcher"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 350 MovieClip {bubbleshooter}
"bomb_launcher"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 353 MovieClip {bomblauncher}
"bubble_launcher_under"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 354 MovieClip {bubblelauncherunder}
"bubble_launcher_obj_shadow"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 356 MovieClip
"bubble_frame"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 359 MovieClip
"under_bubble_1"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 374 MovieClip
"under_bubble_0"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 374 MovieClip
"under_bubble_2"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 374 MovieClip
"under_bubble_3"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 374 MovieClip
"under_bubble_4"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 374 MovieClip
"bubble_base"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 375 MovieClip
"rock_base"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 383 MovieClip
"bucket_under"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 386 MovieClip
"lamp_under"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 389 MovieClip
"parrot_under"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 392 MovieClip
"bonus_bell"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 400 MovieClip
"bonus_time"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 411 MovieClip {junglebubble.BonusClock}
"aim_over"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 381 MovieClip {aim_cursor}
"bonussign"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 419 MovieClip {bonus_sign}
"monkey_over"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 241 MovieClip {junglebubble.Monkey}
"monkey_smoke"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 422 MovieClip {smoke_anim}
"monkey_jumper"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 241 MovieClip {junglebubble.Monkey}
"monkey_under"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 241 MovieClip {junglebubble.Monkey}
"statue"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 468 MovieClip {statue_animation}
"big_explosion"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 477 MovieClip {dynamite_explosion}
"bonus_intro_sign"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 490 MovieClip {junglebubble.BonusIntroSign}
"top_layer"Symbol 494 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 493 MovieClip
"txt"Symbol 498 MovieClip Frame 1Symbol 495 EditableText
"icon"Symbol 502 MovieClip Frame 1Symbol 501 MovieClip
"txt"Symbol 504 MovieClip Frame 1Symbol 503 EditableText
"icon"Symbol 508 MovieClip Frame 1Symbol 507 MovieClip
"exit"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 498 MovieClip
"sound"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 502 MovieClip
"full"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 504 MovieClip
"music"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 508 MovieClip
"hit_sound"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 510 MovieClip
"hit_exit"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 511 MovieClip
"hit_full"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 512 MovieClip
"ver_txt"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 513 EditableText
"hit_music"Symbol 515 MovieClip {junglebubble.GameControl} Frame 1Symbol 514 MovieClip
"score_val_txt"Symbol 556 MovieClip Frame 1Symbol 555 EditableText
"scoreflash"Symbol 557 MovieClip {gameover_scorepop} Frame 1Symbol 556 MovieClip
"txt"Symbol 559 MovieClip Frame 1Symbol 558 EditableText
"smoke"Symbol 560 MovieClip {smoke_scorepop} Frame 1Symbol 559 MovieClip
"statue"Symbol 574 MovieClip Frame 1Symbol 468 MovieClip {statue_animation}
"total_score_txt"Symbol 574 MovieClip Frame 1Symbol 549 EditableText
"total_score_val_txt"Symbol 574 MovieClip Frame 1Symbol 550 EditableText
"scorepop"Symbol 574 MovieClip Frame 1Symbol 557 MovieClip {gameover_scorepop}
"smoke"Symbol 574 MovieClip Frame 1Symbol 560 MovieClip {smoke_scorepop}
"head"Symbol 574 MovieClip Frame 1Symbol 47 MovieClip
"sign_title_txt"Symbol 574 MovieClip Frame 1Symbol 561 EditableText
"shot_bonus_txt"Symbol 574 MovieClip Frame 1Symbol 562 EditableText
"shot_bonus_val_txt"Symbol 574 MovieClip Frame 1Symbol 563 EditableText
"bonus_txt"Symbol 574 MovieClip Frame 1Symbol 564 EditableText
"bonus_val_txt"Symbol 574 MovieClip Frame 1Symbol 565 EditableText
"time_bonus_txt"Symbol 574 MovieClip Frame 1Symbol 566 EditableText
"time_bonus_val_txt"Symbol 574 MovieClip Frame 1Symbol 567 EditableText
"score_txt"Symbol 574 MovieClip Frame 1Symbol 568 EditableText
"score_val_txt"Symbol 574 MovieClip Frame 1Symbol 569 EditableText
"open_msg_txt"Symbol 574 MovieClip Frame 1Symbol 570 EditableText
"restartBtn"Symbol 574 MovieClip Frame 1Symbol 573 Button
"instructions1"Symbol 575 MovieClip {buskar} Frame 1Symbol 536 MovieClip {instructions_1}
"instructions2"Symbol 575 MovieClip {buskar} Frame 1Symbol 541 MovieClip {instructions_2}
"countdown_txt"Symbol 575 MovieClip {buskar} Frame 1Symbol 542 EditableText
"sign_title_txt"Symbol 575 MovieClip {buskar} Frame 1Symbol 543 EditableText
"bottom_txt"Symbol 575 MovieClip {buskar} Frame 1Symbol 544 EditableText
"countdown_txt"Symbol 575 MovieClip {buskar} Frame 1Symbol 545 EditableText
"gameover"Symbol 575 MovieClip {buskar} Frame 2Symbol 574 MovieClip
"texts"Symbol 576 MovieClip Frame 1Symbol 575 MovieClip {buskar}
"platta"Symbol 577 MovieClip Frame 1Symbol 576 MovieClip
"sign"Symbol 582 MovieClip {junglebubble.Bushes} Frame 1Symbol 577 MovieClip
"ball"Symbol 586 MovieClip {junglebubble.BubbleClip} Frame 1Symbol 374 MovieClip
"bonus_sparkle"Symbol 586 MovieClip {junglebubble.BubbleClip} Frame 1Symbol 416 MovieClip {bonus_bubble}
"transform_anim"Symbol 586 MovieClip {junglebubble.BubbleClip} Frame 1Symbol 584 MovieClip {transform_animation}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.




http://swfchan.com/52/259655/info.shtml
Created: 8/2 -2025 01:58:30 Last modified: 8/2 -2025 01:58:30 Server time: 08/12 -2025 04:14:20