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

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

monkey_quest.swf

This is the info page for
Flash #246617

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


Text
---

0

Bonus mode!

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 = 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 = ((_arg1 - _local10) * _local12); var _local13:* = (_arg2 - _local11); _local13 = ((_arg2 - _local11) * _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 _local2:* = _arg1.x1; var _local3:* = _arg1.x2; var _local4:* = _arg1.y1; var _local5:* = _arg1.y2; var _local6:* = (x1 - _local2); var _local7:* = (y1 - _local4); var _local8:* = (_local3 - _local2); var _local9:* = (_local5 - _local4); var _local10:* = (x2 - x1); var _local11:* = (y2 - y1); var _local12:* = ((_local9 * _local10) - (_local8 * _local11)); var _local13:* = (((_local8 * _local7) - (_local9 * _local6)) / _local12); var _local14:* = (((_local10 * _local7) - (_local11 * _local6)) / _local12); var _local15:Pt; if ((((((_local13 > 0)) && ((_local13 < 1)))) && ((((_local14 > 0)) && ((_local14 < 1)))))){ _local15 = new Pt((x1 + (_local13 * (x2 - x1))), (y1 + (_local13 * (y2 - y1)))); }; return (_local15); } public function distance(_arg1:Number, _arg2:Number):Number{ return (Math.sqrt(distanceSquared(_arg1, _arg2))); } public function intersects(_arg1:Line):Boolean{ var _local10:*; var _local2:* = (x2 - x1); var _local3:* = (y2 - y1); var _local4:* = (_arg1.x2 - _arg1.x1); var _local5:* = (_arg1.y2 - _arg1.y1); var _local6:* = ((_local5 * _local2) - (_local4 * _local3)); if (_local6 == 0){ return (false); }; var _local7:* = (x1 - _arg1.x1); var _local8:* = (y1 - _arg1.y1); var _local9:* = (((_local4 * _local8) - (_local5 * _local7)) / _local6); if ((((_local9 > 0)) && ((_local9 < 1)))){ _local10 = (((_local2 * _local8) - (_local3 * _local7)) / _local6); return ((((_local10 > 0)) && ((_local10 < 1)))); }; return (false); } } }//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 _local2:*; var _local1:* = Math.sqrt(((x * x) + (y * y))); if (_local1 > 0){ _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); }; } public function copyFrom(_arg1:Vec2D):void{ x = _arg1.x; y = _arg1.y; } } }//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 { public function monkeybody_100(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//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 { public function monkeyhead_3(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//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 inner6:rank_stone_anim; public var inner2:rank_blue_anim; public var inner4:rank_gold_anim; public var inner1:rank_green_anim; public var inner3:rank_purple_anim; public var inner5:rank_silver_anim; public function rank_anim_13(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//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 { public function ranking_104(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//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(){ 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; var _local1:int; 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 _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local3:Number = m_fr.value; if (_local3 != m_lastRad){ m_lastRad = _local3; _local4 = Math.cos(_local3); _local5 = ((-(_local4) * m_lengthOffset) + m_ax); _local6 = (m_dist * _local4); _local7 = Math.sin(_local3); _local8 = ((-(_local7) * m_lengthOffset) + m_ay); _local9 = (m_dist * _local7); c0.x = _local5; c0.y = _local8; _local5 = (_local5 - _local6); _local8 = (_local8 - _local9); c1.x = _local5; c1.y = _local8; _local5 = (_local5 - _local6); _local8 = (_local8 - _local9); c2.x = _local5; c2.y = _local8; _local5 = (_local5 - _local6); _local8 = (_local8 - _local9); c3.x = _local5; c3.y = _local8; _local5 = (_local5 - _local6); _local8 = (_local8 - _local9); c4.x = _local5; c4.y = _local8; _local5 = (_local5 - _local6); _local8 = (_local8 - _local9); c5.x = _local5; c5.y = _local8; _local5 = (_local5 - _local6); _local8 = (_local8 - _local9); c6.x = _local5; c6.y = _local8; }; } 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 _local8:int; var _local9:int; var _local10:MovieClip; var _local11:int; var _local12:int; var _local13:Bubble; 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 _local2:* = 13; var _local3:* = m_game.getSharedData(); m_bubbleBox = new BubbleBox(m_game, _local3, _arg1, _local2, 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 _local4 = 5; var _local5:Array = [COLORS[0], COLORS[1], COLORS[2]]; var _local6:int; while (_local6 < m_rng.nextInt(4)) { _local5.push(_local5.shift()); _local6++; }; var _local7:int = (_local4 - _local5.length); _local6 = 0; while (_local6 < _local7) { _local8 = m_rng.nextInt(_local5.length); _local5.splice(_local8, 0, _local5[_local8]); _local6++; }; _local6 = 0; while (_local6 < 5) { _local9 = _local5.shift(); if (_local6 == 0){ m_aimBubble.setColorIndex(_local9); } else { _local10 = MovieClip(m_main[("under_bubble_" + _local6)]); _local11 = _local10.x; _local12 = (_local10.y - 620); _local13 = new Bubble(); _local13.assureFull(); _local13.setPosition(_local11, _local12); _local13.setColorIndex(_local9); _local13.setCollidableList(m_mineCollidabelList); m_main.rock_base.addChild(_local13.bubble); m_bubbleQueue.push(_local13); }; _local6++; }; } 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{ 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; }; var _local1:int; 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 _local6:CompositeBubble; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:int; var _local11:Bubble; var _local12:CompositeBubble; var _local13:int; var _local14:int; var _local15:int; var _local16:Number; var _local17:Bubble; var _local18:Bubble; var _local19:int; var _local20:int; var _local21:Bubble; var _local22:int; var _local23:*; var _local24:*; var _local25:Boolean; var _local26:CompositeBubble; m_tick = _arg1; m_bonusTime.tick(); var _local5:int; 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; _local6 = new CompositeBubble(); _local7 = ((((Math.PI * 2) - (Math.PI / 2)) + (2.4 * m_rng.nextDouble())) - 1.2); _local8 = (XPMath.cos(_local7) * 7); _local9 = (-(XPMath.sin(_local7)) * 7); _local10 = (508 + (m_rng.nextInt(150) - 75)); _local6.setMovement(_local8, _local9); _local6.setPosition(_local10, -(BubbleBox.radiusY)); _local6.setWall((372 + 19), (648 - 19)); _local4 = 0; while (_local4 < 1) { _local11 = new Bubble(); _local11.assureFull(); _local11.setCollidableList(m_mineCollidabelList); _local11.setColorIndex(m_bubbleColor); _local11.arrayX = _local4; _local11.arrayY = m_groupSeq; m_main.rock_base.addChild(_local11.bubble); m_fallingBubble.push(_local11); _local6.addBubble(_local11, 0, 0); _local4++; }; _local6.group = m_groupSeq; m_compositeBubbleList.push(_local6); m_groupSeq++; }; if (((!(isBonusLevelCompleted)) && ((m_spawnNextBubbleAt == -1)))){ m_spawnNextBubbleAt = (_arg1 + 75); }; _local4 = 0; while (_local4 < m_compositeBubbleList.length) { _local12 = m_compositeBubbleList[_local4]; _local12.tick(_arg1); if (_local12.exploding()){ m_compositeBubbleList.splice(_local4, 1); _local5 = 0; while (_local5 < m_fallingBubble.length) { _local17 = m_fallingBubble[_local5]; if (_local12.group == _local17.arrayY){ _local17.isRemoving = true; _local17.bubble.setDropOffset(1200); _local17.drop(_local12.getMoveX(), _local12.getMoveY(), false, false); m_fallingBubble.splice(_local5, 1); } else { _local5++; }; }; _local13 = _local12.getY(); _local14 = 200; _local15 = 400; if (_local13 < _local14){ _local13 = _local14; }; if (_local13 > _local15){ _local13 = _local15; }; _local16 = ((_local13 - _local14) / (_local15 - _local14)); m_poppedBubbleYAccumulate = (m_poppedBubbleYAccumulate + int(((390 * _local16) + 16))); m_numPoppedBubble++; } else { _local4++; }; }; _local4 = 0; while (_local4 < m_fallingBubble.length) { _local18 = m_fallingBubble[_local4]; _local19 = _local18.getY(); if (_local19 > 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 (_local18.isStuck){ } else { _local20 = 0; while (_local20 < m_shotBubble.length) { _local21 = m_shotBubble[_local20]; _local22 = _local21.getY(); if (_local22 < -50){ m_game.getSoundManager().get("scream").play(); m_poppedBubbleYAccumulate = (m_poppedBubbleYAccumulate + 200); m_shotBubble.splice(_local20, 1); _local21.remove(); } else { m_shotBubble.slice(); if (_local21.isStuck){ } else { _local23 = (_local21.getX() - _local18.getX()); _local24 = (_local22 - _local19); if (((_local23 * _local23) + (_local24 * _local24)) < (35 * 35)){ m_shotBubble.splice(_local20, 1); _local25 = false; _local5 = 0; while (_local5 < m_compositeBubbleList.length) { _local26 = m_compositeBubbleList[_local5]; if (_local26.group == _local18.arrayY){ if (_local26.aboutToExplode()){ _local21.explode(); break; }; if (_local26.getNumBubbles() == 1){ _local26.setBubbleOffset(0, -19, 0); _local26.addBubble(_local21, 19, 0); _local21.arrayX = 2; _local21.arrayY = _local26.group; m_fallingBubble.push(_local21); } else { if (_local26.getNumBubbles() == 2){ m_game.getSoundManager().get("burst").play(0.7); _local26.setBubbleOffset(0, -19, (19 / 2)); _local26.setBubbleOffset(1, 19, (19 / 2)); _local26.addBubble(_local21, 0, (-19 * 1.1)); _local21.arrayX = 3; _local21.arrayY = _local26.group; m_fallingBubble.push(_local21); }; }; break; }; _local5++; }; _local21.isRemoving = true; } else { _local20++; }; }; }; }; _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 = 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 _local2:*; var _local1:* = m_fy.value; if (y != _local1){ y = _local1; }; if (visible){ _local2 = m_bubbleYF1.value; m_bubbles[0].y = _local2; m_bubbles[2].y = _local2; 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 RADIUS:int = 8; private static const SPEED:int = 25; 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 _local4:ColorTransform; var _local5:ColorTransform; var _local6:Number; if (!bubble){ bubble.removeEventListener(Event.ENTER_FRAME, animateBonusFlash); return; }; var _local2:int = getTimer(); if (_local2 < m_flashStart){ return; }; if (m_flashT == -1){ m_flashT = _local2; }; var _local3:int = (_local2 - m_flashT); m_flashT = _local2; m_flashR = (m_flashR + (_local3 * 0.02)); if (m_flashR > ((Math.PI / 2) + (Math.PI * 2))){ m_flashStart = (_local2 + 2000); m_flashR = (Math.PI / 2); m_flashT = -1; bubble.scaleX = 1; bubble.scaleY = 1; bubble.transform.colorTransform = new ColorTransform(); } else { _local4 = new ColorTransform(); _local5 = new ColorTransform(); _local4.color = 0xFFFFFF; _local6 = Math.sin(m_flashR); bubble.transform.colorTransform = interpolateColor(_local4, _local5, ((_local6 * 0.5) + 0.5)); bubble.scaleX = ((_local6 * 0.25) + 1); bubble.scaleY = ((_local6 * 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_offsetOdd:Array = [[0, -1], [1, -1], [1, 0], [1, 1], [0, 1], [-1, 0]]; private static const m_offsetEven:Array = [[-1, -1], [0, -1], [1, 0], [0, 1], [-1, 1], [-1, 0]]; public function BubbleBox(_arg1:Game, _arg2:SharedData, _arg3:int, _arg4:int, _arg5:Array, _arg6:int=1){ var _local9:int; var _local11:Boolean; var _local12:int; var _local13:int; var _local14:Bubble; var _local15:*; var _local16:*; super(); var _local7:* = 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 _local8:* = 0; m_consecutiveBursts = 0; m_bonusBubbleRng = new MtRandom(m_bubbleRng.nextInt(2147483647)); _local9 = 0; while (_local9 < m_bubbles.length) { _local11 = ((_local9 & 1) == 0); _local12 = (_local11) ? 7 : 8; m_bubbles[_local9] = new Array(_local12); if (_local9 < (_arg4 - 2)){ _local13 = 0; while (_local13 < _local12) { _local14 = new Bubble(); _local14.arrayX = _local13; _local14.arrayY = _local9; _local14.isStuck = true; _local15 = ((_local11) ? (radiusX / 2) : 0 + (_local13 * radiusX)); _local16 = (_local9 * radiusY); _local14.setPositionLimited(_local15, _local16); _local14.setColorIndex(_arg5[m_bubbleRng.nextInt(_arg5.length)]); m_bubbles[_local9][_local13] = _local14; _local8++; _local13++; }; }; _local9++; }; 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 _local10:* = getTimer(); } public function setCanSpawnBonus(_arg1:Boolean):void{ m_spawnBonusEnable = _arg1; } public function getUniqueColors():Array{ var _local3:int; var _local4:int; var _local5:Boolean; var _local6:int; var _local1:* = new Array(); var _local2:int; while (_local2 < m_bubbles.length) { _local3 = m_bubbles[_local2].length; while (_local3--) { if (m_bubbles[_local2][_local3] != null){ _local4 = m_bubbles[_local2][_local3].getColorIndex(); if (_local4 == 6){ } else { _local5 = false; _local6 = 0; while (((!(_local5)) && ((_local6 < _local1.length)))) { if (_local1[_local6] == _local4){ _local5 = true; }; _local6++; }; if (!_local5){ _local1.push(_local4); }; if (_local1.length == 5){ return (_local1); }; }; }; }; _local2++; }; if (_local1.length == 0){ _local1.push(7); }; return (_local1); } public function 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 _local4:int; var _local5:int; var _local6:int; var _local7:Array; var _local8:*; var _local9:*; var _local2:* = ((((_arg1.y & 1) == 0)) ? (radiusX / 2) : 0 + (_arg1.x * radiusX)); var _local3:* = (_arg1.y * radiusY); _local4 = Math.min((m_bubbles.length - 1), (_arg1.y + 1)); _local6 = Math.max(0, (_arg1.y - 2)); while (_local4 >= _local6) { _local7 = m_bubbles[_local4]; _local5 = _local7.length; while (_local5--) { if (_local7[_local5] == null){ } else { _local8 = (_local2 - _local7[_local5].getX()); _local9 = (_local3 - _local7[_local5].getY()); if (((_local8 * _local8) + (_local9 * _local9)) <= (20 * 20)){ return (true); }; }; }; _local4--; }; return (false); } public function getFirstRowWithBubbles():int{ var _local2:int; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { if (m_bubbles[_local1][_local2] != null){ return (_local1); }; }; }; return (0); } public function canFire():Boolean{ return ((m_bonusLevelStartDelay == -1)); } public function getNumVisibleBubble():int{ return (m_numVisibleBubble); } private function attachBubble(_arg1:Bubble):void{ var _local10:BubbleListener; if (_arg1 == null){ return; }; var _local2:* = 0; if ((_arg1.suggestY & 1) == 0){ _local2 = (radiusX / 2); }; var _local3:* = (_local2 + (_arg1.suggestX * radiusX)); var _local4:* = (_arg1.suggestY * radiusY); if ((((_arg1.suggestY < 0)) || (((!(m_isAllowedBottomRow)) && ((_arg1.suggestY == (m_bubbles.length - 1))))))){ _arg1.bounceOff(); _arg1 = null; return; }; _arg1.arrayX = _arg1.suggestX; _arg1.arrayY = _arg1.suggestY; _arg1.stick(_local3, _local4); m_bubbles[_arg1.suggestY][_arg1.suggestX] = _arg1; bubbleInView(_arg1); var _local5:Boolean; var _local6:Boolean; if (!m_disabled){ _local5 = testForExpansion(_arg1.suggestX, _arg1.suggestY); _local6 = testForDrop(); }; var _local7:SoundManager = m_game.getSoundManager(); if (((_local6) && (_local5))){ _local7.get("shot3").play(); } else { if (((!(_local6)) && (_local5))){ _local7.get("shot2").play(); } else { _local7.get("shot4").play(); }; }; var _local8:* = false; var _local9:int = m_bubbles[(m_height - 1)].length; while (_local9--) { if (m_bubbles[(m_height - 1)][_local9] != null){ _local8 = true; break; }; }; if (_local8){ for each (_local10 in m_listener) { _local10.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 _local4:int; var _local5:Bubble; var _local6:Pt; var _local1:Array = new Array(); var _local2:int = m_bubbles.length; while (_local2--) { _local4 = m_bubbles[_local2].length; while (_local4--) { _local5 = m_bubbles[_local2][_local4]; if ((((_local5 == null)) || ((_local5.bubble == null)))){ } else { if ((((_local5.arrayY == 0)) || (_local5.isBonus))){ } else { _local6 = matrixToScreen(_local5.arrayX, _local5.arrayY); if (_local6.y < radiusY){ } else { _local1.push(_local5); }; }; }; }; }; if (_local1.length == 0){ return (null); }; var _local3:int = (m_bonusBubbleRng.nextInt(0xA000) % _local1.length); return (Bubble(_local1[_local3])); } public function testForDrop():Boolean{ var _local1:int; var _local2:int; var _local12:Bubble; var _local13:Bubble; var _local14:Bubble; var _local15:int; var _local16:int; var _local17:Array; var _local18:int; var _local19:int; var _local20:int; var _local21:*; var _local22:*; var _local23:BubbleListener; var _local24:*; var _local3:Array = new Array(); var _local4:int = getTimer(); _local2 = m_bubbles[0].length; while (_local2--) { if (m_bubbles[0][_local2] != null){ _local3.push(m_bubbles[0][_local2]); }; }; var _local5:Object = {}; var _local6:* = {}; _local1 = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { _local13 = m_bubbles[_local1][_local2]; if (_local13 != null){ _local6[((_local2 << 16) | _local1)] = _local13; }; }; }; var _local7:int = m_bubbles.length; while (_local3.length > 0) { _local14 = _local3.pop(); _local15 = _local14.arrayX; _local16 = _local14.arrayY; _local17 = ((_local16 & !((1 == 0)))) ? m_offsetEven : m_offsetOdd; _local1 = 6; while (_local1--) { _local18 = (_local15 + _local17[_local1][0]); _local19 = (_local16 + _local17[_local1][1]); _local20 = ((_local18 << 16) | _local19); if (!_local5[_local20]){ _local5[_local20] = 1; if ((((((((_local18 < 0)) || ((_local19 < 0)))) || ((_local19 >= _local7)))) || ((_local18 >= m_bubbles[_local19].length)))){ } else { if (m_bubbles[_local19][_local18]){ _local3.push(m_bubbles[_local19][_local18]); delete _local6[_local20]; }; }; }; }; }; var _local8:Array = [0, 50, 100, 150, 200, 300, 400, 500, 650, 800, 950, 1100, 1300, 1500, 1700, 2000]; var _local9:Boolean; var _local10 = 1; var _local11:int; for each (_local12 in _local6) { if (_local12.arrayY > 0){ m_bubbles[_local12.arrayY][_local12.arrayX] = null; if (_local12.bubble == null){ _local21 = (((_local12.arrayY)!=0) ? (radiusX / 2) : 0 + (_local12.arrayX * radiusX)); _local22 = (_local12.arrayY * radiusY); _local12.assureFull(); _local12.setPosition(_local21, _local22); if (m_dropLayer){ m_dropLayer.addChild(_local12.bubble); } else { addChild(_local12.bubble); }; } else { if (m_dropLayer){ m_dropLayer.addChild(_local12.bubble); }; }; if (_local12.isBonus){ _local10 = _local12.getColorIndex(); _local9 = true; }; m_numBubblesDestroyed++; _local11++; _local12.drop(0, 0, true, _local12.isBonus); }; }; if (_local11 != 0){ for each (_local23 in m_listener) { _local23.onBubbleRemove(); }; }; if (m_isScoreEnable){ _local24 = _local8[Math.min((_local8.length - 1), _local11)]; m_sharedData.score = (m_sharedData.score + _local24); }; if (_local9){ m_game.getSoundManager().get("bonusdrop").play(); m_bonusLevelStartDelay = 25; }; return ((_local11 > 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 i:int; var j:int; var listener:BubbleListener; var isRowNotClear:Boolean; var bubbleRemoved:Boolean; var bubble:Bubble; var nx:int; var ny:int; var k:Number; var px:*; var py:*; var p:*; var newBonusBubble:Bubble; var b:Bubble; var arr:Array; var rowVis:Boolean; var o:Bubble; var yk:int; var targetView:*; var tick = _arg1; m_tick = tick; if (m_disabled){ if (m_disableRowCount >= 0){ if (m_disableRowCount == (m_bubbles.length - 1)){ i = 0; while (i < m_liveBubble.length) { m_liveBubble[i].disableBubble(); i = (i + 1); }; }; j = m_bubbles[m_disableRowCount].length; while ((j = (j - 1)), j) { if (m_bubbles[m_disableRowCount][j] != null){ m_bubbles[m_disableRowCount][j].disableBubble(); }; }; m_disableRowCount--; }; }; i = 0; while (i < m_liveBubble.length) { bubbleRemoved = false; bubble = m_liveBubble[i]; bubble.pushState(); bubble.tick((tick + 1)); bubble.tick((tick + 2)); nx = bubble.getX(); ny = bubble.getY(); bubble.popState(); k = 0; while (k < 1) { px = ((bubble.getX() * (1 - k)) + (nx * k)); py = ((bubble.getY() * (1 - k)) + (ny * k)); p = screenToMatrix(px, py); if (isClear(p.x, p.y)){ bubble.suggestX = p.x; bubble.suggestY = p.y; }; if ((((((py - m_viewOffset) + 20) < 0)) || (testPoint(p)))){ attachBubble(bubble); m_liveBubble.splice(i, 1); bubbleRemoved = true; break; }; k = (k + 0.3334); }; if (m_spawnBonusEnable){ if ((((m_numBonusBubbleSpawn < 5)) && ((m_numBubblesDestroyed >= 20)))){ m_numBubblesDestroyed = 0; if (!hasBonusBubble()){ newBonusBubble = getRandomBottomBubble(5); m_game.getSoundManager().get("bubble_appear").play(); if (newBonusBubble != null){ try { setChildIndex(newBonusBubble.bubble, (numChildren - 1)); } catch(ex) { }; newBonusBubble.promoteToBonus(); for each (listener in m_listener) { listener.onBubbleRemove(); }; } else { i = 0; while (i < m_bubbles[0].length) { if (m_bubbles[0][i] != null){ px = (i * radiusX); py = (1 * radiusY); b = new Bubble(); b.assureFull(); b.arrayX = i; b.arrayY = 1; b.isStuck = true; b.setColorIndex(1); b.promoteToBonus(); b.setPositionLimited(px, py); m_bubbles[1][i] = b; break; }; i = (i + 1); }; }; m_numBonusBubbleSpawn++; m_hasBonusBubble = true; } else { m_hasBonusBubble = true; }; }; }; if (!bubbleRemoved){ i = (i + 1); }; }; m_numRows = 0; m_numBubble = 0; m_numVisibleBubble = 0; var maxHeight = -1; var visTop:int = ((-(radiusY) * 2) + m_viewTop); var minHeight:int = ((m_height - 2) * radiusY); var roY:int = (m_bubbles.length * radiusY); i = m_bubbles.length; while ((i = (i - 1)), i) { roY = (roY - radiusY); isRowNotClear = true; arr = m_bubbles[i]; rowVis = ((m_viewOffset + roY) > visTop); j = arr.length; while ((j = (j - 1)), j) { o = arr[j]; if (o == null){ } else { if (rowVis){ if (((((o.isStuck) && ((o.bubble == null)))) || ((o.bubble.parent == null)))){ bubbleInView(o); }; m_numVisibleBubble++; }; if (isRowNotClear){ isRowNotClear = false; yk = (roY + radiusY); if (yk < maxHeight){ yk = maxHeight; }; if (yk > minHeight){ yk = minHeight; }; maxHeight = yk; m_numRows++; }; m_numBubble++; }; }; }; if (((((!(m_isInBonusLevel)) && ((m_numBubble == 0)))) && ((m_bonusLevelStartDelay == -1)))){ for each (listener in m_listener) { listener.onNoMoreBubbles(); }; }; if (m_bonusLevelStartDelay != -1){ if (--m_bonusLevelStartDelay == 0){ for each (listener in m_listener) { listener.onBonusBubbleCollected(6); }; m_bonusLevelStartDelay = -1; }; }; if (!m_useManualScrolling){ if (m_scroller == null){ targetView = Math.min((radiusY / 2), ((m_viewBottom - maxHeight) + (m_bottomOffset * radiusY))); if (targetView != m_viewOffset){ if (((m_useScrollDelay) && ((targetView > m_viewOffset)))){ m_scrollStartDelay = 11; }; m_scroller = new EaseOutQuadInterpolator(m_viewOffset, targetView, 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 _local2:int; var _local3:Bubble; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { _local3 = m_bubbles[_local1][_local2]; if ((((_local3 == null)) || ((_local3.bubble == null)))){ } else { if (_local3.isBonus){ return (true); }; }; }; }; return (false); } 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 _local8:Bubble; var _local9:Array; var _local10:int; var _local11:int; var _local12:int; var _local13:String; var _local14:int; var _local15:Bubble; var _local16:Boolean; var _local17:*; var _local18:Bubble; var _local19:BubbleListener; var _local20:Array; var _local3:* = {}; var _local4:Bubble = m_bubbles[_arg2][_arg1]; var _local5:int = _local4.getColorIndex(); var _local6:Array = new Array(); var _local7:Array = new Array(); _local7.push(_local4); while (_local7.length > 0) { _local8 = _local7.shift(); _local9 = ((_local8.arrayY & !((1 == 0)))) ? m_offsetEven : m_offsetOdd; _local10 = 0; while (_local10 < _local9.length) { _local11 = (_local8.arrayX + _local9[_local10][0]); _local12 = (_local8.arrayY + _local9[_local10][1]); _local13 = ((_local11 + ",") + _local12); if (!_local3[_local13]){ _local3[_local13] = 1; _local14 = getColor(_local11, _local12); if (_local14 == _local5){ _local15 = getBubble(_local11, _local12); _local6.push(_local15); _local7.push(_local15); }; }; _local10++; }; }; if (_local6.length >= 3){ _local16 = false; _local17 = 0; for each (_local18 in _local6) { if (_local18.isBonus){ _local16 = true; }; m_bubbles[_local18.arrayY][_local18.arrayX] = null; _local18.explode(); m_numBubblesDestroyed++; _local17++; }; for each (_local19 in m_listener) { _local19.onBubbleRemove(); }; if (m_isScoreEnable){ m_sharedData.score = (m_sharedData.score + 10); _local20 = [0, 30, 50, 70, 100, 150]; if ((((m_consecutiveBursts > 0)) && ((m_consecutiveBursts < 6)))){ m_sharedData.score = (m_sharedData.score + _local20[m_consecutiveBursts]); } else { if (m_consecutiveBursts >= 6){ m_sharedData.score = (m_sharedData.score + (15 + (100 * (m_consecutiveBursts - 5)))); }; }; }; if (_local16){ for each (_local19 in m_listener) { _local19.onBonusBubbleWasted(); }; }; m_consecutiveBursts++; if (m_consecutiveBursts > 15){ m_consecutiveBursts = 15; }; } else { m_consecutiveBursts = 0; }; return ((_local17 > 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 _local2:Boolean; var _local3:int; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = false; _local3 = m_bubbles[_local1].length; while (_local3--) { if (m_bubbles[_local1][_local3] == null){ _local2 = true; break; }; }; if (!_local2){ return ((_local1 + 1)); }; }; return (0); } public function popLiveBubbles():void{ var _local2:Bubble; var _local1:int; while (_local1 < m_liveBubble.length) { _local2 = m_liveBubble[_local1]; _local2.explode(); _local2.isRemoving = true; _local1++; }; } public function bubbleHeight():int{ var _local2:int; var _local1:int = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { if (m_bubbles[_local1][_local2] != null){ return (((_local1 + 1) * radiusY)); }; }; }; return (0); } 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 _local2:int; var _local3:Bubble; m_listener = {}; var _local1:int; while (_local1 < m_liveBubble.length) { m_liveBubble[_local1].remove(); _local1++; }; m_liveBubble = null; _local1 = m_bubbles.length; while (_local1--) { _local2 = m_bubbles[_local1].length; while (_local2--) { _local3 = m_bubbles[_local1][_local2]; if (_local3 != null){ _local3.remove(); }; m_bubbles[_local1][_local2] = null; }; m_bubbles[_local1] = null; }; m_bubbles = null; } } }//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 _local4:*; var _local2:int = getTimer(); if (_local2 < m_startDelay){ if (_local2 >= m_nextJerkAt){ m_nextJerkAt = (_local2 + 5); _local4 = (16 * (1 - ((m_startDelay - _local2) / 100))); x = ((m_startX + (Math.random() * _local4)) - (_local4 / 2)); y = ((m_startY + ((Math.random() * _local4) / 4)) - (_local4 / 8)); rotation = ((Math.random() * 14) - 7); }; return; }; if (m_startTime < 0){ m_startTime = _local2; }; var _local3:uint = uint(Math.round((((_local2 - m_startTime) / ((1 / 30) * 1000)) + 1))); if (_local3 > totalFrames){ removeEventListener(Event.ENTER_FRAME, animateExplosion); m_bubble.remove(); return; }; if (_local3 != m_lastFrame){ gotoAndStop(_local3); m_lastFrame = _local3; }; } } }//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 localization.*; import flash.utils.*; 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 _local5:MovieClip; var _local6:*; var _local7:int; var _local8:*; var _local2:int = getTimer(); if (m_startTime < 0){ m_startTime = _local2; m_lastFrame = 0; if (((m_isGameOver) && (m_isSignAppear))){ _local5 = sign.platta.texts.gameover; _local5.smoke.visible = false; _local5.scorepop.visible = false; _local6 = 0; _local7 = 0; while (_local7 < m_sharedData.bonusLevel.length) { _local6 = (_local6 + m_sharedData.bonusLevel[_local7]); _local7++; }; if (m_sharedData.bonusLevel.length != 0){ _local6 = (_local6 / m_sharedData.bonusLevel.length); }; if (_local6 > 2.5){ _local5.head.head.gotoAndStop(Monkey.MOOD_HAPPY); } else { if (_local6 > 2){ _local5.head.head.gotoAndStop(Monkey.MOOD_NEUTRAL); } else { if (_local6 > 1){ _local5.head.head.gotoAndStop(Monkey.MOOD_DISTRESSED); } else { _local5.head.head.gotoAndStop(Monkey.MOOD_CRYING); }; }; }; _local5.head.addEventListener(Event.ENTER_FRAME, animateHead); _local5.sign_title_txt.text = I18n.getString("game_over_title"); _local5.shot_bonus_txt.text = I18n.getString("end_shotbonus"); _local5.shot_bonus_val_txt.text = ("" + m_sharedData.shotBonus); _local5.score_txt.text = I18n.getString("end_score"); _local5.score_val_txt.text = ("" + m_sharedData.score); _local5.bonus_txt.text = I18n.getString("end_bonus"); _local5.bonus_val_txt.text = "0"; if (!m_sharedData.isShortMode){ _local5.time_bonus_txt.text = I18n.getString("end_time_bonus"); _local5.time_bonus_val_txt.text = ("" + m_sharedData.timeBonus); } else { _local5.open_msg_txt.text = I18n.getString("open_game_message"); }; _local5.total_score_txt.text = I18n.getString("end_final_score"); _local5.total_score_val_txt.text = ("" + (m_sharedData.score + m_sharedData.shotBonus)); m_scoreVal = new RollingScore(_local5.score_val_txt, m_sharedData.score, -1); m_bonusVal = new RollingScore(_local5.bonus_val_txt, 0, -1); _local8 = ((m_sharedData.score + m_sharedData.shotBonus) + m_sharedData.timeBonus); m_finalScoreVal = new RollingScore(_local5.total_score_val_txt, _local8, -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 _local3:Number = ((1 / 50) * 1000); var _local4:uint = (m_playRange[0] + uint(Math.round((((_local2 - m_startTime) / _local3) + 1)))); if (_local4 >= m_playRange[1]){ _local4 = m_playRange[1]; sign.removeEventListener(Event.ENTER_FRAME, animateSign); }; if (_local4 != m_lastFrame){ if (!sign.visible){ sign.visible = true; visible = true; }; sign.gotoAndStop(_local4); m_lastFrame = _local4; }; } private function showNoBonusSmoke():void{ sign.platta.texts.gameover.smoke.visible = true; sign.platta.texts.gameover.smoke.start(); } public function hurryScoreCount():void{ m_isStatueComplete = true; var _local1:* = sign.platta.texts.gameover; _local1.statue.setState(m_sharedData.bonusLevel, m_sharedData.bonusLevelSubScore); var _local2:int; var _local3:int; 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 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 _local5:Array; var _local6:*; var _local7:*; 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 _local2:* = XPMath.sin(m_rotation); var _local3:* = XPMath.cos(m_rotation); var _local4:int; while (_local4 < m_bubble.length) { _local5 = m_bubble[_local4]; _local6 = (((_local3 * _local5[1]) + (_local2 * _local5[2])) + m_x); _local7 = (((_local2 * _local5[1]) - (_local3 * _local5[2])) + m_y); _local5[0].setTickedPosition(_local6, _local7); if ((((m_flipBlock == 0)) && (((_local6 - 19) > m_right)))){ m_dx = -(m_dx); m_flipBlock = 20; m_rotationS = (m_rotationS * 0.9); }; if ((((m_flipBlock == 0)) && (((_local6 + 19) < m_left)))){ m_dx = -(m_dx); m_flipBlock = 20; m_rotationS = (m_rotationS * 0.9); }; _local4++; }; 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; }; 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 sfx.*; import flash.display.*; import timing.*; import flash.events.*; import flash.geom.*; import localization.*; import util.*; import flash.system.*; import flash.filters.*; import flash.external.*; 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; public static const TICK_RATE:int = 30; public static const WIDTH:int = 754; public static const HEIGHT:int = 600; private static const AUTO_VERSION:String = "BUILD_[55]_121e2dd8a0a"; public static const DEBUG_MODE:Boolean = false; public static const PROTOCOL_VERSION:String = "32"; public function GameBase(){ m_mouseX = 0; m_mouseY = 0; m_lastKeys = new Array(10); m_isFirstEnterFrame = true; addEventListener(Event.ENTER_FRAME, enterFrame); } 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 _local4:int; var _local9:*; var _local10:*; var _local3:* = _arg1.keyCode; _local2 = (m_lastKeys.length - 1); while (_local2 > 0) { m_lastKeys[_local2] = m_lastKeys[(_local2 - 1)]; _local2--; }; m_lastKeys[0] = _local3; var _local5:* = [83, 85, 84, 78, 79, 80, 71, 78, 73, 75]; var _local6:* = true; var _local7:* = [68, 76, 73, 85, 66, -1, -1, -1, -1, -1]; var _local8:* = true; _local2 = 0; _local4 = m_lastKeys.length; while (((((_local8) || (_local6))) && ((_local2 < _local4)))) { _local9 = m_lastKeys[_local2]; _local10 = _local5[_local2]; if (((!((_local9 == _local10))) && (!((_local10 == -1))))){ _local6 = false; }; _local10 = _local7[_local2]; if (((!((_local9 == _local10))) && (!((_local10 == -1))))){ _local8 = false; }; _local2++; }; if (_local8){ 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 (_local6){ 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 = new XML(data.message); 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_gameCtrl.ver_txt.text = ((((("proto=" + PROTOCOL_VERSION) + ", build=") + m_sharedData.build) + ", build time=") + m_sharedData.buildDate); sendData((((((("33,0," + PROTOCOL_VERSION) + ",") + m_sharedData.build) + ",") + m_sharedData.buildDate.getTime()) + ",0=0")); m_nextStateIdx = 1; break; }; } 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 class GameControl extends MovieClip { public var exit:MovieClip; public var hit_sound:MovieClip; public var music:MovieClip; public var sound:MovieClip; public var ver_txt:TextField; public var full:MovieClip; public var hit_exit:MovieClip; public var hit_music:MovieClip; public var hit_full:MovieClip; } }//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 _local3:String; var _local4:Number; var _local5:Number; var _local1:int = getTimer(); var _local2:int = m_lastPlayed.length; while (_local2--) { if (_local1 > m_lastPlayed[_local2]){ _local3 = ("ambience" + _local2); _local4 = ((randInt(1000) / 500) - 1); _local5 = ((randInt(1000) / 3000) + 0.15); m_soundMgr.get(_local3).play(_local5, _local4); if (randInt(100) < 10){ m_soundMgr.get(_local3).fadeToAndStop(0, (randInt(500) + 1200)); } else { if (randInt(100) < 8){ m_soundMgr.get(_local3).setVolume(0); m_soundMgr.get(_local3).fadeTo(_local5, (randInt(500) + 1200)); }; }; m_lastPlayed[_local2] = ((_local1 + randInt(m_interval[_local2])) + 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_CONCENTRATED = 3; public static var MOOD_CRYING = 1; public static var MOOD_DISTRESSED = 2; public static var MOOD_HAPPY = 5; public static var MOOD_NEUTRAL = 4; public function Monkey(){ m_feelingHist = new Array(); gotoAndStop(1); readyNormal(); } public function update(_arg1:int):void{ 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; var _local3:int; 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 _local7:Bomb; var _local8:Array; var _local9:*; var _local10:Rock; var _local11:Array; var _local12:*; if (m_isFinished){ m_viewOffsetYF.set(m_viewOffsetY); return; }; _local2 = 0; while (_local2 < m_bombs.length) { _local7 = m_bombs[_local2]; if ((((_local7.getY() < 0)) || (testPoint((_local7.getX() - 384), _local7.getY())))){ _local7.explode(); _local8 = blastAt((_local7.getX() - 384), _local7.getY()); _local9 = testForCombo(_local8); if (_local9.length >= 3){ m_pauseScrollTicks = 18; for each (_local10 in _local9) { _local10.blast(); }; }; m_bombs.splice(_local2, 1); }; _local2++; }; testForDrop(); var _local6:* = true; _local2 = (m_rocks.length - 1); _local3 = 0; while (((_local6) && ((_local3 < 5)))) { _local6 = m_rocks[_local2][_local3].isHidden; _local3++; }; if (_local6){ _local11 = new Array(8); _local2 = 1; while (_local2 < 8) { _local11[_local2] = new Array(5); _local3 = 0; while (_local3 < 5) { _local11[_local2][_local3] = m_rocks[(_local2 - 1)][_local3]; _local11[_local2][_local3].arrayY++; _local3++; }; _local2++; }; m_scrollViewOffsetY = (m_scrollViewOffsetY - 62); _local11[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; _local11[0][_local3] = _local4; _local3++; }; m_rocks = _local11; }; _local2 = m_rocks.length; while (_local2--) { _local12 = m_rocks[_local2]; _local3 = _local12.length; while (_local3--) { _local4 = _local12[_local3]; if (_local12[_local3] == null){ } else { _local12[_local3].update(); if (_local12[_local3].isHidden){ } else { if (_local12[_local3].rock.parent != null){ } else { matrixToScreen(_local3, _local2); if (m_rValPt.y < -31){ } else { m_sublayer.addChild(_local12[_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){ } else { 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 _local4:int; var _local5:int; var _local6:*; var _local7:Rock; var _local8:int; var _local9:int; var _local3:Array = []; _local4 = m_rocks.length; while (_local4--) { _local6 = m_rocks[_local4]; _local5 = _local6.length; while (_local5--) { _local7 = _local6[_local5]; if (_local7.isHidden){ } else { matrixToScreen(_local5, _local4); _local8 = (_arg1 - m_rValPt.x); _local9 = (_arg2 - m_rValPt.y); if (((_local8 * _local8) + (_local9 * _local9)) < (50 * 50)){ _local7.cycle(); _local3.push(new Pt(_local5, _local4)); }; }; }; }; return (_local3); } 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){ } else { if (_local5[_local2].rock.parent == null){ } else { _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 _local7:Rock; var _local8:Rock; var _local9:int; var _local10:int; var _local11:String; var _local3:Array = new Array(); _local2 = m_rocks[0].length; while (_local2--) { if (!m_rocks[0][_local2].isHidden){ _local3.push(m_rocks[0][_local2]); }; }; var _local4:* = {}; var _local5:Array = [[1, 0], [0, 1], [-1, 0], [0, -1]]; var _local6:Object = {}; _local1 = m_rocks.length; while (_local1--) { _local2 = m_rocks[_local1].length; while (_local2--) { if (!m_rocks[_local1][_local2].isHidden){ _local6[((_local2 + ",") + _local1)] = m_rocks[_local1][_local2]; }; }; }; while (_local3.length > 0) { _local8 = _local3.shift(); _local1 = 0; while (_local1 < _local5.length) { _local9 = (_local8.arrayX + _local5[_local1][0]); _local10 = (_local8.arrayY + _local5[_local1][1]); _local11 = ((_local9 + ",") + _local10); if (((!(_local4[_local11])) && (isRock(_local9, _local10)))){ _local4[_local11] = 1; delete _local6[_local11]; _local3.push(m_rocks[_local10][_local9]); }; _local1++; }; }; for each (_local7 in _local6) { _local7.fall(); }; } function testForCombo(_arg1:Array):Array{ var _local7:Rock; var _local8:int; var _local9:int; var _local10:String; var _local2:int; var _local3:* = {}; var _local4:Array = new Array(); var _local5:Array = new Array(); var _local6:Array = [[1, 0], [0, 1], [-1, 0], [0, -1]]; _local2 = 0; while (_local2 < _arg1.length) { _local5.push(m_rocks[_arg1[_local2].y][_arg1[_local2].x]); _local2++; }; while (_local5.length > 0) { _local7 = _local5.shift(); if (_local7.getColor() == 2){ } else { _local2 = 0; while (_local2 < _local6.length) { _local8 = (_local7.arrayX + _local6[_local2][0]); _local9 = (_local7.arrayY + _local6[_local2][1]); _local10 = ((_local8 + ",") + _local9); if (((!(_local3[_local10])) && ((getColorByPos(_local8, _local9) == _local7.getColor())))){ _local4.push(m_rocks[_local9][_local8]); _local5.push(m_rocks[_local9][_local8]); }; _local3[_local10] = 1; _local2++; }; }; }; return (_local4); } } }//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 _local5:TickObject; m_tick = _arg1; var _local2:SharedData = m_game.getSharedData(); m_lastTickScore = _local2.score; if (_local2.numGameTicksLeft == int((5000 / GameBase.TICK_RATE))){ m_game.getSoundManager().get("time_warning").play(); }; if ((((_local2.numGameTicksLeft == 0)) && (!(_local2.isGameOver)))){ _local2.isGameOver = true; _local2.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 (!_local2.isGameOver){ _local2.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); var _local3:int; while (_local3 < m_tickList.length) { _local5 = m_tickList[_local3]; _local5.tick(_arg1); if (_local5.isRemoving){ _local5.isRemoving = false; m_tickList.splice(_local3, 1); } else { _local3++; }; }; var _local4:int = (_local2.score - m_lastTickScore); if (_local4 > 0){ m_main.monkey_over.feeling((_local4 / 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 (_local4 != 0){ m_game.sendData(((("2," + m_tick) + ",0=") + _local4)); }; } 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 _local3:int; var _local4:int; var _local1:Array = m_bubbleBox.getUniqueColors(); var _local2:Boolean; _local4 = 0; while (((!(_local2)) && ((_local4 < _local1.length)))) { if (m_aimBubble.getColorIndex() == _local1[_local4]){ _local2 = true; }; _local4++; }; if (!_local2){ _local3 = _local1[m_ballRng.nextInt(_local1.length)]; m_aimBubble.setColorIndex(_local3); }; _local2 = false; _local4 = 0; while (((!(_local2)) && ((_local4 < _local1.length)))) { if (m_nextBubble.getColorIndex() == _local1[_local4]){ _local2 = true; }; _local4++; }; if (!_local2){ _local3 = _local1[m_ballRng.nextInt(_local1.length)]; m_nextBubble.setColorIndex(_local3); }; } 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 { 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; } override public function engage():void{ var _local4:Number; m_sendEndAt = (GameBase.TICK_RATE * 20); m_isEarlyExit = false; m_sendQuitAt = -1; var _local1:SharedData = m_game.getSharedData(); if (!_local1.isGameWin){ _local1.shotBonus = 0; } else { _local4 = GameBase.TICK_RATE; _local1.timeBonus = int((((_local1.numGameTicksLeft / _local4) / (_local1.totalGameTime / _local4)) * 10000)); }; var _local2:* = 0; var _local3:* = 0; while (_local3 < _local1.bonusLevel.length) { _local2 = (_local2 + ((_local1.bonusLevel[_local3] * 5000) + int((_local1.bonusLevelSubScore[_local3] * 2500)))); _local3++; }; m_game.sendData((((((((((("201," + m_tick) + ",") + _local1.score) + ",") + _local1.shotBonus) + ",") + _local2) + ",") + _local1.timeBonus) + ",0=0")); _local1.finalScore = (((_local1.score + _local1.shotBonus) + _local2) + _local1.timeBonus); m_game.finalScore(_local1.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; 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 _local6:Array; var _local7:*; var _local2:int = getTimer(); if (m_startTime < 0){ m_activePiece = m_pieceList.shift(); _local6 = m_spans[m_activePiece[0]][2]; _local7 = 0; while (_local7 < _local6.length) { this[_local6[_local7]].gotoAndStop(m_activePiece[1]); _local7++; }; m_startTime = _local2; }; var _local3:int = m_activePiece[0]; var _local4:* = ((1 / 25) * 1000); var _local5:uint = (m_spans[_local3][0] + uint(Math.round((((_local2 - m_startTime) / _local4) + 1)))); if ((((_local5 > (m_spans[_local3][1] - 8))) && ((_local2 > delay)))){ if (m_game){ if (_local3 < 4){ m_game.getSoundManager().get("statue_lands").play(); } else { m_game.getSoundManager().get(("jewel" + (_local3 - 3))).play(); }; delay = (_local2 + 500); }; }; if (_local5 > m_spans[_local3][1]){ if (m_callback != null){ if ((((_local3 < 4)) || ((_local3 == 6)))){ m_callback(_local3, (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[_local3][1]); return; }; if (_local5 != m_lastFrame){ gotoAndStop(_local5); m_lastFrame = _local5; }; } 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 _local8:Array; var _local9:Array; removeEventListener(Event.ENTER_FRAME, enterFrame); if (_arg1.length == 0){ gotoAndStop(1); visible = false; return; }; var _local3:int; var _local4:Array = new Array(); var _local5:int; while (_local3 < _arg1.length) { if (_local3 == 4){ _local4.push([_arg1[_local3], _arg2[_local3]]); _local4.push([_arg1[_local3], _arg2[_local3]]); _local4.push([_arg1[_local3], _arg2[_local3]]); } else { _local4.push([_arg1[_local3], _arg2[_local3]]); }; _local3++; }; while (_local4.length > 0) { _local8 = _local4.shift(); _local9 = m_spans[_local5][2]; _local3 = 0; while (_local3 < _local9.length) { this[_local9[_local3]].gotoAndStop((4 - _local8[0])); _local3++; }; _local5++; }; var _local6:int = (_arg1.length - 1); if (_local6 > 3){ _local6 = 6; }; var _local7:int = m_spans[_local6][1]; gotoAndStop(_local7); 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); } else { }; return ((!NULL! + !NULL!)); } } }//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 MATRIX_A:uint = 2567483615; public static var UPPER_MASK:uint = 2147483648; public static var LOWER_MASK:uint = 2147483647; public static var M:int = 397; public static var N:int = 624; 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){ } else { if (_local3 < (1.5707963267949 + 3.14159265358979)){ _local3 = (_local3 - 3.14159265358979); _local2 = 2; } else { if (_local3 < (6.28318530717959 + 1.5707963267949)){ _local3 = (_local3 - 6.28318530717959); } else { if (_local3 < (9.42477796076938 + 1.5707963267949)){ _local3 = (_local3 - 9.42477796076938); _local2 = 2; } else { _local3 = (_local3 - 12.5663706143592); }; }; }; }; }; var _local4:* = (_local3 * _local3); var _local5:* = (0.999999953027512 + (_local4 * (-0.499999047777921 + (_local4 * (0.041663573160188 + (_local4 * (-0.0013853629536173 + (_local4 * 2.31524166599385E-5)))))))); return ((((_local2 & 2))!=0) ? -(_local5) : _local5); } public static function atan2(_arg1:Number, _arg2:Number):Number{ var _local5:Number; var _local3:Number = 3.14159265358979; var _local4:Number = 1.5707963267949; if (_arg2 == 0){ if (_arg1 > 0){ return (_local4); }; if (_arg1 == 0){ return (0); }; return (-(_local4)); }; var _local6:Number = (_arg1 / _arg2); if (Math.abs(_local6) < 1){ _local5 = (_local6 / (1 + ((0.28 * _local6) * _local6))); if (_arg2 < 0){ if (_arg1 < 0){ return ((_local5 - _local3)); }; return ((_local5 + _local3)); }; } else { _local5 = (_local4 - (_local6 / ((_local6 * _local6) + 0.28))); if (_arg1 < 0){ return ((_local5 - _local3)); }; }; return (_local5); } public static function cos(_arg1:Number):Number{ var _local2:* = 0; var _local3:* = ((_arg1 > 0)) ? _arg1 : -(_arg1); var _local4:* = 1.5707963267949; if (_local3 >= (12.5663706143592 + _local4)){ _local2 = int((_local3 * 0.636619772367581)); if ((_local2 & 1) != 0){ _local2++; }; _local3 = (_local3 - (_local2 * _local4)); } else { if (_local3 < _local4){ } else { if (_local3 < (_local4 + 3.14159265358979)){ _local3 = (_local3 - 3.14159265358979); _local2 = 2; } else { if (_local3 < (6.28318530717959 + _local4)){ _local3 = (_local3 - 6.28318530717959); } else { if (_local3 < (9.42477796076938 + _local4)){ _local3 = (_local3 - 9.42477796076938); _local2 = 2; } else { _local3 = (_local3 - 12.5663706143592); }; }; }; }; }; var _local5:* = (_local3 * _local3); var _local6:* = (0.999999953027512 + (_local5 * (-0.499999047777921 + (_local5 * (0.041663573160188 + (_local5 * (-0.0013853629536173 + (_local5 * 2.31524166599385E-5)))))))); return ((((_local2 & 2))!=0) ? -(_local6) : _local6); } } }//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.*; 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 _local3:Number; var _local1:int = getTimer(); if (lastTime < 0){ lastTime = _local1; }; if (fadeStartTime >= 0){ _local3 = ((_local1 - fadeStartTime) / (fadeEndTime - fadeStartTime)); if (_local3 < 0){ _local3 = 0; }; if (_local3 > 1){ _local3 = 1; }; volume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local3)); volume = (volume * volume); if (_local3 == 1){ fadeStartTime = -1; }; }; var _local2:int; while (_local2 < managedSounds.length) { managedSounds[_local2].update(); _local2++; }; } 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 _local2:*; fpsCount++; var _local1:* = getTimer(); if (startAt < 0){ startAt = _local1; }; if (_local1 > nextFpsUpdate){ if (updates > 0){ lastFpsCount = fpsCount; totalFps = (totalFps + fpsCount); }; periodFps = (periodFps + fpsCount); if (++period == measurePeriod){ if (periodFps < minPeriodFps){ for (_local2 in listeners) { var _local5 = listeners; _local5[_local2]((periodFps / measurePeriod)); }; }; period = 0; periodFps = 0; }; nextFpsUpdate = (_local1 + 1000); fpsCount = 0; updates++; }; } public function 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 _local4:*; var _local1:* = getTimer(); if (startTime < 0){ startTime = _local1; unprocessedTime = millisPerGameTick; }; time = (_local1 - startTime); var _local2:* = (time - lastTime); lastTime = time; unprocessedTime = (unprocessedTime + _local2); if (unprocessedTime >= millisPerGameTick){ _local4 = (maxTickTime + _local1); do { timeable.tick(tick); tick++; unprocessedTime = (unprocessedTime - millisPerGameTick); } while ((((unprocessedTime >= millisPerGameTick)) && ((getTimer() < _local4)))); }; var _local3:Number = ((unprocessedTime % millisPerGameTick) / millisPerGameTick); IFloat.setAlpha(_local3); timeable.render(tick, _local3); } public function advanceTime(){ time = getTimer(); var _local1:* = (time - lastTime); lastTime = time; unprocessedTime = (unprocessedTime + _local1); var _local2:Number = 0; while (unprocessedTime > millisPerGameTick) { unprocessedTime = (unprocessedTime - millisPerGameTick); timeable.tick(tick); tick++; _local2++; if (_local2 >= 10){ unprocessedTime = 0; }; }; var _local3:Number = (unprocessedTime / millisPerGameTick); IFloat.setAlpha(_local3); timeable.render(tick, _local3); } 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 _local4:*; var _local3:String = ("" + _arg1); if (_arg2){ _local4 = (_arg2 - 1); while (_local4 > 0) { if (_arg1 < Math.pow(10, _local4)){ _local3 = ("0" + _local3); }; _local4--; }; }; return (_local3); } public static function asTime(_arg1:Number, _arg2:Boolean, _arg3:Boolean){ if (_arg2){ _arg3 = true; }; if (_arg1 < 0){ _arg1 = 0; }; _arg1 = (_arg1 / 1000); _arg1 = Math.floor(_arg1); var _local4:Number = Math.floor((_arg1 / 3600)); var _local5:Number = (Math.floor((_arg1 / 60)) % 60); var _local6:Number = (_arg1 % 60); var _local7 = ""; if (((_arg2) || ((_local4 > 0)))){ _local7 = (_local7 + itoa(_local4, 2)); }; if (((_arg2) || ((_local7.length > 0)))){ _local7 = (_local7 + ":"); }; var _local8:Number = _local7.length; if (((((_arg3) || ((_local5 > 0)))) || ((_local4 > 0)))){ _local7 = (_local7 + itoa(_local5, 2)); }; if (((_arg3) || (!((_local7.length == _local8))))){ _local7 = (_local7 + ":"); }; return ((_local7 + itoa(_local6, 2))); } } }//package util
Section 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{ addEventListener(Event.ADDED_TO_STAGE, init); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); } 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
//gameover_scorepop (gameover_scorepop) package { import anim.*; public dynamic class gameover_scorepop extends PausedSingleFlare30Fps { } }//package
Section 119
//instructions_1 (instructions_1) package { import anim.*; public dynamic class instructions_1 extends PausedLoopingFlare30Fps { } }//package
Section 120
//instructions_2 (instructions_2) package { import anim.*; public dynamic class instructions_2 extends PausedLoopingFlare30Fps { } }//package
Section 121
//jewels_big (jewels_big) package { import anim.*; public dynamic class jewels_big extends AutoSingleFlare30Fps { } }//package
Section 122
//jewels_small (jewels_small) package { import anim.*; public dynamic class jewels_small extends AutoSingleFlare30Fps { } }//package
Section 123
//MeterArrow (MeterArrow) package { import anim.*; public dynamic class MeterArrow extends PausedLoopingFlare30Fps { } }//package
Section 124
//monkeyjump (monkeyjump) package { import anim.*; public dynamic class monkeyjump extends AutoSingleFlare60Fps { } }//package
Section 125
//monkeyjump_2 (monkeyjump_2) package { import anim.*; public dynamic class monkeyjump_2 extends AutoSingleFlare60Fps { } }//package
Section 126
//parrot (parrot) package { import anim.*; public dynamic class parrot extends AutoLoopingFlare30Fps { } }//package
Section 127
//rank_blue_anim (rank_blue_anim) package { import anim.*; public dynamic class rank_blue_anim extends PausedSingleFlare30Fps { } }//package
Section 128
//rank_gold_anim (rank_gold_anim) package { import anim.*; public dynamic class rank_gold_anim extends PausedSingleFlare30Fps { } }//package
Section 129
//rank_green_anim (rank_green_anim) package { import anim.*; public dynamic class rank_green_anim extends PausedSingleFlare30Fps { } }//package
Section 130
//rank_purple_anim (rank_purple_anim) package { import anim.*; public dynamic class rank_purple_anim extends PausedSingleFlare30Fps { } }//package
Section 131
//rank_silver_anim (rank_silver_anim) package { import anim.*; public dynamic class rank_silver_anim extends PausedSingleFlare30Fps { } }//package
Section 132
//rank_stone_anim (rank_stone_anim) package { import anim.*; public dynamic class rank_stone_anim extends PausedSingleFlare30Fps { } }//package
Section 133
//RockExplosion (RockExplosion) package { import anim.*; public dynamic class RockExplosion extends PausedSingleFlare30Fps { } }//package
Section 134
//RockExplosion2 (RockExplosion2) package { import anim.*; public dynamic class RockExplosion2 extends PausedSingleFlare30Fps { } }//package
Section 135
//smoke_anim (smoke_anim) package { import anim.*; public dynamic class smoke_anim extends PausedSingleFlare30Fps { } }//package
Section 136
//smoke_scorepop (smoke_scorepop) package { import anim.*; public dynamic class smoke_scorepop extends PausedSingleFlare30Fps { } }//package
Section 137
//statue_animation (statue_animation) package { import junglebubble.*; public dynamic class statue_animation extends Statue { } }//package
Section 138
//transform_animation (transform_animation) package { import anim.*; public dynamic class transform_animation extends PausedSingleFlare30Fps { } }//package

