Frame 1
Stage.showMenu = false;
_focusrect = false;
this.onEnterFrame = function () {
if (this._framesloaded >= 10) {
gotoAndStop ("Loading");
}
};
_global.ipb_get_gname = function () {
var _local4 = _root._url;
var _local5 = "";
var _local3 = "";
var _local6 = _local4.lastIndexOf("\\") + 1;
if ((_local6 == -1) || (_local6 == 0)) {
_local6 = _local4.lastIndexOf("/") + 1;
}
var _local2 = _local6;
var _local7 = String(_local4).length;
while (_local2 < String(_local4).length) {
_local3 = _local4.charAt(_local2);
if (_local3 == ".") {
break;
}
_local5 = _local5 + _local3;
_local2++;
}
return(_local5);
};
ipb_gname = _global.ipb_get_gname();
xx = new LoadVars();
xx.onLoad = function (success) {
if (success) {
_global.ipb_scoreVar = this.scoreVar;
}
};
fname = ((("arcade/gamedata/" + ipb_gname) + "/") + ipb_gname) + ".txt";
xx.load(fname);
Frame 10
function update() {
mcState.mcPercent.txtPercent.text = nFakePc;
}
var MAX_LOAD_SPEED = 2;
var TARGET_LABEL = "Loaded";
var nFakePc = 0;
var nPc;
var sPc;
var nFrame;
this.onEnterFrame = function () {
var _local2 = getBytesLoaded() / getBytesTotal();
nPc = Math.floor(_local2 * 100);
if (mcState._currentframe == mcState._totalframes) {
nFakePc = nFakePc + MAX_LOAD_SPEED;
if (nFakePc > nPc) {
nFakePc = nPc;
}
}
update();
if ((nFakePc == 100) && (mcState._currentframe == mcState._totalframes)) {
delete this.onEnterFrame;
gotoAndStop(TARGET_LABEL);
}
};
stop();
btnBlock.useHandCursor = false;
Frame 20
nextFrame();
Frame 21
new Main(this);
Symbol 24 Button
on (keyPress "<Left>") {
return(undefined);
}
on (keyPress "<Right>") {
return(undefined);
}
on (keyPress "<Up>") {
return(undefined);
}
on (keyPress "<Down>") {
return(undefined);
}
Symbol 1349 MovieClip Frame 1
if (yy.savescore == 1) {
if (ipb_score == undefined) {
ipb_score = eval (_global.ipb_scoreVar);
}
xx = new LoadVars();
xx.arcadegid = _root.ibpro_gameid;
xx.gscore = ipb_score;
xx.gname = _global.ipb_get_gname();
xx.enscore = (ipb_score * yy.randchar) ^ yy.randchar2;
xx.send("index.php?autocom=arcade&do=savescore", "_self", "POST");
stop();
}
_global.ipbSend = function (ipb_score) {
_root._visible = false;
_root.enabled = false;
xx = new LoadVars();
yy = new LoadVars();
xx.sendAndLoad("index.php?autocom=arcade&do=verifyscore", yy, "POST");
};
Symbol 3 MovieClip [SarbakanLibrary] Frame 1
#initclip 1
Object.registerClass("SarbakanLibrary", LibCompileHookComponent);
#endinitclip
Symbol 126 MovieClip Frame 119
stop();
Symbol 163 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 164 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 167 MovieClip Frame 1
stop();
Symbol 195 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 205 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 276 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 281 MovieClip Frame 1
stop();
Symbol 290 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 294 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 417 MovieClip Frame 1
stop();
Symbol 651 MovieClip Frame 1
this._visible = false;
Symbol 664 MovieClip Frame 1
this.swapDepths(666);
this.removeMovieClip();
Symbol 666 MovieClip Frame 1
this._visible = false;
Symbol 839 MovieClip Frame 1
stop();
Symbol 860 MovieClip Frame 1
this.swapDepths(666);
this.removeMovieClip();
Symbol 16 MovieClip [__Packages.Library.DispatcherBase] Frame 0
class Library.DispatcherBase
{
var bPaused, aListeners;
function DispatcherBase () {
bPaused = false;
aListeners = new Array();
}
function doEnterFrame() {
if (!bPaused) {
doDispatchMessage("doEnterFrame");
}
}
function doAddListener(__oRef) {
aListeners.push(__oRef);
}
function doRemoveListener(__oRef) {
for (var _local2 in aListeners) {
if (aListeners[_local2] == __oRef) {
delete aListeners[_local2];
aListeners.splice(Number(_local2), 1);
}
}
}
function doPause() {
bPaused = true;
doDispatchMessage("doPause");
}
function doResume() {
bPaused = false;
doDispatchMessage("doResume");
}
function doDestroy() {
delete aListeners;
}
function doDispatchMessage(__sMessage) {
for (var _local3 in aListeners) {
aListeners[_local3][__sMessage]();
}
}
}
Symbol 1324 MovieClip [__Packages.Main] Frame 0
class Main extends Library.DispatcherBase
{
static var oCtrl;
var mcRef, oHS, nLatestScore, bHSScrolling, oTransition, doAddListener, oHSInGame, oHSWin, oHSLose, nHSScrollChange, bGameFromReset, bHSFromTitle, bHSAlreadySubmitted, oGame, sCurrentSection, sTargetSection, oMusicPack, oIntroManager, oTitleManager;
function Main (_mcRef) {
super();
mcRef = _mcRef;
oCtrl = this;
oHS = new NickHS("fop_break", true, false);
nLatestScore = 0;
bHSScrolling = false;
mcRef.onEnterFrame = Library.Utils.Delegate.create(this, doEnterFrame);
Library.Sound.SoundManager.doInit(mcRef);
Library.Sound.SoundManager.setCategoryVolume(sSOUND_CAT_SOUND, nSOUND_VOL_SOUND);
Library.Sound.SoundManager.setCategoryVolume(sSOUND_CAT_MUSIC, nSOUND_VOL_MUSIC);
doStartPackMusic();
oTransition = new Library.Transition(mcRef.mcTransition);
oTransition.__set__Listener(this);
doAddListener(oTransition);
oHSInGame = new Library.BasicPopUp(mcRef.mcHighScoresNormal, true);
oHSInGame.__set__Listener(this);
doAddListener(oHSInGame);
oHSWin = new Library.BasicPopUp(mcRef.mcHighScoresWin, true);
oHSWin.__set__Listener(this);
doAddListener(oHSWin);
oHSLose = new Library.BasicPopUp(mcRef.mcHighScoresLose, true);
oHSLose.__set__Listener(this);
doAddListener(oHSLose);
doStartPackMusic();
Library.Sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, "Game_Start.wav");
doSetSection(sSECTION_INTRO);
}
static function get Instance() {
return(oCtrl);
}
function get StageRoot() {
return(mcRef);
}
function doEnterFrame() {
super.doEnterFrame();
if (bHSScrolling) {
oHSInGame.__get__Ref().mcHS.txtHSNumber.scroll = oHSInGame.__get__Ref().mcHS.txtHSNumber.scroll + nHSScrollChange;
oHSInGame.__get__Ref().mcHS.txtHSName.scroll = oHSInGame.__get__Ref().mcHS.txtHSName.scroll + nHSScrollChange;
oHSInGame.__get__Ref().mcHS.txtHSScore.scroll = oHSInGame.__get__Ref().mcHS.txtHSScore.scroll + nHSScrollChange;
oHSWin.__get__Ref().mcHS.txtHSNumber.scroll = oHSWin.__get__Ref().mcHS.txtHSNumber.scroll + nHSScrollChange;
oHSWin.__get__Ref().mcHS.txtHSName.scroll = oHSWin.__get__Ref().mcHS.txtHSName.scroll + nHSScrollChange;
oHSWin.__get__Ref().mcHS.txtHSScore.scroll = oHSWin.__get__Ref().mcHS.txtHSScore.scroll + nHSScrollChange;
oHSLose.__get__Ref().mcHS.txtHSNumber.scroll = oHSLose.__get__Ref().mcHS.txtHSNumber.scroll + nHSScrollChange;
oHSLose.__get__Ref().mcHS.txtHSName.scroll = oHSLose.__get__Ref().mcHS.txtHSName.scroll + nHSScrollChange;
oHSLose.__get__Ref().mcHS.txtHSScore.scroll = oHSLose.__get__Ref().mcHS.txtHSScore.scroll + nHSScrollChange;
}
}
function doCloseHSIfOpen() {
if (oHSInGame.__get__CurrentState() == "Idle") {
doResumeFromInGameHS();
}
}
function onIntroFirstPartOver() {
doTransitionTo(sSECTION_TITLE);
Library.Sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, "Transition.mp3", 60);
}
function onTitleCardComplete() {
bGameFromReset = false;
doSetSection(sSECTION_GAME);
}
function doRollSound() {
Library.Sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, "Mouse_Rollover.mp3", 55, 1, true);
}
function doClickSound() {
Library.Sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, "Mouse_Click.mp3", 60, 1, true);
}
function onPlayerLose() {
bHSFromTitle = false;
bHSAlreadySubmitted = false;
nLatestScore = oGame.__get__Status().Score;
_root.micro = nLatestScore;
oGame.doPause();
oHSLose.doOpen();
Library.Sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, "Transition.mp3", 60);
doStartPackMusic();
Game.__get__Instance().doStopMusic();
}
function onPlayerWin() {
bHSFromTitle = false;
bHSAlreadySubmitted = false;
nLatestScore = oGame.__get__Status().Score;
_root.micro = nLatestScore;
oGame.doPause();
oHSWin.doOpen();
Library.Sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, "Transition.mp3", 60);
doStartPackMusic();
Game.__get__Instance().doStopMusic();
}
function onTransitionEvent(_nEvent, _oTransition) {
switch (_nEvent) {
case Library.Transition.TRANSITION_SCREEN_COVERED :
doUnloadSection(sCurrentSection);
doSetSection(sTargetSection);
break;
case Library.Transition.TRANSITION_COMPLETE :
}
}
function onPopUpEvent(_nEvent, _oPopUp) {
if (!(_nEvent === Library.BasicPopUp.NEED_UPDATE)) {
} else {
switch (_oPopUp) {
case oHSInGame :
doUpdateInGameHS();
break;
case oHSLose :
doUpdateLoseHS();
break;
case oHSWin :
doUpdateWinHS();
}
}
}
function doSubmitScoreFromLose() {
_root.micro = nLatestScore;
oHS.bSubmitHS = false;
oHS.submitScore(nLatestScore);
bHSAlreadySubmitted = true;
oHSLose.__get__Ref().mcButtons.btnSubmitHS._visible = true;
}
function doSubmitScoreFromWin() {
_root.micro = nLatestScore;
oHS.bSubmitHS = false;
oHS.submitScore(nLatestScore);
bHSAlreadySubmitted = true;
oHSWin.__get__Ref().mcButtons.btnSubmitHS._visible = true;
}
function doPlayAgainFromLose() {
oHSLose.doClose();
doUnloadSection(sSECTION_GAME);
doSetSection(sSECTION_GAMERESET);
}
function doPlayAgainFromWin() {
oHSWin.doClose();
doUnloadSection(sSECTION_GAME);
doSetSection(sSECTION_GAMERESET);
}
function doResumeFromInGameHS() {
oHSInGame.doClose();
}
function doShowInGameHS() {
bHSFromTitle = true;
oHSInGame.doOpen();
}
function doStopScrollHsList() {
bHSScrolling = false;
}
function doStartScrollHsList(_nChange) {
bHSScrolling = true;
nHSScrollChange = _nChange;
}
function doSoundEvent(__nEvent, __oSound) {
if (!(__nEvent === Library.Sound.SoundManager.EVENT_SOUND_COMPLETE)) {
} else if (__oSound == oMusicPack) {
delete oMusicPack;
}
}
function doStartPackMusic() {
if (oMusicPack == undefined) {
oMusicPack = Library.Sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_MUSIC, "Music_Pack.wav", 0, 999999);
oMusicPack.doAddListener(this);
}
oMusicPack.doFadeTo(100);
}
function doStopPackMusic() {
if (oMusicPack != undefined) {
oMusicPack.doFadeTo(0);
}
}
function doSetUpSharedHS(_mcRef, _oOriginHS) {
oHS.setHSBoard(_mcRef.mcHS);
if (_oOriginHS.__get__CurrentState() == "Idle") {
oHS.getScores();
}
_mcRef.btnHaut.onPress = Library.Utils.Delegate.create(this, doStartScrollHsList, -1);
_mcRef.btnBas.onPress = Library.Utils.Delegate.create(this, doStartScrollHsList, 1);
_mcRef.btnHaut.onRelease = Library.Utils.Delegate.create(this, doStopScrollHsList);
_mcRef.btnHaut.onReleaseOutside = Library.Utils.Delegate.create(this, doStopScrollHsList);
_mcRef.btnHaut.onRollOut = Library.Utils.Delegate.create(this, doStopScrollHsList);
_mcRef.btnBas.onRelease = Library.Utils.Delegate.create(this, doStopScrollHsList);
_mcRef.btnBas.onReleaseOutside = Library.Utils.Delegate.create(this, doStopScrollHsList);
_mcRef.btnBas.onRollOut = Library.Utils.Delegate.create(this, doStopScrollHsList);
_mcRef.mcScore.txtScore.text = Library.Utils.Tools.getFormatedNumber(nLatestScore, 6);
}
function doUpdateInGameHS() {
doSetUpSharedHS(oHSInGame.__get__Ref(), oHSInGame);
oHSInGame.__get__Ref().btnBack.onRelease = Library.Utils.Delegate.create(this, doResumeFromInGameHS);
}
function doUpdateLoseHS() {
doSetUpSharedHS(oHSLose.__get__Ref(), oHSLose);
oHSLose.__get__Ref().mcButtons.btnSubmitHS._visible = oHS.getIsLoggedIn() && (!bHSAlreadySubmitted);
oHSLose.__get__Ref().mcButtons.btnSubmitHS.onRelease = Library.Utils.Delegate.create(this, doSubmitScoreFromLose);
oHSLose.__get__Ref().mcButtons.btnPlay.onRelease = Library.Utils.Delegate.create(this, doPlayAgainFromLose);
}
function doUpdateWinHS() {
doSetUpSharedHS(oHSWin.__get__Ref(), oHSWin);
oHSWin.__get__Ref().mcButtons.btnSubmitHS._visible = oHS.getIsLoggedIn() && (!bHSAlreadySubmitted);
oHSWin.__get__Ref().mcButtons.btnSubmitHS.onRelease = Library.Utils.Delegate.create(this, doSubmitScoreFromWin);
oHSWin.__get__Ref().mcButtons.btnPlay.onRelease = Library.Utils.Delegate.create(this, doPlayAgainFromWin);
}
function doCreateGame() {
oGame = new Game(mcRef.mcGameScreen);
}
function doUnloadGame() {
oGame.doDestroy();
}
function doSetSection(_sSection) {
sCurrentSection = _sSection;
mcRef.gotoAndStop(sCurrentSection);
switch (sCurrentSection) {
case sSECTION_INTRO :
oIntroManager = new Intro(mcRef.mcState);
break;
case sSECTION_TITLE :
oTitleManager = new TitleCard(mcRef.mcState);
doCreateGame();
bGameFromReset = false;
break;
case sSECTION_GAMERESET :
bGameFromReset = true;
doSetSection(sSECTION_GAME);
break;
case sSECTION_GAME :
if (bGameFromReset) {
doCreateGame();
}
oGame.onBeginGame();
}
}
function doUnloadSection(_sSection) {
switch (_sSection) {
case sSECTION_INTRO :
delete oIntroManager;
break;
case sSECTION_GAME :
doUnloadGame();
break;
case sSECTION_TITLE :
delete oTitleManager;
}
}
function doTransitionTo(_sSection) {
sTargetSection = _sSection;
oTransition.doStart();
}
static var nSOUND_VOL_SOUND = 100;
static var nSOUND_VOL_MUSIC = 35;
static var sSOUND_CAT_SOUND = "SFX";
static var sSOUND_CAT_MUSIC = "Music";
static var nFRAME_RATE = 36;
static var sSECTION_INTRO = "Intro";
static var sSECTION_TITLE = "Title";
static var sSECTION_GAME = "Game";
static var sSECTION_GAMERESET = "GameReset";
}
Symbol 14 MovieClip [__Packages.Library.State] Frame 0
class Library.State
{
var mcRef, bStateLocked, bPaused, sState, nStateTotalFrame;
function State (__mcRef) {
mcRef = __mcRef;
bStateLocked = false;
bPaused = false;
}
function doEnterFrame() {
this["do" + sState]();
}
function doPause() {
bPaused = true;
mcRef.mcState.stop();
}
function doResume() {
bPaused = false;
mcRef.mcState.play();
}
function setState(__sState) {
if (!bStateLocked) {
doForcedSetState(__sState);
}
}
function doForcedSetState(__sState) {
if (sState != __sState) {
doUnLoadStateAction(sState);
sState = __sState;
mcRef.gotoAndStop(sState);
nStateTotalFrame = mcRef.mcState._totalframes;
doLoadStateAction(sState);
}
}
function get Paused() {
return(bPaused);
}
function get CurrentState() {
return(sState);
}
function doLoadStateAction() {
}
function doUnLoadStateAction() {
}
function doLockState() {
bStateLocked = true;
}
function doUnlockState() {
bStateLocked = false;
}
function isStateComplete() {
var _local2 = false;
if (mcRef.mcState._currentframe == nStateTotalFrame) {
_local2 = true;
}
return(_local2);
}
function isStateStarting() {
var _local2 = false;
if (mcRef.mcState._currentframe == 1) {
_local2 = true;
}
return(_local2);
}
}
Symbol 17 MovieClip [__Packages.Library.Transition] Frame 0
class Library.Transition extends Library.State
{
var setState, isStateComplete, oListener, __get__Listener, mcRef;
function Transition (__mcRef) {
super(__mcRef);
setState("Hidden");
}
function doStart() {
setState("In");
}
function doDestroy() {
}
function doIn() {
if (isStateComplete()) {
oListener.onTransitionEvent(TRANSITION_SCREEN_COVERED, this);
setState("Out");
}
}
function doOut() {
if (isStateComplete()) {
oListener.onTransitionEvent(TRANSITION_COMPLETE, this);
setState("Hidden");
}
}
function set Listener(_o) {
oListener = _o;
//return(__get__Listener());
}
function doLoadStateAction() {
mcRef.mcState.btnBlock.useHandCursor = false;
}
static var TRANSITION_SCREEN_COVERED = 1;
static var TRANSITION_COMPLETE = 2;
}
Symbol 1325 MovieClip [__Packages.Game] Frame 0
class Game extends Library.DispatcherBase
{
static var oCtrl;
var mcRef, bFirstPlay, bShowHint, nFrameHint, oMenuPopUp, oHelpPopUp, oConfirmPopUp, oHintPopUp, doAddListener, oPlayerStatus, oGameTimer, nBGTargetPosition, bMoveBG, oHelpKeyManager, oEE, nHintHideDelay, oLevel, sCurrentSection, sTargetSection, oMusicGame;
function Game (_mcRef) {
super();
mcRef = _mcRef;
oCtrl = this;
bFirstPlay = true;
bShowHint = true;
nFrameHint = 1;
oMenuPopUp = new Library.BasicPopUp(mcRef.mcPopups.mcMenu, true);
oMenuPopUp.__set__Listener(this);
Main.__get__Instance().doAddListener(oMenuPopUp);
oHelpPopUp = new Library.BasicPopUp(mcRef.mcPopups.mcHelp, true);
oHelpPopUp.__set__Listener(this);
Main.__get__Instance().doAddListener(oHelpPopUp);
oConfirmPopUp = new Library.BasicPopUp(mcRef.mcPopups.mcConfirm, true);
oConfirmPopUp.__set__Listener(this);
Main.__get__Instance().doAddListener(oConfirmPopUp);
oHintPopUp = new Library.BasicPopUp(mcRef.mcPopups.mcHints, false);
oHintPopUp.__set__Listener(this);
doAddListener(oHintPopUp);
oHintPopUp.doHide();
oPlayerStatus = new PlayerStatus();
oPlayerStatus.setHud(mcRef.mcHud);
oGameTimer = new Library.Utils.Timer();
oGameTimer.__set__FrameRate(Main.nFRAME_RATE);
oGameTimer.__set__Method(Library.Utils.Timer.TIMER_COUNT_UP);
doAddListener(oGameTimer);
Main.__get__Instance().doAddListener(this);
nBGTargetPosition = mcRef.mcBackgrounds._y;
bMoveBG = false;
oHelpKeyManager = new Library.Utils.KeysManager();
oHelpKeyManager.setListenerForKey(this, 32);
oHelpKeyManager.setListenerForKey(this, 69);
oEE = new EE(mcRef.mcEE);
doSetSection(sSECTION_EMPTY);
}
static function get Instance() {
return(oCtrl);
}
function onKeyManagerEvent(_nEvent, _nCode) {
switch (_nEvent) {
case Library.Utils.KeysManager.EVENT_KEY_DOWN :
if (!(_nCode === 32)) {
}
break;
case Library.Utils.KeysManager.EVENT_KEY_UP :
switch (_nCode) {
case 69 :
oEE.doStart();
break;
case 32 :
if (oHelpPopUp.__get__CurrentState() == "Idle") {
doCloseHelp();
}
Main.__get__Instance().doCloseHSIfOpen();
}
}
}
function doEnterFrame() {
super.doEnterFrame();
nHintHideDelay--;
if (nHintHideDelay == 0) {
oHintPopUp.doClose();
}
if (bMoveBG) {
doMoveBG();
}
}
function onPlayerCatchItem(_nItemFrame) {
nFrameHint = _nItemFrame;
oHintPopUp.__get__Ref().gotoAndStop(nFrameHint);
if ((oHintPopUp.__get__CurrentState() != "Idle") && (bShowHint)) {
oHintPopUp.doOpen();
}
nHintHideDelay = nHINT_HIDE_DELAY;
}
function onBeginGame() {
doSetSection(sSECTION_GAME);
}
function onConfirmAnswer(_bAnswer) {
if (_bAnswer) {
Main.__get__Instance().onPlayerLose();
}
oConfirmPopUp.doClose();
}
function doLevelEnd(_bWon) {
oGameTimer.doStopTimer();
oLevel.doPause();
if (_bWon) {
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Level_Completed.mp3", 125);
oPlayerStatus.onPlayerCompleteLevel(oGameTimer.__get__Time());
if (oPlayerStatus.getIsMoreLevelToPlay()) {
doSetSection(sSECTION_EMPTY);
} else {
Main.__get__Instance().onPlayerWin();
}
} else {
Main.__get__Instance().onPlayerLose();
}
}
function onTransitionEvent(_nEvent, _oTransition) {
switch (_nEvent) {
case Library.Transition.TRANSITION_SCREEN_COVERED :
doUnloadSection(sCurrentSection);
doSetSection(sTargetSection);
break;
case Library.Transition.TRANSITION_COMPLETE :
}
}
function onPopUpEvent(_nEvent, _oPopUp) {
if (!(_nEvent === Library.BasicPopUp.NEED_UPDATE)) {
} else {
switch (_oPopUp) {
case oHelpPopUp :
doUpdateHelpPopUp();
break;
case oHintPopUp :
oHintPopUp.__get__Ref().gotoAndStop(nFrameHint);
break;
case oMenuPopUp :
doUpdateMenuPopUp();
break;
case oConfirmPopUp :
doUpdateConfirmPopUp();
}
}
}
function doSoundEvent(_nEvent, _oSound) {
if (!(_nEvent === Library.Sound.SoundManager.EVENT_SOUND_COMPLETE)) {
} else if (_oSound == oMusicGame) {
delete oMusicGame;
}
}
function doToggleShowHint() {
bShowHint = !bShowHint;
doUpdateHintGroups();
if ((!bShowHint) && (oHintPopUp.__get__CurrentState() != "Hidden")) {
oHintPopUp.doClose();
}
}
function doToggleMuteFor(_sCategory) {
if (Library.Sound.SoundManager.isCategoryMuted(_sCategory)) {
Library.Sound.SoundManager.doUnMuteCategory(_sCategory);
} else {
Library.Sound.SoundManager.doMuteCategory(_sCategory);
}
doUpdateMenuSoundGroups();
}
function doShowMenu() {
oLevel.doPause();
oMenuPopUp.doOpen();
oGameTimer.doStopTimer();
}
function doCloseMenu() {
oLevel.doResume();
oMenuPopUp.doClose();
oGameTimer.doStartTimer();
}
function doCloseHelp() {
oHelpPopUp.doClose();
}
function doShowHelp() {
oHelpPopUp.doOpen();
}
function doViewHS() {
Main.__get__Instance().doShowInGameHS();
}
function doQuitGame() {
oConfirmPopUp.doOpen();
}
function doDestroy() {
oLevel.doDestroy();
delete oLevel;
Main.__get__Instance().doRemoveListener(this);
delete oGameTimer;
oMenuPopUp.doHide();
(oPlayerStatus);// not popped
oMenuPopUp.doDestroy();
delete oMenuPopUp;
oHelpPopUp.doDestroy();
delete oHelpPopUp;
oHintPopUp.doDestroy();
delete oHintPopUp;
oConfirmPopUp.doDestroy();
delete oConfirmPopUp;
oHelpKeyManager.doDestroy();
delete oHelpKeyManager;
doStopMusic();
Main.__get__Instance().doStartPackMusic();
oMusicGame.doDestroy();
delete oCtrl;
}
function get Status() {
return(oPlayerStatus);
}
function doUpdateHelpPopUp() {
oHelpPopUp.__get__Ref().btnResume.onRelease = Library.Utils.Delegate.create(this, doCloseHelp);
}
function doUpdateConfirmPopUp() {
oConfirmPopUp.__get__Ref().btnYes.onRelease = Library.Utils.Delegate.create(this, onConfirmAnswer, true);
oConfirmPopUp.__get__Ref().btnNo.onRelease = Library.Utils.Delegate.create(this, onConfirmAnswer, false);
}
function doUpdateMenuPopUp() {
oMenuPopUp.__get__Ref().btnViewHS.onRelease = Library.Utils.Delegate.create(this, doViewHS);
oMenuPopUp.__get__Ref().btnResume.onRelease = Library.Utils.Delegate.create(this, doCloseMenu);
oMenuPopUp.__get__Ref().btnHelp.onRelease = Library.Utils.Delegate.create(this, doShowHelp);
oMenuPopUp.__get__Ref().btnQuit.onRelease = Library.Utils.Delegate.create(this, doQuitGame);
doUpdateMenuSoundGroups();
doUpdateHintGroups();
}
function doUpdateHintGroups() {
var _local2 = "On";
if (!bShowHint) {
_local2 = "Off";
}
oMenuPopUp.__get__Ref().mcHintToggle.gotoAndStop(_local2);
oMenuPopUp.__get__Ref().mcHintToggle.btnToggle.onRelease = Library.Utils.Delegate.create(this, doToggleShowHint);
}
function doUpdateMenuSoundGroups() {
var _local2 = "On";
if (Library.Sound.SoundManager.isCategoryMuted(Main.sSOUND_CAT_SOUND)) {
_local2 = "Off";
}
var _local3 = "On";
if (Library.Sound.SoundManager.isCategoryMuted(Main.sSOUND_CAT_MUSIC)) {
_local3 = "Off";
}
oMenuPopUp.__get__Ref().mcSoundToggle.gotoAndStop(_local2);
oMenuPopUp.__get__Ref().mcMusicToggle.gotoAndStop(_local3);
oMenuPopUp.__get__Ref().mcSoundToggle.btnToggle.onRelease = Library.Utils.Delegate.create(this, doToggleMuteFor, Main.sSOUND_CAT_SOUND);
oMenuPopUp.__get__Ref().mcMusicToggle.btnToggle.onRelease = Library.Utils.Delegate.create(this, doToggleMuteFor, Main.sSOUND_CAT_MUSIC);
}
function doCreateLevel() {
var _local2 = oPlayerStatus.getLevelToPlay();
doSetBGPosition(_local2);
_local2 = _local2 + 1;
oLevel = new LevelManager(mcRef.mcGame, _local2);
mcRef.mcHud.btnMenu.onRelease = Library.Utils.Delegate.create(this, doShowMenu);
oGameTimer.setTime(PlayerStatus.nTIME_FOR_EXTRA_POINTS);
oGameTimer.doStartTimer();
Main.__get__Instance().doStopPackMusic();
doStartMusic();
if (bFirstPlay) {
oHelpPopUp.doOpen();
}
bFirstPlay = false;
}
function doStartMusic() {
if (oMusicGame == undefined) {
oMusicGame = Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_MUSIC, "Music_Game.wav", 0, 999999);
oMusicGame.doAddListener(this);
oMusicGame.setFadeRate(8);
}
oMusicGame.doFadeTo(100);
}
function doStopMusic() {
if (oMusicGame != undefined) {
oMusicGame.setFadeRate(8);
oMusicGame.doFadeTo(0);
}
}
function doSetBGPosition(_nLevelToPlay) {
var _local2;
switch (_nLevelToPlay) {
case 1 :
case 2 :
case 3 :
_local2 = -3998;
break;
case 4 :
case 5 :
_local2 = -3500;
break;
case 6 :
case 7 :
_local2 = -3040;
break;
case 8 :
case 9 :
_local2 = -2680;
break;
case 10 :
case 11 :
_local2 = -2220;
break;
case 12 :
case 13 :
_local2 = -1700;
break;
case 14 :
case 15 :
_local2 = -1220;
break;
case 16 :
case 17 :
_local2 = -490;
break;
case 18 :
case 19 :
case 20 :
_local2 = -10;
}
if (nBGTargetPosition != _local2) {
nBGTargetPosition = _local2;
bMoveBG = true;
}
}
function doMoveBG() {
var _local2 = nBGTargetPosition - mcRef.mcBackgrounds._y;
var _local3 = Library.Utils.MoreMath.getPolarity(_local2);
if (Math.abs(_local2) > nSPEED_BACKGROUND_MOVE) {
var _local4 = _local3 * nSPEED_BACKGROUND_MOVE;
mcRef.mcBackgrounds._y = mcRef.mcBackgrounds._y + _local4;
} else {
mcRef.mcBackgrounds._y = nBGTargetPosition;
}
}
function doUnloadLevel() {
oLevel.doDestroy();
delete oLevel;
}
function doSetSection(_sSection) {
sCurrentSection = _sSection;
mcRef.gotoAndStop(sCurrentSection);
switch (sCurrentSection) {
case sSECTION_GAME :
doCreateLevel();
break;
case sSECTION_EMPTY :
if (bFirstPlay) {
break;
}
doSetSection(sSECTION_GAME);
}
}
function doUnloadSection(_sSection) {
if (!(_sSection === sSECTION_GAME)) {
} else {
doUnloadLevel();
}
}
static var sSECTION_EMPTY = "Empty";
static var sSECTION_GAME = "Game";
static var nHINT_HIDE_DELAY = 75;
static var nSPEED_BACKGROUND_MOVE = 12;
}
Symbol 1326 MovieClip [__Packages.LevelManager] Frame 0
class LevelManager extends Library.DispatcherBase
{
static var oCtrl;
var mcRef, nLevel, aPaddles, aBlocks, aBalls, aItems, aBolts, nBallNum, nItemNum, bLevelEnded, bDropDownMotionWait, bDropDownMotion, aDropDownElements, aEndLevelElements, bBallSpeedUp, bCalledLevelEnd, bSentEndingWord, nEndCountDown, nNextRemoveDepth, nNextFrontDepth, bPaused, nGameState, nPreventiveEndDelay, bPaddleEndMoveComplete, oMainBall, oBallSpeedUpTimer, doAddListener, oMainPaddle, oPixies, bPixiesVisible, oPixiesVisibleTimer, doRemoveListener;
function LevelManager (_mcRef, _nLevel) {
super();
mcRef = _mcRef;
oCtrl = this;
nLevel = _nLevel;
mcRef.gotoAndStop(_nLevel);
mcRef.mcLevel.gotoAndStop("Init");
aPaddles = new Array();
aBlocks = new Array();
aBalls = new Array();
aItems = new Array();
aBolts = new Array();
nBallNum = 0;
nItemNum = 0;
bLevelEnded = false;
bDropDownMotionWait = true;
bDropDownMotion = false;
aDropDownElements = new Array();
aEndLevelElements = new Array();
bBallSpeedUp = false;
bCalledLevelEnd = false;
bSentEndingWord = false;
nEndCountDown = 0;
nNextRemoveDepth = nDEPTH_REMOVE_MIN;
nNextFrontDepth = nDEPTH_FRONT_MIN;
onInitLevel();
Game.__get__Instance().doAddListener(this);
}
static function get Instance() {
return(oCtrl);
}
function doEnterFrame() {
super.doEnterFrame();
if (!bPaused) {
if (nGameState == nGAME_STATE_END_WON_COUNTDOWN) {
nEndCountDown--;
if (nEndCountDown == 0) {
onLevelEnded();
}
} else if (nGameState == nGAME_STATE_END_LOSE_COUNTDOWN) {
nEndCountDown--;
if (nEndCountDown == 0) {
Game.__get__Instance().doLevelEnd(false);
}
} else if (nGameState == nGAME_STATE_DROP_DOWN_MOTION) {
if (bDropDownMotionWait && (aDropDownElements.length != 0)) {
bDropDownMotionWait = false;
bDropDownMotion = true;
}
if (bDropDownMotion) {
doDropDownMotion();
}
} else if (nGameState == nGAME_STATE_END_EXPLOSION) {
if (bLevelEnded) {
doLevelEndExplode();
if (!bCalledLevelEnd) {
nPreventiveEndDelay--;
if (nPreventiveEndDelay <= 0) {
Game.__get__Instance().doLevelEnd(true);
bCalledLevelEnd = true;
}
}
}
}
doCheckActiveModifiers();
}
}
function doCheckLevelEndAnimComplete() {
if (((aEndLevelElements.length <= 0) && (bPaddleEndMoveComplete)) && (!bCalledLevelEnd)) {
Game.__get__Instance().doLevelEnd(true);
bCalledLevelEnd = true;
}
}
function onPaddleMovedCenter() {
if (bLevelEnded) {
bPaddleEndMoveComplete = true;
doCheckLevelEndAnimComplete();
}
}
function onLevelEndAnimEnded(_oElement) {
for (var _local3 in aEndLevelElements) {
if (aEndLevelElements[_local3].oObj == _oElement) {
delete aEndLevelElements[_local3].oObj;
delete aEndLevelElements[_local3].bExploded;
aEndLevelElements.splice(Number(_local3), 1);
}
}
doCheckLevelEndAnimComplete();
}
function onDropDownCompleteForElement(_oElement) {
for (var _local3 in aDropDownElements) {
if (aDropDownElements[_local3].oObj == _oElement) {
delete aDropDownElements[_local3].oObj;
delete aDropDownElements[_local3].bMoving;
aDropDownElements.splice(Number(_local3), 1);
}
}
if (aDropDownElements.length <= 0) {
onDropDownComplete();
}
}
function doAddPaddle(_oPaddle) {
aPaddles.push(_oPaddle);
}
function doRemovePaddle(_oPaddle) {
for (var _local3 in aPaddles) {
if (aPaddles[_local3] == _oPaddle) {
delete aPaddles[_local3];
aPaddles.splice(_local3, 1);
}
}
}
function doAddLevelDesignItem(_mcItem, _nItemType) {
new LevelDesignItem(_mcItem, _nItemType);
}
function doAddItemAt(_nX, _nY, _nItemType) {
var _local2;
switch (_nItemType) {
case LevelDesignItem.nBONUS_FAIRY_CROWN :
_local2 = LevelDesignItem.sLINKAGE_BONUS_FAIRY_CROWN;
break;
case LevelDesignItem.nBONUS_CC_POWERSUIT :
_local2 = LevelDesignItem.sLINKAGE_BONUS_CC_POWERSUIT;
break;
case LevelDesignItem.nBONUS_CC_SYMBOL :
_local2 = LevelDesignItem.sLINKAGE_BONUS_CC_SYMBOL;
break;
case LevelDesignItem.nPOWERDOWN_ROCKET :
_local2 = LevelDesignItem.sLINKAGE_POWERDOWN_ROCKET;
break;
case LevelDesignItem.nBONUS_TRAMPOLINE :
_local2 = LevelDesignItem.sLINKAGE_BONUS_TRAMPOLINE;
break;
case LevelDesignItem.nPOWERDOWN_JACKBOX :
_local2 = LevelDesignItem.sLINKAGE_POWERDOWN_JACKBOX;
break;
case LevelDesignItem.nBONUS_CHEWINGGUM :
_local2 = LevelDesignItem.sLINKAGE_BONUS_CHEWINGGUM;
break;
case LevelDesignItem.nBONUS_MAGICWAND :
_local2 = LevelDesignItem.sLINKAGE_BONUS_MAGICWAND;
break;
case LevelDesignItem.nPOWERDOWN_PING :
_local2 = LevelDesignItem.sLINKAGE_POWERDOWN_PING;
}
nItemNum++;
var _local3 = mcRef.attachMovie(_local2, "mcItem" + nItemNum, nITEMS_DEPTH_START + nItemNum);
_local3._x = _nX;
_local3._y = _nY;
var _local4 = new FallingItem(_local3, _nItemType);
aItems.push(_local4);
}
function doAddShootingStar(_mcStar) {
var _local2 = new ShootingStar(_mcStar);
aDropDownElements.push({oObj:_local2, bMoving:false});
_local2.onHideForDropDown();
aBalls.push(_local2);
}
function doAddBlock(_mcBlock, _nStepNumber) {
var _local2 = new Block(_mcBlock, _nStepNumber);
aDropDownElements.push({oObj:_local2, bMoving:false});
_local2.onHideForDropDown();
aBlocks.push(_local2);
}
function doNewBolt(_nX, _nY) {
nItemNum++;
var _local2 = mcRef.attachMovie(sBOLT_LINKAGE, "mcBolt" + nItemNum, nITEMS_DEPTH_START + nItemNum);
_local2._x = _nX;
_local2._y = _nY;
var _local3 = new Bolt(_local2);
aBolts.push(_local3);
}
function doNewTimmyTrail(_nX, _nY, _sAddonState) {
nItemNum++;
var _local2 = mcRef.attachMovie(sTRAIL_TIMMY_LINKAGE, "mcTT" + nItemNum, nITEMS_DEPTH_START + nItemNum);
_local2._x = _nX;
_local2._y = _nY;
new TrailTimmy(_local2, _sAddonState);
}
function doNewTrailStar(_nX, _nY) {
nItemNum++;
var _local2 = mcRef.attachMovie(sTRAIL_STARS_LINKAGE, "mcTS" + nItemNum, nITEMS_DEPTH_START + nItemNum);
_local2._x = _nX;
_local2._y = _nY;
new TrailStars(_local2);
}
function doNewEndingWord() {
if (!bSentEndingWord) {
nItemNum++;
var _local2 = mcRef.attachMovie(sWORDS_LINKAGE, "mcWord" + nItemNum, nITEMS_DEPTH_START + nItemNum);
_local2._x = nENDING_WORD_X;
_local2._y = nENDING_WORD_Y;
new EndingWord(_local2);
bSentEndingWord = true;
}
}
function getNearPaddlesForObject(_oObject) {
var _local4 = new Array();
var _local3 = Library.Utils.MoreMath.getBoundsCenter(_oObject.__get__Bounds());
for (var _local6 in aPaddles) {
if (aPaddles[_local6] != _oObject) {
var _local2 = Library.Utils.MoreMath.getBoundsCenter(aPaddles[_local6].Bounds);
if (Library.Utils.MoreMath.getManhattanDistance(_local3.x, _local3.y, _local2.x, _local2.y) <= nPADDLE_NEAR_DISTANCE) {
_local4.push(aPaddles[_local6]);
}
}
}
return(_local4);
}
function getNearBallsForObject(_oObject) {
var _local4 = new Array();
var _local3 = Library.Utils.MoreMath.getBoundsCenter(_oObject.__get__Bounds());
for (var _local6 in aBalls) {
if (aBalls[_local6] != _oObject) {
var _local2 = Library.Utils.MoreMath.getBoundsCenter(aBalls[_local6].Bounds);
if (Library.Utils.MoreMath.getManhattanDistance(_local3.x, _local3.y, _local2.x, _local2.y) <= nBALLS_NEAR_DISTANCE) {
_local4.push(aBalls[_local6]);
}
}
}
return(_local4);
}
function getNearBlocksForObject(_oObject) {
var _local4 = new Array();
var _local3 = Library.Utils.MoreMath.getBoundsCenter(_oObject.__get__Bounds());
for (var _local6 in aBlocks) {
if (aBlocks[_local6] != _oObject) {
var _local2 = Library.Utils.MoreMath.getBoundsCenter(aBlocks[_local6].Bounds);
if (Math.abs(_local3.y - _local2.y) <= nBLOCKS_NEAR_DISTANCE_Y) {
if (Math.abs(_local3.x - _local2.x) <= nBLOCKS_NEAR_DISTANCE_X) {
_local4.push(aBlocks[_local6]);
}
}
}
}
return(_local4);
}
function onItemLost(_oItem) {
doDeleteItem(_oItem);
if (nGameState == nGAME_STATE_WAIT_END_ITEMS_REMAIN) {
doCheckLevelEnd();
}
}
function onPlayerCatchItem(_oItem) {
doDeleteItem(_oItem);
var _local3 = _oItem.__get__ItemType();
Game.__get__Instance().onPlayerCatchItem(_local3);
switch (_local3) {
case LevelDesignItem.nBONUS_FAIRY_CROWN :
Game.__get__Instance().__get__Status().onGainLive();
Game.__get__Instance().__get__Status().onCatchBonus();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_FairyCrown.mp3", 100, 1, true);
break;
case LevelDesignItem.nBONUS_CC_POWERSUIT :
oMainBall.onGainPassThroughAbility();
Game.__get__Instance().__get__Status().onCatchBonus();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_CC_Suit.mp3", 100, 1, true);
break;
case LevelDesignItem.nBONUS_CC_SYMBOL :
Game.__get__Instance().__get__Status().onCatchBonus();
Game.__get__Instance().__get__Status().doAddPoints(LevelDesignItem.nBONUS_CC_SYMBOL_POINTS);
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_CC_Points.mp3", 100, 1, true);
break;
case LevelDesignItem.nPOWERDOWN_ROCKET :
if (!bBallSpeedUp) {
for (var _local2 in aBalls) {
aBalls[_local2].doAffectSpeed(LevelDesignItem.nPOWERDOWN_ROCKET_SPEED);
}
}
bBallSpeedUp = true;
oBallSpeedUpTimer = new Library.Utils.Timer();
oBallSpeedUpTimer.__set__Method(Library.Utils.Timer.TIMER_COUNT_DOWN);
doAddListener(oBallSpeedUpTimer);
oBallSpeedUpTimer.setTime(LevelDesignItem.nPOWERDOWN_ROCKET_TIME);
oBallSpeedUpTimer.doStartTimer();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_Rocket.mp3", 100, 1, true);
break;
case LevelDesignItem.nBONUS_TRAMPOLINE :
Game.__get__Instance().__get__Status().onCatchBonus();
oMainPaddle.onPaddleResize(PlayerPaddle.sPADDLE_STATE_LARGE);
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_Trampoline.mp3", 100, 1, true);
break;
case LevelDesignItem.nPOWERDOWN_JACKBOX :
oMainPaddle.onPaddleResize(PlayerPaddle.sPADDLE_STATE_SHORT);
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_JackBox.mp3", 100, 1, true);
break;
case LevelDesignItem.nBONUS_CHEWINGGUM :
Game.__get__Instance().__get__Status().onCatchBonus();
oMainPaddle.onChewingGumCatch();
oMainBall.onChewingGumCatch();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_BubbleGum.mp3", 100, 1, true);
break;
case LevelDesignItem.nBONUS_MAGICWAND :
Game.__get__Instance().__get__Status().onCatchBonus();
oMainPaddle.onMagicWandCatch();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_MagicWand.mp3", 100, 1, true);
break;
case LevelDesignItem.nPOWERDOWN_PING :
doCreatePixies();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Catch_Ping.mp3", 100, 1, true);
}
if (nGameState == nGAME_STATE_WAIT_END_ITEMS_REMAIN) {
doCheckLevelEnd();
}
}
function onChewingGumEnd() {
oMainBall.onChewingGumEnd();
}
function onBlockCrushed(_oBlock) {
doDeleteBlock(_oBlock);
doCheckLevelEnd();
}
function onBallLost(_oBall) {
doDeleteBall(_oBall);
_oBall.doDestroy();
if (nGameState == nGAME_STATE_PLAYING) {
if (_oBall == oMainBall) {
Game.__get__Instance().__get__Status().onLoseLive();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Lose_Life.mp3");
oMainPaddle.onChewingGumEnd();
if (Game.__get__Instance().__get__Status().getPlayerCanContinue()) {
delete oMainBall;
oMainPaddle.doGetBall();
} else {
nGameState = nGAME_STATE_END_LOSE_COUNTDOWN;
nEndCountDown = nEND_COUNTDOWN;
}
}
}
}
function getNewBall() {
nBallNum++;
var _local2 = GameStage.attachMovie(sLINKAGE_MAIN_BALL, "mcBall" + nBallNum, nBALL_DEPTH_START + nBallNum);
oMainBall = new MainBall(_local2);
if (bBallSpeedUp) {
oMainBall.doAffectSpeed(LevelDesignItem.nPOWERDOWN_ROCKET_SPEED);
}
aBalls.push(oMainBall);
return(oMainBall);
}
function onLevelEnded() {
nGameState = nGAME_STATE_END_EXPLOSION;
bLevelEnded = true;
nPreventiveEndDelay = 150;
for (var _local4 in aBalls) {
aEndLevelElements.push({oObj:aBalls[_local4], bExploded:false});
aBalls[_local4].onLevelEnded();
aBalls.splice(Number(_local4), 1);
}
for (var _local4 in aBlocks) {
aEndLevelElements.push({oObj:aBlocks[_local4], bExploded:false});
aBlocks[_local4].onLevelEnded();
aBlocks.splice(Number(_local4), 1);
}
bPaddleEndMoveComplete = false;
oMainPaddle.onLevelEnded();
oPixies.doHide();
}
function doPutInFront(_mc) {
do {
nNextFrontDepth++;
if (nNextFrontDepth > nDEPTH_FRONT_MAX) {
nNextFrontDepth = nDEPTH_FRONT_MIN;
}
} while (_mc._parent.getInstanceAtDepth(nNextFrontDepth) != undefined);
_mc.swapDepths(nNextFrontDepth);
}
function doDestroy() {
for (var _local2 in aBalls) {
aBalls[_local2].doDestroy();
aBalls.splice(Number(_local2), 1);
}
for (var _local2 in aBlocks) {
aBlocks[_local2].doDestroy();
aBlocks.splice(Number(_local2), 1);
}
delete aBalls;
delete aBlocks;
delete oCtrl;
oMainPaddle.doDestroy();
delete oMainPaddle;
oMainBall.doDestroy();
delete oMainBall;
oPixies.doDestroy();
delete oPixies;
Game.__get__Instance().doRemoveListener(this);
}
function get GameStarted() {
return(nGameState == nGAME_STATE_PLAYING);
}
function get Blocks() {
return(Library.Utils.Tools.doCopyArray(aBlocks));
}
function get MainPaddle() {
return(oMainPaddle);
}
function get GameStage() {
return(mcRef);
}
function get RemoveDepth() {
do {
nNextRemoveDepth++;
if (nNextRemoveDepth > nDEPTH_REMOVE_MAX) {
nNextRemoveDepth = nDEPTH_REMOVE_MIN;
}
} while (mcRef.getInstanceAtDepth(nNextRemoveDepth) != undefined);
return(nNextRemoveDepth);
}
function onDropDownComplete() {
nGameState = nGAME_STATE_PLAYING;
oMainPaddle.doGetBall();
}
function doLevelEndExplode() {
if (aEndLevelElements.length > 0) {
var _local2 = new Array();
for (var _local3 in aEndLevelElements) {
if (!aEndLevelElements[_local3].bExploded) {
_local2.push(aEndLevelElements[_local3]);
}
}
var _local5 = Library.Utils.MoreMath.getRandomRange(0, _local2.length - 1);
var _local4 = _local2[_local5];
if (_local4 != undefined) {
_local4.oObj.doLevelEndedAnim();
_local4.bExploded = true;
}
}
}
function doDropDownMotion() {
if (aDropDownElements.length > 0) {
var _local3 = new Array();
var _local2 = Number.NEGATIVE_INFINITY;
for (var _local4 in aDropDownElements) {
if (!aDropDownElements[_local4].bMoving) {
if (aDropDownElements[_local4].oObj.Bounds.yMax > _local2) {
_local2 = aDropDownElements[_local4].oObj.Bounds.yMax;
}
}
}
for (var _local4 in aDropDownElements) {
if (!aDropDownElements[_local4].bMoving) {
if (Math.abs(aDropDownElements[_local4].oObj.Bounds.yMax - _local2) <= nDROPDOWN_LINE_BUFFER) {
_local3.push(aDropDownElements[_local4]);
}
}
}
var _local6 = Library.Utils.MoreMath.getRandomRange(0, _local3.length - 1);
var _local5 = _local3[_local6];
if (_local5 != undefined) {
_local5.oObj.onStartDropDownMove();
_local5.bMoving = true;
} else {
bDropDownMotion = false;
}
} else {
bDropDownMotion = false;
}
}
function doCreatePixies() {
oPixies.doShow();
bPixiesVisible = true;
oPixiesVisibleTimer = new Library.Utils.Timer();
oPixiesVisibleTimer.__set__Method(Library.Utils.Timer.TIMER_COUNT_DOWN);
doAddListener(oPixiesVisibleTimer);
oPixiesVisibleTimer.setTime(LevelDesignItem.nPOWERDOWN_PIXIES_TIME);
oPixiesVisibleTimer.doStartTimer();
}
function doCheckLevelEnd() {
var _local2 = true;
for (var _local3 in aBlocks) {
if (!aBlocks[_local3].NeverDies) {
_local2 = false;
}
}
if (_local2) {
if (aItems.length <= 0) {
nGameState = nGAME_STATE_END_WON_COUNTDOWN;
nEndCountDown = nEND_COUNTDOWN;
doNewEndingWord();
} else {
nGameState = nGAME_STATE_WAIT_END_ITEMS_REMAIN;
}
}
}
function doDeleteBlock(_oBlock) {
for (var _local2 in aBlocks) {
if (aBlocks[_local2] == _oBlock) {
delete aBlocks[_local2];
aBlocks.splice(Number(_local2), 1);
}
}
}
function doDeleteBall(_oBall) {
for (var _local3 in aBalls) {
if (aBalls[_local3] == _oBall) {
aBalls.splice(Number(_local3), 1);
}
}
}
function doDeleteItem(_oItem) {
for (var _local3 in aItems) {
if (aItems[_local3] == _oItem) {
delete aItems[_local3];
aItems.splice(Number(_local3), 1);
}
}
}
function doCheckActiveModifiers() {
if (bBallSpeedUp) {
if (oBallSpeedUpTimer.__get__Time() <= 0) {
bBallSpeedUp = false;
doRemoveListener(oBallSpeedUpTimer);
delete oBallSpeedUpTimer;
for (var _local2 in aBalls) {
aBalls[_local2].doAffectSpeed(-LevelDesignItem.nPOWERDOWN_ROCKET_SPEED);
}
}
}
if (bPixiesVisible) {
if (oPixiesVisibleTimer.__get__Time() <= 0) {
bPixiesVisible = false;
doRemoveListener(oPixiesVisibleTimer);
delete oPixiesVisibleTimer;
oPixies.doHide();
}
}
}
function onInitLevel() {
nGameState = nGAME_STATE_DROP_DOWN_MOTION;
var _local2 = GameStage.attachMovie("mcPaddle", "mcPaddle", nMAIN_PADDLE_DEPTH);
_local2._x = nMAIN_PADDLE_START_X;
_local2._y = nMAIN_PADDLE_START_Y;
oMainPaddle = new PlayerPaddle(_local2);
aPaddles.push(oMainPaddle);
var _local4 = mcRef.attachMovie("mcPixies_1", "mcPixies_1", nPIXIES_DEPTH_START);
var _local3 = mcRef.attachMovie("mcPixies_2", "mcPixies_2", nPIXIES_DEPTH_START + 1);
oPixies = new PixiesGroup(_local4, _local3);
}
static var nBLOCKS_NEAR_DISTANCE_X = 60;
static var nBLOCKS_NEAR_DISTANCE_Y = 40;
static var nBALLS_NEAR_DISTANCE = 75;
static var nPADDLE_NEAR_DISTANCE = 185;
static var nDROPDOWN_LINE_BUFFER = 12;
static var nLIMITS_CEIL = 35;
static var nLIMITS_FLOOR = 520;
static var nLIMITS_LEFT = 15;
static var nLIMITS_RIGHT = 435;
static var nGAME_STATE_DROP_DOWN_MOTION = 1;
static var nGAME_STATE_PLAYING = 2;
static var nGAME_STATE_WAIT_END_ITEMS_REMAIN = 3;
static var nGAME_STATE_END_WON_COUNTDOWN = 4;
static var nGAME_STATE_END_LOSE_COUNTDOWN = 5;
static var nGAME_STATE_END_EXPLOSION = 6;
static var nEND_COUNTDOWN = 45;
static var sLINKAGE_MAIN_BALL = "mcBall";
static var sBOLT_LINKAGE = "mcBolt";
static var sTRAIL_STARS_LINKAGE = "mcTrailStars";
static var sTRAIL_TIMMY_LINKAGE = "mcTrailTimmy";
static var sWORDS_LINKAGE = "mcMots";
static var nENDING_WORD_X = 225;
static var nENDING_WORD_Y = 260;
static var nMAIN_PADDLE_DEPTH = 50;
static var nPIXIES_DEPTH_START = 75;
static var nMAIN_PADDLE_START_X = 225;
static var nMAIN_PADDLE_START_Y = 420;
static var nBALL_DEPTH_START = 25000;
static var nITEMS_DEPTH_START = 75000;
static var nCHECK_DISTANCE_X = 50;
static var nCHECK_DISTANCE_Y = 50;
static var nDEPTH_REMOVE_MIN = 150000;
static var nDEPTH_REMOVE_MAX = 160000;
static var nDEPTH_FRONT_MIN = 550000;
static var nDEPTH_FRONT_MAX = 760000;
}
Symbol 1327 MovieClip [__Packages.BaseObject] Frame 0
class BaseObject extends Library.State
{
var nOriginalScaleX, mcRef, nOriginalScaleY, bDropDownMotion, bLevelEnded, nOriginalPositionX, nOriginalPositionY, oTweenListener, setState, twX, twY, oStateBounds, isStateComplete, bPaused;
function BaseObject (_mcRef) {
super(_mcRef);
nOriginalScaleX = mcRef._xscale;
nOriginalScaleY = mcRef._yscale;
bDropDownMotion = false;
bLevelEnded = false;
nOriginalPositionX = mcRef._x;
nOriginalPositionY = mcRef._y;
oTweenListener = new Object();
oTweenListener.onMotionFinished = Library.Utils.Delegate.create(this, onTweenComplete);
}
function doEnterFrame() {
super.doEnterFrame();
if (bDropDownMotion) {
var _local4 = nOriginalPositionY - mcRef._y;
var _local3;
if (_local4 > nDROP_MIN_MOVE) {
_local3 = _local4 * nDROP_DISTANCE_MOVE_PERCENT;
} else {
_local3 = _local4;
LevelManager.__get__Instance().onDropDownCompleteForElement(this);
bDropDownMotion = false;
}
if (_local3 > nDROP_MAX_SPEED) {
_local3 = nDROP_MAX_SPEED;
}
mcRef._y = mcRef._y + _local3;
}
}
function onLevelEnded() {
bLevelEnded = true;
}
function doLevelEndedAnim() {
setState("Explode");
}
function onHideForDropDown() {
mcRef._y = nOriginalPositionY - nDROP_DOWN_HEIGHT;
}
function onStartDropDownMove() {
bDropDownMotion = true;
}
function doPause() {
super.doPause();
twX.stop();
twY.stop();
}
function doResume() {
super.doResume();
twX.resume();
twY.resume();
}
function onTweenComplete(__twTween) {
if (__twTween == twX) {
delete twX;
} else if (__twTween == twY) {
delete twY;
}
}
function doDestroy() {
mcRef.swapDepths(LevelManager.__get__Instance().__get__RemoveDepth());
mcRef.removeMovieClip();
if (bLevelEnded) {
LevelManager.__get__Instance().onLevelEndAnimEnded(this);
}
twX.stop();
twY.stop();
delete twX;
delete twY;
delete mcRef;
delete oStateBounds;
}
function get Ref() {
return(mcRef);
}
function get StateBounds() {
return(oStateBounds);
}
function get Bounds() {
var _local2 = new Object();
_local2.xMin = mcRef._x + oStateBounds.xMin;
_local2.xMax = mcRef._x + oStateBounds.xMax;
_local2.yMin = mcRef._y + oStateBounds.yMin;
_local2.yMax = mcRef._y + oStateBounds.yMax;
return(_local2);
}
function doExplode() {
if (isStateComplete()) {
doDestroy();
}
}
function doBounce(__nXStrength, __nYStrength) {
if (!bPaused) {
var _local2 = 100 - (Math.abs(__nXStrength) * nBOUNCE_HORIZONTAL_SPEED_RATIO);
var _local3 = 100 - (Math.abs(__nYStrength) * nBOUNCE_VERTICAL_SPEED_RATIO);
if ((_local2 < nBOUNCE_HORIZONTAL_STRETCH) || (_local2 > 100)) {
_local2 = nBOUNCE_HORIZONTAL_STRETCH;
}
if ((_local3 < nBOUNCE_VERTICAL_STRETCH) || (_local3 > 100)) {
_local3 = nBOUNCE_VERTICAL_STRETCH;
}
doReinitScale();
if (twX != undefined) {
twX.stop();
}
if (twY != undefined) {
twY.stop();
}
twX = new mx.transitions.Tween(mcRef, "_xscale", mx.transitions.easing.Elastic.easeOut, _local2, mcRef._xscale, nBOUNCE_DURATION, false);
twY = new mx.transitions.Tween(mcRef, "_yscale", mx.transitions.easing.Elastic.easeOut, _local3, mcRef._yscale, nBOUNCE_DURATION, false);
twX.addListener(oTweenListener);
twY.addListener(oTweenListener);
}
}
function doReinitScale() {
mcRef._xscale = nOriginalScaleX;
mcRef._yscale = nOriginalScaleY;
}
function getCollideBottom(_oTargetObject, _nX, _nY) {
if (_nX == undefined) {
_nX = Ref._x;
}
if (_nY == undefined) {
_nY = Ref._y;
}
var _local2 = false;
if ((_nX > _oTargetObject.__get__Bounds().xMin) && (_nX < _oTargetObject.__get__Bounds().xMax)) {
var _local7 = Library.Utils.MoreMath.getBoundsCenter(_oTargetObject.__get__Bounds()).y;
var _local5 = Library.Utils.MoreMath.getBoundsCenter(Bounds).y;
if (((_nY + StateBounds.yMax) > _oTargetObject.__get__Bounds().yMin) && (_local5 < _local7)) {
_local2 = true;
}
}
return(_local2);
}
function getCollideTop(_oTargetObject, _nX, _nY) {
if (_nX == undefined) {
_nX = Ref._x;
}
if (_nY == undefined) {
_nY = Ref._y;
}
var _local2 = false;
if ((_nX > _oTargetObject.__get__Bounds().xMin) && (_nX < _oTargetObject.__get__Bounds().xMax)) {
var _local7 = Library.Utils.MoreMath.getBoundsCenter(_oTargetObject.__get__Bounds()).y;
var _local5 = Library.Utils.MoreMath.getBoundsCenter(Bounds).y;
if (((_nY + StateBounds.yMin) < _oTargetObject.__get__Bounds().yMax) && (_local5 > _local7)) {
_local2 = true;
}
}
return(_local2);
}
function getCollideRight(_oTargetObject, _nX, _nY) {
if (_nX == undefined) {
_nX = Ref._x;
}
if (_nY == undefined) {
_nY = Ref._y;
}
var _local2 = false;
if ((_nY > _oTargetObject.__get__Bounds().yMin) && (_nY < _oTargetObject.__get__Bounds().yMax)) {
var _local7 = Library.Utils.MoreMath.getBoundsCenter(_oTargetObject.__get__Bounds()).x;
var _local5 = Library.Utils.MoreMath.getBoundsCenter(Bounds).x;
if (((_nX + StateBounds.xMax) > _oTargetObject.__get__Bounds().xMin) && (_local5 < _local7)) {
_local2 = true;
}
}
return(_local2);
}
function getCollideLeft(_oTargetObject, _nX, _nY) {
if (_nX == undefined) {
_nX = Ref._x;
}
if (_nY == undefined) {
_nY = Ref._y;
}
var _local2 = false;
if ((_nY > _oTargetObject.__get__Bounds().yMin) && (_nY < _oTargetObject.__get__Bounds().yMax)) {
var _local7 = Library.Utils.MoreMath.getBoundsCenter(_oTargetObject.__get__Bounds()).x;
var _local5 = Library.Utils.MoreMath.getBoundsCenter(Bounds).x;
if (((_nX + StateBounds.xMin) < _oTargetObject.__get__Bounds().xMax) && (_local5 > _local7)) {
_local2 = true;
}
}
return(_local2);
}
function doLoadStateAction() {
if (mcRef.mcState.mcHit != undefined) {
oStateBounds = mcRef.mcState.mcHit.getBounds(mcRef);
} else {
oStateBounds = mcRef.mcState.getBounds(mcRef);
}
}
static var nDROP_DOWN_HEIGHT = 400;
static var nDROP_DISTANCE_MOVE_PERCENT = 0.35;
static var nDROP_MAX_SPEED = 40;
static var nDROP_MIN_MOVE = 4;
static var nBOUNCE_DURATION = 15;
static var nBOUNCE_VERTICAL_STRETCH = 65;
static var nBOUNCE_HORIZONTAL_STRETCH = 60;
static var nBOUNCE_VERTICAL_SPEED_RATIO = 2;
static var nBOUNCE_HORIZONTAL_SPEED_RATIO = 2;
}
Symbol 10 MovieClip [__Packages.mx.transitions.OnEnterFrameBeacon] Frame 0
class mx.transitions.OnEnterFrameBeacon
{
function OnEnterFrameBeacon () {
}
static function init() {
var _local4 = _global.MovieClip;
if (!_root.__OnEnterFrameBeacon) {
mx.transitions.BroadcasterMX.initialize(_local4);
var _local3 = _root.createEmptyMovieClip("__OnEnterFrameBeacon", 9876);
_local3.onEnterFrame = function () {
_global.MovieClip.broadcastMessage("onEnterFrame");
};
}
}
}
Symbol 9 MovieClip [__Packages.mx.transitions.BroadcasterMX] Frame 0
class mx.transitions.BroadcasterMX
{
var _listeners;
function BroadcasterMX () {
}
static function initialize(o, dontCreateArray) {
if (o.broadcastMessage != undefined) {
delete o.broadcastMessage;
}
o.addListener = mx.transitions.BroadcasterMX.prototype.addListener;
o.removeListener = mx.transitions.BroadcasterMX.prototype.removeListener;
if (!dontCreateArray) {
o._listeners = new Array();
}
}
function addListener(o) {
removeListener(o);
if (broadcastMessage == undefined) {
broadcastMessage = mx.transitions.BroadcasterMX.prototype.broadcastMessage;
}
return(_listeners.push(o));
}
function removeListener(o) {
var _local2 = _listeners;
var _local3 = _local2.length;
while (_local3--) {
if (_local2[_local3] == o) {
_local2.splice(_local3, 1);
if (!_local2.length) {
broadcastMessage = undefined;
}
return(true);
}
}
return(false);
}
function broadcastMessage() {
var _local5 = String(arguments.shift());
var _local4 = _listeners.concat();
var _local6 = _local4.length;
var _local3 = 0;
while (_local3 < _local6) {
_local4[_local3][_local5].apply(_local4[_local3], arguments);
_local3++;
}
}
}
Symbol 1328 MovieClip [__Packages.mx.transitions.Tween] Frame 0
class mx.transitions.Tween
{
var obj, prop, begin, useSeconds, _listeners, addListener, prevTime, _time, looping, _duration, broadcastMessage, isPlaying, _fps, prevPos, _pos, change, _intervalID, _startTime;
function Tween (obj, prop, func, begin, finish, duration, useSeconds) {
mx.transitions.OnEnterFrameBeacon.init();
if (!arguments.length) {
return;
}
this.obj = obj;
this.prop = prop;
this.begin = begin;
position = (begin);
this.duration = (duration);
this.useSeconds = useSeconds;
if (func) {
this.func = func;
}
this.finish = (finish);
_listeners = [];
addListener(this);
start();
}
function set time(t) {
prevTime = _time;
if (t > duration) {
if (looping) {
rewind(t - _duration);
update();
broadcastMessage("onMotionLooped", this);
} else {
if (useSeconds) {
_time = _duration;
update();
}
stop();
broadcastMessage("onMotionFinished", this);
}
} else if (t < 0) {
rewind();
update();
} else {
_time = t;
update();
}
//return(time);
}
function get time() {
return(_time);
}
function set duration(d) {
_duration = (((d == null) || (d <= 0)) ? (_global.Infinity) : (d));
//return(duration);
}
function get duration() {
return(_duration);
}
function set FPS(fps) {
var _local2 = isPlaying;
stopEnterFrame();
_fps = fps;
if (_local2) {
startEnterFrame();
}
//return(FPS);
}
function get FPS() {
return(_fps);
}
function set position(p) {
setPosition(p);
//return(position);
}
function setPosition(p) {
prevPos = _pos;
obj[prop] = (_pos = p);
broadcastMessage("onMotionChanged", this, _pos);
updateAfterEvent();
}
function get position() {
return(getPosition());
}
function getPosition(t) {
if (t == undefined) {
t = _time;
}
return(func(t, begin, change, _duration));
}
function set finish(f) {
change = f - begin;
//return(finish);
}
function get finish() {
return(begin + change);
}
function continueTo(finish, duration) {
begin = position;
this.finish = (finish);
if (duration != undefined) {
this.duration = (duration);
}
start();
}
function yoyo() {
continueTo(begin, time);
}
function startEnterFrame() {
if (_fps == undefined) {
_global.MovieClip.addListener(this);
} else {
_intervalID = setInterval(this, "onEnterFrame", 1000 / _fps);
}
isPlaying = true;
}
function stopEnterFrame() {
if (_fps == undefined) {
_global.MovieClip.removeListener(this);
} else {
clearInterval(_intervalID);
}
isPlaying = false;
}
function start() {
rewind();
startEnterFrame();
broadcastMessage("onMotionStarted", this);
}
function stop() {
stopEnterFrame();
broadcastMessage("onMotionStopped", this);
}
function resume() {
fixTime();
startEnterFrame();
broadcastMessage("onMotionResumed", this);
}
function rewind(t) {
_time = ((t == undefined) ? 0 : (t));
fixTime();
update();
}
function fforward() {
time = (_duration);
fixTime();
}
function nextFrame() {
if (useSeconds) {
time = ((getTimer() - _startTime) / 1000);
} else {
time = (_time + 1);
}
}
function onEnterFrame() {
nextFrame();
}
function prevFrame() {
if (!useSeconds) {
time = (_time - 1);
}
}
function toString() {
return("[Tween]");
}
function fixTime() {
if (useSeconds) {
_startTime = getTimer() - (_time * 1000);
}
}
function update() {
position = (getPosition(_time));
}
static var version = "1.1.0.52";
static var __initBeacon = mx.transitions.OnEnterFrameBeacon.init();
static var __initBroadcaster = mx.transitions.BroadcasterMX.initialize(mx.transitions.Tween.prototype, true);
function func(t, b, c, d) {
return(((c * t) / d) + b);
}
}
Symbol 4 MovieClip [__Packages.Library.Utils.Delegate] Frame 0
class Library.Utils.Delegate extends Object
{
var func;
function Delegate () {
super();
}
function DelegateArgs(f) {
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local3 = arguments.callee.target;
func = arguments.callee.func;
var _local2 = arguments.callee.arg;
_local2 = _local2.concat(arguments);
return(func.apply(_local3, _local2));
};
_local2.target = obj;
_local2.func = func;
_local2.arg = arguments.slice(2);
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 1329 MovieClip [__Packages.mx.transitions.easing.Elastic] Frame 0
class mx.transitions.easing.Elastic
{
function Elastic () {
}
static function easeIn(t, b, c, d, a, p) {
if (t == 0) {
return(b);
}
t = t / d;
if (t == 1) {
return(b + c);
}
if (!p) {
p = d * 0.3;
}
if ((!a) || (a < Math.abs(c))) {
a = c;
var _local7 = p / 4;
} else {
var _local7 = (p / (Math.PI*2)) * Math.asin(c / a);
}
t = t - 1;
return((-((a * Math.pow(2, 10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p))) + b);
}
static function easeOut(t, b, c, d, a, p) {
if (t == 0) {
return(b);
}
t = t / d;
if (t == 1) {
return(b + c);
}
if (!p) {
p = d * 0.3;
}
if ((!a) || (a < Math.abs(c))) {
a = c;
var _local7 = p / 4;
} else {
var _local7 = (p / (Math.PI*2)) * Math.asin(c / a);
}
return((((a * Math.pow(2, -10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p)) + c) + b);
}
static function easeInOut(t, b, c, d, a, p) {
if (t == 0) {
return(b);
}
t = t / (d / 2);
if (t == 2) {
return(b + c);
}
if (!p) {
p = d * 0.45;
}
if ((!a) || (a < Math.abs(c))) {
a = c;
var _local7 = p / 4;
} else {
var _local7 = (p / (Math.PI*2)) * Math.asin(c / a);
}
if (t < 1) {
t = t - 1;
return((-0.5 * ((a * Math.pow(2, 10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p))) + b);
}
t = t - 1;
return(((((a * Math.pow(2, -10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p)) * 0.5) + c) + b);
}
static var version = "1.1.0.52";
}
Symbol 7 MovieClip [__Packages.Library.Utils.MoreMath] Frame 0
class Library.Utils.MoreMath
{
function MoreMath () {
}
static function getRandomRange(__nMin, __nMax) {
return(Math.floor(Math.random() * ((__nMax + 1) - __nMin)) + __nMin);
}
static function getPolarity(__nNum) {
var _local1 = 0;
if (__nNum < 0) {
_local1 = -1;
} else if (__nNum > 0) {
_local1 = 1;
}
return(_local1);
}
static function getReachZero(__nNum, __nReducer) {
return(getReachNum(__nNum, 0, __nReducer));
}
static function getReachNum(__nNum, __nTargetNum, __nReducer) {
var _local1 = __nNum;
if (_local1 != __nTargetNum) {
if (_local1 < __nTargetNum) {
_local1 = _local1 + __nReducer;
if (_local1 > __nTargetNum) {
_local1 = __nTargetNum;
}
} else {
_local1 = _local1 - __nReducer;
if (_local1 < __nTargetNum) {
_local1 = __nTargetNum;
}
}
}
return(_local1);
}
static function getDistance(__nX1, __nY1, __nX2, __nY2) {
return(Math.sqrt(Math.pow(Math.abs(__nX2 - __nX1), 2) + Math.pow(Math.abs(__nY2 - __nY1), 2)));
}
static function getManhattanDistance(_x1, _y1, _x2, _y2) {
return(Math.abs(_x1 - _x2) + Math.abs(_y1 - _y2));
}
static function getHypotenuse(__nDX, __nDY) {
return(Math.sqrt(Math.pow(__nDX, 2) + Math.pow(__nDY, 2)));
}
static function getAngle(__nX1, __nY1, __nX2, __nY2) {
var _local2;
var _local1;
var _local4;
var _local3;
_local2 = __nX2 - __nX1;
_local1 = __nY2 - __nY1;
_local4 = Math.atan2(_local1, _local2);
_local3 = getDegreeFromRadius(_local4);
return(_local3);
}
static function getDegreeFromRadius(__nRadius) {
var _local1 = (__nRadius / MATH_PI) * 180;
return(_local1);
}
static function getRadianFromDegree(__nDegree) {
var _local1 = __nDegree * (MATH_PI / 180);
return(_local1);
}
static function getBoundsCenter(_oBox) {
var _local3 = (_oBox.xMin + _oBox.xMax) / 2;
var _local2 = (_oBox.yMin + _oBox.yMax) / 2;
return({x:_local3, y:_local2});
}
static var MATH_PI = Math.PI;
}
Symbol 1330 MovieClip [__Packages.Paddle] Frame 0
class Paddle extends BaseObject
{
var bGotBall, __get__Ref, bBallStickAbility;
function Paddle (_mcRef) {
super(_mcRef);
bGotBall = false;
LevelManager.__get__Instance().doAddListener(this);
}
function getAffectedBounceAngleForBall(_oBall) {
var _local2 = _oBall.__get__Angle();
if (_local2 < 0) {
_local2 = _local2 + 360;
} else if (_local2 > 360) {
_local2 = _local2 % 360;
}
var _local3 = _oBall.__get__Ref()._x - __get__Ref()._x;
var _local4 = _local3 * nANGLE_CHANGE_PER_PIXEL;
_local2 = _local2 + _local4;
if (_local2 < nBALL_LAUNCH_ANGLE_MIN) {
_local2 = nBALL_LAUNCH_ANGLE_MIN;
} else if (_local2 > nBALL_LAUNCH_ANGLE_MAX) {
_local2 = nBALL_LAUNCH_ANGLE_MAX;
}
return(_local2);
}
function getBallHitReaction(_oBall) {
var _local2;
if ((!bBallStickAbility) || (_oBall instanceof ShootingStar)) {
_local2 = nBALL_HIT_BOUNCE_BACK;
} else {
_local2 = nBALL_HIT_STICKS;
}
return(_local2);
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
static var nBALL_HIT_BOUNCE_BACK = 1;
static var nBALL_HIT_STICKS = 2;
static var nBALL_LAUNCH_ANGLE_MIN = 225;
static var nBALL_LAUNCH_ANGLE_MAX = 315;
static var nANGLE_CHANGE_PER_PIXEL = 0.35;
}
Symbol 1331 MovieClip [__Packages.Ball] Frame 0
class Ball extends BaseObject
{
var setState, nSpeed, nTempSpeedModifier, nPermanentSpeedModifier, nRadian, bPassThroughAbility, bHasTrailStars, __get__CurrentState, mcRef, getCollideBottom, __get__StateBounds, getCollideTop, getCollideRight, getCollideLeft, nTrailStarsDelay;
function Ball (_mcRef) {
super(_mcRef);
setState(sSTATE_LAUNCH_WAIT);
nSpeed = 0;
nTempSpeedModifier = 0;
nPermanentSpeedModifier = 0;
nRadian = undefined;
bPassThroughAbility = false;
bHasTrailStars = false;
LevelManager.__get__Instance().doAddListener(this);
}
function onGainPassThroughAbility() {
bPassThroughAbility = true;
switch (__get__CurrentState()) {
case sSTATE_LAUNCH_WAIT :
setState(sSTATE_LAUNCH_WAIT_PASSTHROUGH);
break;
case sSTATE_MOVING :
setState(sSTATE_MOVING_PASSTHROUGH);
break;
case sSTATE_LAUNCH_WAIT_CHEWINGGUM :
setState(sSTATE_LAUNCH_WAIT_PASSPLUSGUM);
break;
case sSTATE_MOVING_CHEWINGGUM :
setState(sSTATE_MOVING_PASSPLUSGUM);
}
}
function onBallHit(_oBall, _nHitSide) {
var _local2 = Speeds;
switch (_nHitSide) {
case nHIT_WITH_BOTTOM :
if (Library.Utils.MoreMath.getPolarity(_local2.y) == -1) {
onBounceY();
}
break;
case nHIT_WITH_TOP :
if (Library.Utils.MoreMath.getPolarity(_local2.y) == 1) {
onBounceY();
}
break;
case nHIT_WITH_LEFT :
if (Library.Utils.MoreMath.getPolarity(_local2.c) == -1) {
onBounceX();
}
break;
case nHIT_WITH_RIGHT :
if (Library.Utils.MoreMath.getPolarity(_local2.c) != 1) {
break;
}
onBounceX();
}
}
function setPosition(_nPosX, _nPosY) {
mcRef._x = _nPosX;
mcRef._y = _nPosY;
}
function setAngle(_nAngle) {
nRadian = Library.Utils.MoreMath.getRadianFromDegree(_nAngle);
}
function doAffectSpeed(_nSpeedMod) {
nPermanentSpeedModifier = nPermanentSpeedModifier + _nSpeedMod;
bHasTrailStars = nPermanentSpeedModifier > 0;
}
function setSpeed(_nSpeed) {
switch (__get__CurrentState()) {
case sSTATE_LAUNCH_WAIT :
setState(sSTATE_MOVING);
break;
case sSTATE_LAUNCH_WAIT_PASSTHROUGH :
setState(sSTATE_MOVING_PASSTHROUGH);
break;
case sSTATE_LAUNCH_WAIT_CHEWINGGUM :
setState(sSTATE_MOVING_CHEWINGGUM);
break;
case sSTATE_LAUNCH_WAIT_PASSPLUSGUM :
setState(sSTATE_MOVING_PASSPLUSGUM);
}
nSpeed = _nSpeed;
}
function onChewingGumCatch() {
switch (__get__CurrentState()) {
case sSTATE_LAUNCH_WAIT :
setState(sSTATE_LAUNCH_WAIT_CHEWINGGUM);
break;
case sSTATE_MOVING :
setState(sSTATE_MOVING_CHEWINGGUM);
break;
case sSTATE_LAUNCH_WAIT_PASSTHROUGH :
setState(sSTATE_LAUNCH_WAIT_PASSPLUSGUM);
break;
case sSTATE_MOVING_PASSTHROUGH :
setState(sSTATE_MOVING_PASSPLUSGUM);
}
}
function onChewingGumEnd() {
switch (__get__CurrentState()) {
case sSTATE_LAUNCH_WAIT_CHEWINGGUM :
setState(sSTATE_LAUNCH_WAIT);
break;
case sSTATE_MOVING_CHEWINGGUM :
setState(sSTATE_MOVING);
break;
case sSTATE_LAUNCH_WAIT_PASSPLUSGUM :
setState(sSTATE_LAUNCH_WAIT_PASSTHROUGH);
break;
case sSTATE_MOVING_PASSPLUSGUM :
setState(sSTATE_MOVING_PASSTHROUGH);
}
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
function get Angle() {
return(Library.Utils.MoreMath.getDegreeFromRadius(nRadian));
}
function get Speed() {
return(nSpeed);
}
function get Speeds() {
var _local2 = new Object();
if ((((__get__CurrentState() == sSTATE_MOVING) || (__get__CurrentState() == sSTATE_MOVING_PASSTHROUGH)) || (__get__CurrentState() == sSTATE_MOVING_CHEWINGGUM)) || (__get__CurrentState() == sSTATE_MOVING_PASSPLUSGUM)) {
var _local3 = Math.cos(nRadian) * ((nSpeed + nPermanentSpeedModifier) + nTempSpeedModifier);
var _local4 = Math.sin(nRadian) * ((nSpeed + nPermanentSpeedModifier) + nTempSpeedModifier);
_local2.x = _local3;
_local2.y = _local4;
} else {
_local2.x = 0;
_local2.y = 0;
}
return(_local2);
}
function doMSuit() {
doMoving();
}
function doMGum() {
doMoving();
}
function doMSuitGum() {
doMoving();
}
function doMoving() {
doValidateAngle();
nTempSpeedModifier = Library.Utils.MoreMath.getReachZero(nTempSpeedModifier, nSPEED_BURST_REDUCE_SPEED);
var _local8 = Speeds;
var _local4 = _local8.x;
var _local5 = _local8.y;
var _local2 = mcRef._x + _local4;
var _local3 = mcRef._y + _local5;
_local3 = doCheckTopBottom(_local5, _local3);
_local2 = doCheckSides(_local4, _local2);
var _local6 = doCheckPaddles(_local4, _local5, _local2, _local3);
_local2 = _local6.nFutureX;
_local3 = _local6.nFutureY;
var _local9 = doCheckBlocks(_local4, _local5, _local2, _local3);
_local2 = _local9.nFutureX;
_local3 = _local9.nFutureY;
var _local7 = doCheckBalls(_local4, _local5, _local2, _local3);
_local2 = _local7.nFutureX;
_local3 = _local7.nFutureY;
if (bHasTrailStars) {
doTrailStars();
}
mcRef._x = _local2;
mcRef._y = _local3;
}
function doCheckPaddles(_nSpeedX, _nSpeedY, _nFutureX, _nFutureY) {
var _local2 = LevelManager.__get__Instance().getNearPaddlesForObject(this);
for (var _local9 in _local2) {
switch (Library.Utils.MoreMath.getPolarity(_nSpeedY)) {
case 1 :
if (getCollideBottom(_local2[_local9], _nFutureX, _nFutureY)) {
_nFutureY = _local2[_local9].Bounds.yMin - __get__StateBounds().yMax;
var _local5 = _local2[_local9].getBallHitReaction(this);
if (_local5 == Paddle.nBALL_HIT_BOUNCE_BACK) {
onBounceY();
_local2[_local9].onPaddleBounce();
var _local6 = _local2[_local9].getAffectedBounceAngleForBall(this);
nRadian = Library.Utils.MoreMath.getRadianFromDegree(_local6);
nTempSpeedModifier = nPADDLE_HIT_SPEED_BURST;
} else if (_local5 == Paddle.nBALL_HIT_STICKS) {
switch (__get__CurrentState()) {
case sSTATE_MOVING :
setState(sSTATE_LAUNCH_WAIT);
break;
case sSTATE_MOVING_PASSTHROUGH :
setState(sSTATE_LAUNCH_WAIT_PASSTHROUGH);
break;
case sSTATE_MOVING_CHEWINGGUM :
setState(sSTATE_LAUNCH_WAIT_CHEWINGGUM);
break;
case sSTATE_MOVING_PASSPLUSGUM :
setState(sSTATE_LAUNCH_WAIT_PASSPLUSGUM);
}
_local2[_local9].onBallSticks(this);
nSpeed = 0;
}
onPaddleTouch(_local2[_local9], true);
}
break;
case -1 :
if (!getCollideTop(_local2[_local9], _nFutureX, _nFutureY)) {
break;
}
_nFutureY = _local2[_local9].Bounds.yMax - __get__StateBounds().yMin;
onBounceY();
onPaddleTouch();
}
switch (Library.Utils.MoreMath.getPolarity(_nSpeedX)) {
case 1 :
if (getCollideRight(_local2[_local9], _nFutureX, _nFutureY)) {
_nFutureX = _local2[_local9].Bounds.xMin - __get__StateBounds().xMax;
onBounceX();
onPaddleTouch(_local2[_local9]);
}
break;
case -1 :
if (!getCollideLeft(_local2[_local9], _nFutureX, _nFutureY)) {
break;
}
_nFutureX = _local2[_local9].Bounds.xMax - __get__StateBounds().xMin;
onBounceX();
onPaddleTouch(_local2[_local9]);
}
}
return({nFutureX:_nFutureX, nFutureY:_nFutureY});
}
function doCheckBlocks(_nSpeedX, _nSpeedY, _nFutureX, _nFutureY) {
var _local2 = LevelManager.__get__Instance().getNearBlocksForObject(this);
for (var _local9 in _local2) {
var _local5 = false;
switch (Library.Utils.MoreMath.getPolarity(_nSpeedY)) {
case 1 :
if (getCollideBottom(_local2[_local9], _nFutureX, _nFutureY)) {
_local2[_local9].onBallHit(this, nHIT_WITH_BOTTOM);
var _local6 = false;
if (_local2[_local9].StillAlive) {
onBounceY();
} else {
if (!bPassThroughAbility) {
onBounceY();
} else {
_local6 = false;
}
onBlockDestroy();
}
if (_local6) {
_nFutureY = _local2[_local9].Bounds.yMin - __get__StateBounds().yMax;
}
_local5 = true;
}
break;
case -1 :
if (!getCollideTop(_local2[_local9], _nFutureX, _nFutureY)) {
break;
}
_local2[_local9].onBallHit(this, nHIT_WITH_TOP);
var _local6 = false;
if (_local2[_local9].StillAlive) {
onBounceY();
} else {
if (!bPassThroughAbility) {
onBounceY();
} else {
_local6 = false;
}
onBlockDestroy();
}
if (_local6) {
_nFutureY = _local2[_local9].Bounds.yMax - __get__StateBounds().yMin;
}
_local5 = true;
}
if (!_local5) {
switch (Library.Utils.MoreMath.getPolarity(_nSpeedX)) {
case 1 :
if (getCollideRight(_local2[_local9], _nFutureX, _nFutureY)) {
_local2[_local9].onBallHit(this, nHIT_WITH_RIGHT);
_local6 = false;
if (_local2[_local9].StillAlive) {
onBounceX();
} else {
if (!bPassThroughAbility) {
onBounceX();
} else {
_local6 = false;
}
onBlockDestroy();
}
if (_local6) {
_nFutureX = _local2[_local9].Bounds.xMin - __get__StateBounds().xMax;
}
}
break;
case -1 :
if (!getCollideLeft(_local2[_local9], _nFutureX, _nFutureY)) {
break;
}
_local2[_local9].onBallHit(this, nHIT_WITH_LEFT);
_local6 = false;
if (_local2[_local9].StillAlive) {
onBounceX();
} else {
if (!bPassThroughAbility) {
onBounceX();
} else {
_local6 = false;
}
onBlockDestroy();
}
if (!_local6) {
break;
}
_nFutureX = _local2[_local9].Bounds.xMax - __get__StateBounds().xMin;
}
}
}
return({nFutureX:_nFutureX, nFutureY:_nFutureY});
}
function doCheckBalls(_nSpeedX, _nSpeedY, _nFutureX, _nFutureY) {
var _local2 = LevelManager.__get__Instance().getNearBallsForObject(this);
for (var _local8 in _local2) {
var _local3 = false;
switch (Library.Utils.MoreMath.getPolarity(_nSpeedY)) {
case 1 :
if (getCollideBottom(_local2[_local8], _nFutureX, _nFutureY)) {
onBallHit(_local2[_local8], nHIT_WITH_TOP);
_local2[_local8].onBallHit(this, nHIT_WITH_BOTTOM);
_local3 = true;
}
break;
case -1 :
if (!getCollideTop(_local2[_local8], _nFutureX, _nFutureY)) {
break;
}
onBallHit(_local2[_local8], nHIT_WITH_BOTTOM);
_local2[_local8].onBallHit(this, nHIT_WITH_TOP);
_local3 = true;
}
if (!_local3) {
switch (Library.Utils.MoreMath.getPolarity(_nSpeedX)) {
case 1 :
if (getCollideRight(_local2[_local8], _nFutureX, _nFutureY)) {
onBallHit(_local2[_local8], nHIT_WITH_LEFT);
_local2[_local8].onBallHit(this, nHIT_WITH_RIGHT);
}
break;
case -1 :
if (!getCollideLeft(_local2[_local8], _nFutureX, _nFutureY)) {
break;
}
onBallHit(_local2[_local8], nHIT_WITH_RIGHT);
_local2[_local8].onBallHit(this, nHIT_WITH_LEFT);
}
}
}
return({nFutureX:_nFutureX, nFutureY:_nFutureY});
}
function doCheckSides(_nSpeedX, _nFutureX) {
switch (Library.Utils.MoreMath.getPolarity(_nSpeedX)) {
case 1 :
if ((_nFutureX + __get__StateBounds().xMax) > LevelManager.nLIMITS_RIGHT) {
onBounceX();
onBounceSides();
_nFutureX = LevelManager.nLIMITS_RIGHT - __get__StateBounds().xMax;
}
break;
case -1 :
if ((_nFutureX + __get__StateBounds().xMin) >= LevelManager.nLIMITS_LEFT) {
break;
}
onBounceX();
onBounceSides();
_nFutureX = LevelManager.nLIMITS_LEFT - __get__StateBounds().xMin;
}
return(_nFutureX);
}
function doCheckTopBottom(_nSpeedY, _nFutureY) {
switch (Library.Utils.MoreMath.getPolarity(_nSpeedY)) {
case 1 :
if ((_nFutureY + __get__StateBounds().yMax) > LevelManager.nLIMITS_FLOOR) {
LevelManager.__get__Instance().onBallLost(this);
}
break;
case -1 :
if ((_nFutureY + __get__StateBounds().yMin) >= LevelManager.nLIMITS_CEIL) {
break;
}
onBounceY();
onBounceSides();
_nFutureY = LevelManager.nLIMITS_CEIL - __get__StateBounds().yMin;
}
return(_nFutureY);
}
function onBounceX(_bRandomAdd) {
if (_bRandomAdd == undefined) {
_bRandomAdd = true;
}
var _local3 = Speeds;
var _local2 = _local3.x;
var _local4 = _local3.y;
_local2 = _local2 * -1;
if (_bRandomAdd) {
doAngleRandomAdd();
}
nRadian = Math.atan2(_local4, _local2);
}
function onBounceY(_bRandomAdd) {
if (_bRandomAdd == undefined) {
_bRandomAdd = true;
}
var _local3 = Speeds;
var _local4 = _local3.x;
var _local2 = _local3.y;
_local2 = _local2 * -1;
if (_bRandomAdd) {
doAngleRandomAdd();
}
nRadian = Math.atan2(_local2, _local4);
}
function doAngleRandomAdd() {
var _local2 = Library.Utils.MoreMath.getDegreeFromRadius(nRadian);
_local2 = _local2 + Library.Utils.MoreMath.getRandomRange(-nANGLE_RANDOM_ADDON_RAND, nANGLE_RANDOM_ADDON_RAND);
nRadian = Library.Utils.MoreMath.getRadianFromDegree(_local2);
}
function doTrailStars() {
nTrailStarsDelay--;
if (nTrailStarsDelay <= 0) {
nTrailStarsDelay = nTRAIL_STARS_DELAY;
doSpecificTrailStar();
}
}
function doValidateAngle() {
var _local2 = Library.Utils.MoreMath.getDegreeFromRadius(nRadian);
_local2 = doCheckAngleGroup(_local2, nPROHIBED_ANGLE_RANGE_1_MIN, nPROHIBED_ANGLE_RANGE_1_MAX);
_local2 = doCheckAngleGroup(_local2, nPROHIBED_ANGLE_RANGE_2_MIN, nPROHIBED_ANGLE_RANGE_2_MAX);
_local2 = doCheckAngleGroup(_local2, nPROHIBED_ANGLE_RANGE_3_MIN, nPROHIBED_ANGLE_RANGE_3_MAX);
_local2 = doCheckAngleGroup(_local2, nPROHIBED_ANGLE_RANGE_4_MIN, nPROHIBED_ANGLE_RANGE_4_MAX);
_local2 = doCheckAngleGroup(_local2, nPROHIBED_ANGLE_RANGE_5_MIN, nPROHIBED_ANGLE_RANGE_5_MAX);
nRadian = Library.Utils.MoreMath.getRadianFromDegree(_local2);
}
function doCheckAngleGroup(_nDegree, _nMin, _nMax) {
if ((_nDegree > _nMin) && (_nDegree < _nMax)) {
var _local4 = _nDegree - ((_nMax + _nMin) / 2);
switch (Library.Utils.MoreMath.getPolarity(_local4)) {
case 1 :
_nDegree = _nMax;
break;
case -1 :
default :
_nDegree = _nMin;
}
}
return(_nDegree);
}
function doSpecificTrailStar() {
}
function onBlockDestroy() {
}
function onBounceSides() {
}
function onPaddleTouch(_oPaddle, _bBounceTop) {
}
static var sSTATE_LAUNCH_WAIT = "LaunchWait";
static var sSTATE_LAUNCH_WAIT_PASSTHROUGH = "LWSuit";
static var sSTATE_LAUNCH_WAIT_CHEWINGGUM = "LWGum";
static var sSTATE_LAUNCH_WAIT_PASSPLUSGUM = "LWSuitGum";
static var sSTATE_MOVING = "Moving";
static var sSTATE_MOVING_PASSTHROUGH = "MSuit";
static var sSTATE_MOVING_CHEWINGGUM = "MGum";
static var sSTATE_MOVING_PASSPLUSGUM = "MSuitGum";
static var nHIT_WITH_BOTTOM = 1;
static var nHIT_WITH_TOP = 2;
static var nHIT_WITH_LEFT = 3;
static var nHIT_WITH_RIGHT = 4;
static var nPROHIBED_ANGLE_RANGE_1_MIN = 165;
static var nPROHIBED_ANGLE_RANGE_1_MAX = 195;
static var nPROHIBED_ANGLE_RANGE_2_MIN = 345;
static var nPROHIBED_ANGLE_RANGE_2_MAX = 360;
static var nPROHIBED_ANGLE_RANGE_3_MIN = 0;
static var nPROHIBED_ANGLE_RANGE_3_MAX = 15;
static var nPROHIBED_ANGLE_RANGE_4_MIN = 75;
static var nPROHIBED_ANGLE_RANGE_4_MAX = 105;
static var nPROHIBED_ANGLE_RANGE_5_MIN = 255;
static var nPROHIBED_ANGLE_RANGE_5_MAX = 285;
static var nPADDLE_HIT_SPEED_BURST = 6;
static var nBALL_HIT_SPEED_BURST = 3;
static var nSPEED_BURST_REDUCE_SPEED = 0.4;
static var nANGLE_RANDOM_ADDON_RAND = 10;
static var nTRAIL_STARS_DELAY = 2;
}
Symbol 1332 MovieClip [__Packages.ShootingStar] Frame 0
class ShootingStar extends Ball
{
var bPassThroughAbility, bHasTrailStars, __get__CurrentState, setSpeed, setAngle, __get__Ref;
function ShootingStar (_mcRef) {
super(_mcRef);
bPassThroughAbility = true;
bHasTrailStars = true;
}
function onBallHit(_oBall, _nHitSide) {
if (__get__CurrentState() == Ball.sSTATE_LAUNCH_WAIT) {
setSpeed(nSHOOTING_STAR_SPEED);
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "ShootingStart_Move.mp3");
var _local3;
switch (_nHitSide) {
case Ball.nHIT_WITH_BOTTOM :
_local3 = 90;
break;
case Ball.nHIT_WITH_TOP :
_local3 = 270;
break;
case Ball.nHIT_WITH_LEFT :
_local3 = 180;
break;
case Ball.nHIT_WITH_RIGHT :
_local3 = 0;
}
setAngle(_local3);
} else {
super.onBallHit(_oBall, _nHitSide);
}
}
function doAffectSpeed(_nSpeedMod) {
super.doAffectSpeed(_nSpeedMod);
bHasTrailStars = true;
}
function doSpecificTrailStar() {
LevelManager.__get__Instance().doNewTrailStar(__get__Ref()._x, __get__Ref()._y);
}
static var nSHOOTING_STAR_SPEED = 8;
}
Symbol 6 MovieClip [__Packages.Library.Sound.SoundManager] Frame 0
class Library.Sound.SoundManager
{
static var aSounds, mcAttach, nSoundNum, aSoundCategories, nMasterVolume, oEnterFrameListener;
function SoundManager () {
}
static function doPlaySound(__sLinkage, __nVolume, __nLoop, __bUnique) {
return(doPlaySoundInCat(DEFAULT_CATEGORY, __sLinkage, __nVolume, __nLoop, __bUnique));
}
static function doPlaySoundInCat(__sCategoryName, __sLinkage, __nVolume, __nLoop, __bUnique) {
doCheckInit();
var _local1;
if (NewSoundAllowed) {
if (__nVolume == undefined) {
__nVolume = 100;
}
if (__nLoop == undefined) {
__nLoop = 1;
}
if (__bUnique == undefined) {
__bUnique = false;
}
var _local2;
if (__bUnique) {
var _local4 = isSoundPlaying(__sLinkage);
if (_local4.bPlaying) {
_local2 = false;
_local1 = _local4.oSound;
} else {
_local2 = true;
}
} else {
_local2 = true;
}
if (_local2) {
doManageCategory(__sCategoryName);
var _local5 = getMCForSound();
var _local3 = new Sound(_local5);
_local3.attachSound(__sLinkage);
if (_local3.duration != undefined) {
_local1 = new Library.Sound.SoundItem(_local3, __sLinkage, __nVolume, __nLoop, __sCategoryName, _local5);
}
_local1.doAddListener(Library.Sound.SoundManager);
aSounds.push(_local1);
}
}
return(_local1);
}
static function isSoundPlaying(__sLinkageName) {
var _local1 = new Object();
_local1.bPlaying = false;
_local1.oSound = undefined;
for (var _local3 in aSounds) {
if (aSounds[_local3].LinkageName == __sLinkageName) {
_local1.oSound = aSounds[_local3];
_local1.bPlaying = true;
}
}
return(_local1);
}
static function doManageExternalSound(__oSound) {
doCheckInit();
doManageCategory(__oSound.__get__Category());
__oSound.doAddListener(Library.Sound.SoundManager);
aSounds.push(__oSound);
}
static function getMCForSound() {
var _local1 = getNextDepth();
var _local2 = mcAttach.createEmptyMovieClip("Snd" + _local1, _local1);
return(_local2);
}
static function getNextDepth() {
nSoundNum++;
return(nSoundNum);
}
static function doInit(__mcAttach) {
mcAttach = __mcAttach;
if (!bInited) {
bInited = true;
nSoundNum = 0;
aSounds = new Array();
aSoundCategories = new Array();
nMasterVolume = 100;
_global.mx.transitions.OnEnterFrameBeacon.init();
oEnterFrameListener = new Object();
oEnterFrameListener.onEnterFrame = Library.Utils.Delegate.create(Library.Sound.SoundManager, doEnterFrame);
MovieClip.addListener(oEnterFrameListener);
}
}
static function doEnterFrame() {
for (var _local1 in aSounds) {
aSounds[_local1].doEnterFrame();
}
}
static function setCategoryVolume(__sCategoryName, __nVol) {
doManageCategory(__sCategoryName);
for (var _local3 in aSoundCategories) {
if (aSoundCategories[_local3].sName == __sCategoryName) {
aSoundCategories[_local3].nVolume = __nVol;
}
}
doUpdateAllSoundsVolume();
}
static function getCategoryVolume(__sCategoryName) {
doManageCategory(__sCategoryName);
var _local1;
for (var _local3 in aSoundCategories) {
if (aSoundCategories[_local3].sName == __sCategoryName) {
_local1 = aSoundCategories[_local3].nVolume;
}
}
return(_local1);
}
static function isCategoryMuted(__sCategoryName) {
doManageCategory(__sCategoryName);
var _local1;
for (var _local3 in aSoundCategories) {
if (aSoundCategories[_local3].sName == __sCategoryName) {
_local1 = aSoundCategories[_local3].bMuted;
}
}
return(_local1);
}
static function doSoundEvent(__nEvent, __oSound) {
if (!(__nEvent === EVENT_SOUND_COMPLETE)) {
} else {
var _local1 = false;
for (var _local3 in aSounds) {
if (!_local1) {
if (aSounds[_local3] == __oSound) {
_local1 = true;
delete aSounds[_local3];
aSounds.splice(Number(_local3), 1);
}
}
}
}
}
static function doMuteCategory(__sCategoryName) {
for (var _local2 in aSoundCategories) {
if (aSoundCategories[_local2].sName == __sCategoryName) {
aSoundCategories[_local2].bMuted = true;
}
}
doUpdateAllSoundsVolume();
}
static function doUnMuteCategory(__sCategoryName) {
for (var _local2 in aSoundCategories) {
if (aSoundCategories[_local2].sName == __sCategoryName) {
aSoundCategories[_local2].bMuted = false;
}
}
doUpdateAllSoundsVolume();
}
static function setMasterVolume(__nVol) {
nMasterVolume = __nVol;
doUpdateAllSoundsVolume();
}
static function get NewSoundAllowed() {
return(aSounds.length < MAX_SOUNDS_PLAYING);
}
static function get MasterVolume() {
return(nMasterVolume);
}
static function doRemoveListenerFromAllSounds(__oListener) {
for (var _local2 in aSounds) {
aSounds[_local2].doRemoveListener(__oListener);
}
}
static function doDestroy() {
doRemoveListenerFromAllSounds();
for (var _local1 in aSounds) {
aSounds[_local1].doDestroy();
}
}
static function doUpdateAllSoundsVolume() {
for (var _local1 in aSounds) {
aSounds[_local1].doUpdateSound();
}
}
static function doCheckInit() {
if (!bInited) {
}
}
static function doManageCategory(__sCategoryName) {
doCheckInit();
var _local1 = false;
for (var _local4 in aSoundCategories) {
if (aSoundCategories[_local4].sName == __sCategoryName) {
_local1 = true;
}
}
if (!_local1) {
var _local3 = new Object();
_local3.sName = __sCategoryName;
_local3.nVolume = 100;
_local3.bMuted = false;
aSoundCategories.push(_local3);
}
}
static var EVENT_SOUND_COMPLETE = 1;
static var DEFAULT_CATEGORY = "SFX";
static var MAX_SOUNDS_PLAYING = 8;
static var bInited = false;
}
Symbol 5 MovieClip [__Packages.Library.Sound.SoundItem] Frame 0
class Library.Sound.SoundItem
{
var sndObj, sLinkage, mcRef, nRemainingLoop, nCurrentVolume, nTargetVolume, nFadeRate, sCategory, bFadeAtEnd, bMuted, bPaused, bNeedFreshStart, nCurrentTime, aEventListeners, bStopAfterFade;
function SoundItem (__sndObject, __sLinkage, __nVolume, __nLoop, __sCategory, __mc) {
sndObj = __sndObject;
sLinkage = __sLinkage;
mcRef = __mc;
nRemainingLoop = __nLoop;
nCurrentVolume = __nVolume;
nTargetVolume = __nVolume;
nFadeRate = FADE_RATE;
sCategory = __sCategory;
bFadeAtEnd = false;
bMuted = false;
bPaused = false;
bNeedFreshStart = false;
sndObj.onSoundComplete = Library.Utils.Delegate.create(this, doSoundComplete);
doStart(__nLoop);
sndObj.setVolume(returnComputedVolume(nCurrentVolume));
nCurrentTime = 0;
aEventListeners = new Array();
}
function doEnterFrame() {
if (!bPaused) {
if (nCurrentTime > sndObj.position) {
nRemainingLoop--;
}
nCurrentTime = sndObj.position;
}
doCheckFadeAtEnd();
doManageFade();
}
function doAddListener(__oListener) {
aEventListeners.push(__oListener);
}
function doRemoveListener(__oListener) {
var _local2 = 0;
while (_local2 < aEventListeners.length) {
if (aEventListeners[_local2] == __oListener) {
delete aEventListeners[_local2];
aEventListeners.splice(_local2, 1);
}
_local2++;
}
}
function doSoundComplete() {
if (bNeedFreshStart && (nRemainingLoop > 1)) {
sndObj.start(0, nRemainingLoop - 1);
} else {
doManageEndEvent();
}
}
function doUpdateSound() {
sndObj.setVolume(returnComputedVolume(nCurrentVolume));
}
function doMute() {
bMuted = true;
doUpdateSound();
}
function doUnMute() {
bMuted = false;
doUpdateSound();
}
function doPause() {
sndObj.stop();
bPaused = true;
}
function doResume() {
bPaused = false;
bNeedFreshStart = true;
sndObj.start(nCurrentTime / 1000, 1);
}
function doStart(__nLoop) {
if (__nLoop == undefined) {
__nLoop = 1;
}
if (sLinkage.indexOf(".mp3") != -1) {
sndObj.start(0.015, __nLoop);
} else {
sndObj.start(0, __nLoop);
}
}
function doStop() {
sndObj.stop();
doManageEndEvent();
}
function doFadeTo(__nVolume, __bStopAndDelete) {
if (__bStopAndDelete == undefined) {
__bStopAndDelete = true;
}
bStopAfterFade = __bStopAndDelete;
nTargetVolume = __nVolume;
}
function setFadeRate(__nRate) {
if (__nRate == undefined) {
__nRate = FADE_RATE;
}
nFadeRate = __nRate;
}
function setFadeAtEnd(__bFadeAtEnd) {
bFadeAtEnd = true;
}
function setPan(__nPan) {
sndObj.setPan(__nPan);
}
function get Category() {
return(sCategory);
}
function get LinkageName() {
return(sLinkage);
}
function doDestroy() {
sndObj.stop();
delete sndObj;
mcRef.removeMovieClip();
}
function doCheckFadeAtEnd() {
if (bFadeAtEnd) {
if (nRemainingLoop == 1) {
if ((sndObj.duration - nCurrentTime) <= FADE_AT_END_TIME) {
doFadeTo(0);
}
}
}
}
function doManageEndEvent() {
var _local2 = 0;
while (_local2 < aEventListeners.length) {
aEventListeners[_local2].doSoundEvent(Library.Sound.SoundManager.EVENT_SOUND_COMPLETE, this);
_local2++;
}
aEventListeners = new Array();
mcRef.removeMovieClip();
delete mcRef;
delete aEventListeners;
delete sndObj.onSoundComplete;
delete sndObj;
}
function doManageFade() {
if (nCurrentVolume != nTargetVolume) {
nCurrentVolume = Library.Utils.MoreMath.getReachNum(nCurrentVolume, nTargetVolume, nFadeRate);
sndObj.setVolume(returnComputedVolume(nCurrentVolume));
}
if ((nCurrentVolume <= 0) && (bStopAfterFade)) {
sndObj.stop();
doManageEndEvent();
}
}
function returnComputedVolume(__nVolume) {
var _local2;
if ((!bMuted) && (!Library.Sound.SoundManager.isCategoryMuted(sCategory))) {
var _local3 = Library.Sound.SoundManager.__get__MasterVolume() / 100;
var _local4 = Library.Sound.SoundManager.getCategoryVolume(sCategory) / 100;
_local2 = __nVolume;
_local2 = _local2 * _local4;
_local2 = _local2 * _local3;
} else {
_local2 = 0;
}
return(_local2);
}
static var FADE_RATE = 8;
static var FADE_AT_END_TIME = 800;
}
Symbol 1333 MovieClip [__Packages.PlayerPaddle] Frame 0
class PlayerPaddle extends Paddle
{
var oKeyManager, oTransition, mcRef, bPaddleAffected, bStickedShot, bCalledEnd, bLevelEnd, nStartX, nStartY, bMagicWandAbility, setState, bMoveLeft, bMoveRight, oPaddleAffectTimer, sTargetPaddleLength, __get__Paused, bGotBall, nBallStickRemaining, bBallStickAbility, oTrappedBall, nTrappedXOffset, __get__Ref, nTrappedYOffset, nMagicWandShotsRemaining, __get__CurrentState, isStateComplete, __get__StateBounds;
function PlayerPaddle (_mcRef) {
super(_mcRef);
oKeyManager = new Library.Utils.KeysManager();
oKeyManager.setListenerForKey(this, 32);
oKeyManager.setListenerForKey(this, 37);
oKeyManager.setListenerForKey(this, 39);
oTransition = new Library.Transition(mcRef.mcTransition);
oTransition.__set__Listener(this);
bPaddleAffected = false;
bStickedShot = false;
bCalledEnd = false;
bLevelEnd = false;
nStartX = mcRef._x;
nStartY = mcRef._y;
bMagicWandAbility = false;
setState(sPADDLE_STATE_NORMAL);
LevelManager.__get__Instance().doAddListener(oTransition);
}
function doResume() {
super.doResume();
bMoveLeft = oKeyManager.isKeyDown(37);
bMoveRight = oKeyManager.isKeyDown(39);
}
function doEnterFrame() {
super.doEnterFrame();
if (bPaddleAffected) {
if (oPaddleAffectTimer.__get__Time() <= 0) {
onPaddleGoesNormal();
}
}
if (bLevelEnd) {
if (nStartX < (mcRef._x - 5)) {
bMoveLeft = true;
} else if (nStartX > (mcRef._x + 5)) {
bMoveRight = true;
} else {
mcRef._x = nStartX;
if (!bCalledEnd) {
LevelManager.__get__Instance().onPaddleMovedCenter();
}
bCalledEnd = true;
}
}
doMove();
}
function onLevelEnded(_bWon) {
bLevelEnd = true;
bMoveLeft = false;
bMoveRight = false;
if (bPaddleAffected) {
sTargetPaddleLength = sPADDLE_STATE_NORMAL;
oTransition.doStart();
}
}
function onKeyManagerEvent(_nEvent, _nCode) {
if ((!__get__Paused()) && (!bLevelEnd)) {
switch (_nEvent) {
case Library.Utils.KeysManager.EVENT_KEY_DOWN :
switch (_nCode) {
case 37 :
bMoveLeft = true;
break;
case 39 :
bMoveRight = true;
break;
case 32 :
}
break;
case Library.Utils.KeysManager.EVENT_KEY_UP :
switch (_nCode) {
case 37 :
bMoveLeft = false;
break;
case 39 :
bMoveRight = false;
break;
case 32 :
if (!LevelManager.__get__Instance().__get__GameStarted()) {
break;
}
if (bGotBall) {
doLaunchBall();
} else {
if (!bMagicWandAbility) {
break;
}
onShootBolts();
}
}
}
}
}
function onBallSticks(_oBall) {
nBallStickRemaining--;
if (nBallStickRemaining <= 0) {
bBallStickAbility = false;
LevelManager.__get__Instance().onChewingGumEnd();
}
bStickedShot = true;
bGotBall = true;
oTrappedBall = _oBall;
nTrappedXOffset = _oBall.__get__Ref()._x - __get__Ref()._x;
nTrappedYOffset = (_oBall.__get__Ref()._y - __get__Ref()._y) + nSTICK_TRANSLATE_Y;
setTrappedPosition();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Timmy_Sticks.mp3", 50);
}
function onMagicWandCatch() {
bMagicWandAbility = true;
nMagicWandShotsRemaining = LevelDesignItem.nBONUS_MAGICWAND_SHOTS;
doUpdateBoltsIndicator();
}
function onChewingGumCatch() {
bBallStickAbility = true;
nBallStickRemaining = LevelDesignItem.nBONUS_CHEWINGGUM_HITS;
}
function onChewingGumEnd() {
bBallStickAbility = false;
nBallStickRemaining = 0;
}
function onPaddleResize(_sTargetLength) {
bPaddleAffected = true;
oPaddleAffectTimer = new Library.Utils.Timer();
oPaddleAffectTimer.__set__Method(Library.Utils.Timer.TIMER_COUNT_DOWN);
LevelManager.__get__Instance().doAddListener(oPaddleAffectTimer);
switch (_sTargetLength) {
case sPADDLE_STATE_SHORT :
oPaddleAffectTimer.setTime(LevelDesignItem.nPOWERDOWN_JACKBOX_TIME);
break;
case sPADDLE_STATE_LARGE :
oPaddleAffectTimer.setTime(LevelDesignItem.nBONUS_TRAMPOLINE_TIME);
}
oPaddleAffectTimer.doStartTimer();
if (__get__CurrentState().indexOf(_sTargetLength) == -1) {
sTargetPaddleLength = _sTargetLength;
oTransition.doStart();
}
}
function onTransitionEvent(_nEvent, _oTransition) {
switch (_nEvent) {
case Library.Transition.TRANSITION_SCREEN_COVERED :
setState(sTargetPaddleLength);
doMove();
break;
case Library.Transition.TRANSITION_COMPLETE :
}
}
function doGetBall() {
bGotBall = true;
bStickedShot = false;
oTrappedBall = LevelManager.__get__Instance().getNewBall();
nTrappedXOffset = nBALL_SPAWN_X;
nTrappedYOffset = nBALL_SPAWN_Y;
setTrappedPosition();
}
function doDestroy() {
oKeyManager.doDestroy();
delete oKeyManager;
delete oTrappedBall;
delete oPaddleAffectTimer;
LevelManager.__get__Instance().doRemoveListener(oTransition);
super.doDestroy();
}
function doNormalBounce() {
if (isStateComplete()) {
setState(sPADDLE_STATE_NORMAL);
}
}
function doShortBounce() {
if (isStateComplete()) {
setState(sPADDLE_STATE_SHORT);
}
}
function doLargeBounce() {
if (isStateComplete()) {
setState(sPADDLE_STATE_LARGE);
}
}
function onPaddleGoesNormal() {
bPaddleAffected = false;
LevelManager.__get__Instance().doRemoveListener(oPaddleAffectTimer);
delete oPaddleAffectTimer;
sTargetPaddleLength = sPADDLE_STATE_NORMAL;
oTransition.doStart();
}
function doLaunchBall() {
if (oTrappedBall.__get__CurrentState() != MainBall.sSTATE_APPEARS) {
var _local2;
if (bStickedShot) {
var _local7 = oTrappedBall.__get__Ref()._x - __get__Ref()._x;
var _local8 = (Math.abs(__get__StateBounds().xMin) + Math.abs(__get__StateBounds().xMax)) / 2;
var _local5 = _local7 / _local8;
var _local3 = (Paddle.nBALL_LAUNCH_ANGLE_MAX - Paddle.nBALL_LAUNCH_ANGLE_MIN) / 2;
var _local6 = Paddle.nBALL_LAUNCH_ANGLE_MIN + _local3;
_local2 = _local6 + (_local3 * _local5);
} else {
_local2 = Library.Utils.MoreMath.getRandomRange(Paddle.nBALL_LAUNCH_ANGLE_MIN, Paddle.nBALL_LAUNCH_ANGLE_MAX);
}
var _local4 = nBALL_LAUNCH_SPEED_BASE + Game.__get__Instance().__get__Status().__get__SpeedAddon();
oTrappedBall.setAngle(_local2);
oTrappedBall.setSpeed(_local4);
bGotBall = false;
onPaddleBounce();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Timmy_InitialShot.mp3");
delete oTrappedBall;
}
}
function onShootBolts() {
nMagicWandShotsRemaining--;
if (nMagicWandShotsRemaining <= 0) {
bMagicWandAbility = false;
}
doUpdateBoltsIndicator();
LevelManager.__get__Instance().doNewBolt(__get__Ref()._x + nBOLTS_OFFSET_X, __get__Ref()._y + nBOLTS_OFFSET_Y);
}
function setTrappedPosition() {
oTrappedBall.setPosition(mcRef._x + nTrappedXOffset, mcRef._y + nTrappedYOffset);
}
function onPaddleBounce() {
if (bGotBall) {
doLaunchBall();
}
switch (__get__CurrentState()) {
case sPADDLE_STATE_NORMAL :
case sPADDLE_STATE_SHORT :
case sPADDLE_STATE_LARGE :
setState(__get__CurrentState() + "Bounce");
}
}
function doMove() {
var _local3 = 0;
if (bMoveLeft) {
_local3 = _local3 - nMOVE_SPEED;
}
if (bMoveRight) {
_local3 = _local3 + nMOVE_SPEED;
}
if (_local3 != 0) {
var _local2 = mcRef._x + _local3;
switch (Library.Utils.MoreMath.getPolarity(_local3)) {
case 1 :
if ((_local2 + __get__StateBounds().xMax) > LevelManager.nLIMITS_RIGHT) {
_local2 = LevelManager.nLIMITS_RIGHT - __get__StateBounds().xMax;
}
break;
case -1 :
if ((_local2 + __get__StateBounds().xMin) >= LevelManager.nLIMITS_LEFT) {
break;
}
_local2 = LevelManager.nLIMITS_LEFT - __get__StateBounds().xMin;
}
mcRef._x = _local2;
}
if (bGotBall) {
setTrappedPosition();
}
}
function doLoadStateAction() {
super.doLoadStateAction();
doUpdateBoltsIndicator();
}
function doUpdateBoltsIndicator() {
if (bMagicWandAbility) {
mcRef.mcState.mcBolts1._visible = true;
mcRef.mcState.mcBolts1.txtNum.text = nMagicWandShotsRemaining;
mcRef.mcState.mcBolts2._visible = true;
mcRef.mcState.mcBolts2.txtNum.text = nMagicWandShotsRemaining;
} else {
mcRef.mcState.mcBolts1._visible = false;
mcRef.mcState.mcBolts2._visible = false;
}
}
static var sPADDLE_STATE_HIDDEN = "Hidden";
static var sPADDLE_STATE_NORMAL = "Normal";
static var sPADDLE_STATE_NORMAL_BOUNCE = "NormalBounce";
static var sPADDLE_STATE_SHORT = "Short";
static var sPADDLE_STATE_SHORT_BOUNCE = "ShortBounce";
static var sPADDLE_STATE_LARGE = "Large";
static var sPADDLE_STATE_LARGE_BOUNCE = "LargeBounce";
static var sPADDLE_STATE_LOSE = "Lose";
static var sPADDLE_STATE_LOSE_END = "LoseEnd";
static var sPADDLE_STATE_WIN = "Win";
static var sPADDLE_STATE_WIN_END = "WinEnd";
static var nBOLTS_OFFSET_X = 0;
static var nBOLTS_OFFSET_Y = -10;
static var nBALL_LAUNCH_SPEED_BASE = 5;
static var nBALL_SPAWN_X = 0;
static var nBALL_SPAWN_Y = -10;
static var nMOVE_SPEED = 8;
static var nSTICK_TRANSLATE_Y = 12;
}
Symbol 11 MovieClip [__Packages.Library.Utils.KeysManager] Frame 0
class Library.Utils.KeysManager
{
var aKeys, oEnterFrameListener;
function KeysManager () {
aKeys = new Array();
mx.transitions.OnEnterFrameBeacon.init();
oEnterFrameListener = new Object();
oEnterFrameListener.onEnterFrame = Library.Utils.Delegate.create(this, doEnterFrame);
MovieClip.addListener(oEnterFrameListener);
}
function setListenerForKey(__oListener, __nKeyCode) {
var _local2 = false;
for (var _local6 in aKeys) {
if (aKeys[_local6].nCode == __nKeyCode) {
aKeys[_local6].aListeners.push(__oListener);
_local2 = true;
}
}
if (!_local2) {
var _local3 = new Object();
_local3.bPressed = false;
_local3.nCode = __nKeyCode;
_local3.aListeners = new Array();
_local3.aListeners.push(__oListener);
aKeys.push(_local3);
}
}
function doEnterFrame() {
for (var _local5 in aKeys) {
var _local3 = Key.isDown(aKeys[_local5].nCode);
if (aKeys[_local5].bPressed != _local3) {
aKeys[_local5].bPressed = _local3;
for (var _local4 in aKeys[_local5].aListeners) {
var _local2;
if (_local3) {
_local2 = EVENT_KEY_DOWN;
} else {
_local2 = EVENT_KEY_UP;
}
aKeys[_local5].aListeners[_local4].onKeyManagerEvent(_local2, aKeys[_local5].nCode);
}
}
}
}
function isKeyDown(__nKeyCode) {
return(Key.isDown(__nKeyCode));
}
function doDestroy() {
for (var _local3 in aKeys) {
for (var _local2 in aKeys[_local3].aListeners) {
delete aKeys[_local3].aListeners[_local2];
}
aKeys[_local3].aListeners = new Array();
delete aKeys[_local3].aListeners;
}
aKeys = new Array();
delete aKeys;
MovieClip.removeListener(this);
}
static var EVENT_KEY_DOWN = 1;
static var EVENT_KEY_UP = 2;
}
Symbol 18 MovieClip [__Packages.Library.Utils.Timer] Frame 0
class Library.Utils.Timer
{
var nTimeSpent, nMethod, nFrameRate, bTimerActive, __get__Method, __get__FrameRate;
function Timer () {
nTimeSpent = 0;
nMethod = TIMER_COUNT_UP;
nFrameRate = BASE_FRAMERATE;
bTimerActive = false;
}
function doEnterFrame() {
if (bTimerActive) {
nTimeSpent = nTimeSpent + nMethod;
}
}
function doStartTimer() {
bTimerActive = true;
}
function doStopTimer() {
bTimerActive = false;
}
function setTime(__nTime) {
nTimeSpent = __nTime * (nFrameRate / 1000);
}
function doResetTime() {
nTimeSpent = 0;
}
function get Time() {
return(Math.round(nTimeSpent / (nFrameRate / 1000)));
}
function get Frames() {
return(nTimeSpent);
}
function set Method(__n) {
nMethod = __n;
//return(__get__Method());
}
function set FrameRate(__n) {
nFrameRate = __n;
//return(__get__FrameRate());
}
static var TIMER_COUNT_UP = 1;
static var TIMER_COUNT_DOWN = -1;
static var BASE_FRAMERATE = 30;
}
Symbol 1334 MovieClip [__Packages.LevelDesignItem] Frame 0
class LevelDesignItem
{
var mcRef, nType, bRandomAssignPass, bRandomAssignForce, nWait;
function LevelDesignItem (_mcRef, _nType) {
mcRef = _mcRef;
nType = _nType;
mcRef._visible = false;
bRandomAssignPass = false;
bRandomAssignForce = false;
nWait = nWAIT_TIME;
LevelManager.__get__Instance().doAddListener(this);
}
function doEnterFrame() {
nWait--;
if (nWait == 0) {
if (!bRandomAssignPass) {
doSearchTargeted();
} else {
doAssignRandom();
}
}
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
mcRef.swapDepths(LevelManager.__get__Instance().__get__RemoveDepth());
mcRef.removeMovieClip();
delete mcRef;
}
function doAssignRandom() {
var _local3 = new Array();
var _local2 = LevelManager.__get__Instance().__get__Blocks();
for (var _local4 in _local2) {
if (!_local2[_local4].NeverDies) {
if ((!_local2[_local4].BonusAssigned) || (bRandomAssignForce)) {
_local3.push(_local2[_local4]);
}
}
}
if (_local3.length > 0) {
var _local5 = Library.Utils.MoreMath.getRandomRange(0, _local3.length - 1);
_local3[_local5].doAddItem(nType);
doDestroy();
} else {
bRandomAssignForce = true;
bRandomAssignPass = true;
nWait = 1;
}
}
function doSearchTargeted() {
var _local3 = LevelManager.__get__Instance().__get__Blocks();
var _local4 = false;
for (var _local5 in _local3) {
if (!_local3[_local5].NeverDies) {
var _local2 = _local3[_local5].Bounds;
if ((mcRef._x > _local2.xMin) && (mcRef._x < _local2.xMax)) {
if ((mcRef._y > _local2.yMin) && (mcRef._y < _local2.yMax)) {
_local3[_local5].doAddItem(nType);
_local4 = true;
}
}
}
}
if (!_local4) {
bRandomAssignPass = true;
nWait = 1;
} else {
doDestroy();
}
}
static var nBONUS_FAIRY_CROWN = 1;
static var sLINKAGE_BONUS_FAIRY_CROWN = "mcFairyCrown";
static var nBONUS_CC_POWERSUIT = 2;
static var sLINKAGE_BONUS_CC_POWERSUIT = "mcCCPowerSuit";
static var nBONUS_CC_SYMBOL = 3;
static var sLINKAGE_BONUS_CC_SYMBOL = "mcCCSymbol";
static var nPOWERDOWN_ROCKET = 4;
static var sLINKAGE_POWERDOWN_ROCKET = "mcRocket";
static var nBONUS_TRAMPOLINE = 5;
static var sLINKAGE_BONUS_TRAMPOLINE = "mcTrampoline";
static var nPOWERDOWN_JACKBOX = 6;
static var sLINKAGE_POWERDOWN_JACKBOX = "mcJackBox";
static var nBONUS_CHEWINGGUM = 7;
static var sLINKAGE_BONUS_CHEWINGGUM = "mcChewingGum";
static var nBONUS_MAGICWAND = 8;
static var sLINKAGE_BONUS_MAGICWAND = "mcMagicWand";
static var nPOWERDOWN_PING = 9;
static var sLINKAGE_POWERDOWN_PING = "mcPING";
static var nPOWERDOWN_ROCKET_SPEED = 4;
static var nPOWERDOWN_ROCKET_TIME = 10000;
static var nBONUS_TRAMPOLINE_TIME = 15000;
static var nPOWERDOWN_JACKBOX_TIME = 15000;
static var nPOWERDOWN_PIXIES_TIME = 30000;
static var nBONUS_CHEWINGGUM_HITS = 5;
static var nBONUS_MAGICWAND_SHOTS = 5;
static var nBONUS_CC_SYMBOL_POINTS = 25000;
static var nWAIT_TIME = 1;
}
Symbol 1335 MovieClip [__Packages.MainBall] Frame 0
class MainBall extends Ball
{
var nCurrentCombo, setState, isStateComplete, __get__CurrentState, __get__Ref;
function MainBall (_mcRef) {
super(_mcRef);
nCurrentCombo = 0;
setState(sSTATE_APPEARS);
}
function doAppears() {
if (isStateComplete()) {
setState(Ball.sSTATE_LAUNCH_WAIT);
}
}
function doSpecificTrailStar() {
var _local2;
switch (__get__CurrentState()) {
case Ball.sSTATE_MOVING :
_local2 = "Normal";
break;
case Ball.sSTATE_MOVING_PASSTHROUGH :
_local2 = "Suit";
break;
case Ball.sSTATE_MOVING_CHEWINGGUM :
_local2 = "Gum";
break;
case Ball.sSTATE_MOVING_PASSPLUSGUM :
_local2 = "Gum";
}
if (_local2 != undefined) {
LevelManager.__get__Instance().doNewTimmyTrail(__get__Ref()._x, __get__Ref()._y, _local2);
}
}
function onPaddleTouch(_oPaddle, _bBounceTop) {
nCurrentCombo = 0;
if ((_oPaddle instanceof PlayerPaddle) && (_bBounceTop)) {
switch (_oPaddle.__get__CurrentState()) {
case PlayerPaddle.sPADDLE_STATE_NORMAL :
case PlayerPaddle.sPADDLE_STATE_NORMAL_BOUNCE :
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Timmy_Bounce_Normal.mp3");
break;
case PlayerPaddle.sPADDLE_STATE_SHORT :
case PlayerPaddle.sPADDLE_STATE_SHORT_BOUNCE :
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Timmy_Bounce_JackBox.mp3");
break;
case PlayerPaddle.sPADDLE_STATE_LARGE :
case PlayerPaddle.sPADDLE_STATE_LARGE_BOUNCE :
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Timmy_Bounce_Trampoline.mp3");
}
}
}
function onBounceSides() {
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Timmy_Bounce_Sides.mp3", 35);
}
function onBlockDestroy() {
nCurrentCombo++;
Game.__get__Instance().__get__Status().onNewCombo(nCurrentCombo);
}
static var sSTATE_APPEARS = "Appears";
}
Symbol 1336 MovieClip [__Packages.PixiesGroup] Frame 0
class PixiesGroup
{
var oPixies1, oPixies2, bActive;
function PixiesGroup (_mcPixies1, _mcPixies2) {
_mcPixies1._x = nPOS_X_PIXIE_1;
_mcPixies1._y = nPOS_Y_PIXIE_1;
_mcPixies2._x = nPOS_X_PIXIE_2;
_mcPixies2._y = nPOS_Y_PIXIE_2;
oPixies1 = new Pixies(_mcPixies1);
oPixies2 = new Pixies(_mcPixies2);
bActive = false;
}
function doShow() {
oPixies1.doShow();
oPixies2.doShow();
bActive = true;
LevelManager.__get__Instance().doAddPaddle(oPixies1);
LevelManager.__get__Instance().doAddPaddle(oPixies2);
}
function doHide() {
oPixies1.doHide();
oPixies2.doHide();
bActive = false;
LevelManager.__get__Instance().doRemovePaddle(oPixies1);
LevelManager.__get__Instance().doRemovePaddle(oPixies2);
}
function doDestroy() {
super.doDestroy();
}
function get Active() {
return(bActive);
}
var nPOS_X_PIXIE_1 = 125;
var nPOS_Y_PIXIE_1 = 350;
var nPOS_X_PIXIE_2 = 325;
var nPOS_Y_PIXIE_2 = 350;
}
Symbol 1337 MovieClip [__Packages.Pixies] Frame 0
class Pixies extends Paddle
{
var setState, nInitialX, mcRef, nInitialY, nSpeedX, nSpeedY, nMinX, nMaxX, nMinY, nMaxY, __get__CurrentState, isStateComplete, nRandomChangeDelay, nDirectionX, nDirectionY;
function Pixies (_mcRef) {
super(_mcRef);
setState(sPADDLE_PIXIES_STATE_HIDDEN);
nInitialX = mcRef._x;
nInitialY = mcRef._y;
nSpeedX = 0;
nSpeedY = 0;
nMinX = nInitialX - (nZONE_WIDTH / 2);
nMaxX = nInitialX + (nZONE_WIDTH / 2);
nMinY = nInitialY - (nZONE_HEIGHT / 2);
nMaxY = nInitialY + (nZONE_HEIGHT / 2);
setState("Hidden");
}
function doShow() {
if (__get__CurrentState() == sPADDLE_PIXIES_STATE_HIDDEN) {
setState(sPADDLE_PIXIES_STATE_IN);
mcRef._x = nInitialX;
mcRef._y = nInitialY;
doRandomDirectionChange();
}
}
function doHide() {
if (__get__CurrentState() == sPADDLE_PIXIES_STATE_IDLE) {
setState(sPADDLE_PIXIES_STATE_OUT);
}
}
function doDestroy() {
super.doDestroy();
}
function doIn() {
if (isStateComplete()) {
setState(sPADDLE_PIXIES_STATE_IDLE);
}
}
function doOut() {
if (isStateComplete()) {
setState(sPADDLE_PIXIES_STATE_HIDDEN);
}
}
function doIdle() {
doMove();
nRandomChangeDelay--;
if (nRandomChangeDelay == 0) {
doRandomDirectionChange();
}
}
function doRandomDirectionChange() {
nDirectionX = Library.Utils.MoreMath.getRandomRange(0, 1);
if (nDirectionX == 0) {
nDirectionX = -1;
}
nDirectionY = Library.Utils.MoreMath.getRandomRange(0, 1);
if (nDirectionY == 0) {
nDirectionY = -1;
}
nRandomChangeDelay = Library.Utils.MoreMath.getRandomRange(nDIR_CHANGE_DELAY_MIN, nDIR_CHANGE_DELAY_MAX);
}
function doMove() {
if ((mcRef._x < nMinX) && (nDirectionX == -1)) {
nDirectionX = 1;
} else if ((mcRef._x > nMaxX) && (nDirectionX == 1)) {
nDirectionX = -1;
}
if ((mcRef._y < nMinY) && (nDirectionY == -1)) {
nDirectionY = 1;
} else if ((mcRef._y > nMaxY) && (nDirectionY == 1)) {
nDirectionY = -1;
}
var _local2 = nDirectionX * nSPEED;
var _local3 = nDirectionY * nSPEED;
nSpeedX = Library.Utils.MoreMath.getReachNum(nSpeedX, _local2, nCHANGE);
nSpeedY = Library.Utils.MoreMath.getReachNum(nSpeedY, _local3, nCHANGE);
mcRef._x = mcRef._x + nSpeedX;
mcRef._y = mcRef._y + nSpeedY;
}
function doLoadStateAction() {
super.doLoadStateAction();
if (__get__CurrentState() == sPADDLE_PIXIES_STATE_HIDDEN) {
mcRef._visible = false;
} else {
mcRef._visible = true;
}
}
static var sPADDLE_PIXIES_STATE_HIDDEN = "Hidden";
static var sPADDLE_PIXIES_STATE_IN = "In";
static var sPADDLE_PIXIES_STATE_OUT = "Out";
static var sPADDLE_PIXIES_STATE_IDLE = "Idle";
static var nSPEED = 1.2;
static var nCHANGE = 0.3;
static var nZONE_HEIGHT = 35;
static var nZONE_WIDTH = 150;
static var nDIR_CHANGE_DELAY_MIN = 90;
static var nDIR_CHANGE_DELAY_MAX = 240;
}
Symbol 1338 MovieClip [__Packages.FallingItem] Frame 0
class FallingItem extends BaseObject
{
var setState, nItemType, nSpeedX, nSpeedY, isStateComplete, mcRef, getCollideBottom, getCollideRight, getCollideLeft, __get__StateBounds;
function FallingItem (_mcRef, _nItemType) {
super(_mcRef);
setState(sSTATE_FALLING);
nItemType = _nItemType;
nSpeedX = Library.Utils.MoreMath.getRandomRange(-nINITIAL_SPEED_X_MAX, nINITIAL_SPEED_X_MAX);
nSpeedY = Library.Utils.MoreMath.getRandomRange(nINITIAL_SPEED_Y_MIN, nINITIAL_SPEED_Y_MAX);
LevelManager.__get__Instance().doAddListener(this);
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
function get ItemType() {
return(nItemType);
}
function doCatched() {
if (isStateComplete()) {
doDestroy();
}
}
function doFalling() {
if (mcRef._y < LevelManager.nLIMITS_FLOOR) {
nSpeedY = nSpeedY + nACCELERATION;
if (nSpeedY > nMAX_FALL_SPEED) {
nSpeedY = nMAX_FALL_SPEED;
}
var _local2 = mcRef._x + nSpeedX;
var _local3 = mcRef._y + nSpeedY;
_local2 = doCheckSides(nSpeedX, _local2);
mcRef._x = _local2;
mcRef._y = _local3;
doCheckPaddle();
} else {
LevelManager.__get__Instance().onItemLost(this);
doDestroy();
}
}
function doCheckPaddle() {
var _local2 = LevelManager.__get__Instance().__get__MainPaddle();
var _local3 = (getCollideBottom(_local2) || (getCollideRight(_local2))) || (getCollideLeft(_local2));
if (_local3) {
LevelManager.__get__Instance().onPlayerCatchItem(this);
setState(sSTATE_CATCHED);
}
}
function doCheckSides(_nSpeedX, _nFutureX) {
switch (Library.Utils.MoreMath.getPolarity(_nSpeedX)) {
case 1 :
if ((_nFutureX + __get__StateBounds().xMax) > LevelManager.nLIMITS_RIGHT) {
onBounceX();
_nFutureX = LevelManager.nLIMITS_RIGHT - __get__StateBounds().xMax;
}
break;
case -1 :
if ((_nFutureX + __get__StateBounds().xMin) >= LevelManager.nLIMITS_LEFT) {
break;
}
onBounceX();
_nFutureX = LevelManager.nLIMITS_LEFT - __get__StateBounds().xMin;
}
return(_nFutureX);
}
function onBounceX() {
nSpeedX = nSpeedX * -1;
}
static var sSTATE_FALLING = "Falling";
static var sSTATE_CATCHED = "Catched";
static var nINITIAL_SPEED_X_MAX = 3;
static var nINITIAL_SPEED_Y_MIN = -4;
static var nINITIAL_SPEED_Y_MAX = 2;
static var nSPEED_X_LOSS = 0.15;
static var nACCELERATION = 0.2;
static var nMAX_FALL_SPEED = 14;
}
Symbol 1339 MovieClip [__Packages.Block] Frame 0
class Block extends BaseObject
{
var nCurrentStep, aItems, setState, nNeverDiesMaxStep, bLevelEnded, doBounce, isStateComplete, mcRef, __get__Ref;
function Block (_mcRef, _nSteps) {
super(_mcRef);
nCurrentStep = _nSteps;
aItems = new Array();
if (!NeverDies) {
setState(sSTATE_IDLE + nCurrentStep);
} else {
nNeverDiesMaxStep = nNEVER_DIE_MAX_STEPS;
setState("Idle");
}
LevelManager.__get__Instance().doAddListener(this);
}
function doEnterFrame() {
super.doEnterFrame();
}
function onBoltHit() {
if (!bLevelEnded) {
onCrushed();
}
}
function onBallHit(_oBall, _nSideUsedForHit) {
if (!NeverDies) {
nCurrentStep--;
if (nCurrentStep > 0) {
setState(sSTATE_IDLE + nCurrentStep);
doBounce(nBLOCK_BOUNCE_AMPLITUDE, nBLOCK_BOUNCE_AMPLITUDE);
var _local2 = Library.Sound.SoundManager.isSoundPlaying("Block_Hit.mp3");
if (_local2.bPlaying) {
_local2.oSound.doStop();
_local2.oSound.doStart();
}
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Block_Hit.mp3", 100, 1, true);
Game.__get__Instance().__get__Status().onBlockHit();
} else {
onCrushed();
}
} else if (!(_oBall instanceof ShootingStar)) {
nNeverDiesMaxStep--;
if (nNeverDiesMaxStep > 0) {
doBounce(nBLOCK_BOUNCE_AMPLITUDE, nBLOCK_BOUNCE_AMPLITUDE);
var _local2 = Library.Sound.SoundManager.isSoundPlaying("Block_NeverDies_Hit.mp3");
if (_local2.bPlaying) {
_local2.oSound.doStop();
_local2.oSound.doStart();
}
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Block_NeverDies_Hit.mp3", 100, 1, true);
} else {
onCrushed();
}
}
}
function doAddItem(_nItemType) {
aItems.push(_nItemType);
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
function get NeverDies() {
return(nCurrentStep == Number.POSITIVE_INFINITY);
}
function get StillAlive() {
return(nCurrentStep > 0);
}
function get BonusAssigned() {
return(aItems.length != 0);
}
function doOut() {
if (isStateComplete()) {
doDestroy();
}
}
function onCrushed() {
LevelManager.__get__Instance().doPutInFront(mcRef);
setState(sSTATE_OUT);
var _local2 = Library.Sound.SoundManager.isSoundPlaying("Block_Break.mp3");
if (_local2.bPlaying) {
_local2.oSound.doStop();
_local2.oSound.doStart();
}
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Block_Break.mp3", 40, 1, true);
onReleaseBonuses();
Game.__get__Instance().__get__Status().onBlockCrushed();
LevelManager.__get__Instance().onBlockCrushed(this);
}
function onReleaseBonuses() {
if (aItems.length > 0) {
for (var _local3 in aItems) {
var _local2 = aItems[_local3];
LevelManager.__get__Instance().doAddItemAt(__get__Ref()._x, __get__Ref()._y, _local2);
}
var _local4 = Library.Sound.SoundManager.isSoundPlaying("Bonus_Release.mp3");
if (_local4.bPlaying) {
_local4.oSound.doStop();
}
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bonus_Release.mp3", 100, 1, true);
}
}
static var sSTATE_IDLE = "Idle";
static var sSTATE_OUT = "Out";
static var nBLOCK_BOUNCE_AMPLITUDE = 35;
static var nNEVER_DIE_MAX_STEPS = 6;
}
Symbol 1340 MovieClip [__Packages.Bolt] Frame 0
class Bolt extends BaseObject
{
var setState, nSpeed, mcRef, isStateComplete, getCollideTop, __get__Ref, __get__StateBounds;
function Bolt (_mcRef) {
super(_mcRef);
setState(sSTATE_FLYING);
nSpeed = nBOLT_SPEED;
var _local3 = Library.Sound.SoundManager.isSoundPlaying("Bolt_Shot.mp3");
if (_local3.bPlaying) {
_local3.oSound.doStop();
_local3.oSound.doStart();
}
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bolt_Shot.mp3", 75, 1, true);
LevelManager.__get__Instance().doAddListener(this);
}
function setPosition(_nPosX, _nPosY) {
mcRef._x = _nPosX;
mcRef._y = _nPosY;
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
function doExplode() {
if (isStateComplete()) {
doDestroy();
}
}
function doFlying() {
var _local2 = mcRef._y - nSpeed;
_local2 = doCheckBlocks(_local2);
_local2 = doCheckTop(_local2);
mcRef._y = _local2;
}
function doCheckBlocks(_nFutureY) {
var _local3 = LevelManager.__get__Instance().getNearBlocksForObject(this);
for (var _local6 in _local3) {
if (getCollideTop(_local3[_local6], __get__Ref()._x, _nFutureY)) {
_local3[_local6].onBoltHit();
var _local4 = true;
if (_local4) {
_nFutureY = _local3[_local6].Bounds.yMax - __get__StateBounds().yMin;
}
setState(sSTATE_EXPLODE);
var _local2 = Library.Sound.SoundManager.isSoundPlaying("Bolt_Explode.mp3");
if (_local2.bPlaying) {
_local2.oSound.doStop();
_local2.oSound.doStart();
}
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "Bolt_Explode.mp3", 60, 1, true);
}
}
return(_nFutureY);
}
function doCheckTop(_nFutureY) {
if ((_nFutureY + __get__StateBounds().yMin) < LevelManager.nLIMITS_CEIL) {
_nFutureY = LevelManager.nLIMITS_CEIL - __get__StateBounds().yMin;
setState(sSTATE_EXPLODE);
}
return(_nFutureY);
}
static var sSTATE_FLYING = "Flying";
static var sSTATE_EXPLODE = "Explode";
static var nBOLT_SPEED = 6;
}
Symbol 1341 MovieClip [__Packages.TrailTimmy] Frame 0
class TrailTimmy extends BaseObject
{
var mcRef, setState, isStateComplete;
function TrailTimmy (__mcRef, _sAddonState) {
super(__mcRef);
if (_sAddonState == undefined) {
doDestroy();
} else {
nSTATICRotation = nSTATICRotation + 30;
mcRef._rotation = nSTATICRotation;
setState("Out" + _sAddonState);
LevelManager.__get__Instance().doAddListener(this);
}
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
function doOutSuit() {
doOut();
}
function doOutNormal() {
doOut();
}
function doOutGum() {
doOut();
}
function doOut() {
if (isStateComplete()) {
doDestroy();
}
}
static var nSTATICRotation = 0;
}
Symbol 1342 MovieClip [__Packages.TrailStars] Frame 0
class TrailStars extends BaseObject
{
var setState, isStateComplete;
function TrailStars (__mcRef) {
super(__mcRef);
setState("Out");
LevelManager.__get__Instance().doAddListener(this);
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
function doOut() {
if (isStateComplete()) {
doDestroy();
}
}
}
Symbol 1343 MovieClip [__Packages.EndingWord] Frame 0
class EndingWord extends BaseObject
{
var setState, mcRef, isStateComplete;
function EndingWord (__mcRef) {
super(__mcRef);
setState("Out");
var _local3 = Library.Utils.MoreMath.getRandomRange(1, 19);
mcRef.mcState.mcWord.gotoAndStop(_local3);
LevelManager.__get__Instance().doAddListener(this);
}
function doDestroy() {
LevelManager.__get__Instance().doRemoveListener(this);
super.doDestroy();
}
function doOut() {
if (isStateComplete()) {
doDestroy();
}
}
}
Symbol 12 MovieClip [__Packages.Library.Utils.Tools] Frame 0
class Library.Utils.Tools
{
function Tools () {
}
static function isItemInArray(__aArray, __oItem) {
var _local2 = false;
for (var _local4 in __aArray) {
if (__aArray[_local4] == __oItem) {
_local2 = true;
}
}
return(_local2);
}
static function doCopyArray(__aArraySource) {
var _local3 = new Array();
var _local1 = 0;
_local1 = 0;
while (_local1 < __aArraySource.length) {
if (__aArraySource[_local1] instanceof Array) {
_local3.push(doCopyArray(__aArraySource[_local1]));
} else {
_local3.push(__aArraySource[_local1]);
}
_local1++;
}
return(_local3);
}
static function getFormatedNumber(__nNumber, __nMinimumChar) {
return(returnFormatedNumber(__nNumber, __nMinimumChar));
}
static function returnFormatedNumber(__nNumber, __nMinimumChar) {
var _local1 = String(__nNumber);
while (_local1.length < __nMinimumChar) {
_local1 = "0" + _local1;
}
var _local3 = new Array();
var _local6 = _local1.length - 1;
var _local2;
_local2 = 0;
while (_local2 <= _local6) {
var _local5 = _local1.charAt(_local2);
_local3.push(_local5);
_local2++;
}
_local1 = "";
var _local4 = 0;
_local2 = _local3.length - 1;
while (_local2 >= 0) {
if (((_local4 % 3) == 0) && (_local4 != 0)) {
_local1 = " " + _local1;
}
_local1 = _local3[_local2] + _local1;
_local4++;
_local2--;
}
return(_local1);
}
static function getFormatedTime(__nTime, __bIncludeMilliseconds) {
if (__bIncludeMilliseconds == undefined) {
__bIncludeMilliseconds = false;
}
var _local6 = false;
if (__nTime < 0) {
_local6 = true;
__nTime = Math.abs(__nTime);
}
var _local4 = Math.floor(__nTime / 1000);
var _local3;
if (__bIncludeMilliseconds) {
var _local5;
if (__nTime >= 1000) {
_local5 = __nTime % (_local4 * 1000);
} else {
_local5 = __nTime;
}
_local3 = String(_local5).substr(0, 2);
if (_local3.length <= 1) {
_local3 = "0" + _local3;
}
}
var _local8 = Math.floor(_local4 / 60);
var _local9 = Math.floor(_local4 % 60);
var _local11 = "";
var _local10 = "";
if (_local9 < 10) {
_local10 = "0";
}
if (_local8 < 10) {
_local11 = "0";
}
var _local2 = String((((_local11 + _local8) + ":") + _local10) + _local9);
if (__bIncludeMilliseconds) {
_local2 = _local2 + (":" + _local3);
}
if (_local6) {
_local2 = "-" + _local2;
}
return(_local2);
}
}
Symbol 1344 MovieClip [__Packages.PlayerStatus] Frame 0
class PlayerStatus
{
var nScore, nShownScore, nMaxCombo, nLevelToPlay, nRemainingLives, mcHUD;
function PlayerStatus () {
nScore = 0;
nShownScore = 0;
nMaxCombo = 0;
nLevelToPlay = 1;
nRemainingLives = nTOTAL_LIVES;
doUpdateStaticHud();
doUpdatePoints();
Main.__get__Instance().doAddListener(this);
}
function doEnterFrame() {
if (nShownScore != nScore) {
doUpdatePoints();
}
}
function setHud(_mcHUD) {
mcHUD = _mcHUD;
doUpdateStaticHud();
doUpdatePoints();
}
function onGainLive() {
nRemainingLives++;
doUpdateStaticHud();
}
function onLoseLive() {
nRemainingLives--;
doUpdateStaticHud();
}
function getPlayerCanContinue() {
return(nRemainingLives >= 0);
}
function onPlayerCompleteLevel(_nTimeRemaining) {
doAddPoints(nPOINTS_LEVEL_END + (_nTimeRemaining * nPOINTS_PER_MILLISECONDS));
nLevelToPlay++;
doUpdateStaticHud();
}
function getIsMoreLevelToPlay() {
return(nLevelToPlay <= nTOTAL_LEVELS);
}
function getLevelToPlay() {
return(nLevelToPlay);
}
function onNewCombo(_nCombo) {
var _local2 = nMaxCombo;
nMaxCombo = Math.max(nMaxCombo, _nCombo);
doUpdateStaticHud();
doAddPoints(nPOINTS_COMBO_LEVEL * (nMaxCombo - _local2));
}
function doAddPoints(_nPoints) {
nScore = nScore + Math.floor(_nPoints);
}
function onBlockHit() {
doAddPoints(nPOINTS_BLOCK_HIT);
}
function onBlockCrushed() {
doAddPoints(nPOINTS_BLOCK_CRUSH);
}
function onCatchBonus() {
doAddPoints(nPOINTS_BONUS);
}
function doDestroy() {
Main.__get__Instance().doRemoveListener(this);
delete mcHUD;
}
function get SpeedAddon() {
return(aSPEED_ADDONS[nLevelToPlay - 1]);
}
function get Score() {
return(Math.floor(nScore));
}
function doUpdateStaticHud() {
mcHUD.txtLives.text = Math.max(0, nRemainingLives);
mcHUD.txtCombo.text = Library.Utils.Tools.getFormatedNumber(nMaxCombo, 3);
mcHUD.txtLevel.text = Library.Utils.Tools.getFormatedNumber(Math.min(nTOTAL_LEVELS, nLevelToPlay), 2);
}
function doUpdatePoints() {
nScore = Math.floor(nScore);
if ((nShownScore + nMAX_SCORE_GAP) < nScore) {
var _local2 = nScore - nShownScore;
nShownScore = nShownScore + Math.floor(_local2 * 0.666666666666667);
} else {
nShownScore = Library.Utils.MoreMath.getReachNum(nShownScore, nScore, nSCORE_CHANGE_RATE);
}
nShownScore = Math.floor(nShownScore);
mcHUD.txtScore.text = Library.Utils.Tools.getFormatedNumber(nShownScore, 6);
}
static var nTIME_FOR_EXTRA_POINTS = 30000;
static var aSPEED_ADDONS = [1.25, 1.5, 1.75, 2, 2.25, 2.25, 2.5, 2.5, 2.75, 2.75, 3, 3, 3.25, 3.25, 3.5, 3.5, 3.75, 3.75, 4, 4];
static var nTOTAL_LEVELS = 20;
static var nTOTAL_LIVES = 5;
static var nSCORE_CHANGE_RATE = 15;
static var nMAX_SCORE_GAP = 280;
static var nPOINTS_COMBO_LEVEL = 250;
static var nPOINTS_BLOCK_HIT = 10;
static var nPOINTS_BLOCK_CRUSH = 50;
static var nPOINTS_BONUS = 150;
static var nPOINTS_LEVEL_END = 750;
static var nPOINTS_PER_MILLISECONDS = 0.25;
}
Symbol 15 MovieClip [__Packages.Library.BasicPopUp] Frame 0
class Library.BasicPopUp extends Library.State
{
var bComplexAnim, setState, __get__CurrentState, oListener, mcRef, __get__Listener, isStateComplete;
function BasicPopUp (__mcRef, __bComplexAnim) {
super(__mcRef);
if (__bComplexAnim == undefined) {
__bComplexAnim = false;
}
bComplexAnim = __bComplexAnim;
setState("Hidden");
}
function doHide() {
setState("Hidden");
}
function doClose() {
if (__get__CurrentState() == "Idle") {
setState("Out");
}
}
function doOpen() {
setState("In");
}
function doDestroy() {
delete oListener;
delete mcRef;
}
function get Ref() {
if (bComplexAnim) {
return(mcRef.mcState);
}
return(mcRef.mcState.mcBox);
}
function set Listener(__o) {
oListener = __o;
//return(__get__Listener());
}
function doIn() {
if (isStateComplete()) {
setState("Idle");
}
}
function doOut() {
if (isStateComplete()) {
setState("Hidden");
}
}
function doLoadStateAction() {
mcRef.mcState.btnBlock.onRelease = function () {
};
mcRef.mcState.btnBlock.useHandCursor = false;
if (__get__CurrentState() != "Hidden") {
oListener.onPopUpEvent(NEED_UPDATE, this);
}
}
static var NEED_UPDATE = 1;
}
Symbol 1345 MovieClip [__Packages.EE] Frame 0
class EE
{
var mcRef, nWord;
function EE (__mcRef) {
mcRef = __mcRef;
mcRef.stop();
mcRef.mcWord.stop();
LevelManager.__get__Instance().doAddListener(this);
}
function doStart() {
if (mcRef._currentframe == 1) {
nWord = Library.Utils.MoreMath.getRandomRange(1, 6);
mcRef.mcWord.gotoAndStop(nWord);
mcRef.play();
Library.Sound.SoundManager.doPlaySoundInCat(Main.sSOUND_CAT_SOUND, "EE.mp3");
}
}
function doDestroy() {
delete mcRef;
}
}
Symbol 1346 MovieClip [__Packages.NickHS] Frame 0
class NickHS
{
static var oNickHS;
var bHSAvailable, G_TestHighScore, bSubmitHS, bGetHS, G_GameID, mcHSZone, G_NoTxtField, G_NameTxtField, G_ScoreTxtField;
function NickHS (_sGameID, _bHSAvailable, _bTestHighScore) {
bHSAvailable = _bHSAvailable;
G_TestHighScore = _bTestHighScore;
bSubmitHS = false;
bGetHS = false;
G_GameID = _sGameID;
mcHSZone = undefined;
initHiScores();
if (G_TestHighScore == true) {
_global.gProxyObj.setServer("www.nick.com");
_global.gProxyObj.setScreenName("SbkRR");
_global.gProxyObj.setIsLoggedIn(true);
}
oNickHS = this;
}
function doHSInit() {
initHiScores();
}
function doSubmitHS() {
bSubmitHS = true;
}
function doViewHS() {
bGetHS = true;
}
function setHSBoard(_mcRef) {
mcHSZone = _mcRef;
G_NoTxtField = mcHSZone.txtHSNumber;
G_NameTxtField = mcHSZone.txtHSName;
G_ScoreTxtField = mcHSZone.txtHSScore;
}
static function get Instance() {
return(oNickHS);
}
function getIsLoggedIn() {
var _local2 = true;
if (_global.gProxyObj != undefined) {
_local2 = _global.gProxyObj.getIsLoggedIn();
}
return(_local2);
}
function getScores() {
if (_global.gProxyObj == undefined) {
listScores();
} else {
_global.gProxyObj.getScores(cbFunc2);
}
}
function submitScore(theScore) {
G_NoTxtField.text = "";
G_NameTxtField.text = "The high score list is updating!";
G_ScoreTxtField.text = "";
_global.gProxyObj.submitScore(theScore, cbFunc);
_global.ipbSend();
}
function initHiScores() {
_global.gProxyObj.setGame_Id(G_GameID);
}
function getScoreString() {
var _local11 = "Oops! The high score list is not available right now!";
if (_global.gProxyObj != undefined) {
var _local10 = _global.gProxyObj.getScoreCount();
if (_local10 > 0) {
var _local3;
var _local4;
var _local9;
var _local8;
_local11 = "";
var _local5 = "";
var _local6 = "";
var _local7 = "";
_local3 = 0;
while (_local3 < _local10) {
_local4 = _global.gProxyObj.getScoreItem(_local3);
_local9 = _local4[0];
_local8 = Library.Utils.Tools.returnFormatedNumber(_local4[1]);
_local5 = _local5 + ((_local3 + 1) + newline);
_local6 = _local6 + (_local9 + newline);
_local7 = _local7 + ((_local8 + " pts") + newline);
_local3++;
}
G_NoTxtField.text = _local5;
G_NameTxtField.text = _local6;
G_ScoreTxtField.text = _local7;
} else {
G_NameTxtField.text = "Oops! The high score list is not available right now!";
}
} else {
G_NameTxtField.text = "Oops! The high score list is not available right now!";
}
return(_local11);
}
function listScores() {
getScoreString();
}
function cbFunc(thisBool) {
if (thisBool) {
Instance.listScores();
} else {
Instance.G_NameTxtField.text = "Oops! The high score list is not available right now!";
}
}
function cbFunc2(thisBool) {
if (thisBool) {
Instance.listScores();
} else {
Instance.G_NameTxtField.text = "Oops! The high score list is not available right now!";
}
}
}
Symbol 1347 MovieClip [__Packages.Intro] Frame 0
class Intro extends Library.State
{
var setState, isStateComplete, mcRef;
function Intro (_mcRef) {
super(_mcRef);
setState(sSTATE_FIRST);
Main.__get__Instance().doAddListener(this);
}
function doFirst() {
if (isStateComplete()) {
Main.__get__Instance().onIntroFirstPartOver();
setState(sSTATE_SECOND);
}
}
function doSecond() {
if (isStateComplete()) {
mcRef.mcState.stop();
Main.__get__Instance().doRemoveListener(this);
}
}
static var sSTATE_FIRST = "First";
static var sSTATE_SECOND = "Second";
}
Symbol 1348 MovieClip [__Packages.TitleCard] Frame 0
class TitleCard extends Library.State
{
var setState, isStateComplete, mcRef;
function TitleCard (_mcRef) {
super(_mcRef);
setState(sSTATE_IN);
Main.__get__Instance().doAddListener(this);
}
function doIn() {
if (isStateComplete()) {
setState(sSTATE_IDLE);
}
}
function doIdle() {
if (isStateComplete()) {
setState(sSTATE_OUT);
}
}
function doOut() {
if (isStateComplete()) {
Main.__get__Instance().onTitleCardComplete();
Main.__get__Instance().doRemoveListener(this);
delete mcRef;
}
}
static var sSTATE_IN = "In";
static var sSTATE_IDLE = "Idle";
static var sSTATE_OUT = "Out";
}
Symbol 1 MovieClip [__Packages.LibCompileHookComponent] Frame 0
class LibCompileHookComponent extends MovieClip
{
function LibCompileHookComponent () {
super();
}
function LibCompileHook() {
}
}
Symbol 8 MovieClip [__Packages.Library.Utils.Debug] Frame 0
class Library.Utils.Debug
{
static var lc;
function Debug () {
}
static function clear() {
lc = new LocalConnection();
lc.send("trace", "clear");
}
static function setLevel(pLvl) {
level = pLvl;
}
static function trace(pMsg, pLvl) {
var _local1;
if (pLvl != undefined) {
_local1 = pLvl;
} else {
_local1 = level;
}
lc = new LocalConnection();
lc.send("trace", "trace", pMsg, _local1);
}
static function traceObject(o, pRecurseDepth, pLvl, pIndent) {
var _local7;
var _local5;
var _local6;
if (pLvl != undefined) {
_local6 = pLvl;
} else {
_local6 = level;
}
if (pRecurseDepth == undefined) {
_local7 = 0;
} else {
_local7 = pRecurseDepth;
}
if (pIndent == undefined) {
_local5 = 0;
} else {
_local5 = pIndent;
}
for (var _local8 in o) {
var _local3 = "";
var _local1 = 0;
while (_local1 < _local5) {
_local3 = _local3 + " ";
_local1++;
}
var _local2 = o[_local8].toString();
if (o[_local8] instanceof Array) {
_local2 = "[Array]";
}
if (_local2 == "[object Object]") {
_local2 = "[Object]";
}
trace(((_local3 + _local8) + ": ") + _local2, _local6);
if (_local7 > 0) {
traceObject(o[_local8], _local7 - 1, _local6, _local5 + 1);
}
}
}
static var level = 0;
static var DEBUG = 0;
static var INFO = 1;
static var WARN = 2;
static var ERROR = 3;
static var FATAL = 4;
}
Symbol 13 MovieClip [__Packages.Library.Utils.XmlTool] Frame 0
class Library.Utils.XmlTool
{
var xmlData, sXmlFileName, bNoLoad, oListener;
function XmlTool (_sXmlName) {
if (_sXmlName.length != undefined) {
xmlData = new XML();
sXmlFileName = _sXmlName;
xmlData.ignoreWhite = true;
xmlData.onLoad = Library.Utils.Delegate.create(this, doInformListener);
xmlData.load(sXmlFileName);
bNoLoad = false;
} else {
bNoLoad = true;
}
}
function doSetListener(__oListener) {
oListener = __oListener;
}
function doInformListener(__bSuccess) {
oListener.onXMLLoadComplete(this, __bSuccess);
}
function isLoaded() {
var _local2 = false;
if (bNoLoad || ((xmlData.getBytesLoaded() >= xmlData.getBytesTotal()) && (xmlData.getBytesTotal() > 2))) {
_local2 = true;
}
return(_local2);
}
function getSubXml(_sNodeName, _xmlRef) {
var _local2 = new XMLNode();
if (isLoaded()) {
var _local5 = xmlData;
if (_xmlRef != undefined) {
_local5 = _xmlRef;
}
var _local3 = 0;
_local2 = _local5.firstChild;
while ((((_local2.nodeName != _sNodeName) && (_local2.hasChildNodes())) && (_local2 != undefined)) && (_local3 < 256)) {
_local2 = _local2.firstChild;
_local3++;
}
}
return(_local2);
}
function getLevelNode(_sNodeName, _xmlRef) {
var _local4 = new XMLNode();
if (isLoaded()) {
var _local3 = xmlData.firstChild;
if (_xmlRef != undefined) {
_local3 = _xmlRef;
}
var _local2 = 0;
while (_local2 < _local3.childNodes.length) {
if (_local3.childNodes[_local2].nodeName == _sNodeName) {
_local4 = _local3.childNodes[_local2];
_local2 = _local3.childNodes.length;
}
_local2++;
}
}
return(_local4);
}
function getLevelNodeData(_sNodeName, _xmlRef) {
var _local4 = new String();
if (isLoaded()) {
var _local2 = 0;
while (_local2 < _xmlRef.childNodes.length) {
if (_xmlRef.childNodes[_local2].nodeName == _sNodeName) {
_local4 = _xmlRef.childNodes[_local2].childNodes[0].nodeValue;
_local2 = _xmlRef.childNodes.length;
}
_local2++;
}
}
return(_local4);
}
function getLevelNodeAttribute(_sNodeName, _sAttributeName, _xmlRef) {
var _local4 = new String();
if (isLoaded()) {
var _local2 = 0;
while (_local2 < _xmlRef.childNodes.length) {
if (_xmlRef.childNodes[_local2].nodeName == _sNodeName) {
_local4 = _xmlRef.childNodes[_local2].attributes[_sAttributeName];
_local2 = _xmlRef.childNodes.length;
}
_local2++;
}
}
return(_local4);
}
function doDestroy() {
delete oListener;
delete xmlData;
}
function valueOf() {
return(xmlData.toString());
}
}
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 927 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Instance of Symbol 925 MovieClip in Symbol 928 MovieClip Frame 1
/* no clip actions */
Symbol 944 MovieClip Frame 1
stop();
Symbol 958 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1023 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1026 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1034 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1038 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1044 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1047 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1050 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1051 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1052 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1053 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1057 MovieClip Frame 1
stop();
Symbol 1075 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1076 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1079 MovieClip Frame 1
stop();
Symbol 1102 Button
on (release) {
_global.Main.Instance.doClickSound();
}
on (rollOver) {
_global.Main.Instance.doRollSound();
}
Symbol 1105 MovieClip Frame 1
stop();
Symbol 1134 MovieClip Frame 1
stop();
Symbol 1161 MovieClip Frame 1
_global.LevelManager.Instance.doAddShootingStar(this);
Symbol 1165 MovieClip Frame 1
_global.LevelManager.Instance.doAddBlock(this, 1);
Symbol 1168 MovieClip Frame 1
_global.LevelManager.Instance.doAddBlock(this, 1);
Symbol 1171 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nBONUS_CC_POWERSUIT);
Symbol 1173 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nBONUS_MAGICWAND);
Symbol 1177 MovieClip Frame 1
_global.LevelManager.Instance.doAddBlock(this, Number.POSITIVE_INFINITY);
Symbol 1180 MovieClip Frame 1
_global.LevelManager.Instance.doAddBlock(this, 1);
Symbol 1182 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nBONUS_FAIRY_CROWN);
Symbol 1184 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nBONUS_CC_SYMBOL);
Symbol 1185 MovieClip Frame 1
stop();
Symbol 1189 MovieClip Frame 1
_global.LevelManager.Instance.doAddBlock(this, 1);
Symbol 1191 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nBONUS_CHEWINGGUM);
Symbol 1193 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nBONUS_TRAMPOLINE);
Symbol 1194 MovieClip Frame 1
stop();
Symbol 1205 MovieClip Frame 1
_global.LevelManager.Instance.doAddBlock(this, 2);
Symbol 1208 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nPOWERDOWN_JACKBOX);
Symbol 1209 MovieClip Frame 1
stop();
Symbol 1213 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nPOWERDOWN_ROCKET);
Symbol 1214 MovieClip Frame 1
stop();
Symbol 1217 MovieClip Frame 1
LevelManager.__get__Instance().doAddLevelDesignItem(this, LevelDesignItem.nPOWERDOWN_PING);
Symbol 1218 MovieClip Frame 1
stop();
Symbol 1220 MovieClip Frame 1
stop();
Symbol 1222 MovieClip Frame 1
stop();
Symbol 1224 MovieClip Frame 1
stop();
Symbol 1226 MovieClip Frame 1
stop();
Symbol 1228 MovieClip Frame 1
stop();
Symbol 1230 MovieClip Frame 1
stop();
Symbol 1232 MovieClip Frame 1
stop();
Symbol 1234 MovieClip Frame 1
stop();
Symbol 1236 MovieClip Frame 1
stop();
Symbol 1238 MovieClip Frame 1
stop();
Symbol 1240 MovieClip Frame 1
stop();
Symbol 1242 MovieClip Frame 1
stop();
Symbol 1244 MovieClip Frame 1
stop();
Symbol 1246 MovieClip Frame 1
stop();
Symbol 1248 MovieClip Frame 1
stop();
Symbol 1250 MovieClip Frame 1
stop();