Library Items

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

Instance Names

"ball"Symbol 95 MovieClip {junglebubble.BubbleClip} Frame 1Symbol 91 MovieClip
"bonus_sparkle"Symbol 95 MovieClip {junglebubble.BubbleClip} Frame 1Symbol 93 MovieClip {bonus_bubble}
"transform_anim"Symbol 95 MovieClip {junglebubble.BubbleClip} Frame 1Symbol 76 MovieClip {transform_animation}
"feet"Symbol 335 MovieClip {statue_animation} Frame 1Symbol 198 MovieClip
"belly"Symbol 335 MovieClip {statue_animation} Frame 1Symbol 227 MovieClip
"head"Symbol 335 MovieClip {statue_animation} Frame 1Symbol 260 MovieClip
"crown"Symbol 335 MovieClip {statue_animation} Frame 1Symbol 295 MovieClip
"jewel1"Symbol 335 MovieClip {statue_animation} Frame 1Symbol 312 MovieClip {jewels_small}
"jewel2"Symbol 335 MovieClip {statue_animation} Frame 1Symbol 312 MovieClip {jewels_small}
"jewel3"Symbol 335 MovieClip {statue_animation} Frame 1Symbol 328 MovieClip {jewels_big}
"jewel1_glow"Symbol 335 MovieClip {statue_animation} Frame 70Symbol 334 MovieClip
"jewel2_glow"Symbol 335 MovieClip {statue_animation} Frame 94Symbol 334 MovieClip
"jewel3_glow"Symbol 335 MovieClip {statue_animation} Frame 118Symbol 334 MovieClip
"score_val_txt"Symbol 343 MovieClip Frame 1Symbol 342 EditableText
"scoreflash"Symbol 344 MovieClip {gameover_scorepop} Frame 1Symbol 343 MovieClip
"txt"Symbol 347 MovieClip Frame 1Symbol 346 EditableText
"smoke"Symbol 348 MovieClip {smoke_scorepop} Frame 1Symbol 347 MovieClip
"head"Symbol 355 MovieClip Frame 1Symbol 354 MovieClip {jungle_bubble_deluxe_fla.monkeyhead_3}
"statue"Symbol 366 MovieClip Frame 1Symbol 335 MovieClip {statue_animation}
"total_score_txt"Symbol 366 MovieClip Frame 1Symbol 336 EditableText
"total_score_val_txt"Symbol 366 MovieClip Frame 1Symbol 337 EditableText
"scorepop"Symbol 366 MovieClip Frame 1Symbol 344 MovieClip {gameover_scorepop}
"smoke"Symbol 366 MovieClip Frame 1Symbol 348 MovieClip {smoke_scorepop}
"head"Symbol 366 MovieClip Frame 1Symbol 355 MovieClip
"sign_title_txt"Symbol 366 MovieClip Frame 1Symbol 356 EditableText
"shot_bonus_txt"Symbol 366 MovieClip Frame 1Symbol 357 EditableText
"shot_bonus_val_txt"Symbol 366 MovieClip Frame 1Symbol 358 EditableText
"bonus_txt"Symbol 366 MovieClip Frame 1Symbol 359 EditableText
"bonus_val_txt"Symbol 366 MovieClip Frame 1Symbol 360 EditableText
"time_bonus_txt"Symbol 366 MovieClip Frame 1Symbol 361 EditableText
"time_bonus_val_txt"Symbol 366 MovieClip Frame 1Symbol 362 EditableText
"score_txt"Symbol 366 MovieClip Frame 1Symbol 363 EditableText
"score_val_txt"Symbol 366 MovieClip Frame 1Symbol 364 EditableText
"open_msg_txt"Symbol 366 MovieClip Frame 1Symbol 365 EditableText
"instructions1"Symbol 367 MovieClip {buskar} Frame 1Symbol 161 MovieClip {instructions_1}
"instructions2"Symbol 367 MovieClip {buskar} Frame 1Symbol 166 MovieClip {instructions_2}
"countdown_txt"Symbol 367 MovieClip {buskar} Frame 1Symbol 168 EditableText
"sign_title_txt"Symbol 367 MovieClip {buskar} Frame 1Symbol 169 EditableText
"bottom_txt"Symbol 367 MovieClip {buskar} Frame 1Symbol 171 EditableText
"countdown_txt"Symbol 367 MovieClip {buskar} Frame 1Symbol 172 EditableText
"gameover"Symbol 367 MovieClip {buskar} Frame 2Symbol 366 MovieClip
"texts"Symbol 368 MovieClip Frame 1Symbol 367 MovieClip {buskar}
"platta"Symbol 369 MovieClip Frame 1Symbol 368 MovieClip
"sign"Symbol 374 MovieClip {junglebubble.Bushes} Frame 1Symbol 369 MovieClip
"txt"Symbol 383 MovieClip Frame 1Symbol 380 EditableText
"icon"Symbol 387 MovieClip Frame 1Symbol 386 MovieClip
"txt"Symbol 389 MovieClip Frame 1Symbol 388 EditableText
"icon"Symbol 393 MovieClip Frame 1Symbol 392 MovieClip
"exit"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 383 MovieClip
"sound"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 387 MovieClip
"full"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 389 MovieClip
"music"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 393 MovieClip
"hit_sound"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 395 MovieClip
"hit_exit"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 396 MovieClip
"hit_full"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 397 MovieClip
"ver_txt"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 398 EditableText
"hit_music"Symbol 400 MovieClip {junglebubble.GameControl} Frame 1Symbol 399 MovieClip
"body"Symbol 448 MovieClip {junglebubble.Monkey} Frame 1Symbol 445 MovieClip {jungle_bubble_deluxe_fla.monkeybody_100}
"head"Symbol 448 MovieClip {junglebubble.Monkey} Frame 1Symbol 354 MovieClip {jungle_bubble_deluxe_fla.monkeyhead_3}
"helmet"Symbol 448 MovieClip {junglebubble.Monkey} Frame 1Symbol 447 MovieClip
"inner"Symbol 510 MovieClip Frame 1Symbol 509 MovieClip
"c1"Symbol 522 MovieClip {aim_cursor} Frame 1Symbol 519 MovieClip
"c2"Symbol 522 MovieClip {aim_cursor} Frame 1Symbol 519 MovieClip
"c3"Symbol 522 MovieClip {aim_cursor} Frame 1Symbol 519 MovieClip
"c4"Symbol 522 MovieClip {aim_cursor} Frame 1Symbol 519 MovieClip
"c0"Symbol 522 MovieClip {aim_cursor} Frame 1Symbol 519 MovieClip
"c5"Symbol 522 MovieClip {aim_cursor} Frame 1Symbol 519 MovieClip
"c6"Symbol 522 MovieClip {aim_cursor} Frame 1Symbol 521 MovieClip
"aim_under"Symbol 523 MovieClip Frame 1Symbol 522 MovieClip {aim_cursor}
"rock_sublayer"Symbol 524 MovieClip Frame 1Symbol 517 MovieClip
"rock_effects"Symbol 524 MovieClip Frame 1Symbol 523 MovieClip
"stars"Symbol 548 MovieClip {bonus_sign} Frame 1Symbol 545 MovieClip {bonusmode_stars}
"bonus_txt"Symbol 548 MovieClip {bonus_sign} Frame 1Symbol 547 EditableText
"title_txt"Symbol 562 MovieClip Frame 1Symbol 556 EditableText
"label_txt"Symbol 562 MovieClip Frame 1Symbol 557 EditableText
"sign"Symbol 563 MovieClip {junglebubble.BonusIntroSign} Frame 1Symbol 562 MovieClip
"top"Symbol 566 MovieClip Frame 1Symbol 564 MovieClip
"under"Symbol 566 MovieClip Frame 1Symbol 565 MovieClip
"monkey_under"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 448 MovieClip {junglebubble.Monkey}
"items"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 488 MovieClip {jungle_bubble_deluxe_fla.ranking_104}
"bonus_meter"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 435 MovieClip {junglebubble.NextBonusMeter}
"items"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 488 MovieClip {jungle_bubble_deluxe_fla.ranking_104}
"parrot_over"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 430 MovieClip {parrot}
"bonus_txt"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 491 EditableText
"score_txt"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 492 EditableText
"time_txt"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 493 EditableText
"bonus_val_txt"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 494 EditableText
"score_val_txt"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 495 EditableText
"time_val_txt"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 496 EditableText
"rep_under"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 499 MovieClip
"rep_over"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 502 MovieClip
"lever_normal"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 510 MovieClip
"lever_underworld"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 510 MovieClip
"bubble_launcher"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 427 MovieClip {bubbleshooter}
"bomb_launcher"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 423 MovieClip {bomblauncher}
"bubble_launcher_under"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 422 MovieClip {bubblelauncherunder}
"bubble_launcher_obj_shadow"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 512 MovieClip
"bubble_frame"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 515 MovieClip
"under_bubble_1"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 91 MovieClip
"under_bubble_0"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 91 MovieClip
"under_bubble_2"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 91 MovieClip
"under_bubble_3"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 91 MovieClip
"under_bubble_4"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 91 MovieClip
"bubble_base"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 516 MovieClip
"rock_base"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 524 MovieClip
"bucket_under"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 527 MovieClip
"lamp_under"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 530 MovieClip
"parrot_under"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 533 MovieClip
"bonus_bell"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 541 MovieClip
"bonus_time"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 419 MovieClip {junglebubble.BonusClock}
"aim_over"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 522 MovieClip {aim_cursor}
"bonussign"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 548 MovieClip {bonus_sign}
"monkey_over"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 448 MovieClip {junglebubble.Monkey}
"monkey_smoke"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 408 MovieClip {smoke_anim}
"monkey_jumper"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 448 MovieClip {junglebubble.Monkey}
"monkey_under"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 448 MovieClip {junglebubble.Monkey}
"statue"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 335 MovieClip {statue_animation}
"big_explosion"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 406 MovieClip {dynamite_explosion}
"bonus_intro_sign"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 563 MovieClip {junglebubble.BonusIntroSign}
"top_layer"Symbol 567 MovieClip {junglebubble.GameAssembly} Frame 1Symbol 566 MovieClip
"anima"Symbol 603 MovieClip {rank_stone_anim} Frame 1Symbol 295 MovieClip
"anima"Symbol 604 MovieClip {rank_silver_anim} Frame 1Symbol 295 MovieClip
"anima"Symbol 605 MovieClip {rank_gold_anim} Frame 1Symbol 295 MovieClip
"inner1"Symbol 617 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 2Symbol 614 MovieClip {rank_green_anim}
"inner2"Symbol 617 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 3Symbol 611 MovieClip {rank_blue_anim}
"inner3"Symbol 617 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 4Symbol 608 MovieClip {rank_purple_anim}
"inner4"Symbol 617 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 5Symbol 605 MovieClip {rank_gold_anim}
"inner5"Symbol 617 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 6Symbol 604 MovieClip {rank_silver_anim}
"inner6"Symbol 617 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13} Frame 7Symbol 603 MovieClip {rank_stone_anim}
"msg_txt"Symbol 618 MovieClip Frame 1Symbol 615 EditableText
"head"Symbol 618 MovieClip Frame 1Symbol 355 MovieClip
"score_txt"Symbol 618 MovieClip Frame 1Symbol 616 EditableText
"item"Symbol 618 MovieClip Frame 1Symbol 617 MovieClip {jungle_bubble_deluxe_fla.rank_anim_13}
"content"Symbol 619 MovieClip Frame 1Symbol 618 MovieClip
"content"Symbol 620 MovieClip Frame 1Symbol 618 MovieClip
"sign"Symbol 621 MovieClip {junglebubble.BonusCompleteSign} Frame 1Symbol 619 MovieClip
"sign"Symbol 621 MovieClip {junglebubble.BonusCompleteSign} Frame 70Symbol 620 MovieClip

Special Tags

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




http://swfchan.com/50/246617/info.shtml
Created: 21/4 -2022 05:23:19 Last modified: 21/4 -2022 05:23:19 Server time: 18/05 -2024 15:56:44