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

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

scrubbleswebloader.swf

This is the info page for
Flash #246776

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


Text

ActionScript [AS1/AS2]

Frame 1
stop(); _root.loaderConfig = "en-US"; _root.loaderConfigTest = false; _root.GetRoot = function () { return(_root.controller_mc); }; _root.LoadGame = function () { if (_root.loaderConfigTest) { Key.addListener(_root); _root.onKeyDown = function () { _root.loaderConfigTest = false; _root.LoadGame(); }; } else { _root.loadBroadcastTime = getTimer(); _root.createEmptyMovieClip("controller_mc", 1); _root.createEmptyMovieClip("brand_mc", 2); _root.createEmptyMovieClip("assets_mc", 3); _root.brand_mc.loadMovie("brand.swf"); this.onEnterFrame = function () { _root.brand_mc._visible = false; _root.brand_mc.stop(); _root.assets_mc._visible = false; _root.assets_mc.stop(); switch (_root.loaderConfig) { case "en-US" : LoadText.text = "loading ..."; break; case "fr-FR" : LoadText.text = "chargement ..."; break; default : trace(" !!! UNKNOWN LOADER LANGUAGE!"); LoadText.text = "loading ..."; } Progress.currentLoad = "brand_mc"; Progress.byteTotal = 0; Progress.onEnterFrame = mx.utils.Delegate.create(Progress, function () { var _local6 = this.byteTotal + _root[this.currentLoad].getBytesLoaded(); var _local4 = 888000 /* 0x0D8CC0 */; var _local3 = Math.min(100, int((_local6 * 100) / _local4)); if (((getTimer() - _root.loadBroadcastTime) > 1000) || (_local3 == 100)) { _root.loadBroadcastTime = getTimer(); CPachinko.UpdateLoading(_local3); } if (isNaN(_local4) || (_local4 < 4)) { return(undefined); } var _local5 = (_root[this.currentLoad].getBytesTotal() < 0) && (this.currentLoad == "brand_mc"); if ((_root[this.currentLoad].getBytesLoaded() >= _root[this.currentLoad].getBytesTotal()) && ((_root[this.currentLoad].getBytesTotal() > 0) || (_local5))) { if (!_local5) { this.byteTotal = this.byteTotal + _root[this.currentLoad].getBytesTotal(); } if (this.currentLoad == "brand_mc") { _root[this.currentLoad].removeMovieClip(); this.currentLoad = "assets_mc"; _root.assets_mc.loadMovie("assets.swf"); } else if (this.currentLoad == "assets_mc") { _root[this.currentLoad].removeMovieClip(); this.currentLoad = "controller_mc"; _root.controller_mc.loadMovie("scrubblesweb.swf"); } else if (this.currentLoad == "controller_mc") { _root.controller_mc.gotoAndStop(2); _root[this.currentLoad]._visible = true; this.currentLoad = ""; this.onEnterFrame = null; _root.gotoAndStop(2); } } Progress.Progress.gotoAndStop(_local3); }); this.onEnterFrame = null; }; } }; _root.LoadGame();
Frame 3
_root.SessionStart();
Frame 12
_root.MuteOn();
Frame 19
_root.MuteOff();
Frame 26
_root.PauseOn();
Frame 33
_root.PauseOff();
Frame 40
_root.GameMenu();
Frame 48
_root.GameContinue();
Frame 58
_root.GameStart();
Frame 66
_root.CustomReturn();
Frame 76
_root.LoadAchievement();
Symbol 4 MovieClip Frame 1
stop();
Symbol 9 MovieClip [__Packages.CPachinko] Frame 0
class CPachinko { function CPachinko () { } static function IsWaiting() { return(CWebConfig.IsPachinkoActive() && (m_state == State_Wait)); } static function MuteOn() { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CGame.Sounds != null) { CGame.Sounds.SetMute(true); GameState.boardMutBut.gotoAndStop(2); GameState.crossClip._visible = true; } } static function MuteOff() { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CGame.Sounds != null) { CGame.Sounds.SetMute(false); GameState.boardMutBut.gotoAndStop(1); GameState.crossClip._visible = false; } } static function IsMuted() { if (CGame.Sounds != null) { return(CGame.Sounds.GetMute()); } return(false); } static function MuteToggle() { (IsMuted() ? (MuteOff()) : (MuteOn())); } static function PauseOn() { GameMenu(); } static function PauseOff() { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CGame.Board != null) { CGame.Board.HideMenu(); } } static function MainMenu() { GameState.m_MainMenu = true; GameState.LoseDone(Constants.__get__WinLoseResult_MainMenu()); GameEnd(true); } static function GameMenu(i_forceMainMenu) { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if ((CGame.Board != null) && (!i_forceMainMenu)) { if (CGame.Board.m_Lost) { Core.DialogUtil.SwitchTo(Constants.Dialog_MainMenu); } else { CGame.Board.ShowMenu(); } } else { Core.DialogUtil.SwitchTo(Constants.Dialog_MainMenu); } } static function GameReady() { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CWebConfig.IsPachinkoActive()) { if (m_state != State_GameReady) { m_state = State_GameReady; var _local1; if (GameState.IsCurrentArcadeModeBall()) { _local1 = "Ball"; } else { _local1 = "Direct"; } fscommand ("GameReady", ((("<data><mode>" + _local1) + "</mode><difficulty>") + GameState.GetCurrentArcadeSetDifficulty()) + "</difficulty><startlevel>1</startlevel></data>"); } } else { GameStart(); } } static function GameStart() { if (!GameState.m_MainMenu) { m_state = State_GameStart; trace("RESTART" + CWebConfig.__get__LoseRestart()); GameState.Play(!CWebConfig.__get__LoseRestart()); } GameState.m_MainMenu = false; CGame.m_startTime = getTimer(); } static function AchievementScored(i_name) { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CWebConfig.IsAchievementActive()) { fscommand ("Game_SignalAchievement", ("<data>" + i_name) + "</data>"); } } static function DownloadDeluxe() { if (CWebConfig.IsPachinkoActive()) { fscommand ("CustomEvent", "<gamedata>DeluxeDownload</gamedata>"); } else { getURL (CWebConfig.__get__DownloadDemoUrl(), CWebConfig.__get__DownloadDemoPageSource()); } } static function BuyNow() { if (CWebConfig.IsPachinkoActive()) { fscommand ("CustomEvent", "<gamedata>DeluxeDownload</gamedata>"); } else { getURL (CWebConfig.__get__BuyNowUrl(), CWebConfig.__get__BuyNowPageSource()); } } static function ScoreSubmit() { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CWebConfig.IsPachinkoActive()) { var _local1 = 0; if (!CGame.s_CheatedThisGame) { _local1 = CGame.CurrentPlayer.m_Score; } var _local2 = CGame.GetUpTime(); fscommand ("ScoreSubmit", ((("<game><score>" + _local1) + "</score><time>") + _local2) + "</time></game>"); clearUpdate(); } } static function GameEnd(i_noRestart) { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CWebConfig.IsPachinkoActive()) { if (i_noRestart && (CWebConfig.__get__BrandName() == "Diamond")) { fscommand ("GameEnd", "<gamedata></gamedata>"); } else if (!i_noRestart) { fscommand ("GameEnd", "<gamedata></gamedata>"); } } else { GameReady(); } m_state = State_GameEnd; } static function CustomReturn() { } static function GameBreak() { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CWebConfig.IsPachinkoActive()) { var _local1 = GameState.GetBaseLevel() - 1; fscommand ("GameBreak", ("<data><breakpoint>" + _local1) + "</breakpoint></data>"); m_state = State_GameBreak; } else { GameContinue(); } } static function GameContinue(i_force) { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (((!i_force) && (CWebConfig.__get__ShowUpsell())) && ((GameState.__get__CurrentLevel() % CWebConfig.__get__ShowUpsellFreq()) == 0)) { var _local1 = CDialog(Core.DialogUtil.Push(Constants.Dialog_Upsell)); _local1.CloseEvent.PushBehaviorRunOnce(function () { CPachinko.GameContinue(true); }); } else { GameState.WinDone(Constants.__get__WinLoseResult_PlayNext()); m_state = State_GameStart; } } static function SessionStart() { m_state = State_SessionStart; CGame.LoadMonitor.OnPachinkoLoaded(); } static function SessionReady() { if (m_state != State_SessionReady) { m_state = State_SessionReady; fscommand ("SessionReady", "<data></data>"); } } static function LoadAchievement() { var _local3 = _root.LoadAchievement_Data.split(","); var _local2 = 0; while (_local2 < _local3.length) { if (_local3[_local2] == "1") { _local3[_local2] = true; } else { _local3[_local2] = false; } _local2++; } CGame.CurrentPlayer.SyncAchievements(_local3); } static function clearUpdate() { clearInterval(m_timerID); m_timerID = null; } static function UpdateScore() { if (CWebConfig.IsPachinkoActive() && (IsWaiting())) { return(undefined); } if (CBoard.G.IsPlaying()) { if (m_timerID == null) { var _local2 = CWebConfig.__get__ScoreSubmitMinWait() * 1000; if ((_local2 == undefined) || (_local2 <= 0)) { _local2 = 3000; } m_timerID = setInterval(UpdateScore, _local2); } else { var _local1 = 0; if (!CGame.s_CheatedThisGame) { _local1 = CGame.CurrentPlayer.m_Score; } var _local2 = CGame.GetUpTime(); fscommand ("ScoreBroadcast", ((("<game><score>" + _local1) + "</score><time>") + _local2) + "</time></game>"); } } else { clearUpdate(); } } static function UpdateLoading(perc) { fscommand ("LoadBroadcast", ("<data><percentcomplete>" + perc) + "</percentcomplete></data>"); } static function LoadError() { fscommand ("GameError", "load"); } static var State_Wait = 0; static var State_SessionReady = 1; static var State_SessionStart = 2; static var State_GameReady = 3; static var State_GameStart = 4; static var State_GameBreak = 5; static var State_GameEnd = 6; static var m_state = State_Wait; static var m_lastScoreSubmit = null; static var m_timerID = null; }
Symbol 10 MovieClip [__Packages.CWebConfig] Frame 0
class CWebConfig { static var _xml; function CWebConfig () { } static function Initialize(i_xml) { _xml = i_xml; IsInitialized = true; } static function get BuyNowUrl() { return(Oberon.XmlX.findChild(_xml, "Config/Web/BuyNow").attributes.url); } static function get DownloadDemoUrl() { return(Oberon.XmlX.findChild(_xml, "Config/Web/DownloadDemo").attributes.url); } static function get BrandName() { return(Oberon.XmlX.findChild(_xml, "Config/Web/Brand").attributes.name); } static function get ShowUpsell() { return(Oberon.XmlX.findChild(_xml, "Config/Web/Upsell").attributes.show == "1"); } static function get ShowUpsellFreq() { return(Oberon.XmlX.findChild(_xml, "Config/Web/Upsell").attributes.freq); } static function get BuyNowPageSource() { return(Oberon.XmlX.findChild(_xml, "Config/Web/BuyNow").attributes.pageSource); } static function get DownloadDemoPageSource() { return(Oberon.XmlX.findChild(_xml, "Config/Web/DownloadDemo").attributes.pageSource); } static function get BroadcastPeriod() { var _local1 = Oberon.XmlX.findChild(_xml, "Config/Web/Score").attributes.broadcast_period; if (_local1 == undefined) { _local1 = 0; } return(_local1); } static function get LoseRestart() { return(Oberon.XmlX.findChild(_xml, "Config/Web/LoseRestart").attributes.enabled == "1"); } static function get CheatsEnabled() { return(Oberon.XmlX.findChild(_xml, "Config/Web/Cheats").attributes.enabled == "1"); } static function get ScoreSubmitMinWait() { return(Oberon.XmlX.findChild(_xml, "Config/Web/ScoreSubmit").attributes.minWait); } static function IsPachinkoActive() { return((BrandName == "MSN") || (BrandName == "Diamond")); } static function IsAchievementActive() { return(Oberon.XmlX.findChild(_xml, "Config/Web/Achievements").attributes.enabled == "1"); } static var IsInitialized = false; }
Symbol 11 MovieClip [__Packages.Oberon.XmlX] Frame 0
class Oberon.XmlX { function XmlX () { } static function findChild(inNode, inPath) { var _local5 = inPath.split("/"); var _local3 = 0; while (_local3 < _local5.length) { var _local4 = false; var _local1 = 0; while (_local1 < inNode.childNodes.length) { if (inNode.childNodes[_local1].nodeName == _local5[_local3]) { _local4 = true; inNode = inNode.childNodes[_local1]; break; } _local1++; } if (!_local4) { return(null); } _local3++; } return(inNode); } static function get XmlStatus_Success() { return(0); } static function get XmlStatus_BadCdata() { return(-2); } static function get XmlStatus_BadDeclaration() { return(-3); } static function get XmlStatus_BadDoctype() { return(-4); } static function get XmlStatus_BadComment() { return(-5); } static function get XmlStatus_MalformedElement() { return(-6); } static function get XmlStatus_NotEnoughMemory() { return(-7); } static function get XmlStatus_BadAttribute() { return(-8); } static function get XmlStatus_NoEndTag() { return(-9); } static function get XmlStatus_NoStartTag() { return(-10); } static function getXmlStatusDesc(inXmlStatus) { switch (inXmlStatus) { case XmlStatus_Success : return("The document parsed without errors."); case XmlStatus_BadCdata : return("A CDATA section was not properly terminated."); case XmlStatus_BadDeclaration : return("The XML declaration was not properly terminated."); case XmlStatus_BadDoctype : return("The DOCTYPE delcaration was not properly terminated."); case XmlStatus_BadComment : return("A comment was not properly terminated."); case XmlStatus_MalformedElement : return("An XML element was malformed."); case XmlStatus_NotEnoughMemory : return("Not enough memory to parse the XML source."); case XmlStatus_BadAttribute : return("An attribute value was not properly terminated."); case XmlStatus_NoEndTag : return("A start tag had no corresponding end tag."); case XmlStatus_NoStartTag : return("An end tag had no corresponding start tag."); case undefined : return("<Undefined>"); } return("<Unknown>"); } static function XmlToFormattedString(i_xml) { var _local3 = ""; var _local4 = ""; for (var _local5 in i_xml.attributes) { _local4 = _local4 + (((_local5 + "=\"") + i_xml.attributes[_local5]) + "\" "); } _local3 = ((("<?xml version=\"1.0\"?>\n<" + i_xml.nodeName) + ((_local4 == "") ? "" : " ")) + _local4) + ">\n"; var _local1 = 0; while (_local1 < i_xml.childNodes.length) { _local3 = _local3 + XmlToFormattedStringHelper(i_xml.childNodes[_local1], " "); _local1++; } _local3 = _local3 + (("</" + i_xml.nodeName) + ">"); return(_local3); } static function XmlToFormattedStringHelper(i_xml, i_spacing) { var _local3 = ""; for (var _local6 in i_xml.attributes) { _local3 = (((_local6 + "=\"") + i_xml.attributes[_local6]) + "\" ") + _local3; } var _local4 = (((i_spacing + "<") + i_xml.nodeName) + (((_local3 != "") || (i_xml.hasChildNodes())) ? " " : "")) + _local3; if (!i_xml.hasChildNodes()) { _local4 = _local4 + "/>\n"; } else { _local4 = _local4 + ">\n"; var _local1 = 0; while (_local1 < i_xml.childNodes.length) { _local4 = _local4 + XmlToFormattedStringHelper(i_xml.childNodes[_local1], " " + i_spacing); _local1++; } _local4 = _local4 + (((i_spacing + "</") + i_xml.nodeName) + ">\n"); } return(_local4); } }
Symbol 12 MovieClip [__Packages.CGame] Frame 0
class CGame { static var PhysMgr, EffectMgr, CurrentPlayer, TileSet, Board, Sounds, Localizer, ComputerSpeed, DbgSTShowArgs, DbgSTShowResult, DbgSTAttemptToString, DbgSTCrashOnHit, DbgSTStopTraceOnHit, DbgSTStartTraceOnHit, DbgSTFilterTrace, DbgSTTicksToDisable, DbgSTResolveUnknown; function CGame () { } static function Init() { Root = _root.GetRoot(); m_AppUpdates = 0; PhysMgr = new PhysicsMgr(); EffectMgr = new CEffectManager(); CurrentPlayer = new CPlayerInfo("Unknown"); Root._quality = "HIGH"; m_MouseDown = false; m_startTime = getTimer(); m_lastTick = m_startTime; KeyListener = new Object(); KeyListener.onKeyDown = function () { CGame.OnKeyDown(); }; KeyListener.onKeyUp = function () { CGame.OnKeyUp(); }; Key.addListener(KeyListener); MouseListener = new Object(); MouseListener.onMouseDown = function () { CGame.OnMouseDown(); }; MouseListener.onMouseUp = function () { CGame.OnMouseUp(); }; Mouse.addListener(MouseListener); LoadConfigVars(); PhysMgr.Reset(); Core.CTween.Reset(); CLevelManifest.G = new CLevelManifest(); CLevelManifest.G.LoadLevelManifests("resources/levels/levelmanifest.xml"); var _local2 = Root.createEmptyMovieClip("CGameUpdater", Root.getNextHighestDepth()); _local2.onEnterFrame = function () { CGame.MainLoop(); }; } static function MainLoop() { m_AppUpdates++; var _local6 = m_lastTick; m_lastTick = getTimer(); var _local4 = (s_Speed * (m_lastTick - _local6)) / 1000; if (DbgPause) { if (!DbgPauseStep) { return(undefined); } _local4 = 1 / Constants.Fps; DbgPauseStep = false; if (DbgTraceTween) { CDebug.WriteLine("CGame.MainLoop()", Core.CTween.ToStringAll()); } } if (DbgCheckBitmapCaching) { var _local3 = TileSet.GetActiveBorbsFixedArray(); var _local1 = 0; while (_local1 < TileSet.GetActiveBorbsCount()) { var _local2 = ""; if (SnoodHead(_local3[_local1]).GetEmoteClip().cacheAsBitmap) { _local2 = _local2 + "E "; } else { _local2 = _local2 + "X "; } if (SnoodHead(_local3[_local1]).GetItemClip().cacheAsBitmap) { _local2 = _local2 + "I"; } else { _local2 = _local2 + "X"; } SnoodHead(_local3[_local1]).DbgSetText(_local2); _local1++; } } var _local5 = GameState.IsFrozen(); if (!_local5) { if ((PhysMgr != null) && (!GameState.IsFrozen())) { PhysMgr.Update(_local4, false); } } Core.CTween.UpdateAll(_local4); if (!_local5) { Board.Update(_local4); EffectMgr.UpdateEffects(_local4); } Core.DialogUtil.UpdateMouseMode(); } static function GetUpTime() { return(Math.floor((getTimer() - m_startTime) / 1000)); } static function OnKeyDown() { var _local8 = false; var _local9 = Key.getCode(); var _local17 = Key.isDown(16); if ((_local17 && (CDialog(Core.DialogUtil.Top()).Name != Constants.Dialog_GameBoardMenu)) && (CanCheat())) { _local8 = true; switch (_local9) { case 186 : if (KeyListener.snd == null) { KeyListener.snd = 0; } else { KeyListener.snd--; } Sounds.PlaySound(KeyListener.snd); break; case 222 : if (KeyListener.snd == null) { KeyListener.snd = 0; } else { KeyListener.snd++; } Sounds.PlaySound(KeyListener.snd); break; case 188 : Board.m_Launcher.m_LaunchSnood.SetColor((Board.m_Launcher.m_LaunchSnood.__get__Color() % Constants.Snood_Count) + 1); Board.m_Launcher.RefreshCannonSnood(); break; case 190 : Board.m_Launcher.m_LaunchSnood.SetPowerUp((Board.m_Launcher.m_LaunchSnood.__get__PowerUp() % Constants.PowerUp_Count) + 1); Board.m_Launcher.RefreshCannonSnood(); break; case 191 : break; case 90 : Board.m_TileSet.DbgShowAllSlotTypes(!Board.DbgIsShowingAllSlotTypes()); break; case 66 : CDebug.WriteLine("CGame.OnKeyDown()", "Set bounding box to full screen"); TileSet.m_bbox.SetCenter(400, 300); TileSet.m_bbox.SetExtents(400, 300); TileSet.m_bbox.SetAxes(1, 0, 0, 1); break; case 86 : Board.m_Won = true; trace("1::" + String(Effects.CEffect_BorbDropAnim.AreEffectsActive())); trace("2::" + String(EffectMgr.IsEffectPlaying(CEffect.Type_Vaporize))); break; case 82 : CDebug.WriteLine("CGame.OnKeyDown()", "Reload config vars"); LoadConfigVars(); break; case 74 : var _local11 = ("ActiveAnim: " + EffectMgr.m_ActiveEffectCount) + "\n\n"; var _local13 = "Blockers:\n\n"; var _local4 = {}; var _local3 = 0; while (_local3 < EffectMgr.m_ActiveEffectCount) { var _local5 = CEffect(EffectMgr.m_ActiveEffects[_local3]).getType(); if (_local4[_local5] == undefined) { _local4[_local5] = 1; } else { _local4[_local5] = _local4[_local5] + 1; } if (CEffect(EffectMgr.m_ActiveEffects[_local3]).m_bBlocking) { _local13 = _local13 + (CEffect(EffectMgr.m_ActiveEffects[_local3]).getType() + newline); } _local3++; } for (_local3 in _local4) { _local11 = _local11 + (((_local4[_local3] + ":") + _local3) + newline); } break; case 75 : break; case 76 : Board.m_Launcher._visible = !Board.m_Launcher._visible; Board.ScoreDisplay._visible = !Board.ScoreDisplay._visible; Board.m_Queue._visible = !Board.m_Queue._visible; Board.m_Launcher.m_CannonSnood._visible = !Board.m_Launcher.m_CannonSnood._visible; Board.m_Launcher.m_LaunchSnood._visible = !Board.m_Launcher.m_LaunchSnood._visible; Board.ScoreLabelText._visible = !Board.ScoreLabelText._visible; Board.LauncherBase._visible = !Board.LauncherBase._visible; Board.ShotsInTubeLabel._visible = !Board.ShotsInTubeLabel._visible; break; case 80 : var _local14 = TileSet.GetActiveBorbsCount(); var _local12 = TileSet.GetActiveBorbsFixedArray(); _local3 = 0; while (_local3 < _local14) { var _local2 = SnoodHead(_local12[_local3]); if (_local2.__get__PowerUp() == Constants.PowerUp_Lock) { _local2.KillEmoteAnim(); _local2.PlayEmoteAnim("sleep", true); } else if (_local2.__get__PowerUp() == Constants.PowerUp_Hypnosis) { _local2.KillEmoteAnim(); _local2.PlayEmoteAnim("hypnotized", true); } _local3++; } break; case 57 : AttachStackTracer(); break; case 48 : ToggleStackTracer(); break; case 188 : AddStackTracerFrames(2); break; case 84 : _local3 = 0; trace("--------------------------------------"); trace("Unknown Strings"); trace("--------------------------------------"); trace(""); trace(""); for (var _local15 in Localizer.m_UnknownStr) { trace(((("<String Id=\"" + _local3) + "\" Text=\"") + _local15) + "\" />"); _local3++; } trace(""); trace(""); trace(""); trace(""); break; case 189 : s_Speed = s_Speed - 0.1; CDebug.WriteLine("CGame.OnKeyDown()", "s_Speed set to " + s_Speed); break; case 187 : s_Speed = s_Speed + 0.1; CDebug.WriteLine("CGame.OnKeyDown()", "s_Speed set to " + s_Speed); break; case 65 : Board.HighlightScore(true, 5); Board.InsertBorbAtCannon(Board.GetRandBorb()); break; case 83 : var _local16 = new CBorbInfo(Constants.Snood_Mary, Constants.PowerUp_Fireball, null, true); var _local18 = SnoodHead.GetAndRemoveFromPool(_local16, TileSet.m_SnoodSize, 100, 100); _local18.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, 0.5); break; case 88 : Core.DialogUtil.Push(Constants.Dialog_Upsell); break; case 67 : _local16 = new CBorbInfo(Constants.Snood_Wild); _local18 = SnoodHead.GetAndRemoveFromPool(_local16, TileSet.m_SnoodSize, 100, 100); _local18.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, 0.5); case 89 : Board.HurryQueueAdvEffects(); DbgShowDropCheck = !DbgShowDropCheck; break; case 85 : DbgCheckBitmapCaching = !DbgCheckBitmapCaching; CDebug.WriteLine("DialogDump", Core.DialogUtil.ToString()); break; case 78 : GameState.Freeze(); _local8 = true; break; case 77 : GameState.Unfreeze(); _local8 = true; break; case 73 : _local16 = new CBorbInfo(Constants.Snood_Mary, Constants.PowerUp_BubbleBubble, null, true); _local18 = SnoodHead.GetAndRemoveFromPool(_local16, TileSet.m_SnoodSize, 100, 100); _local18.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, 0.5); break; case 79 : _local16 = new CBorbInfo(Constants.Snood_Mary, Constants.PowerUp_Aimer, null, true); _local18 = SnoodHead.GetAndRemoveFromPool(_local16, TileSet.m_SnoodSize, 100, 100); _local18.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, 0.5); break; case 68 : CurrentPlayer.ResetAchievements(); break; case 70 : _local3 = 0; while (_local3 < TileSet.Cols) { var _local1 = 0; while (_local1 < TileSet.Rows) { if (TileSet.GetTile(_local3, _local1) == null) { var _local2 = SnoodHead.GetAndRemoveFromPool(Board.GetRandBorb()); TileSet.SetTile(_local3, _local1, _local2); _local2._x = TileSet.GetGridCoords(_local3, _local1).X; _local2._y = TileSet.GetGridCoords(_local3, _local1).Y; } _local1++; } _local3++; } break; case 40 : Board.m_TileSet._y++; _local8 = true; break; case 38 : Board.m_TileSet._y--; _local8 = true; break; case 37 : Board.m_TileSet._x--; _local8 = true; break; case 39 : Board.m_TileSet._x++; _local8 = true; break; case 87 : _local16 = new CBorbInfo(Constants.Snood_Mary, Constants.PowerUp_Hook, null, true); _local18 = SnoodHead.GetAndRemoveFromPool(_local16, TileSet.m_SnoodSize, 100, 100); _local18.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, 0.5); break; case 219 : DbgPause = !DbgPause; CDebug.WriteLine("CGame.OnKeyDown()", "DbgPause set to " + DbgPause); break; case 221 : DbgPauseStep = true; break; case 69 : Core.DialogUtil.Push(Constants.Dialog_Help); break; case 192 : break; case 81 : TileSet.DropAllHeads(); break; default : _local8 = false; } } if (!_local8) { if (((_local9 + 32) >= 97) && ((_local9 + 32) <= 122)) { var _local10 = []; if (s_curCheatSeq.length > 0) { s_curCheatSeq = s_curCheatSeq + fromCharCode(_local9); } else { s_curCheatSeq = fromCharCode(_local9); } var _local7 = (s_cheatsEnabled ? (s_cheats.length) : 1); var _local3 = 0; while (_local3 < _local7) { if (s_cheats[_local3] == s_curCheatSeq) { CDebug.WriteLine("CGame.OnKeyDown()", "Cheat triggered: " + s_curCheatSeq); var _local6 = Function(s_cheatFuncs[_local3]); _local6(); s_curCheatSeq = ""; _local3 = _local7; } else if (s_cheats[_local3].indexOf(s_curCheatSeq) == 0) { _local10.push(s_cheats[_local3]); } _local3++; } if (_local10.length == 0) { s_curCheatSeq = ""; } } switch (_local9) { case 8 : Core.DialogUtil.OnBackSpaceDown(); break; case 32 : Core.DialogUtil.OnSpaceDown(); break; case 13 : break; case 17 : break; default : Core.DialogUtil.OnKeyDown(_local9); } } updateAfterEvent(); } static function OnKeyUp() { updateAfterEvent(); } static function OnMouseDown() { m_MouseDown = true; Core.DialogUtil.OnMouseDown(); updateAfterEvent(); } static function OnMouseUp() { m_MouseDown = false; } static function OnRMouseDown() { m_RMouseDown = true; if (Board != null) { Board.OnRMouseDown(); } } static function OnRMouseUp() { m_RMouseDown = false; } static function OnMMouseDown() { if (Board != null) { Board.ToggleMenu(); } m_MMouseDown = true; } static function OnMMouseUp() { m_MMouseDown = false; } static function OnEscDown() { Core.DialogUtil.OnEscDown(); } static function OnRequestClose() { if (UI.CConfirmationDlg.CanDisplayDialogue()) { var _local1 = UI.CConfirmationDlg(Core.DialogUtil.Push(Constants.Dialog_Confirmation)); _local1.CurrentDialogueType = UI.CConfirmationDlg.Confirm_ExitGame; _local1.OkClickedEvent.PushBehavior(GameState.Quit, true); } } static function OnSysMenu() { if (Board != null) { Board.ShowMenu(); } } static function OnConfigLoaded(i_success) { CDebug.Assert(i_success, "CGame.OnConfigLoaded()", "Couldn't load config file"); XmlLoaded = true; applyMainConfigVars(); RefreshCompSpeedVars(); Locale = Oberon.XmlX.findChild(XmlConfig, "Config/Game/Locale").attributes.Language; if (Locale == null) { trace("!!! CGame.OnConfigLoaded() couldn't find Game/Locale/Language config xml attribute"); } CWebConfig.Initialize(XmlConfig); Localizer = new CLocalizer(("resources/strings/str_" + Locale.toLowerCase()) + ".xml", Locale); } static function RefreshCompSpeedVars() { if (ComputerSpeed == null) { return(undefined); } CDebug.WriteLine("CGame.RefreshCompSpeedVars()", "Refresh for speed " + ComputerSpeed); switch (ComputerSpeed) { case FHost.CApp.__get__ComputerSpeed_Slow() : applySlowConfigVars(); return; case FHost.CApp.__get__ComputerSpeed_Normal() : applyMedConfigVars(); return; case FHost.CApp.__get__ComputerSpeed_Fast() : applyFastConfigVars(); } } static function AttachStackTracer() { Core.CStackTracer.m_ShowArgs = DbgSTShowArgs; Core.CStackTracer.m_ShowResult = DbgSTShowResult; Core.CStackTracer.m_AttemptToString = DbgSTAttemptToString; Core.CStackTracer.m_CrashOnHit = DbgSTCrashOnHit; Core.CStackTracer.m_StopTraceOnHit = DbgSTStopTraceOnHit; Core.CStackTracer.m_StartTraceOnHit = DbgSTStartTraceOnHit; Core.CStackTracer.m_FilterTrace = DbgSTFilterTrace; Core.CStackTracer.m_TicksToDisable = DbgSTTicksToDisable; CDebug.WriteLine("CGame.AttachStackTracer()", (("AttachTracer, start " + (Core.CStackTracer.m_Enabled ? "enabled" : "disabled")) + ", trace substr : \n ") + DbgSTSearchObj.join(", ")); Core.CStackTracer.Attach(false, DbgSTSearchObj, true, DbgSTResolveUnknown, false, false, false); } static function ToggleStackTracer() { if (!Core.CStackTracer.IsAttached()) { AttachStackTracer(); } CDebug.WriteLine("CGame.ToggleStackTracer()", "Set stack tracer enabled to " + String(!Core.CStackTracer.m_Enabled)); Core.CStackTracer.m_Enabled = !Core.CStackTracer.m_Enabled; Core.CStackTracer.m_ResolveEnabled = Core.CStackTracer.m_Enabled; } static function AddStackTracerFrames(i_count) { if (!Core.CStackTracer.IsAttached()) { AttachStackTracer(); } CDebug.WriteLine("CGame.AddStackTracerFrames()", ("Add " + i_count) + " frames to stack tracer"); Core.CStackTracer.EnableForMultipleTicks(Core.CStackTracer.m_TicksToDisable + i_count); } static function LoadConfigVars() { XmlLoaded = false; XmlConfig = new XML(); XmlConfig.ignoreWhite = true; XmlConfig.onLoad = OnConfigLoaded; XmlConfig.load("config.xml"); } static function applyMainConfigVars() { applyConfigVars("Config/VarOverrides"); } static function applySlowConfigVars() { applyConfigVars("Config/SlowSpeedVarOverrides"); } static function applyMedConfigVars() { applyConfigVars("Config/MedSpeedVarOverrides"); } static function applyFastConfigVars() { applyConfigVars("Config/FastSpeedVarOverrides"); } static function applyConfigVars(i_key) { if (!XmlLoaded) { return(undefined); } var nodes = Oberon.XmlX.findChild(XmlConfig, i_key).childNodes; var i = 0; while (i < nodes.length) { var variableLoc = String(nodes[i].attributes.Name); var result = String(nodes[i].attributes.Val); var type; if (nodes[i].attributes.Type != undefined) { type = String(nodes[i].attributes.Type); } else { type = typeof(eval (variableLoc)); } if (type == "undefined") { if ((result == "true") || (result == "false")) { type = "boolean"; } else if (String(result).indexOf(",") != -1) { type = "array"; } else if (String(result) == "[null]") { type = "null"; } else if ((String(result) == "[infinity]") || (String(result) == "[neg_infinity]")) { type = "number"; } } switch (type) { case "null" : Set(variableLoc, null); break; case "string" : Set(variableLoc, String(result)); break; case "number" : Set(variableLoc, parseNum(result)); break; case "boolean" : Set(variableLoc, ((String(result) == "true") ? true : false)); break; case "array" : default : case "array:number" : case "array:string" : case "object" : var newArr = String(result).split(","); if (type == "array:number") { var j = 0; while (j < newArr.length) { newArr[j] = parseNum(newArr[j]); j++; } } Set(variableLoc, newArr); } i++; } } static function parseNum(i_val) { if (String(i_val) == "[infinity]") { return(Number.POSITIVE_INFINITY); } if (String(i_val) == "[neg_infinity]") { return(Number.NEGATIVE_INFINITY); } if (String(i_val).indexOf(".") == -1) { return(parseInt(i_val)); } return(parseFloat(i_val)); } static function CanCheat() { return(CWebConfig.IsInitialized && (CWebConfig.__get__CheatsEnabled())); } static function DoCheatToggleCheats() { if (CanCheat()) { s_cheatsEnabled = !s_cheatsEnabled; if (s_cheatsEnabled) { Sounds.PlaySound(Constants.__get__Sound_BubbleFuzzball()); } else { Sounds.PlaySound(Constants.__get__Sound_WakingEffy()); CQueueBorb.s_UnconcealedBorbCount = 1; s_Speed = 1; DbgActionMode = false; Board.m_Queue.Resync(); } } } static function DoCheatAllFireballs() { if (Board != null) { s_CheatedThisGame = true; Board.m_Queue.Fill(Board.m_Queue.GetAbsMax(), true); var _local1 = Board.GetRandBorb(); _local1.PowerUp = Constants.PowerUp_Fireball; Board.m_Queue.SetAllBorbsToInfo(_local1); } } static function DoCheatAllHooks() { if (Board != null) { s_CheatedThisGame = true; Board.m_Queue.Fill(Board.m_Queue.GetAbsMax(), true); var _local1 = Board.GetRandBorb(); _local1.PowerUp = Constants.PowerUp_Hook; Board.m_Queue.SetAllBorbsToInfo(_local1); } } static function DoCheatLotsOfAimers() { if (Board != null) { s_CheatedThisGame = true; Board.IncrementTraceShotRemaining(100); } } static function DoCheatMinorQueue() { if (Board != null) { s_CheatedThisGame = true; CQueueBorb.s_UnconcealedBorbCount = 3; Board.m_Queue.Resync(); } } static function DoCheatMegaQueue() { if (Board != null) { s_CheatedThisGame = true; CQueueBorb.s_UnconcealedBorbCount = 15; Board.m_Queue.Resync(); } } static function DoCheatSlowMotion() { s_Speed = ((s_Speed == 0.5) ? 1 : 0.5); } static function DoCheatFastMotion() { s_Speed = ((s_Speed == 2) ? 1 : 2); } static function DoCheatAllBombs() { if (Board != null) { s_CheatedThisGame = true; Board.m_Queue.Fill(Board.m_Queue.GetAbsMax(), true); var _local1 = Board.GetRandBorb(); _local1.PowerUp = Constants.PowerUp_Mine; Board.m_Queue.SetAllBorbsToInfo(_local1); } } static function DoCheatSleepAll() { if (Board != null) { s_CheatedThisGame = true; var _local4 = TileSet.GetActiveBorbsFixedArray(); var _local3 = TileSet.GetActiveBorbsCount(); var _local2 = 0; while (_local2 < _local3) { var _local1 = SnoodHead(_local4[_local2]); if (Constants.IsHead(_local1.__get__Color()) && (_local1.__get__PowerUp() == Constants.PowerUp_None)) { _local1.SetPowerUp(Constants.PowerUp_Lock); } _local2++; } } } static function DoCheatInvasion() { if (Board != null) { s_CheatedThisGame = true; var _local4 = TileSet.GetActiveBorbsFixedArray(); var _local3 = TileSet.GetActiveBorbsCount(); var _local2 = 0; while (_local2 < _local3) { var _local1 = SnoodHead(_local4[_local2]); if ((Constants.IsHead(_local1.__get__Color()) && (Oberon.MathX.randRange(0, 1) == 0)) && (_local1.__get__PowerUp() == Constants.PowerUp_None)) { _local1.SetPowerUp(Constants.PowerUp_Jelly + Oberon.MathX.randRange(0, 2)); } _local2++; } } } static function DoCheatAllBubbles() { if (Board != null) { s_CheatedThisGame = true; Board.m_Queue.Fill(Board.m_Queue.GetAbsMax(), true); var _local1 = Board.GetRandBorb(); _local1.PowerUp = Constants.PowerUp_BubbleBubble; Board.m_Queue.SetAllBorbsToInfo(_local1); } } static function DoCheatAllWild() { if (Board != null) { s_CheatedThisGame = true; Board.m_Queue.Fill(Board.m_Queue.GetAbsMax(), true); var _local1 = Board.GetRandBorb(); _local1.Color = Constants.Snood_Wild; Board.m_Queue.SetAllBorbsToInfo(_local1); } } static function DoCheatWinBoard() { if (Board != null) { s_CheatedThisGame = true; TileSet.DropAllHeads(); } } static function DoCheatDebugActionMode() { s_CheatedThisGame = true; DbgActionMode = !DbgActionMode; } static function AreCheatsEnabled() { return(s_cheatsEnabled); } static function fromCharCode(i_char) { switch (i_char) { case 65 : return("a"); case 66 : return("b"); case 67 : return("c"); case 68 : return("d"); case 69 : return("e"); case 70 : return("f"); case 71 : return("g"); case 72 : return("h"); case 73 : return("i"); case 74 : return("j"); case 75 : return("k"); case 76 : return("l"); case 77 : return("m"); case 78 : return("n"); case 79 : return("o"); case 80 : return("p"); case 81 : return("q"); case 82 : return("r"); case 83 : return("s"); case 84 : return("t"); case 85 : return("u"); case 86 : return("v"); case 87 : return("w"); case 88 : return("x"); case 89 : return("y"); case 90 : return("z"); } return(" "); } static var Root = null; static var Locale = "en-US"; static var BoardUpdateFreq = 0; static var TweenUpdateFreq = 0; static var s_Speed = 1; static var s_BaseSpeed = 1; static var DbgTraceColors = false; static var DbgTracePhysics = false; static var DbgTraceGameState = false; static var DbgTraceTween = false; static var DbgRapidFireMode = false; static var DbgShowCannonAimLine = false; static var DbgPauseStep = false; static var DbgPause = false; static var DbgActionMode = false; static var DbgMobileLauncher = false; static var DbgMobileLauncherAlt = false; static var DbgShowComboCounter = false; static var DbgShowBorbIdleAnim = false; static var DbgShowActiveEffects = false; static var DbgCheckBitmapCaching = false; static var DbgShowDropCheck = false; static var DbgSTSearchObj = []; static var XmlConfig = null; static var XmlLoaded = false; static var KeyListener = null; static var MouseListener = null; static var m_MouseDown = false; static var m_RMouseDown = false; static var m_MMouseDown = false; static var m_AppActive = true; static var m_AppUpdates = 0; static var m_lastTick = 0; static var m_startTime = 0; static var m_startPauseTime = 0; static var s_cheatsEnabled = false; static var s_CheatedThisGame = false; static var s_curCheatSeq = ""; static var s_cheats = ["iliketocheat", "chucknorris", "queueitup", "bigtimequeueitup", "slomo", "fastmo", "hookmeup", "badaim", "imustwin", "pyromaniac", "bedtime", "invasion", "toomanybubbles", "jokerswild", "sandysrevenge"]; static var s_cheatFuncs = [DoCheatToggleCheats, DoCheatAllFireballs, DoCheatMinorQueue, DoCheatMegaQueue, DoCheatSlowMotion, DoCheatFastMotion, DoCheatAllHooks, DoCheatLotsOfAimers, DoCheatWinBoard, DoCheatAllBombs, DoCheatSleepAll, DoCheatInvasion, DoCheatAllBubbles, DoCheatAllWild, DoCheatDebugActionMode]; }
Symbol 13 MovieClip [__Packages.CBoard] Frame 0
class CBoard extends MovieClip { var m_state, m_TileSet, m_LauncherTrack, m_InPlungerGrab, m_toggledKeysBitMask, s_XmlLoadTime, m_LumpsDropped, m_JellyFishyDropped, m_RubberLubberDropped, m_pointsEffectsCount, m_StartScore, m_WinDiveBarDist, m_TotalCombos, m_lastScore, m_DropCheckNeeded, m_LockScoreUpdates, m_ShotTargets, m_ComboChainCount, m_AllShotsHaveBankBonus, m_RubberLubberHitThisShot, TraceLaserHolderMc, TraceShotHolder, TileSet, m_Background, _parent, m_Queue, Queue, m_LoseShadowBoundingClip, DangerZone, LauncherTrack, m_Launcher, m_tracerIndicatorMc, m_tracerIndicator, SnoodsLeftDisplay, ScoreDisplay, m_LevelTextAnim, m_LevelText, m_LevelText2, OwnerDlg, m_CurLevelInfo, getNextHighestDepth, attachMovie, m_EffectsLayer, _visible, DEBUGTXT; function CBoard () { super(); Reset(); } function IsInitialized() { return((m_state != State_Loading) && (m_state != State_LoadingXml)); } function IsPlaying() { return(m_state == State_Playing); } function IsLoadingXml() { return(m_state == State_LoadingXml); } function get Locked() { return((((m_TileSet.IsBusy() || (m_LauncherTrack.IsBusy())) || (CGame.PhysMgr.IsBusy())) || (m_Disabled)) || (CGame.EffectMgr.AreBlockingEffectsPlaying())); } function Reset() { if (CGame.AreCheatsEnabled()) { CGame.s_CheatedThisGame = true; } m_state = State_Loading; m_InPlungerGrab = false; Effects.CEffect_EmoteAnim.ResetHeadFrameLabels(); m_toggledKeysBitMask = 0; s_XmlLoadTime = 0; m_LumpsDropped = 0; m_JellyFishyDropped = 0; m_RubberLubberDropped = 0; m_pointsEffectsCount = 0; m_StartScore = 0; m_WinDiveBarDist = 0; m_TotalCombos = 0; m_lastScore = 0; m_DropCheckNeeded = false; s_XmlLoadTimeOutCount = 0; m_LockScoreUpdates = false; m_ShotTargets = []; G = this; CGame.Board = this; _global.GameBoard = this; Level.m_InvalidatedSpots = []; CGame.PhysMgr.Reset(); CGame.EffectMgr.Reset(); m_ComboChainCount = 0; } function get State() { return(m_state); } function SetState(i_val) { if (m_state != i_val) { var _local2 = m_state; m_state = i_val; } } function onLoad() { CDebug.Assert(!CGame.PhysMgr.IsBusy(), this, "Physics manager active on board start" + CGame.PhysMgr.PendingToString(), true); m_AllShotsHaveBankBonus = true; m_RubberLubberHitThisShot = false; TraceLaserHolderMc = MovieClip(TraceShotHolder); CDebug.Assert(TraceLaserHolderMc != null, this, "Couldn't find TraceLaserHolderMc"); m_TileSet = CTileSet(TileSet); CDebug.Assert(m_TileSet != null, this, "Couldn't find TileSet"); m_Background = _parent.Background; CDebug.Assert(m_Background != null, this, "Couldn't find Background"); m_Background._visible = false; m_Background.stop(); m_Queue = CQueue(Queue); CDebug.Assert(m_Queue != null, this, "Couldn't find Queue"); m_LoseShadowBoundingClip = MovieClip(DangerZone); CDebug.Assert(m_LoseShadowBoundingClip != null, this, "Couldn't get bounds of board (make sure that the board has a '_loseShadowBounds' clip defined"); m_LoseShadowBoundingClip.cacheAsBitmap = true; m_LoseShadowBoundingClip.gotoAndStop(1); m_LauncherTrack = CLauncherTrack(LauncherTrack); m_Launcher = m_LauncherTrack.GetLauncher(); m_Launcher.SetAccess(CLauncher.Access_Enabled); CDebug.Assert(m_LauncherTrack != null, this, "Launcher track is null"); m_tracerIndicatorMc = MovieClip(m_Launcher.TracerIndicator); m_tracerIndicatorMc._visible = false; CDebug.Assert(m_tracerIndicatorMc != null, this, "m_tracerIndicatorMc is null"); m_tracerIndicator = StaticText(m_tracerIndicatorMc.TraceText); m_tracerIndicator.InnerColorHide = true; m_tracerIndicator.InnerColorTint = 16777215 /* 0xFFFFFF */; CDebug.Assert(m_tracerIndicator != null, this, "m_tracerIndicator is null"); SnoodsLeftDisplay = StaticText(_parent.Left); SnoodsLeftDisplay.InnerColorHide = true; SnoodsLeftDisplay.IgnoreColorTrans = true; SnoodsLeftDisplay.InnerColorTint = 16777215 /* 0xFFFFFF */; ScoreDisplay = StaticText(_parent.Score); ScoreDisplay.__set__Align("right"); ScoreDisplay.CharSpacing = -5; ScoreDisplay.IgnoreColorTrans = true; ScoreDisplay.InnerColorTint = s_ScoreTextColor; m_LevelTextAnim = MovieClip(_parent.LevelNameAnim); CDebug.Assert(m_LevelTextAnim != null, "CBoard.onLoad()", "couldn't find m_LevelTextAnim"); m_LevelTextAnim.stop(); m_LevelText = TextField(_parent.LevelNameAnim.InnerLevelText.LevelName); m_LevelText2 = TextField(_parent.LevelNameAnim.InnerLevelText2.LevelName); CDebug.Assert(m_LevelText != null, this, "Couldn't find level text field"); CDebug.Assert(m_LevelText2 != null, this, "Couldn't find level text 2 field"); m_Queue.FinishedAllAnimEvent.PushBehavior(mx.utils.Delegate.create(this, onFinishedAllQueueAnim)); m_Queue.FallInAnimCompleteEvent.PushBehavior(mx.utils.Delegate.create(this, onFinishedFallInQueueAnim)); m_Queue.ElevatorLoadCompleteEvent.PushBehavior(mx.utils.Delegate.create(this, onElevatorLoaded)); m_Launcher.SpecialBorbLoadedEvent.PushBehavior(mx.utils.Delegate.create(this, onSpecialBorbLoaded)); } function HighlightScore(i_doBounce, i_bubbleCount) { var _local14 = ScoreDisplay._width; var _local15 = ScoreDisplay._height; var _local16 = Effects.CEffect_Vaporize.s_VaporizeStartFrame; var _local13 = CCoord.ToLocal(ScoreDisplay, OwnerDlg); if (i_doBounce) { ScoreDisplay.Bounce(s_ScoreBounceDur, s_ScoreBounceMag); ScoreDisplay.DoInnerColorTween(s_ScoreColorTint, s_ScoreColorTintDur, s_ScoreColorTintDelay); } var _local4 = new Array(i_bubbleCount); var _local3 = 0; while (_local3 < i_bubbleCount) { _local4[_local3] = _local3; _local3++; } _local3 = 0; while (_local3 < i_bubbleCount) { var _local6 = OwnerDlg.getNextHighestDepth(); var _local11 = Oberon.MathX.randRange(1, 6); var _local2 = OwnerDlg.attachMovie("Vaporize" + _local11, "ScoreVaporize" + _local6, _local6); var _local8 = Oberon.MathX.randRange(0, _local4.length - 1); var _local10 = _local4[_local8]; _local4.splice(_local8, 1); var _local9 = Math.round(_local14 / i_bubbleCount); _local2._x = ((_local13.X - (_local14 / 2)) + (_local9 * _local10)) + Oberon.MathX.randRange(0, _local9); var _local7 = Math.round(_local15 / i_bubbleCount); _local2._y = ((_local13.Y - (_local15 / 2)) + (_local7 * _local3)) + Oberon.MathX.randRange(0, _local7); var _local12 = new Core.CTween(_local2, "_currentframe", null, 1, _local2._totalframes, (_local2._totalframes - _local16) / Constants.Fps, true, Oberon.MathX.randRange(_local3, _local3 * 2) / 10); _local12.onMotionFinished = function (i_tween) { MovieClip(i_tween.m_Obj).removeMovieClip(); }; _local3++; } } function Update(i_deltaT) { if (OwnerDlg == null) { return(undefined); } var _local2 = Core.DialogUtil.Top() == OwnerDlg; if ((m_state == State_Playing) || (m_state == State_Dropping)) { if (!m_LockScoreUpdates) { var _local3 = CGame.CurrentPlayer; if (m_lastScore != _local3.m_Score) { var _local4 = _local3.m_Score - m_lastScore; if (CGame.ComputerSpeed == FHost.CApp.__get__ComputerSpeed_Slow()) { } else if (_local4 > 1000) { CGame.Board.HighlightScore(false, 10); } else if (_local4 > 500) { CGame.Board.HighlightScore(false, 6); } else if (_local4 > 100) { CGame.Board.HighlightScore(false, 3); } ScoreDisplay.__set__Text(String(_local3.m_Score)); m_lastScore = _local3.m_Score; } } if ((CGame.EffectMgr.m_CurFrameCategoryAnims & CEffect.Cat_GameTransition) != 0) { return(undefined); } if ((m_Disabled && (_local2)) || ((!m_Disabled) && (!_local2))) { SetEnabled(_local2); } if (!m_Disabled) { Effects.CEffect_BorbDropAnim.OnPlayUpdate(i_deltaT); OnPlayUpdate(i_deltaT); } } else if (m_state == State_LoadingXml) { s_XmlLoadTime = s_XmlLoadTime + i_deltaT; CDebug.WriteLine("CBoard.Update()", "Action.onEnterFrame() - currently loading xml"); if (m_CurLevelInfo.LoadCriticalFail) { CDebug.WriteLine("CBoard.Update()", "Critical xml load failure"); Core.DialogUtil.SwitchTo(Constants.Dialog_MainMenu); } else if (!m_CurLevelInfo.LoadingXml) { SetEnabled(_local2); onXmlLoaded(); } else if (s_XmlLoadTime > s_XmlLoadTimeOut) { CDebug.WriteLine("CBoard.Update()", "Xml load timeout " + s_XmlLoadTimeOutCount); s_XmlLoadTimeOutCount++; if (s_XmlLoadTimeOutCount > s_XmlLoadTimeOutMax) { Core.DialogUtil.SwitchTo(Constants.Dialog_MainMenu); } else { loadBoardHelper(GameState.GetCurrentLevelSet(), GameState.__get__CurrentLevel()); s_XmlLoadTime = 0; s_XmlLoadTimeOut = s_XmlLoadTimeOut + 10; } } } else if (m_state == State_Loading) { LoadBoard(); } } function OnPlayUpdate(i_deltaT) { m_pointsEffectsCount = 0; if ((!m_Won) && (m_TileSet.m_OnlyBlockersRemain)) { m_Won = true; } if (m_Lost) { if ((!CGame.EffectMgr.IsEffectPlaying(CEffect.Type_LoseAnim)) && (!CGame.EffectMgr.IsEffectPlaying(CEffect.Type_WinAnim))) { var _local7 = Effects.CEffect_LoseAnim(CEffect.CreateEffect(CEffect.Type_LoseAnim)); if (_local7.OnInit()) { CGame.EffectMgr.AddEffectToActiveList(_local7); } } return(undefined); } if (m_Won) { m_WinDiveBarDist = m_TileSet.GetDiveBarDist(); if ((!CGame.EffectMgr.IsEffectPlaying(CEffect.Type_WinAnim)) && (!CGame.EffectMgr.IsEffectPlaying(CEffect.Type_LoseAnim))) { var _local7 = Effects.CEffect_WinAnim(CEffect.CreateEffect(CEffect.Type_WinAnim)); if (_local7.OnInit()) { CGame.EffectMgr.AddEffectToActiveList(_local7); } } return(undefined); } var _local6 = CGame.PhysMgr.GetAndClearAttachedPieces(); var _local5 = 0; while (_local5 < _local6.length) { var _local2 = SnoodHead(_local6[_local5]); if (_local2 != null) { if ((PhysicsMgr.G.GetActiveAnimCount(PhysicsMgr.Physics_Shoot) == 0) && (PhysicsMgr.G.GetActiveAnimCount(PhysicsMgr.Physics_Wait) == 0)) { m_ShotTargets = []; } else { var _local3 = 0; while (_local3 < m_ShotTargets.length) { var _local4 = CCoord(m_ShotTargets[_local3]); if ((_local4.X == _local2.m_xNextSlot) && (_local4.Y == _local2.m_yNextSlot)) { m_ShotTargets.splice(_local3, 1); _local3 = m_ShotTargets.length; } _local3++; } } if (m_TileSet.GetTile(_local2.m_xNextSlot, _local2.m_yNextSlot) != null) { _local2.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard, 0); } else if (!m_TileSet.HasNeighbor(_local2.m_xNextSlot, _local2.m_yNextSlot)) { _local2.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard, 0); } else { m_TileSet.AttachShotHead(_local2.m_xNextSlot, _local2.m_yNextSlot, _local2); } OnShotComplete(); } else { CDebug.WriteLine("Actions.Update()", "Invalid projectile found! " + _local6[_local5]); } _local5++; } if (m_DropCheckNeeded) { Level.DoDropSnoods(); m_DropCheckNeeded = false; } if ((((!IsBoardInAnimation()) && (!CGame.PhysMgr.IsBusy())) && (!CGame.EffectMgr.AreBlockingEffectsPlaying())) && (CheckRefillBoard())) { AdvanceDanger(); CGame.Board.m_Launcher.m_ShouldRedraw = true; m_Queue.Refill(); } m_TileSet.OnPlayUpdate(i_deltaT); m_TileSet.DoUpdateBoundingBox(); m_Launcher.OnPlayUpdate(i_deltaT); } function IsDisposing() { return(m_state == State_Disposing); } function Dispose() { CDebug.WriteLine("CBoard.Dispose()", "Disposing"); var _local2 = CGame.CurrentPlayer.m_Score; SetState(State_Disposing); m_CurLevelInfo.Dispose(); CGame.PhysMgr.Reset(); Core.CTween.Reset(); m_TileSet.Dispose(); CGame.EffectMgr.KillAllEffects(); CGame.EffectMgr.Reset(); if (G == this) { G = null; } if (!m_Won) { CGame.CurrentPlayer.m_Score = _local2; } } function onUnload() { } function OnMiss() { CGame.Board.m_ComboChainCount = 0; m_AllShotsHaveBankBonus = false; } function CreatePointsEffect(inX, inY, inText, inTint, inWhiteShowBorder) { var _local5 = ((Math.random() < 0.333) ? "1" : (((Math.random() < 0.5) ? "2" : "3"))); var _local4 = getNextHighestDepth(); var _local2 = CGame.Board.attachMovie("NewPoints" + _local5, "NewPoints" + _local4, _local4); var _local3 = CGame.TileSet.GetGridCoords(inX, inY, true); _local2._x = _local3.X + ((Math.random() * 6) - 12); _local2._y = _local3.Y + ((Math.random() * 6) - 12); if (_local2._x < 80) { _local2._x = 80; } else if (_local2._x > (Constants.GameResX - 80)) { _local2._x = Constants.GameResX - 80; } _local2._y = _local2._y + (m_pointsEffectsCount * s_PointsYDisplacement); if (_local2._y < 80) { _local2._y = 80; } else if (_local2._y > (Constants.GameResY - 80)) { _local2._y = Constants.GameResY - 80; } _local2.Display.PointsText.text = inText; _local2.Display.PointsText.textColor = inTint; if (inWhiteShowBorder) { var _local6 = new flash.filters.GlowFilter(16777215, 100, 5, 5, 20); _local2.Display.PointsText.filters = [_local6]; } m_pointsEffectsCount++; return(_local2); } function CreateSmallPointsEffect(inX, inY, inText) { var _local3 = getNextHighestDepth(); var _local2 = attachMovie("SmallNewPoints1", "SmallNewPoints" + _local3, _local3); _local2._x = inX + ((Math.random() * 6) - 12); _local2._y = inY + ((Math.random() * 6) - 12); _local2.Display.PointsText.text = inText; _local2.Display.PointsText.textColor = Level.s_BonusTint; return(_local2); } function GetBoundingClip() { return(m_TileSet.BoundingClip); } function ResyncColors() { if (m_Won || (m_Lost)) { return(undefined); } var _local2 = m_Queue.GetNextBorb(); m_Queue.CheckColors(); if (!_local2.Equals(m_Queue.GetNextBorb())) { m_Launcher.SyncLoadedBorb(m_Queue.GetNextBorb()); } } function CreateImpactBounceAround(inPosX, inPosY, inCoordX, inCoordY, inVec) { var _local7 = (((inPosY % 2) == 0) ? 1 : 0); var _local12 = CreateImpactBounceAt(inPosX - _local7, inPosY - 1, inCoordX, inCoordY, inVec, false); var _local10 = CreateImpactBounceAt((inPosX + 1) - _local7, inPosY - 1, inCoordX, inCoordY, inVec, false); var _local11 = CreateImpactBounceAt(inPosX - 1, inPosY, inCoordX, inCoordY, inVec, false); var _local9 = CreateImpactBounceAt(inPosX + 1, inPosY, inCoordX, inCoordY, inVec, false); var _local8 = CreateImpactBounceAt(inPosX - _local7, inPosY + 1, inCoordX, inCoordY, inVec, false); var _local13 = CreateImpactBounceAt((inPosX + 1) - _local7, inPosY + 1, inCoordX, inCoordY, inVec, false); if (_local12) { CreateImpactBounceAt(inPosX - 1, inPosY - 2, inCoordX, inCoordY, inVec, true); } if (_local12 || (_local10)) { CreateImpactBounceAt(inPosX, inPosY - 2, inCoordX, inCoordY, inVec, true); } if (_local10) { CreateImpactBounceAt(inPosX + 1, inPosY - 2, inCoordX, inCoordY, inVec, true); } if (_local12 || (_local11)) { CreateImpactBounceAt((inPosX - 1) - _local7, inPosY - 1, inCoordX, inCoordY, inVec, true); } if (_local10 || (_local9)) { CreateImpactBounceAt((inPosX + 2) - _local7, inPosY - 1, inCoordX, inCoordY, inVec, true); } if (_local11) { CreateImpactBounceAt(inPosX - 2, inPosY, inCoordX, inCoordY, inVec, true); } if (_local9) { CreateImpactBounceAt(inPosX + 2, inPosY, inCoordX, inCoordY, inVec, true); } if (_local11 || (_local8)) { CreateImpactBounceAt((inPosX - 1) - _local7, inPosY + 1, inCoordX, inCoordY, inVec, true); } if (_local9 || (_local13)) { CreateImpactBounceAt((inPosX + 2) - _local7, inPosY + 1, inCoordX, inCoordY, inVec, true); } if (_local8) { CreateImpactBounceAt(inPosX - 1, inPosY + 2, inCoordX, inCoordY, inVec, true); } if (_local8 || (_local13)) { CreateImpactBounceAt(inPosX, inPosY + 2, inCoordX, inCoordY, inVec, true); } if (_local13) { CreateImpactBounceAt(inPosX + 1, inPosY + 2, inCoordX, inCoordY, inVec, true); } } function CreateImpactBounceAt(inToPosX, inToPosY, inCoordX, inCoordY, inVec, inTierTwo) { var _local2 = m_TileSet.GetTile(inToPosX, inToPosY); if (_local2 != null) { _local2.CreateImpactBounce(inCoordX, inCoordY, inVec, inTierTwo); return(true); } return(false); } function RequestCannonKeyToggle(i_key, i_on) { if (((i_key & m_toggledKeysBitMask) > 0) && (!i_on)) { m_toggledKeysBitMask = m_toggledKeysBitMask - i_key; } else if (((i_key & m_toggledKeysBitMask) == 0) && (i_on)) { m_toggledKeysBitMask = m_toggledKeysBitMask + i_key; } } function IsBoardInAnimation() { return(((CGame.PhysMgr.GetActiveAnimCount(PhysicsMgr.Physics_Shoot) > 0) || (CGame.PhysMgr.HasAttachedPieces())) || ((CGame.EffectMgr.m_CurFrameCategoryAnims & CEffect.Cat_GameTransition) != 0)); } function CheckRefillBoard() { if ((m_Launcher.IsEmpty() && (m_Queue.IsEmpty())) && (!PhysicsMgr.G.HasAttachedPieces())) { if (!CGame.EffectMgr.IsCategoryPlaying(CEffect.Cat_QueueAdvWait)) { return(true); } HurryQueueAdvEffects(); } return(false); } function HurryQueueAdvEffects() { var _local4 = CGame.EffectMgr.GetAllEffectsOfType(CEffect.Type_BorbDropAnim); var _local2 = 0; while (_local2 < _local4.length) { var _local3 = Effects.CEffect_BorbDropAnim(_local4[_local2]); _local3.Hurry(CQueue.s_HurryMod); _local2++; } m_Queue.Hurry(); } function SwapActiveLauncher(inPlayer) { if ((((m_Disabled || (!IsInitialized())) || (m_Won)) || (m_Lost)) || (Core.DialogUtil.Top() != OwnerDlg)) { return(false); } return(true); } function GetActiveLauncher() { return(m_Launcher); } function GetLauncher(i_orient) { CDebug.Assert(false, this, "Can't get launcher in dir " + i_orient); return(null); } function CanShoot(i_ignoreLock) { return(((((((!Locked) || (i_ignoreLock)) && (!m_Won)) && (!m_Lost)) && (!m_Launcher.IsEmpty())) && (!m_Launcher.IsBusy())) && ((!CGame.DbgMobileLauncher) || (!m_Launcher.IsAtMaxBounds()))); } function RequestShootSnood(i_ignoreLock) { if (!CanShoot(i_ignoreLock)) { return(undefined); } CGame.EffectMgr.KillAllEffectsOfType(CEffect.Type_CannonScareAnim); var _local5; var _local10 = []; var _local12 = []; var _local11 = []; var _local7 = m_Launcher.m_LaunchSnood.__get__PowerUp() == Constants.PowerUp_Fireball; var _local13 = m_Launcher.m_Mode == CLauncher.Mode_Hook; var _local6 = m_Launcher.TraceShot(false, false, _local10, _local12, _local11, _local7, false, _local13); if (_local10.length == 0) { var _local9 = CCoord.ToLocal(m_Launcher, m_TileSet); var _local14 = m_TileSet.PixelPosToGridCell(_local9.X, _local9.Y); if (m_TileSet.GetTileFromCoord(_local14) != null) { CDebug.WriteLine("CBoard.RequestShootSnood()", (("Lost by covered launcher : " + _local9.ToString()) + ", ") + _local14.ToString()); m_Lost = true; } else { CDebug.Assert(false, "CBoard.ShootSnood()", "traceShot returned null path"); } return(undefined); } var _local4 = null; if (((!_local7) && (!_local13)) && (_local6 != null)) { _local4 = _local6.Clone(); if (m_ShotTargets.length > 0) { var _local2 = 0; while (_local2 < m_ShotTargets.length) { var _local3 = CCoord(m_ShotTargets[_local2]); if (_local4.Equals(_local3)) { CDebug.WriteLine("CBoard.RequestShootSnood()", "Shot collision detected at " + _local4.ToString()); return(undefined); } _local2++; } } } _local5 = m_Launcher.Shoot(); if (_local5 == undefined) { CDebug.Assert(false, "CBoard.ShootSnood()", "found an Invalid projectile!!"); AdvanceLauncher(); return(undefined); } var _local8; if (SnoodHead(_local5) != null) { SnoodHead(_local5).__set__Size(m_TileSet.m_SnoodSize); _local5.m_xNextSlot = _local6.X; _local5.m_yNextSlot = _local6.Y; if (_local7) { CGame.Sounds.PlaySound(Constants.__get__Sound_HotfootBurn()); _local8 = CPhysicsObject.ShotState_Fireball; } else { CGame.Sounds.PlaySound(Constants.__get__Sound_Shoot()); _local8 = CPhysicsObject.ShotState_Connect; } } else { _local5.m_xNextSlot = null; _local5.m_yNextSlot = null; _local8 = CPhysicsObject.ShotState_Grab; CGame.Sounds.PlaySound(Constants.__get__Sound_Plunger()); } CGame.PhysMgr.shootObject(_local5, _local10, _local8, _local12, _local11); if (_local4 != null) { m_ShotTargets.push(_local4); } onShotFired(); } function AdvanceLauncher() { CDebug.Assert(GetActiveLauncher().IsEmpty(), "CBoard.AdvanceLauncher()", "Trying to advance into full launcher"); if (!m_Queue.IsEmpty()) { m_Queue.Advance(GetActiveLauncher().m_Orient); } } function onSpecialBorbLoaded() { } function onElevatorLoaded() { if (m_Queue.GetNextBorb() != null) { m_Launcher.Load(m_Queue.GetNextBorb()); } else { CDebug.WriteErr("CBoard.onElevatorLoaded()", "Elevator empty"); } } function onShotFired() { if (((!m_Queue.IsEmpty()) && (m_Launcher.IsEmpty())) && (m_Launcher.m_Mode != CLauncher.Mode_Hook)) { m_Queue.Advance(m_LauncherTrack.GetNextOrient()); } if (m_traceShotRemaining > 0) { m_traceShotRemaining--; updateShowTracer(); } } function onFinishedAllQueueAnim() { } function onFinishedFallInQueueAnim() { } function onTileSetDropComplete() { } function onXmlLoaded() { trace("xml loaded"); if (OwnerDlg == null) { return(undefined); } m_StartScore = CGame.CurrentPlayer.m_Score; m_lastScore = m_StartScore; ScoreDisplay.__set__Text(String(m_StartScore)); Core.DialogUtil.CloseAllNotVisibleBeneathMc(OwnerDlg); m_Background.gotoAndStop(m_CurLevelInfo.Background); m_Background._visible = true; m_LoseShadowBoundingClip.gotoAndStop("Normal"); CGame.CurrentPlayer.ResetBoardVariables(); Level.m_GameBoard = CGame.Board; Level.m_BoardLevel = 0; Effects.CEffect_BorbDropAnim.Reset(); GameState.m_CurrentGameMode = m_CurLevelInfo.Mode; m_TileSet.Init(); m_EffectsLayer._x = m_TileSet._x; m_EffectsLayer._y = m_TileSet._y; CDebug.WriteLine("CBoard.onXmlLoaded()", "Generate board, mode: " + m_CurLevelInfo.Mode); CLauncher.m_SnoodSize = SnoodHead.LauncherSnoodSize; Level.m_FillLevel = Constants.GetBoardModeFillLevel(GameState.__get__CurrentGameMode()); Level.m_LoseLevel = m_CurLevelInfo.LoseLevel; Level.m_ShiftedPieces = new Array(); Level.m_BoardLoser = undefined; Level.m_LosePieces = new Array(); CGame.Board.m_TileSet.InitTiles(new Array(m_TileSet.Rows * m_TileSet.Cols)); Level.BuildNeighborList(); Level.fillBoard(); var _local4 = 0; while (_local4 < m_CurLevelInfo.RandomHeadCounts.length) { if (m_CurLevelInfo.RandomHeadCounts[_local4] > 0) { AddBlockers(new CBorbInfo(_local4), m_CurLevelInfo.RandomHeadCounts[_local4]); } _local4++; } _local4 = 0; while (_local4 < m_CurLevelInfo.RandPowerupCounts.length) { if (m_CurLevelInfo.RandPowerupCounts[_local4] > 0) { var _local5 = m_CurLevelInfo.RandPowerupCounts[_local4]; var _local3 = 0; while (_local3 < _local5) { var _local2 = GetRandBorb(); _local2.Orb = true; _local2.PowerUp = _local4; AddBlockers(_local2, 1); _local3++; } } _local4++; } RefreshLevelName(); m_Queue.Init(Math.max(2, m_CurLevelInfo.DangerIncrements - (GameState.m_CurrentArcadeSetIteration * GameState.s_ArcadeSetIterDangerDecr))); DrawLoseBoundary(true); _visible = true; updateShowTracer(); m_TileSet.OnXmlLoaded(); Level.m_EvenBoard = (Math.floor(m_TileSet.Cols / 2) % 2) == 0; SetState(State_Playing); CPachinko.UpdateScore(); var _local6 = Effects.CEffect_StartAnim(CEffect.CreateEffect(CEffect.Type_StartAnim)); if (_local6.OnInit()) { CGame.EffectMgr.AddEffectToActiveList(_local6); } OwnerDlg.RefreshLocalization(); } function DbgShowAllSlotTypes(i_enabled) { m_TileSet.DbgShowAllSlotTypes(i_enabled); } function OnAddedBorb(x, y, newBorb, addDanger) { if (DbgIsShowingAllSlotTypes()) { m_TileSet.DbgShowAllSlotTypes(true); } if (CGame.DbgTraceColors) { CDebug.WriteLine(this, m_TileSet.DbgBoardColorCountToString()); } CGame.EffectMgr.SpawnEffectsForNewBorb(x, y, newBorb, addDanger); m_TileSet.UpdateBoundingBox(); return(CGame.EffectMgr.GetNumEffects() > 0); } function DrawLoseBoundary() { } function SetEnabled(i_val) { if (i_val == m_Disabled) { m_Disabled = !i_val; } } function PlayStartEffect() { } function StopStartEffect() { } function IsStartEffectPlaying() { return(false); } function ToggleMenu(inDisplayAnim) { if (inDisplayAnim == undefined) { inDisplayAnim = true; } if (inDisplayAnim && (((!IsInitialized()) || (m_Won)) || (m_Lost))) { return(undefined); } if (IsOnTop()) { if (m_Menu != null) { m_Menu.Close(); m_Menu = null; } if (inDisplayAnim) { m_Menu = UI.CBoardMenuDlg(Core.DialogUtil.Push(Constants.Dialog_GameBoardMenu)); CGame.m_startPauseTime = getTimer(); CPachinko.clearUpdate(); } else { m_Menu.gotoAndStop("Shown"); } } else if (m_Menu != null) { m_Menu.Close(); m_Menu = null; } } function ShowMenu() { if ((!IsMenuOpen()) && (IsOnTop())) { ToggleMenu(); } } function HideMenu() { if (IsMenuOpen()) { ToggleMenu(); } } function OnMenuClosed() { m_Menu = null; } function IsMenuOpen() { return(m_Menu != null); } function IsOnTop() { return(Core.DialogUtil.Top() == OwnerDlg); } function GetRandBorb(i_levelInfoDist) { var _local4 = null; var _local5 = Oberon.MathX.randRange(0, 100, 1); var _local3 = m_CurLevelInfo.HeadColorFreq; if (i_levelInfoDist) { var _local2 = 0; while ((_local4 == null) && (_local2 < _local3.length)) { if ((_local5 < _local3[_local2]) || (_local2 == (_local3.length - 1))) { _local4 = m_CurLevelInfo.HeadColors[_local2]; } _local5 = _local5 - _local3[_local2]; _local2++; } } else { _local4 = m_TileSet.GetRandColor(); } if (_local4 != null) { return(new CBorbInfo(_local4, Constants.PowerUp_None, null)); } return(null); } function IsBorbActive(i_color) { return(m_TileSet.GetColorCount(i_color, true) > 0); } function IsRound() { return(false); } function RefreshLevelName() { m_LevelText.text = (GetCurrentLevelName() + " ") + String(GameState.GetBaseLevel()); m_LevelText2.text = m_LevelText.text; m_LevelText.__localizeStr = m_LevelText.text; m_LevelText2.__localizeStr = m_LevelText.text; } function GetCurrentSeriesName() { return("Series " + String(GameState.m_CurrentArcadeSetIteration + 1)); } function GetCurrentLevelName() { return(CGame.Localizer.LocStr(CGame.LevelManifest.GetSet("Arcade").GetDisplayName(GameState.__get__CurrentLevel()) + "\rLevel")); } function DbgIsShowingAllSlotTypes() { return(DEBUGTXT != null); } function AddBlockers(blocker, blockerCount) { CDebug.WriteLine("CBoard.AddBlockers()", (("Add blocker " + blocker.ToString()) + ", ") + blockerCount); var _local17 = []; var _local16 = 0; while (_local16 < blockerCount) { var _local3 = true; var _local14 = 0; var _local2 = new CCoord(); while (_local3 && (_local14 < 10000)) { _local3 = false; if (CBoardCircular(this)) { _local2.Y = Math.floor(Core.Utility.rnd() * ((Level.m_FillLevel * 2) + 1)) - Level.m_FillLevel; var _local8 = (Level.m_FillLevel * 2) - Math.abs(_local2.Y); var _local10 = Math.ceil(-1 * (_local8 / 2)); var _local13 = Math.ceil(_local8 / 2); if (Level.m_EvenBoard) { _local10 = Math.floor(-1 * (_local8 / 2)); _local13 = Math.floor(_local8 / 2); } _local2.X = Math.floor((Core.Utility.rnd() * ((_local13 - _local10) + 1)) + _local10); if ((Math.abs(_local2.X) + Math.abs(_local2.Y)) <= 2) { _local3 = true; } _local2.X = Math.floor(Level.m_BoardColumns / 2) + _local2.X; _local2.Y = Math.floor(Level.m_BoardColumns / 2) + _local2.Y; } else { _local2.X = Math.floor(Core.Utility.rnd() * m_TileSet.Cols); _local2.Y = Math.floor(1 + (Core.Utility.rnd() * (Level.m_FillLevel - 1))); } var _local7 = Level.m_NeighborGrid[(_local2.X * Level.m_BoardRows) + _local2.Y]; var _local4 = _local7[0].length - 1; while (_local4 >= 0) { var _local12 = _local7[0][_local4]; var _local11 = _local7[1][_local4]; var _local5 = m_TileSet.GetTile(_local12, _local11); if ((((_local5 != undefined) && (_local5.__get__Color() == blocker.Color)) && (_local5.__get__PowerUp() == blocker.PowerUp)) && (_local5.Orb == blocker.Orb)) { _local3 = true; break; } _local4--; } _local3 = _local3 || (!Level.IsOccupied(_local2.X, _local2.Y)); if (!_local3) { var _local6 = 0; while (_local6 < blockerCount) { if (CCoord(_local17[_local6]).Equals(_local2)) { _local3 = true; } _local6++; } } _local14++; } CDebug.Assert(_local14 < 10000, this, ("Couldn't fill board with " + blockerCount) + " blockers in under 10000 attempts (not enough places open?)"); AddBlockerToSpace(_local2, blocker); _local16++; } } function AddBlockerToSpace(i_coord, i_blockerBorb) { var _local3 = SnoodHead.GetAndRemoveFromPool(i_blockerBorb, m_TileSet.m_SnoodSize, i_coord.X, i_coord.Y); Level.RemoveBorbFromCoord(i_coord); Level.AddBorbToCoord(i_coord, _local3, false); } function OnRevealFinished() { CGame.Board.SetEnabled(true); if (m_CurLevelInfo.TracerOn) { IncrementTraceShotRemaining(Number.POSITIVE_INFINITY); } m_TileSet.UpdateBoundingBox(); m_Queue.Refill(); CGame.EffectMgr.m_IdleAnimationsOn = true; } function StopSounds() { _global.Sounds.ForceStopSound(Constants.__get__Sound_Wild()); _global.Sounds.ForceStopSound(Constants.__get__Sound_BallSpin()); } function LoadBoard() { loadBoardHelper(GameState.GetCurrentLevelSet(), GameState.__get__CurrentLevel()); } function loadBoardHelper(i_type, i_levelIdx) { m_Lost = false; m_Won = false; CDebug.Assert(CGame.LevelManifest.GetSet(i_type).__get__Count() > 0, Level, ("No boards of type " + i_type) + " are loaded yet"); var _local3 = CGame.LevelManifest.GetSet(i_type).GetLevel(i_levelIdx).FileName; m_CurLevelInfo = new CLevelInfo(_local3); SetState(State_LoadingXml); } function GetTraceShot() { return(m_Launcher.GetShowTracer()); } function ToggleTraceShot() { SetTraceShot(!GetTraceShot(), false); } function SetTraceShot(i_val, i_noSetVar) { if (!i_noSetVar) { m_traceShot = i_val; } updateShowTracer(); } function updateShowTracer() { if (m_traceShotRemaining > 0) { m_tracerIndicatorMc._visible = true; m_tracerIndicator.__set__Text(String(m_traceShotRemaining)); } else { m_tracerIndicatorMc._visible = false; } GetActiveLauncher().SetShowTracer(m_traceShot && (m_traceShotRemaining > 0)); } function IncrementTraceShotRemaining(i_count) { m_traceShotRemaining = m_traceShotRemaining + i_count; updateShowTracer(); } function GetNewLaserMc(i_forBox, i_lastLaser, i_firstLaser) { var _local2 = TraceLaserHolderMc.getNextHighestDepth(); if (i_forBox) { var _local3 = TraceLaserHolderMc.attachMovie("TraceShotTarget", "Laser" + _local2, _local2); var _local4 = SnoodHead.SizeToScale(CGame.TileSet.m_SnoodSize); _local3._xscale = _local4; _local3._yscale = _local4; } else if (i_firstLaser) { var _local3 = TraceLaserHolderMc.attachMovie("TraceShotLaserStart", "Laser" + _local2, _local2); } else if (i_lastLaser) { var _local3 = TraceLaserHolderMc.attachMovie("TraceShotFade", "Laser" + _local2, _local2); } else { var _local3 = TraceLaserHolderMc.attachMovie("TraceShotLaser", "Laser" + _local2, _local2); } _local3.Loop = true; _local3.stop(); return(_local3); } function GetNewReboundLaserMc() { var _local3 = TraceLaserHolderMc.getNextHighestDepth(); var _local2 = TraceLaserHolderMc.attachMovie("ReboundLaser", "ReboundLaser" + _local3, _local3); _local2.stop(); return(_local2); } function AdvanceDanger() { SnoodHead.StopAllBoardMoveToTweens(); } function PopAllHeadAsBonus(i_maxWinHeadPopDelay) { var _local3 = m_TileSet.GetActiveBorbsFixedArray(); var _local5 = m_TileSet.GetActiveBorbsCount(); var _local2 = 0; while (_local2 < _local5) { var _local4 = SnoodHead(_local3[_local2]); if (_local4.__get__Color() <= (Constants.Snood_HeadCount * 2)) { SnoodHead(_local3[_local2]).Vaporize(false, true, null, i_maxWinHeadPopDelay, 3); Level.InvalidateSpot(SnoodHead(_local3[_local2])); } _local2++; } m_Queue.PopAllHeadAsBonus(); if (m_Launcher.m_LaunchSnood._visible) { m_Launcher.m_LaunchSnood.Vaporize(true, true, null, null, 5); } if (m_Launcher.m_CannonSnood._visible) { m_Launcher.m_CannonSnood.Vaporize(true, true, null, null, 5); } } function InsertBorbAtCannon(i_borbInfo, i_replace) { if (i_borbInfo.PowerUp == Constants.PowerUp_Aimer) { m_Launcher.ApplyPowerup(i_borbInfo.PowerUp, i_borbInfo.Color); IncrementTraceShotRemaining(s_TraceShotIncr); } else { m_Launcher.Load(i_borbInfo); m_Queue.InsertBorbAtElevator(i_borbInfo, i_replace); } } function OnShotComplete() { m_InPlungerGrab = false; m_RubberLubberHitThisShot = false; } function OnMouseDown() { if (IsInitialized()) { if (FHost.CApp.__get__IsRunning() || ((((_root._xmouse >= 0) && (_root._xmouse <= Constants.GameResX)) && (_root._ymouse >= 0)) && (_root._ymouse <= Constants.GameResY))) { if (CGame.EffectMgr.IsCategoryPlaying(CEffect.Cat_GameTransition)) { if (CGame.EffectMgr.IsEffectPlaying(CEffect.Type_WinAnim)) { var _local4 = CGame.EffectMgr.GetAllEffectsOfType(CEffect.Type_WinAnim); var _local3 = 0; while (_local3 < _local4.length) { _local3++; } } else if (CGame.EffectMgr.IsEffectPlaying(CEffect.Type_LoseAnim)) { var _local4 = CGame.EffectMgr.GetAllEffectsOfType(CEffect.Type_LoseAnim); var _local3 = 0; while (_local3 < _local4.length) { Effects.CEffect_LoseAnim(_local4[_local3]).StartLumpDrop(); _local3++; } } else if (CGame.EffectMgr.IsEffectPlaying(CEffect.Type_StartAnim)) { if (Core.DialogUtil.Top() == OwnerDlg) { CGame.EffectMgr.KillAllEffectsOfType(CEffect.Type_StartAnim); } } else { CDebug.Assert(false, "CBoard.OnMouseDown", "Can't skip unknown transition"); } } else { RequestShootSnood(); } } } } function OnRMouseDown() { } static var G = null; static var s_LevelTextColor = 16737792; static var s_ScoreTextColor = 16737792; static var s_TraceShotIncr = 3; static var s_HookIncr = 2; static var s_XmlLoadTimeOut = 30; static var s_XmlLoadTimeOutMax = 3; static var s_XmlLoadTimeOutCount = 0; static var s_ScoreBounceDur = 1; static var s_ScoreBounceMag = 50; static var s_ScoreColorTint = 16711680; static var s_ScoreColorTintDur = 0.5; static var s_ScoreColorTintDelay = 0.5; static var s_PointsYDisplacement = 70; var FadeInDur = 1; var m_Menu = null; var m_Won = false; var m_Lost = false; var m_Disabled = false; var m_traceShot = true; var m_traceShotRemaining = 0; static var State_Loading = 1; static var State_LoadingXml = 2; static var State_Playing = 3; static var State_Dropping = 4; static var State_Disposing = 5; }
Symbol 14 MovieClip [__Packages.StaticText] Frame 0
class StaticText extends MovieClip { var _name, _parent, TextMc, createEmptyMovieClip, getNextHighestDepth, _width, _height, Marker, _xscale, _yscale, IgnoreColorTrans, ColorTransform; function StaticText () { super(); MovieClip(this).cacheAsBitmap = true; } function set Text(inVal) { if (_text != inVal) { _text = inVal; if (_loaded) { ResetText(); } } //return(Text); } function get Text() { return(_text); } function set Align(inVal) { _align = inVal; //return(Align); } function get Align() { return(_align); } function set AutoFit(inVal) { if (_autoFit != inVal) { _autoFit = inVal; ResetText(); } //return(AutoFit); } function get AutoFit() { return(_autoFit); } function refreshTextSrc() { var _local2 = _parent[_name + "Text"]; if (_local2 == null) { _local2 = _parent[_name + " Text"]; } if (_local2 != null) { _local2._visible = false; _text = _local2.text; Align = (_local2.getTextFormat().align); XScale = _local2._xscale; YScale = _local2._yscale; } } function onLoad() { TextMc = createEmptyMovieClip("TextHolderMc", getNextHighestDepth()); _loaded = true; if (_autoFit) { _autoFitOrigWidth = _width; _autoFitOrigHeight = _height; } ResetText(); } function ResetText() { if (!_loaded) { return(undefined); } TextRenderer.RemoveText(TextMc); TextMc._x = 0; TextMc._y = 0; refreshTextSrc(); if (_text != null) { attachText(); if (Marker._visible) { Marker._visible = false; Marker._width = 0; Marker._height = 0; } if ((_autoFit && (_width > 0)) && (_height > 0)) { if (_bounceScale != null) { _xscale = _bounceScale; _yscale = _bounceScale; } else { _xscale = Math.min((_autoFitOrigWidth / _width) * 100, (_autoFitOrigHeight / _height) * 100); _yscale = _xscale; } } TextMc._x = TextMc._x - (TextMc._width / 2); TextMc._y = TextMc._y - (TextMc._height / 2); } } function drawDebugLines() { var _local3 = TextMc._width; var _local2 = TextMc._height; TextMc.lineStyle(2, 16711680, 100); TextMc.moveTo(0, 0); TextMc.lineTo(0, _local2); TextMc.lineTo(_local3, _local2); TextMc.lineTo(_local3, 0); TextMc.lineTo(0, 0); } function attachText() { if (_text != null) { _xscale = 100; _yscale = 100; var _local5 = (_autoFit ? "left" : (Align)); var _local7; if ((!IgnoreColorTrans) && (ColorTransform != null)) { var _local3 = (ColorTransform >> 16) & 255; var _local6 = (ColorTransform >> 8) & 255; var _local4 = ColorTransform & 255; _local7 = {ra:(_local3 / 255) * 100, rb:_local3, ga:(_local6 / 255) * 100, gb:_local6, ba:(_local4 / 255) * 100, bb:_local4, aa:ColorAlphaLevel, ab:0}; } var _local2 = {xoffset:XBuffer, yoffset:YBuffer, charspacing:CharSpacing, spacewidth:10, lineheight:30, align:_local5, totalalign:_local5, xscale:XScale / 100, yscale:YScale / 100, colortransform:_local7, innerhide:InnerColorHide, innertint:InnerColorTint, extralinesp:ExtraNewLineSpacing}; if (_autoFit) { _local2.forcewidth = _autoFitOrigWidth; _local2.forceheight = _autoFitOrigHeight; } if (_bounceScale == null) { _chars = TextRenderer.MakeText(TextMc, _text, _local2); } else { _lastParams = _local2; } } } function DoInnerColorTween(i_toColor, i_dur, i_holdDur, i_immediateDelay) { if (_colorTintBeforeTween != null) { return(undefined); } _colorTintBeforeTween = InnerColorTint; _colorTintHold = i_holdDur; _colorTintDur = i_dur; var _local6 = (i_toColor >> 16) & 255; var _local4 = (i_toColor >> 8) & 255; var _local10 = i_toColor & 255; var _local11 = (InnerColorTint >> 16) & 255; var _local9 = (InnerColorTint >> 8) & 255; var _local5 = InnerColorTint & 255; var _local2 = mx.utils.Delegate.create(this, onColorTweenChange); _colorTweens.push(new Core.CTween(this, "_tweenR", Core.CTween.DefaultMcTween, _local11, _local6, i_dur, null, i_immediateDelay)); Core.CTween(_colorTweens[_colorTweens.length - 1]).onMotionChanged = mx.utils.Delegate.create(this, _local2); Core.CTween(_colorTweens[_colorTweens.length - 1]).onMotionFinished = mx.utils.Delegate.create(this, _local2); _colorTweens.push(new Core.CTween(this, "_tweenG", Core.CTween.DefaultMcTween, _local9, _local4, i_dur, null, i_immediateDelay)); Core.CTween(_colorTweens[_colorTweens.length - 1]).onMotionChanged = mx.utils.Delegate.create(this, _local2); Core.CTween(_colorTweens[_colorTweens.length - 1]).onMotionFinished = mx.utils.Delegate.create(this, _local2); _colorTweens.push(new Core.CTween(this, "_tweenB", Core.CTween.DefaultMcTween, _local5, _local10, i_dur, null, i_immediateDelay)); Core.CTween(_colorTweens[_colorTweens.length - 1]).onMotionChanged = mx.utils.Delegate.create(this, _local2); Core.CTween(_colorTweens[_colorTweens.length - 1]).onMotionFinished = mx.utils.Delegate.create(this, _local2); } function onColorTweenChange(i_tween) { if (!i_tween.m_IsPlaying) { var _local3 = _colorTweens.length; var _local2 = 0; while (_local2 < _local3) { if (_colorTweens[_local2] == i_tween) { _colorTweens.splice(_local2, 1); _local2 = _local3; } _local2++; } } if (((_tweenR != null) && (_tweenG != null)) && (_tweenB != null)) { InnerColorTint = ((_tweenR << 16) + (_tweenG << 8)) + _tweenB; ResetText(); _tweenR = null; _tweenG = null; _tweenB = null; } if (_colorTweens.length == 0) { if (_colorTintHold != null) { var _local5 = _colorTintBeforeTween; _colorTintBeforeTween = null; DoInnerColorTween(_local5, _colorTintDur, null, _colorTintHold); } else { _colorTintBeforeTween = null; } } } function Bounce(i_dur, i_pctMag) { if (_bounceScale != null) { return(undefined); } _bounceScale = _xscale; var _local2 = 0; while (_local2 < _chars.length) { var _local4 = MovieClip(_chars[_local2]); var _local3 = new Core.CTween(_local4, "_y", CustomTweens.Bounce.SingleBounce, 0, -((i_pctMag * _local4._height) / 100), i_dur / 2, true, ((_local2 / _chars.length) * i_dur) / 2); _local3.onMotionFinished = mx.utils.Delegate.create(this, onTweenFinish); _tweens.push(_local3); _local2++; } } function onTweenFinish(i_tween) { var _local3 = _tweens.length; var _local2 = 0; while (_local2 < _local3) { if (_tweens[_local2] == i_tween) { _tweens.splice(_local2, 1); _local2 = _local3; } _local2++; } i_tween.m_Obj._y = 0; if (_tweens.length == 0) { _bounceScale = null; if (_lastParams != null) { _chars = TextRenderer.MakeText(TextMc, _text, _lastParams); _lastParams = null; } } } var XScale = 100; var YScale = 100; var XBuffer = 0; var YBuffer = 0; var ColorAlphaLevel = 100; var InnerColorTint = null; var InnerColorHide = false; var ExtraNewLineSpacing = 0; var CharSpacing = -2; var _align = "center"; var _autoFit = false; var _text = null; var _autoFitOrigWidth = null; var _autoFitOrigHeight = null; var _chars = []; var _loaded = false; var _tweens = []; var _colorTweens = []; var _bounceScale = null; var _colorTintBeforeTween = null; var _colorTintDur = null; var _colorTintHold = null; var _tweenR = null; var _tweenG = null; var _tweenB = null; var _lastParams = null; }
Symbol 15 MovieClip [__Packages.TextRenderer] Frame 0
class TextRenderer { function TextRenderer () { } static function RemoveText(inBaseMovie, inKey) { if (inKey == undefined) { inKey = "text"; } var _local2 = 0; for(;;){ var _local1 = inBaseMovie[inKey + _local2]; if (!(_local1 === undefined)) { if (_local1 != null) { _local1.removeMovieClip(); } else { delete inBaseMovie[inKey + _local2]; } } else { break; } _local2++; }; } static function MakeText(inBaseMovie, inText, inOptions) { var _local50 = []; var _local47 = inOptions.xoffset; if (_local47 == undefined) { _local47 = 0; } var _local49 = inOptions.yoffset; if (_local49 == undefined) { _local49 = 0; } var _local36 = inOptions.charspacing; if (_local36 == undefined) { _local36 = 0; } var _local27 = inOptions.colortransform; if (_local27 == undefined) { _local27 = null; } var _local37 = inOptions.shouldskew; if (_local37 == undefined) { _local37 = false; } var _local38 = inOptions.spacewidth; if (_local38 == undefined) { _local38 = 10; } var _local45 = inOptions.lineheight; if (_local45 == undefined) { _local45 = 10; } var _local20 = inOptions.key; if (_local20 == undefined) { _local20 = "text"; } var _local39 = inOptions.align; if (_local39 == undefined) { _local39 = "center"; } var _local10 = inOptions.totalalign; if (_local10 == undefined) { _local10 = "center"; } var _local25 = inOptions.xscale; if (_local25 == undefined) { _local25 = 1; } var _local26 = inOptions.yscale; if (_local26 == undefined) { _local26 = 1; } var _local52 = inOptions.forcewidth; if (_local52 == undefined) { _local52 = inBaseMovie._width; } var _local54 = inOptions.forceheight; if (_local54 == undefined) { _local54 = inBaseMovie._height; } var _local30 = inOptions.curvexscale; if (_local30 == undefined) { _local30 = 1; } var _local29 = inOptions.curveyscale; if (_local29 == undefined) { _local29 = 1; } var _local28 = inOptions.innertint; if (_local28 == undefined) { _local28 = null; } var _local48 = inOptions.innerhide; if (_local48 == undefined) { _local48 = false; } var _local46 = inOptions.extralinesp; if (_local46 == undefined) { _local46 = 0; } _local36 = _local36 * _local25; _local38 = _local38 * _local25; _local45 = _local45 * _local26; var _local11 = _local52; var _local12 = _local54; if (inText.charAt(0) == "~") { inText = inText.substr(1); _local37 = true; } if (inText.charAt(inText.length - 1) == "}") { var _local53 = inText.lastIndexOf("{"); var _local55 = inText.substr(_local53 + 1, (inText.length - _local53) - 2); inText = inText.substr(0, _local53); var _local40 = _local55.split(";"); var _local14 = 0; while (_local14 < _local40.length) { var _local2 = String(_local40[_local14]).split("="); _local2[0] = _local2[0].toLowerCase(); if (_local2[0] == "intint") { _local28 = Number(_local2[1]); } else if (_local2[0] == "cx") { _local30 = Number(_local2[1]); } else if (_local2[0] == "cy") { _local29 = Number(_local2[1]); } else if (_local2[0] == "rgb") { var _local17 = String(_local2[1]).split(","); _local27 = MakeNormalColor({r:Number(_local17[0]), g:Number(_local17[1]), b:Number(_local17[2])}); } else if (_local2[0] == "align") { _local10 = String(_local2[1]); } else if (_local2[0] == "load") { inText = inText + FHost.CApp.GetGameConfigString(_local2[1]); } _local14++; } } inText = inText.toUpperCase(); var _local3 = [0]; var _local7 = 0; var _local51 = {}; var _local13 = 0; var _local41 = 0; var _local31 = false; var _local4 = 0; var _local15 = (Math.PI/180); var _local14 = 0; while (_local14 < inText.length) { if (inText.charAt(_local14) == " ") { _local13 = _local13 + _local38; _local3[_local4] = _local3[_local4] + _local38; inBaseMovie[_local20 + _local14] = null; } else if ((inText.charCodeAt(_local14) == 13) || (inText.charCodeAt(_local14) == 10)) { _local13 = 0; _local41 = _local41 + (_local45 + _local46); _local3.push(0); _local4++; inBaseMovie[_local20 + _local14] = null; } else { var _local1 = inBaseMovie.createEmptyMovieClip(_local20 + _local14, inBaseMovie.getNextHighestDepth()); var _local9 = inText.charAt(_local14); if (_local9 == "/") { _local9 = "slash"; } if (_local9 == "\"") { if (_local31) { _local31 = false; _local9 = "\"\""; } else { _local31 = true; } } _local1.attachMovie(_local9, "inner", 0); _local50.push(_local1); _local1.inner._width = _local1.inner._width * _local25; _local1.inner._height = _local1.inner._height * _local26; if (_local48) { _local1.inner.FontBack._visible = false; } if (_local28 != null) { var _local35 = new Color(_local1.inner.FontTint); _local35.setRGB(_local28); } if (_local27 != null) { var _local34 = new Color(_local1); _local34.setTransform(_local27); } var _local19 = _local13; var _local18 = _local13 + _local1._width; _local19 = (((_local19 * (1 / _local25)) * 0.05) * _local30) + 2.35619449019234; _local18 = (((_local18 * (1 / _local25)) * 0.05) * _local30) + 2.35619449019234; var _local22 = ((Math.sin(_local19) * 6) * _local26) * _local29; var _local33 = ((Math.sin(_local18) * 6) * _local26) * _local29; if (_local37) { var _local21 = Math.asin((_local33 - _local22) / _local1._width) / _local15; _local1.inner._rotation = -45; _local1._rotation = (_local21 / 2) + 45; var _local23 = _local21 * _local15; var _local24 = Math.sin(_local1._rotation * _local15); _local1._xscale = ((100 * (1 + Math.sin(_local23))) / _local24) * Math.sin(45 * _local15); _local1._yscale = ((100 * Math.cos(_local23)) / _local24) * Math.sin(45 * _local15); } var _local8 = _local51[_local9]; if (_local8 == undefined) { _local8 = {}; _local8.x = 0; _local8.y = 0; } _local1._x = _local13 + _local8.x; _local1._y = _local41 + _local8.y; _local13 = _local13 + (_local1._width + _local36); if (_local37) { _local1._y = _local1._y + _local22; } _local3[_local4] = _local3[_local4] + (_local1._width + _local36); _local7 = Math.max(_local7, _local1._y + _local1._height); } _local14++; } var _local6 = 0; _local14 = 0; while (_local14 < _local3.length) { _local6 = Math.max(_local6, _local3[_local14]); _local14++; } _local4 = 0; _local14 = 0; while (_local14 < inText.length) { if (inText.charCodeAt(_local14) == 13) { _local4++; } else { var _local1 = inBaseMovie[_local20 + _local14]; if (_local1 != undefined) { if (_local39 == "left") { if (_local10 == "left") { } else if (_local10 == "right") { _local1._x = _local1._x + (_local11 - _local6); _local1._y = _local1._y + ((_local12 / 2) - (_local7 / 2)); } else { _local1._x = _local1._x + ((_local11 / 2) - (_local6 / 2)); _local1._y = _local1._y + ((_local12 / 2) - (_local7 / 2)); } } else if (_local39 == "right") { if (_local10 == "left") { _local1._x = _local1._x + (_local6 - _local3[_local4]); } else if (_local10 == "right") { _local1._x = _local1._x + (_local11 - _local3[_local4]); _local1._y = _local1._y + ((_local12 / 2) - (_local7 / 2)); } else { _local1._x = _local1._x + (((_local11 / 2) + (_local6 / 2)) - _local3[_local4]); _local1._y = _local1._y + ((_local12 / 2) - (_local7 / 2)); } } else if (_local10 == "left") { _local1._x = _local1._x + ((_local6 / 2) - (_local3[_local4] / 2)); } else if (_local10 == "right") { _local1._x = _local1._x + ((_local11 - (_local6 / 2)) - (_local3[_local4] / 2)); _local1._y = _local1._y + ((_local12 / 2) - (_local7 / 2)); } else { _local1._x = _local1._x + ((_local11 / 2) - (_local3[_local4] / 2)); _local1._y = _local1._y + ((_local12 / 2) - (_local7 / 2)); } _local1._x = _local1._x + _local47; _local1._y = _local1._y + _local49; } } _local14++; } return(_local50); } static function GetNextColor() { var _local1 = colors[colorIndex]; if ((++colorIndex) == colors.length) { colorIndex = 0; } return(_local1); } static function MakeNormalColor(inColor) { var _local2 = {ra:50, rb:inColor.r, ga:50, gb:inColor.g, ba:50, bb:inColor.b, aa:100, ab:0}; return(_local2); } static function MakeHoverColor(inColor) { var _local2 = {ra:25, rb:inColor.r * 0.75, ga:25, gb:inColor.g * 0.75, ba:25, bb:inColor.b * 0.75, aa:100, ab:0}; return(_local2); } static function MakePushedColor(inColor) { var _local2 = {ra:0, rb:inColor.r, ga:0, gb:inColor.g, ba:0, bb:inColor.b, aa:100, ab:0}; return(_local2); } static var colorIndex = 0; static var colors = [{r:100, g:0, b:0}, {r:125, g:40, b:0}, {r:90, g:90, b:0}, {r:0, g:75, b:0}, {r:0, g:100, b:100}, {r:0, g:0, b:125}, {r:75, g:0, b:115}]; }
Symbol 16 MovieClip [__Packages.FHost.CApp] Frame 0
class FHost.CApp { static var _callbacks, __get__MouseAbsBounds; function CApp () { } static function get Channel_Sound() { return("channel_sound"); } static function get Channel_Music() { return("channel_music"); } static function get Channel_Voice() { return("channel_voice"); } static function get Channel_All() { return("channel_*"); } static function get Stream_All() { return("*"); } static function get ComputerSpeed_Slow() { return(0); } static function get ComputerSpeed_Normal() { return(1); } static function get ComputerSpeed_Fast() { return(2); } static function Install(inCallbacks) { _root.watch("HOST_RButtonUpPos", handler); _root.watch("HOST_RButtonDownPos", handler); _root.watch("HOST_MButtonUpPos", handler); _root.watch("HOST_MButtonDownPos", handler); _root.watch("HOST_EscDown", handler); _root.watch("HOST_ContextKeyDown", handler); _root.watch("HOST_RequestClose", handler); _root.watch("HOST_AppActivate", handler); _root.watch("HOST_SysMenu", handler); _root.watch("HOST_SoundEnded", handler); _root.watch("HOST_DoneInitializing", handler); _callbacks = inCallbacks; var _local4 = _root.createEmptyMovieClip("FHostCAppMonitor", _root.getNextHighestDepth()); var first = true; _local4.onEnterFrame = function () { fscommand ("HOST_Ping"); var _local3 = FHost.CApp.parsePos(_root.HOST_MouseDelta); if (_local3 != null) { FHost.CApp.m_MouseDeltaX = FHost.CApp.m_MouseDeltaX + _local3.x; FHost.CApp.m_MouseDeltaY = FHost.CApp.m_MouseDeltaY + _local3.y; if (FHost.CApp.m_MouseAbsBounds == null) { FHost.CApp.m_MouseAbsBounds = {l:0, t:0, r:_root._width, b:_root._height}; } FHost.CApp.m_MouseAbsX = FHost.CApp.m_MouseAbsX + _local3.x; if (FHost.CApp.m_MouseAbsX < FHost.CApp.m_MouseAbsBounds.l) { FHost.CApp.m_MouseAbsX = FHost.CApp.m_MouseAbsBounds.l; } if (FHost.CApp.m_MouseAbsX >= FHost.CApp.m_MouseAbsBounds.r) { FHost.CApp.m_MouseAbsX = FHost.CApp.m_MouseAbsBounds.r - 1; } FHost.CApp.m_MouseAbsY = FHost.CApp.m_MouseAbsY + _local3.y; if (FHost.CApp.m_MouseAbsY < FHost.CApp.m_MouseAbsBounds.t) { FHost.CApp.m_MouseAbsY = FHost.CApp.m_MouseAbsBounds.t; } if (FHost.CApp.m_MouseAbsY >= FHost.CApp.m_MouseAbsBounds.b) { FHost.CApp.m_MouseAbsY = FHost.CApp.m_MouseAbsBounds.b - 1; } } else { FHost.CApp.m_MouseAbsX = _root._xmouse; FHost.CApp.m_MouseAbsY = _root._ymouse; } if (first) { first = false; } else if (!FHost.CApp.__get__IsRunning()) { this.removeMovieClip(); return(undefined); } }; } static function NotifyDoneLoading() { if (IsRunning) { fscommand ("HOST_NotifyLoadComplete"); } else { _root.HOST_DoneInitializing = "1"; } } static function SetCursorModeDelta() { fscommand ("HOST_SetCursorMode", "Delta"); } static function SetCursorModeAbsolute() { fscommand ("HOST_SetCursorMode", "Absolute"); } static function get MouseDelta() { var _local1 = {x:m_MouseDeltaX, y:m_MouseDeltaY}; return(_local1); } static function ClearMouseDelta() { m_MouseDeltaX = 0; m_MouseDeltaY = 0; } static function TakeMouseDelta() { var _local1 = MouseDelta; ClearMouseDelta(); return(_local1); } static function set MouseAbsBounds(inMouseAbsBounds) { m_MouseAbsBounds = inMouseAbsBounds; //return(__get__MouseAbsBounds()); } static function get MouseAbs() { var _local1 = {x:m_MouseAbsX, y:m_MouseAbsY}; return(_local1); } static function set Fullscreen(inFullScreen) { _root.HOST_Fullscreen = (inFullScreen ? "1" : "0"); if (IsRunning) { fscommand ("HOST_SetWindowMode", (inFullScreen ? "fullscreen" : "windowed")); } else { fscommand ("fullscreen", inFullScreen); } //return(Fullscreen); } static function get Fullscreen() { return(_root.HOST_Fullscreen == "1"); } static function get ForceFullscreen() { return(_root.HOST_ForceFullscreen == "1"); } static function get IsDebugMode() { if (IsRunning) { return(_root.HOST_BuildMode.toLowerCase() == "debug"); } return(System.capabilities.isDebugger); } static function get PrivateBuild() { return(_root.HOST_PrivateBuild); } static function get SpecialBuild() { return(_root.HOST_SpecialBuild); } static function get IsPreRelease() { return(_root.HOST_PreRelease == "1"); } static function get GameVersion() { return(_root.HOST_GameVersion); } static function get DefaultPlayerName() { return(_root.HOST_DefaultPlayerName); } static function get ShouldShowReportBugButton() { return(_root.HOST_ShouldShowReportBugButton == "1"); } static function get ShouldShowOpenSurveyButton() { return(_root.HOST_ShouldShowOpenSurveyButton == "1"); } static function get IsRunning() { return(_root.HOST_Ping.toLowerCase() == "pong"); } static function GetGameConfigString(inKeyName, inDefault) { var _local2 = _root["HOST_Game_" + inKeyName]; if (_local2 == undefined) { return(inDefault); } _local2 = Oberon.StringX.replace(_local2, "\\n", "\r"); return(_local2); } static function GetGameConfigBool(inKeyName, inDefault) { var _local2 = _root["HOST_Game_" + inKeyName].toLowerCase(); if (_local2 == undefined) { return(inDefault); } return(((_local2 == "1") || (_local2 == "t")) || (_local2 == "true")); } static function get ComputerSpeed() { if (IsRunning) { if (_root.HOST_ComputerSpeed == "fast") { return(ComputerSpeed_Fast); } if (_root.HOST_ComputerSpeed == "slow") { return(ComputerSpeed_Slow); } return(ComputerSpeed_Normal); } return(ComputerSpeed_Fast); } static function get IsSlowComputerSpeed() { return(ComputerSpeed == ComputerSpeed_Slow); } static function get IsNormalComputerSpeed() { return(ComputerSpeed == ComputerSpeed_Normal); } static function get IsFastComputerSpeed() { return(ComputerSpeed == ComputerSpeed_Fast); } static function set GlobalVolume(inVolume) { _root.HOST_GlobalVolume = inVolume; fscommand ("HOST_SetGlobalVolume", inVolume); //return(GlobalVolume); } static function get GlobalVolume() { var _local2 = "HOST_GlobalVolume"; var _local3 = 100; if (_root[_local2] != undefined) { _local3 = _root[_local2]; } return(_local3); } static function SetAudioVolume(inAudioName, inVolume) { inAudioName = inAudioName.toLowerCase(); if (Oberon.StringX.startsWith(inAudioName, "channel_")) { _root["HOST_AudioVolume_" + inAudioName] = inVolume; } fscommand ("HOST_SetAudioVolume", (("name=" + inAudioName) + "&volume=") + String(inVolume)); } static function GetAudioVolume(inChannelName) { var _local2 = "HOST_AudioVolume_" + inChannelName; var _local3 = 100; if (_root[_local2] != undefined) { _local3 = _root[_local2]; } return(_local3); } static function PlayAudio(inStreamName, inParams) { var _local2 = (inParams.loop ? "1" : "0"); var _local6 = ((inParams.volume != undefined) ? (String(inParams.volume)) : "100"); var _local3 = (inParams.paused ? "1" : "0"); var _local7 = ((inParams.channel != undefined) ? (inParams.channel) : (Channel_Sound)); var _local5 = (inParams.unique ? "1" : "0"); var _local4 = (inParams.notifyEnd ? "1" : "0"); fscommand ("HOST_PlayAudio", (((((((((((("name=" + inStreamName) + "&loop=") + _local2) + "&volume=") + _local6) + "&paused=") + _local3) + "&channel=") + _local7) + "&unique=") + _local5) + "&notifyEnd=") + _local4); } static function PauseAudio(inAudioName, inParams) { var _local3 = ((inParams.pause != undefined) ? ((inParams.pause ? "1" : "0")) : "1"); var _local2 = (inParams.fadeout ? "1" : "0"); var _local4 = ((inParams.fadetime != undefined) ? (String(inParams.fadetime)) : "2.0"); fscommand ("HOST_PauseAudio", (((((("name=" + inAudioName) + "&pause=") + _local3) + "&fadeout=") + _local2) + "&fadetime=") + _local4); } static function ResumeAudio(inAudioName, inParams) { if (inParams == null) { inParams = {}; } inParams.pause = false; PauseAudio(inAudioName, inParams); } static function StopAudio(inAudioName, inParams) { var _local1 = (inParams.fadeout ? "1" : "0"); var _local2 = ((inParams.fadetime != undefined) ? (String(inParams.fadetime)) : "2.0"); fscommand ("HOST_StopAudio", (((("name=" + inAudioName) + "&fadeout=") + _local1) + "&fadetime=") + _local2); } static function StopAllAudio(inParams) { StopAudio(Stream_All, inParams); } static function StripReportBugInBrowser() { fscommand ("HOST_StripReportBugInBrowser"); } static function StripOpenSurveyInBrowser() { fscommand ("HOST_StripOpenSurveyInBrowser"); } static function StripDbgSetTimeOffset(inOffsetSeconds) { fscommand ("HOST_StripDbgSetTimeOffset", "offset=" + String(inOffsetSeconds)); } static function StripSetCustomParamsForNextEvent(inParamNames, inParamValues) { var _local3 = inParamNames.length; var _local2 = ""; var _local1 = 0; while (_local1 < _local3) { if (_local1 != 0) { _local2 = _local2 + "&"; } _local2 = _local2 + escape(inParamNames[_local1]); _local2 = _local2 + "="; _local2 = _local2 + escape(inParamValues[_local1]); _local1++; } fscommand ("HOST_StripSetCustomParamsForNextEvent", _local2); } static function StripStartGame(inGameTimeSeconds, inMode) { fscommand ("HOST_StripStartGame", (("gametime=" + String(inGameTimeSeconds)) + "&mode=") + escape(inMode)); } static function StripEndGame(inGameTimeSeconds, inMode, inScore, inReason) { fscommand ("HOST_StripEndGame", (((((("gametime=" + String(inGameTimeSeconds)) + "&mode=") + escape(inMode)) + "&score=") + String(inScore)) + "&reason=") + escape(inReason)); } static function StripEnterLevel(inGameTimeSeconds, inNum, inType) { fscommand ("HOST_StripEnterLevel", (((("gametime=" + String(inGameTimeSeconds)) + "&num=") + escape(inNum)) + "&type=") + escape(inType)); } static function StripExitLevel(inGameTimeSeconds, inNum, inType, inScore, inReason) { fscommand ("HOST_StripExitLevel", (((((((("gametime=" + String(inGameTimeSeconds)) + "&num=") + escape(inNum)) + "&type=") + escape(inType)) + "&score=") + String(inScore)) + "&reason=") + escape(inReason)); } static function StripUIScreenChange(inGameTimeSeconds, inName) { fscommand ("HOST_StripUIScreenChange", (("gametime=" + String(inGameTimeSeconds)) + "&name=") + escape(inName)); } static function StripUIControlChange(inGameTimeSeconds, inName, inValue) { fscommand ("HOST_StripUIControlChange", (((("gametime=" + String(inGameTimeSeconds)) + "&name=") + escape(inName)) + "&value=") + escape(inValue)); } static function StripMouseButtonChange(inGameTimeSeconds, inPlayerId, inButton, inIsDown, inX, inY) { var _local1 = (inIsDown ? "1" : "0"); } static function StripKeyChange(inGameTimeSeconds, inPlayerId, inKeyCode, inIsDown) { } static function StripGoodAction(inGameTimeSeconds, inPlayerId, inType, inValue) { fscommand ("HOST_StripGoodAction", (((((("gametime=" + String(inGameTimeSeconds)) + "&playerid=") + escape(inPlayerId)) + "&type=") + escape(inType)) + "&value=") + escape(inValue)); } static function StripNotGoodAction(inGameTimeSeconds, inPlayerId, inType, inValue) { fscommand ("HOST_StripNotGoodAction", (((((("gametime=" + String(inGameTimeSeconds)) + "&playerid=") + escape(inPlayerId)) + "&type=") + escape(inType)) + "&value=") + escape(inValue)); } static function StripPowerUpCollected(inGameTimeSeconds, inPlayerId, inType, inHow) { fscommand ("HOST_StripPowerUpCollected", (((((("gametime=" + String(inGameTimeSeconds)) + "&playerid=") + escape(inPlayerId)) + "&type=") + escape(inType)) + "&how=") + escape(inHow)); } static function StripPowerUpUsed(inGameTimeSeconds, inPlayerId, inType, inHow) { fscommand ("HOST_StripPowerUpUsed", (((((("gametime=" + String(inGameTimeSeconds)) + "&playerid=") + escape(inPlayerId)) + "&type=") + escape(inType)) + "&how=") + escape(inHow)); } static function StripStatChanged(inGameTimeSeconds, inPlayerId, inType, inValue) { fscommand ("HOST_StripStatChanged", (((((("gametime=" + String(inGameTimeSeconds)) + "&playerid=") + escape(inPlayerId)) + "&type=") + escape(inType)) + "&value=") + String(inValue)); } static function StripStatChangedBuffered(inGameTimeSeconds, inMinIntervalSeconds, inPlayerId, inType, inValue) { fscommand ("HOST_StripStatChanged", (((((((("gametime=" + String(inGameTimeSeconds)) + "&mininterval=") + String(inMinIntervalSeconds)) + "&playerid=") + escape(inPlayerId)) + "&type=") + escape(inType)) + "&value=") + String(inValue)); } static function StripRecordCustomEvent(inType, inGameTimeSeconds, inParamNames, inParamValues) { var _local3 = inParamNames.length; var _local2 = (("type=" + escape(inType)) + "&gametime=") + String(inGameTimeSeconds); var _local1 = 0; while (_local1 < _local3) { _local2 = _local2 + "&"; _local2 = _local2 + escape(inParamNames[_local1]); _local2 = _local2 + "="; _local2 = _local2 + escape(inParamValues[_local1]); _local1++; } fscommand ("HOST_StripRecordCustomEvent", _local2); } static function Quit() { fscommand ("quit"); } static function OpenWebBrowser(inUrl) { if (IsRunning) { fscommand ("HOST_OpenWebBrowser", inUrl); } else { getURL (inUrl, "_blank"); } } static function Log(inLogData) { if (IsRunning) { fscommand ("HOST_Log", inLogData); } trace(inLogData); } static function Trace(inLogData) { if (IsRunning) { fscommand ("HOST_Trace", inLogData); } trace(inLogData); } static function parsePos(inStr) { if (inStr == null) { return(null); } var _local1 = inStr.split(","); var _local2 = {x:parseInt(_local1[0]), y:parseInt(_local1[1])}; return(_local2); } static function handler(inProp, inOldVal, inNewVal) { if (inProp == "HOST_RButtonUpPos") { _callbacks.RButtonUp(parsePos(inNewVal)); } else if (inProp == "HOST_RButtonDownPos") { _callbacks.RButtonDown(parsePos(inNewVal)); } if (inProp == "HOST_MButtonUpPos") { _callbacks.MButtonUp(parsePos(inNewVal)); } else if (inProp == "HOST_MButtonDownPos") { _callbacks.MButtonDown(parsePos(inNewVal)); } else if (inProp == "HOST_AppActivate") { _callbacks.AppActivate(inNewVal == "1"); } else if (inProp == "HOST_SoundEnded") { _callbacks.SoundEnded(inNewVal); } else { var _local3 = inProp.split("HOST_")[1]; _callbacks[_local3](); } } static var m_MouseDeltaX = 0; static var m_MouseDeltaY = 0; static var m_MouseAbsX = 0; static var m_MouseAbsY = 0; static var m_MouseAbsBounds = null; }
Symbol 17 MovieClip [__Packages.Oberon.StringX] Frame 0
class Oberon.StringX { function StringX () { } static function cescape(inString) { inString = replace(inString, newline, "\\n", true); inString = replace(inString, "\r", "\\r", true); inString = replace(inString, "\t", "\\t", true); return(inString); } static function containsText(inString) { return((inString != null) && (inString.length > 0)); } static function lookupEnumName(inWhere, inEnumName, inEnumValue, inDefault) { for (var _local4 in inWhere) { if (startsWith(_local4, inEnumName + "_")) { if (inWhere[_local4] == inEnumValue) { return(_local4.substr(inEnumName.length + 1)); } } } if (inDefault == undefined) { return("undefined"); } return(inDefault); } static function startsWith(inString, inWithWhat, inMatchCase) { if (inMatchCase == undefined) { inMatchCase = true; } inString = inString.substr(0, inWithWhat.length); if (!inMatchCase) { inString = inString.toLowerCase(); inWithWhat = inWithWhat.toLowerCase(); } return(inString == inWithWhat); } static function replaceIfStartsWith(inString, inStartsWithWhat, inReplaceWithWhat, inMatchCase) { if (startsWith(inString, inStartsWithWhat, inMatchCase)) { return(inReplaceWithWhat + inString.substr(inStartsWithWhat.length)); } return(inString); } static function removeIfStartsWith(inString, inStartsWithWhat, inMatchCase) { return(replaceIfStartsWith(inString, inStartsWithWhat, "", inMatchCase)); } static function endsWith(inString, inWithWhat, inMatchCase) { if (inMatchCase == undefined) { inMatchCase = true; } inString = inString.substr(inString.length - inWithWhat.length); if (!inMatchCase) { inString = inString.toLowerCase(); inWithWhat = inWithWhat.toLowerCase(); } return(inString == inWithWhat); } static function replaceIfEndsWith(inString, inEndsWithWhat, inReplaceWithWhat, inMatchCase) { if (endsWith(inString, inEndsWithWhat, inMatchCase)) { return(inString.substr(0, inString.length - inEndsWithWhat.length) + inReplaceWithWhat); } return(inString); } static function removeIfEndsWith(inString, inEndsWithWhat, inMatchCase) { return(replaceIfEndsWith(inString, inEndsWithWhat, "", inMatchCase)); } static function repeat(inString, inCount) { if (inString == null) { return(null); } var _local2 = ""; var _local1 = 0; while (_local1 < inCount) { _local2 = _local2 + inString; _local1++; } return(_local2); } static function setCharAt(inString, inIndex, inNewString) { if (inString == null) { return(null); } if (inString.charAt(inIndex) == inNewString) { return(inString); } return((inString.substr(0, inIndex) + inNewString) + inString.substr(inIndex + 1)); } static function replace(inString, inSearchString, inReplaceString, inMatchCase) { var _local3 = ""; var _local5 = inString; if (inMatchCase == undefined) { inMatchCase = true; } if (!inMatchCase) { _local5 = _local5.toLowerCase(); inSearchString = inSearchString.toLowerCase(); } var _local2 = -1; var _local1 = 0; while (_local2 = _local5.indexOf(inSearchString, _local1) , _local2 != -1) { _local3 = _local3 + inString.substring(_local1, _local2); _local3 = _local3 + inReplaceString; _local1 = _local2 + inSearchString.length; } return(_local3 + inString.substring(_local1)); } static function format(inFormat) { return(formatFromArgs(inFormat, arguments, 1)); } static function formatFromArray(inFormat, inParams) { if (inFormat == null) { return(null); } if (inFormat.indexOf("{") == -1) { return(inFormat); } var _local5 = inFormat; var _local15 = ""; var _local1 = 0; var _local4 = inFormat.length; var _local2 = ""; while (true) { var _local9 = _local1; var _local6 = _local1; while (_local1 < _local4) { _local2 = inFormat.charAt(_local1); _local1++; if (_local2 == "}") { if ((_local1 < _local4) && (inFormat.charAt(_local1) == "}")) { _local1++; } else { return(("!FORMAT ERROR: '" + _local5) + "'"); } } if (_local2 == "{") { if ((_local1 < _local4) && (inFormat.charAt(_local1) == "{")) { _local1++; } else { _local1--; break; } } inFormat = setCharAt(inFormat, _local6, _local2); _local6++; } if (_local6 > _local9) { _local15 = _local15 + inFormat.substr(_local9, _local6 - _local9); } if (_local1 == _local4) { break; } _local1++; if (((_local1 == _local4) || ((_local2 = inFormat.charAt(_local1)) < "0")) || (_local2 > "9")) { return(("!FORMAT ERROR: '" + _local5) + "'"); } var _local7 = 0; do { _local7 = ((_local7 * 10) + _local2) - "0"; _local1++; if (_local1 == _local4) { return(("!FORMAT ERROR: '" + _local5) + "'"); } _local2 = inFormat.charAt(_local1); } while (((_local2 >= "0") && (_local2 <= "9")) && (_local7 < 1000000)); if (_local7 >= inParams.length) { return(((("!INDEX " + _local7) + " OUT OF RANGE: '") + _local5) + "'"); } while ((_local1 < _local4) && ((_local2 = inFormat.charAt(_local1)) == " ")) { _local1++; } var _local13 = false; var _local10 = 0; if (_local2 == ",") { _local1++; while ((_local1 < _local4) && (inFormat.charAt(_local1) == " ")) { _local1++; } if (_local1 == _local4) { return(("!FORMAT ERROR: '" + _local5) + "'"); } _local2 = inFormat.charAt(_local1); if (_local2 == "-") { _local13 = true; _local1++; if (_local1 == _local4) { return(("!FORMAT ERROR: '" + _local5) + "'"); } _local2 = inFormat.charAt(_local1); } if ((_local2 < "0") || (_local2 > "9")) { return(("!FORMAT ERROR: '" + _local5) + "'"); } do { _local10 = ((_local10 * 10) + _local2) - "0"; _local1++; if (_local1 == _local4) { return(("!FORMAT ERROR: '" + _local5) + "'"); } _local2 = inFormat.charAt(_local1); } while (((_local2 >= "0") && (_local2 <= "9")) && (_local10 < 1000000)); } while ((_local1 < _local4) && ((_local2 = inFormat.charAt(_local1)) == " ")) { _local1++; } var _local14 = inParams[_local7]; var _local12 = null; if (_local2 == ":") { _local1++; _local9 = _local1; _local6 = _local1; for ( ; true ; inFormat = setCharAt(inFormat, _local6, _local2) , _local6++) { if (_local1 == _local4) { return(("!FORMAT ERROR: '" + _local5) + "'"); } _local2 = inFormat.charAt(_local1); _local1++; if (_local2 == "{") { if ((_local1 < _local4) && (inFormat.charAt(_local1) == "{")) { _local1++; continue; } return(("!FORMAT ERROR: '" + _local5) + "'"); } if (_local2 == "}") { if ((_local1 < _local4) && (inFormat.charAt(_local1) == "}")) { _local1++; } else { _local1--; break; } } } if (_local6 > _local9) { _local12 = inFormat.substr(_local9, _local6 - _local9); } } if (_local2 != "}") { return(("!FORMAT ERROR: '" + _local5) + "'"); } _local1++; var _local8 = null; if (_local12 != null) { if (_local12 == "x") { _local8 = Number(_local14).toString(16).toLowerCase(); } else if (_local12 == "X") { _local8 = Number(_local14).toString(16).toUpperCase(); } } if (_local8 == null) { _local8 = _local14.toString(); } if (_local8 == null) { _local8 = ""; } var _local11 = _local10 - _local8.length; if ((!_local13) && (_local11 > 0)) { _local15 = _local15 + repeat(" ", _local11); } _local15 = _local15 + _local8; if (_local13 && (_local11 > 0)) { _local15 = _local15 + repeat(" ", _local11); } } return(_local15); } static function formatFromArgs(inFormat, inArguments, inSkip) { if (inArguments.length == 0) { return(format(inFormat)); } if (inSkip == undefined) { inSkip = 0; } var _local3 = []; var _local1 = inSkip; while (_local1 < inArguments.length) { _local3.push(inArguments[_local1]); _local1++; } return(formatFromArray(inFormat, _local3)); } static function PadStart(inString, inChar, inLength) { return(makePadded(inString, inChar, inLength) + inString); } static function PadEnd(inString, inChar, inLength) { return(inString + makePadded(inString, inChar, inLength)); } static function SecondsToFormattedTime(inSeconds) { var _local1 = inSeconds; var _local3 = Number(Math.floor(_local1 / 60)).toString(); _local1 = _local1 % 60; var _local2 = _local1.toString(); if (_local2.length == 1) { _local2 = "0" + _local2; } return((_local3 + ":") + _local2); } static function GetDate() { var _local1 = new Date(); return(((_local1.getMonth() + 1).toString() + "/") + _local1.getDate().toString()); } static function makePadded(inString, inChar, inLength) { var _local2 = ""; var _local1 = inString.length; while (_local1 < inLength) { _local2 = _local2 + inChar; _local1++; } return(_local2); } static function Trim(inString) { var _local1 = 0; var _local3; while ((_local1 < inString.length) && ((((inString.charAt(_local1) == " ") || (inString.charAt(_local1) == newline)) || (inString.charAt(_local1) == "\r")) || (inString.charAt(_local1) == "\t"))) { _local1++; } _local3 = inString.substr(_local1); if (_local3.length) { _local1 = _local3.length - 1; while ((_local1 > -1) && ((((_local3.charAt(_local1) == " ") || (_local3.charAt(_local1) == newline)) || (_local3.charAt(_local1) == "\r")) || (_local3.charAt(_local1) == "\t"))) { _local1--; } _local3 = _local3.substr(0, _local1 + 1); } return(_local3); } static function getSubstrCount(inSubstring, inContainerString) { if ((inSubstring == undefined) || (inContainerString == undefined)) { return(0); } var _local3 = 0; var _local1 = inContainerString.indexOf(inSubstring); while (_local1 != -1) { _local3++; _local1 = inContainerString.indexOf(inSubstring, _local1 + inSubstring.length); } return(_local3); } static function Tokenize(inText, inSep, inIgnore) { var _local14 = new Array(); var _local10 = ""; var _local9 = 0; var _local12 = inText.length; while (_local9 < _local12) { var _local4 = inText.charAt(_local9); var _local3 = false; var _local2 = 0; var _local7 = inSep.length; while ((!_local3) && (_local2 < _local7)) { if (_local4 == inSep[_local2]) { _local3 = true; } _local2++; } var _local5 = false; if ((inIgnore != undefined) && (!_local3)) { var _local1 = 0; var _local6 = inIgnore.length; while ((!_local5) && (_local1 < _local6)) { if (_local4 == inIgnore[_local1]) { _local5 = true; } _local1++; } } if (_local3) { if (_local10 != "") { _local14.push(_local10); _local10 = ""; } } else if (_local5) { } else { _local10 = _local10 + _local4; } _local9++; } if (_local10 != "") { _local14.push(_local10); } return(_local14); } }
Symbol 18 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object { var func; function Delegate (f) { super(); func = f; } static function create(obj, func) { var _local2 = function () { var _local2 = arguments.callee.target; var _local3 = arguments.callee.func; return(_local3.apply(_local2, arguments)); }; _local2.target = obj; _local2.func = func; return(_local2); } function createDelegate(obj) { return(create(obj, func)); } }
Symbol 19 MovieClip [__Packages.Core.CTween] Frame 0
class Core.CTween { var m_RegIndex, m_Obj, m_Prop, m_CurrentFrame, m_Func, m_Begin, m_delay, m_origDelay, m_Looping, m_LoopNoDelay, m_updateInterval, m_CompleteEvent, m_IsPlaying, m_time, m_startTime, m_duration, onMotionFinished, m_position, onMotionChanged, m_Change; function CTween (i_obj, i_prop, i_func, i_begin, i_finish, i_duration, i_useSeconds, i_delay, i_updateInterval) { if (i_obj == null) { trace((((((("!!! CTween(): i_obj null in constructor " + i_prop) + ",") + i_begin) + "/") + i_finish) + "/") + i_duration); return; } m_RegIndex = null; m_Obj = i_obj; m_Prop = i_prop; m_CurrentFrame = (m_Prop == "_currentframe") && (MovieClip(i_obj) != null); if (i_func == null) { if (m_CurrentFrame) { m_Func = DefaultMcTween; } else if (((((i_prop == "_x") || (i_prop == "_y")) || (i_prop == "_xscale")) || (i_prop == "_yscale")) || (i_prop == "_alpha")) { m_Func = DefaultRoundTween; } else { m_Func = DefaultTween; } } else { m_Func = i_func; } m_Begin = i_begin; SetPosition(i_begin); if ((i_duration == null) || (i_duration <= 0)) { i_duration = 0.01; } SetDuration(i_duration); m_delay = ((i_delay != undefined) ? (i_delay) : 0); m_origDelay = m_delay; m_Looping = false; m_LoopNoDelay = false; m_updateInterval = ((i_updateInterval != null) ? (i_updateInterval) : (s_Interval)); m_CompleteEvent = new Oberon.CEvent(this); SetFinish(i_finish); Start(); } static function QuickInstall() { Reset(); var newMc = _root.createEmptyMovieClip("CTweenFrameManager", _root.getNextHighestDepth()); newMc.oldTime = getTimer(); newMc.onEnterFrame = function () { var _local1 = getTimer(); var _local2 = (_local1 - newMc.oldTime) / 1000; newMc.oldTime = _local1; Core.CTween.UpdateAll(_local2); }; } static function ToStringAll() { if (m_regTweenCount > 0) { var _local2 = ("Active Tweens (" + m_regTweenCount) + "):\n"; var _local1 = 0; while (_local1 < m_regTweenCount) { _local2 = _local2 + Core.CTween(m_regTweens[_local1]).ToString(); _local1++; } return(_local2 + newline); } return(""); } static function DefaultTween(t, b, c, d) { return(((c * t) / d) + b); } static function DefaultMcTween(t, b, c, d) { return(int(((c * t) / d) + b)); } static function DefaultRoundTween(t, b, c, d) { return(s_roundFunc(((c * t) / d) + b)); } static function UpdateAll(i_deltaT) { var _local1 = 0; while (_local1 < m_regTweenCount) { var _local2 = Core.CTween(m_regTweens[_local1]); _local2.Update(i_deltaT); _local1++; } } static function register(i_tween) { i_tween.m_RegIndex = m_regTweenCount; if (m_regTweens.length > m_regTweenCount) { m_regTweens[m_regTweenCount] = i_tween; m_regTweenCount++; } else { m_regTweens.push(i_tween); m_regTweenCount++; } } static function unregister(i_tween) { var _local1 = i_tween.m_RegIndex; if (_local1 != null) { m_regTweenCount--; if (m_regTweenCount > 0) { m_regTweens[_local1] = m_regTweens[m_regTweenCount]; Core.CTween(m_regTweens[_local1]).m_RegIndex = _local1; m_regTweens[m_regTweenCount] = null; } else { m_regTweens[_local1] = null; } i_tween.m_RegIndex = null; return(true); } return(false); } static function GetCount() { return(m_regTweenCount); } static function Reset() { if (m_regTweens == null) { m_regTweens = new Array(m_initTweenPoolSize); } else { KillRegTweens(); } if (m_frozenTweens == null) { m_frozenTweens = new Array(m_initTweenPoolSize); } else { KillFrozenTweens(); } m_regTweenCount = 0; m_lastTweenId = 0; } static function KillFrozenTweens() { var _local1 = 0; while (_local1 < m_frozenTweenCount) { var _local2 = Core.CTween(m_frozenTweens[_local1]); _local2.m_IsPlaying = false; _local2.m_RegIndex = null; _local1++; } m_frozenTweenCount = 0; } static function Freeze() { if (m_regTweenCount > 0) { if (m_frozenTweenCount == 0) { m_frozenTweenCount = m_regTweenCount; var _local3 = m_frozenTweens; m_frozenTweens = m_regTweens; m_regTweenCount = 0; m_regTweens = _local3; } else { var _local2 = 0; while (_local2 < m_regTweenCount) { var _local1 = Core.CTween(m_regTweens[_local2]); _local1.m_RegIndex = m_frozenTweenCount; if (m_frozenTweenCount >= m_frozenTweens.length) { m_frozenTweens.push(_local1); } else { m_frozenTweens[m_frozenTweenCount] = _local1; } m_frozenTweenCount++; _local2++; } m_regTweenCount = 0; } } } static function Unfreeze(i_noMerge) { if (m_frozenTweenCount > 0) { if (i_noMerge && (m_regTweenCount > 0)) { KillRegTweens(); } if (m_regTweenCount == 0) { m_regTweenCount = m_frozenTweenCount; var _local3 = m_regTweens; m_regTweens = m_frozenTweens; m_frozenTweens = _local3; } else { var _local2 = 0; while (_local2 < m_frozenTweenCount) { var _local1 = Core.CTween(m_frozenTweens[_local2]); _local1.m_RegIndex = m_regTweenCount; if (m_regTweenCount >= m_regTweens.length) { m_regTweens.push(_local1); } else { m_regTweens[m_regTweenCount] = _local1; } m_regTweenCount++; _local2++; } } m_frozenTweenCount = 0; } } static function KillRegTweens() { var _local1 = 0; while (_local1 < m_regTweenCount) { var _local2 = Core.CTween(m_regTweens[_local1]); _local2.m_IsPlaying = false; _local2.m_RegIndex = null; _local1++; } m_regTweenCount = 0; } function Update(i_deltaT) { if (!m_IsPlaying) { return(undefined); } SetTime(m_time + i_deltaT); } function SetTime(in_t) { if (m_delay > 0) { if (m_delay >= in_t) { m_startTime = m_startTime + (in_t * 1000); m_delay = m_delay - in_t; return(undefined); } in_t = in_t - m_delay; m_delay = 0; } if (in_t >= m_duration) { if (m_Looping) { if (m_LoopNoDelay) { Rewind((in_t - m_duration) + m_delay); } else { Rewind(in_t - m_duration); } updatePos(); } else { m_time = m_duration; updatePos(); StopUpdates(); if (onMotionFinished != null) { onMotionFinished(this); } m_CompleteEvent.Fire(); } } else if (in_t < 0) { Rewind(); updatePos(); } else { m_time = in_t; updatePos(); } } function GetTime() { return(m_time); } function Scale(i_factor) { var _local2 = GetPercentComplete(); m_duration = m_duration * i_factor; m_time = (m_duration * _local2) / 100; } function SetDuration(d) { m_duration = (((d == null) || (d <= 0)) ? (_global.Infinity) : (d)); } function GetDuration() { return(m_duration); } function GetPercentComplete() { return(((m_time + m_delay) / (m_duration + m_origDelay)) * 100); } function SetPosition(i_pos) { m_position = i_pos; if (m_CurrentFrame) { MovieClip(m_Obj).gotoAndStop(m_position); } else { m_Obj[m_Prop] = m_position; } if (onMotionChanged != null) { onMotionChanged(this, m_position); } } function GetPosition(i_time) { if (i_time == undefined) { i_time = m_time; } if (i_time > m_duration) { return(m_Begin + m_Change); } return(m_Func(i_time, m_Begin, m_Change, m_duration)); } function SetFinish(i_val) { m_Change = i_val - m_Begin; } function GetFinish() { return(m_Begin + m_Change); } function Finish() { SetTime(m_duration + m_delay); } function continueTo(i_finish, i_duration) { m_Begin = m_position; SetFinish(i_finish); if (i_duration != undefined) { SetDuration(i_duration); } Start(); } function SetDelay(i_delay, i_setOrig) { m_delay = i_delay; if (i_setOrig) { m_origDelay = i_delay; } } function yoyo() { continueTo(m_Begin, m_time); } function Start() { Rewind(); m_IsPlaying = true; if (m_RegIndex == null) { register(this); } } function StopUpdates() { m_IsPlaying = false; if (m_RegIndex != null) { unregister(this); } } function Resume() { fixTime(); m_IsPlaying = true; if (m_RegIndex == null) { register(this); } } function Rewind(in_time) { m_time = ((in_time == undefined) ? 0 : (in_time)); fixTime(); updatePos(); if (m_RegIndex == null) { register(this); } } function FForward() { SetTime(m_duration + m_delay); fixTime(); if (m_RegIndex == null) { register(this); } } function MoveToPrevFrame() { if (m_RegIndex == null) { register(this); } } function ToString() { return((((((((((((((("Core.CTween: " + String(m_Obj)) + newline) + " Prop:Pos/Tot,Time/Dur,Pct: ") + m_Prop) + ":") + m_position) + "/") + GetFinish()) + ",") + m_time) + "/") + m_duration) + ",") + GetPercentComplete()) + newline); } function fixTime() { m_startTime = getTimer() - (m_time * 1000); } function updatePos() { SetPosition(GetPosition(m_time)); } static var s_Interval = 2; static var m_regTweenCount = 0; static var m_regTweens = null; static var m_frozenTweens = null; static var m_frozenTweenCount = null; static var m_initTweenPoolSize = 250; static var m_lastTweenId = 0; static var s_roundFunc = Math.round; }
Symbol 20 MovieClip [__Packages.Oberon.CEvent] Frame 0
class Oberon.CEvent { var _lastId, _behaviors, _behaviorsTerm, _behaviorsArg, _context, _remove, _consume, _firing, _behaviorsId; function CEvent (inContext) { _lastId = 0; _behaviors = new Array(); _behaviorsTerm = new Array(); _behaviorsArg = new Array(); _context = inContext; _remove = false; _consume = false; _firing = false; } function PushBehavior(inFunc, inRunOnce) { return(PushBehaviorWithArg(inFunc, null, inRunOnce)); } function PushBehaviorRunOnce(inFunc) { return(PushBehaviorWithArg(inFunc, null, true)); } function PushBehaviorWithArg(inFunc, inArg, inRunOnce) { _behaviors.push(inFunc); _behaviorsTerm.push(((inRunOnce != undefined) ? (inRunOnce) : false)); _behaviorsArg.push(inArg); _behaviorsId.push(_lastId++); return(_lastId - 1); } function PushBehaviorWithArgRunOnce(inFunc, inArg) { return(PushBehaviorWithArg(inFunc, inArg, true)); } function InsertBehavior(inFunc, inRunOnce) { return(InsertBehaviorWithArg(inFunc, null, inRunOnce)); } function InsertBehaviorWithArg(inFunc, inArg, inRunOnce) { var _local4 = new Array(_behaviors.length + 1); _local4[0] = inFunc; var _local7 = new Array(_behaviorsTerm.length + 1); _local7[0] = inRunOnce; var _local6 = new Array(_behaviorsArg.length + 1); _local6[0] = inArg; var _local5 = new Array(_behaviorsId.length + 1); _local5[0] = _lastId++; var _local2 = 1; var _local3 = _local4.length; while (_local2 < _local3) { _local4[_local2] = _behaviors[_local2]; _local7[_local2] = _behaviorsTerm[_local2]; _local6[_local2] = _behaviorsArg[_local2]; _local5[_local2] = _behaviorsId[_local2]; _local2++; } _behaviors = _local4; _behaviorsTerm = _local7; _behaviorsArg = _local6; _behaviorsId = _local5; return(_lastId - 1); } function RemoveBehaviorByFunc(inFunc) { var _local4 = false; var _local2 = 0; var _local3 = _behaviors.length; while ((!_local4) && (_local2 < _local3)) { if (_behaviors[_local2] == inFunc) { _behaviors.splice(_local2, 1); _behaviorsTerm.splice(_local2, 1); _behaviorsArg.splice(_local2, 1); _behaviorsId.splice(_local2, 1); _local4 = true; } _local2++; } return(_local4); } function RemoveBehaviorById(inId) { var _local4 = false; var _local2 = 0; var _local3 = _behaviors.length; while ((!_local4) && (_local2 < _local3)) { if (_behaviorsId[_local2] == inId) { _behaviors.splice(_local2, 1); _behaviorsTerm.splice(_local2, 1); _behaviorsArg.splice(_local2, 1); _behaviorsId.splice(_local2, 1); _local4 = true; } _local2++; } return(_local4); } function ConsumeCurrentFire() { if (!_firing) { trace("!!! Trying to consume current when not running"); } else { _consume = true; } } function RemoveCurrentBehavior() { if (!_firing) { trace("!!! Trying to remove current when not running"); } else { _remove = true; } } function Fire() { var _local4 = _behaviors.length; var _local3 = false; _firing = true; _remove = false; _consume = false; var _local2 = 0; while ((!_local3) && (_local2 < _local4)) { var _local5 = false; var _local6 = false; if (_behaviorsArg[_local2] != null) { Function(_behaviors[_local2])(_context, _behaviorsArg[_local2], this, _behaviorsId[_local2]); } else { Function(_behaviors[_local2])(_context, this, _behaviorsId[_local2]); } _local3 = _consume; if (_remove || (_behaviorsTerm[_local2])) { _behaviors.splice(_local2, 1); _behaviorsTerm.splice(_local2, 1); _behaviorsArg.splice(_local2, 1); _behaviorsId.splice(_local2, 1); _local4--; } else { _local2++; } } _firing = false; _remove = false; _consume = false; } }
Symbol 21 MovieClip [__Packages.CustomTweens.Bounce] Frame 0
class CustomTweens.Bounce { function Bounce () { } static function SingleBounce(t, b, c, d) { return(round((c * sin((t / d) * 3.14)) + b)); } static function DelayedSingleBounce(t, b, c, d) { if (t > l) { return(round((c * sin(((t - l) / (d - l)) * 3.14)) + b)); } } static function DoubleBounce(t, b, c, d) { if ((t / d) < e) { return(round((c * Math.sin((t / (d * e)) * 3.14)) + b)); } return(round(((s * c) * sin(((t - (d * e)) / (d * (1 - e))) * 3.14)) + b)); } static function BounceToQueueEaseInLong(t, b, c, d) { t = d - t; t = t / d; if (t < 0.36) { return(round((c - (((c * 7.56) * t) * t)) + b)); } if (t < 0.73) { t = t - 0.54; return(round((c - (c * (((7.56 * t) * t) + 0.75))) + b)); } if (t < 0.91) { t = t - 0.82; return(round((c - (c * (((7.56 * t) * t) + 0.94))) + b)); } t = t - 0.95; return(round((c - (c * (((7.56 * t) * t) + 0.98))) + b)); } static var e = 0.6; static var s = 0.4; static var l = 0.05; static var sin = Math.sin; static var round = Math.round; }
Symbol 22 MovieClip [__Packages.CDialog] Frame 0
class CDialog extends MovieClip { var Name, BackVisible, BackEnabled, BackAlpha, Transition, m_components, m_unloadedComponentCount, m_hasFocus, CloseEvent, enabled, m_enabled, onMouseMove; function CDialog () { super(); Name = "<unknown>"; BackVisible = true; BackEnabled = true; BackAlpha = 100; Transition = Transition_None; m_components = new Object(); m_unloadedComponentCount = 0; m_hasFocus = false; CloseEvent = new Oberon.CEvent(this); } function OnLoadingComponent(i_comp) { m_unloadedComponentCount++; return(true); } function GetComponent(i_name) { CDebug.Assert(m_components[i_name] != undefined, "CDialog", "Couldn't find UI component " + i_name); return(m_components[i_name]); } function onRegister(i_obj) { m_components[i_obj.Name] = i_obj; m_unloadedComponentCount--; if (m_unloadedComponentCount == 0) { OnAllComponentsLoaded(); } return(true); } function onClick(i_obj) { return(true); } function Close(i_immediate) { Core.DialogUtil.Close(this); CloseEvent.Fire(); } function SetEnabled(i_val) { enabled = i_val; m_enabled = i_val; } function OnTransitionToComplete() { } function OnTransitionFromComplete() { } function OnFocus() { m_hasFocus = true; } function OnLoseFocus() { m_hasFocus = false; } function OnFirstFocus() { } function OnSpaceDown() { DoDefaultOkAction(); } function OnEnterDown() { DoDefaultOkAction(); } function OnControlDown() { } function OnBackSpaceDown() { DoDefaultCancelAction(); } function OnEscDown() { DoDefaultCancelAction(); } function DoDefaultOkAction() { Close(); } function DoDefaultCancelAction() { Close(); } function OnFreeze() { } function OnUnfreeze() { } function OnKeyDown(i_key) { } function OnMouseDown() { } function OnAllComponentsLoaded() { var _local5 = false; for (var _local6 in m_components) { var _local3 = Core.CUIComponent(m_components[_local6]); if ((_local3 != null) && (Core.CTip(_local3) != null)) { var _local2 = Core.CTip(_local3); CDebug.Assert(_local2.AttachToName != null, "CDialog.OnAllComponentsLoaded()", "AttachToName is null in tip " + _local6); var _local4 = Core.CTipTarget(GetComponent(_local2.AttachToName)); CDebug.Assert(_local4 != null, "CDialog.OnAllComponentsLoaded()", "AttachToName comp is null in tip " + _local2); _local2.AttachTo(_local4); } else if (Core.CTipTarget(_local3) != null) { _local5 = true; } } if (_local5) { onMouseMove = onMouseMoveFunc; } RefreshLocalization(); } function RefreshLocalization(i_force) { var _local2 = CGame.Localizer.LocMc(this, i_force); CDebug.WriteLine("CDialog.RefreshLocalization()", ("Localized " + _local2) + " strings"); } function HideAllTips() { for (var _local3 in m_components) { var _local2 = Core.CUIComponent(m_components[_local3]); if ((_local2 != null) && (Core.CTip(_local2) != null)) { Core.CTip(_local2).Hide(); } } } function onMouseMoveFunc() { if (!m_hasFocus) { return(undefined); } var _local4 = new CCoord(_root._xmouse, _root._ymouse); for (var _local5 in m_components) { var _local3 = Core.CTipTarget(m_components[_local5]); if (_local3 != null) { _local3.TryHit(_local4); } } } static var s_TransFadeInTime = 0.5; static var Transition_None = 0; static var Transition_Alpha = 1; }
Symbol 23 MovieClip [__Packages.Core.CUIComponent] Frame 0
class Core.CUIComponent extends MovieClip { var _parent; function CUIComponent () { super(); var _local3 = ((OnLoadingComponent(this) || (Object(_parent).OnLoadingComponent(this))) || (Object(_parent)._parent.OnLoadingComponent(this))) || (Object(_parent)._parent._parent.OnLoadingComponent(this)); } function get Name() { return(m_name); } function set Name(inVal) { m_name = inVal; //return(Name); } function onLoad() { var _local2 = ((onRegister(this) || (Object(_parent).onRegister(this))) || (Object(_parent)._parent.onRegister(this))) || (Object(_parent)._parent._parent.onRegister(this)); } function onRegister() { } function OnLoadingComponent() { } var m_name = ""; }
Symbol 24 MovieClip [__Packages.CDebug] Frame 0
class CDebug { function CDebug () { } static function Assert(inBool, inSource, inMessage, inForceCrash) { if (!inBool) { var _local1 = (("!!! ASSERT " + String(inSource)) + ": ") + inMessage; writeLog(_local1, true); if (inForceCrash) { MsgBox("Crash Assertion!\n\n" + inMessage); Crash(); } } } static function AssertWarn(inBool, inSource, inMessage) { if (!inBool) { var _local1 = (("*** WARN " + inSource) + ": ") + inMessage; writeLog(_local1); } } static function WriteErr(inSource, inMessage) { var _local1 = (("!!! ERROR " + inSource) + ": ") + inMessage; writeLog(_local1); } static function WriteLine(inSource, inMessage) { writeLog((("*** " + inSource) + ": ") + inMessage); } static function getDbgPanelPrefix() { var _local1 = CGame.GetUpTime(); return((((Math.floor(_local1 / 60) + ":") + (_local1 % 60)) + " ") + Level.GetCurrentLevelName()); } static function writeLog(i_msg, i_alwaysWrite) { if (((DbgLogFilter == null) || (i_alwaysWrite)) || (i_msg.indexOf(DbgLogFilter) != -1)) { trace(i_msg); } } static function WriteBreak() { writeLog("-----------------------------------------------------------------------------------"); } static function RunFuncCall(funcCall) { WriteBreak(); WriteLine("CDebug", "RunFuncCall call : " + funcCall); if (funcCall.indexOf("=") != -1) { var args = funcCall.split("="); Set(arg[0], arg[1]); return(undefined); } var argStartIndex = (funcCall.indexOf("(") + 1); var func = funcCall.slice(0, argStartIndex - 1); var scope = eval (func.slice(0, func.lastIndexOf("."))); if (scope == undefined) { scope = ""; } var args = new Array(); var argString = Oberon.StringX.Trim(funcCall.slice(argStartIndex, funcCall.lastIndexOf(")"))); if (argString.length > 0) { args = argString.split(","); } var i = 0; while (i < args.length) { var evalArg; var arg = args[i]; if (arg.indexOf("(") > -1) { evalArg = RunFuncCall(arg); } else { evalArg = eval (args[i]); } if (evalArg != undefined) { args[i] = evalArg; } else if (args[i].indexOf("\"") > -1) { args[i] = Oberon.StringX.replace("\"", args[i], ""); } else { args[i] = parseInt(args[i]); } i++; } var evalFunc = eval (func); Assert(evalFunc != null, _root, "RunFuncCall received an unknown function: " + func); WriteBreak(); return(evalFunc.apply(scope, args)); } static function AttrToArray(inObj) { var _local1 = new Array(); for (var _local3 in inObj) { _local1.push(_local3); } return(_local1); } static function MsgBox(inMessage) { var _local6 = 400; var _local8 = 150; var _local9 = Oberon.MovieClipX.getNextHighestDepth(_root); var _local12 = {_x:-(_local6 / 2), _y:-(_local8 / 2), _width:_local6, _height:_local8}; var _local5 = _root.createEmptyMovieClip("MsgBox" + _local9, _local9); var _local13 = Oberon.MovieClipX.getNextHighestDepth(_local5); var _local3 = _local5.createEmptyMovieClip("MsgBoxBack" + _local9, _local9, _local12); _local3.useHandCursor = true; _local3.lineStyle(1, 0, 100); _local3.beginFill(12303359, 100); _local3.moveTo(0, 0); _local3.lineTo(_local6, 0); _local3.lineTo(_local6, _local8); _local3.lineTo(0, _local8); _local3.lineTo(0, 0); _local3.endFill(); var _local10 = Oberon.MovieClipX.getNextHighestDepth(_local3); _local3.createTextField("MsgBoxText" + _local10, _local10, 10, 20, _local6 - 20, _local8 - 30); var _local7 = TextField(_local3["MsgBoxText" + _local10]); _local7.text = inMessage; _local7.border = true; _local7.background = true; _local7.backgroundColor = 16777215 /* 0xFFFFFF */; _local7.selectable = true; var _local11 = Oberon.MovieClipX.getNextHighestDepth(_local5); var _local4 = _local5.createEmptyMovieClip("MsgBox" + _local11, _local11); _local4._x = _local6 - 15; _local4._y = 5; _local4.lineStyle(1, 0, 100); _local4.beginFill(16777215, 100); _local4.moveTo(0, 0); _local4.lineTo(10, 0); _local4.lineTo(10, 10); _local4.lineTo(0, 10); _local4.lineTo(0, 0); Object(_local4).Container = _local5; Object(_local3).Container = _local5; _local4.onRelease = function () { Object(this).Container.removeMovieClip(); }; _local3.onPress = function () { Object(this).Container.startDrag(false); }; _local3.onRelease = function () { Object(this).Container.stopDrag(); }; } static function PrintAttr(inObj, inIncludeFuncs) { WriteLine(_root, "Outputing object contents " + inObj); WriteBreak(); for (var _local4 in inObj) { if (inIncludeFuncs || (typeof(inObj[_local4]) != "function")) { WriteLine(_root, (_local4 + ":") + inObj[_local4]); } } WriteBreak(); } static function Crash() { Crash(); } static function DrawTextOnMovie(inMovieClip, inText, inFadeAfterSec, inFontSize) { var _local1 = Oberon.MovieClipX.getNextHighestDepth(inMovieClip); var textMovieClip = inMovieClip.createEmptyMovieClip("DebugMovieClip" + _local1, _local1); var _local3 = CreateDbgTextField(textMovieClip, "DebugMovieClipText", inText); if (inFadeAfterSec != undefined) { textMovieClip.startTime = new Date().getTime(); textMovieClip.onEnterFrame = function () { if ((new Date().getTime() - textMovieClip.startTime) > (inFadeAfterSec * 1000)) { textMovieClip._alpha = textMovieClip._alpha - 5; } if (textMovieClip._alpha <= 0) { textMovieClip.removeMovieClip(); textMovieClip.onEnterFrame = null; } }; } return(textMovieClip); } static function CreateDbgTextField(inParentMc, inName, inInitialText, inFontSize) { var _local3 = inParentMc.getNextHighestDepth(); inParentMc.createTextField(((inName == null) ? ("DBGTXT" + _local3) : (inName)), _local3, 0, 0, 0, 0); var _local1 = TextField(inParentMc[inName]); var _local2 = new TextFormat(); if (inFontSize == undefined) { _local2.size = DbgTextFontSize; } else { _local2.size = inFontSize; } _local2.bold = true; _local2.font = DbgTextFont; _local2.align = "center"; _local1.setTextFormat(_local2); _local1.border = false; if (DbgTextBackColor == null) { _local1.background = false; } else { _local1.background = true; _local1.backgroundColor = DbgTextBackColor; } _local1.embedFonts = false; _local1.textColor = DbgTextColor; _local1.text = inInitialText; _local1.autoSize = true; return(_local1); } static function SetPropertyRecursive(inClip, inProp, inVal, inTraceElem) { RunFuncRecursive(inClip, function (inClip) { if (inClip[inProp] != undefined) { inClip[inProp] = inVal; } }, inTraceElem); } static function RunFuncRecursive(inClip, inFunc, inTraceElem) { for (var _local4 in inClip) { if (MovieClip(inClip[_local4]) != null) { if (String(inClip[_local4]).length > String(inClip).length) { if (inTraceElem) { trace((String(inClip) + ":") + String(inClip[_local4])); } RunFuncRecursive(MovieClip(inClip[_local4]), inFunc, inTraceElem); } } } inFunc(inClip); } static function FindScaling(i_clip) { RunFuncRecursive(i_clip, function (i_innerClip) { if (!i_innerClip._visible) { return(undefined); } var _local4 = ""; if ((i_innerClip._xscale != 100) || (i_innerClip._yscale != 100)) { _local4 = _local4 + (((((" !!! " + String(i_innerClip)) + " scaled to ") + i_innerClip._xscale) + "/") + i_innerClip._yscale); var _local2 = false; var _local1 = i_innerClip; while ((_local1 != null) && (!_local2)) { if (_local1.cacheAsBitmap) { _local2 = true; } _local1 = MovieClip(_local1._parent); } if (!_local2) { _local4 = _local4 + " ** NOT CACHED **"; } trace(_local4); } }, false); } static function RoundScaling(i_clip) { RunFuncRecursive(i_clip, function (i_innerClip) { i_innerClip._xscale = Oberon.MathX.roundTo(i_innerClip._xscale, 1); i_innerClip._yscale = Oberon.MathX.roundTo(i_innerClip._yscale, 1); }, false); } static function TraceTimeIntervalLastCall(i_traceStatement, i_minSec) { var _local1 = new Date(); if (m_lastTime == null) { trace("START: " + i_traceStatement); } else { var _local2 = (_local1.getTime() - m_lastTime.getTime()) / 1000; if ((i_minSec == undefined) || (_local2 > i_minSec)) { trace((_local2 + " : ") + i_traceStatement); } } m_lastTime = _local1; } static function StartProfile(i_objs) { WriteLine("CDebug.StartProfile()", "START PROFILE"); var _local2 = 0; while (_local2 < i_objs.length) { var _local3 = String(i_objs[_local2]); _global.ASProf.profile(_local3); _global.ASProf.profileObject(_local3 + ".prototype"); _local2++; } _global.ASProf.begin("__DebugProfile__"); } static function EndProfile() { _global.ASProf.end(); var _local2 = _global.ASProf.getFlatGraph(); WriteLine("CDebug.StartProfile()", "END PROFILE:\n\n" + _local2); return(_local2); } static var DbgTextFont = "Verdana"; static var DbgTextColor = 16777215; static var DbgTextBackColor = 0; static var DbgTextFontSize = 14; static var DbgLogFilter = null; static var m_lastTime = null; }
Symbol 25 MovieClip [__Packages.Level] Frame 0
class Level { static var m_NeighborGrid, m_BoardRows, m_BoardColumns, m_BoardLevel, m_EvenBoard, m_BoardSpaces, m_SnoodWidth, m_SnoodHeight, m_comboPieces, m_comboCoords, m_VisitedGrid, m_majorTraceCount, m_minorTraceCount, m_BoardLoser, m_LosePieces, m_LoseLevel; function Level () { } static function BuildNeighborList() { var _local17 = CGame.Board.IsRound(); m_NeighborGrid = new Array(m_BoardRows, m_BoardColumns); CGame.TileSet.NeighborTiles = m_NeighborGrid; var _local7 = 0; while (_local7 < m_BoardRows) { var _local8 = 0; while (_local8 < m_BoardColumns) { var _local14 = new Array(); var _local1 = [_local8 + (1 - (((_local7 - 1) % 2) * 2)), _local8, _local8 - 1, _local8 + 1, _local8 + (1 - (((_local7 + 1) % 2) * 2)), _local8]; var _local3 = [_local7 - 1, _local7 - 1, _local7, _local7, _local7 + 1, _local7 + 1]; var _local6 = 0; while (_local6 < _local1.length) { var _local13 = _local1[_local6]; var _local12 = _local3[_local6]; if ((((_local13 < 0) || (_local13 >= m_BoardColumns)) || (_local12 < 0)) || (_local12 >= m_BoardRows)) { _local1.splice(_local6, 1); _local3.splice(_local6, 1); continue; } _local6++; } if (_local17) { var _local9 = Math.floor(m_BoardColumns / 2); var _local4 = 0; while (_local4 < _local1.length) { var _local5 = -1; var _local11 = 99999 /* 0x01869F */; var _local2 = _local4; while (_local2 < _local1.length) { var _local10 = ((_local9 - _local1[_local2]) * (_local9 - _local1[_local2])) + ((_local9 - _local3[_local2]) * (_local9 - _local3[_local2])); if (_local10 < _local11) { _local5 = _local2; _local11 = _local10; } _local2++; } if (_local5 == -1) { trace("!!!BAD NEIGHBOR DATA!!!"); } if (_local4 != _local5) { var _local16 = _local1[_local4]; _local1[_local4] = _local1[_local5]; _local1[_local5] = _local16; var _local15 = _local3[_local4]; _local3[_local4] = _local3[_local5]; _local3[_local5] = _local15; } _local4++; } } _local14.push(_local1); _local14.push(_local3); m_NeighborGrid[(_local8 * m_BoardRows) + _local7] = _local14; _local8++; } _local7++; } } static function GetBoardModeForLevel(inLevelIdx) { return(CLevelManifest.G.GetSet("Arcade").GetLevel(inLevelIdx).Mode); } static function GetCurrentLevelName() { return(GetLevelName(GameState.__get__CurrentLevel())); } static function GetLevelName(i_levelId, i_levelSet) { var _local2 = ((i_levelSet == undefined) ? (GameState.GetCurrentLevelSet()) : (i_levelSet)); return(CLevelManifest.G.GetSet(GameState.GetCurrentLevelSet()).GetLevelFullName(i_levelId)); } static function SetJourneyModeBoardLocked(i_levelId, i_flag) { CLevelManifest.G.GetSet(GameState.GetCurrentLevelSet()).GetLevel(i_levelId).Locked = i_flag; } static function isValidCicleLocation(x, y) { var _local2 = Math.floor(m_BoardRows / 2); var _local5 = ((m_BoardColumns == 19) ? 1 : 0); var _local3 = y - _local2; _local3 = ((_local3 < 0) ? (-_local3) : (_local3)); if (_local3 > ((_local2 - _local5) - (m_BoardLevel / 2))) { return(false); } var _local6 = ((m_BoardColumns - 1) - Math.abs(_local2 - y)) - m_BoardLevel; var _local4 = (-1 * (_local6 / 2)) + _local5; var _local1 = (_local6 / 2) - _local5; if (m_EvenBoard) { _local4 = Math.floor(_local4); _local1 = Math.floor(_local1); } else { _local4 = Math.ceil(_local4); _local1 = Math.ceil(_local1); } if ((x < (_local4 + _local2)) || (x > (_local1 + _local2))) { return(false); } return(true); } static function IsOccupied(inX, inY) { if (m_BoardSpaces[(inX * m_BoardRows) + inY] != undefined) { return(true); } return(false); } static function createSnood(inInitialSetup, inPlayer) { var _local2 = CBoard.G.GetRandBorb(true); var _local1 = _local2.Color; return(cloneSnood(inInitialSetup, _local1, inPlayer)); } static function cloneSnood(inInitialSetup, inColor, inPlayer) { var _local1; if ((!inInitialSetup) && (inPlayer != undefined)) { _local1 = SnoodHead.GetAndRemoveFromPool(new CBorbInfo(inColor, Constants.PowerUp_None), CGame.TileSet.m_SnoodSize); _local1._x = _local1._x + Math.floor(m_SnoodWidth / 2); _local1._y = _local1._y + Math.floor(m_SnoodHeight / 2); } else { _local1 = SnoodHead.GetAndRemoveFromPool(new CBorbInfo(inColor, Constants.PowerUp_None), CGame.TileSet.m_SnoodSize, 0, 0); } _local1.SetSize(CGame.TileSet.m_SnoodSize); _local1.SetColor(inColor); if (_local1 == undefined) { trace("BAD SNOOD CREATED!!!!"); } return(_local1); } static function RemoveBorbFromCoord(i_coord) { var _local2 = m_BoardSpaces[(i_coord.X * m_BoardRows) + i_coord.Y] != undefined; if (_local2) { var _local3 = SnoodHead(m_BoardSpaces[(i_coord.X * m_BoardRows) + i_coord.Y]); CDebug.Assert(_local3 != null, "Level.DestroyAllSnoods()", (((("Unknown object found on board grid : " + i_coord.X) + ",") + i_coord.Y) + " : ") + CGame.TileSet.GetTile(i_coord.X, i_coord.Y)); SnoodHead.ReturnToPool(m_BoardSpaces[(i_coord.X * m_BoardRows) + i_coord.Y]); } return(_local2); } static function AddBorbToCoord(i_coord, i_borb, i_tween) { addSnoodToSpot(i_coord.X, i_coord.Y, i_borb, i_tween); } static function addSnoodToSpot(x, y, inHead, inTween) { var _local3 = inHead; if (inHead == null) { _local3 = createSnood(true); } _local3.MoveToCoord(CGame.TileSet.GetGridCoords(x, y), inTween); if (m_BoardSpaces[(x * m_BoardRows) + y] != undefined) { CDebug.WriteErr("Level.addSnoodToSpot()", (((("Location " + x) + ",") + y) + " already contains borb: ") + SnoodHead(m_BoardSpaces[(x * m_BoardRows) + y]).ToInfo().ToString()); SnoodHead(m_BoardSpaces[(x * m_BoardRows) + y]).RemoveFromBoard(); } CGame.TileSet.SetTile(x, y, _local3); } static function GetRandomBorb(inHeadPool, inInclusive, inNoPowerups, inExcludeHeads) { var _local1 = null; var _local2 = 0; var _local5 = inNoPowerups; if (_local5 == null) { _local5 = false; } var _local6 = false; if (inExcludeHeads != null) { _local6 = true; } var _local3; var _local4; while (_local2 < 5000) { _local2++; _local3 = Oberon.MathX.randRange(0, m_BoardRows); _local4 = Oberon.MathX.randRange(0, m_BoardColumns); _local1 = m_BoardSpaces[(_local4 * m_BoardRows) + _local3]; if (_local1 != null) { if (inInclusive == Oberon.ArrayX.Contains(inHeadPool, _local1.__get__Color())) { if (_local5) { if (_local1.__get__PowerUp() != Constants.PowerUp_None) { trace("borb has a powerup on it."); continue; } } if (_local6) { if (Oberon.ArrayX.Contains(inExcludeHeads, _local1)) { trace("borb is in exclude array."); continue; } } break; } } } CDebug.Assert(_local2 != 5000, "Level", "Couldn't find a random head in pool: " + inHeadPool.toString()); return(_local1); } static function fillBoard() { var _local7 = null; var _local6 = null; if (Constants.IsBoardModeCircular(CBoard.G.m_CurLevelInfo.Mode)) { _local7 = Math.floor(m_BoardColumns / 2); _local6 = Math.floor(m_BoardRows / 2); } var _local4 = 0; while (_local4 < CBoard.G.m_CurLevelInfo.TileInfos.length) { var _local5 = CBoard.G.m_CurLevelInfo.TileInfos[_local4]; var _local2 = 0; while (_local2 < _local5.length) { var _local1 = CLevelTileInfo(_local5[_local2]); if (!_local1.Empty) { if (_local1.RandomColor) { var _local3 = createSnood(true); _local3.SetPowerUp(_local1.PowerUp); _local3.m_NoHook = _local1.NoHook; addSnoodToSpot(_local4, _local2, _local3, false); } else { var _local3 = createSnood(true); _local3.SetColor(_local1.Color); _local3.SetPowerUp(_local1.PowerUp); _local3.m_NoHook = _local1.NoHook; addSnoodToSpot(_local4, _local2, _local3, false); } } _local2++; } _local4++; } } static function countAllCombos(x, y, color) { var _local18 = color; var _local19 = color; var _local9 = 0; var _local22 = CGame.CurrentPlayer; if (color == Constants.Snood_Wild) { _local18 = 1; _local19 = Constants.Snood_HeadCount; } var _local16 = false; var _local17 = 0; var _local4 = _local18; while (_local4 <= _local19) { if (((_local4 > Constants.Snood_HeadCount) && (_local4 < Constants.Snood_LumpStart)) && (_local4 > Constants.Snood_LumpEnd)) { } else { var _local12 = m_comboPieces.concat(); var _local11 = m_comboCoords.concat(); m_VisitedGrid = new Array(m_BoardRows * m_BoardColumns); var _local5 = findMatches(x, y, _local4); if (_local5 > 2) { if (_local5 > _local9) { _local9 = _local5; } _local16 = true; _local17++; if ((_local4 == Constants.Snood_Holly) && (CGame.Board.m_RubberLubberHitThisShot)) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_RubberEffyBankMatch); } CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + (_local5 * 10); } else { m_comboPieces = _local12; m_comboCoords = _local11; } } _local4++; } _local4 = 0; while (_local4 < m_comboCoords.length) { var _local6 = CCoord(m_comboCoords[_local4]); CGame.EffectMgr.BroadcastBorbEffectMesgToSingle(_local6.X, _local6.Y, SnoodHead(m_comboPieces[_local4]), 3); _local4++; } if (_local9 > 2) { CGame.Board.m_TotalCombos++; m_comboPieces.push(m_BoardSpaces[(x * m_BoardRows) + y]); m_comboCoords.push(new CCoord(x, y)); _local4 = 0; while (_local4 < m_comboPieces.length) { var _local2 = SnoodHead(m_comboPieces[_local4]); var _local3 = CCoord(m_comboCoords[_local4]); var _local1 = CGame.TileSet.GetTile(_local3.X, _local3.Y); var _local10 = false; if (_local1.__get__PowerUp() == Constants.PowerUp_Lock) { _local1.SetPowerUp(Constants.PowerUp_None); var _local8 = CCharacterSounds.GetCharacterSound(_local1.__get__Color(), Constants.__get__CharSound_Waking()); if (_local8 != null) { CGame.Sounds.PlaySound(_local8); } } else if (_local1.__get__PowerUp() == Constants.PowerUp_Hypnosis) { _local1.SetPowerUp(Constants.PowerUp_None); } else if (Constants.IsJellyFish(_local1.__get__PowerUp())) { _local1.SetPowerUp(Constants.PowerUp_None); } else { if (_local1.__get__PowerUp() == Constants.PowerUp_Shroud) { var _local13 = CGame.TileSet.GetTile(x, y); var _local7 = Effects.CEffect_ShroudDissolve(CEffect.CreateEffect(CEffect.Type_ShroudDissolve)); if (_local7.OnInit(_local1, _local13, null, true)) { CGame.EffectMgr.AddEffectToActiveList(_local7); } } _local16 = true; if (_local2.__get__PowerUp() == Constants.PowerUp_Mine) { var _local7 = Effects.CEffect_Mine(CEffect.CreateEffect(CEffect.Type_Mine)); if (_local7.OnInit(_local2)) { CGame.EffectMgr.AddEffectToActiveList(_local7); } } else if ((!_local10) && (_local2.__get__PowerUp() != Constants.PowerUp_None)) { CGame.TileSet.SetTile(_local3.X, _local3.Y, null); _local2.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, m_BasePowerupDropSec, m_PowerupIncrDropSec * Effects.CEffect_BorbDropAnim.GetCount(Effects.CEffect_BorbDropAnim.Dest_ToCannon)); } else { InvalidateSpot(_local2); _local2.Vaporize(); } } _local4++; } } if (_local16) { if (_local17 > 1) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_WildCombo); } if (_local17 > 2) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MajorWildCombo); } CGame.Board.m_ComboChainCount++; if ((color >= Constants.Snood_LumpStart) && (color <= Constants.Snood_LumpEnd)) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_LumpBonus); var _local21 = Constants.Score_LumpBonus * _local9; var _local23 = CGame.Board.CreatePointsEffect(x, y, (CGame.Localizer.LocStr("Lump Bonus!") + "\n+") + String(_local21), 0, true); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + _local21; CGame.Sounds.PlaySound(Constants.__get__Sound_Applause()); } else if (color == Constants.Snood_Slippery) { var _local21 = Constants.Score_RubberLubberBonus * _local9; var _local23 = CGame.Board.CreatePointsEffect(x, y, (CGame.Localizer.LocStr("RubberLubber\rBonus!") + " +") + String(_local21), 0, true); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + _local21; CGame.Sounds.PlaySound(Constants.__get__Sound_Applause()); } if (CGame.Board.m_ComboChainCount >= Constants.Score_ComboBonusStart) { var _local21 = Constants.Score_ComboBonusBase + (Constants.Score_ComboBonus * (CGame.Board.m_ComboChainCount - Constants.Score_ComboBonusStart)); var _local23 = CGame.Board.CreatePointsEffect(x, y, (((CGame.Localizer.LocStr("Combo") + " ") + String(CGame.Board.m_ComboChainCount)) + "X\n+") + String(_local21), s_BonusTint); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + _local21; if (CGame.Board.m_ComboChainCount >= 10) { CGame.Sounds.PlaySound(Constants.__get__Sound_Applause()); } if (CGame.Board.m_ComboChainCount >= CPlayerInfo.s_AchievementMinorComboSize) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MinorCombo); } } } else { CGame.Board.m_ComboChainCount = 0; } return(_local9); } static function InvalidateSpot(borb) { CGame.TileSet.SetTile(borb.m_xSlot, borb.m_ySlot, null); } static function findMatches(x, y, color) { if (CGame.DbgShowComboCounter) { SnoodHead.DbgClearTextOnAllSnoods(); SnoodHead(m_BoardSpaces[(x * m_BoardRows) + y]).DbgSetText("START"); } var _local18; var _local19; var _local14; var _local20; var _local8 = m_NeighborGrid[(_local18 * m_BoardRows) + _local19]; var _local2; var _local1; var _local5; var _local3; m_VisitedGrid[(x * m_BoardRows) + y] = 1; var _local21 = CGame.TileSet.GetColorCount(color) + CGame.TileSet.GetColorCount(Constants.Snood_Wild); var _local10 = new Array(_local21); var _local11 = new Array(_local21); var _local12 = new Array(_local21); var _local13 = new Array(_local21); _local10[0] = x; _local11[0] = y; _local12[0] = null; _local13[0] = 0; var _local17 = 1; var _local4 = 1; var _local16 = (color >= Constants.Snood_LumpStart) && (color <= Constants.Snood_LumpEnd); var _local9 = 0; while (_local9 < _local4) { _local18 = _local10[_local9]; _local19 = _local11[_local9]; _local14 = _local13[_local9] + 1; _local20 = SnoodHead(_local12[_local9]); _local8 = m_NeighborGrid[(_local18 * m_BoardRows) + _local19]; var _local7 = 0; while (_local7 < _local8[0].length) { _local2 = _local8[0][_local7]; _local1 = _local8[1][_local7]; _local3 = SnoodHead(m_BoardSpaces[(_local2 * m_BoardRows) + _local1]); _local5 = _local3.PowerUp; if (CGame.DbgShowComboCounter) { if (_local3 == undefined) { trace((("UNDEFINED @ " + _local2) + ",") + _local1); } else if (m_VisitedGrid[(_local2 * m_BoardRows) + _local1] > 0) { trace((("VISITED @ " + _local2) + ",") + _local1); } else if (_local3.__get__Color() == Constants.Snood_Wild) { SnoodHead(m_BoardSpaces[(_local2 * m_BoardRows) + _local1]).DbgSetText("WILD"); } else if (_local3.__get__Color() != color) { SnoodHead(m_BoardSpaces[(_local2 * m_BoardRows) + _local1]).DbgSetText("NOMATCH"); } } if (((((((_local3 != undefined) && (m_VisitedGrid[(_local2 * m_BoardRows) + _local1] != 1)) && (_local5 != Constants.PowerUp_Lock)) && (_local5 != Constants.PowerUp_Hypnosis)) && (_local5 != Constants.PowerUp_Jelly)) && (_local5 != Constants.PowerUp_JellyStrTwo)) && (_local5 != Constants.PowerUp_JellyStrThree)) { var _local6 = _local3.__get__Color(); if (((_local6 == color) || ((!_local16) && (_local6 == Constants.Snood_Wild))) || ((_local16 && (_local6 >= Constants.Snood_LumpStart)) && (_local6 <= Constants.Snood_LumpEnd))) { m_VisitedGrid[(_local2 * m_BoardRows) + _local1] = 1; m_comboPieces.push(_local3); m_comboCoords.push(new CCoord(_local2, _local1)); _local17++; _local4++; if (_local4 > _local10.length) { CDebug.WriteErr("Level.findMatches()", "Pre-allocated array overflow on openList!"); _local10.push(_local2); _local11.push(_local1); _local12.push(_local3); _local13.push(_local14); } else { _local10[_local4 - 1] = _local2; _local11[_local4 - 1] = _local1; _local12[_local4 - 1] = _local3; _local13[_local4 - 1] = _local14; } } } _local7++; } _local9++; } return(_local17); } static function tryToDropPieces() { var _local31 = CGame.TileSet; var _local32 = CGame.Board.IsRound(); var _local28 = Math.floor(m_BoardColumns / 2); var _local30 = 0; var _local25 = new Array(); var _local29 = new Array(); var _local18; var _local13; var _local12 = new Array(m_BoardColumns * m_BoardRows); var _local34 = m_InvalidatedSpots.length; var _local24 = 0; while (_local24 < _local34) { _local18 = int(m_InvalidatedSpots[_local24] / m_BoardRows); _local13 = m_InvalidatedSpots[_local24] % m_BoardRows; var _local27 = m_NeighborGrid[(_local18 * m_BoardRows) + _local13]; var _local21 = _local27[0]; var _local26 = _local27[1]; var _local3 = 0; while (_local3 < _local21.length) { var _local7 = _local21[_local3]; var _local6 = _local26[_local3]; if (_local12[(_local7 * m_BoardRows) + _local6] == undefined) { _local12[(_local7 * m_BoardRows) + _local6] = 1; if (m_BoardSpaces[(_local7 * m_BoardRows) + _local6] != undefined) { _local25.push(_local7); _local29.push(_local6); } } _local3++; } _local24++; } m_majorTraceCount = 0; if (CGame.DbgShowDropCheck) { SnoodHead.DbgClearTextOnAllSnoods(); } while (_local25.length > 0) { m_minorTraceCount = 0; _local18 = Number(_local25.pop()); _local13 = Number(_local29.pop()); var _local11 = (_local18 * m_BoardRows) + _local13; if (m_VisitedGrid[_local11] != undefined) { continue; } if (_local32) { if ((_local13 == _local28) && (_local18 == _local28)) { continue; } } else { if (_local13 == 0) { m_VisitedGrid[_local11] = 1; continue; } if (m_VisitedGrid[_local11] == 1) { continue; } if (_local12[_local11] == 2) { continue; } } var _local14 = [_local11]; var _local22 = false; _local12[_local11] = 2; m_VisitedGrid[_local11] = 2; if (_local32) { _local22 = checkConnectedInner(_local18, _local13, _local12, _local14, _local28); } else { _local22 = checkConnectedInner(_local18, _local13, _local12, _local14, null); } var _local20 = 0; var _local1 = []; var _local19 = []; while (_local14.length > 0) { var _local17 = Number(_local14.pop()); var _local10 = int(_local17 / m_BoardRows); var _local9 = _local17 % m_BoardRows; if (_local22) { m_VisitedGrid[(_local10 * m_BoardRows) + _local9] = 1; } else { var _local2 = SnoodHead(m_BoardSpaces[(_local10 * m_BoardRows) + _local9]); var _local4 = _local2.__get__PowerUp(); var _local8 = _local2.__get__Color(); _local31.SetTile(_local10, _local9, null); if (!Constants.IsBlockerHead(_local8)) { _local20++; } if (((_local4 == Constants.PowerUp_Shroud) || (_local4 == Constants.PowerUp_Lock)) || (_local4 == Constants.PowerUp_Hypnosis)) { _local2.SetPowerUp(Constants.PowerUp_None); if (_local4 == Constants.PowerUp_Lock) { var _local16 = CCharacterSounds.GetCharacterSound(_local8, Constants.__get__CharSound_Waking()); if (_local16 != null) { CGame.Sounds.PlaySound(_local16); } } } if (Constants.IsJellyFish(_local2.__get__PowerUp())) { _local2.SetPowerUp(Constants.PowerUp_None); CGame.Board.m_JellyFishyDropped++; } if (((!Constants.IsBlockerHead(_local8)) && (_local4 != Constants.PowerUp_Mine)) && ((_local20 < Constants.MaxFlyQueueCount) || (_local4 != Constants.PowerUp_None))) { _local1.push(_local2); } else { _local2.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard, s_LumpDropDur + Oberon.MathX.randRange(-((s_LumpDropDur * s_LumpDropDurVariancePct) / 200), (s_LumpDropDur * s_LumpDropDurVariancePct) / 200)); if ((_local2.__get__Color() >= Constants.Snood_LumpStart) && (_local2.__get__Color() <= Constants.Snood_LumpEnd)) { CGame.Board.m_LumpsDropped++; _local19.push(_local2); } else if (_local2.__get__Color() == Constants.Snood_Slippery) { CGame.Board.m_RubberLubberDropped++; _local19.push(_local2); } } _local30 = _local30 + 1; } } _local24 = 0; while (_local24 < _local1.length) { var _local5 = _local24; var _local3 = _local24; while (_local3 < _local1.length) { if (_local1[_local3] < SnoodHead(_local1[_local5])._y) { _local5 = _local3; } _local3++; } if (_local24 != _local5) { var _local23 = _local1[_local24]; _local1[_local24] = _local1[_local5]; _local1[_local5] = _local23; } _local24++; } CCharacterSounds.PlayWhees(_local1); CCharacterSounds.PlayLumpDrops(_local19); _local24 = 0; while (_local24 < _local1.length) { var _local15 = SnoodHead(_local1[_local24]); if (_local15.__get__PowerUp() != Constants.PowerUp_None) { _local15.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, m_BasePowerupDropSec); } _local24++; } _local24 = 0; while (_local24 < _local1.length) { var _local15 = SnoodHead(_local1[_local24]); if (_local15.__get__PowerUp() == Constants.PowerUp_None) { _local15.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToQueue, m_BaseDropSec); } _local24++; } } m_InvalidatedSpots = new Array(); if (_local30 >= 7) { var _local33 = 0; _local24 = 0; while (_local24 < _local1.length) { if (SnoodHead(_local1[_local24]).__get__Color() == Constants.Snood_Fuzzball) { _local33++; } _local24++; } if (_local33 >= 7) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_SevenFuzz); } } return(_local30); } static function checkConnectedInner(i_x, i_y, i_invalidHash, i_chain, i_roundCenter) { m_majorTraceCount++; var _local8 = m_NeighborGrid[(i_x * m_BoardRows) + i_y]; var _local10 = _local8[0]; var _local9 = _local8[1]; var _local3 = false; var _local4 = 0; for ( ; _local4 < _local8[0].length ; _local4++) { var _local2 = _local10[_local4]; var _local1 = _local9[_local4]; if (_local3) { m_VisitedGrid[(_local2 * m_BoardRows) + _local1] = 1; } else if (m_BoardSpaces[(_local2 * m_BoardRows) + _local1] == null) { } else if (m_VisitedGrid[(_local2 * m_BoardRows) + _local1] == 1) { _local3 = true; } else { if (i_roundCenter != null) { if ((_local1 == i_roundCenter) && (_local2 == i_roundCenter)) { _local3 = true; continue; } } else if (_local1 == 0) { _local3 = true; } else if (i_invalidHash[(_local2 * m_BoardRows) + _local1] != 2) { m_minorTraceCount++; if (CGame.DbgShowDropCheck) { m_BoardSpaces[(_local2 * m_BoardRows) + _local1].DbgSetText((m_majorTraceCount + ":") + m_minorTraceCount); } i_invalidHash[(_local2 * m_BoardRows) + _local1] = 2; i_chain.push((_local2 * m_BoardRows) + _local1); _local3 = _local3 || checkConnectedInner(_local2, _local1, i_invalidHash, i_chain, i_roundCenter); } if (i_invalidHash[(_local2 * m_BoardRows) + _local1] != 2) { m_minorTraceCount++; if (CGame.DbgShowDropCheck) { m_BoardSpaces[(_local2 * m_BoardRows) + _local1].DbgSetText((m_majorTraceCount + ":") + m_minorTraceCount); } i_invalidHash[(_local2 * m_BoardRows) + _local1] = 2; i_chain.push((_local2 * m_BoardRows) + _local1); _local3 = _local3 || (checkConnectedInner(_local2, _local1, i_invalidHash, i_chain, i_roundCenter)); } } } return(_local3); } static function TryDropSnoods() { CGame.Board.m_DropCheckNeeded = true; } static function DoDropSnoods(i_fullFlush) { if (i_fullFlush) { m_InvalidatedSpots = new Array(m_BoardRows * m_BoardColumns); var _local1 = 0; while (_local1 < (m_BoardRows * m_BoardColumns)) { m_InvalidatedSpots[_local1] = _local1; _local1++; } } if (m_InvalidatedSpots.length == 0) { return(undefined); } m_VisitedGrid = new Array(m_BoardRows * m_BoardColumns); var _local2 = tryToDropPieces(); if (_local2 == 1) { CGame.Sounds.PlaySound(Constants.__get__Sound_Drop()); } else if (_local2 > 1) { CGame.Sounds.SetNextSound(Constants.__get__Sound_Drop(), Constants.__get__Sound_BigDrop()); CGame.Sounds.PlaySound(Constants.__get__Sound_Drop()); } CGame.Board.m_TileSet.UpdateBoundingBox(); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + (_local2 * Constants.Score_Drop); if (_local2 >= Constants.Score_BigDropBonusStart) { var _local3 = Constants.Score_BigDropBonusBase + (Constants.Score_BigDropBonus * (_local2 - Constants.Score_BigDropBonusStart)); var _local4 = CGame.Board.CreatePointsEffect(CGame.TileSet.m_LastAttached.X, CGame.TileSet.m_LastAttached.Y, (CGame.Localizer.LocStr("Big Drop!") + "\n+") + String(_local3), s_BonusTint); CGame.Sounds.PlaySound(Constants.__get__Sound_Applause()); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + _local3; } if ((CGame.Board.m_Queue.GetCount() == 0) && (_local2 >= CGame.Board.m_Queue.GetCurMax())) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_FullRefill); } if (_local2 >= CPlayerInfo.s_AchievementMinorDropSize) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MinorHeadDrop); } if (_local2 >= CPlayerInfo.s_AchievementMajorDropSize) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MajorHeadDrop); } } static function onAddBorbEffectsComplete(x, y, whichObject, addDanger) { var _local11 = CGame.CurrentPlayer; var _local9 = CGame.Board.IsRound(); var _local10 = true; if (m_BoardSpaces[(x * m_BoardRows) + y] != undefined) { m_comboPieces = []; m_comboCoords = []; var _local8 = countAllCombos(x, y, whichObject.__get__Color()); if (_local8 < 3) { _local10 = false; CGame.Sounds.PlaySound(Constants.__get__Sound_Stick()); whichObject.StopBankShotEffects(); } else { if (CGame.Board.m_InPlungerGrab) { } var _local6 = whichObject.PlayBankEffectRewards(); if (_local6 > 0) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MinorBankMatch); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_BankBonusOne; if (_local6 > 1) { CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_BankBonusTwo; } if (_local6 > 2) { CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_BankBonusThree; } } } var _local1 = 0; while (_local1 < m_comboPieces.length) { var _local7 = SnoodHead(m_comboPieces[_local1]); var _local2 = CCoord(m_comboCoords[_local1]); CGame.EffectMgr.BroadcastBorbEffectMesgToNeighbors(_local2.Y, _local2.X, _local7, 4, {inWhichObject:_local7}); _local1++; } CGame.EffectMgr.BroadcastBorbEffectMesgToNeighbors(y, x, whichObject, 2, {inX:x, inY:y, inWhichObject:whichObject}); } TryDropSnoods(); if (_local8 <= 2) { if (_local9) { var _local7 = SnoodHead(m_BoardSpaces[(x * m_BoardRows) + y]); if ((_local7 != undefined) && (!isValidCicleLocation(x, y))) { if (_local7.__get__Color() <= Constants.Snood_HeadCount) { CGame.Board.m_Lost = true; m_BoardLoser = _local11; m_LosePieces.push(whichObject); } else { CGame.Board.m_TileSet.SetTile(x, y, null); _local7.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard); TryDropSnoods(); } } } else if ((y + m_BoardLevel) >= m_LoseLevel) { if (whichObject.__get__Color() <= Constants.Snood_HeadCount) { CGame.Board.m_Lost = true; m_LosePieces.push(whichObject); } else { whichObject.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard); TryDropSnoods(); } } } } static var DbgShowSnoodCoords = false; static var m_ShiftedPieces = []; static var m_InvalidatedSpots = []; static var m_BasePowerupDropSec = 1; static var m_PowerupIncrDropSec = 0.5; static var m_BaseDropSec = 0.6; static var m_BaseIncrDropSec = 0.13; static var s_BonusTint = 16776960; static var s_LumpDropDur = 0.5; static var s_LumpDropDurVariancePct = 20; }
Symbol 26 MovieClip [__Packages.CPlayerInfo] Frame 0
class CPlayerInfo { var m_Score, m_achievementsDone; function CPlayerInfo (inPlayerName) { Reset(); ResetAchievements(); } function Reset() { m_Score = 0; ResetBoardVariables(); } function ResetAchievements() { m_achievementsDone = new Array(Achievement_COUNT); var _local2 = 0; while (_local2 < Achievement_COUNT) { m_achievementsDone[_local2] = false; _local2++; } } function ResetBoardVariables() { } function SyncAchievements(i_arr) { var _local2 = 0; while (_local2 < i_arr.length) { m_achievementsDone[_local2] = !i_arr[_local2]; _local2++; } } static function AchievementToString(i_achievement) { switch (i_achievement) { case Achievement_MinorBankMatch : return("MinorBankMatch"); case Achievement_MinorHeadDrop : return("MinorHeadDrop"); case Achievement_MinorCombo : return("MinorCombo"); case Achievement_WildCombo : return("WildCombo"); case Achievement_MinorLevelCompletion : return("MinorLevelCompletion"); case Achievement_MajorBallLevelCompletion : return("MajorBallLevelCompletion"); case Achievement_MajorVertLevelCompletion : return("MajorVertLevelCompletion"); case Achievement_MajorBankMatch : return("MajorBankMatch"); case Achievement_FullRefill : return("FullRefill"); case Achievement_LumpBonus : return("LumpBonus"); case Achievement_ReboundWin : return("ReboundWin"); case Achievement_MajorHeadDrop : return("MajorHeadDrop"); case Achievement_MajorWildCombo : return("MajorWildCombo"); case Achievement_RubberEffyBankMatch : return("RubberEffyBankMatch"); case Achievement_SevenFuzz : return("SevenFuzz"); case Achievement_BreakCrateWithLump : return("BreakCrateWithLump"); } CDebug.WriteErr("CPlayerInfo.AchievementToString()", "Unknown Achievement : " + i_achievement); return(null); } function GetIsAccomplished(i_achievement) { return(m_achievementsDone[i_achievement]); } function Accomplish(i_achievement) { if (((!m_achievementsDone[i_achievement]) && (!CGame.s_CheatedThisGame)) && (CWebConfig.IsAchievementActive())) { m_achievementsDone[i_achievement] = true; var _local3 = UI.CAchievementDlg(Core.DialogUtil.Push(Constants.Dialog_Achievement)); _local3.SetAchievementType(i_achievement + 1); CPachinko.AchievementScored(AchievementToString(i_achievement)); } } static var Achievement_MinorBankMatch = 0; static var Achievement_MinorHeadDrop = 1; static var Achievement_MinorCombo = 2; static var Achievement_WildCombo = 3; static var Achievement_MinorLevelCompletion = 4; static var Achievement_MajorBallLevelCompletion = 5; static var Achievement_MajorVertLevelCompletion = 6; static var Achievement_MajorBankMatch = 7; static var Achievement_FullRefill = 8; static var Achievement_LumpBonus = 9; static var Achievement_ReboundWin = 10; static var Achievement_BreakCrateWithLump = 11; static var Achievement_MajorHeadDrop = 12; static var Achievement_MajorWildCombo = 13; static var Achievement_RubberEffyBankMatch = 14; static var Achievement_SevenFuzz = 15; static var Achievement_COUNT = 16; static var s_AchievementMinorDropSize = 5; static var s_AchievementMajorDropSize = 15; static var s_AchievementMinorComboSize = 10; }
Symbol 27 MovieClip [__Packages.UI.CAchievementDlg] Frame 0
class UI.CAchievementDlg extends CDialog { var Name, BackVisible, m_type, m_state, inner, Close; function CAchievementDlg () { super(); Name = Constants.Dialog_Achievement; if (Core.DialogUtil.Top().Name == Constants.Dialog_Achievement) { BackVisible = false; } m_type = null; m_state = State_Skip; CGame.s_Speed = 0; } function SetAchievementType(i_type) { m_type = i_type; inner.gotoAndStop(i_type); } function onLoad() { super.onLoad(); CGame.Sounds.PlaySound(Constants.__get__Sound_Applause()); } function onClick(i_context) { if (Core.Button(i_context) != null) { var _local2 = Core.Button(i_context); if (!(_local2.__get__Name() === "Continue")) { } else { Close(); if (Core.DialogUtil.Top().Name != Constants.Dialog_Achievement) { CGame.s_Speed = CGame.s_BaseSpeed; } } } return(true); } static var State_Skip = 3; }
Symbol 28 MovieClip [__Packages.Constants] Frame 0
class Constants { function Constants () { } static function get StudioName() { return("Oberon Games Studio"); } static function get StudioNameConcat() { return("OberonGames"); } static function get GameName() { return("Scrubbles"); } static function get GameNameConcat() { return("Scrubbles"); } static function get GameNameAbbr() { return("Bum"); } static function get BackgoundTileCount() { return(10); } static function get Message_Close() { return(0); } static function BoardModeToString(inVal) { switch (inVal) { case BoardMode_Easy : return("SuperEasy"); case BoardMode_Easy : return("Easy"); case BoardMode_Medium : return("Medium"); case BoardMode_Hard : return("Hard"); case BoardMode_Impossible : return("Impossible"); case BoardMode_BallSuperEasy : return("BallSuperEasy"); case BoardMode_BallEasy : return("BallEasy"); case BoardMode_BallMedium : return("BallMedium"); case BoardMode_BallHard : return("BallHard"); case BoardMode_BallImpossible : return("BallImpossible"); } CDebug.WriteErr("Constants.BoardModeToString()", "Unknown val: " + inVal); return("<Unknown>:" + inVal); } static function StringToBoardMode(inVal) { switch (inVal) { case "SuperEasy" : return(BoardMode_SuperEasy); case "Easy" : return(BoardMode_Easy); case "Medium" : return(BoardMode_Medium); case "Hard" : return(BoardMode_Hard); case "Impossible" : return(BoardMode_Impossible); case "BallSuperEasy" : return(BoardMode_BallSuperEasy); case "BallEasy" : return(BoardMode_BallEasy); case "BallMedium" : return(BoardMode_BallMedium); case "BallHard" : return(BoardMode_BallHard); case "BallImpossible" : return(BoardMode_BallImpossible); } CDebug.WriteErr("Constants.BoardModeToString()", "Unknown mode: " + inVal); return(null); } static function IsBoardModeCircular(i_mode) { switch (i_mode) { case BoardMode_SuperEasy : case BoardMode_Easy : case BoardMode_Medium : case BoardMode_Hard : case BoardMode_Impossible : return(false); case BoardMode_BallSuperEasy : case BoardMode_BallEasy : case BoardMode_BallMedium : case BoardMode_BallHard : case BoardMode_BallImpossible : return(true); } CDebug.WriteErr("Constants.IsBoardModeCircular()", "Unknown mode: " + i_mode); return(false); } static function BoardModeToMaxWidth(inMode) { switch (inMode) { case BoardMode_SuperEasy : return(13); case BoardMode_Easy : return(13); case BoardMode_Medium : return(17); case BoardMode_Hard : return(17); case BoardMode_Impossible : return(17); case BoardMode_BallSuperEasy : return(17); case BoardMode_BallEasy : return(17); case BoardMode_BallMedium : return(17); case BoardMode_BallHard : return(19); case BoardMode_BallImpossible : return(19); } CDebug.WriteErr("Constants.BoardModeToMaxWidth()", "Unknown mode: " + inMode); return(null); } static function BoardModeToMaxHeight(inMode) { switch (inMode) { case BoardMode_SuperEasy : return(14); case BoardMode_Easy : return(14); case BoardMode_Medium : return(16); case BoardMode_Hard : return(17); case BoardMode_Impossible : return(17); case BoardMode_BallSuperEasy : return(17); case BoardMode_BallEasy : return(17); case BoardMode_BallMedium : return(17); case BoardMode_BallHard : return(19); case BoardMode_BallImpossible : return(19); } CDebug.WriteErr("Constants.BoardModeToMaxWidth()", "Unknown mode: " + inMode); return(null); } static function GetBoardModeFillLevel(inMode) { switch (inMode) { case BoardMode_SuperEasy : return(4); case BoardMode_Easy : return(4); case BoardMode_Medium : return(5); case BoardMode_Hard : return(6); case BoardMode_Impossible : return(6); case BoardMode_BallSuperEasy : return(5); case BoardMode_BallEasy : return(5); case BoardMode_BallMedium : return(8); case BoardMode_BallHard : return(9); case BoardMode_BallImpossible : return(9); } CDebug.WriteErr("Constants.GetBoardModeFillLevel()", "Unknown mode: " + inMode); return(null); } static function get Key_1pShoot() { return(87); } static function get Key_1pLeft() { return(65); } static function get Key_1pRight() { return(68); } static function get Key_1pSwitch() { return(83); } static function get Key_2pShoot() { return(38); } static function get Key_2pLeft() { return(37); } static function get Key_2pRight() { return(39); } static function get Key_2pSwitch() { return(40); } static function get Sound_Shoot() { return(0); } static function get Sound_Bounce() { return(1); } static function get Sound_Bounce2x() { return(2); } static function get Sound_Bounce3x() { return(3); } static function get Sound_Drop() { return(4); } static function get Sound_BigDrop() { return(5); } static function get Sound_Points() { return(6); } static function get Sound_Wild() { return(7); } static function get Sound_Stick() { return(8); } static function get Sound_Bomb() { return(9); } static function get Sound_ButtonClick() { return(10); } static function get Sound_ButtonHover() { return(11); } static function get Sound_Whoosh() { return(12); } static function get Sound_BallSpin() { return(13); } static function get Sound_Shroud() { return(14); } static function get Sound_Hook() { return(15); } static function get Sound_Pop() { return(16); } static function get Sound_Hit() { return(17); } static function get Sound_BoardStart() { return(18); } static function get Sound_Lose() { return(19); } static function get Sound_BreakCrate() { return(20); } static function get Sound_ShroudRemove() { return(21); } static function get Sound_WakingCrabby1() { return(22); } static function get Sound_WakingDeeJay() { return(23); } static function get Sound_WakingEffy() { return(24); } static function get Sound_WakingFrank2() { return(25); } static function get Sound_WakingFuzzball3() { return(26); } static function get Sound_WakingMaryAnn2() { return(27); } static function get Sound_WakingPearl2() { return(28); } static function get Sound_WakingSandy1() { return(29); } static function get Sound_WheeCrabby1() { return(30); } static function get Sound_WheeDeeJay1() { return(31); } static function get Sound_WheeEffy2() { return(32); } static function get Sound_WheeFrank2() { return(33); } static function get Sound_WheeFuzzball() { return(34); } static function get Sound_WheeMaryAnn() { return(35); } static function get Sound_WheePearl2() { return(36); } static function get Sound_WheeSandy1() { return(37); } static function get Sound_BubbleCrabby() { return(38); } static function get Sound_BubbleDeeJay() { return(39); } static function get Sound_BubbleEffy() { return(40); } static function get Sound_BubbleFrank() { return(41); } static function get Sound_BubbleFuzzball() { return(42); } static function get Sound_BubbleMaryAnn() { return(43); } static function get Sound_BubblePearl() { return(44); } static function get Sound_BubbleSandy() { return(45); } static function get Sound_SureShotCrabby() { return(46); } static function get Sound_SureShotDeeJay() { return(47); } static function get Sound_SureShotEffy() { return(48); } static function get Sound_SureShotFrank() { return(49); } static function get Sound_SureShotFuzzball() { return(50); } static function get Sound_SureShotMaryAnn() { return(51); } static function get Sound_SureShotPearl() { return(52); } static function get Sound_SureShotSandy() { return(53); } static function get Sound_HotfootCrabby() { return(54); } static function get Sound_HotfootDeeJay() { return(55); } static function get Sound_HotfootEffy() { return(56); } static function get Sound_HotfootFrank() { return(57); } static function get Sound_HotfootFuzzball() { return(58); } static function get Sound_HotfootMaryAnn() { return(59); } static function get Sound_HotfootPearl() { return(60); } static function get Sound_HotfootSandy() { return(61); } static function get Sound_PlungerCrabby() { return(62); } static function get Sound_PlungerDeeJay() { return(63); } static function get Sound_PlungerEffy() { return(64); } static function get Sound_PlungerFrank() { return(65); } static function get Sound_PlungerFuzzball() { return(66); } static function get Sound_PlungerMaryAnn() { return(67); } static function get Sound_PlungerPearl() { return(68); } static function get Sound_PlungerSandy() { return(69); } static function get Sound_WildCrabby() { return(70); } static function get Sound_WildDeeJay() { return(71); } static function get Sound_WildEffy() { return(72); } static function get Sound_WildFrank() { return(73); } static function get Sound_WildFuzzball() { return(74); } static function get Sound_WildMaryAnn() { return(75); } static function get Sound_WildPearl() { return(76); } static function get Sound_WildSandy() { return(77); } static function get Sound_BubbleFirst() { return(78); } static function get Sound_Bubble2() { return(79); } static function get Sound_Bubble3() { return(80); } static function get Sound_Bubble4() { return(81); } static function get Sound_Bubble5() { return(82); } static function get Sound_Bubble6() { return(83); } static function get Sound_Bubble7() { return(84); } static function get Sound_Bubble8() { return(85); } static function get Sound_BubbleLast() { return(86); } static function get Sound_Applause() { return(87); } static function get Sound_PlungerGrab() { return(88); } static function get Sound_Plunger() { return(89); } static function get Sound_LumpDrop() { return(90); } static function get Sound_Hotfoot() { return(91); } static function get Sound_HotfootBurn() { return(92); } static function get Sound_Rubber() { return(93); } static function get Sound_SureShot() { return(94); } static function get Sound_BubbleBubble() { return(95); } static function get Sound_BubbleBubbleHit() { return(96); } static function get Sound_FishyFly() { return(97); } static function get Sound_FishyLand() { return(98); } static function get Sound_Count() { return(99); } static function get CharSound_Waking() { return(0); } static function get CharSound_Whee() { return(1); } static function get SoundChannel_Music() { return(1); } static function get SoundChannel_Effects() { return(2); } static function get SoundChannel_Voice() { return(3); } static function get FHostSoundsPath() { return("Resources\\Sounds\\"); } static function GetFHostChannel(inSoundChannel) { switch (inSoundChannel) { case SoundChannel_Music : return(FHost.CApp.__get__Channel_Music()); case SoundChannel_Voice : return(FHost.CApp.__get__Channel_Voice()); } return(FHost.CApp.__get__Channel_Sound()); } static function get VolumeDefault_Music() { return(50); } static function get VolumeDefault_Effects() { return(100); } static function get VolumeDefault_Voice() { return(100); } static function GetSoundVolume(inSoundId) { return(100); } static function get WinLoseResult_PlayNext() { return(0); } static function get WinLoseResult_PlayAgain() { return(1); } static function get WinLoseResult_PlayExactAgain() { return(2); } static function get WinLoseResult_MainMenu() { return(3); } static function GetSnoodByNumber(inIndex) { switch (inIndex) { case Snood_Mary : return("Mary"); case Snood_Crabby : return("Crabby"); case Snood_Frank : return("Frank"); case Snood_Fuzzball : return("Fuzzball"); case Snood_Pearl : return("Pearl"); case Snood_Lump1 : return("Lump1"); case Snood_Lump2 : return("Lump2"); case Snood_Lump3 : return("Lump3"); case Snood_Slippery : return("Slippery"); case Snood_MiniRobot : return("MiniRobot"); case Snood_OrbBlue : return("OrbBlue"); case Snood_OrbCyan : return("OrbCyan"); case Snood_OrbGray : return("OrbGray"); case Snood_OrbGreen : return("OrbGreen"); case Snood_OrbOrange : return("OrbOrange"); case Snood_OrbPurple : return("OrbPurple"); case Snood_OrbRed : return("OrbRed"); case Snood_Wild : return("Wild"); case Snood_Star : return("Star"); case Snood_Holly : return("Holly"); case Snood_Sandy : return("Sandy"); case Snood_Crate : return("Crate"); case Snood_CrateStrTwo : return("CrateStrTwo"); case Snood_CrateStrThree : return("CrateStrThree"); } CDebug.Assert(false, "Constants.GetSnoodByNumber()", "Referencing unknown snood " + inIndex); return("<Unknown>:" + inIndex); } static function GetSnoodByString(inStr) { switch (inStr) { case "Mary" : return(Snood_Mary); case "Crabby" : return(Snood_Crabby); case "Frank" : return(Snood_Frank); case "Fuzzball" : return(Snood_Fuzzball); case "Pearl" : return(Snood_Pearl); case "Lump" : return(Oberon.MathX.randRange(Snood_LumpStart, Snood_LumpEnd)); case "Slippery" : return(Snood_Slippery); case "MiniRobot" : return(Snood_MiniRobot); case "OrbBlue" : return(Snood_OrbBlue); case "OrbCyan" : return(Snood_OrbCyan); case "OrbGray" : return(Snood_OrbGray); case "OrbGreen" : return(Snood_OrbGreen); case "OrbOrange" : return(Snood_OrbOrange); case "OrbPurple" : return(Snood_OrbPurple); case "OrbRed" : return(Snood_OrbRed); case "Wild" : return(Snood_Wild); case "Star" : return(Snood_Star); case "Holly" : return(Snood_Holly); case "Sandy" : return(Snood_Sandy); case "Driftwood" : return(Snood_Crate); case "Crate" : return(Snood_Crate); case "CrateStrOne" : return(Snood_Crate); case "CrateStrTwo" : return(Snood_CrateStrTwo); case "CrateStrThree" : return(Snood_CrateStrThree); } CDebug.Assert(false, "Constants.GetSnoodByString()", "Referencing unknown snood " + inStr); return(null); } static function IsBorbRandEmote(i_color) { switch (i_color) { case Snood_Crate : case Snood_CrateStrTwo : case Snood_CrateStrThree : return(true); } return(false); } static function GetPowerUpByNumber(inIndex) { switch (inIndex) { case PowerUp_None : return("None"); case PowerUp_BubbleBubble : return("BubbleBubble"); case PowerUp_Ghost : return("Ghost"); case PowerUp_Aimer : return("Aimer"); case PowerUp_Fireball : return("Fireball"); case PowerUp_Shroud : return("Shroud"); case PowerUp_Jelly : return("Jelly"); case PowerUp_JellyStrTwo : return("JellyStrTwo"); case PowerUp_JellyStrThree : return("JellyStrThree"); case PowerUp_Lock : return("Lock"); case PowerUp_Mine : return("Mine"); case PowerUp_Hook : return("Hook"); case PowerUp_Hypnosis : return("Hypnosis"); } CDebug.Assert(false, Constants, "Referencing unknown powerup " + inIndex); return("<Unknown>"); } static function GetPowerUpByString(inStr) { switch (inStr) { case "None" : return(PowerUp_None); case "Star" : case "BubbleBubble" : return(PowerUp_BubbleBubble); case "Ghost" : return(PowerUp_Ghost); case "Hook" : return(PowerUp_Hook); case "Fireball" : return(PowerUp_Fireball); case "Shroud" : return(PowerUp_Shroud); case "Slump" : case "Jelly" : return(PowerUp_Jelly); case "JellyStrTwo" : return(PowerUp_JellyStrTwo); case "JellyStrThree" : return(PowerUp_JellyStrThree); case "Aimer" : return(PowerUp_Aimer); case "Lock" : return(PowerUp_Lock); case "Mine" : return(PowerUp_Mine); case "Hypnosis" : return(PowerUp_Hypnosis); } CDebug.Assert(false, Constants, "Referencing unknown powerup " + inStr); return(null); } static function IsJellyFish(i_powerUp) { switch (i_powerUp) { case PowerUp_Jelly : case PowerUp_JellyStrTwo : case PowerUp_JellyStrThree : return(true); } return(false); } static function IsOrb(inVal) { return((inVal > Snood_HeadCount) && (inVal <= (Snood_HeadCount * 2))); } static function IsHead(i_color, inIncludeOrbs) { return(i_color <= (Snood_HeadCount * (inIncludeOrbs ? 2 : 1))); } static function IsSpecialBorb(i_color) { return((i_color >= Snood_SpecialStart) && (i_color <= Snood_SpecialEnd)); } static function IsBlockerHead(i_color) { return((i_color >= Snood_BlockerStart) && (i_color <= Snood_BlockerEnd)); } static function GetAllHeads() { var _local2 = new Array(Snood_HeadCount); var _local1 = 1; while (_local1 <= Snood_HeadCount) { _local2[_local1 - 1] = _local1; _local1++; } return(_local2); } static var Scaling = 66.6; static var BallBonusMod = 2; static var Fps = 60; static var ScoreWinNotCleared = 500; static var ScoreWinCleared = 1000; static var BorbPoolBufferSize = 10; static var ShotsPerLauncherAdvance = Number.POSITIVE_INFINITY; static var ComboChainBorbRate = 5; static var MaxFlyQueueCount = 15; static var GameResX = 535; static var GameResY = 400; static var FireballPower = 5; static var ArcadeSetCount = 15; static var ArcadeDiffCount = 1; static var ArcadeModeCount = 2; static var Score_Match = 10; static var Score_MiniRobot = 50; static var Score_Drop = 100; static var Score_BankBonusOne = 75; static var Score_BankBonusTwo = 150; static var Score_BankBonusThree = 300; static var Score_ComboBonusStart = 3; static var Score_ComboBonusBase = 100; static var Score_ComboBonus = 50; static var Score_BigDropBonusStart = 10; static var Score_BigDropBonusBase = 100; static var Score_BigDropBonus = 50; static var Score_RubberLubberDropBonus = 200; static var Score_JellyFishyDropBonus = 400; static var Score_QueueOverflowBonus = 50; static var Score_LumpBonus = 100; static var Score_RubberLubberBonus = 300; static var Score_DiveBarBonus = 500; static var Score_LumpDropBonus = 50; static var SuppressSerializer = false; static var LowQualityAnimInterval = 3; static var MedQualityAnimInterval = 2; static var HighQualityAnimInterval = null; static var Level_Count = 0; static var MuzzleVelocity = 24; static var FireballInitVelocity = 3; static var FireballAccel = 40; static var Gravity = 1500; static var LateralVelocity = 90; static var VaporizeAcceleration = -2400; static var SuckVelocity = 1200; static var Dialog_MainMenu = "MainMenuDialog"; static var Dialog_MainMenuDbg = "MainMenuDialog"; static var Dialog_Options = "OptionsDialog"; static var Dialog_StartPuzzle = "StartPuzzleGameDlg"; static var Dialog_StartArcade = "StartArcadeDlg"; static var Dialog_Help = "HelpDialog"; static var Dialog_BoardLoading = "LoadingDialog"; static var Dialog_GameBoardMenu = "MainMenuButtons"; static var Dialog_GameBoardMenuDbg = "MainMenuButtons"; static var Dialog_Cutscene = "CutsceneDlg"; static var Dialog_ArcadeSetWin = "ArcadeSetWinDlg"; static var Dialog_ArcadeWin = "ArcadeWinDlg"; static var Dialog_Statistics = "StatisticsDlg"; static var Dialog_About = "AboutDlg"; static var Dialog_ChoosePlayerDlg = "ChoosePlayerDlg"; static var Dialog_ChoosePlayerFirstPlayDlg = "ChoosePlayerFirstPlayDlg"; static var Dialog_BoardVertical = "VerticalBoardDialog"; static var Dialog_BoardVerticalDbg = "VerticalBoardDialog"; static var Dialog_BoardCircular = "CircleBoardDialog"; static var Dialog_BoardCircularDbg = "CircleBoardDialog"; static var Dialog_Confirmation = "ConfirmationDlg"; static var Dialog_ArcadeChooseMode = "ArcadeChooseModeDlg"; static var Dialog_TipArcade = "TipArcadeDlg"; static var Dialog_TipMap = "TipMapDlg"; static var Dialog_JourneyWin = "Journey Win"; static var Dialog_Lose = "Generic Lose"; static var Dialog_Achievement = "AchievementDialog"; static var Dialog_Upsell = "UpsellDialog"; static var MaxProjectileBounces = 10; static var BaseProjectileXScale = 0.1; static var BaseProjectileYScale = 0.8; static var ProjectileOvershotScale = 0.3; static var BoardDiff_Easy = 0; static var BoardDiff_Medium = 1; static var BoardDiff_Hard = 2; static var BoardDiff_Impossible = 3; static var BoardMode_SuperEasy = 1; static var BoardMode_Easy = 2; static var BoardMode_Medium = 3; static var BoardMode_Hard = 4; static var BoardMode_Impossible = 5; static var BoardMode_BallSuperEasy = 6; static var BoardMode_BallEasy = 7; static var BoardMode_BallMedium = 8; static var BoardMode_BallHard = 9; static var BoardMode_BallImpossible = 10; static var CutScenesToSkip = [22]; static var Snood_Mary = 1; static var Snood_Crabby = 2; static var Snood_Frank = 3; static var Snood_Fuzzball = 4; static var Snood_Pearl = 5; static var Snood_Star = 6; static var Snood_Holly = 7; static var Snood_Sandy = 8; static var Snood_HeadCount = 8; static var Snood_OrbRed = 9; static var Snood_OrbOrange = 10; static var Snood_OrbBlue = 11; static var Snood_OrbGreen = 12; static var Snood_OrbGray = 13; static var Snood_OrbYellow = 14; static var Snood_OrbPurple = 15; static var Snood_OrbCyan = 16; static var Snood_BlockerStart = 17; static var Snood_Crate = 17; static var Snood_CrateStrTwo = 18; static var Snood_CrateStrThree = 19; static var Snood_LumpStart = 20; static var Snood_Lump1 = 20; static var Snood_Lump2 = 21; static var Snood_Lump3 = 22; static var Snood_LumpEnd = 22; static var Snood_MiniRobot = 23; static var Snood_Slippery = 24; static var Snood_BlockerEnd = 24; static var Snood_SpecialStart = 25; static var Snood_Wild = 26; static var Snood_SpecialEnd = 26; static var Snood_BossStart = 27; static var Snood_BigBoss = 27; static var Snood_BigBossRobot = 28; static var Snood_BigBossSandy = 29; static var Snood_BigBossSquid = 30; static var Snood_BossEnd = 30; static var Snood_Count = 30; static var s_BorbColorDarkTints = [16729156, 16755234, 1606142, 4521796, 16777215, 2271778, 14492415, 16776960, 16729156, 16755234, 1606142, 4521796, 16777215, 2271778, 14492415, 16776960]; static var s_BorbColorTints = [16711680, 16750848, 1606142, 65280, 16777215, 39168, 13369599, 16776960, 16711680, 16750848, 1606142, 65280, 16777215, 39168, 13369599, 16776960]; static var AllBlockerHeads = [Snood_Crate, Snood_CrateStrTwo, Snood_CrateStrThree, Snood_Lump1, Snood_Lump2, Snood_Lump3, Snood_MiniRobot, Snood_Slippery]; static var PowerUp_None = 1; static var PowerUp_Ghost = 2; static var PowerUp_BubbleBubble = 3; static var PowerUp_Aimer = 4; static var PowerUp_Hook = 5; static var PowerUp_Fireball = 6; static var PowerUp_Shroud = 7; static var PowerUp_Slump = 8; static var PowerUp_Jelly = 8; static var PowerUp_JellyStrTwo = 9; static var PowerUp_JellyStrThree = 10; static var PowerUp_Lock = 11; static var PowerUp_Mine = 12; static var PowerUp_Hypnosis = 14; static var PowerUp_Count = 15; static var AllCannonPowerUps = [PowerUp_BubbleBubble, PowerUp_Aimer, PowerUp_Fireball, PowerUp_Hook, PowerUp_Mine]; static var AllCratePowerUps = [PowerUp_BubbleBubble, PowerUp_Aimer, PowerUp_Hook, PowerUp_Mine]; }
Symbol 29 MovieClip [__Packages.Oberon.MathX] Frame 0
class Oberon.MathX { function MathX () { } static function degToRad(deg) { return((Math.PI * deg) / 180); } static function radToDeg(rad) { return((rad * 180) / Math.PI); } static function roundDecPl(num, decPl) { var _local2 = Math.pow(10, decPl); num = num * _local2; num = Math.round(num); num = num / _local2; return(num); } static function roundTo(num, roundToInterval) { if (roundToInterval == undefined) { roundToInterval = 1; } return(Math.round(num / roundToInterval) * roundToInterval); } static function zeroFill(num, places, trailing, includeSign) { var _local7 = num < 0; if (_local7) { num = -num; } var _local1 = String(num); var _local3 = _local1.length; var _local2 = 0; while (_local2 < (places - _local3)) { if (trailing) { _local1 = _local1 + "0"; } else { _local1 = "0" + _local1; } _local2++; } if (_local7) { _local1 = "-" + _local1; } else if (includeSign) { _local1 = "+" + _local1; } return(_local1); } static function zeroAddPlaces(num, places) { var _local2 = String(num); var _local4 = _local2.indexOf("."); var _local3 = places - ((_local2.length - _local4) - 1); if (_local4 == -1) { _local3 = places; _local2 = _local2 + "."; } var _local1 = 0; while (_local1 < _local3) { _local2 = _local2 + "0"; _local1++; } return(_local2); } static function randRange(min, max, decPl) { if (decPl == undefined) { return(Math.round((Math.random() * (max - min)) + min)); } var _local3 = ((max - min) * Math.pow(10, decPl)) + 1; var _local1 = Math.random() * _local3; _local1 = Math.floor(_local1); _local1 = _local1 / Math.pow(10, decPl); _local1 = _local1 + min; return(_local1); } static function averageArray(a) { if (a.length == 0) { return(0); } var _local3 = 0; var _local1 = 0; while (_local1 < a.length) { _local3 = _local3 + a[_local1]; _local1++; } return(_local3 / a.length); } static function dec2hex(dec) { var _local2 = "0123456789ABCDEF"; var _local1; var _local4; if (dec > 15) { _local1 = _local2.charAt(Math.floor(dec / 16)); _local4 = _local2.charAt(dec - (_local1 * 16)); } else { _local1 = 0; _local4 = _local2.charAt(dec); } return(_local1 + _local4); } static function randIntRange(lower, upper) { return(Math.floor(Math.random() * (upper - lower)) + lower); } static function randInt(upper) { return(Math.floor(Math.random() * upper)); } static function shuffleArray(ar) { var _local1; var _local3; var _local4; _local1 = ar.length - 1; while (_local1 > 0) { _local3 = Math.floor(Math.random() * (_local1 + 1)); if (_local1 == _local3) { } else { _local4 = ar[_local1]; ar[_local1] = ar[_local3]; ar[_local3] = _local4; } _local1--; } } }
Symbol 30 MovieClip [__Packages.Core.DialogUtil] Frame 0
class Core.DialogUtil { function DialogUtil () { } static function pushMc(inDialog, inSymbolName, inInitObject) { var _local3 = Object(CGame.Root).getNextHighestDepth(); var _local2 = Object(CGame.Root).attachMovie(inSymbolName, "Dialog" + _local3, _local3, inInitObject); CDebug.Assert(_local2 != null, "Core.DialogUtil.pushMc()", "Couldn't create symbol " + inSymbolName); if (inDialog) { _dialogStack.push(_local2); if (!doTransitionIn(_local2)) { _local2._alpha = 100; } } else { _local2.cacheAsBitmap = true; _backStack.push(_local2); } _local2._x = _global.MovieWidth / 2; _local2._y = _global.MovieHeight / 2; if (_local2.Name == undefined) { _local2.Name = inSymbolName; } return(_local2); } static function OnTransitionInComplete() { MovieClip(m_InTransition.m_Obj).cacheAsBitmap = false; m_InTransition = null; } static function OnTransitionOutComplete() { MovieClip(m_OutTransition.m_Obj).removeMovieClip(); m_OutTransition = null; } static function ToString() { var _local4 = "Dialog manifest:\n"; var _local1 = 0; while (_local1 < _dialogStack.length) { var _local2 = MovieClip(_dialogStack[_local1]); var _local3 = MovieClip(_backStack[_local1]); _local4 = _local4 + (((((((((((((((((((((" (" + (_local1 * 2)) + ") ") + _local3.Name) + String(_local3)) + "( ") + "mc,") + "back,") + (_local3._visible ? "visible" : "hidden")) + ")\n") + " (") + ((_local1 * 2) + 1)) + ") ") + _local2.Name) + String(_local2)) + "( ") + ((CDialog(_local2) != null) ? "dialog" : "mc")) + ",") + (((_local1 % 2) == 0) ? "back" : "front")) + ",") + (_local2._visible ? "visible" : "hidden")) + ")\n"); _local1++; } return(_local4); } static function CanPush() { return(((_dialogStack.length == 0) || (CDialog(Top()) == null)) || (!CDialog(Top()).TopMostOnly)); } static function Push(inSymbolName, inInitObject, inShowBackground) { if (!CanPush()) { CDebug.WriteLine("DialogUtil.Push()", "Can't push on top of TopMostOnly dialog " + CDialog(Top()).Name); } CDialog(Top()).OnLoseFocus(); CDebug.WriteLine("DialogUtil.Push()", inSymbolName); if (inShowBackground == undefined) { inShowBackground = true; } ClearForTransition(); var _local4 = _dialogStack.length == 0; var _local1 = pushMc(false, "Modal Background"); _local1.useHandCursor = false; _local1.onRollOver = function () { }; _local1.onRollOut = function () { }; _local1.onPress = function () { }; _local1.onDragOut = function () { }; _local1.onDragOver = function () { }; _local1.onRelease = function () { }; _local1.onReleaseOutside = function () { }; _local1.onKeyDown = function () { }; _local1.onKeyUp = function () { }; _local1.onMouseDown = function () { }; _local1.onMouseMove = function () { }; _local1.onMouseUp = function () { }; _local1.onPress = function () { }; if (!inShowBackground) { _local1._alpha = 0; } var _local3 = MovieClip(pushMc(true, inSymbolName, inInitObject)); var _local2 = CDialog(_local3); if (_local2 != null) { if (!_local2.BackEnabled) { _local1.removeMovieClip(); _backStack[_backStack.length - 1] = null; } else if (!_local2.BackVisible) { _local1._alpha = 0; } else { _local1._alpha = _local2.BackAlpha; } if (_local4) { _local2.OnFirstFocus(); } } updateDialogs(); return(_local3); } static function UpdateMouseMode() { if (((((((CDialog(Top()) != null) && (CDialog(Top()).Name == "CBoardDlg")) && (CGame.Root._xmouse <= Constants.GameResX)) && (CGame.Root._xmouse >= 0)) && (CGame.Root._ymouse <= Constants.GameResY)) && (CGame.Root._ymouse >= 0)) && (!m_ForceShow)) { Mouse.hide(); } else { Mouse.show(); } } static function OnMouseDown() { Top().OnMouseDown(); } static function doTransitionIn(i_mc) { if ((CDialog(i_mc) != null) && (m_InTransition == null)) { if (!(CDialog(i_mc).Transition === CDialog.Transition_Alpha)) { } else { trace("TRANSITION IN"); i_mc.cacheAsBitmap = true; m_InTransition = new Core.CTween(i_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, CDialog.s_TransFadeInTime); m_InTransition.m_CompleteEvent.PushBehaviorRunOnce(OnTransitionInComplete); return(true); } } return(false); } static function updateDialogs() { var _local3 = false; var _local2 = _dialogStack.length - 1; while (_local2 >= 0) { var _local4 = MovieClip(_backStack[_local2]); var _local5 = MovieClip(_dialogStack[_local2]); var _local1 = CDialog(_local5); _local4._visible = !_local3; _local5._visible = !_local3; if (_local1 != null) { _local1.SetEnabled(!_local3); _local4._visible = _local4._visible && (_local1.BackEnabled); } if (!_local3) { if (((_local1 == null) || (!_local1.BackEnabled)) || (_local1.BackVisible && (_local1.BackAlpha == 100))) { _local3 = false; } } _local2--; } UpdateMouseMode(); var _local6 = CDialog(Top()); if (_local6 != null) { _local6.OnFocus(); } if (_local6.Name == "CBoardDlg") { CGame.Root._quality = "MEDIUM"; } else { CGame.Root._quality = "HIGH"; } } static function SwitchTo(i_dialogName, i_noRecycle) { var _local4 = null; CDebug.WriteLine("DialogUtil.SwitchTo()", (i_dialogName + ",") + _dialogStack.length); var _local2 = _dialogStack.length - 1; while ((_local4 == null) && (_local2 >= 0)) { var _local6 = MovieClip(_backStack[_local2]); var _local1 = MovieClip(_dialogStack[_local2]); var _local3 = CDialog(_local1); if ((!i_noRecycle) && (((_local3 != null) && (_local3.Name == i_dialogName)) || (_local1.Name == i_dialogName))) { CloseAllNotVisibleBeneathMc(_local1); if (!doTransitionIn(_local1)) { _local1._alpha = 100; } _local4 = _local1; } else { Pop(null, true, true); } _local2--; } if (_local4 == null) { Push(i_dialogName); } return(_local4); } static function OnSpaceDown() { if (_dialogStack.length > 0) { Top().OnSpaceDown(); } } static function OnEscDown() { if (_dialogStack.length > 0) { Top().OnEscDown(); } } static function OnEnterDown() { if (_dialogStack.length > 0) { Top().OnEnterDown(); } } static function OnControlDown() { if (_dialogStack.length > 0) { Top().OnControlDown(); } } static function OnBackSpaceDown() { if (_dialogStack.length > 0) { Top().OnBackSpaceDown(); } } static function StackSize() { return(_dialogStack.length); } static function CloseAllNotVisibleBeneathMc(i_dialog) { CDebug.WriteLine("DialogUtil.CloseAllNotVisibleBeneath()", String(i_dialog)); var _local5 = false; var _local4 = false; var _local1 = _dialogStack.length - 1; while (_local1 >= 0) { var _local2 = MovieClip(_dialogStack[_local1]); var _local6 = MovieClip(_backStack[_local1]); var _local3 = CDialog(_dialogStack[_local1]); if (_local5) { removeAt(_local1); } else if (_local4) { if (!_local3._visible) { _local5 = true; } } else if (_local2 == i_dialog) { _local4 = true; } _local1--; } CDebug.Assert(_local4, "DialogUtil.CloseAllNotVisibleBeneath()", "Couldn't find dialog in stack"); } static function Top() { return(MovieClip(_dialogStack[_dialogStack.length - 1])); } static function Pop(i_validateName, i_immediate, i_fromSwitchTo) { CDebug.AssertWarn(_dialogStack.length > 0, "DialogUtil.Pop()", "Empty stack"); if (_dialogStack.length > 0) { if (CDialog(_dialogStack[_dialogStack.length - 1]) != null) { CDialog(_dialogStack[_dialogStack.length - 1]).Close(i_immediate); } else { removeAt(_dialogStack.length - 1); } } } static function Close(i_mc) { var _local1 = _dialogStack.length; while (_local1 >= 0) { if (_dialogStack[_local1] == i_mc) { removeAt(_local1); return(undefined); } _local1--; } } static function removeAt(i_index, i_validateName) { CDebug.Assert(_dialogStack.length > i_index, "DialogUtil.removeAt()", "Stack too small for remove"); var _local6 = MovieClip(_backStack[i_index]); var _local2 = MovieClip(_dialogStack[i_index]); if (i_validateName != undefined) { CDebug.Assert(_local2.Name == i_validateName, "Core.DialogUtil.removeAt", (((("Pop dialog " + Top.Name) + " does not match expected name ") + i_validateName) + " at index ") + i_index); } var _local4 = i_index == (_dialogStack.length - 1); if (_local4) { ClearForTransition(); } var _local5 = false; if (_local4) { if ((CDialog(_local2) != null) && (m_OutTransition == null)) { if (!(CDialog(_local2).Transition === CDialog.Transition_Alpha)) { } else { trace("TRANSITION OUT"); _local2.cacheAsBitmap = true; m_OutTransition = new Core.CTween(_local2, "_alpha", mx.transitions.easing.Regular.easeOut, _local2._alpha, 0, CDialog.s_TransFadeInTime); m_OutTransition.m_CompleteEvent.PushBehaviorRunOnce(OnTransitionOutComplete); _local5 = true; } } } if (!_local5) { } _local2._visible = false; Oberon.CEnterFrameEvent.AddEvent(_local2, mx.utils.Delegate.create(_local2, function () { this.removeMovieClip(); }), true); if ((CDialog(_local2) && (m_InTransition != null)) && (m_InTransition.m_Obj == _local2)) { m_InTransition.StopUpdates(); m_InTransition = null; } _local6.removeMovieClip(); _dialogStack.splice(i_index, 1); _backStack.splice(i_index, 1); updateDialogs(); } static function PopAll() { CDebug.WriteLine("DialogUtil.PopAll()", ""); while (_dialogStack.length > 0) { Pop(null, true, true); } } static function ClearForTransition() { if (Top() != null) { Top().HideAllTips(); } } static function OnKeyDown(i_key) { if (_dialogStack.length != 0) { Top().OnKeyDown(i_key); } } static var _dialogStack = []; static var _backStack = []; static var m_InTransition = null; static var m_OutTransition = null; static var m_ForceShow = false; }
Symbol 31 MovieClip [__Packages.mx.transitions.easing.Regular] Frame 0
class mx.transitions.easing.Regular { function Regular () { } static function easeIn(t, b, c, d) { t = t / d; return(((c * t) * t) + b); } static function easeOut(t, b, c, d) { t = t / d; return((((-c) * t) * (t - 2)) + b); } static function easeInOut(t, b, c, d) { t = t / (d / 2); if (t < 1) { return((((c / 2) * t) * t) + b); } t--; return((((-c) / 2) * ((t * (t - 2)) - 1)) + b); } static var version = "1.1.0.52"; }
Symbol 32 MovieClip [__Packages.Oberon.CEnterFrameEvent] Frame 0
class Oberon.CEnterFrameEvent extends Oberon.CEvent { var PushBehavior, _behaviors, _context; function CEnterFrameEvent (inContext, inOnEnterFrameFunc) { super(inContext); if (inOnEnterFrameFunc != undefined) { _onEnterFrameFunc = inOnEnterFrameFunc; PushBehavior(_onEnterFrameFunc, false); } } static function AddEvent(inMovieClip, inFunction, inRunOnce) { return(GetEvent(inMovieClip).PushBehavior(inFunction, inRunOnce)); } static function AddEventWithArg(inMovieClip, inFunction, inArg, inRunOnce) { return(GetEvent(inMovieClip).PushBehaviorWithArg(inFunction, inArg, inRunOnce)); } static function GetEvent(inMovieClip) { var _local3 = null; if (inMovieClip.EnterFrameEvent == null) { inMovieClip.EnterFrameEvent = new Oberon.CEnterFrameEvent(inMovieClip, inMovieClip.onEnterFrame); inMovieClip.onEnterFrame = function () { this.EnterFrameEvent.Fire(); }; } return(Oberon.CEnterFrameEvent(inMovieClip.EnterFrameEvent)); } static function HasEvent(inMovieClip) { return(inMovieClip.EnterFrameEvent != null); } function Fire() { super.Fire(); cleanupIfEmpty(); } function RemoveBehaviorByFunc(inFunc) { super.RemoveBehaviorByFunc(inFunc); cleanupIfEmpty(); } function RemoveBehaviorById(inId) { super.RemoveBehaviorById(inId); cleanupIfEmpty(); } function cleanupIfEmpty() { if ((_behaviors.length == 0) && (_onEnterFrameFunc == null)) { _context.onEnterFrame = null; _context.EnterFrameEvent = null; } else if ((_behaviors.length == 1) && (_onEnterFrameFunc != null)) { MovieClip(_context).onEnterFrame = _onEnterFrameFunc; _context.EnterFrameEvent = null; } } var _onEnterFrameFunc = null; }
Symbol 33 MovieClip [__Packages.Core.Button] Frame 0
class Core.Button extends Core.CUIComponent { var useHandCursor, stop, gotoAndStop, gotoAndPlay, _parent; function Button () { super(); useHandCursor = false; } function get Name() { return(m_name); } function set Name(inVal) { m_name = inVal; //return(Name); } function onLoad() { super.onLoad(); stop(); } function onRollOver() { if (_enabled) { gotoAndStop("over"); gotoAndPlay("NormalToHover"); } } function onRollOut() { if (_enabled) { gotoAndStop("default"); gotoAndPlay("HoverToNormal"); } } function onPress() { if (_enabled) { gotoAndStop("down"); gotoAndPlay("HoverToPushed"); } } function onDragOut() { if (_enabled) { gotoAndStop("over"); gotoAndPlay("PushedToHover"); } } function onDragOver() { if (_enabled) { gotoAndStop("down"); gotoAndPlay("HoverToPushed"); } } function onRelease() { if (_enabled) { gotoAndStop("over"); gotoAndPlay("PushedToHover"); ((onClick(this) || (Object(_parent).onClick(this))) || (Object(_parent)._parent.onClick(this))) || (Object(_parent)._parent._parent.onClick(this)); } } function onReleaseOutside() { if (_enabled) { gotoAndStop("default"); gotoAndPlay("HoverToNormal"); } } function get Enabled() { return(_enabled); } function set Enabled(inEnabled) { if (_enabled != inEnabled) { _enabled = inEnabled; if (_enabled) { gotoAndPlay(1); } else { gotoAndPlay("Disabled"); } } //return(Enabled); } function onClick(i_context) { } function onRegister(i_context) { } var _enabled = true; var m_name = ""; }
Symbol 34 MovieClip [__Packages.CLevelManifest] Frame 0
class CLevelManifest { var m_sets, m_LoadingXml, m_Loaded; function CLevelManifest () { if (G != null) { CDebug.Assert(false, "CLevelManifest", "Loading a second level manifest"); } G = this; CGame.LevelManifest = this; m_sets = []; m_LoadingXml = false; m_Loaded = false; } function LoadLevelManifests(inManifestFile) { CDebug.WriteLine("LoadLevelManifests", "Loading " + inManifestFile); m_LoadingXml = true; var _local2 = new XML(); _local2.ignoreWhite = true; _local2.onLoad = function () { CLevelManifest.G.parseLevelManifestXML(this); }; _local2.load(inManifestFile); } function GetSet(i_setName) { CDebug.Assert(m_Loaded, this, "manifest not loaded yet"); return(m_sets[i_setName]); } function SetExists(i_setName) { CDebug.Assert(m_Loaded, this, "manifest not loaded yet"); return(m_sets[i_setName] != undefined); } function parseLevelManifestXML_NC(inManifestXML) { G.parseLevelManifestXML(inManifestXML); } function parseLevelManifestXML(inManifestXML) { CDebug.WriteLine("Level", "Parsing XML Manifest"); if (inManifestXML.status != Oberon.XmlX.__get__XmlStatus_Success()) { CDebug.Assert(false, Level, "XML load/parse failed: " + Oberon.XmlX.getXmlStatusDesc(inManifestXML.status), true); return(undefined); } var _local5 = inManifestXML; var _local4 = _local5.firstChild; CDebug.Assert(_local5.hasChildNodes(), Level, "XML Doc is empty (or doesn't exist).", true); CDebug.Assert(_local4.nodeName == "LevelManifest", Level, ("First node name is invalid ('" + _local4.nodeName) + "'). Expected 'LevelManifest'."); var _local2 = _local4.firstChild; while (_local2 != null) { if (_local2.nodeName == "LevelSet") { var _local3 = new CLevelManifestSet(_local2); addSet(_local3); } else { CDebug.Assert(false, this, "Unexpected non-set node : " + _local2.nodeName); } _local2 = _local2.nextSibling; } m_LoadingXml = false; m_Loaded = true; CDebug.WriteLine("Level", "Completed level manifest parse"); } function addSet(i_set) { CDebug.Assert(m_sets[i_set.Name] == undefined, this, "Set defined more than once in manifest : " + i_set.Name); m_sets[i_set.Name] = i_set; } static var G = null; }
Symbol 35 MovieClip [__Packages.CLevelManifestSet] Frame 0
class CLevelManifestSet { var Name, Levels, DisplayName; function CLevelManifestSet (i_srcNode) { Name = "<undefined>"; Levels = []; if (i_srcNode != undefined) { parseXml(i_srcNode); } } function get Count() { return(Levels.length); } function parseXml(i_srcNode) { Name = i_srcNode.attributes.Name; DisplayName = i_srcNode.attributes.DisplayName; var _local2 = i_srcNode.firstChild; while (_local2 != null) { if (_local2.nodeName == "LevelFile") { var _local3 = new CLevelManifestFile(_local2.attributes.Name, Constants.StringToBoardMode(String(_local2.attributes.Mode)), String(_local2.firstChild.nodeValue), (Name == "Journey") && (Levels.length != 0)); addLevel(_local3); } else { CDebug.Assert(false, this, "Unexpected non-set node : " + _local2.nodeName); } _local2 = _local2.nextSibling; } } function GetLevel(i_levelId) { CDebug.Assert((i_levelId >= 0) && (i_levelId < Levels.length), this, "GetLevel() : Invalid level given: " + i_levelId, true); return(Levels[i_levelId]); } function GetLevelFullName(i_levelId) { var _local2 = GetLevel(i_levelId).Name.split("\\n"); return(_local2[0]); } function GetDisplayName(i_levelId) { return(GetLevel(i_levelId).Name.split("\\n").join(newline)); } function addLevel(i_level) { Levels.push(i_level); } function Clone(i_name) { var _local3 = new CLevelManifestSet(); if (i_name != undefined) { _local3.Name = i_name; } else { _local3.Name = Name; } var _local2 = 0; while (_local2 < Levels.length) { _local3.Levels.push(Levels[_local2]); _local2++; } return(_local3); } function Append(i_set) { var _local2 = 0; while (_local2 < i_set.Levels.length) { Levels.push(i_set.Levels[_local2]); _local2++; } } function Randomize(i_firstValue) { Core.Utility.ShuffleArray(Levels); } }
Symbol 36 MovieClip [__Packages.CLevelManifestFile] Frame 0
class CLevelManifestFile { var Name, Mode, FileName, Locked; function CLevelManifestFile (i_name, i_mode, i_fileName, i_locked) { Name = i_name; Mode = i_mode; FileName = i_fileName; Locked = i_locked; } function ToString() { return((((((((((("Name: " + Name) + newline) + "Mode: ") + Mode) + newline) + "FileName: ") + FileName) + newline) + "Locked: ") + Locked) + newline); } }
Symbol 37 MovieClip [__Packages.Core.Utility] Frame 0
class Core.Utility { static var seed; function Utility () { } static function ShuffleArray(ar) { var _local1; var _local3; var _local4; _local1 = ar.length - 1; while (_local1 > 0) { _local3 = Math.floor(Math.random() * (_local1 + 1)); if (_local1 == _local3) { } else { _local4 = ar[_local1]; ar[_local1] = ar[_local3]; ar[_local3] = _local4; } _local1--; } } static function rnd() { seed = ((seed * 9301) + 49297) % 233280; return(seed / 233280); } static function newSeed() { seed = Math.random() * 233280; return(seed); } static function setSeed(inSeed) { seed = inSeed; } static function rand(number) { return(Math.ceil(rnd() * number)); } static function MultiDimensionalArray(inRows, inCols) { var _local2 = new Array(inRows); var _local1 = 0; while (_local1 < inRows) { _local2[_local1] = new Array(inCols); _local1++; } return(_local2); } }
Symbol 38 MovieClip [__Packages.GameState] Frame 0
class GameState { function GameState () { } static function IsFrozen() { return(m_gameFrozen); } static function GetBaseLevel() { var _local1 = CurrentLevel; if (_local1 >= Constants.ArcadeSetCount) { _local1 = _local1 - Constants.ArcadeSetCount; } _local1 = _local1 + (CurrentRepeatCount + 1); return(_local1); } static function get CutScenesEnabled() { return(false); } static function set LastCutSceneLevel(inCutSceneLevel) { m_LastCutSceneLevel = inCutSceneLevel; //return(LastCutSceneLevel); } static function get LastCutSceneLevel() { return(m_LastCutSceneLevel); } static function set CurrentLevel(inLevel) { CDebug.WriteLine("GameState", "Setting the current level to: " + inLevel); m_CurrentLevelArcade = inLevel; //return(CurrentLevel); } static function get CurrentLevel() { return(m_CurrentLevelArcade); } static function get CurrentGameMode() { return(m_CurrentGameMode); } static function set CurrentGameMode(i_val) { m_CurrentGameMode = i_val; //return(CurrentGameMode); } static function GetCurrentArcadeSetLevel() { var _local1 = CurrentLevel; if (IsCurrentArcadeModeBall()) { _local1 = _local1 - (Constants.ArcadeSetCount * Constants.ArcadeDiffCount); } _local1 = _local1 - (int(_local1 / Constants.ArcadeSetCount) * Constants.ArcadeSetCount); return(_local1); } static function IsCurrentArcadeModeBall() { return(IsArcadeModeBall(CurrentLevel)); } static function IsArcadeModeBall(i_level) { return(i_level >= (Constants.ArcadeSetCount * Constants.ArcadeDiffCount)); } static function GetCurrentArcadeSetDifficulty() { return(GetArcadeSetDifficulty(CurrentLevel)); } static function GetArcadeSetDifficulty(i_level) { var _local1 = i_level; if (IsCurrentArcadeModeBall()) { _local1 = _local1 - (Constants.ArcadeSetCount * Constants.ArcadeDiffCount); } return(int(_local1 / Constants.ArcadeSetCount)); } static function GetArcadeLevel(i_diff, i_setLevel, i_modeBall) { return(((i_diff * Constants.ArcadeSetCount) + i_setLevel) + (i_modeBall ? (Constants.ArcadeDiffCount * Constants.ArcadeSetCount) : 0)); } static function GetCurrentLevelSet() { return(GetLevelSet()); } static function GetLevelSet() { return("Arcade"); } static function Unfreeze(i_killOld) { if (i_killOld) { Core.CTween.KillFrozenTweens(); } if (m_gameFrozen) { CDebug.WriteLine("GameState.Unfreeze", "Unfreeze"); m_gameFrozen = false; if (CDialog(Core.DialogUtil.Top()) != null) { CDialog(Core.DialogUtil.Top()).OnUnfreeze(); } Core.CTween.Unfreeze(); } } static function Freeze(i_killOld) { if (!m_gameFrozen) { CDebug.WriteLine("GameState.Freeze", "Freeze"); m_gameFrozen = true; if (CDialog(Core.DialogUtil.Top()) != null) { CDialog(Core.DialogUtil.Top()).OnFreeze(); } if (i_killOld) { Core.CTween.KillFrozenTweens(); } Core.CTween.Freeze(); } } static function GotoGameBoard() { if (GenerateNewSeed) { CurrentSeed = Core.Utility.newSeed(); } else { Core.Utility.setSeed(CurrentSeed); GenerateNewSeed = true; } Core.CTween.KillFrozenTweens(); Core.CTween.KillRegTweens(); var _local2 = Level.GetBoardModeForLevel(CurrentLevel); var _local1 = false; switch (_local2) { case Constants.BoardMode_SuperEasy : case Constants.BoardMode_Easy : case Constants.BoardMode_Medium : case Constants.BoardMode_Hard : case Constants.BoardMode_Impossible : _local1 = false; Core.DialogUtil.SwitchTo(Constants.Dialog_BoardVertical, true); break; case Constants.BoardMode_BallSuperEasy : case Constants.BoardMode_BallEasy : case Constants.BoardMode_BallMedium : case Constants.BoardMode_BallHard : case Constants.BoardMode_BallImpossible : _local1 = true; Core.DialogUtil.SwitchTo(Constants.Dialog_BoardCircular, true); break; default : CDebug.Assert(false, GameState, "UNKNOWN LEVEL TYPE for level: " + CurrentLevel, true); } Core.DialogUtil.Push(Constants.Dialog_BoardLoading); Unfreeze(); } static function GotoMetaMap() { m_LastCutSceneLevel = -1; m_metamapScenePlaying = true; Core.DialogUtil.Push("MetaMap"); } static function GotoCredits() { Core.DialogUtil.PopAll(); Core.DialogUtil.Push(Constants.Dialog_MainMenu); Core.DialogUtil.Push(Constants.Dialog_About); } static function get Event_Play() { return(0); } static function get Event_Win() { return(1); } static function get Event_WinDone() { return(2); } static function get Event_Lose() { return(3); } static function get Event_LoseDone() { return(4); } static function get Event_MetaMapSceneDone() { return(6); } static function get Event_EndGame() { return(7); } static function EventToString(inVal) { switch (inVal) { case Event_Play : return("Event_Play"); case Event_Win : return("Event_Win"); case Event_WinDone : return("Event_WinDone"); case Event_Lose : return("Event_Lose"); case Event_LoseDone : return("Event_LoseDone"); case Event_MetaMapSceneDone : return("Event_MetaMapSceneDone"); } return(("<UNKNOWN>\"" + inVal) + "\""); } static function handleEvent(inEvent, inParam) { if (CGame.DbgTraceGameState) { CDebug.WriteLine("GameState.handleEvent()", EventToString(inEvent) + " )"); } switch (inEvent) { case Event_Play : m_StartArcadeLevel = CurrentLevel; CurrentRepeatCount = 0; CGame.CurrentPlayer.m_Score = 0; GotoGameBoard(); break; case Event_Win : Core.DialogUtil.Push(Constants.Dialog_ArcadeWin); break; case Event_WinDone : Core.DialogUtil.Pop(); GotoGameBoard(); break; case Event_Lose : var _local2 = UI.CLoseDlg(Core.DialogUtil.Push(Constants.Dialog_Lose)); break; case Event_LoseDone : Core.DialogUtil.Pop(); CGame.CurrentPlayer.ResetBoardVariables(); if (inParam == Constants.__get__WinLoseResult_MainMenu()) { CPachinko.GameMenu(true); } break; case Event_MetaMapSceneDone : GotoGameBoard(); break; case Event_EndGame : CGame.CurrentPlayer.m_Score = 0; } } static function Play(i_bNoResetToStart) { if (!i_bNoResetToStart) { m_CurrentArcadeSetIteration = 0; if (CurrentLevel < (Constants.ArcadeSetCount * Constants.ArcadeDiffCount)) { CurrentLevel = (0); CurrentGameMode = (Constants.BoardMode_SuperEasy); } else { CurrentLevel = (Constants.ArcadeSetCount * Constants.ArcadeDiffCount); CurrentGameMode = (Constants.BoardMode_BallSuperEasy); } } handleEvent(Event_Play); } static function Win() { CGame.Board.SetEnabled(false); handleEvent(Event_Win); } static function WinDone(inWinResult) { handleEvent(Event_WinDone, inWinResult); } static function Lose() { CGame.Board.SetEnabled(false); handleEvent(Event_Lose); } static function LoseDone(inLoseResult) { handleEvent(Event_LoseDone, inLoseResult); } static function MetaMapSceneDone() { if (m_metamapScenePlaying) { FHost.CApp.StopAllAudio(); } m_metamapScenePlaying = false; handleEvent(Event_MetaMapSceneDone); } static function EndGame() { handleEvent(Event_EndGame); } static function Quit() { } static function ExitBoard(i_noRestart) { CGame.Sounds.StopAllChannel(Constants.__get__SoundChannel_Effects()); CGame.Sounds.StopAllChannel(Constants.__get__SoundChannel_Voice()); CPachinko.ScoreSubmit(); CPachinko.GameEnd(i_noRestart); Core.DialogUtil.SwitchTo(Constants.Dialog_MainMenu); } static function ExitBoardNoRestart() { ExitBoard(true); } static var s_PerfEffectCost = 3; static var s_PerfHypnoCost = 1; static var s_PerfFrameAdvCost = 2; static var s_PerfTweenCost = 0.5; static var s_PerfMinSwitchDelta = 10000; static var s_PerfLowQualityMaxes = [null, 200]; static var s_PerfMedQualityMaxes = [100, 200]; static var s_PerfHighQualityMaxes = [150, 300]; static var s_ArcadeSetIterDangerDecr = 3; static var m_gameFrozen = false; static var m_lastPerfChangeCost = null; static var m_PerfCurQuality = null; static var m_MainMenu = false; static var CurrentRepeatCount = 0; static var m_CurrentGameMode = Constants.BoardMode_SuperEasy; static var m_metamapScenePlaying = false; static var m_cutscenePlaying = false; static var StartingLevel = 0; static var m_showingComputerScores = true; static var m_CurrentLevel = 0; static var m_CurrentLevelArcade = 0; static var m_CurrentLevelJourney = 0; static var m_LastCutSceneLevel = -1; static var m_CurrentArcadeSetIteration = 0; static var m_StartArcadeLevel = 0; static var BoardsPlayed = 0; static var CurrentSeed = -1; static var GenerateNewSeed = true; }
Symbol 39 MovieClip [__Packages.UI.CLoseDlg] Frame 0
class UI.CLoseDlg extends CDialog { var Name, m_score, GetComponent, _mainMenuText, m_loseText, LoseText, GameScoreText, HighScoreAnim; function CLoseDlg () { super(); Name = Constants.Dialog_Lose; m_score = CGame.CurrentPlayer.m_Score; } function OnAllComponentsLoaded() { super.OnAllComponentsLoaded(); if (CWebConfig.__get__BrandName() == "MSN") { GetComponent("MainMenu")._visible = false; _mainMenuText._visible = false; } } function onLoad() { super.onLoad(); CPachinko.ScoreSubmit(); m_loseText = MovieClip(LoseText); m_loseText.gotoAndStop(Oberon.MathX.randRange(1, m_loseText._totalframes)); TextField(GameScoreText).text = String(m_score); if (m_shouldPlayHighScoreAnim) { Core.FrameAdvancer(HighScoreAnim).play(); } } function onClick(i_context) { if (Core.Button(i_context) != null) { var _local2 = Core.Button(i_context); switch (_local2.__get__Name()) { case "TryAgain" : DoDefaultOkAction(); CPachinko.GameEnd(false); break; case "MainMenu" : Close(); CPachinko.MainMenu(true); break; case "MainMenu" : CGame.Sounds.StopAllChannel(Constants.__get__SoundChannel_Effects()); CGame.Sounds.StopAllChannel(Constants.__get__SoundChannel_Voice()); GameState.EndGame(); Close(); Core.DialogUtil.SwitchTo(Constants.Dialog_MainMenu); break; case "GetDeluxe" : Core.DialogUtil.Push(Constants.Dialog_Upsell); break; default : CDebug.Assert(false, "UI.COptionsDlg", "Unknown button! " + _local2.__get__Name()); } } return(true); } function DoDefaultCancelAction() { DoDefaultOkAction(); } function DoDefaultOkAction() { DoTryAgain(); } function DoTryAgain() { Close(); GameState.LoseDone(Constants.__get__WinLoseResult_PlayAgain()); } function Close() { super.Close(); var _local3 = CGame.EffectMgr.GetAllEffectsOfType(CEffect.Type_LoseAnim); var _local2 = 0; while (_local2 < _local3.length) { Effects.CEffect_LoseAnim(_local3[_local2]).Finish(); _local2++; } } function PlayHighScoreAnim() { m_shouldPlayHighScoreAnim = true; } var m_shouldPlayHighScoreAnim = false; }
Symbol 40 MovieClip [__Packages.Core.FrameAdvancer] Frame 0
class Core.FrameAdvancer extends MovieClip { var _totalframes, m_tween; function FrameAdvancer () { super.stop(); } function onLoad() { s_count++; if (EndFrame == null) { EndFrame = _totalframes; } m_tween = new Core.CTween(this, "_currentframe", null, BaseFrame, EndFrame, ((Fps / s_Fps) * (EndFrame - BaseFrame)) / s_Fps, true, 0, ((Interval != null) ? (Interval) : (((DefaultInterval != null) ? (DefaultInterval) : null)))); m_tween.m_Looping = Loop; if (!PlayOnInit) { stop(); } } function onUnload() { s_count--; m_tween.StopUpdates(); } static function GetCount() { return(s_count); } function stop() { m_tween.StopUpdates(); } function play() { m_tween.Resume(); } function gotoAndPlay(inWhere) { m_tween.Resume(); } var s_Fps = 60; var Fps = 60; var MinFps = 20; var Loop = true; var NoSkip = []; static var IntervalFPS = 60; static var DefaultInterval = null; var BaseFrame = 1; var EndFrame = null; var PlayOnInit = true; var Interval = null; static var s_count = 0; }
Symbol 41 MovieClip [__Packages.CEffect] Frame 0
class CEffect { var m_CompleteEvent, m_bReadyForDelete, m_bBlocking, m_NeedsUpdate; function CEffect (i_type) { m_Type = i_type; m_Category = getCategory(); m_CompleteEvent = new Oberon.CEvent(this); m_CompleteEvent.PushBehavior(mx.utils.Delegate.create(this, function () { this.m_bDone = true; })); m_bReadyForDelete = false; m_bBlocking = false; m_NeedsUpdate = true; } function getCategory() { switch (m_Type) { case Type_SleepAnim : return(Cat_Borb | Cat_OnIdle); case Type_IdleLookAnim : return((Cat_Borb | Cat_OnIdle) | Cat_Eye); case Type_IdleEmoteAnim : return(((Cat_Borb | Cat_OnIdle) | Cat_Emote) | Cat_Eye); case Type_IdleBlinkAnim : return((Cat_Borb | Cat_OnIdle) | Cat_Emote); case Type_IdleSpecialAnim : return((Cat_Borb | Cat_OnIdle) | Cat_Emote); case Type_BankAnim : return(Cat_Borb); case Type_ShroudDissolve : return(Cat_Borb); case Type_BubbleBubble : return(Cat_Borb | Cat_TilesetPos); case Type_Mine : return(Cat_Borb | Cat_TilesetPos); case Type_CannonScareAnim : return(Cat_OnIdle); case Type_ScareAnim : return(Cat_OnIdle | Cat_TilesetPos); case Type_DropAnim : return(Cat_None); case Type_WinAnim : return(Cat_GameTransition); case Type_LoseAnim : return(Cat_GameTransition); case Type_JellyAnim : return(Cat_Borb | Cat_TilesetPos); case Type_BorbDropAnim : return(Cat_Borb | Cat_QueueAdvWait); case Type_FlyTo : return(Cat_TilesetPos | Cat_QueueAdvWait); case Type_BorbFadeOut : return(Cat_Borb); case Type_EmoteAnim : return((Cat_Borb | Cat_Emote) | Cat_Eye); case Type_StartAnim : return(Cat_GameTransition); case Type_ShakeAnim : return(Cat_Borb | Cat_TilesetPos); case Type_DelayedSound : return(Cat_Sound); case Type_Vaporize : return(Cat_TilesetPos); case Type_HypnoBorb : return(Cat_Borb | Cat_TilesetPos); case Type_Firework : return(Cat_None); } CDebug.WriteErr("CEffect.getCategory()", "Unknown type " + m_Type); return(null); } function getType() { switch (m_Type) { case Type_SleepAnim : return("Type_SleepAnim"); case Type_IdleLookAnim : return("Type_IdleLookAnim"); case Type_IdleEmoteAnim : return("Type_IdleEmoteAnim"); case Type_IdleBlinkAnim : return("Type_IdleBlinkAnim"); case Type_IdleSpecialAnim : return("Type_IdleSpecialAnim"); case Type_Mine : return("Type_Mine"); case Type_ShroudDissolve : return("Type_ShroudDissolve"); case Type_BubbleBubble : return("Type_BubbleBubble"); case Type_BankAnim : return("Type_BankAnim"); case Type_CannonScareAnim : return("Type_CannonScareAnim"); case Type_ScareAnim : return("Type_ScareAnim"); case Type_DropAnim : return("Type_DropAnim"); case Type_LoseAnim : return("Type_LoseAnim"); case Type_WinAnim : return("Type_WinAnim"); case Type_JellyAnim : return("Type_JellyAnim"); case Type_BorbDropAnim : return("Type_BorbDropAnim"); case Type_FlyTo : return("Type_FlyTo"); case Type_BorbFadeOut : return("Type_BorbFadeOut"); case Type_EmoteAnim : return("Type_EmoteAnim"); case Type_Unknown : return("Type_Unknown"); case Type_StartAnim : return("Type_StartAnim"); case Type_ShakeAnim : return("Type_ShakeAnim"); case Type_DelayedSound : return("Type_DelayedSound"); case Type_Vaporize : return("Type_Vaporize"); case Type_HypnoBorb : return("Type_HypnoBorb"); case Type_Firework : return("Type_Firework"); } CDebug.WriteErr("CEffect.getType()", "Unknown type " + m_Type); return("<UNKNOWN>" + m_Type); } static function CreateEffect(i_type) { switch (i_type) { case Type_SleepAnim : return(new Effects.CEffect_SleepAnim()); case Type_IdleLookAnim : return(new Effects.CEffect_IdleLookAnim()); case Type_IdleEmoteAnim : return(new Effects.CEffect_IdleEmoteAnim()); case Type_IdleBlinkAnim : return(new Effects.CEffect_IdleBlinkAnim()); case Type_IdleSpecialAnim : return(new Effects.CEffect_IdleSpecialAnim()); case Type_BankAnim : return(new Effects.CEffect_BankAnim()); case Type_ShroudDissolve : return(new Effects.CEffect_ShroudDissolve()); case Type_BubbleBubble : return(new Effects.CEffect_BubbleBubble()); case Type_Mine : return(new Effects.CEffect_Mine()); case Type_CannonScareAnim : return(new Effects.CEffect_CannonScareAnim()); case Type_ScareAnim : return(new Effects.CEffect_ScareAnim()); case Type_DropAnim : return(new Effects.CEffect_DropAnim()); case Type_WinAnim : return(new Effects.CEffect_WinAnim()); case Type_LoseAnim : return(new Effects.CEffect_LoseAnim()); case Type_JellyAnim : return(new Effects.CEffect_JellyAnim()); case Type_BorbDropAnim : return(new Effects.CEffect_BorbDropAnim()); case Type_FlyTo : return(new Effects.CEffect_FlyTo()); case Type_BorbFadeOut : return(new Effects.CEffect_BorbFadeOut()); case Type_EmoteAnim : return(new Effects.CEffect_EmoteAnim()); case Type_StartAnim : return(new Effects.CEffect_StartAnim()); case Type_ShakeAnim : return(new Effects.CEffect_ShakeAnim()); case Type_DelayedSound : return(new Effects.CEffect_DelayedSound()); case Type_Vaporize : return(new Effects.CEffect_Vaporize()); case Type_HypnoBorb : return(new Effects.CEffect_HypnoBorb()); case Type_Firework : return(new Effects.CEffect_Firework()); } CDebug.WriteErr("CEffect.getType()", "Unknown type " + i_type); return(null); } function OnComplete() { m_CompleteEvent.Fire(); m_bReadyForDelete = true; m_bBlocking = false; } function OnIdleEffectInit() { return(true); } function Finish() { if (!m_bReadyForDelete) { OnUpdate(true); } } function SetCategory(i_cat) { m_Category = i_cat; } function OnUpdate(i_forceFinish, i_deltaT) { if (i_forceFinish) { OnComplete(); return(UpdateCode_FreeEffect); } return((m_bReadyForDelete ? (UpdateCode_FreeEffect) : (UpdateCode_DoNothing))); } static var UpdateCode_DoNothing = 0; static var UpdateCode_FreeEffect = 1; static var Type_SleepAnim = 0; static var Type_IdleLookAnim = 1; static var Type_IdleEmoteAnim = 2; static var Type_IdleBlinkAnim = 3; static var Type_IdleSpecialAnim = 4; static var Type_IdleCount = 5; static var Type_Unknown = 100; static var Type_Mine = 101; static var Type_ShroudDissolve = 102; static var Type_BubbleBubble = 103; static var Type_BankAnim = 104; static var Type_CannonScareAnim = 105; static var Type_ScareAnim = 106; static var Type_DropAnim = 107; static var Type_LoseAnim = 109; static var Type_WinAnim = 110; static var Type_JellyAnim = 111; static var Type_BorbDropAnim = 112; static var Type_FlyTo = 113; static var Type_BorbFadeOut = 114; static var Type_EmoteAnim = 115; static var Type_StartAnim = 116; static var Type_ShakeAnim = 117; static var Type_DelayedSound = 118; static var Type_Vaporize = 119; static var Type_HypnoBorb = 121; static var Type_Firework = 122; static var Cat_None = 0; static var Cat_OnIdle = 1; static var Cat_Borb = 2; static var Cat_MatchAnim = 4; static var Cat_RotationAnim = 8; static var Cat_QueueAnim = 16; static var Cat_GameTransition = 32; static var Cat_TilesetPos = 128; static var Cat_QueueAdvWait = 256; static var Cat_Emote = 512; static var Cat_Eye = 1024; static var Cat_CannonDisabled = 2048; static var Cat_Sound = 4096; var m_Category = 0; var m_Type = 0; }
Symbol 42 MovieClip [__Packages.Effects.CEffect_SleepAnim] Frame 0
class Effects.CEffect_SleepAnim extends CEffect { var m_borb, m_NeedsUpdate, m_animMc, m_Type; function CEffect_SleepAnim (i_borb, i_depth) { super(CEffect.Type_SleepAnim); m_borb = null; m_NeedsUpdate = false; } function OnIdleEffectInit() { var _local12 = true; var _local9 = CGame.TileSet.GetActiveBorbsCount(); if (_local9 == 0) { _local12 = false; } else { var _local11 = CGame.TileSet.GetActiveBorbsFixedArray(); var _local10 = Oberon.MathX.randRange(0, _local9 - 1); var _local6 = _local10; var _local8 = false; while (!_local8) { _local6++; if (_local6 == _local9) { _local6 = 0; } if (_local6 == _local10) { _local8 = true; } var _local5 = SnoodHead(_local11[_local6]); if (_local5.__get__PowerUp() == Constants.PowerUp_Lock) { var _local4 = CGame.EffectMgr.m_ActiveEffects; var _local7 = CGame.EffectMgr.m_ActiveEffectCount; var _local3 = false; var _local2 = 0; while ((!_local3) && (_local2 < _local7)) { if ((Effects.CEffect_SleepAnim(_local4[_local2]) != null) && (Effects.CEffect_SleepAnim(_local4[_local2]).m_borb == _local5)) { _local3 = true; } _local2++; } if (!_local3) { m_borb = _local5; _local8 = true; } } } if (m_borb == null) { _local12 = false; } else { var _local13 = m_borb.getNextHighestDepth(); m_animMc = m_borb.attachMovie("ZzzSleepAnim", "ZzzSleepAnim" + _local13, _local13); CDebug.Assert(m_animMc != null, "CEffect_SleepAnim.onLoad()", "AnimMc is null"); m_animMc.stop(); m_frameTween = new Core.CTween(m_animMc, "_currentframe", null, 1, m_animMc._totalframes, s_Duration, true); if (CGame.DbgShowBorbIdleAnim) { SnoodHead.DbgClearTextOnAllSnoods(); m_borb.DbgSetText("ANIM" + m_Type); } m_frameTween.onMotionFinished = mx.utils.Delegate.create(this, OnComplete); } } return(_local12); } function OnComplete() { super.OnComplete(); m_animMc.removeMovieClip(); } static var s_Duration = 2; var m_frameTween = null; }
Symbol 43 MovieClip [__Packages.CPhysicsObject] Frame 0
class CPhysicsObject extends MovieClip { var m_Velocity, m_TotalDist, m_IgnoreDist; function CPhysicsObject () { super(); m_Velocity = new Core.Vector2(0, 0); m_TotalDist = 0; m_IgnoreDist = 0; } var m_CollisionCoords = null; var m_CollisionDists = null; static var ShotState_Connect = 0; static var ShotState_Fireball = 1; static var ShotState_Grab = 2; static var ShotState_Pull = 3; static var ShotState_Insert = 4; }
Symbol 44 MovieClip [__Packages.Core.Vector2] Frame 0
class Core.Vector2 { var X, Y; function Vector2 (inX, inY) { if (inX == undefined) { inX = 0; } if (inY == undefined) { inY = 0; } X = inX; Y = inY; } function Clone() { return(new Core.Vector2(X, Y)); } function ToString(i_showMag) { return(((Oberon.MathX.roundTo(X, 0.1) + ",") + Oberon.MathX.roundTo(Y, 0.1)) + (i_showMag ? ("@" + Oberon.MathX.roundTo(Magnitude(), 0.1)) : "")); } function Normalize() { NormalizeTo(1); } function NormalizeProjX(i_val) { X = i_val * ((X < 0) ? -1 : 1); Y = Y * (i_val / ((X < 0) ? (-X) : (X))); } function NormalizeProjY(i_val) { X = X * (i_val / ((Y < 0) ? (-Y) : (Y))); Y = i_val * ((Y < 0) ? -1 : 1); } function ConvertFromAngle(inAngle) { X = s_sin((3.14 * inAngle) / 180); Y = s_cos((3.14 * inAngle) / 180); } static function CreateFromAngle(inAngle, inMag) { var _local1 = new Core.Vector2(s_sin((3.14 * inAngle) / 180), s_cos((3.14 * inAngle) / 180)); if (inMag != null) { _local1.NormalizeTo(inMag); } return(_local1); } function ConvertFromFlashRotation(inAngle) { ConvertFromAngle(180 - ((inAngle + 360) % 360)); } function GetAngle() { return(Math.floor((180 * s_atan(Y / X)) / 3.14) + ((X < 0) ? 180 : 0)); } function RotateClockwisePerpendicular() { var _local2 = X; X = -1 * Y; Y = _local2; } function RotateCounterClockwisePerpendicular() { var _local2 = Y; Y = -1 * X; X = _local2; } function RotateAroundOrigin(inTheta) { var _local6 = Magnitude(); var _local3 = X; var _local2 = Y; var _local4 = s_sin(inTheta); var _local5 = s_cos(inTheta); X = (_local5 * _local3) - (_local4 * _local2); Y = (_local4 * _local3) + (_local5 * _local2); NormalizeTo(_local6); } function NormalizeTo(inMagnitude) { if ((X == 0) && (Y == 0)) { trace(" !!! Core.Vector2.NormalizedTo() : Trying to normalize zero magnitude vector"); return(undefined); } var _local2 = inMagnitude / s_sqrt((X * X) + (Y * Y)); X = X * _local2; Y = Y * _local2; } function Clamp(inMagnitude) { if (Magnitude() > inMagnitude) { NormalizeTo(inMagnitude); } } function Set(inX, inY) { X = inX; Y = inY; } function Copy(inVector) { X = inVector.X; Y = inVector.Y; } function ProjectionAmount(inVector) { var _local3 = 0; var _local2 = 0; if ((X != 0) || (Y != 0)) { var _local4 = s_sqrt((X * X) + (Y * Y)); _local3 = X / _local4; _local2 = Y / _local4; } else { trace(" !!! Core.Vector2.ProjectionAmount() : Trying to get projection dot of zero magnitude vector"); } return((_local3 * inVector.X) + (_local2 * inVector.Y)); } function NormalizedDot(inVector) { var _local6 = 0; var _local5 = 0; var _local4 = 0; var _local3 = 0; if ((X != 0) || (Y != 0)) { var _local7 = s_sqrt((X * X) + (Y * Y)); _local6 = X / _local7; _local5 = Y / _local7; } else { trace("!!! Core.Vector2.NormalizedDot() : Trying to get normalized dot of zero magnitude vector"); } if ((inVector.X != 0) || (inVector.Y != 0)) { var _local7 = s_sqrt((inVector.X * inVector.X) + (inVector.Y * inVector.Y)); _local4 = inVector.X / _local7; _local3 = inVector.Y / _local7; } else { trace(" !!! Core.Vector2.NormalizedDot() : Trying to get normalized dot of zero magnitude vector (rhs)"); } return((_local6 * _local4) + (_local5 * _local3)); } function Dot(inVector) { return((X * inVector.X) + (Y * inVector.Y)); } function Cross(inVector) { return((X * inVector.Y) - (inVector.X * Y)); } function Magnitude() { return(s_sqrt((X * X) + (Y * Y))); } function Multiply(inMult) { var _local2 = new Core.Vector2(); _local2.X = X * inMult; _local2.Y = Y * inMult; return(_local2); } function Scale(inScalar) { X = X * inScalar; Y = Y * inScalar; } function Add(inVector) { X = X + inVector.X; Y = Y + inVector.Y; } function Subtract(inVector) { X = X - inVector.X; Y = Y - inVector.Y; } function InverseScale(inInverseScalar) { if (inInverseScalar != 0) { X = X / inInverseScalar; Y = Y / inInverseScalar; } else { trace("!!! Core.Vector2.InverseScale() : Trying to apply inverse scale of zero"); } } function InvertY() { Y = Y * -1; } function MirrorY() { Y = 1 - Y; } function Reflect(inN) { var _local2 = new Core.Vector2(inN.X, inN.Y); var _local4 = Dot(inN); _local2.Scale(-2 * _local4); var _local3 = new Core.Vector2(X, Y); _local3.Subtract(_local2); } function GetDifference(inVector) { var _local2 = new Core.Vector2(); _local2.X = X - inVector.X; _local2.Y = Y - inVector.Y; return(_local2); } function IsInRange(inVector, inDist) { return((inDist * inDist) > ComputeDistanceSquare(inVector)); } function ComputeDistanceSquare(inVector) { var _local2 = 0; _local2 = _local2 + ((X - inVector.X) * (X - inVector.X)); _local2 = _local2 + ((Y - inVector.Y) * (Y - inVector.Y)); return(_local2); } static var s_sin = Math.sin; static var s_cos = Math.cos; static var s_atan = Math.atan; static var s_sqrt = Math.sqrt; }
Symbol 45 MovieClip [__Packages.SnoodHead] Frame 0
class SnoodHead extends CPhysicsObject { var m_emoteAnim, m_activeTweens, m_bankEffects, AnimCompleteEvent, EmoteCompleteEvent, m_watchMouse, m_Effects, m_animRunning, enabled, m_LastVelocity, m_BorbUnderItem, BorbUnderItem, m_debugOutline, m_headMc, Head, m_itemMc, m_lastBlurAngle, m_lastBlurMag, m_ActiveHeadPos, _alpha, m_orb, _xscale, _yscale, m_emoteMc, m_eyes, _currentframe, DEBUGTXT, _width, _height, _x, _y, m_blurImgMc, m_blurMc, m_blurBmp, getNextHighestDepth, createEmptyMovieClip, LookCompleteCallback; function SnoodHead () { super(); m_state = State_Idle; m_emoteAnim = null; m_activeTweens = []; m_bankEffects = []; AnimCompleteEvent = new Oberon.CEvent(this); EmoteCompleteEvent = new Oberon.CEvent(this); AnimCompleteEvent.PushBehavior(mx.utils.Delegate.create(this, OnAnimComplete)); m_watchMouse = false; m_Effects = new Array(); m_animRunning = 0; } static function SizeToGridWidth(inSize) { switch (inSize) { case Size_Big : return(Width_Big); case Size_Med : return(Width_Med); case Size_Small : return(Width_Small); case Size_RndMed : return(Width_RndMed); case Size_RndSmall : return(Width_RndSmall); case Size_RndVerySmall : return(Width_RndVerySmall); } CDebug.WriteErr("SnoodHead.SizeToGridWidth()", "Unknown size:" + inSize); return(null); } static function SizeToGridHeight(inSize) { switch (inSize) { case Size_Big : return(Height_Big); case Size_Med : return(Height_Med); case Size_Small : return(Height_Small); case Size_RndMed : return(Height_RndMed); case Size_RndSmall : return(Height_RndSmall); case Size_RndVerySmall : return(Height_RndVerySmall); } CDebug.WriteErr("SnoodHead.SizeToGridHeight()", "Unknown size:" + inSize); return(null); } static function BoardModeToSnoodSize(inMode) { switch (inMode) { case Constants.BoardMode_Easy : return(Size_Med); case Constants.BoardMode_Medium : return(Size_Small); case Constants.BoardMode_Hard : return(Size_Small); case Constants.BoardMode_Impossible : return(Size_Small); case Constants.BoardMode_BallEasy : return(Size_RndMed); case Constants.BoardMode_BallMedium : return(Size_RndMed); case Constants.BoardMode_BallHard : return(Size_RndSmall); case Constants.BoardMode_BallImpossible : return(Size_RndVerySmall); } CDebug.WriteErr("SnoodHead.BoardModeToSnoodSize()", "Unknown mode: " + inMode); return(null); } static function SizeToScale(inSize, i_fromMed) { if (i_fromMed) { switch (inSize) { case Size_Big : return(256); case Size_Med : return(85); case Size_Small : return(67); case Size_RndMed : return(67); case Size_RndSmall : return(57); case Size_RndVerySmall : return(53); } CDebug.WriteErr("SnoodHead.SizeToScale()", "Unknown size:" + inSize); return(null); } switch (inSize) { case Size_Big : return(200); case Size_Med : return(67); case Size_Small : return(52); case Size_RndMed : return(52); case Size_RndSmall : return(45); case Size_RndVerySmall : return(41); } CDebug.WriteErr("SnoodHead.SizeToScale()", "Unknown size:" + inSize); return(null); } static function BorbsInState() { return(m_borbsInState); } function onLoad() { enabled = false; m_LastVelocity = new Core.Vector2(); m_BorbUnderItem = BorbUnderItem; CDebug.Assert(m_BorbUnderItem != null, "SnoodHead.onLoad()", "couldn't find m_BorbUnderItem on borb " + this); m_debugOutline._visible = m_bShowDebugOutline; } function OnHeadLoaded() { if (!m_loaded) { m_headMc = MovieClip(Head); CDebug.Assert(m_headMc != null, "SnoodHead.onLoad()", "couldn't find m_headMc on borb " + this); m_headMc.stop(); m_loaded = true; m_headMc.onEnterFrame = null; SetSize(m_size, true); m_debugOutline._visible = m_bShowDebugOutline; m_itemMc = MovieClip(m_headMc._item); m_itemMc.stop(); m_itemMc.cacheAsBitmap = true; if (m_color == null) { SetColor(1, true); } else { SetColor(m_color, true); } if (m_powerUp == null) { SetPowerUp(1, true); } else { SetPowerUp(m_powerUp, true); } } } function Reset() { StopBankShotEffects(); FinishTweens(); RemoveBlur(); var _local2 = 0; while (_local2 < m_Effects.length) { CEffect(m_Effects[_local2]).Finish(); _local2++; } KillEmoteAnim(); m_Effects = []; m_animRunning = 0; m_wakeup = false; m_lastBlurAngle = null; m_lastBlurMag = null; ToggleEyeVisibility(true); CDebug.Assert(m_ActiveHeadPos == null, "SnoodHead.Reset()", "non null m_ActiveHeadPos " + this); m_ActiveHeadPos = null; PowerUp = (Constants.PowerUp_None); m_LastVelocity.X = 0; m_LastVelocity.Y = 0; m_NoHook = false; CDebug.Assert(m_xSlot == null, "SnoodHead.Reset()", (("x/y slot not null on reset " + m_xSlot) + ",") + m_ySlot); m_xSlot = null; m_ySlot = null; ResetScale(); _alpha = 100; m_bankEffects = []; m_orb = null; } function ResetScale() { if (m_fromPool) { _xscale = SizeToScale(m_size, true); _yscale = _xscale; } } function RemoveFromBoard() { CDebug.Assert((m_xSlot != null) && (m_ySlot != null), "SnoodHead.RemoveFromBoard()", "x/y slot not defined"); Level.InvalidateSpot(this); ReturnToPool(this); } function get CurAnim() { return(m_anim); } function get LastAnim() { return(m_lastAnim); } function get State() { return(m_state); } function set State(i_state) { SetState(i_state, false); //return(State); } function SetState(i_state, i_force) { if ((i_state != m_state) || (i_force)) { var _local2 = m_state; m_state = i_state; if (_local2 == State_OnBoard) { if (m_xSlot != null) { CDebug.WriteErr("SnoodHead.SetState()", "head transitioning off board while slot non-null"); DbgSetText("NON_NULL"); } } } } function IsInPool() { return(m_state == State_InPool); } function get Size() { return(m_size); } function set Size(inVal) { SetSize(inVal, false); //return(Size); } function SetSize(inVal, i_force) { if ((inVal != m_size) || (i_force)) { m_size = inVal; ResetScale(); } } function SetOrb(i_val) { } function get Color() { return(m_color); } function set Color(inVal) { SetColor(inVal, false); //return(Color); } function SetColor(inVal, inForce) { if ((inVal != m_color) || (inForce)) { if ((inVal != m_color) && (m_color != null)) { if ((m_xSlot != null) && (m_color != inVal)) { CGame.TileSet.UpdateColorCount(m_color, -1); CGame.TileSet.UpdateColorCount(inVal, 1); } } m_color = inVal; if (m_loaded) { m_orb = isPowerUpOrb(m_powerUp); if (m_headMc._currentframe == (m_color + (m_orb ? (Constants.Snood_HeadCount) : 0))) { onEmoteLoaded(); } else { m_headMc.gotoAndStop(m_color + (m_orb ? (Constants.Snood_HeadCount) : 0)); } } } } function ToggleEyeVisibility(i_val) { m_eyeVisibility = i_val; } function isPowerUpOrb(i_powerUp) { return(((i_powerUp != Constants.PowerUp_None) && (i_powerUp != Constants.PowerUp_Hypnosis)) && (i_powerUp != Constants.PowerUp_Lock)); } function isPowerUpConcealing(i_powerUp) { return((((i_powerUp != Constants.PowerUp_Ghost) && (i_powerUp != Constants.PowerUp_Shroud)) && (i_powerUp != Constants.PowerUp_Lock)) && (!Constants.IsJellyFish(i_powerUp))); } function onEmoteLoaded() { if (!m_loaded) { return(undefined); } KillEmoteAnim(); m_emoteMc = MovieClip(m_headMc._emote); CDebug.Assert(m_emoteMc != null, "SnoodHead.OnColorChanged()", (("couldn't find _emote clip on color " + m_color) + ":") + this); m_emoteMc.cacheAsBitmap = true; m_emoteMc.gotoAndStop(1); m_emoteMc._visible = isPowerUpConcealing(m_powerUp); if (Constants.IsBorbRandEmote(m_color)) { m_randEmoteColor = Oberon.MathX.randRange(1, m_emoteMc._totalframes); m_emoteMc.gotoAndStop(m_randEmoteColor); } SetPowerUp(m_powerUp, true); updateEmotePowerupAnims(); } function OnEyesLoaded(i_eyes) { m_eyes = i_eyes; m_eyes.LookCompleteCallback = mx.utils.Delegate.create(this, OnLookComplete); var _local2 = CProcEyes(i_eyes); if (_local2 != null) { switch (m_color) { case Constants.Snood_Crabby : _local2.MaxX = 1.3; _local2.MinX = -1.3; _local2.MaxY = 0.3; _local2.MinY = -0.3; break; case Constants.Snood_Pearl : _local2.MaxX = 1.4; _local2.MinX = -1.4; _local2.MaxY = 0.6; _local2.MinY = -0.6; break; default : CDebug.WriteErr("SnoodHead.OnEyesLoaded()", "Unexpected procedural eyes loaded for color: " + GetColorText()); } } ToggleEyeVisibility(m_eyeVisibility); if (IsInPool()) { } else if (m_watchMouse) { ToggleFollowMouseWithEyes(m_watchMouse, true); } else { LookOffCenter(); } } function GetColorText() { return(Constants.GetSnoodByNumber(m_color)); } function get PowerUp() { return(m_powerUp); } function set PowerUp(inVal) { SetPowerUp(inVal, false); //return(PowerUp); } function onPowerUpLoaded() { SetPowerUp(m_powerUp, true); } function SetPowerUp(inVal, inForce) { if ((m_powerUp != inVal) || (inForce)) { if (m_powerUp == Constants.PowerUp_Hypnosis) { s_HypnoBorbs--; } if (inVal == Constants.PowerUp_Hypnosis) { s_HypnoBorbs++; } m_itemMc.cacheAsBitmap = (((m_powerUp != Constants.PowerUp_Hypnosis) && (m_powerUp != Constants.PowerUp_Jelly)) && (m_powerUp != Constants.PowerUp_JellyStrTwo)) && (m_powerUp != Constants.PowerUp_JellyStrThree); if (m_powerUp != inVal) { if (m_powerUp == Constants.PowerUp_Lock) { m_wakeup = true; } else if (m_powerUp == Constants.PowerUp_Hypnosis) { LookOffCenter(); } } if (!m_loaded) { m_powerUp = inVal; } else { m_powerUp = inVal; var _local4 = isPowerUpOrb(m_powerUp); if (_local4 != m_orb) { SetColor(m_color, true); return(undefined); } if (m_wakeup) { KillEmoteAnim(); PlayEmoteAnim("wake"); m_wakeup = false; } var _local3; if (m_color <= Constants.Snood_HeadCount) { _local3 = ((m_powerUp - 1) * Constants.Snood_HeadCount) + m_color; } else { _local3 = ((m_powerUp - 1) * Constants.Snood_HeadCount) + 1; } m_itemMc.gotoAndStop(_local3); updateEmotePowerupAnims(); } } } function updateEmotePowerupAnims() { if ((m_powerUp == Constants.PowerUp_Hypnosis) && (m_emoteAnim != null)) { KillEmoteAnim(); } if ((m_powerUp == Constants.PowerUp_Lock) && (m_emoteAnim != null)) { KillEmoteAnim(); } m_emoteMc._visible = isPowerUpConcealing(m_powerUp); } function IsOrb() { return((_currentframe > Constants.Snood_HeadCount) && (_currentframe <= (Constants.Snood_HeadCount * 2))); } function GetMainHeadClip() { return(m_headMc); } function GetAnim() { return(m_anim); } function GetEmoteClip() { return(m_emoteMc); } function GetItemClip() { return(m_itemMc); } function DbgSetText(inVal) { if (DEBUGTXT != null) { DEBUGTXT.removeMovieClip(); DEBUGTXT = null; } var _local2 = CDebug.DrawTextOnMovie(this, inVal); DEBUGTXT = _local2; DEBUGTXT._xscale = 100; DEBUGTXT._yscale = 100; _local2._x = -(_width / 2); _local2._y = -(_height / 2); } static function DbgShowCoordOnAllSnoods() { var _local2 = 0; while (_local2 < m_activeHeads.length) { var _local1 = SnoodHead(m_activeHeads[_local2]); if (_local1.m_xSlot != null) { trace((_local1.GetGridCoord().ToString() + ":") + _local1); _local1.DbgSetText((_local1.m_xSlot + ",") + _local1.m_ySlot); } _local2++; } } static function DbgClearTextOnAllSnoods() { var _local2 = 0; while (_local2 < m_activeHeads.length) { var _local1 = SnoodHead(m_activeHeads[_local2]); if (_local1.DEBUGTXT != null) { _local1.DEBUGTXT.removeMovieClip(); _local1.DEBUGTXT = null; } _local2++; } } static function DbgGetShowOutline() { return(m_bShowDebugOutline); } static function DbgSetShowOutline(inVal) { if (m_bShowDebugOutline != inVal) { m_bShowDebugOutline = inVal; var _local1 = 0; while (_local1 < m_activeHeads.length) { var _local2 = SnoodHead(m_activeHeads[_local1]); _local2.m_debugOutline._visible = m_bShowDebugOutline; _local1++; } } } function DamageCrate() { CDebug.Assert(((m_color == Constants.Snood_CrateStrThree) || (m_color == Constants.Snood_CrateStrTwo)) || (m_color == Constants.Snood_Crate), "SnoodHead.DamageCrate()", this + " is not a crate!"); CGame.Sounds.PlaySound(Constants.__get__Sound_BreakCrate()); if (Color == Constants.Snood_CrateStrThree) { SetColor(Constants.Snood_CrateStrTwo); } else if (Color == Constants.Snood_CrateStrTwo) { SetColor(Constants.Snood_Crate); } else { var _local4 = null; var _local6 = CGame.Board.m_CurLevelInfo; var _local3 = _local6.CratePowerupTypeFreq; var _local5 = Oberon.MathX.randRange(0, 100, 1); var _local2 = 0; while ((_local4 == null) && (_local2 < _local3.length)) { if (_local5 < _local3[_local2]) { _local4 = _local6.CratePowerupTypes[_local2]; } _local5 = _local5 - _local3[_local2]; _local2++; } if (_local4 == null) { SetColor(Constants.Snood_Wild); SetPowerUp(Constants.PowerUp_None); } else { var _local7 = CGame.Board.GetRandBorb(); SetColor(_local7.Color); SetPowerUp(_local4); } if (m_powerUp != Constants.PowerUp_Mine) { DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, Level.m_BasePowerupDropSec); } Level.DoDropSnoods(); } } function Pause() { m_paused = true; } function Resume() { m_paused = false; } function StopEmote() { if (m_emoteMc != null) { CDebug.Assert(m_emoteMc != null, this, "StopEmote(): Couldn't find child movieclip to play emote"); m_emoteMc.gotoAndStop(1); } } function AddTween(i_tween) { m_activeTweens.push(i_tween); i_tween.onMotionFinished = mx.utils.Delegate.create(this, OnTweenFinished); } function AddEffect(i_effect) { m_Effects.push(i_effect); i_effect.m_CompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnEffectComplete)); } function OnEffectComplete(i_context) { var _local3 = false; var _local2 = 0; while ((!_local3) && (_local2 < m_Effects.length)) { if (m_Effects[_local2] == i_context) { _local3 = true; m_Effects.splice(_local2, 1); } _local2++; } } function OnTweenFinished(i_context) { var _local3 = false; var _local2 = 0; while ((!_local3) && (_local2 < m_activeTweens.length)) { if (m_activeTweens[_local2] == i_context) { _local3 = true; m_activeTweens.splice(_local2, 1); } _local2++; } if ((m_activeTweens.length == 0) && (m_anim != Anim_None)) { AnimCompleteEvent.Fire(); } } function OnAnimComplete() { m_lastAnim = m_anim; m_anim = Anim_None; } function FinishTweens() { var _local2 = m_activeTweens.length - 1; while (_local2 >= 0) { Core.CTween(m_activeTweens[_local2]).Finish(); _local2--; } m_activeTweens = []; } function KillTweens() { var _local2 = m_activeTweens.length - 1; while (_local2 >= 0) { Core.CTween(m_activeTweens[_local2]).StopUpdates(); _local2--; } m_activeTweens = []; } static function StopAllMoveToTweens(i_state) { var _local1 = 0; while (_local1 < m_activeHeads.length) { var _local2 = Object(m_activeHeads[_local1]); if ((i_state == null) || (_local2.State == i_state)) { _local2.FinishTweens(); } _local1++; } } static function StopAllBoardMoveToTweens() { StopAllMoveToTweens(State_OnBoard); } function FlyTo(i_coord, i_duration, i_xFunc, i_yFunc) { m_anim = Anim_Flying; KillTweens(); var _local2 = false; if (_x != i_coord.X) { AddTween(new Core.CTween(this, "_x", ((i_xFunc == undefined) ? (mx.transitions.easing.Regular.easeOut) : (i_xFunc)), _x, i_coord.X, ((i_duration == undefined) ? 1 : (i_duration)), true)); _local2 = true; } if (_y != i_coord.Y) { AddTween(new Core.CTween(this, "_y", ((i_yFunc == undefined) ? (mx.transitions.easing.Regular.easeOut) : (i_yFunc)), _y, i_coord.Y, ((i_duration == undefined) ? 1 : (i_duration)), true)); _local2 = true; } if (!_local2) { AnimCompleteEvent.Fire(); } } function GetGridCoord() { return(new CCoord(m_xSlot, m_ySlot)); } function GetPosCoord() { return(new CCoord(_x, _y)); } function MoveToCoord(i_coord, i_tween) { MoveTo(i_coord.X, i_coord.Y, i_tween); } function MoveTo(inX, inY, inTween) { var _local3; var _local2; _local3 = inX; _local2 = inY; if (inTween) { if (inTween) { m_anim = Anim_MovingTo; } if (((((m_LastVelocity.X != 0) || (m_LastVelocity.Y != 0)) && (_local3 != _x)) && (_local2 != _y)) && (s_DoImpactTween)) { var _local4 = m_LastVelocity.Clone(); _local4.NormalizeTo(ImpactTweenVelStr); CBoard.G.CreateImpactBounceAround(m_xSlot, m_ySlot, _x, _y, _local4); } KillTweens(); AddTween(new Core.CTween(this, "_x", mx.transitions.easing.Regular.easeOut, _x, _local3, TweenDuration, true)); AddTween(new Core.CTween(this, "_y", mx.transitions.easing.Regular.easeOut, _y, _local2, TweenDuration, true)); } else { FinishTweens(); _x = inX; _y = inY; } } function GetCollisionDist(i_srcCoord, i_srcVel) { var _local9 = null; var _local5 = new Core.Vector2(i_srcCoord.X - _x, i_srcCoord.Y - _y); var _local10 = CCoord.ToGlobal(this); var _local2 = _local5.Clone(); _local2.Set(_local2.Y, -_local2.X); _local2.NormalizeTo(_width / 2); var _local7 = new Core.Vector2(-_local5.X, -_local5.Y); var _local8 = _local7.Clone(); _local7.Subtract(_local2); _local8.Add(_local2); var _local6 = (_local7.GetAngle() + 360) % 360; var _local4 = (_local8.GetAngle() + 360) % 360; var _local3 = (i_srcVel.GetAngle() + 360) % 360; if (_local6 > _local4) { _local4 = _local4 + 360; } if ((_local3 < _local6) && (_local3 < _local4)) { _local3 = _local3 + 360; } if ((_local6 <= (_local3 * s_CollisionSensitivity)) && (_local4 >= (_local3 * s_CollisionSensitivity))) { return(_local5.Magnitude()); } return(null); } function IsSameTypeAs(i_borb) { return((i_borb.__get__Color() == m_color) && (i_borb.__get__PowerUp() == m_powerUp)); } function IsOnGrid() { return((m_xSlot != null) && (m_ySlot != null)); } function IsAnimating(i_animType) { if (i_animType == undefined) { return((m_activeTweens.length > 0) || (m_anim != Anim_None)); } return(m_anim == i_animType); } function Vaporize(i_immediate, i_applyBonus, i_forceDelay, i_maxDelay, i_vaporizeEffectNumber, i_scaleVaporize) { var _local2 = Effects.CEffect_Vaporize(CEffect.CreateEffect(CEffect.Type_Vaporize)); if (_local2.OnInit(this, i_immediate, i_applyBonus, i_forceDelay, i_maxDelay, i_vaporizeEffectNumber, i_scaleVaporize)) { CGame.EffectMgr.AddEffectToActiveList(_local2); } } function RemoveBlur() { if (m_blurImgMc != null) { m_blurImgMc.removeMovieClip(); m_blurImgMc = null; } if (m_blurMc != null) { m_blurMc.removeMovieClip(); m_blurMc = null; } if (m_blurBmp != null) { m_blurBmp.dispose(); m_blurBmp = null; } m_headMc._visible = true; } function AddBlur(i_angle, i_magnitude, i_quality) { if ((((m_blurImgMc != null) && (m_blurMc != null)) && (m_lastBlurAngle == i_angle)) && (m_lastBlurMag == i_magnitude)) { return(undefined); } RemoveBlur(); if (i_quality == null) { i_quality = 1; } var _local3 = i_magnitude + Math.sqrt((_width * _width) + (_height * _height)); var _local2 = _local3 / 2; m_blurBmp = new flash.display.BitmapData(_local3, _local3, true, 0); var _local4 = getNextHighestDepth(); m_blurMc = createEmptyMovieClip("BlurHolder" + _local4, _local4); m_blurImgMc = m_blurMc.createEmptyMovieClip("Blur", 1); m_blurImgMc.attachBitmap(m_blurBmp, m_blurImgMc.getNextHighestDepth(), "always", true); m_blurImgMc._x = -_local2; m_blurImgMc._y = -_local2; var _local5 = new flash.geom.Matrix(); _local5.translate(_local2, _local2); m_blurBmp.draw(this, _local5); m_blurMc._rotation = i_angle % 360; m_headMc._visible = false; var _local6 = new flash.filters.BlurFilter(0, i_magnitude); _local6.quality = i_quality; m_blurBmp.applyFilter(m_blurBmp, m_blurBmp.rectangle, new flash.geom.Point(0, 0), _local6); m_blurImgMc.attachBitmap(m_blurBmp, m_blurImgMc.getNextHighestDepth(), "always", true); } function ToggleFollowMouseWithEyes(i_val, i_force) { if ((m_watchMouse != i_val) || (i_force)) { m_watchMouse = i_val; if (m_watchMouse) { m_eyes.LookTowardsMouse(); } else { LookOffCenter(); } } } function DropTo(i_dest, i_fallTimeMod, i_delay) { KillTweens(); var _local2 = Effects.CEffect_BorbDropAnim(CEffect.CreateEffect(CEffect.Type_BorbDropAnim)); if (_local2.OnInit(this, i_dest, ((i_fallTimeMod != null) ? (i_fallTimeMod) : 0), ((i_delay != null) ? (i_delay) : 0))) { AddEffect(_local2); CGame.EffectMgr.AddEffectToActiveList(_local2); } } function GetEmoteAnim() { return(m_emoteAnim); } function IsEmoteAnimPlaying() { return(m_emoteAnim != null); } function PlayEmoteAnim(i_name, i_holdLastFrame, i_lookDir, i_lookCoord, i_lookDelay) { if (m_emoteAnim != null) { return(null); } m_emoteAnim = Effects.CEffect_EmoteAnim(CEffect.CreateEffect(CEffect.Type_EmoteAnim)); if (m_emoteAnim.OnInit(this, i_name, i_holdLastFrame, i_lookDir, i_lookCoord, i_lookDelay)) { CGame.EffectMgr.AddEffectToActiveList(m_emoteAnim); m_emoteAnim.m_CompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnEmoteAnimComplete)); m_emoteMc.cacheAsBitmap = false; if (i_holdLastFrame) { m_emoteAnim.m_HoldingCallback = mx.utils.Delegate.create(this, OnEmoteAnimComplete); } } else { ToggleEyeVisibility(true); m_emoteAnim = null; } return(m_emoteAnim); } function KillEmoteAnim() { if (m_emoteAnim != null) { var _local2 = m_emoteAnim; m_emoteAnim = null; _local2.Finish(); ToggleEyeVisibility(true); return(true); } ToggleEyeVisibility(true); return(false); } function CompleteEmoteAnim() { if (m_emoteAnim != null) { m_emoteMc.cacheAsBitmap = false; return(m_emoteAnim.Reverse()); } return(false); } function OnEmoteAnimComplete(i_context) { var _local2 = Effects.CEffect_EmoteAnim(i_context); CDebug.Assert((m_emoteAnim == null) || (m_emoteAnim == _local2), "SnoodHead.OnEmoteAnimComplete()", "Unexpected emote anim completing!"); if (!_local2.m_HoldAnim) { m_emoteAnim = null; LookOffCenter(); } EmoteCompleteEvent.Fire(); if ((m_emoteAnim == null) && ((m_eyes == null) || (!m_eyes.IsInAnim()))) { m_emoteMc.cacheAsBitmap = true; } } function HasEyes() { return(m_eyes != null); } function GetEyes() { return(m_eyes); } function LookTowardsDir(i_dir) { if (m_eyes.LookTowardsDir(i_dir)) { m_emoteMc.cacheAsBitmap = false; } } function LookTowardsCoord(i_coord) { if (m_eyes.LookTowardsCoord(i_coord)) { m_emoteMc.cacheAsBitmap = false; } } function LookOffCenter() { var _local3 = Oberon.MathX.randRange(0, 360); var _local2 = Oberon.MathX.randRange(0, 50); if (m_eyes.LookOffCenter(_local3, _local2)) { m_emoteMc.cacheAsBitmap = false; } } function LookAtCenter() { var _local3 = Oberon.MathX.randRange(0, 360); var _local2 = Oberon.MathX.randRange(0, 50); if (m_eyes.LookOffCenter(0, 0)) { m_emoteMc.cacheAsBitmap = false; } } function OnLookComplete() { if (LookCompleteCallback != null) { LookCompleteCallback(this); } if ((m_emoteAnim == null) || (m_emoteAnim.m_HoldAnim)) { m_emoteMc.cacheAsBitmap = true; } } function CreateImpactBounce(inFromX, inFromY, inVec, inSecondTier) { KillTweens(); var _local2 = new Core.Vector2(_x - inFromX, _y - inFromY); _local2.NormalizeTo(((!inSecondTier) ? (ImpactTweenPosStr) : (ImpactTweenPosStrTierTwo))); _local2.Add(inVec); AddTween(new Core.CTween(this, "_x", CustomTweens.Bounce.SingleBounce, _x, _x + _local2.X, ImpactTweenDuration, true, (inSecondTier ? 0.05 : 0)), true); AddTween(new Core.CTween(this, "_y", CustomTweens.Bounce.SingleBounce, _y, _y + _local2.Y, ImpactTweenDuration, true, (inSecondTier ? 0.05 : 0)), true); } function AddBankShot(i_color, i_orient, i_coord) { var _local6 = true; var _local5 = 0; var _local4 = [false, false, false, false]; var _local2 = 0; while (_local2 < m_bankEffects.length) { var _local3 = Effects.CEffect_BankAnim(m_bankEffects[_local2]).m_NumberOrient; if (_local3 != i_orient) { if (!_local4[_local3]) { _local5++; _local4[_local3] = true; } } else { _local6 = false; } _local2++; } if (_local5 == 0) { CGame.Sounds.PlaySound(Constants.__get__Sound_Bounce()); } else if (_local5 == 1) { CGame.Sounds.PlaySound(Constants.__get__Sound_Bounce2x()); } else { CGame.Sounds.PlaySound(Constants.__get__Sound_Bounce3x()); } m_bankEffects.push(new Effects.CEffect_BankAnim(CGame.TileSet, CGame.TileSet.GetNextHighestBankDepth(), i_orient, i_coord, i_color, _local6)); } function StopBankShotEffects() { var _local2 = 0; while (_local2 < m_bankEffects.length) { Effects.CEffect_BankAnim(m_bankEffects[_local2]).FadeOut(); _local2++; } } function PlayBankEffectRewards() { var _local4 = 0; var _local3 = 0; while (_local3 < m_bankEffects.length) { var _local2 = Effects.CEffect_BankAnim(m_bankEffects[_local3]); if (_local2.m_CanBonus) { _local4++; _local2.PlayRewardAnim(_local4); } else { _local2.FadeOut(); } _local3++; } if (_local4 > 2) { CGame.Sounds.PlaySound(Constants.__get__Sound_Applause()); CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MajorBankMatch); } if (_local4 == 0) { CGame.Board.m_AllShotsHaveBankBonus = false; } m_bankEffects = []; return(_local4); } function SyncWithInfo(i_info) { SetColor(i_info.Color); SetPowerUp(i_info.PowerUp); } function ToInfo() { return(new CBorbInfo(m_color, m_powerUp)); } function IsFromPool() { return(m_fromPool); } static function CreateSnoodHeadPool(inParent, inStartDepth, inPoolSize, inSnoodSize) { CleanupAllSnoods(); s_newHeadDepth = inStartDepth; m_currentPoolParent = inParent; CDebug.WriteLine("SnoodHead", ((("Create Head Pool (attach to " + m_currentPoolParent) + ", size ") + inPoolSize) + " )"); if (inPoolSize != undefined) { s_headPoolSize = inPoolSize; } var _local1 = 0; while (_local1 < s_headPoolSize) { createHeadAndAddToPool(inSnoodSize); _local1++; } } static function PushSnoodHeads() { } static function PopSnoodHeads() { } static function CleanupAllSnoods() { m_currentPoolParent = null; EmptySnoodHeadPool(); EmptyActiveHeadPool(); } static function EmptySnoodHeadPool() { s_HypnoBorbs = 0; while (m_pooledHeads.length > 0) { var _local1 = SnoodHead(m_pooledHeads.pop()); if (s_manageDeletion) { _local1.removeMovieClip(); } } } static function EmptyActiveHeadPool() { while (m_activeHeads.length > 0) { var _local1 = SnoodHead(m_activeHeads.pop()); if (s_manageDeletion) { _local1.removeMovieClip(); } } } static function GetAndRemoveFromPool(inBorbInfo, inSize, inX, inY, inPowerUp) { if (inSize == null) { inSize = CGame.TileSet.m_SnoodSize; } if (m_pooledHeads.length == 0) { trace(((("Create new snood on get (pool empty, " + m_activeHeads.length) + "/") + (m_pooledHeads.length + m_activeHeads.length)) + " heads active)"); createHeadAndAddToPool(inSize); } CDebug.Assert(m_pooledHeads != null, SnoodHead, "missing head pool", true); CDebug.Assert(m_pooledHeads.length > 0, SnoodHead, "No heads in the pool", true); var _local1 = SnoodHead(m_pooledHeads[0]); m_pooledHeads.splice(0, 1); var _local2 = SnoodHead(_local1); if (_local2 == null) { trace("NullHead: " + _local1); for (var _local3 in _local1) { trace((_local3 + "=") + _local1[_local3]); } if (_local1 == null) { CDebug.Assert(false, "SnoodHead", (("temp head is null at pool size " + m_pooledHeads.length) + ",") + m_activeHeads.length, true); } CDebug.Assert(false, "SnoodHead", (("Null Head info at pool size " + m_pooledHeads.length) + ",") + m_activeHeads.length, true); } addToActive(_local2); _local2.__set__Size(inSize); _local2.SetColor(inBorbInfo.Color); _local2.SetPowerUp(inBorbInfo.PowerUp); CDebug.Assert(_local2 != null, SnoodHead, (("Null/non-head head created! Color:" + Constants.GetSnoodByNumber(inBorbInfo.Color)) + ",Size:") + inSize, true); var _local6 = ((inX != null) ? (inX) : (_local2._x)); var _local5 = ((inY != null) ? (inY) : (_local2._y)); _local2.MoveTo(_local6, _local5); _local2._visible = true; return(_local2); } static function ReturnToPool(inHead) { CDebug.Assert(inHead != null, SnoodHead, "ReturnToPool(): Trying to return a null head to the pool"); var _local2 = m_activeHeads.length; var _local1 = 0; while (_local1 < _local2) { if (m_activeHeads[_local1] == inHead) { m_activeHeads.splice(_local1, 1); _local1 = _local2; } _local1++; } if (inHead.m_xSlot != null) { CGame.TileSet.SetTile(inHead.m_xSlot, inHead.m_ySlot, null); } if (inHead.m_fromPool) { addToPool(inHead); } } static function addToPool(inHead) { if (inHead.__get__State() != State_InPool) { inHead.m_fromPool = true; inHead.SetState(State_InPool); inHead.Reset(); inHead._x = (-inHead._width) - 100; inHead._y = -100; inHead.StopEmote(); inHead._visible = false; m_pooledHeads.push(inHead); } } static function addToActive(inHead) { m_activeHeads.push(inHead); inHead.SetState(State_Idle); inHead._visible = true; } static function createHeadAndAddToPool(inSize) { var _local3 = ((m_currentPoolParent != null) ? (m_currentPoolParent) : _root); CDebug.AssertWarn(_local3 != _root, SnoodHead, "createHeadAndAddToPool(): no parent specified"); var _local2 = SnoodHead(_local3.attachMovie("Snood Head", "Borb" + s_newHeadDepth, s_newHeadDepth)); s_newHeadDepth++; CDebug.Assert(_local2 != null, SnoodHead, "createHeadAndAddToPool(): unable to create a head", true); _local2.__set__Size(inSize); s_manageDeletion = true; addToPool(_local2); } static function GetActiveHeadCount() { return(m_activeHeads.length); } static function GetActiveHeads() { return(m_activeHeads); } static var Size_Small = 1; static var Size_Med = 2; static var Size_Big = 3; static var Size_RndVerySmall = 4; static var Size_RndSmall = 5; static var Size_RndMed = 6; static var Width_Small = 22; static var Width_Med = 28; static var Width_Big = 59; static var Width_RndVerySmall = 18; static var Width_RndSmall = 19; static var Width_RndMed = 22; static var Height_Small = 22; static var Height_Med = 25; static var Height_Big = 60; static var Height_RndVerySmall = 18; static var Height_RndSmall = 19; static var Height_RndMed = 22; static var State_OnBoard = 0; static var State_InCannon = 1; static var State_InQueue = 2; static var State_InPool = 3; static var State_Idle = 4; static var State_Count = 5; static var Anim_None = 0; static var Anim_Flying = 1; static var Anim_Bouncing = 2; static var Anim_MovingTo = 3; static var LauncherSnoodSize = Size_Small; static var s_manageDeletion = false; static var s_headPoolSize = 150; static var TweenDuration = 0.4; static var ImpactTweenDuration = 0.15; static var ImpactTweenVelStr = 3; static var ImpactTweenPosStr = 3; static var ImpactTweenPosStrTierTwo = 1; static var s_CollisionSensitivity = 1; static var s_DoImpactTween = true; static var s_BlurBrighten = 1.4; static var s_newHeadDepth = 1; static var s_HypnoBorbs = 0; var m_fromPool = false; var m_xSlot = null; var m_ySlot = null; var m_NoHook = false; static var m_pooledHeads = []; static var m_activeHeads = []; static var m_currentPoolParent = null; static var m_borbsInState = {}; static var m_bShowDebugOutline = false; var m_loaded = false; var m_color = Constants.Snood_Mary; var m_size = Size_Small; var m_powerUp = Constants.PowerUp_None; var m_state = State_Idle; var m_anim = Anim_None; var m_lastAnim = Anim_None; var m_wakeup = false; var m_eyeVisibility = true; var m_randEmoteColor = null; var m_paused = false; var Orb = false; }
Symbol 46 MovieClip [__Packages.CEyes] Frame 0
class CEyes extends MovieClip { var m_enabled, _state, _leftEyeMc, LeftEye, _rightEyeMc, RightEye, _tgtDirection, _tgtMag, _y, _x, _parent; function CEyes () { super(); m_enabled = true; _state = State_Idle; } function onLoad() { _loaded = true; setState(_state, true); _leftEyeMc = MovieClip(LeftEye); _rightEyeMc = MovieClip(RightEye); _leftEyeMc.stop(); _rightEyeMc.stop(); if ((_tgtDirection == null) && (_tgtMag == null)) { _tgtDirection = 0; _tgtMag = 0; } } static function Reset() { m_regMouseEyes = []; } static function registerForMouse(i_eye) { m_regMouseEyes.push(i_eye); if (_mouseWatcher == null) { _mouseWatcher = new Object(); _mouseWatcher.onMouseMove = onGlobalMouseMove; Mouse.addListener(_mouseWatcher); } } static function unregisterForMouse(i_eye) { m_regMouseEyes = Oberon.ArrayX.RemoveFrom(m_regMouseEyes, i_eye); if ((m_regMouseEyes.length == 0) && (_mouseWatcher != null)) { Mouse.removeListener(_mouseWatcher); _mouseWatcher = null; } } static function onGlobalMouseMove() { var _local2 = m_regMouseEyes.length; var _local1 = 0; while (_local1 < _local2) { CEyes(m_regMouseEyes[_local1]).UpdateOnMouseMove(); _local1++; } } function ToString() { var _local2 = ""; for (var _local3 in this) { if ((_local3.indexOf("_") == 0) || (_local3.indexOf("m") == 0)) { _local2 = _local2 + (((_local3 + " : ") + this[_local3]) + newline); } } return((("CEyes " + this) + " info:\n") + _local2); } function GetAngleFromMouse() { var _local3 = {x:_x, y:_y}; _parent.localToGlobal(_local3); var _local4 = new Core.Vector2(_root._xmouse - _local3.x, _local3.y - _root._ymouse); return(_local4.GetAngle()); } function GetEnabled() { return(m_enabled); } function IsInAnim() { return(false); } function SetEnabled(i_val) { if (i_val != m_enabled) { m_enabled = i_val; } } function UpdateOnMouseMove() { if (!m_enabled) { return(undefined); } LookTowardsDir(GetAngleFromMouse()); } function LookTowardsDir(i_val) { if (!m_enabled) { return(false); } i_val = ((90 + ((i_val < 90) ? 0 : 360)) - i_val) % 360; if (_tgtDirection != i_val) { _tgtDirection = int(i_val); _tgtMag = 100; return(updateLookTowards()); } return(false); } function LookTowardsCoord(i_coord) { if (!m_enabled) { return(false); } var _local2 = i_coord.Clone(); _local2.ConvertToMcLocal(this); var _local3 = new Core.Vector2(_local2.X - _x, _y - _local2.Y); setState(State_LookAt); return(LookTowardsDir(_local3.GetAngle())); } function LookTowardsMouse() { if (!m_enabled) { return(undefined); } setState(State_FollowMouse); } function LookOffCenter(i_rotation, i_distPct) { if (!m_enabled) { return(false); } setState(State_Idle); _tgtDirection = i_rotation; _tgtMag = i_distPct; return(updateLookTowards()); } function setState(inVal, inForce) { if ((inVal != _state) || (inForce)) { if (!(_state === State_FollowMouse)) { } else { unregisterForMouse(this); } if (!(inVal === State_FollowMouse)) { } else { registerForMouse(this); } _state = inVal; } } function updateLookTowards() { return(false); } static var LookSpeed = 0.5; static var m_regMouseEyes = []; static var _mouseWatcher = null; static var State_Disabled = 0; static var State_Idle = 1; static var State_FollowMouse = 2; static var State_LookAt = 3; static var Dir_UpLeft = 120; static var Dir_Up = 90; static var Dir_UpRight = 60; static var Dir_Right = 0; static var Dir_DownRight = 300; static var Dir_Down = 270; static var Dir_DownLeft = 240; static var Dir_Left = 180; var _loaded = false; }
Symbol 47 MovieClip [__Packages.Oberon.ArrayX] Frame 0
class Oberon.ArrayX { function ArrayX () { } static function removeAt(inArray, inIndex) { inArray.splice(inIndex, 1); return(inArray); } static function IndexOf(inArray, inObject) { var _local3 = -1; var _local1 = 0; while (_local1 < inArray.length) { if ((inArray[_local1] == inObject) && (inArray[_local1] != null)) { _local3 = _local1; break; } _local1++; } return(_local3); } static function Subtract(i_arrL, i_arrR) { var _local6 = []; var _local3 = 0; while (_local3 < i_arrL.length) { var _local2 = false; var _local1 = 0; while ((!_local2) && (_local1 < i_arrR.length)) { if (i_arrL[_local3] == i_arrR[_local1]) { _local2 = true; } _local1++; } if (!_local2) { _local6.push(i_arrL[_local3]); } _local3++; } return(_local6); } static function Contains(inArray, inObject) { return(IndexOf(inArray, inObject) != -1); } static function RemoveFrom(inArray, inObject) { var _local3 = new Array(); var _local1 = inArray.length - 1; while (_local1 >= 0) { if (inArray[_local1] != inObject) { _local3.push(inArray[_local1]); } _local1--; } return(_local3); } static function NewArrayFromObject(inObject, inUseIndexIfAvailable) { var _local3 = false; if (inObject == null) { return(null); } if (inUseIndexIfAvailable) { _local3 = true; for (var _local4 in inObject) { if (isNaN(parseInt(_local4))) { _local3 = false; break; } } } var _local2 = new Array(); for (var _local4 in inObject) { if (_local3) { _local2[parseInt(_local4)] = inObject[_local4]; } else { _local2.push(inObject[_local4]); } } return(_local2); } static function MakeTwoDimensionalArray(inRows, inCols) { var _local2 = new Array(inRows); var _local1 = 0; while (_local1 < inRows) { _local2[_local1] = new Array(inCols); _local1++; } return(_local2); } }
Symbol 48 MovieClip [__Packages.CCoord] Frame 0
class CCoord { var X, Y; function CCoord (i_x, i_y) { X = i_x; Y = i_y; } function Clone() { return(new CCoord(X, Y)); } function Equals(i_coord) { return((i_coord.X == X) && (i_coord.Y == Y)); } function ToString() { return((X + ",") + Y); } function ConvertToMcGlobal(i_clip) { var _local2 = ToGlobal(i_clip, this); X = _local2.X; Y = _local2.Y; } function ConvertToFromMcLocal(i_srcClip, i_destClip) { var _local2 = ToLocal(i_srcClip, i_destClip, this); X = _local2.X; Y = _local2.Y; } function ConvertToMcLocal(i_clip) { var _local2 = GlobalToLocal(i_clip, this); X = _local2.X; Y = _local2.Y; } static function ToGlobal(i_clip, i_coord) { var _local1; if (i_coord == undefined) { _local1 = {x:i_clip._x, y:i_clip._y}; i_clip._parent.localToGlobal(_local1); } else { _local1 = {x:i_coord.X, y:i_coord.Y}; i_clip.localToGlobal(_local1); } return(new CCoord(_local1.x, _local1.y)); } static function ToLocal(i_srcClip, i_destClip, i_coord) { var _local1; if (i_coord == undefined) { _local1 = {x:i_srcClip._x, y:i_srcClip._y}; i_srcClip._parent.localToGlobal(_local1); } else { _local1 = {x:i_coord.X, y:i_coord.Y}; i_srcClip.localToGlobal(_local1); } i_destClip.globalToLocal(_local1); return(new CCoord(_local1.x, _local1.y)); } static function GlobalToLocal(i_clip, i_coord) { var _local1 = {x:i_coord.X, y:i_coord.Y}; i_clip.globalToLocal(_local1); return(new CCoord(_local1.x, _local1.y)); } }
Symbol 49 MovieClip [__Packages.Effects.CEffect_EmoteAnim] Frame 0
class Effects.CEffect_EmoteAnim extends CEffect { static var s_headFrameLabelAttr; var m_Fps, m_FrameTween, m_LookDelay, m_LookDir, m_Borb, m_Name, m_LookCoord, m_HoldAnim, m_LoopAnimation, m_ReverseOnComplete, m_DirectionalAnim, m_CenterEyesOnRun, m_HideEyes, m_State, m_EmoteMc, m_NeedsUpdate, m_HoldingCallback; function CEffect_EmoteAnim () { super(CEffect.Type_EmoteAnim); m_Fps = s_BaseFps; m_FrameTween = null; m_LookDelay = null; m_LookDir = null; } function OnInit(i_borb, i_name, i_holdAnim, i_lookDir, i_lookCoord, i_lookDelay, i_fps) { if (m_Borb.IsOrb()) { return(false); } m_Borb = i_borb; m_Name = i_name; m_LookDelay = i_lookDelay; m_LookDir = i_lookDir; m_LookCoord = i_lookCoord; m_HoldAnim = i_holdAnim; m_LoopAnimation = false; m_ReverseOnComplete = false; m_DirectionalAnim = false; m_CenterEyesOnRun = false; m_HideEyes = false; m_State = State_AnimForward; if (i_fps != null) { m_Fps = i_fps; } m_EmoteMc = i_borb.GetEmoteClip(); if (m_EmoteMc == null) { return(false); } var _local12 = m_Borb.__get__Color() - 1; if (s_headFrameLabels == null) { s_headFrameLabels = new Array(s_headFrameLabelNames.length); var _local2 = 0; while (_local2 < s_headFrameLabels.length) { s_headFrameLabels[_local2] = null; _local2++; } } if (s_headFrameLabels[_local12] == null) { if (s_headFrameLabelAttr == null) { s_headFrameLabelAttr = new Array(s_headFrameLabelNames.length); var _local2 = 0; while (_local2 < s_headFrameLabelNames.length) { s_headFrameLabelAttr[_local2] = new Object(); _local2++; } } var _local3 = s_headFrameLabelNames[_local12]; var _local11 = s_headFrameLabelAttr[_local12]; var _local10 = []; CDebug.Assert(_local3 != null, "CEffect_EmoteAnim.OnInit()", (("Invalid label " + m_Name) + " on color ") + Constants.GetSnoodByNumber(_local12 + 1)); var _local14 = _local3.length; var _local2 = 0; while (_local2 < _local14) { var _local7 = _local3[_local2]; var _local9 = _local7.indexOf("["); if (_local9 != -1) { _local3[_local2] = _local7.substring(0, _local9); var _local6 = _local7.substring(_local9, _local7.length); var _local8 = [_local6.indexOf("[R]") != -1, _local6.indexOf("[D]") != -1, _local6.indexOf("[C]") != -1, _local6.indexOf("[H]") != -1]; if (_local6.indexOf("[D]") != -1) { var _local5 = 0; while (_local5 < s_directionalSuffixes.length) { var _local4 = (_local3[_local2] + " ") + s_directionalSuffixes[_local5]; _local3.push(_local4); _local11[_local4] = _local8; _local10.push(_local4); _local5++; } } else { _local10.push(_local3[_local2]); } _local11[_local3[_local2]] = _local8; } else { _local11[_local3[_local2]] = [false, false, false, false]; _local10.push(_local3[_local2]); } _local2++; } s_headFrameLabels[_local12] = Oberon.MovieClipX.GetAnimFrameLabels(m_EmoteMc, _local10); var _local20 = s_headFrameLabels[_local12]; } var _local13 = s_headFrameLabelAttr[_local12][m_Name]; CDebug.Assert(_local13 != null, "CEffect_EmoteAnim.OnInit()", (("No attributes for head " + Constants.GetSnoodByNumber(m_Borb.__get__Color())) + ",Emote:") + m_Name); if (_local13 != null) { m_ReverseOnComplete = _local13[0]; m_DirectionalAnim = _local13[1]; m_CenterEyesOnRun = _local13[2]; m_HideEyes = _local13[3]; } CDebug.Assert((!m_DirectionalAnim) || (i_lookDir != null), "CEffect_EmoteAnim.OnInit()", (("Must specify look dir on directional anim " + i_name) + ":") + _local12); if (m_DirectionalAnim) { m_Name = m_Name + " "; switch (m_LookDir) { case CEyes.Dir_UpLeft : m_Name = m_Name + s_directionalSuffixes[0]; break; case CEyes.Dir_UpRight : m_Name = m_Name + s_directionalSuffixes[3]; break; case CEyes.Dir_Right : m_Name = m_Name + s_directionalSuffixes[4]; break; case CEyes.Dir_DownRight : m_Name = m_Name + s_directionalSuffixes[5]; break; case CEyes.Dir_DownLeft : m_Name = m_Name + s_directionalSuffixes[2]; break; case CEyes.Dir_Left : m_Name = m_Name + s_directionalSuffixes[1]; } } var _local15 = s_headFrameLabels[_local12][m_Name]; var _local16 = s_headFrameLabels[_local12][m_Name + "End"]; CDebug.Assert(_local15 != null, "CEffect_EmoteAnim.OnInit()", (("null start frame on label " + m_Name) + " on color ") + Constants.GetSnoodByNumber(_local12 + 1)); CDebug.Assert(_local16 != null, "CEffect_EmoteAnim.OnInit()", (("null end frame on label " + m_Name) + "End on color ") + Constants.GetSnoodByNumber(_local12 + 1)); if ((_local15 != null) && (_local16 != null)) { var _local17 = false; if ((_local16 - _local15) == 0) { _local17 = true; } else { m_FrameTween = new Core.CTween(m_EmoteMc, "_currentframe", null, _local15, _local16, (_local16 - _local15) / m_Fps); m_FrameTween.onMotionFinished = mx.utils.Delegate.create(this, OnTweenComplete); } if ((m_LookDelay == null) || (m_LookDelay == 0)) { if (m_DirectionalAnim) { } else if (m_CenterEyesOnRun) { m_Borb.LookAtCenter(); } else if (m_LookDir != null) { m_Borb.LookTowardsDir(m_LookDir); m_LookDelay = null; } else if (m_LookCoord != null) { m_Borb.LookTowardsCoord(m_LookCoord); m_LookDelay = null; } m_NeedsUpdate = false; } m_Borb.ToggleEyeVisibility(!m_HideEyes); if (_local17) { m_EmoteMc.gotoAndStop(_local15); OnTweenComplete(); } return(true); } return(false); } static function ResetHeadFrameLabels() { } static function HasAnimation(i_color, i_animName) { var _local2 = s_headFrameLabelNames[i_color]; var _local5 = _local2.length; var _local1 = 0; while (_local1 < _local5) { var _local3 = _local2[_local1].indexOf(i_animName); if ((_local3 == 0) && ((i_animName.length == _local2[_local1].length) || (i_animName.length == _local2[_local1].indexOf("[")))) { return(true); } _local1++; } return(false); } function Reverse() { m_LookDelay = null; m_HoldAnim = false; m_FrameTween.StopUpdates(); OnTweenComplete(); } function OnUpdate(i_forceComplete, i_deltaT) { if ((m_LookDelay != null) && (m_LookDelay > 0)) { m_LookDelay = m_LookDelay - i_deltaT; if (m_LookDelay <= 0) { if (m_CenterEyesOnRun) { m_Borb.LookAtCenter(); } else { m_Borb.LookTowardsDir(m_LookDir); } m_LookDelay = null; m_NeedsUpdate = false; } } return(super.OnUpdate(i_forceComplete)); } function OnTweenComplete() { m_FrameTween = null; if (m_HoldAnim) { if (m_HoldingCallback) { m_HoldingCallback(this); } } else if (m_ReverseOnComplete && (m_State == State_AnimForward)) { m_State = State_AnimReverse; var _local2 = s_headFrameLabels[m_Borb.__get__Color() - 1]; var _local4 = _local2[m_Name]; if ((_local4 - m_EmoteMc._currentframe) > 0) { m_FrameTween = new Core.CTween(m_EmoteMc, "_currentframe", null, m_EmoteMc._currentframe, _local4, (m_EmoteMc._currentframe - _local4) / m_Fps); m_FrameTween.onMotionFinished = mx.utils.Delegate.create(this, OnTweenComplete); } else { m_EmoteMc.gotoAndStop(_local4); } if (m_FrameTween == null) { OnComplete(); } } else if (m_LoopAnimation) { m_State = State_AnimForward; var _local2 = s_headFrameLabels[m_Borb.__get__Color() - 1]; var _local3 = _local2[m_Name]; var _local4 = _local2[m_Name + "End"]; m_FrameTween = new Core.CTween(m_EmoteMc, "_currentframe", null, _local3, _local4, (_local4 - _local3) / m_Fps); m_FrameTween.onMotionFinished = mx.utils.Delegate.create(this, OnTweenComplete); if (m_FrameTween == null) { OnComplete(); } } else { OnComplete(); } } function OnComplete() { super.OnComplete(); if ((m_FrameTween != null) && (m_FrameTween.m_IsPlaying)) { m_FrameTween.StopUpdates(); } if (m_HideEyes) { m_Borb.ToggleEyeVisibility(true); } m_EmoteMc.gotoAndStop(1); } static var s_BaseFps = 30; static var s_headFrameLabels = null; static var s_headFrameLabelNames = [["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sad[R]"], ["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sad[R]", "madNoDir[R]", "mad[D][R]"], ["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sad[R]"], ["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sad", "special"], ["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sad[R]", "mad[R]"], ["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sadNoDir[R]", "sad[D]"], ["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sad[R]", "flirt[R]"], ["default", "sleep[H][C]", "wake[C]", "blink", "hypnotized[H]", "drop", "happy[R]", "sad[R]", "mad[R]", "creepy[R]"], ["default"], ["default"], ["default"], ["default"], ["default"], ["default"], ["default"], ["default"], [], [], [], ["default", "smirk[R]", "angry[R]", "angry shifty[R]"], ["default", "smirk[R]", "angry[R]"], ["default", "smirk[R]", "angry[R]"], [], ["default", "drop"], [], [], ["default", "taunt", "attack[R]", "hurt", "die"], ["default", "blink", "idle", "attack", "taunt", "hurt", "die"], ["default", "taunt", "attack", "hurt", "die"], ["default", "attack[R]", "taunt", "hurt", "die"]]; static var s_directionalSuffixes = ["top left", "left", "bottom left", "top right", "right", "bottom right"]; static var State_AnimForward = 0; static var State_AnimReverse = 1; }
Symbol 50 MovieClip [__Packages.Oberon.MovieClipX] Frame 0
class Oberon.MovieClipX { function MovieClipX () { } static function get MovieStatus_NotCreatedYet() { return(0); } static function get MovieStatus_Loading() { return(1); } static function get MovieStatus_Loaded() { return(2); } static function get MovieStatus_NotExist() { return(3); } static function getMovieStatus(inMovieClip) { if (inMovieClip == undefined) { return(MovieStatus_NotCreatedYet); } if (inMovieClip._totalframes == 0) { return(MovieStatus_NotExist); } if (inMovieClip.getBytesLoaded() == inMovieClip.getBytesTotal()) { return(MovieStatus_Loaded); } return(MovieStatus_Loading); } static function GetChildClip(inClip) { return(GetChildClipWithName(inClip, null)); } static function GetChildClipWithName(inClip, symName) { var _local3 = null; for (var _local4 in inClip) { if ((symName == null) || (_local4 == symName)) { if (typeof(inClip[_local4]) == "movieclip") { _local3 = inClip[_local4]; } } } return(_local3); } static function Highlight(inClip) { if (Object(inClip).HighlightRed != undefined) { AddTransform(inClip, Object(inClip).HighlightRed, Object(inClip).HighlightGreen, Object(inClip).HighlightBlue); } else { AddTransform(inClip, 255, 50, 50); } } static function DeHighlight(inClip) { RemoveTransform(inClip); } static function SetHighlightColor(inClip, inRed, inGreen, inBlue) { Object(inClip).HighlightRed = inRed; Object(inClip).HighlightGreen = inGreen; Object(inClip).HighlightBlue = inBlue; } static function AddTransform(inClip, inRed, inGreen, inBlue) { var _local2 = new Color(inClip); var _local1 = _local2.getTransform(); _local1.rb = inRed; _local1.gb = inGreen; _local1.bb = inBlue; _local2.setTransform(_local1); } static function RemoveTransform(inClip) { var _local2 = new Color(inClip); var _local1 = _local2.getTransform(); _local1.rb = 0; _local1.gb = 0; _local1.bb = 0; _local2.setTransform(_local1); } static function getNextHighestDepth(inMovieClip) { var _local3 = -1; for (var _local4 in inMovieClip) { if (inMovieClip[_local4] instanceof MovieClip) { var _local1 = inMovieClip[_local4].getDepth(); if (((_local1 != undefined) && (_local1 >= 0)) && (_local1 > _local3)) { _local3 = _local1; } } } return(_local3 + 1); } static function GetAnimFrameLabels(i_mc, i_labels) { var _local7 = {}; var _local11 = i_mc._currentframe; var _local1 = new Array(i_labels.length); var _local4 = new Array(i_labels.length); var _local3 = 0; while (_local3 < i_labels.length) { i_mc.gotoAndStop(i_labels[_local3]); _local1[_local3] = i_mc._currentframe; _local4[_local3] = i_labels[_local3]; _local3++; } _local3 = 0; while (_local3 < _local1.length) { var _local6 = _local1[_local3]; var _local5 = _local3; var _local2 = _local3; while (_local2 < _local1.length) { if (_local1[_local2] < _local6) { _local5 = _local2; _local6 = _local1[_local2]; } _local2++; } if (_local5 != _local3) { var _local10 = String(_local4[_local5]); _local4[_local5] = _local4[_local3]; _local1[_local5] = _local1[_local3]; _local4[_local3] = _local10; _local1[_local3] = _local6; } _local3++; } _local3 = 0; while (_local3 < _local1.length) { _local7[String(_local4[_local3])] = _local1[_local3]; if ((_local3 + 1) < _local1.length) { _local7[String(_local4[_local3]) + "End"] = _local1[_local3 + 1] - 1; } else { _local7[String(_local4[_local3]) + "End"] = i_mc._totalframes; } _local3++; } i_mc.gotoAndStop(_local11); return(_local7); } }
Symbol 51 MovieClip [__Packages.CProcEyes] Frame 0
class CProcEyes extends CEyes { var _origLeftMcX, _origLeftMcY, _origRightMcX, _origRightMcY, MinX, MaxX, MinY, MaxY, _eyeWidth, _eyeHeight, _parent, _curXTweenPos, _curYTweenPos, _leftEyeMc, _rightEyeMc, _lookXTween, _lookYTween, _tgtDirection, LookCompleteCallback; function CProcEyes () { super(); _origLeftMcX = 0; _origLeftMcY = 0; _origRightMcX = 0; _origRightMcY = 0; MinX = 1; MaxX = 1; MinY = 1; MaxY = 1; _eyeWidth = null; _eyeHeight = null; } function onLoad() { super.onLoad(); _parent._parent._parent.OnEyesLoaded(this); _curXTweenPos = 0; _curYTweenPos = 0; _origLeftMcX = _leftEyeMc._x; _origLeftMcY = _leftEyeMc._y; _origRightMcX = _rightEyeMc._x; _origRightMcY = _rightEyeMc._y; if (_leftEyeMc != null) { _eyeWidth = _leftEyeMc._width; _eyeHeight = _leftEyeMc._height; } else if (_rightEyeMc != null) { _eyeWidth = _rightEyeMc._width; _eyeHeight = _rightEyeMc._height; } updateLookTowards(); } function IsInAnim() { return((_lookXTween != null) || (_lookYTween != null)); } function updateLookTowards() { var _local2 = Core.Vector2.CreateFromAngle((540 - _tgtDirection) % 360, 100); var _local7 = MinX * _eyeWidth; var _local5 = MaxX * _eyeWidth; if (_local2.X > _local5) { _local2.Y = _local2.Y * Math.abs(_local5 / _local2.X); _local2.X = _local5; } else if (_local2.X < _local7) { _local2.Y = _local2.Y * Math.abs(_local7 / _local2.X); _local2.X = _local7; } var _local6 = MinY * _eyeHeight; var _local4 = MaxY * _eyeHeight; if (_local2.Y > _local4) { _local2.X = _local2.X * Math.abs(_local4 / _local2.Y); _local2.Y = _local4; } else if (_local2.Y < _local6) { _local2.X = _local2.X * Math.abs(_local6 / _local2.Y); _local2.Y = _local6; } var _local3 = Math.max(Math.abs(_local2.X - _curXTweenPos), Math.abs(_local2.Y - _curYTweenPos)); if (_local2.X != _curXTweenPos) { if (_lookXTween == null) { _lookXTween = new Core.CTween(this, "_curXTweenPos", Core.CTween.DefaultMcTween, _curXTweenPos, _local2.X, (_local3 * CEyes.LookSpeed) / 20); _lookXTween.onMotionChanged = mx.utils.Delegate.create(this, onLookUpdateX); _lookXTween.onMotionFinished = mx.utils.Delegate.create(this, onLookComplete); } else { _lookXTween.continueTo(_local2.X, (_local3 * CEyes.LookSpeed) / 20); } } else if (_lookXTween != null) { _lookXTween.StopUpdates(); _lookXTween = null; } if (_local2.Y != _curYTweenPos) { if (_lookYTween == null) { _lookYTween = new Core.CTween(this, "_curYTweenPos", Core.CTween.DefaultMcTween, _curYTweenPos, _local2.Y, (_local3 * CEyes.LookSpeed) / 20); _lookYTween.onMotionChanged = mx.utils.Delegate.create(this, onLookUpdateY); _lookYTween.onMotionFinished = mx.utils.Delegate.create(this, onLookComplete); } else { _lookYTween.continueTo(_local2.Y, (_local3 * CEyes.LookSpeed) / 20); } } else if (_lookYTween != null) { _lookYTween.StopUpdates(); _lookYTween = null; } return((_lookXTween != null) || (_lookYTween != null)); } function onLookUpdateX() { _leftEyeMc._x = _curXTweenPos + _origLeftMcX; _rightEyeMc._x = _curXTweenPos + _origRightMcX; } function onLookUpdateY() { _leftEyeMc._y = _curYTweenPos + _origLeftMcY; _rightEyeMc._y = _curYTweenPos + _origRightMcY; } function onLookComplete() { if ((_lookXTween != null) && (!_lookXTween.m_IsPlaying)) { _lookXTween = null; } if ((_lookYTween != null) && (!_lookYTween.m_IsPlaying)) { _lookYTween = null; } if (((_lookXTween == null) && (_lookYTween == null)) && (LookCompleteCallback != null)) { LookCompleteCallback(this); } } }
Symbol 52 MovieClip [__Packages.CLevelInfo] Frame 0
class CLevelInfo { var TracerOn, HeadColors, HeadColorFreq, RandomHeadCounts, PowerupTypes, PowerupTypeFreq, CratePowerupTypes, CratePowerupTypeFreq, RandPowerupCounts, TileInfos, Mode, _xml, MusicTrack, DangerIncrements, LoseLevel; function CLevelInfo (inFileName) { TracerOn = false; HeadColors = []; HeadColorFreq = []; RandomHeadCounts = new Array(Constants.Snood_Count); PowerupTypes = []; PowerupTypeFreq = []; CratePowerupTypes = []; CratePowerupTypeFreq = []; RandPowerupCounts = new Array(Constants.PowerUp_Count); var _local2 = 0; while (_local2 < Constants.Snood_Count) { RandomHeadCounts[_local2] = 0; _local2++; } _local2 = 0; while (_local2 < Constants.PowerUp_Count) { RandPowerupCounts[_local2] = 0; _local2++; } if (inFileName != null) { LoadXml(inFileName); } } function get HeadCount() { return(HeadColors.length); } function get PowerUpCount() { return(PowerupTypes.length); } function Dispose() { } function cleanupTiles() { if (TileInfos != null) { var _local3 = 0; while (_local3 < TileInfos.length) { var _local2 = 0; while (_local2 < TileInfos[_local3].length) { delete TileInfos[_local3][_local2]; _local2++; } TileInfos[_local3] = null; delete TileInfos[_local3]; _local3++; } } TileInfos = null; } function resetAttr() { cleanupTiles(); LoadingXml = false; LoadCriticalFail = false; } function initTileArray() { var _local5 = Constants.BoardModeToMaxWidth(Mode); var _local4 = Constants.BoardModeToMaxHeight(Mode); TileInfos = Oberon.ArrayX.MakeTwoDimensionalArray(_local5, _local4); var _local3 = 0; while (_local3 < _local5) { var _local2 = 0; while (_local2 < _local4) { TileInfos[_local3][_local2] = new CLevelTileInfo(); _local2++; } _local3++; } } function LoadXml(inXmlFileName) { CDebug.WriteLine("CLevelInfo", "Loading " + inXmlFileName); resetAttr(); LoadingXml = true; _xml = new XML(); _xml.ignoreWhite = true; _xml.onLoad = mx.utils.Delegate.create(this, parseXml); _xml.load(inXmlFileName); } function parseXml(i_success) { if (!i_success) { CDebug.Assert(false, "CLevelInfo.parseXml()", "xml failed to load! " + Oberon.XmlX.getXmlStatusDesc(_xml.status), true); LoadCriticalFail = true; return(undefined); } CDebug.WriteLine("CLevelInfo", "Parsing XML level"); if (_xml.status != Oberon.XmlX.__get__XmlStatus_Success()) { CDebug.Assert(false, this, "XML load/parse failed: " + Oberon.XmlX.getXmlStatusDesc(_xml.status), true); } var _local18 = _xml; var _local16 = _local18.firstChild; var _local7 = _xml.firstChild.firstChild; if (_local16.attributes.TracerOn != undefined) { TracerOn = String(_local16.attributes.TracerOn) == "true"; } if (_local16.attributes.MinBoundsX != undefined) { MinBoundsX = parseInt(_local16.attributes.MinBoundsX); } if (_local16.attributes.MinBoundsY != undefined) { MinBoundsY = parseInt(_local16.attributes.MinBoundsY); } if (_local16.attributes.MaxBoundsX != undefined) { MaxBoundsX = parseInt(_local16.attributes.MaxBoundsX); } if (_local16.attributes.MaxBoundsY != undefined) { MaxBoundsY = parseInt(_local16.attributes.MaxBoundsY); } if (_local16.attributes.Background != undefined) { Background = String(_local16.attributes.Background); } if ((MinBoundsX == 0) && (MaxBoundsX == 0)) { CDebug.WriteErr("CLevelInfo.parseXml()", "Min and Max X bounds set to 0!"); MinBoundsX = null; MaxBoundsX = null; } if ((MinBoundsY == 0) && (MaxBoundsY == 0)) { CDebug.WriteErr("CLevelInfo.parseXml()", "Min and Max Y bounds set to 0!"); MinBoundsY = null; MaxBoundsY = null; } CDebug.Assert(_local18.hasChildNodes(), this, "XML Doc is empty (or doesn't exist).", true); CDebug.Assert(_local18.firstChild.nodeName == "LevelInfo", this, ("First node name is invalid ('" + _local18.firstChild.nodeName) + "'). Expected 'LevelInfo'."); CDebug.Assert(_local16.attributes.Mode != undefined, this, "Mode attribute of LevelInfo not defined"); Mode = Constants.StringToBoardMode(String(_local16.attributes.Mode)); Name = String(_local16.attributes.Name); trace((("Name:" + Name) + ",") + Mode); MusicTrack = _local16.attributes.MusicTrack; CDebug.Assert(_local16.attributes.DangerIncrements != undefined, "CLevelInfo", "DangerIncrements undefined in level " + Name); CDebug.Assert(_local16.attributes.LoseLevel != undefined, "CLevelInfo", "LoseLevel undefined in level " + Name); DangerIncrements = parseInt(_local16.attributes.DangerIncrements); LoseLevel = parseInt(_local16.attributes.LoseLevel); if (_local16.attributes.NumLumps != undefined) { var _local17 = parseInt(_local16.attributes.NumLumps); while (_local17 > 0) { RandomHeadCounts[Oberon.MathX.randRange(Constants.Snood_LumpStart, Constants.Snood_LumpEnd)]++; _local17--; } CDebug.AssertWarn(_local16.attributes.NumLumps == undefined, "CLevelInfo.parseXml", "NumLumps is deprecated, use head manifest"); } if (_local16.attributes.NumDriftwood != undefined) { RandomHeadCounts[Constants.Snood_Crate] = parseInt(_local16.attributes.NumDriftwood); CDebug.AssertWarn(_local16.attributes.NumDriftwood == undefined, "CLevelInfo.parseXml", "NumLumps is deprecated, use head manifest"); } initTileArray(); while (_local7 != null) { if (_local7.nodeName == "TileSet") { var _local2 = _local7.firstChild; while (_local2 != null) { if (_local2.nodeName != "Tile") { CDebug.Assert(false, "CLevelInfo", "Unknown xml node encountered: " + _local2.nodeName); } var _local12 = parseInt(_local2.attributes.Col); var _local8 = parseInt(_local2.attributes.Row); var _local4 = CLevelTileInfo(TileInfos[_local12][_local8]); _local4.Empty = false; if ((_local2.attributes.Color == undefined) || (String(_local2.attributes.Color) == "None")) { _local4.RandomColor = true; } else { _local4.RandomColor = false; _local4.Color = Constants.GetSnoodByString(String(_local2.attributes.Color)); CDebug.Assert(_local4.Color != null, "CLevelInfo", (((("Invalid Color in XML : " + _local2.attributes.Color) + ", tile ") + _local12) + ",") + _local8); } if ((_local2.attributes.NoHook != undefined) && (_local2.attributes.NoHook == "true")) { _local4.NoHook = true; } if (_local2.attributes.PowerUp != undefined) { _local4.PowerUp = Constants.GetPowerUpByString(String(_local2.attributes.PowerUp)); CDebug.Assert(_local4.PowerUp != null, "CLevelInfo", (((((("Invalid PowerUp in XML : " + _local2.attributes.Color) + ",") + _local2.attributes.PowerUp) + ", tile ") + _local12) + ",") + _local8); } OrigBorbCount++; _local2 = _local2.nextSibling; } } else if (_local7.nodeName == "HeadSet") { var _local3 = _local7.firstChild; while (_local3 != null) { if (_local3.nodeName == "Head") { var _local9 = String(_local3.attributes.Type); var _local6 = Constants.GetSnoodByString(_local9); var _local11 = parseInt(_local3.attributes.Freq); if (_local3.attributes.RandCount != undefined) { RandomHeadCounts[_local6] = parseInt(_local3.attributes.RandCount); } if (_local3.attributes.Freq == undefined) { _local11 = 0; } CDebug.Assert((_local9 != null) && (_local6 != null), "CLevelInfo", "Invalid head type in XML : " + _local9); if (!Oberon.ArrayX.Contains(HeadColors, _local6)) { HeadColors.push(_local6); HeadColorFreq.push((isNaN(_local11) ? null : (_local11))); } } else { CDebug.WriteErr("Unexpected head xml node encountered: " + _local3.nodeName); } _local3 = _local3.nextSibling; } var _local10 = []; var _local15 = 0; while (_local15 < Constants.Snood_HeadCount) { _local10.push(_local15 + 1); _local15++; } _local15 = 0; while (_local15 < HeadColors.length) { if (HeadColors[_local15] <= Constants.Snood_HeadCount) { var _local13 = Oberon.MathX.randRange(0, _local10.length - 1); HeadColors[_local15] = _local10[_local13]; _local10.splice(_local13, 1); } _local15++; } } else if (_local7.nodeName == "OrbPowerupSet") { var _local3 = _local7.firstChild; while (_local3 != null) { if (_local3.nodeName == "OrbPowerup") { var _local9 = String(_local3.attributes.Type); var _local5 = Constants.GetPowerUpByString(_local9); var _local11 = parseInt(_local3.attributes.Freq); if (_local3.attributes.Freq == undefined) { _local11 = 0; } if (_local3.attributes.CrateFreq != undefined) { var _local14 = parseInt(_local3.attributes.CrateFreq); CDebug.Assert(!Oberon.ArrayX.Contains(CratePowerupTypes, _local5), "CLevelInfo.parseXml()", "Duplicate crate frequency in powerup " + _local5); CratePowerupTypes.push(_local5); CratePowerupTypeFreq.push(_local14); } if (_local3.attributes.RandCount != undefined) { RandPowerupCounts[_local5] = parseInt(_local3.attributes.RandCount); } CDebug.Assert((_local9 != null) && (_local5 != null), "CLevelInfo", "Invalid powerup type in XML : " + _local9); if (!Oberon.ArrayX.Contains(PowerupTypes, _local5)) { PowerupTypes.push(_local5); PowerupTypeFreq.push((isNaN(_local11) ? null : _local11)); } } else { CDebug.WriteErr("Unexpected powerup xml node encountered: " + _local3.nodeName); } _local3 = _local3.nextSibling; } } else { CDebug.Assert(false, "CLevelInfo", "Unknown node encountered: " + _local7.nodeName); } _local7 = _local7.nextSibling; } distributeFreq(HeadColorFreq, HeadColors, true); distributeFreq(PowerupTypeFreq, PowerupTypes, true); distributeFreq(CratePowerupTypeFreq, CratePowerupTypes, false); if (CratePowerupTypes.length == 0) { var _local15 = 0; while (_local15 < Constants.AllCratePowerUps.length) { CratePowerupTypes.push(Constants.AllCratePowerUps[_local15]); CratePowerupTypeFreq.push(10); _local15++; } } CDebug.WriteLine("CLevelInfo", "Completed level parse"); LoadingXml = false; } function RemoveColor(i_color) { trace(("CLevelInfo.RemoveColor( " + Constants.GetSnoodByNumber(i_color)) + " )"); var _local2 = Oberon.ArrayX.IndexOf(HeadColors, i_color); if (_local2 != -1) { HeadColors.splice(_local2, 1); HeadColorFreq.splice(_local2, 1); } distributeFreq(HeadColorFreq, HeadColors, true); } function IsBorbActive(i_color) { var _local2 = 0; while (_local2 < HeadColors.length) { if (HeadColors[_local2] == i_color) { return(true); } _local2++; } } function distributeFreq(inFreqArray, inFreqTypeArray, inDoRedistribute) { var _local3 = 0; var _local5 = 0; var _local2 = 0; while (_local2 < inFreqArray.length) { if (inFreqArray[_local2] != null) { _local3 = _local3 + inFreqArray[_local2]; } else { _local5++; } _local2++; } if (inDoRedistribute) { CDebug.Assert((_local3 != 100) || (_local5 == 0), "CLevelInfo", "Frequencies are at 100%, no room to distribute frequencies"); if (_local5 > 0) { var _local7 = Math.round(((100 - _local3) / _local5) * 10) / 10; _local2 = 0; while (_local2 < inFreqArray.length) { if (inFreqArray[_local2] == null) { inFreqArray[_local2] = _local7; } _local2++; } } else if ((_local3 != 100) && (_local3 != 0)) { var _local6 = 100 / _local3; _local2 = 0; while (_local2 < inFreqArray.length) { var _local4 = inFreqArray[_local2]; inFreqArray[_local2] = inFreqArray[_local2] * _local6; inFreqArray[_local2] = Math.round(inFreqArray[_local2] * 10) / 10; _local2++; } } } } var Name = "<NotNamed>"; var LoadingXml = false; var LoadCriticalFail = false; var HeadFreq = 100; var MinBoundsX = null; var MinBoundsY = null; var MaxBoundsX = null; var MaxBoundsY = null; var Background = "shore"; var OrigBorbCount = 0; }
Symbol 53 MovieClip [__Packages.CLevelTileInfo] Frame 0
class CLevelTileInfo { function CLevelTileInfo (inEmpty, inColor, inPowerUp) { if (inEmpty != undefined) { Empty = inEmpty; } if (inColor != undefined) { Color = inColor; } if (inPowerUp != undefined) { PowerUp = inPowerUp; } } var Empty = true; var RandomColor = true; var Color = Constants.Snood_Mary; var PowerUp = Constants.PowerUp_None; var NoHook = false; }
Symbol 54 MovieClip [__Packages.CBorbInfo] Frame 0
class CBorbInfo { var Color, PowerUp, Orb; function CBorbInfo (i_color, i_powerUp, i_ignore, i_orb) { Color = ((i_color != undefined) ? (i_color) : (Constants.Snood_Frank)); PowerUp = ((i_powerUp != undefined) ? (i_powerUp) : (Constants.PowerUp_None)); Orb = ((i_orb != undefined) ? (i_orb) : false); } function Clone() { return(new CBorbInfo(Color, PowerUp, null, Orb)); } function ToString() { return(String((((Constants.GetSnoodByNumber(Color) + ",") + Constants.GetPowerUpByNumber(PowerUp)) + ",") + (Orb ? "orb" : "head"))); } function Equals(i_info) { return(((Color == i_info.Color) && (PowerUp == i_info.PowerUp)) && (Orb == i_info.Orb)); } }
Symbol 55 MovieClip [__Packages.Effects.CEffect_BorbDropAnim] Frame 0
class Effects.CEffect_BorbDropAnim extends CEffect { var m_NeedsUpdate, m_HurryMod, m_Borb, m_State, m_Dest, m_xTween, m_yTween, m_bReadyForDelete; function CEffect_BorbDropAnim () { super(CEffect.Type_BorbDropAnim); m_NeedsUpdate = false; m_HurryMod = null; } static function Reset() { m_QueueDropDelay = 0; m_CannonDropDelay = 0; } static function AreEffectsActive(i_type) { if (i_type != null) { return(s_Active[i_type]); } var _local2 = 0; var _local1 = 0; while (_local1 < Dest_Count) { _local2 = _local2 + s_Active[_local1]; _local1++; } return(_local2); } static function OnPlayUpdate(i_deltaT) { if (m_QueueDropDelay > 0) { m_QueueDropDelay = ((m_QueueDropDelay > i_deltaT) ? (m_QueueDropDelay - i_deltaT) : 0); } if (m_CannonDropDelay > 0) { m_CannonDropDelay = ((m_CannonDropDelay > i_deltaT) ? (m_CannonDropDelay - i_deltaT) : 0); } } static function StopAllEffects() { var _local1 = 0; while (_local1 < Dest_Count) { Effects.CEffect_BorbDropAnim(s_Active[_local1]).Kill(); _local1++; } } function OnInit(i_borb, i_destType, i_durMod, i_delayMod) { m_Borb = i_borb; m_State = State_Dropping; m_Dest = i_destType; var _local3 = ((i_delayMod != null) ? (i_delayMod) : 0); var _local6 = m_Borb != null; if (_local6) { m_Borb.FinishTweens(); var _local2 = CGame.TileSet; CGame.TileSet.MoveToTop(i_borb); if (Effects.CEffect_EmoteAnim.HasAnimation(m_Borb.__get__Color(), "drop")) { m_Borb.PlayEmoteAnim("drop", true, CEyes.Dir_Down); } switch (m_Dest) { case Dest_OffBoard : var _local4 = Constants.LateralVelocity * (1 - (Math.random() * 2)); if (((_local4 + m_Borb._x) > (_local2._x + _local2._width)) || ((_local4 + m_Borb._x) < _local2._x)) { _local4 = _local4 * -1; } _local4 = _local4 + i_borb._x; m_xTween = new Core.CTween(m_Borb, "_x", null, m_Borb._x, _local4, s_DropOffBoardBaseDur + i_durMod, true, _local3); m_yTween = new Core.CTween(m_Borb, "_y", DropIn, m_Borb._y, (Constants.GameResY + _local2.m_SnoodHeight) - _local2._y, s_DropOffBoardBaseDur + i_durMod, true, _local3); break; case Dest_ToQueue : _local3 = _local3 + m_QueueDropDelay; _local4 = Constants.LateralVelocity * (1 - (Math.random() * 2)); if (((_local4 + m_Borb._x) > (_local2._x + _local2._width)) || ((_local4 + m_Borb._x) < _local2._x)) { _local4 = _local4 * -1; } _local4 = _local4 + m_Borb._x; m_xTween = new Core.CTween(m_Borb, "_x", null, m_Borb._x, _local4, s_FallBaseDur + i_durMod, true, _local3); m_yTween = new Core.CTween(m_Borb, "_y", DropIn, m_Borb._y, ((Constants.GameResY - _local2.m_SnoodHeight) - _local2._y) - s_FallToQueueBufferDist, s_FallBaseDur + i_durMod, true, _local3); if (m_HurryMod != null) { m_xTween.Scale(1 / m_HurryMod); m_yTween.Scale(1 / m_HurryMod); } m_QueueDropDelay = m_QueueDropDelay + Level.m_BaseIncrDropSec; break; case Dest_ToCannon : var _local7 = CCoord.ToLocal(CGame.Board.m_Launcher.m_CannonBorbMarker, CGame.TileSet); _local3 = _local3 + m_CannonDropDelay; m_xTween = new Core.CTween(m_Borb, "_x", null, m_Borb._x, _local7.X, s_CannonFallBaseDur + i_durMod, true, _local3); m_yTween = new Core.CTween(m_Borb, "_y", DropIn, m_Borb._y, _local7.Y, s_CannonFallBaseDur + i_durMod, true, _local3); m_CannonDropDelay = m_CannonDropDelay + Level.m_PowerupIncrDropSec; } var _local8 = mx.utils.Delegate.create(this, OnTweenComplete); m_xTween.onMotionFinished = _local8; m_yTween.onMotionFinished = _local8; s_Active[m_Dest]++; } if (_local6) { if (m_Borb.m_xSlot != null) { CGame.TileSet.SetTile(m_Borb.m_xSlot, m_Borb.m_ySlot, null); m_Borb.__set__State(SnoodHead.State_Idle); } } return(_local6); } static function GetCount(i_dest) { return(s_Active[i_dest]); } function OnTweenComplete() { if ((!m_xTween.m_IsPlaying) && (!m_yTween.m_IsPlaying)) { if (m_Dest == Dest_ToQueue) { if (m_State == State_Dropping) { var _local5 = CGame.Board.GetBoundingClip(); m_Borb.LookTowardsDir(CEyes.Dir_Right); m_Borb.__set__Size(SnoodHead.LauncherSnoodSize); var _local3 = CGame.Board.m_Queue; var _local2 = CCoord.ToLocal(_local3, CGame.TileSet, _local3.GetFallInMarkerCoord()); m_xTween = new Core.CTween(m_Borb, "_x", mx.transitions.easing.None.easeNone, m_Borb._x, _local2.X, s_FlyToQueueDuration, true); m_yTween = new Core.CTween(m_Borb, "_y", BounceToQueueEaseInLong, m_Borb._y, _local2.Y, s_FlyToQueueDuration, true); if (m_HurryMod) { m_xTween.Scale(1 / m_HurryMod); m_yTween.Scale(1 / m_HurryMod); } var _local4 = mx.utils.Delegate.create(this, OnTweenComplete); m_xTween.onMotionFinished = _local4; m_yTween.onMotionFinished = _local4; m_State = State_FlyingToQueue; } else { OnComplete(); } } else { OnComplete(); } } } function Kill() { if (m_xTween.m_IsPlaying) { m_xTween.StopUpdates(); m_xTween = null; } if (m_yTween.m_IsPlaying) { m_yTween.StopUpdates(); m_yTween = null; } s_Active[m_Dest]--; m_Dest = null; m_bReadyForDelete = true; } function OnComplete() { super.OnComplete(); m_Borb.KillEmoteAnim(); if (m_xTween.m_IsPlaying) { m_xTween.Finish(); } if (m_yTween.m_IsPlaying) { m_yTween.Finish(); } if (m_Dest != null) { switch (m_Dest) { case Dest_OffBoard : SnoodHead.ReturnToPool(m_Borb); break; case Dest_ToQueue : CGame.Board.m_Queue.InsertBorbIntoQueue(m_Borb); break; case Dest_ToCannon : CGame.Board.InsertBorbAtCannon(SnoodHead(m_Borb).ToInfo()); SnoodHead.ReturnToPool(m_Borb); } s_Active[m_Dest]--; } } function Hurry(i_mod) { if (m_HurryMod == null) { m_HurryMod = i_mod; if (m_Dest == Dest_ToQueue) { if (m_State == State_FlyingToQueue) { m_xTween.Scale(1 / m_HurryMod); m_yTween.Scale(1 / m_HurryMod); } else if (m_State == State_Dropping) { m_xTween.Scale(1 / m_HurryMod); m_yTween.Scale(1 / m_HurryMod); } } } } static function DropIn(t, b, c, d) { var _local1 = t / d; return((((c * _local1) * _local1) * _local1) + b); } static function BounceToQueueEaseInLong(t, b, c, d) { t = d - t; t = t / d; if (t < 0.3636) { return((c - (((c * 7.5625) * t) * t)) + b); } if (t < 0.7273) { t = t - 0.5454; return((c - (c * (((7.5625 * t) * t) + 0.75))) + b); } if (t < 0.9091) { t = t - 0.8182; return((c - (c * (((7.5625 * t) * t) + 0.9375))) + b); } t = t - 0.9545; return((c - (c * (((7.5625 * t) * t) + 0.9844))) + b); } static var s_DropOffBoardBaseDur = 0.6; static var s_FallBaseDur = 0; static var s_CannonFallBaseDur = 0; static var s_FallToQueueBufferDist = 24; static var s_FlyToQueueDuration = 1.5; static var Dest_OffBoard = 0; static var Dest_ToQueue = 1; static var Dest_ToCannon = 2; static var Dest_Count = 3; static var State_Dropping = 0; static var State_FlyingToQueue = 1; static var m_QueueDropDelay = 0; static var m_CannonDropDelay = 0; static var s_roundFunc = Math.round; static var s_Active = [0, 0, 0]; }
Symbol 56 MovieClip [__Packages.CTileSet] Frame 0
class CTileSet extends MovieClip { var m_activeTweens, m_OrigCoord, _x, _y, m_bbox, m_activeBorbCount, m_dirty, m_randDistDirty, m_OnlyBlockersRemain, m_borbRandDist, BoundingClip, _bounds, m_scareAnim, m_LastAttached, Tiles, m_activeBorbs, m_SnoodSize, m_SnoodScale, m_SnoodWidth, m_SnoodHeight, Rows, Cols, Bar, BarShaft, CachedGridCoords, DEBUGTXT, getNextHighestDepth, createEmptyMovieClip, NeighborTiles, attachMovie, m_borbColorCounts; function CTileSet () { super(); m_activeTweens = []; m_OrigCoord = new CCoord(_x, _y); m_bbox = new Core.COrientedBox(); m_activeBorbCount = 0; m_boundingBoxNeedsUpdate = true; CGame.TileSet = this; m_dirty = true; m_randDistDirty = true; m_nextCannonScareAnim = s_CannonScareAnimIdle; m_OnlyBlockersRemain = false; m_nextReboundTrace = s_ReboundTraceIdle; resetColorCounts(); m_borbRandDist = new Array(Constants.Snood_HeadCount); } function BoardModeToOffset(i_mode) { return(new CCoord(s_OffsetsX[i_mode - 1], s_OffsetsY[i_mode - 1])); } function onLoad() { BoundingClip = _bounds; CDebug.Assert(BoundingClip != null, this, "Couldn't find bounds"); BoundingClip._visible = false; } function Dispose() { if (m_scareAnim != null) { m_scareAnim.Finish(); } SnoodHead.CleanupAllSnoods(); } function OnXmlLoaded() { m_LastAttached = GetCenterCoord(); } function InitTiles(i_tiles, i_noResetActive) { Tiles = i_tiles; Level.m_BoardSpaces = i_tiles; if ((i_noResetActive == undefined) || (!i_noResetActive)) { m_activeBorbs = new Array(Tiles.length); m_activeBorbCount = 0; resetColorCounts(); } } function StopAnimations() { SnoodHead.StopAllBoardMoveToTweens(); CGame.EffectMgr.KillAllEffectsOfType(CEffect.Type_CannonScareAnim); } function UpdateBoundingClipWithLevel(i_levelInfo) { var _local3 = false; if (i_levelInfo.MinBoundsX != null) { BoundingClip._x = i_levelInfo.MinBoundsX; if (i_levelInfo.MaxBoundsX != null) { BoundingClip._width = i_levelInfo.MaxBoundsX - i_levelInfo.MinBoundsX; } else { BoundingClip._width = BoundingClip._width - i_levelInfo.MinBoundsX; } _local3 = true; } else if (i_levelInfo.MaxBoundsX != null) { BoundingClip._width = i_levelInfo.MaxBoundsX - BoundingClip._x; _local3 = true; } if (i_levelInfo.MinBoundsY != null) { BoundingClip._y = i_levelInfo.MinBoundsY; if (i_levelInfo.MaxBoundsY != null) { BoundingClip._height = i_levelInfo.MaxBoundsY - i_levelInfo.MinBoundsY; } else { BoundingClip._height = BoundingClip._height - i_levelInfo.MinBoundsY; } _local3 = true; } else if (i_levelInfo.MaxBoundsY != null) { BoundingClip._height = i_levelInfo.MaxBoundsY - BoundingClip._y; _local3 = true; } if (_local3) { ToggleBounds(); } } function IsPlaying() { return(State == State_Playing); } function IsBusy() { return(!IsPlaying()); } function Init() { m_SnoodSize = SnoodHead.BoardModeToSnoodSize(GameState.__get__CurrentGameMode()); m_SnoodScale = SnoodHead.SizeToScale(m_SnoodSize); m_SnoodWidth = SnoodHead.SizeToGridWidth(m_SnoodSize); m_SnoodHeight = SnoodHead.SizeToGridHeight(m_SnoodSize); Level.m_SnoodWidth = m_SnoodWidth; Level.m_SnoodHeight = m_SnoodHeight; SnoodHead.CreateSnoodHeadPool(this, m_headStartDepth, (CBoard.G.m_CurLevelInfo.OrigBorbCount + CBoard.G.m_CurLevelInfo.DangerIncrements) + Constants.BorbPoolBufferSize, m_SnoodSize); Rows = Constants.BoardModeToMaxHeight(GameState.__get__CurrentGameMode()); Cols = Constants.BoardModeToMaxWidth(GameState.__get__CurrentGameMode()); Level.m_BoardColumns = Cols; Level.m_BoardRows = Rows; UpdateBoundingClipWithLevel(CGame.Board.m_CurLevelInfo); var _local4 = BoardModeToOffset(GameState.__get__CurrentGameMode()); _x = _x + _local4.X; _y = _y + _local4.Y; BoundingClip._x = BoundingClip._x - _local4.X; BoundingClip._y = BoundingClip._y - _local4.Y; Bar._x = Bar._x - _local4.X; Bar._y = Bar._y - _local4.Y; BarShaft._x = BarShaft._x - _local4.X; BarShaft._y = BarShaft._y - _local4.Y; CachedGridCoords = new Array(Rows * Cols); var _local3 = 0; while (_local3 < Cols) { var _local2 = 0; while (_local2 < Rows) { CachedGridCoords[(_local3 * Rows) + _local2] = new CCoord(Math.round(m_SnoodWidth * ((0.5 + (0.5 * (_local2 % 2))) + _local3)), Math.round(m_SnoodHeight * (0.5 + _local2))); _local2++; } _local3++; } m_OrigCoord = new CCoord(_x, _y); } function UpdateBoundingBox(i_forceImmediate) { m_boundingBoxNeedsUpdate = true; if (i_forceImmediate) { DoUpdateBoundingBox(); } } function DoUpdateBoundingBox() { if (m_boundingBoxNeedsUpdate) { var _local8 = 10000000 /* 0x989680 */; var _local9 = 10000000 /* 0x989680 */; var _local7 = -10000000; var _local6 = -10000000; var _local5 = 0; while (_local5 < Rows) { var _local4 = 0; while (_local4 < Cols) { if (Tiles[(_local4 * Rows) + _local5] != undefined) { var _local3 = m_SnoodWidth * ((0.5 + (0.5 * (_local5 % 2))) + _local4); var _local2 = m_SnoodHeight * (0.5 + _local5); if (_local3 < _local8) { _local8 = _local3; } if (_local2 < _local9) { _local9 = _local2; } if (_local3 > _local7) { _local7 = _local3; } if (_local2 > _local6) { _local6 = _local2; } } _local4++; } _local5++; } if (_local8 != 10000000) { _local8 = _local8 + _x; _local7 = _local7 + _x; _local9 = _local9 + _y; _local6 = _local6 + _y; _local8 = _local8 - (m_SnoodWidth * s_BBClearanceX); _local7 = _local7 + (m_SnoodWidth * s_BBClearanceX); _local9 = _local9 - (m_SnoodHeight * s_BBClearanceY); _local6 = _local6 + (m_SnoodHeight * s_BBClearanceY); var _local11 = (_local7 + _local8) / 2; var _local10 = (_local6 + _local9) / 2; m_bbox.SetCenter(_local11, _local10); m_bbox.SetExtents(_local7 - _local11, _local6 - _local10); m_bbox.SetAxes(1, 0, 0, 1); } else { m_bbox.SetCenter(0, 0); m_bbox.SetExtents(0, 0); m_bbox.SetAxes(0, 0, 0, 0); } m_boundingBoxNeedsUpdate = false; } } function OnPlayUpdate(i_deltaT) { updateIfDirty(); if (State == State_Playing) { m_nextCannonScareAnim = m_nextCannonScareAnim - i_deltaT; if (m_nextCannonScareAnim <= 0) { if (m_scareAnim != null) { m_scareAnim.Finish(); } m_scareAnim = Effects.CEffect_CannonScareAnim(CEffect.CreateEffect(CEffect.Type_CannonScareAnim)); if (m_scareAnim.OnInit()) { CGame.EffectMgr.AddEffectToActiveList(m_scareAnim); } m_nextCannonScareAnim = s_CannonScareAnimIdle; } m_nextReboundTrace = m_nextReboundTrace - i_deltaT; if (m_nextReboundTrace <= 0) { CBoard.G.m_Launcher.TraceShot(CGame.Board.m_Launcher.GetShowTracer(), true, new Array()); m_nextReboundTrace = 10000; } } } function ResetNextCannonScareAnim() { m_nextCannonScareAnim = s_CannonScareAnimIdle; } function ResetReboundTraceIdle() { m_nextReboundTrace = s_ReboundTraceIdle; } function ResetCannonScareAnim() { if (m_scareAnim != null) { m_scareAnim.Finish(); } m_nextCannonScareAnim = s_CannonScareAnimIdle; } function ToggleBounds() { BoundingClip._visible = !BoundingClip._visible; } function IsTweenActive() { var _local2 = 0; while (_local2 < m_activeTweens.length) { if (Core.CTween(m_activeTweens[_local2]).m_IsPlaying) { return(true); } _local2++; } return(false); } function CheckAndUpdateForLoss() { var _local5 = false; var _local4 = 0; while (_local4 < Rows) { var _local3 = 0; while (_local3 < Cols) { var _local2 = SnoodHead(Tiles[(_local3 * Rows) + _local4]); if (_local2 != null) { if ((_local4 + Level.m_BoardLevel) >= Level.m_LoseLevel) { if (_local2.__get__Color() <= Constants.Snood_HeadCount) { _local5 = true; Level.m_LosePieces.push(_local2); } else { _local2.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard); Level.TryDropSnoods(); } } } _local3++; } _local4++; } return(_local5); } function DbgShowAllSlotTypes(i_enabled) { if (DEBUGTXT != null) { DEBUGTXT.removeMovieClip(); DEBUGTXT = null; } if (!i_enabled) { return(undefined); } var _local10 = getNextHighestDepth(); createEmptyMovieClip("DEBUGTXT" + _local10, _local10); var _local6 = this["DEBUGTXT" + _local10]; DEBUGTXT = _local6; _local6.lineStyle(3, 16777215); var _local5 = 0; while (_local5 < Cols) { var _local9 = (((_local5 % 2) == 0) ? "" : " "); var _local3 = 0; while (_local3 < Rows) { var _local2 = new CCoord(GetGridCoords(_local5, _local3).X - (m_SnoodWidth / 2), GetGridCoords(_local5, _local3).Y - (m_SnoodHeight / 2)); _local6.moveTo(_local2.X, _local2.Y); _local6.lineTo(_local2.X + Level.m_SnoodWidth, _local2.Y); _local6.lineTo(_local2.X + Level.m_SnoodWidth, _local2.Y + Level.m_SnoodHeight); _local6.lineTo(_local2.X, _local2.Y + Level.m_SnoodHeight); _local6.lineTo(_local2.X, _local2.Y); var _local4 = ""; if (CGame.Board.IsRound()) { _local4 = (Level.isValidCicleLocation(_local5, _local3) ? "+" : "-"); } var _local8; var _local7 = GetTile(_local5, _local3); if (_local7 == undefined) { _local8 = CDebug.DrawTextOnMovie(_local6, "E\n" + _local4); _local9 = _local9 + ((" " + _local4) + "E "); } else if (_local7 == -1) { _local9 = _local9 + (_local4 + "EM "); _local8 = CDebug.DrawTextOnMovie(_local6, "EM\n" + _local4); } else { _local9 = _local9 + (((((SnoodHead(_local7).__get__Color() < 10) ? " " : "") + _local4) + SnoodHead(_local7).__get__Color()) + " "); _local8 = CDebug.DrawTextOnMovie(_local6, String((Constants.GetSnoodByNumber(SnoodHead(_local7).__get__Color()) + newline) + _local4)); } _local8._x = GetGridCoords(_local5, _local3).X - 10; _local8._y = GetGridCoords(_local5, _local3).Y - 10; _local3++; } trace(_local9); _local5++; } } function SetTile(i_x, i_y, i_head) { CDebug.Assert((i_x != null) && (i_y != null), "CTileSet.SetTile()", "x or y is null"); if (i_x == null) { return(undefined); } if (i_head != null) { if (Tiles[(i_x * Rows) + i_y] != null) { i_head.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard, 0); } else { m_dirty = true; m_randDistDirty = true; var _local7 = i_head.__get__Color(); Tiles[(i_x * Rows) + i_y] = i_head; i_head.__set__State(SnoodHead.State_OnBoard); i_head.m_ActiveHeadPos = m_activeBorbCount; m_activeBorbs[m_activeBorbCount] = i_head; m_activeBorbCount++; UpdateColorCount(_local7, 1); i_head.m_xSlot = i_x; i_head.m_ySlot = i_y; } } else { var _local2 = SnoodHead(Tiles[(i_x * Rows) + i_y]); if (_local2 == null) { CDebug.WriteErr("CTileSet.SetTile()", (("Attempting to nullify unoccupied tile : " + i_x) + ",") + i_y); } else { m_dirty = true; m_randDistDirty = true; Tiles[(i_x * Rows) + i_y] = undefined; var _local7 = _local2.__get__Color(); var _local6 = _local2.m_ActiveHeadPos; _local2.m_ActiveHeadPos = null; CDebug.Assert((_local2.m_xSlot == i_x) && (_local2.m_ySlot == i_y), "CTileSet.SetTile()", (((((("Borb x,y does not match slot " + i_x) + ",") + i_y) + " : ") + _local2.m_xSlot) + ",") + _local2.m_ySlot); _local2.m_xSlot = null; _local2.m_ySlot = null; if (_local6 == null) { CDebug.WriteErr("CTileSet.SetTile()", "Remove head was not set by SetTile"); } else { m_activeBorbCount--; if ((m_activeBorbCount > 0) && (_local6 < m_activeBorbCount)) { m_activeBorbs[_local6] = m_activeBorbs[m_activeBorbCount]; m_activeBorbs[_local6].m_ActiveHeadPos = _local6; } else { m_activeBorbs[_local6] = null; } } UpdateColorCount(_local7, -1); Level.m_InvalidatedSpots.push((i_x * Rows) + i_y); } } } function GetActiveBorbsFixedArray() { return(m_activeBorbs); } function GetActiveBorbsCount() { return(m_activeBorbCount); } function GetGridCoords(i_xSlot, i_ySlot, i_useBoardCoord) { if (i_useBoardCoord) { var _local2 = CachedGridCoords[(i_xSlot * Rows) + i_ySlot]; return(new CCoord(_local2.X + _x, _local2.Y + _y)); } return(CachedGridCoords[(i_xSlot * Rows) + i_ySlot]); } function PixelPosToGridCell(x, y) { var _local2 = Math.floor((y - _y) / m_SnoodHeight); var _local3 = Math.floor(((x - _x) / m_SnoodWidth) - (0.5 * (_local2 % 2))); return(new CCoord(Math.min(((_local3 > 0) ? (_local3) : 0), Cols - 1), Math.min(((_local2 > 0) ? (_local2) : 0), Rows - 1))); } function GetGridXCoord(i_xSlot, i_ySlot) { return(GetGridCoords(i_xSlot, i_ySlot).X); } function GetGridYCoord(i_xSlot, i_ySlot) { return(GetGridCoords(i_xSlot, i_ySlot).Y); } function SetTileCoord(i_coord, i_head) { SetTile(i_coord.X, i_coord.Y, i_head); } function GetTile(i_x, i_y) { return(SnoodHead(Tiles[(i_x * Rows) + i_y])); } function GetTileFromCoord(i_coord) { return(SnoodHead(Tiles[(i_coord.X * Rows) + i_coord.Y])); } function HasNeighbor(i_x, i_y) { var _local3 = NeighborTiles[(i_x * Rows) + i_y]; var _local2 = 0; while (_local2 < _local3[0].length) { var _local5 = _local3[0][_local2]; var _local4 = _local3[1][_local2]; if (SnoodHead(Tiles[(_local5 * Rows) + _local4]) != undefined) { return(true); } _local2++; } return(false); } function AttachShotHead(i_x, i_y, i_borb) { Level.m_LastAttached = i_borb; if ((i_borb == null) || (i_borb == undefined)) { CDebug.WriteErr("CTileSet.AttachHead", "Trying to attach an invalid object"); return(undefined); } SetTile(i_x, i_y, i_borb); i_borb.MoveTo(m_SnoodWidth * ((0.5 + ((i_y % 2) / 2)) + i_x), m_SnoodHeight * (0.5 + i_y), true); var _local5 = true; m_LastAttached = new CCoord(i_x, i_y); i_borb.LookOffCenter(); CGame.Board.OnAddedBorb(i_x, i_y, i_borb, _local5); if (!CGame.EffectMgr.AreBlockingEffectsPlaying()) { Level.onAddBorbEffectsComplete(i_x, i_y, i_borb, _local5); } CGame.Board.m_Launcher.m_ShouldRedraw = true; if (Level.DbgShowSnoodCoords) { SnoodHead.DbgShowCoordOnAllSnoods(); } } function GetNeighborCoords(i_borb) { var _local4 = []; var _local6 = NeighborTiles[(i_borb.m_xSlot * Rows) + i_borb.m_ySlot]; var _local5 = _local6[0]; var _local3 = _local6[1]; var _local2 = 0; while (_local2 < _local3.length) { _local4.push(new CCoord(_local5[_local2], _local3[_local2])); _local2++; } return(_local4); } function GetNeighborCoordsOfCoord(i_coord) { var _local4 = []; var _local6 = NeighborTiles[(i_coord.X * Rows) + i_coord.Y]; var _local5 = _local6[0]; var _local3 = _local6[1]; var _local2 = 0; while (_local2 < _local3.length) { _local4.push(new CCoord(_local5[_local2], _local3[_local2])); _local2++; } return(_local4); } function DbgShowAllBorbIds() { var _local2 = 0; while (_local2 < m_activeBorbCount) { var _local3 = String(m_activeBorbs[_local2]).split("."); SnoodHead(m_activeBorbs[_local2]).DbgSetText(_local3[_local3.length - 1]); _local2++; } } function GetNewHook() { var _local2 = CPhysicsObject(attachMovie("ShootableAnchor", "ShootableAnchor" + m_nextEffectDepth, m_nextEffectDepth)); m_nextEffectDepth++; return(_local2); } function GetNewPlunger() { var _local2 = CPhysicsObject(attachMovie("ShootablePlunger", "ShootablePlunger" + m_nextEffectDepth, m_nextEffectDepth)); m_nextEffectDepth++; return(_local2); } function ToggleMouseFollowOnAllBorbEyes(i_val) { var _local2 = 0; while (_local2 < m_activeBorbCount) { var _local3 = SnoodHead(m_activeBorbs[_local2]); _local3.ToggleFollowMouseWithEyes(i_val); _local2++; } } function GetDiveBarDist() { } function resetColorCounts() { m_borbColorCounts = new Array(Constants.Snood_Count); var _local2 = 0; while (_local2 < Constants.Snood_Count) { m_borbColorCounts[_local2] = 0; _local2++; } } function UpdateColorCount(i_color, i_diff) { m_borbColorCounts[i_color - 1] = m_borbColorCounts[i_color - 1] + i_diff; if ((m_borbColorCounts[i_color - 1] == 0) && (((i_color <= Constants.Snood_HeadCount) && (m_borbColorCounts[(i_color + Constants.Snood_HeadCount) - 1] == 0)) || (((i_color > Constants.Snood_HeadCount) && (i_color <= (Constants.Snood_HeadCount * 2))) && (m_borbColorCounts[(i_color - Constants.Snood_HeadCount) - 1] == 0)))) { CGame.Board.ResyncColors(); } } function GetCenterCoord() { return(new CCoord(Math.floor(Cols / 2), Math.floor(Rows / 2))); } function GetCenterTile() { return(GetTileFromCoord(GetCenterCoord())); } function GetColorCount(i_color, i_allOfColor) { if (i_allOfColor) { if (i_color <= Constants.Snood_HeadCount) { return(m_borbColorCounts[i_color - 1] + m_borbColorCounts[(i_color + Constants.Snood_HeadCount) - 1]); } if (i_color <= (Constants.Snood_HeadCount * 2)) { return(m_borbColorCounts[i_color - 1] + m_borbColorCounts[(i_color - Constants.Snood_HeadCount) - 1]); } return(m_borbColorCounts[i_color - 1]); } return(m_borbColorCounts[i_color - 1]); } function DbgBoardColorCountToString() { var _local3 = ""; var _local2 = 0; while (_local2 < m_borbColorCounts.length) { if (m_borbColorCounts[_local2] > 0) { _local3 = _local3 + ((((" Color: " + Constants.GetSnoodByNumber(_local2 + 1)) + ", Count: ") + m_borbColorCounts[_local2]) + newline); } _local2++; } _local3 = _local3 + ((" **Total: " + m_activeBorbCount) + newline); return(_local3); } function GetNextHighestBankDepth() { return(m_nextBankDepth++); } function DropAllHeads(i_excludeBoss, i_excludeHeads) { var _local4 = new Array(m_activeBorbCount); var _local3 = 0; while (_local3 < m_activeBorbCount) { _local4[_local3] = m_activeBorbs[_local3]; _local3++; } var _local5 = []; var _local2; _local3 = 0; while (_local3 < _local4.length) { _local2 = SnoodHead(_local4[_local3]); if ((!i_excludeHeads) || (_local2.__get__Color() > (Constants.Snood_HeadCount * 2))) { _local2.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard); if ((_local2.__get__Color() >= Constants.Snood_LumpStart) && (_local2.__get__Color() <= Constants.Snood_LumpEnd)) { _local5.push(_local2); } else if (_local2.__get__Color() == Constants.Snood_Slippery) { _local5.push(_local2); } } _local3++; } CCharacterSounds.PlayLumpDrops(_local5); } function GetHeadCount() { var _local3 = 0; var _local2 = 1; while (_local2 <= Constants.Snood_Count) { if (_local2 <= (Constants.Snood_HeadCount * 2)) { _local3 = _local3 + m_borbColorCounts[_local2 - 1]; } _local2++; } return(_local3); } function GetBorbColorCounts() { return(m_borbColorCounts); } function GetRandColor() { updateIfRandDistDirty(); var _local3 = Oberon.MathX.randRange(0, 1000) / 10; var _local2 = 0; while (_local2 < Constants.Snood_HeadCount) { if (((_local3 <= m_borbRandDist[_local2]) || (_local2 == (Constants.Snood_HeadCount - 1))) && (m_borbRandDist[_local2] != 0)) { return(_local2 + 1); } _local3 = _local3 - m_borbRandDist[_local2]; _local2++; } _local2 = 0; while (_local2 < Constants.Snood_HeadCount) { if (m_borbRandDist[_local2] != 0) { return(_local2 + 1); } _local2++; } CDebug.WriteErr("CTileSet.GetRandColor()", "No colors to choose from"); return(1); } function updateIfDirty() { if (m_dirty) { UpdateBoundingBox(); m_OnlyBlockersRemain = GetHeadCount() == 0; m_dirty = false; } } function updateIfRandDistDirty() { if (m_randDistDirty) { var _local3 = 0; var _local2 = 0; while (_local2 < Constants.Snood_HeadCount) { _local3 = _local3 + m_borbColorCounts[_local2]; m_borbRandDist[_local2] = m_borbColorCounts[_local2]; _local2++; } _local2 = 0; while (_local2 < Constants.Snood_HeadCount) { m_borbRandDist[_local2] = (m_borbColorCounts[_local2] / _local3) * 100; _local2++; } m_randDistDirty = false; } } function MoveToTop(i_borb) { i_borb.swapDepths(m_nextTopDepth); m_nextTopDepth++; } var State = 1; static var s_CannonScareAnimIdle = 4; static var s_ReboundTraceIdle = 0.8; static var s_BBClearanceX = 0.6; static var s_BBClearanceY = 0.6; var m_headStartDepth = 1; var m_nextTopDepth = 200000; var m_nextBankDepth = 600000; var m_nextEffectDepth = 800000; var m_boundingBoxNeedsUpdate = true; static var State_Playing = 1; static var State_RotatePending = 2; static var State_Rotating = 3; static var State_RotatingComplete = 4; static var State_Dumping = 5; static var State_DroppingInitialShake = 6; static var State_DroppingMovingToTarget = 7; static var State_DroppingEndShake = 8; static var s_OffsetsX = [0, 6, 0, 0, 0, 0, 8, 8, 12, 22]; static var s_OffsetsY = [0, 0, 0, 0, 0, 0, 7, 7, 12, 11]; var m_shakeDuration = 0; var m_shakeStartX = 0; var m_shakeStartY = 0; var m_nextCannonScareAnim = 0; var m_nextReboundTrace = 0; }
Symbol 57 MovieClip [__Packages.Effects.CEffect_CannonScareAnim] Frame 0
class Effects.CEffect_CannonScareAnim extends CEffect { var m_shakeEffects, m_NeedsUpdate, m_Type; function CEffect_CannonScareAnim () { super(CEffect.Type_CannonScareAnim); m_shakeEffects = new Array(); m_NeedsUpdate = true; } function OnInit() { var _local14 = true; if ((!CGame.EffectMgr.m_IdleAnimationsOn) || (CGame.EffectMgr.IsEffectPlaying(m_Type))) { return(false); } var _local13 = []; var _local16 = []; var _local12 = CGame.Board.m_Launcher; _local12.TraceShot(false, false, [], _local13, _local16, false, true); if (_local13.length == 0) { _local14 = false; } else { var _local15 = CGame.TileSet.GetTileFromCoord(_local13[0]); var _local11 = CGame.TileSet.GetNeighborCoords(_local15); var _local4 = [_local15]; var _local9 = 0; while (_local9 < _local11.length) { var _local8 = CGame.TileSet.GetTileFromCoord(_local11[_local9]); if ((_local8 != null) && (Oberon.MathX.randRange(0, 1) == 0)) { _local4.push(_local8); } if (_local9 < 6) { var _local6 = CGame.TileSet.GetNeighborCoords(_local8); var _local2 = 0; while (_local2 < _local6.length) { if (Oberon.MathX.randRange(0, 1) == 0) { var _local3 = CGame.TileSet.GetTileFromCoord(_local6[_local2]); if ((_local3 != null) && (!Oberon.ArrayX.Contains(_local4, _local3))) { _local4.push(_local3); } } _local2++; } } _local9++; } _local9 = 0; while (_local9 < _local4.length) { var _local7 = SnoodHead(_local4[_local9]); if ((_local7.__get__PowerUp() == Constants.PowerUp_None) && (Constants.IsHead(_local7.__get__Color()))) { var _local5 = Effects.CEffect_ScareAnim(CEffect.CreateEffect(CEffect.Type_ScareAnim)); var _local10 = CCoord.ToLocal(_local12, _local7._parent); if (_local5.OnInit(_local7, _local10)) { _local5.m_CompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnShakeComplete)); CGame.EffectMgr.AddEffectToActiveList(_local5); m_shakeEffects.push(_local5); } } _local9++; } } return(_local14); } function OnUpdate(bForceComplete, i_deltaT) { CGame.TileSet.ResetNextCannonScareAnim(); return(super.OnUpdate(bForceComplete, i_deltaT)); } function isActive() { var _local4 = false; var _local2 = 0; while ((!_local4) && (_local2 < m_shakeEffects.length)) { var _local3 = CEffect(m_shakeEffects[_local2]); _local4 = (_local3 != null) && (!_local3.m_bReadyForDelete); _local2++; } return(_local4); } function OnShakeComplete() { if (!isActive()) { OnComplete(); } } function OnComplete() { super.OnComplete(); var _local4 = 0; while (_local4 < m_shakeEffects.length) { var _local3 = CEffect(m_shakeEffects[_local4]); if ((_local3 != null) && (!_local3.m_bReadyForDelete)) { _local3.Finish(); } _local4++; } CGame.TileSet.ResetCannonScareAnim(); } }
Symbol 58 MovieClip [__Packages.CLauncher] Frame 0
class CLauncher extends MovieClip { var m_miniLaserColor, m_Access, m_Lasers, m_ReboundLasers, m_ReboundLasersDrawn, m_ShouldRedraw, m_powerupFrameTween, SpecialBorbLoadedEvent, m_FullCannonMc, _parent, m_LauncherTrack, Plunger, m_MoveLeftIndicator, m_MoveRightIndicator, MiniLazer, LauncherAnims, m_tentacle, Tentacle, AimerBase, m_CannonBorbMarker, m_powerupAnimMc, m_State, m_lastLaser, m_lastReboundLaser, LauncherBottomCog, _rotation, m_loadAnim, m_projScaleX, m_projScaleY, m_LastLaserTargetCoord; function CLauncher () { super(); m_miniLaserColor = null; m_Access = Access_Disabled; m_Lasers = []; m_ReboundLasers = []; m_ReboundLasersDrawn = false; m_ShouldRedraw = false; m_Angle = 0; m_powerupFrameTween = null; SpecialBorbLoadedEvent = new Oberon.CEvent(this); } static function OrientToString(inVal) { switch (inVal) { case Orient_Top : return("Top"); case Orient_Bottom : return("Bottom"); case Orient_Left : return("Left"); case Orient_Right : return("Right"); } return("<Unknown>"); } function onLoad() { m_FullCannonMc = MovieClip(_parent); m_LauncherTrack = CGame.Board.m_LauncherTrack; var _local2 = "LauncherHead"; m_CannonSnood = SnoodHead(m_FullCannonMc[_local2]); m_CannonSnood._visible = false; m_CannonPlunger = CPhysicsObject(Plunger); CDebug.Assert(m_CannonPlunger != null, this, "Couldn't find plunger"); CDebug.Assert(m_CannonSnood != null, this, "Couldn't find bottom head " + _local2); m_MoveLeftIndicator = MovieClip(m_FullCannonMc.MoveLeftIndicator); m_MoveLeftIndicator._visible = false; m_MoveLeftIndicator.stop(); m_MoveRightIndicator = MovieClip(m_FullCannonMc.MoveRightIndicator); m_MoveRightIndicator._visible = false; m_MoveRightIndicator.stop(); m_MiniLazerMc = MovieClip(MiniLazer); CDebug.Assert(m_MiniLazerMc != null, this, "Couldn't find MiniLazer"); m_MiniLazerMc.gotoAndStop(m_MiniLazerMc._totalframes); m_LauncherAnimsMc = MovieClip(LauncherAnims); CDebug.Assert(m_LauncherAnimsMc != null, this, "Couldn't find LauncherAnims"); m_LauncherAnimsMc.gotoAndStop(s_CannonAnimDefault); m_tentacle = MovieClip(Tentacle); CDebug.Assert(m_tentacle != null, this, "Couldn't find m_tentacle"); m_tentacle._visible = false; m_AimerBaseMc = MovieClip(AimerBase); CDebug.Assert(m_AimerBaseMc != null, this, "Couldn't find AimerBaseMc"); m_CannonBorbMarker = MovieClip(m_FullCannonMc.Marker); m_CannonBorbMarker._visible = false; m_powerupAnimMc = MovieClip(m_FullCannonMc.PowerupAnim); m_powerupAnimMc.stop(); SetOrientation(Orient_Bottom); setState(State_Empty, true); SetMode(Mode_Normal, true); SetAngle(0); } function OnPlayUpdate(i_deltaT) { var _local3 = Key.isDown(37); var _local2 = Key.isDown(39); UpdateAngleByMouse(Key.isDown(16)); if (m_ShouldRedraw && (m_showTracer)) { if (CGame.TileSet.State == CTileSet.State_Playing) { TraceShot(true, false, null, null, null, isNextShotFireball()); } else { hideLaser(); } } } function GetShowTracer() { return(m_showTracer); } function SetShowTracer(i_val) { if (m_showTracer != i_val) { m_showTracer = i_val; UpdateTracer(); } } function UpdateTracer() { setShowMiniTracer(!m_showTracer); if ((((!CGame.Board.m_Won) && (!CGame.Board.m_Lost)) && (m_showTracer)) && (!m_LauncherTrack.IsBusy())) { TraceShot(true, false, null, null, null, isNextShotFireball()); } else { RemoveLasers(); } } function setShowMiniTracer(i_show) { m_MiniLazerMc._visible = i_show; } function IsBusy() { return((m_State == State_Waiting) || (((m_powerupFrameTween != null) && (m_powerupFrameTween.m_IsPlaying)) && (m_powerupFrameTween.GetPercentComplete() < 50))); } function SetMode(i_mode, i_force) { if (i_force || (i_mode != m_Mode)) { switch (i_mode) { case Mode_Normal : m_LauncherAnimsMc.gotoAndStop(s_CannonAnimDefault); setShowMiniTracer(!m_showTracer); m_CannonPlunger._visible = false; break; case Mode_Hook : m_CannonPlunger._visible = m_State == State_Loaded; } m_Mode = i_mode; } } function ToggleShowTentacle(i_val) { m_tentacle._visible = i_val; } function SetAccess(i_access) { if (m_Access != i_access) { FHost.CApp.ClearMouseDelta(); switch (m_Access) { case Access_Disabled : hideLaser(); break; case Access_MouseDisabled : } m_Access = i_access; } } function setState(i_state, i_force) { if (i_force || (i_state != m_State)) { switch (i_state) { case State_Loaded : m_CannonPlunger._visible = m_Mode == Mode_Hook; break; case State_Waiting : m_CannonPlunger._visible = false; break; case State_Empty : if (m_LaunchSnood != null) { SnoodHead.ReturnToPool(m_LaunchSnood); } m_LaunchSnood = null; } m_State = i_state; } } function onUnload() { RemoveLasers(); } function createLaserClipPool(i_removeOld) { if (i_removeOld) { RemoveLasers(); } m_lastLaser = null; m_Lasers = new Array(s_LaserClipPoolSize); var _local4 = 0; while (_local4 < s_LaserClipPoolSize) { var _local3 = CBoard.G.GetNewLaserMc(_local4 == 0, _local4 == (s_LaserClipPoolSize - 1), _local4 == 1); CDebug.Assert(_local3 != null, this, "Laser failed to create"); _local3._visible = false; _local3.gotoAndStop(1); m_Lasers[_local4] = _local3; _local4++; } m_lastReboundLaser = null; m_ReboundLasers = new Array(s_ReboundLaserClipPoolSize); _local4 = 0; while (_local4 < s_ReboundLaserClipPoolSize) { var _local2 = CBoard.G.GetNewReboundLaserMc(); CDebug.Assert(_local2 != null, this, "Rebound laser failed to create"); _local2._visible = false; _local2.stop(); m_ReboundLasers[_local4] = _local2; _local4++; } } function RemoveLasers() { var _local2 = 0; while (_local2 < m_Lasers.length) { MovieClip(m_Lasers[_local2]).removeMovieClip(); _local2++; } m_Lasers = []; m_lastLaser = null; _local2 = 0; while (_local2 < m_ReboundLasers.length) { MovieClip(m_ReboundLasers[_local2]).removeMovieClip(); _local2++; } m_ReboundLasers = []; m_lastReboundLaser = null; } function RefreshBottomCog(i_playAnim) { if (m_Orient != null) { m_LauncherBottomMc = MovieClip(LauncherBottomCog); m_CannonSnood._rotation = -m_AngularOffset; RefreshLaunchSnoodPos(); } } function RefreshLaunchSnoodPos() { if (m_LaunchSnood != null) { var _local2 = getLaunchSnoodPos(); m_LaunchSnood._x = _local2.X; m_LaunchSnood._y = _local2.Y; } } function RefreshCannonSnood() { m_CannonSnood.SyncWithInfo(m_LaunchSnood.ToInfo()); } function Shoot() { m_CannonSnood._visible = false; RefreshLaunchSnoodPos(); var _local2; if (m_Mode == Mode_Hook) { _local2 = CGame.TileSet.GetNewPlunger(); CDebug.Assert(_local2 != null, "CLauncher.Shoot()", "Unable to get new plunger"); var _local5 = CCoord.ToLocal(m_CannonPlunger, _local2); var _local4 = CCoord.ToLocal(this, CGame.Board); var _local3 = CCoord.ToLocal(m_CannonPlunger, CGame.Board); var _local6 = new Core.Vector2(_local3.X - _local4.X, _local3.Y - _local4.Y); _local2.m_IgnoreDist = _local6.Magnitude(); _local2._x = _local5.X; _local2._y = _local5.Y; _local2._rotation = _rotation; setState(State_Waiting); } else { m_LaunchSnood._visible = true; m_LaunchSnood.ResetScale(); _local2 = m_LaunchSnood; m_LaunchSnood = null; setState(State_Empty); } hideLaser(); updateMiniLaserColor(); return(_local2); } function updateMiniLaserColor() { if (m_CannonSnood._visible) { m_miniLaserColor = m_CannonSnood.Color; } else { var _local2 = CGame.Board.m_Queue.GetNextPosBorb(); if (_local2 != null) { m_miniLaserColor = _local2.Color; } else { m_miniLaserColor = null; } } m_MiniLazerMc.gotoAndStop(((m_miniLaserColor == null) ? (m_MiniLazerMc._totalframes) : (m_miniLaserColor))); } function IsEmpty() { return(m_State != State_Loaded); } function GetActive() { return(m_Access != Access_Disabled); } function getLaunchSnoodPos() { return(CCoord.ToLocal(this, CBoard.G.m_TileSet)); } function ApplyPowerup(i_powerup, i_color) { var _local2 = false; switch (i_powerup) { case Constants.PowerUp_Aimer : m_ShouldRedraw = true; CGame.Sounds.PlaySound(Constants.__get__Sound_SureShot()); onLoadAimerPowerUpBorb(); _local2 = true; break; case Constants.PowerUp_Hook : m_loadAnim = CGame.EffectMgr.PlaySingleAnimMc("HookLoadAnim", this, 0.5); m_loadAnim.m_CompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, onLoadHookPowerUpBorb)); setState(State_Waiting); _local2 = true; setShowMiniTracer(false); break; case Constants.PowerUp_Fireball : m_ShouldRedraw = true; m_projScaleX = m_projScaleX * Constants.FireballPower; m_LauncherAnimsMc.gotoAndStop(s_CannonAnimFireball); setShowMiniTracer(false); _local2 = true; CGame.Sounds.PlaySound(Constants.__get__Sound_Hotfoot()); break; case Constants.PowerUp_BubbleBubble : CGame.Sounds.PlaySound(Constants.__get__Sound_BubbleBubble()); _local2 = true; m_LauncherAnimsMc.gotoAndStop(s_CannonAnimBubble); setShowMiniTracer(!m_showTracer); } if (_local2 || (i_color == Constants.Snood_Wild)) { if (i_color == Constants.Snood_Wild) { m_powerupAnimMc.gotoAndStop(Constants.PowerUp_Count + 1); } else { m_powerupAnimMc.gotoAndStop(i_powerup); } Oberon.CEnterFrameEvent.AddEvent(m_powerupAnimMc, mx.utils.Delegate.create(this, playPowerUpAnim), true); CCharacterSounds.PlayCharPowerupSound(i_color, i_powerup); } } function playPowerUpAnim() { if (m_powerupFrameTween != null) { m_powerupFrameTween.StopUpdates(); } var _local2 = Oberon.MovieClipX.GetChildClip(m_powerupAnimMc); _local2.stop(); m_powerupFrameTween = new Core.CTween(_local2, "_currentframe", null, 1, _local2._totalframes, s_PowerupAnimDur, true); m_powerupFrameTween.m_CompleteEvent.PushBehavior(mx.utils.Delegate.create(this, OnPowerupAnimComplete)); } function OnPowerupAnimComplete() { if (m_powerupFrameTween == null) { m_powerupAnimMc.gotoAndStop(1); } } function SyncLoadedBorb(i_borb) { m_LaunchSnood.SyncWithInfo(i_borb); m_CannonSnood.SyncWithInfo(i_borb); updateMiniLaserColor(); } function Load(i_borb) { if (m_loadAnim != null) { m_loadAnim.Finish(); } SetMode(Mode_Normal); m_CannonSnood.__set__State(SnoodHead.State_InCannon); m_CannonSnood.__set__Size(m_SnoodSize); m_CannonSnood.SyncWithInfo(i_borb); m_CannonSnood._visible = true; m_CannonSnood._xscale = 79.2; m_CannonSnood._yscale = 79.2; updateMiniLaserColor(); var _local2 = getLaunchSnoodPos(); var _local3 = SnoodHead.GetAndRemoveFromPool(i_borb, m_SnoodSize, _local2.X, _local2.Y); m_LaunchSnood = _local3; m_LaunchSnood._visible = false; m_LaunchSnood._x = _local2.X; m_LaunchSnood._y = _local2.Y; m_LaunchSnood.__set__State(SnoodHead.State_InCannon); m_projScaleX = Constants.BaseProjectileXScale; m_projScaleY = Constants.BaseProjectileYScale; setState(State_Loaded); ApplyPowerup(m_CannonSnood.__get__PowerUp(), m_CannonSnood.__get__Color()); if (m_CannonSnood.__get__Color() == Constants.Snood_Wild) { CCharacterSounds.PlayWildSounds(); } if ((((m_Mode == Mode_Normal) && (m_CannonSnood.__get__PowerUp() == Constants.PowerUp_None)) && (m_LauncherAnimsMc._currentframe != s_CannonAnimVacum)) && (m_LauncherAnimsMc._currentframe != s_CannonAnimDefault)) { m_LauncherAnimsMc.gotoAndStop(s_CannonAnimDefault); setShowMiniTracer(!m_showTracer); } m_ShouldRedraw = true; } function onLoadHookPowerUpBorb() { m_CannonSnood._visible = false; SetMode(Mode_Hook); SpecialBorbLoadedEvent.Fire(); SnoodHead.ReturnToPool(m_LaunchSnood); m_LaunchSnood = null; setState(State_Loaded); } function onLoadAimerPowerUpBorb() { SpecialBorbLoadedEvent.Fire(); if (((m_LaunchSnood == null) && (m_Mode == Mode_Normal)) && (!CGame.Board.m_Queue.IsAnimating())) { CGame.Board.AdvanceLauncher(); } } function UpdateOrient() { m_AngularOffset = m_FullCannonMc._rotation % 360; RefreshBottomCog(false); } function SetOrientation(i_orient) { m_Orient = i_orient; UpdateOrient(); } function UpdateAngleByMouse(i_keyShift) { if ((m_Access == Access_Disabled) || (m_Access == Access_MouseDisabled)) { FHost.CApp.ClearMouseDelta(); return(undefined); } var _local6 = CGame.Board.GetBoundingClip(); var _local3 = m_Angle; if (FHost.CApp.__get__IsRunning()) { var _local5 = s_MouseSensitivity; if (i_keyShift || (CGame.m_RMouseDown)) { _local5 = _local5 / 3; } var _local4 = 1; if (CGame.Board.IsRound() && (m_Orient == Orient_Top)) { _local4 = -1; } _local3 = _local3 + ((_local4 * _local5) * FHost.CApp.TakeMouseDelta().x); } else { _local3 = (Object(_root)._xmouse - (_local6._width / 2)) / 2; if (CGame.Board.IsRound() && (m_Orient == Orient_Top)) { _local3 = _local3 * -1; } } SetAngle(_local3); } function IsAtMaxBounds() { return(Math.abs(m_Angle) == s_MaxAngle); } function SetAngle(i_angle, i_force) { var _local2 = Math.abs(m_Angle - i_angle); m_Angle = i_angle; if (m_Angle < (-s_MaxAngle)) { m_Angle = -s_MaxAngle; } else if (m_Angle > s_MaxAngle) { m_Angle = s_MaxAngle; } if (i_force || (m_OldAngle != m_Angle)) { CGame.TileSet.ResetCannonScareAnim(); CGame.TileSet.ResetReboundTraceIdle(); m_MoveLeftIndicator._visible = false; m_MoveLeftIndicator.stop(); m_MoveRightIndicator._visible = false; m_MoveRightIndicator.stop(); _rotation = m_Angle; m_ShouldRedraw = true; m_OldAngle = m_Angle; if (m_DebugLaser != null) { m_DebugLaser.removeMovieClip(); m_DebugLaser = null; } if ((CGame.DbgMobileLauncher && ((CBoardCircular(CGame.Board) != null) || (!CGame.DbgMobileLauncherAlt))) && (IsAtMaxBounds())) { if (m_Angle < 0) { m_MoveLeftIndicator._visible = true; m_MoveLeftIndicator.play(); } else if (m_Angle > 0) { m_MoveRightIndicator._visible = true; m_MoveRightIndicator.play(); } } else if (CGame.DbgShowCannonAimLine || (m_showTracer)) { TraceShot(true, false, null, null, null, isNextShotFireball()); } else if (m_ReboundLasersDrawn) { if ((_local2 > s_ReboundTraceThreshold) && (!isNextShotFireball())) { hideLaser(); } else { TraceShot(false, true); } } } } function traceLaser(i_vector, i_passThrough) { var _local2 = null; var _local5 = null; if ((m_lastLaser != null) && (i_passThrough || ((m_lastLaser + 1) >= m_Lasers.length))) { return(false); } if (m_lastLaser != null) { _local5 = m_Lasers[m_lastLaser]; m_lastLaser++; _local2 = MovieClip(m_Lasers[m_lastLaser]); } else { m_lastLaser = 1; _local2 = MovieClip(m_Lasers[m_lastLaser]); } _local2._visible = true; var _local3 = m_LastLaserTargetCoord.Clone(); _local2._x = _local3.X; _local2._y = _local3.Y; _local2._rotation = 0; if (i_passThrough) { i_vector.NormalizeTo(300); _local2.gotoAndStop(2); } else { _local2.gotoAndStop(1); } _local2._width = i_vector.Magnitude(); if ((m_lastLaser + 1) == m_Lasers.length) { _local2._width = _local2._width / 2; } _local2._rotation = i_vector.GetAngle(); _local3.X = _local3.X + i_vector.X; _local3.Y = _local3.Y + i_vector.Y; m_LastLaserTargetCoord = _local3; if ((((m_CannonSnood != null) && (m_CannonSnood._visible)) && (m_CannonSnood.__get__Color() <= (Constants.Snood_HeadCount * 2))) && (!isNextShotFireball())) { var _local6 = new Color(_local2); _local6.setRGB(Constants.s_BorbColorTints[m_CannonSnood.__get__Color() - 1]); } else { var _local6 = new Color(_local2); _local6.setRGB(16777215); } return(true); } function traceReboundLaser(i_startPos, i_endPos, i_showStart, i_showEnd) { var _local3 = null; var _local2 = null; var _local4 = i_showStart; var _local5 = i_showEnd; if (_local4 == null) { _local4 = true; } if (_local5 == null) { _local5 = true; } if ((m_lastReboundLaser != null) && ((m_lastReboundLaser + 1) >= m_ReboundLasers.length)) { return(undefined); } if (m_lastReboundLaser != null) { m_lastReboundLaser++; _local3 = MovieClip(m_ReboundLasers[m_lastReboundLaser]); if ((m_lastReboundLaser + 1) < m_ReboundLasers.length) { m_lastReboundLaser++; _local2 = MovieClip(m_ReboundLasers[m_lastReboundLaser]); } else { CDebug.AssertWarn(true, "CLauncher", "Ran out of rebound laser clips!"); } } else { m_lastReboundLaser = 1; _local2 = MovieClip(m_ReboundLasers[m_lastReboundLaser]); } _local3._visible = _local4; _local2._visible = _local5; var _local6 = new Core.Vector2(i_endPos.X - i_startPos.X, i_endPos.Y - i_startPos.Y); _local3._x = i_startPos.X; _local3._y = i_startPos.Y; _local3._rotation = _local6.GetAngle(); _local6.Scale(-1); _local2._x = i_endPos.X; _local2._y = i_endPos.Y; _local2._rotation = _local6.GetAngle(); if (((m_CannonSnood != null) && (m_CannonSnood._visible)) && (m_CannonSnood.__get__Color() <= (Constants.Snood_HeadCount * 2))) { var _local9 = new Color(_local3); _local9.setRGB(Constants.s_BorbColorTints[m_CannonSnood.__get__Color() - 1]); var _local10 = new Color(_local2); _local10.setRGB(Constants.s_BorbColorTints[m_CannonSnood.__get__Color() - 1]); } else { var _local9 = new Color(_local3); _local9.setRGB(16777215); var _local10 = new Color(_local2); _local10.setRGB(16777215); } } function isNextShotFireball() { return((m_CannonSnood != null) && (m_CannonSnood.__get__PowerUp() == Constants.PowerUp_Fireball)); } function hideLaser() { if (m_lastLaser != null) { MovieClip(m_Lasers[0]).stop(); MovieClip(m_Lasers[0])._visible = false; if (m_lastLaser != null) { var _local4 = 1; while (_local4 <= m_lastLaser) { var _local3 = MovieClip(m_Lasers[_local4]); _local3._visible = false; _local3.stop(); _local3._x = -_local3._width; _local3._y = -_local3._height; _local3._xscale = 100; _local3._yscale = 100; _local4++; } m_lastLaser = null; } } if (m_lastReboundLaser != null) { MovieClip(m_ReboundLasers[0]).stop(); MovieClip(m_ReboundLasers[0])._visible = false; if (m_lastReboundLaser != null) { var _local4 = 1; while (_local4 <= m_lastReboundLaser) { var _local2 = MovieClip(m_ReboundLasers[_local4]); _local2._visible = false; _local2.stop(); _local2._x = -_local2._width; _local2._y = -_local2._height; _local2._xscale = 100; _local2._yscale = 100; _local4++; } m_lastReboundLaser = null; } m_ReboundLasersDrawn = false; } if (m_DebugLaser != null) { m_DebugLaser.removeMovieClip(); m_DebugLaser = null; } } function TraceShot(i_drawLaser, i_drawReboundLaser, o_vecArr, o_collisionCoord, o_collisionDist, i_passThrough, i_noBounce, i_useHookPos) { var _local79 = CGame.Board; var _local66 = null; var _local81 = ((!i_drawLaser) && (i_drawReboundLaser)) && (!isNextShotFireball()); if (PhysicsMgr.G.IsBusy() || ((i_drawLaser || (_local81)) && (!m_ShouldRedraw))) { return(_local66); } if ((i_drawLaser || (_local81)) && (m_Lasers.length == 0)) { createLaserClipPool(false); } var _local87 = _local79.GetBoundingClip(); var _local17 = _local79.m_TileSet; var _local59 = Level.m_BoardSpaces; var _local82 = CGame.Board.IsRound(); var _local58 = _local17.Rows; var _local88 = CCoord.ToLocal(this, _local79); m_LastLaserTargetCoord = CCoord.ToLocal(m_AimerBaseMc, _local79); var _local83 = null; if (i_drawLaser) { _local83 = new Core.Vector2(m_LastLaserTargetCoord.X - _local88.X, m_LastLaserTargetCoord.Y - _local88.Y); } var _local73 = false; var _local94 = _local17._x; var _local97 = _local17._y; var _local4 = Level.m_SnoodWidth; var _local5 = Level.m_SnoodHeight; var _local23 = (_local94 + (0.5 * _local4)) + _local87._x; var _local25 = ((_local94 + _local87._width) + _local87._x) - (0.5 * _local4); var _local21 = (_local97 + _local87._y) + (0.5 * _local5); var _local24 = ((_local97 + _local87._height) + _local87._y) - (0.5 * _local4); var _local52 = _local88.Clone(); var _local7 = _local88.X; var _local6 = _local88.Y; var _local64 = _local4 * m_projScaleX; var _local85 = _local5 * m_projScaleY; var _local20 = 0.25 * Math.min(_local4, _local5); var _local102 = (Math.PI * (m_Angle + m_AngularOffset)) / 180; var _local2 = new Core.Vector2(Math.sin(_local102), -Math.cos(_local102)); var _local36 = 0; var _local111 = _local7; var _local116 = _local6; var _local54 = 0; var _local56 = _local17.PixelPosToGridCell(_local7, _local6); var _local91 = new Core.Vector2(_local23, _local21); var _local101 = new Core.Vector2(_local25, _local21); var _local100 = new Core.Vector2(_local23, _local24); var _local95 = new Core.Vector2(_local25, _local24); var _local109 = new Core.Vector2(0, -1); var _local108 = new Core.Vector2(1, 0); var _local105 = new Core.Vector2(-1, 0); var _local110 = new Core.Vector2(0, 1); var _local45 = Orient_Bottom; var _local57 = Orient_Left; var _local55 = Orient_Right; var _local53 = Orient_Top; var _local8 = new Array(4); _local8[_local45] = {numHits:0, w0:_local100, w1:_local95, N:_local109}; _local8[_local57] = {numHits:0, w0:_local91, w1:_local100, N:_local108}; _local8[_local55] = {numHits:0, w0:_local101, w1:_local95, N:_local105}; _local8[_local53] = {numHits:0, w0:_local91, w1:_local101, N:_local110}; if (i_drawLaser) { hideLaser(); } else if (_local81) { hideLaser(); } if (CGame.DbgShowCannonAimLine) { if (m_DebugLaser != null) { m_DebugLaser.removeMovieClip(); m_DebugLaser = null; } m_DebugLaser = CBoard.G.createEmptyMovieClip("debuglaser", _local79.getNextHighestDepth()); m_DebugLaser.lineStyle(5, 65280, 100); m_DebugLaser.moveTo(_local23, _local21); m_DebugLaser.lineTo(_local25, _local21); m_DebugLaser.lineTo(_local25, _local24); m_DebugLaser.lineTo(_local23, _local24); m_DebugLaser.lineTo(_local23, _local21); m_DebugLaser.lineStyle(2.5, 65280, 100); m_DebugLaser.moveTo(_local7, _local6); m_DebugLaser.lineTo(_local7 + (_local2.X * 800), _local6 + (_local2.Y * 800)); _local17.m_bbox.drawBox(m_DebugLaser, 255, 2); } var _local42 = new Core.Vector2(0, 0); var _local74 = 1; if ((!i_passThrough) && (!i_noBounce)) { _local74 = Constants.MaxProjectileBounces; } var _local3; var _local51 = false; var _local75 = false; var _local78; var _local60 = true; while (((!_local51) && (_local54 < _local74)) && ((((_local8[_local45].numHits <= 0) || (_local8[_local57].numHits <= 0)) || (_local8[_local55].numHits <= 0)) || (_local8[_local53].numHits <= 0))) { var _local18 = _local17.PixelPosToGridCell(_local7, _local6); var _local12 = new Core.COrientedBox(); var _local38 = new Core.Vector2(_local7, _local6); _local12.SetCenterV(_local38); _local12.SetExtents(_local64 / 2, _local85 / 2); _local12.SetAxes(-_local2.Y, _local2.X, _local2.X, _local2.Y); var _local11 = 0; var _local9 = 0; var _local80 = _local2.Clone(); var _local19 = false; var _local48 = false; var _local71 = _local60; _local60 = _local12.checkCollision(_local17.m_bbox); if ((_local71 == true) && (_local60 == false)) { var _local50 = findCollisionWall(_local12.m_center, _local2, _local8, true); if (_local50.wallIdx != -1) { var _local28 = new Core.Vector2(0, 0); _local28.Copy(_local38); _local28.Add(_local50.intPt); _local28.Scale(0.5); var _local41 = new Core.Vector2(0, 0); _local41.Copy(_local50.intPt); _local41.Subtract(_local38); var _local43 = _local41.Magnitude(); var _local26 = new Core.COrientedBox(); _local26.SetCenterV(_local28); _local26.SetExtents(_local64 / 2, _local43 / 2); _local26.SetAxes(-_local2.Y, _local2.X, _local2.X, _local2.Y); if (_local26.checkCollision(_local17.m_bbox) == false) { _local36 = _local36 + (_local43 - _local20); var _local27 = new Core.Vector2(_local20 * _local2.X, _local20 * _local2.Y); _local12.m_center.Copy(_local50.intPt); _local12.m_center.Subtract(_local27); _local7 = _local12.m_center.X; _local6 = _local12.m_center.Y; if (CGame.DbgShowCannonAimLine) { _local26.drawBox(m_DebugLaser, 16776960, 1); } } else { var _local69 = createWallsForBox(_local17.m_bbox); var _local46 = findCollisionWall(_local38, _local2, _local69, false); if (_local46.wallIdx != -1) { _local28.Copy(_local38); _local28.Add(_local46.intPt); _local28.Scale(0.5); _local41.Copy(_local46.intPt); _local41.Subtract(_local38); _local43 = _local41.Magnitude(); _local26.SetCenterV(_local28); _local26.SetExtents(_local64 / 2, _local43 / 2); _local36 = _local36 + (_local43 - (_local20 * 3)); var _local27 = new Core.Vector2((3 * _local20) * _local2.X, (3 * _local20) * _local2.Y); _local12.m_center.Copy(_local46.intPt); _local12.m_center.Subtract(_local27); _local7 = _local12.m_center.X; _local6 = _local12.m_center.Y; } if (CGame.DbgShowCannonAimLine) { _local26.drawBox(m_DebugLaser, 16711680, 1); } } } else { CDebug.AssertWarn(false, this, "CLauncher.TraceShot() - Ray test missed all of the walls."); } } if (i_passThrough) { } else { if (_local59[(_local18.X * _local58) + _local18.Y] != undefined) { o_collisionCoord.push(_local18.Clone()); o_collisionDist.push(_local36); break; } _local56.X = _local18.X; _local56.Y = _local18.Y; } _local3 = _local17.GetGridCoords(_local18.X, _local18.Y, true); var _local16 = _local18.X; var _local14 = _local18.Y; var _local13 = new Array(3); var _local34 = -(1 - (_local14 % 2)); if (_local7 >= _local3.X) { if (_local6 <= _local3.Y) { _local13[0] = new CCoord(_local16 + _local34, _local14 - 1); _local13[1] = new CCoord((_local16 + 1) + _local34, _local14 - 1); _local13[2] = new CCoord(_local16 + 1, _local14); } else { _local13[0] = new CCoord(_local16 + _local34, _local14 + 1); _local13[1] = new CCoord((_local16 + 1) + _local34, _local14 + 1); _local13[2] = new CCoord(_local16 + 1, _local14); } } else if (_local6 <= _local3.Y) { _local13[0] = new CCoord((_local16 + 1) + _local34, _local14 - 1); _local13[1] = new CCoord(_local16 + _local34, _local14 - 1); _local13[2] = new CCoord(_local16 - 1, _local14); } else { _local13[0] = new CCoord(_local16 - 1, _local14); _local13[1] = new CCoord(_local16 + _local34, _local14 + 1); _local13[2] = new CCoord((_local16 + 1) + _local34, _local14 + 1); } var _local37 = null; var _local33 = 0; while ((_local37 == null) && (_local33 < 3)) { var _local15 = CCoord(_local13[_local33]); var _local30 = _local17.GetTileFromCoord(_local15); if (_local30 != undefined) { var _local40 = _local17.GetGridCoords(_local15.X, _local15.Y, true); var _local47 = _local30.__get__Color(); var _local10 = new Core.COrientedBox(); _local10.SetCenter(_local40.X, _local40.Y); _local10.SetExtents(_local4 / 2, _local5 / 2); _local10.SetAxes(1, 0, 0, 1); if (_local10.checkCollision(_local12) == true) { if (CGame.DbgShowCannonAimLine) { m_DebugLaser.lineStyle(2, 65535, 100); m_DebugLaser.moveTo(_local3.X - (_local4 / 2), _local3.Y - (_local5 / 2)); m_DebugLaser.lineTo(_local3.X + (_local4 / 2), _local3.Y - (_local5 / 2)); m_DebugLaser.lineTo(_local3.X + (_local4 / 2), _local3.Y + (_local5 / 2)); m_DebugLaser.lineTo(_local3.X - (_local4 / 2), _local3.Y + (_local5 / 2)); m_DebugLaser.lineTo(_local3.X - (_local4 / 2), _local3.Y - (_local5 / 2)); _local10.drawBox(m_DebugLaser, 0, 2); _local12.drawBox(m_DebugLaser, 16711680, 3); } if (i_passThrough) { o_collisionCoord.push(_local15.Clone()); o_collisionDist.push(_local36); } if ((((_local47 == Constants.Snood_Slippery) && (m_Mode != Mode_Hook)) && (!i_passThrough)) || ((m_Mode == Mode_Hook) && (_local30.m_NoHook))) { _local48 = true; CGame.Board.m_RubberLubberHitThisShot = true; var _local27 = _local2.Clone(); _local27.NormalizeTo(_local20 / 2); _local7 = _local7 - _local27.X; _local6 = _local6 - _local27.Y; var _local39 = new Core.Vector2(_local7, _local6); if ((_local3.Y > _local10.m_center.Y) || (_local3.Y < _local10.m_center.Y)) { _local2.Y = _local2.Y * -1; } else if (_local3.Y == _local10.m_center.Y) { _local2.X = _local2.X * -1; } _local11 = _local39.X; _local9 = _local39.Y; _local75 = true; break; } _local37 = _local15; break; } } _local33++; } if (_local37 != null) { if (!i_passThrough) { o_collisionCoord.push(_local37.Clone()); o_collisionDist.push(_local36); _local36 = _local36 - _local20; break; } } _local56.X = _local18.X; _local56.Y = _local18.Y; var _local32 = _local7; var _local31 = _local6; _local7 = _local7 + (_local2.X * _local20); _local6 = _local6 + (_local2.Y * _local20); _local36 = _local36 + _local20; var _local72 = _local2.Dot(_local8[_local57].N); var _local67 = _local2.Dot(_local8[_local55].N); var _local70 = _local2.Dot(_local8[_local53].N); var _local68 = _local2.Dot(_local8[_local45].N); if ((_local7 < _local23) && (_local72 < 0)) { _local11 = _local23; _local9 = _local31 - ((_local32 - _local23) * (_local2.Y / _local2.X)); _local32 = (_local23 - _local32) + _local23; _local7 = (_local23 - _local7) + _local23; _local2.X = -_local2.X; _local8[_local57].numHits++; _local19 = true; } else if ((_local7 > _local25) && (_local67 < 0)) { _local11 = _local25; _local9 = _local31 + ((_local25 - _local32) * (_local2.Y / _local2.X)); _local32 = _local25 - (_local32 - _local25); _local7 = _local25 - (_local7 - _local25); _local2.X = -_local2.X; _local8[_local55].numHits++; _local19 = true; } if ((_local6 < _local21) && (_local70 < 0)) { _local11 = _local32 - ((_local31 - _local21) * (_local2.X / _local2.Y)); _local9 = _local21; _local31 = (_local21 - _local31) + _local21; _local6 = (_local21 - _local6) + _local21; _local2.Y = -_local2.Y; _local8[_local53].numHits++; _local19 = true; } else if ((_local6 > _local24) && (_local68 < 0)) { _local11 = _local32 + ((_local24 - _local31) * (_local2.X / _local2.Y)); _local9 = _local24; _local31 = _local24 - (_local31 - _local24); _local6 = _local24 - (_local6 - _local24); _local2.Y = -_local2.Y; _local8[_local45].numHits++; _local19 = true; } if (_local19) { if (i_passThrough) { _local54++; } else { if ((_local9 == _local21) && (CBoardVertical(_local79) != null)) { var _local22 = _local17.PixelPosToGridCell(_local11, _local9); if (_local59[(_local22.X * _local58) + _local22.Y] == null) { var _local44 = CGame.TileSet.GetNeighborCoordsOfCoord(_local22); _local33 = 0; while (_local19 && (_local33 < _local44.length)) { var _local29 = CCoord(_local44[_local33]); if (_local59[(_local29.X * _local58) + _local29.Y] != null) { _local51 = true; _local78 = _local29.Clone(); _local3 = _local17.GetGridCoords(_local22.X, _local22.Y, true); _local7 = _local3.X; _local6 = _local3.Y; _local19 = false; _local66 = _local22.Clone(); } _local33++; } } } if (!_local51) { _local60 = true; _local54++; } } } if (((!_local51) && (_local8[_local45].numHits > 0)) && (!_local82)) { break; } if (((_local19 || (_local48)) && (_local54 < _local74)) && ((((_local8[_local45].numHits == 0) || (_local8[_local57].numHits == 0)) || (_local8[_local55].numHits == 0)) || (_local8[_local53].numHits == 0))) { var _local49 = new Core.Vector2(_local11 - _local52.X, _local9 - _local52.Y); o_vecArr.push(_local49); _local52.X = _local11; _local52.Y = _local9; if (CGame.DbgShowCannonAimLine) { m_DebugLaser.lineStyle(10, 16711935, 100); m_DebugLaser.moveTo(_local11 - 40, _local9); m_DebugLaser.lineTo(_local11 + 40, _local9); m_DebugLaser.moveTo(_local11, _local9 - 40); m_DebugLaser.lineTo(_local11, _local9 + 40); } if (i_drawLaser) { var _local90 = _local49.Clone(); _local90.Add(_local42); _local42.X = 0; _local42.Y = 0; if (_local11 == _local23) { _local90.X = _local90.X - (_local4 / 2); _local42.X = _local42.X + (_local4 / 2); } else if (_local11 == _local25) { _local90.X = _local90.X + (_local4 / 2); _local42.X = _local42.X - (_local4 / 2); } if (_local9 == _local21) { _local90.Y = _local90.Y - (_local5 / 2); _local42.Y = _local42.Y + (_local5 / 2); } else if (_local9 == _local24) { _local90.Y = _local90.Y + (_local5 / 2); _local42.Y = _local42.Y - (_local5 / 2); } if (!_local73) { _local90.Subtract(_local83); _local73 = true; } if (!traceLaser(_local90, i_passThrough)) { return(null); } } else if (_local81 && (_local19 || (_local48))) { var _local65 = new Core.Vector2(_local11 - _local49.X, _local9 - _local49.Y); var _local86 = new Core.Vector2(_local11, _local9); _local65.X = Math.round(_local65.X); _local65.Y = Math.round(_local65.Y); _local86.X = Math.round(_local86.X); _local86.Y = Math.round(_local86.Y); var _local96 = Math.round(_local23); var _local93 = Math.round(_local21); var _local98 = Math.round(_local25); var _local99 = Math.round(_local24); var _local92 = true; var _local63 = true; if ((((_local65.X != _local96) && (_local65.X != _local98)) && (_local65.Y != _local93)) && (_local65.Y != _local99)) { _local92 = false; } if ((((_local86.X != _local96) && (_local86.X != _local98)) && (_local86.Y != _local93)) && (_local86.Y != _local99)) { _local63 = false; } if (_local65.X == _local96) { _local65.X = _local65.X - ((_local4 / 2) - 5); } else if (_local65.X == _local98) { _local65.X = _local65.X + ((_local4 / 2) - 5); } if (_local65.Y == _local93) { _local65.Y = _local65.Y - ((_local5 / 2) - 5); } else if (_local65.Y == _local99) { _local65.Y = _local65.Y + ((_local5 / 2) - 5); } if (_local86.X == _local96) { _local86.X = _local86.X - ((_local4 / 2) - 5); } else if (_local86.X == _local98) { _local86.X = _local86.X + ((_local4 / 2) - 5); } if (_local86.Y == _local93) { _local86.Y = _local86.Y - ((_local5 / 2) - 5); } else if (_local86.Y == _local99) { _local86.Y = _local86.Y + ((_local5 / 2) - 5); } traceReboundLaser(_local65, _local86, _local92, _local63); m_ReboundLasersDrawn = true; } } } var _local77 = new Core.Vector2(_local7 - _local52.X, _local6 - _local52.Y); _local77.X = Oberon.MathX.roundDecPl(_local77.X, 3); _local77.Y = Oberon.MathX.roundDecPl(_local77.Y, 3); if ((_local77.X != 0) || (_local77.Y != 0)) { o_vecArr.push(_local77); } else { CDebug.WriteLine("CLauncher", "Attempted to add a zero-length TraceShot last vector."); CDebug.AssertWarn(false, "CLauncher", "Attempted to add a zero-length TraceShot last vector."); } if ((!i_drawLaser) && (!_local51)) { _local66 = new CCoord(Math.min(Math.max(0, _local56.X), Level.m_BoardColumns - 1), Math.min(Math.max(0, _local56.Y), Level.m_BoardRows - 1)); } if (i_drawLaser) { var _local90 = _local77.Clone(); _local90.Add(_local42); if (!_local73) { _local90.Subtract(_local83); _local73 = true; } if (!traceLaser(_local90, i_passThrough)) { return(null); } if (m_Mode == Mode_Hook) { var _local106 = _local17.GetTileFromCoord(_local37); var _local104 = CCoord.ToLocal(_local106, CBoard.G.TraceLaserHolderMc); m_LastLaserTargetCoord = new CCoord(_local104.X - (_local4 / 2), _local104.Y - (_local5 / 2)); } else { m_LastLaserTargetCoord = new CCoord(_local3.X - (_local4 / 2), _local3.Y - (_local5 / 2)); } } else if (_local81 && (_local54 != 0)) { var _local65 = new Core.Vector2(_local52.X, _local52.Y); var _local86 = new Core.Vector2(_local7, _local6); if (_local51) { var _local106 = _local17.GetTileFromCoord(_local78); var _local104 = CCoord.ToLocal(_local106, CBoard.G.TraceLaserHolderMc); _local86 = new Core.Vector2(_local104.X, _local104.Y); } var _local92 = true; _local65.X = Math.round(_local65.X); _local65.Y = Math.round(_local65.Y); _local86.X = Math.round(_local86.X); _local86.Y = Math.round(_local86.Y); var _local96 = Math.round(_local23); var _local93 = Math.round(_local21); var _local98 = Math.round(_local25); var _local99 = Math.round(_local24); if ((((_local65.X != _local96) && (_local65.X != _local98)) && (_local65.Y != _local93)) && (_local65.Y != _local99)) { _local92 = false; } if (_local65.X == _local96) { _local65.X = _local65.X - ((_local4 / 2) - 5); } else if (_local65.X == _local98) { _local65.X = _local65.X + ((_local4 / 2) - 5); } if (_local65.Y == _local93) { _local65.Y = _local65.Y - ((_local5 / 2) - 5); } else if (_local65.Y == _local99) { _local65.Y = _local65.Y + ((_local5 / 2) - 5); } traceReboundLaser(_local65, _local86, _local92, false); } m_ShouldRedraw = false; if ((((_local54 >= _local74) || ((((_local8[_local45].numHits > 0) && (_local8[_local57].numHits > 0)) && (_local8[_local55].numHits > 0)) && (_local8[_local53].numHits > 0))) || (((_local8[_local45].numHits > 0) && (_local8[_local53].numHits > 0)) && (!_local82))) || (((_local8[_local45].numHits > 0) && (_local75)) && (!_local82))) { _local77 = Core.Vector2(o_vecArr[o_vecArr.length - 1]); if (_local77 != null) { _local77.NormalizeTo(_local77.Magnitude() + (_local5 * 15)); } _local66 = null; } else if ((i_drawLaser && (m_lastLaser != null)) && ((m_lastLaser + 1) < m_Lasers.length)) { var _local107 = MovieClip(m_Lasers[m_lastLaser]); var _local89 = MovieClip(m_Lasers[0]); _local89._visible = true; _local89._x = m_LastLaserTargetCoord.X + (_local4 / 2); _local89._y = m_LastLaserTargetCoord.Y + (_local5 / 2); _local89._rotation = _local107._rotation; var _local103 = new Color(_local89); if (((m_CannonSnood != null) && (m_CannonSnood._visible)) && (m_CannonSnood.__get__Color() <= (Constants.Snood_HeadCount * 2))) { _local103.setRGB(Constants.s_BorbColorDarkTints[m_CannonSnood.__get__Color() - 1]); } else { _local103.setRGB(16777215); } } return(_local66); } function testRaySegmentInt(r0, v, w0, w1) { var _local3 = new Core.Vector2(w0.X, w0.Y); _local3.Subtract(w1); var _local5 = new Core.Vector2(w0.X, w0.Y); _local5.Subtract(r0); var _local4 = v.Cross(_local3); if (_local4 == 0) { return({x:0, y:0, u:Number.POSITIVE_INFINITY}); } var _local1 = v.Cross(_local5) / _local4; var _local7 = ((1 - _local1) * w0.X) + (_local1 * w1.X); var _local6 = ((1 - _local1) * w0.Y) + (_local1 * w1.Y); return({x:_local7, y:_local6, u:_local1}); } function createWallsForBox(box) { var _local2 = new Core.Vector2(box.m_axesR.X * box.m_extentsR, box.m_axesR.Y * box.m_extentsR); var _local3 = new Core.Vector2(box.m_axesU.X * box.m_extentsU, box.m_axesU.Y * box.m_extentsU); var _local5 = new Core.Vector2((box.m_center.X - _local2.X) + _local3.X, (box.m_center.Y - _local2.Y) + _local3.Y); var _local8 = new Core.Vector2((box.m_center.X + _local2.X) + _local3.X, (box.m_center.Y + _local2.Y) + _local3.Y); var _local7 = new Core.Vector2((box.m_center.X - _local2.X) - _local3.X, (box.m_center.Y - _local2.Y) - _local3.Y); var _local6 = new Core.Vector2((box.m_center.X + _local2.X) - _local3.X, (box.m_center.Y + _local2.Y) - _local3.Y); var _local9 = new Core.Vector2(box.m_axesR.X, box.m_axesR.Y); var _local10 = new Core.Vector2(-box.m_axesR.X, box.m_axesR.Y); var _local12 = new Core.Vector2(box.m_axesU.X, box.m_axesU.Y); var _local11 = new Core.Vector2(box.m_axesU.X, -box.m_axesU.Y); var _local4 = new Array(); _local4.push({w0:_local7, w1:_local6, N:_local11}); _local4.push({w0:_local5, w1:_local7, N:_local10}); _local4.push({w0:_local8, w1:_local6, N:_local9}); _local4.push({w0:_local5, w1:_local8, N:_local12}); return(_local4); } function findCollisionWall(projPos, velocity, aWalls, bInside) { var _local10 = Number.MAX_VALUE; var _local8 = new Object(); _local8.intPt = new Core.Vector2(0, 0); _local8.wallIdx = -1; var _local3 = 0; while (_local3 < aWalls.length) { var _local4 = aWalls[_local3]; if (velocity.Dot(_local4.N) > 0) { } else { var _local2 = testRaySegmentInt(projPos, velocity, _local4.w0, _local4.w1); if (((_local2.u != Number.POSITIVE_INFINITY) && (_local2.u >= 0)) && (_local2.u <= 1)) { var _local6 = projPos.X - _local2.x; var _local5 = projPos.Y - _local2.x; var _local7 = (_local6 * _local6) + (_local5 * _local5); if ((_local7 > _local10) && (bInside == false)) { } else { _local10 = _local7; _local8.wallIdx = _local3; _local8.intPt.X = _local2.x; _local8.intPt.Y = _local2.y; if (bInside == true) { break; } } } } _local3++; } return(_local8); } function rotateColor(i_color) { switch (i_color) { case 255 : return(65280); case 65280 : return(16711680); case 16711680 : return(65535); case 65535 : return(16711935); case 16711935 : return(255); } return(16777215); } static var s_MaxAngle = 75; static var s_BaseMouseSensitivity = 0.2; static var s_LaserClipPoolSize = 6; static var s_ReboundLaserClipPoolSize = 7; static var s_ReboundTraceThreshold = 1.5; static var s_PowerupAnimDur = 1.2; static var s_MouseSensitivity = s_BaseMouseSensitivity; static var s_CannonAnimNone = 1; static var s_CannonAnimDefault = 2; static var s_CannonAnimVacum = 3; static var s_CannonAnimBubble = 4; static var s_CannonAnimFireball = 5; var m_Orient = Orient_Bottom; var m_AngularOffset = 0; var m_Angle = 0; var m_Mode = 0; var m_DebugLaser = null; var m_OldAngle = 0; var m_LauncherBottomMc = null; var m_MiniLazerMc = null; var m_LauncherAnimsMc = null; var m_AimerBaseMc = null; var m_CannonSnood = null; var m_CannonPlunger = null; var m_LaunchSnood = null; static var m_SnoodSize = Constants.BoardMode_Easy; var m_showTracer = false; static var Orient_Top = 0; static var Orient_Bottom = 1; static var Orient_Left = 2; static var Orient_Right = 3; static var Mode_Normal = 0; static var Mode_Hook = 1; static var Access_Disabled = 0; static var Access_MouseDisabled = 1; static var Access_Enabled = 2; static var State_Empty = 0; static var State_Loaded = 1; static var State_Waiting = 2; }
Symbol 59 MovieClip [__Packages.CLauncherTrack] Frame 0
class CLauncherTrack extends MovieClip { static var m_labels; var m_Launcher, LauncherFull, stop; function CLauncherTrack () { super(); } function GetNextOrient() { if (m_targetOrient != null) { return(m_targetOrient); } return(m_Launcher.m_Orient); } function AdvancePos() { CDebug.WriteErr("CLauncherTrack.AdvancePos()", "Shouldn't be here"); } function onLoad() { if (m_labelLoc == null) { m_labelLoc = Oberon.MovieClipX.GetAnimFrameLabels(this, m_labels); } m_Launcher = CLauncher(LauncherFull.Launcher); CDebug.Assert(m_Launcher != null, this, "Launcher is null"); stop(); } function onUnload() { } function SetOrientation(i_orient, i_immediate) { CDebug.WriteErr("CLauncherTrack.SetOrientation()", "Shouldn't be here"); } function OnPlayUpdate(i_deltaT) { UpdateAngleByMouse(); } function IsBusy() { return(m_targetOrient != null); } function onAdvanceCompleteCw() { SetOrientation(m_targetOrient, true, true); } function onAdvanceCompleteCcw() { SetOrientation(m_targetOrient, true, false); } function UpdateAngleByMouse() { var _local2 = Key.isDown(16); m_Launcher.UpdateAngleByMouse(_local2); } function GetLauncher() { if (m_Launcher == null) { m_Launcher = CLauncher(LauncherFull.Launcher); } return(m_Launcher); } function getOrientNextInOrder(i_orient) { CDebug.WriteErr("CLauncherTrack.getOrientNextInOrder()", "Shouldn't be here"); return(null); } function getOrientNextInOrderAsStr(i_orient) { CDebug.WriteErr("CLauncherTrack.getOrientNextInOrderAsStr()", "Shouldn't be here"); return("<unknown>"); } static var AdvanceTime = 1; var m_targetOrient = null; var m_tweenToOrient = null; static var m_labelLoc = null; }
Symbol 60 MovieClip [__Packages.CCharacterSounds] Frame 0
class CCharacterSounds { static var m_lastPowerupSound; function CCharacterSounds () { } static function SetCharacterVolumes(i_soundDb) { var _local3 = AllCharacterSounds.concat(); _local3 = _local3.concat(AllBubbleSounds, AllWildSounds, AllSureShotSounds, AllPlungerSounds, AllHotfootSounds); var _local1 = 0; while (_local1 < _local3.length) { var _local2; switch (_local3[_local1]) { case Constants.__get__Sound_WheeCrabby1() : case Constants.__get__Sound_WheeDeeJay1() : case Constants.__get__Sound_WheeEffy2() : case Constants.__get__Sound_WheeFrank2() : case Constants.__get__Sound_WheeFuzzball() : case Constants.__get__Sound_WheeMaryAnn() : case Constants.__get__Sound_WheePearl2() : case Constants.__get__Sound_WheeSandy1() : _local2 = 70; break; default : _local2 = 150; } i_soundDb.SetVolume(_local3[_local1], _local2); _local1++; } } static function GetCharacterSound(i_snoodColor, i_charSoundCat) { switch (i_charSoundCat) { case Constants.__get__CharSound_Waking() : switch (i_snoodColor) { case Constants.Snood_Crabby : return(Constants.__get__Sound_WakingCrabby1()); case Constants.Snood_Star : return(Constants.__get__Sound_WakingDeeJay()); case Constants.Snood_Holly : return(Constants.__get__Sound_WakingEffy()); case Constants.Snood_Frank : return(Constants.__get__Sound_WakingFrank2()); case Constants.Snood_Fuzzball : return(Constants.__get__Sound_WakingFuzzball3()); case Constants.Snood_Mary : return(Constants.__get__Sound_WakingMaryAnn2()); case Constants.Snood_Pearl : return(Constants.__get__Sound_WakingPearl2()); case Constants.Snood_Sandy : return(Constants.__get__Sound_WakingSandy1()); switch (i_snoodColor) { case Constants.Snood_Crabby : return(Constants.__get__Sound_WheeCrabby1()); case Constants.Snood_Star : return(Constants.__get__Sound_WheeDeeJay1()); case Constants.Snood_Holly : return(Constants.__get__Sound_WheeEffy2()); case Constants.Snood_Frank : return(Constants.__get__Sound_WheeFrank2()); case Constants.Snood_Fuzzball : return(Constants.__get__Sound_WheeFuzzball()); case Constants.Snood_Mary : return(Constants.__get__Sound_WheeMaryAnn()); case Constants.Snood_Pearl : return(Constants.__get__Sound_WheePearl2()); case Constants.Snood_Sandy : return(Constants.__get__Sound_WheeSandy1()); } } case Constants.__get__CharSound_Whee() : switch (i_snoodColor) { case Constants.Snood_Crabby : return(Constants.__get__Sound_WheeCrabby1()); case Constants.Snood_Star : return(Constants.__get__Sound_WheeDeeJay1()); case Constants.Snood_Holly : return(Constants.__get__Sound_WheeEffy2()); case Constants.Snood_Frank : return(Constants.__get__Sound_WheeFrank2()); case Constants.Snood_Fuzzball : return(Constants.__get__Sound_WheeFuzzball()); case Constants.Snood_Mary : return(Constants.__get__Sound_WheeMaryAnn()); case Constants.Snood_Pearl : return(Constants.__get__Sound_WheePearl2()); case Constants.Snood_Sandy : return(Constants.__get__Sound_WheeSandy1()); } } return(null); } static function GetCharPowerupSound(i_snoodColor, i_powerUp) { switch (i_powerUp) { case Constants.PowerUp_BubbleBubble : return(Constants.__get__Sound_BubbleFuzzball()); case Constants.PowerUp_Aimer : return(Constants.__get__Sound_SureShotSandy()); case Constants.PowerUp_Fireball : return(Constants.__get__Sound_HotfootFrank()); case Constants.PowerUp_Hook : return(Constants.__get__Sound_PlungerDeeJay()); } return(null); } static function PlayCharPowerupSound(i_snoodColor, i_powerUp) { var _local1 = GetCharPowerupSound(i_snoodColor, i_powerUp); if (_local1 != null) { if ((m_lastPowerupSound == null) || (!CGame.Sounds.IsSoundPlaying(m_lastPowerupSound))) { CGame.Sounds.PlaySound(_local1); } m_lastPowerupSound = _local1; } } static function PlayWildSounds() { CGame.Sounds.PlaySound(AllWildSounds[0]); } static function PlayWhees(i_droppedBorbs) { if (i_droppedBorbs.length > 3) { var _local1 = i_droppedBorbs[0].Color; var _local3 = new Array(); playDelayedSound(GetCharacterSound(_local1, Constants.__get__CharSound_Whee()), 0.1); _local3.push(_local1); if (i_droppedBorbs.length > 5) { _local1 = i_droppedBorbs[Math.floor(i_droppedBorbs.length / 2)].Color; if (Oberon.ArrayX.IndexOf(_local3, _local1) == -1) { playDelayedSound(GetCharacterSound(_local1, Constants.__get__CharSound_Whee()), 0.3); _local3.push(_local1); } if (i_droppedBorbs.length > 7) { _local1 = i_droppedBorbs[i_droppedBorbs.length - 1].Color; if (Oberon.ArrayX.IndexOf(_local3, _local1) == -1) { playDelayedSound(GetCharacterSound(_local1, Constants.__get__CharSound_Whee()), 0.5); } } } } } static function PlayLumpDrops(i_droppedBorbs) { if (i_droppedBorbs.length > 0) { playDelayedSound(Constants.__get__Sound_LumpDrop(), 0.05); if (i_droppedBorbs.length > 2) { playDelayedSound(Constants.__get__Sound_LumpDrop(), 0.15); if (i_droppedBorbs.length > 4) { playDelayedSound(Constants.__get__Sound_LumpDrop(), 0.3); } } } } static function playDelayedSound(i_soundNum, i_delay) { var _local1 = Effects.CEffect_DelayedSound(CEffect.CreateEffect(CEffect.Type_DelayedSound)); if (_local1.OnInit(i_soundNum, i_delay)) { CGame.EffectMgr.AddEffectToActiveList(_local1); } } static var AllCharacterSounds = [Constants.__get__Sound_WakingCrabby1(), Constants.__get__Sound_WakingDeeJay(), Constants.__get__Sound_WakingEffy(), Constants.__get__Sound_WakingMaryAnn2(), Constants.__get__Sound_WakingFrank2(), Constants.__get__Sound_WakingFuzzball3(), Constants.__get__Sound_WakingPearl2(), Constants.__get__Sound_WakingSandy1(), Constants.__get__Sound_WheeCrabby1(), Constants.__get__Sound_WheeDeeJay1(), Constants.__get__Sound_WheeEffy2(), Constants.__get__Sound_WheeFrank2(), Constants.__get__Sound_WheeFuzzball(), Constants.__get__Sound_WheeMaryAnn(), Constants.__get__Sound_WheeSandy1(), Constants.__get__Sound_WheePearl2()]; static var AllBubbleSounds = [Constants.__get__Sound_BubbleFuzzball()]; static var AllWildSounds = [Constants.__get__Sound_WildMaryAnn()]; static var AllPlungerSounds = [Constants.__get__Sound_PlungerDeeJay()]; static var AllSureShotSounds = [Constants.__get__Sound_SureShotSandy()]; static var AllHotfootSounds = [Constants.__get__Sound_HotfootFrank()]; }
Symbol 61 MovieClip [__Packages.SoundDb] Frame 0
class SoundDb extends MovieClip { var m_MusicPauseCount, m_musicClip, m_effectsClip, m_voiceClip, m_music, m_voice, m_effects, m_SoundDb, m_master, m_HostAppMultiInstanceSounds; function SoundDb () { super(); CDebug.WriteLine("SoundDb", ("Initialize (" + Constants.__get__Sound_Count()) + " sounds)"); m_MusicPauseCount = 0; m_musicClip = CGame.SoundImport.createEmptyMovieClip("MusicRoot", CGame.SoundImport.getNextHighestDepth()); m_effectsClip = CGame.SoundImport.createEmptyMovieClip("EffectRoot", CGame.SoundImport.getNextHighestDepth()); m_voiceClip = CGame.SoundImport.createEmptyMovieClip("VoiceRoot", CGame.SoundImport.getNextHighestDepth()); m_music = new Sound(m_musicClip); m_voice = new Sound(m_voiceClip); m_effects = new Sound(m_effectsClip); m_SoundDb = new Array(Constants.__get__Sound_Count()); var _local8 = getTimer(); var _local5 = 0; while (_local5 < Constants.__get__Sound_Count()) { var _local4; var _local3 = CSoundConstants.GetSoundInfoByNumber(_local5); if (_local3.channel == Constants.__get__SoundChannel_Music()) { _local4 = m_musicClip.createEmptyMovieClip("Sound" + _local3.name, _local5); } else if (_local3.channel == Constants.__get__SoundChannel_Voice()) { _local4 = m_voiceClip.createEmptyMovieClip("Sound" + _local3.name, _local5); } else { _local4 = m_effectsClip.createEmptyMovieClip("Sound" + _local3.name, _local5); } var _local7 = new Sound(_local4); _local7.attachSound(_local3.name); var _local6 = new SoundEntry(); _local6.SetSound(_local7); _local6.m_PlayedTime = _local8; m_SoundDb[_local5] = _local6; _local5++; } m_master = new Sound(CGame.SoundImport); SetMusicVolume(Constants.__get__VolumeDefault_Music()); SetEffectsVolume(Constants.__get__VolumeDefault_Effects()); SetVoiceVolume(Constants.__get__VolumeDefault_Voice()); m_SoundDb[Constants.__get__Sound_Bounce()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bounce2x()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bounce3x()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bomb()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_BubbleFirst()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bubble2()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bubble3()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bubble4()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bubble5()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bubble6()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Bubble7()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_BubbleLast()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_BubbleFuzzball()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_Points()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_LumpDrop()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_ButtonClick()].m_MultipleInstancesAllowed = true; m_SoundDb[Constants.__get__Sound_ButtonHover()].m_MultipleInstancesAllowed = true; SetVolume(Constants.__get__Sound_LumpDrop(), 50); _local5 = 0; while (_local5 < CCharacterSounds.AllCharacterSounds.length) { m_SoundDb[CCharacterSounds.AllCharacterSounds[_local5]].m_MultipleInstancesAllowed = true; _local5++; } CCharacterSounds.SetCharacterVolumes(this); } function IsSoundPlaying(inSound) { var _local4 = CSoundConstants.GetSoundInfoByNumber(inSound); var _local2 = m_SoundDb[inSound]; if ((((_local2 != null) && (_local2.m_Sound != null)) && (_local2.m_Sound.position != null)) && (_local2.m_Sound.duration)) { return((_local2.m_Sound.position < _local2.m_Sound.duration) && (_local2.m_Sound.position > 0)); } return(false); } function PlaySoundMulti(inSound) { var _local3 = CSoundConstants.GetSoundInfoByNumber(inSound); if (!m_SoundDb[inSound].m_MultipleInstancesAllowed) { m_SoundDb[inSound].m_MultipleInstancesAllowed = true; } PlaySound(inSound); } function PlaySound(inSound, inOnComplete) { var _local5 = CSoundConstants.GetSoundInfoByNumber(inSound); var _local3 = getTimer(); if ((m_SoundDb[inSound].m_MultipleInstancesAllowed || (m_SoundDb[inSound].m_Looping)) || (!IsSoundPlaying(inSound))) { if (m_SoundDb[inSound].m_Looping) { if (m_SoundDb[inSound].m_LoopPlayCount == 0) { m_SoundDb[inSound].m_Sound.start(0, 999); } m_SoundDb[inSound].m_LoopPlayCount = m_SoundDb[inSound].m_LoopPlayCount + 1; } else { m_SoundDb[inSound].m_Sound.start(0, m_SoundDb[inSound].m_PlayTimes); } m_SoundDb[inSound].m_PlayedTime = _local3; } if (inOnComplete != null) { m_SoundDb[inSound].m_OnCompleteCallbacks = new Array(); m_SoundDb[inSound].m_OnCompleteCallbacks.push(inOnComplete); } } function PlayLoopingSound(inSound) { var _local3 = CSoundConstants.GetSoundInfoByNumber(inSound); m_SoundDb[inSound].m_Looping = true; PlaySound(inSound); } function SetNextSound(inSound, inNextSound) { m_SoundDb[inSound].m_OnCompleteCallbacks.push(function () { _global.Sounds.PlaySound(inNextSound); }); } function ClearNextSound(inSound) { m_SoundDb[inSound].m_Sound.onSoundComplete = null; } function StopSound(inSound, inFadeOut, inFadeTime) { var _local4 = CSoundConstants.GetSoundInfoByNumber(inSound); var _local2 = SoundEntry(m_SoundDb[inSound]); if (_local2.m_Looping) { _local2.m_LoopPlayCount = _local2.m_LoopPlayCount - 1; if (_local2.m_LoopPlayCount < 0) { _local2.m_LoopPlayCount = 0; } } _local2.m_Sound.stop("Sound" + CSoundConstants.GetSoundInfoByNumber(inSound).name); _local2.m_Looping = false; } function StopAll(inFadeOut, inFadeTime) { StopAllChannel(Constants.__get__SoundChannel_Effects(), inFadeOut, inFadeTime); StopAllChannel(Constants.__get__SoundChannel_Music(), inFadeOut, inFadeTime); StopAllChannel(Constants.__get__SoundChannel_Voice(), inFadeOut, inFadeTime); } function StopAllChannel(inChannelId, inFadeOut, inFadeTime) { var _local3; var _local2 = 0; while (_local2 < Constants.__get__Sound_Count()) { _local3 = CSoundConstants.GetSoundInfoByNumber(_local2); if (_local3.channel == inChannelId) { ForceStopSound(_local2, inFadeOut, inFadeTime); } _local2++; } } function PauseAllSounds(inFade, inFadeTime) { var _local1 = new Object(); if (inFade) { _local1.fadeout = true; if (inFadeTime != undefined) { _local1.fadetime = inFadeTime; } } } function ResumeAllSounds(inFade, inFadeTime) { var _local1 = new Object(); if (inFade) { _local1.fadeout = true; if (inFadeTime != undefined) { _local1.fadetime = inFadeTime; } } } function ForceStopSound(inSound, inFadeOut, inFadeTime) { var _local3 = CSoundConstants.GetSoundInfoByNumber(inSound); m_SoundDb[inSound].m_LoopPlayCount = 0; m_SoundDb[inSound].m_Sound.stop(_local3.name); } function GetMute() { return(m_muted); } function SetMute(i_val) { if (m_muted != i_val) { if (i_val) { m_master.setVolume(0); } else { m_master.setVolume(m_masterVol); } } m_muted = i_val; } function SetMasterVolume(inVolume) { m_masterVol = inVolume; if (!m_muted) { m_master.setVolume(inVolume); } } function SetMusicVolume(inVolume) { m_music.setVolume(inVolume); } function GetMusicVolume() { var _local2 = 0; _local2 = m_music.getVolume(); return(_local2); } function SetVoiceVolume(inVolume) { m_voice.setVolume(inVolume); } function GetVoiceVolume() { var _local2 = 0; _local2 = m_voice.getVolume(); return(_local2); } function SetEffectsVolume(inVolume) { m_effects.setVolume(inVolume); } function GetEffectsVolume() { var _local2 = 0; _local2 = m_effects.getVolume(); return(_local2); } function SetVolume(inSound, inVolume) { var _local3 = CSoundConstants.GetSoundInfoByNumber(inSound); m_SoundDb[inSound].m_Sound.setVolume(inVolume); } function IsStreamLooping(inSound) { var _local3 = CSoundConstants.GetSoundInfoByNumber(inSound); return(m_SoundDb[inSound].m_Looping); } function IsMultipleInstanceAllowed(inSound) { var _local3 = CSoundConstants.GetSoundInfoByNumber(inSound); return(m_SoundDb[inSound].m_MultipleInstancesAllowed); } function AddMultiInstanceSound(inSound) { if (!IsMultipleInstanceAllowed(inSound)) { m_HostAppMultiInstanceSounds.push(inSound); } } function RemoveMultiInstanceSound(inSound) { Oberon.ArrayX.RemoveFrom(m_HostAppMultiInstanceSounds, inSound); } var m_muted = false; var m_masterVol = 100; }
Symbol 62 MovieClip [__Packages.CSoundConstants] Frame 0
class CSoundConstants { function CSoundConstants () { } static function GetSoundInfoByNumber(inSoundId) { switch (inSoundId) { case Constants.__get__Sound_Shoot() : return({name:"Fire", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bounce() : return({name:"BounceWalls", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bounce2x() : return({name:"BounceWalls2x", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bounce3x() : return({name:"BounceWalls3x", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Drop() : return({name:"DropSnoods", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_BigDrop() : return({name:"DropLotsSnoods", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Wild() : return({name:"WildZoomLoop", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Stick() : return({name:"LockInPlace", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bomb() : return({name:"BombExplode", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_ButtonClick() : return({name:"MenuButtonClick", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_ButtonHover() : return({name:"MenuButtonPassOver", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Whoosh() : return({name:"Whoosh", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_BallSpin() : return({name:"SnoodballSpin", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Hook() : return({name:"SnoodRevHook", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Pop() : return({name:"SnoodRevPop", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_BoardStart() : return({name:"BoardStart", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Lose() : return({name:"Lose", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_BreakCrate() : return({name:"BreakCrate", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Shroud() : return({name:"ShroudRemove", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_WakingCrabby1() : return({name:"WakingCrabby1", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WakingDeeJay() : return({name:"WakingDeeJay", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WakingEffy() : return({name:"WakingEffy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WakingFrank2() : return({name:"WakingFrank2", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WakingFuzzball3() : return({name:"WakingFuzzball3", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WakingMaryAnn2() : return({name:"WakingMaryAnn2", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WakingPearl2() : return({name:"WakingPearl2", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WakingSandy1() : return({name:"WakingSandy1", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheeCrabby1() : return({name:"WheeCrabby1", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheeDeeJay1() : return({name:"WheeDeeJay1", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheeEffy2() : return({name:"WheeEffy2", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheeFrank2() : return({name:"WheeFrank2", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheeFuzzball() : return({name:"WheeFuzzball", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheeMaryAnn() : return({name:"WheeMaryAnn", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheePearl2() : return({name:"WheePearl2", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WheeSandy1() : return({name:"WheeSandy1", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleCrabby() : return({name:"BubbleCrabby", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleDeeJay() : return({name:"BubbleDeeJay", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleEffy() : return({name:"BubbleEffy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleFrank() : return({name:"BubbleFrank", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleFuzzball() : return({name:"BubbleFuzzball", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleMaryAnn() : return({name:"BubbleMaryAnn", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubblePearl() : return({name:"BubblePearl", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleSandy() : return({name:"BubbleSandy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotCrabby() : return({name:"SureShotCrabby", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotDeeJay() : return({name:"SureShotDeeJay", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotEffy() : return({name:"SureShotEffy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotFrank() : return({name:"SureShotFrank", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotFuzzball() : return({name:"SureShotFuzzball", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotMaryAnn() : return({name:"SureShotMaryAnn", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotPearl() : return({name:"SureShotPearl", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_SureShotSandy() : return({name:"SureShotSandy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootCrabby() : return({name:"HotfootCrabby", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootDeeJay() : return({name:"HotfootDeeJay", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootEffy() : return({name:"HotfootEffy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootFrank() : return({name:"HotfootFrank", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootFuzzball() : return({name:"HotfootFuzzball", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootMaryAnn() : return({name:"HotfootMaryAnn", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootPearl() : return({name:"HotfootPearl", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_HotfootSandy() : return({name:"HotfootSandy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerCrabby() : return({name:"PlungerCrabby", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerDeeJay() : return({name:"PlungerDeeJay", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerEffy() : return({name:"PlungerEffy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerFrank() : return({name:"PlungerFrank", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerFuzzball() : return({name:"PlungerFuzzball", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerMaryAnn() : return({name:"PlungerMaryAnn", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerPearl() : return({name:"PlungerPearl", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_PlungerSandy() : return({name:"PlungerSandy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildCrabby() : return({name:"WildCrabby", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildDeeJay() : return({name:"WildDeeJay", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildEffy() : return({name:"WildEffy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildFrank() : return({name:"WildFrank", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildFuzzball() : return({name:"WildFuzzball", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildMaryAnn() : return({name:"WildMaryAnn", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildPearl() : return({name:"WildPearl", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_WildSandy() : return({name:"WildSandy", bPlayInHost:false, channel:Constants.__get__SoundChannel_Voice()}); case Constants.__get__Sound_BubbleFirst() : return({name:"Pop1", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bubble2() : return({name:"Pop2", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bubble3() : return({name:"Pop3", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bubble4() : return({name:"Pop4", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bubble5() : return({name:"Pop5", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bubble6() : return({name:"Pop6", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Bubble7() : return({name:"Pop7", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_BubbleLast() : return({name:"Pop8", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Applause() : return({name:"Applause", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_PlungerGrab() : return({name:"PlungerGrab", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Plunger() : return({name:"Plunger", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_LumpDrop() : return({name:"LumpDrop", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Hotfoot() : return({name:"Hotfoot", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_HotfootBurn() : return({name:"HotfootBurn", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Rubber() : return({name:"Rubber", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_SureShot() : return({name:"SureShot", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_BubbleBubble() : return({name:"Bubble", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_BubbleBubbleHit() : return({name:"BubbleHit", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_Points() : return({name:"Points", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_FishyFly() : return({name:"FishyFly", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); case Constants.__get__Sound_FishyLand() : return({name:"FishyLand", bPlayInHost:false, channel:Constants.__get__SoundChannel_Effects()}); } return("<Unknown>"); } static function GetSoundNumFromName(inSoundName) { switch (inSoundName) { case "Fire" : return(Constants.__get__Sound_Shoot()); case "BounceWalls" : return(Constants.__get__Sound_Bounce()); case "BounceWalls2x" : return(Constants.__get__Sound_Bounce2x()); case "BounceWalls3x" : return(Constants.__get__Sound_Bounce3x()); case "DropSnoods" : return(Constants.__get__Sound_Drop()); case "DropLotsSnoods" : return(Constants.__get__Sound_BigDrop()); case "WildZoomLoop" : return(Constants.__get__Sound_Wild()); case "LockInPlace" : return(Constants.__get__Sound_Stick()); case "BombExplode" : return(Constants.__get__Sound_Bomb()); case "MenuButtonClick" : return(Constants.__get__Sound_ButtonClick()); case "MenuButtonPassOver" : return(Constants.__get__Sound_ButtonHover()); case "Whoosh" : return(Constants.__get__Sound_Whoosh()); case "SnoodballSpin" : return(Constants.__get__Sound_BallSpin()); case "SnoodRevHook" : return(Constants.__get__Sound_Hook()); case "SnoodRevPop" : return(Constants.__get__Sound_Pop()); case "BoardStart" : return(Constants.__get__Sound_BoardStart()); case "Lose" : return(Constants.__get__Sound_Lose()); case "BreakCrate" : return(Constants.__get__Sound_BreakCrate()); case "ShroudRemove" : return(Constants.__get__Sound_Shroud()); case "WakingCrabby1" : return(Constants.__get__Sound_WakingCrabby1()); case "WakingDeeJay" : return(Constants.__get__Sound_WakingDeeJay()); case "WakingEffy" : return(Constants.__get__Sound_WakingEffy()); case "WakingFrank2" : return(Constants.__get__Sound_WakingFrank2()); case "WakingFuzzball3" : return(Constants.__get__Sound_WakingFuzzball3()); case "WakingMaryAnn2" : return(Constants.__get__Sound_WakingMaryAnn2()); case "WakingPearl2" : return(Constants.__get__Sound_WakingPearl2()); case "WakingSandy1" : return(Constants.__get__Sound_WakingSandy1()); case "WheeCrabby1" : return(Constants.__get__Sound_WheeCrabby1()); case "WheeDeeJay1" : return(Constants.__get__Sound_WheeDeeJay1()); case "WheeEffy2" : return(Constants.__get__Sound_WheeEffy2()); case "WheeFrank2" : return(Constants.__get__Sound_WheeFrank2()); case "WheeFuzzball" : return(Constants.__get__Sound_WheeFuzzball()); case "WheeMaryAnn" : return(Constants.__get__Sound_WheeMaryAnn()); case "WheePearl2" : return(Constants.__get__Sound_WheePearl2()); case "WheeSandy1" : return(Constants.__get__Sound_WheeSandy1()); case "BubbleCrabby" : return(Constants.__get__Sound_BubbleCrabby()); case "BubbleDeeJay" : return(Constants.__get__Sound_BubbleDeeJay()); case "BubbleEffy" : return(Constants.__get__Sound_BubbleEffy()); case "BubbleFrank" : return(Constants.__get__Sound_BubbleFrank()); case "BubbleFuzzball" : return(Constants.__get__Sound_BubbleFuzzball()); case "BubbleMaryAnn" : return(Constants.__get__Sound_BubbleMaryAnn()); case "BubblePearl" : return(Constants.__get__Sound_BubblePearl()); case "BubbleSandy" : return(Constants.__get__Sound_BubbleSandy()); case "SureShotCrabby" : return(Constants.__get__Sound_SureShotCrabby()); case "SureShotDeeJay" : return(Constants.__get__Sound_SureShotDeeJay()); case "SureShotEffy" : return(Constants.__get__Sound_SureShotEffy()); case "SureShotFrank" : return(Constants.__get__Sound_SureShotFrank()); case "SureShotFuzzball" : return(Constants.__get__Sound_SureShotFuzzball()); case "SureShotMaryAnn" : return(Constants.__get__Sound_SureShotMaryAnn()); case "SureShotPearl" : return(Constants.__get__Sound_SureShotPearl()); case "SureShotSandy" : return(Constants.__get__Sound_SureShotSandy()); case "HotfootCrabby" : return(Constants.__get__Sound_HotfootCrabby()); case "HotfootDeeJay" : return(Constants.__get__Sound_HotfootDeeJay()); case "HotfootEffy" : return(Constants.__get__Sound_HotfootEffy()); case "HotfootFrank" : return(Constants.__get__Sound_HotfootFrank()); case "HotfootFuzzball" : return(Constants.__get__Sound_HotfootFuzzball()); case "HotfootMaryAnn" : return(Constants.__get__Sound_HotfootMaryAnn()); case "HotfootPearl" : return(Constants.__get__Sound_HotfootPearl()); case "HotfootSandy" : return(Constants.__get__Sound_HotfootSandy()); case "PlungerCrabby" : return(Constants.__get__Sound_PlungerCrabby()); case "PlungerDeeJay" : return(Constants.__get__Sound_PlungerDeeJay()); case "PlungerEffy" : return(Constants.__get__Sound_PlungerEffy()); case "PlungerFrank" : return(Constants.__get__Sound_PlungerFrank()); case "PlungerFuzzball" : return(Constants.__get__Sound_PlungerFuzzball()); case "PlungerMaryAnn" : return(Constants.__get__Sound_PlungerMaryAnn()); case "PlungerPearl" : return(Constants.__get__Sound_PlungerPearl()); case "PlungerSandy" : return(Constants.__get__Sound_PlungerSandy()); case "WildCrabby" : return(Constants.__get__Sound_WildCrabby()); case "WildDeeJay" : return(Constants.__get__Sound_WildDeeJay()); case "WildEffy" : return(Constants.__get__Sound_WildEffy()); case "WildFrank" : return(Constants.__get__Sound_WildFrank()); case "WildFuzzball" : return(Constants.__get__Sound_WildFuzzball()); case "WildMaryAnn" : return(Constants.__get__Sound_WildMaryAnn()); case "WildPearl" : return(Constants.__get__Sound_WildPearl()); case "WildSandy" : return(Constants.__get__Sound_WildSandy()); case "Bubble1" : return(Constants.__get__Sound_BubbleFirst()); case "Bubble2" : return(Constants.__get__Sound_Bubble2()); case "Bubble3" : return(Constants.__get__Sound_Bubble3()); case "Bubble4" : return(Constants.__get__Sound_Bubble4()); case "Bubble5" : return(Constants.__get__Sound_Bubble5()); case "Bubble6" : return(Constants.__get__Sound_Bubble6()); case "Bubble7" : return(Constants.__get__Sound_Bubble7()); case "Bubble8" : return(Constants.__get__Sound_BubbleLast()); case "Applause" : return(Constants.__get__Sound_Applause()); case "PlungerGrab" : return(Constants.__get__Sound_PlungerGrab()); case "Plunger" : return(Constants.__get__Sound_Plunger()); case "LumpDrop" : return(Constants.__get__Sound_LumpDrop()); case "Hotfoot" : return(Constants.__get__Sound_Hotfoot()); case "HotfootBurn" : return(Constants.__get__Sound_HotfootBurn()); case "Rubber" : return(Constants.__get__Sound_Rubber()); case "SureShot" : return(Constants.__get__Sound_SureShot()); case "Bubble" : return(Constants.__get__Sound_BubbleBubble()); case "BubbleHit" : return(Constants.__get__Sound_BubbleBubbleHit()); case "Points" : return(Constants.__get__Sound_Points()); case "FishyFly" : return(Constants.__get__Sound_FishyFly()); case "FishyLand" : return(Constants.__get__Sound_FishyLand()); } return(-1); } }
Symbol 63 MovieClip [__Packages.SoundEntry] Frame 0
class SoundEntry { var m_PlayedTime, m_Looping, m_MultipleInstancesAllowed, m_LoopPlayCount, m_PlayTimes, m_OnCompleteCallbacks, m_Sound; function SoundEntry () { m_PlayedTime = 0; m_Looping = false; m_MultipleInstancesAllowed = false; m_LoopPlayCount = 0; m_PlayTimes = 1; m_OnCompleteCallbacks = new Array(); } function SetSound(i_sound) { m_Sound = i_sound; m_Sound.onSoundComplete = mx.utils.Delegate.create(this, onSoundComplete); } function onSoundComplete() { var _local2 = 0; while (_local2 < m_OnCompleteCallbacks.length) { m_OnCompleteCallbacks[_local2].call(this); _local2++; } m_OnCompleteCallbacks = new Array(); } }
Symbol 64 MovieClip [__Packages.Effects.CEffect_DelayedSound] Frame 0
class Effects.CEffect_DelayedSound extends CEffect { var m_soundNum, m_time, m_fireAt, OnComplete; function CEffect_DelayedSound () { super(CEffect.Type_DelayedSound); } function OnInit(i_soundNum, i_delaySecs) { if ((i_soundNum != null) && (i_delaySecs != null)) { m_soundNum = i_soundNum; m_time = getTimer(); m_fireAt = m_time + i_delaySecs; return(true); } CDebug.Assert(i_soundNum != null, "CEffect_DelayedSound.OnInit()", "SoundNum was undefined."); CDebug.Assert(i_delaySecs != null, "CEffect_DelayedSound.OnInit()", "Delay was undefined."); return(false); } function OnUpdate(i_forceFinish, i_deltaT) { if (!i_forceFinish) { m_time = m_time + i_deltaT; if (m_time > m_fireAt) { CGame.Sounds.PlaySound(m_soundNum); OnComplete(); } } return(super.OnUpdate(i_forceFinish, i_deltaT)); } }
Symbol 65 MovieClip [__Packages.CBoardCircular] Frame 0
class CBoardCircular extends CBoard { var m_TileSet, m_Lost, m_Won, m_LoseShadowBoundingClip; function CBoardCircular () { super(); } function onLoad() { super.onLoad(); CTileSetCircular(m_TileSet).DumpCompleteEvent.PushBehavior(mx.utils.Delegate.create(this, OnDumpComplete)); } function OnPlayUpdate(i_deltaT) { super.OnPlayUpdate(i_deltaT); if ((!m_Lost) && (!m_Won)) { if (m_TileSet.State == CTileSet.State_RotatingComplete) { m_TileSet.State = CTileSet.State_Playing; } } } function OnShotComplete() { super.OnShotComplete(); Rotate(); } function OnMiss() { super.OnMiss(); Rotate(); } function DrawLoseBoundary(i_firstCall) { super.DrawLoseBoundary(); m_LoseShadowBoundingClip.gotoAndStop(int(Level.m_BoardLevel / 2) + 1); if (i_firstCall) { m_LoseShadowBoundingClip._xscale = (100 * SnoodHead.SizeToGridHeight(m_TileSet.m_SnoodSize)) / SnoodHead.SizeToGridHeight(SnoodHead.Size_RndMed); m_LoseShadowBoundingClip._yscale = m_LoseShadowBoundingClip._xscale; m_LoseShadowBoundingClip._x = m_LoseShadowBoundingClip._x + s_DangerOffsetsX[m_TileSet.m_SnoodSize - 1]; m_LoseShadowBoundingClip._y = m_LoseShadowBoundingClip._y + s_DangerOffsetsY[m_TileSet.m_SnoodSize - 1]; } } function OnDumpComplete() { CheckLose(); } function AdvanceDanger() { super.AdvanceDanger(); _global.GameBoard.LoseShadow.gotoAndPlay("Flash"); CGame.Sounds.PlaySound(Constants.__get__Sound_Shroud()); Level.m_BoardLevel = Level.m_BoardLevel + 2; CheckLose(); DrawLoseBoundary(false); } function CheckLose() { var _local6 = m_TileSet.GetActiveBorbsFixedArray(); var _local5 = m_TileSet.GetActiveBorbsCount(); var _local3 = 0; while (_local3 < _local5) { var _local2 = SnoodHead(_local6[_local3]); var _local4 = _local2.__get__Color(); if (!Level.isValidCicleLocation(_local2.m_xSlot, _local2.m_ySlot)) { if (_local4 <= Constants.Snood_HeadCount) { m_Lost = true; Level.m_LosePieces.push(_local2); } else { _local2.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard); Level.TryDropSnoods(); } } _local3++; } Level.m_BoardLoser = CGame.CurrentPlayer; } function Rotate() { CTileSetCircular(m_TileSet).Rotate(); } function IsRound() { return(true); } static var s_AttackHypnosisCount = 10; static var s_DangerOffsetsX = [0, 0, 0, 11, 10, 0]; static var s_DangerOffsetsY = [0, 0, 0, -11, 0, 0]; }
Symbol 66 MovieClip [__Packages.CTileSetCircular] Frame 0
class CTileSetCircular extends CTileSet { var m_pushAnimCount, DumpCompleteEvent, GetCenterTile, State, Cols, m_rotationCenter, m_SnoodWidth, m_SnoodHeight, GetCenterCoord, m_rotationTime, Rows, GetTile, StopAnimations, m_dirty, UpdateBoundingBox, PixelPosToGridCell, _x, _y, InitTiles; function CTileSetCircular () { super(); m_pushAnimCount = 0; DumpCompleteEvent = new Oberon.CEvent(this); } function OnXmlLoaded() { super.OnXmlLoaded(); GetCenterTile().m_NoHook = true; } function OnBorbFinishedAnim(i_context) { var _local2 = SnoodHead(i_context); if (!(_local2.__get__LastAnim() === SnoodHead.Anim_Flying)) { } else { CDebug.Assert(State == CTileSet.State_Dumping, "CTileSetCircular.OnBorbFinishedAnim()", "unexpected borb fly event when state is " + State); CDebug.Assert(m_pushAnimCount > 0, "CTileSetCircular.OnBorbFinishedAnim()", "m_pushAnimCount not positive : " + m_pushAnimCount); m_pushAnimCount--; if (m_pushAnimCount == 0) { DumpCompleteEvent.Fire(); State = CTileSet.State_Playing; } } } function Rotate() { if ((State == CTileSet.State_Playing) && (!CGame.Board.m_Lost)) { State = CTileSet.State_RotatePending; return(undefined); } } function beginRotation() { if (State != CTileSet.State_RotatePending) { return(undefined); } m_curRotationTicks = 1; var _local5 = Math.floor(Cols / 2); m_rotationCenter = new CCoord(m_SnoodWidth * ((0.5 + ((_local5 % 2) / 2)) + _local5), m_SnoodHeight * (0.5 + _local5)); var _local6 = GetCenterTile(); var _local7 = GetCenterCoord(); State = CTileSet.State_Rotating; m_rotationTime = 0; var _local4 = 0; while (_local4 < Cols) { var _local3 = 0; while (_local3 < Rows) { var _local2 = GetTile(_local4, _local3); if (_local2 != null) { _local2.m_xDiff = _local2._x - m_rotationCenter.X; _local2.m_yDiff = s_rotationYComp * (_local2._y - m_rotationCenter.Y); } _local3++; } _local4++; } } function OnPlayUpdate(inDeltaT) { super.OnPlayUpdate(inDeltaT); if (State == CTileSet.State_RotatePending) { CGame.EffectMgr.KillAllEffectsOfType(CEffect.Type_CannonScareAnim); if (((!CGame.PhysMgr.IsBusy(true)) && (!CGame.EffectMgr.IsCategoryPlaying(CEffect.Cat_TilesetPos))) && (!CGame.PhysMgr.HasAttachedPieces())) { StopAnimations(); beginRotation(); } } else if (State == CTileSet.State_Rotating) { m_rotationTime = m_rotationTime + inDeltaT; var _local10 = m_rotationTime; if (_local10 < s_rotationDelay) { return(undefined); } _local10 = _local10 - s_rotationDelay; if (_local10 > s_rotationDuration) { _local10 = s_rotationDuration; } var _local8 = GetCenterCoord(); var _local11 = (m_curRotationTicks * s_rotationAngle) * ((1 - Math.cos(Math.PI * (_local10 / s_rotationDuration))) / 2); var _local7 = Math.cos(_local11); var _local6 = Math.sin(_local11); var _local5 = 0; while (_local5 < Cols) { var _local4 = 0; while (_local4 < Rows) { if ((_local5 != _local8.X) || (_local4 != _local8.Y)) { var _local3 = GetTile(_local5, _local4); if (_local3 != null) { var _local9 = _local3.__get__Color(); _local3._y = Math.round(m_rotationCenter.Y + (((_local3.m_yDiff * _local7) + (_local3.m_xDiff * _local6)) / s_rotationYComp)); _local3._x = Math.round(m_rotationCenter.X + ((_local3.m_xDiff * _local7) - (_local3.m_yDiff * _local6))); } } _local4++; } _local5++; } if (_local10 == s_rotationDuration) { resyncTileSlots(); State = CTileSet.State_RotatingComplete; m_dirty = true; CGame.Board.m_Launcher.m_ShouldRedraw = true; UpdateBoundingBox(); } } } function resyncTileSlots() { var _local6 = new Array(Rows * Cols); var _local7 = []; var _local5 = 0; while (_local5 < Cols) { var _local4 = 0; while (_local4 < Rows) { var _local2 = GetTile(_local5, _local4); if (_local2 != null) { var _local3 = PixelPosToGridCell(_local2._x + _x, _local2._y + _y); _local2.m_xSlot = _local3.X; _local2.m_ySlot = _local3.Y; _local6[(_local3.X * Rows) + _local3.Y] = _local2; } _local4++; } _local5++; } InitTiles(_local6, true); } function GetDiveBarDist() { return(9 - int(Level.m_BoardLevel / 2)); } static var s_RotationTicksMin = -3; static var s_RotationTicksMax = 3; static var s_RotationTicksZeroable = false; static var s_rotationDelay = 0.1; static var s_rotationDuration = 0.4; static var s_DumpDuration = 1; static var s_rotationAngle = -1.0471975511966; static var s_rotationYComp = 0.866; var m_curRotationTicks = null; }
Symbol 67 MovieClip [__Packages.CQueueBorb] Frame 0
class CQueueBorb extends SnoodHead { static var s_CurrentQueueFallTime; var m_LastPos, m_Pos, m_frameTween, _visible, _currentframe, gotoAndStop, __get__PowerUp, SetPowerUp, SetColor, m_anim, AddTween; function CQueueBorb () { super(); m_LastPos = null; m_Pos = null; m_frameTween = null; _visible = false; if (CGame.DbgRapidFireMode) { s_BaseQueueFallTime = 0; } } function onLoad() { super.onLoad(); if (m_labelLoc == null) { s_CurrentQueueFallTime = s_BaseQueueFallTime; var _local4 = new Array(m_posCount); var _local3 = 0; while (_local3 < m_posCount) { _local4[_local3] = m_posPrefix + String(_local3); _local3++; } m_labelLoc = Oberon.MovieClipX.GetAnimFrameLabels(this, _local4); } Oberon.CEnterFrameEvent.AddEvent(this, mx.utils.Delegate.create(this, OnHeadLoaded), true); } function OnHeadLoaded() { super.OnHeadLoaded(); } function GetPosFrame(i) { return(m_labelLoc[m_posPrefix + String(i)]); } function GetPosEndFrame(i) { return(m_labelLoc[(m_posPrefix + String(i)) + "End"]); } function GetCurPosInAnim() { var _local3 = 0; var _local2 = 0; while (_local2 < m_posCount) { if (_currentframe >= GetPosFrame(_local2)) { _local3 = _local2; } _local2++; } return(_local3); } function SetPosition(i_pos, i_noPlayAnim, i_hurry, i_hurryFactor) { m_LastPos = m_Pos; m_Pos = i_pos; if (!i_noPlayAnim) { PlayAnim(Anim_QueueMove); if (i_hurry) { Hurry(i_hurryFactor); } if (i_pos != null) { _visible = true; } } else if (i_pos != null) { gotoAndStop(GetPosFrame(i_pos)); _visible = m_Pos != 0; } else { gotoAndStop(1); _visible = false; } if ((m_Pos > s_UnconcealedBorbCount) && (__get__PowerUp() == Constants.PowerUp_None)) { SetPowerUp(Constants.PowerUp_Ghost); } else if ((m_Pos <= s_UnconcealedBorbCount) && (__get__PowerUp() == Constants.PowerUp_Ghost)) { if (!m_FromRefill) { var _local3 = CBoard.G.GetRandBorb(); SetColor(_local3.Color); } else { m_FromRefill = false; } SetPowerUp(Constants.PowerUp_None); } } function OnAnimComplete() { if (m_Pos == 0) { _visible = false; } m_frameTween = null; super.OnAnimComplete(); } function Hurry(i_factor) { if (m_frameTween != null) { m_frameTween.Scale(1 / i_factor); } } function PlayAnim(i_anim) { if (i_anim == Anim_QueueMove) { m_anim = i_anim; var _local3 = GetPosEndFrame(m_Pos); var _local2 = (_local3 - _currentframe) * s_CurrentQueueFallTime; if (_local2 < 0) { _local2 = -1 * _local2; } m_frameTween = new Core.CTween(this, "_currentframe", null, _currentframe, _local3, _local2, true); AddTween(m_frameTween); } } static var s_BaseQueueFallTime = 0.0166; static var s_BaseRefillQueueFallTime = 0.0083; static var s_UnconcealedBorbCount = 1; static var Anim_QueueMove = 100; static var m_posCount = 32; static var m_labelLoc = null; var m_FromRefill = false; static var m_posPrefix = "QueuePos"; }
Symbol 68 MovieClip [__Packages.PhysicsMgr] Frame 0
class PhysicsMgr { static var G; var m_ActiveObjects, m_AttachedPieces; function PhysicsMgr () { G = this; CGame.PhysMgr = this; Reset(); } static function PhysicsToString(i_physics) { switch (i_physics) { case Physics_Shoot : return("Shoot"); case Physics_Delete : return("Delete"); case Physics_Wait : return("Wait"); case Physics_Shake : return("Shake"); case Physics_EndShake : return("EndShake"); } return("<Unknown>"); } function Reset() { m_ActiveObjects = []; m_AttachedPieces = []; } function GetActiveAnimCount(i_animType) { var _local3 = 0; var _local2 = 0; while (_local2 < m_ActiveObjects.length) { if (CPhysicsObject(m_ActiveObjects[_local2]).m_Mode == i_animType) { _local3++; } _local2++; } return(_local3); } function addObject(inObject) { var _local3 = false; var _local2 = 0; while (_local2 < m_ActiveObjects.length) { if (m_ActiveObjects[_local2] == inObject) { _local3 = true; } _local2++; } if (!_local3) { m_ActiveObjects.push(inObject); return(true); } return(false); } function IsBusy(i_includeNonBlockers) { var _local2 = 0; while (_local2 < m_ActiveObjects.length) { var _local3 = CPhysicsObject(m_ActiveObjects).m_Mode; if (i_includeNonBlockers || (_local3 == Physics_Shoot)) { return(true); } _local2++; } return(false); } function shootObject(inObject, inVecPath, inShotState, inCollisionCoords, inCollisionDists, inNoShotBlur) { CDebug.Assert(inVecPath.length > 0, "PhysicsMgr.shootObject()", "vector path is null", true); inObject.m_ShotPath = inVecPath; inObject.m_CollisionCoords = ((inCollisionCoords != undefined) ? (inCollisionCoords) : null); inObject.m_CollisionDists = ((inCollisionDists != undefined) ? (inCollisionDists) : null); inObject.m_LegDist = 0; inObject.m_DoShotBlur = s_DoShotBlur && ((inNoShotBlur == null) || (!inNoShotBlur)); if (inShotState != undefined) { inObject.m_ShotState = inShotState; } else { inObject.m_Acceleration = s_ShotAccel; inObject.m_ShotState = CPhysicsObject.ShotState_Connect; } inObject.m_Velocity = Core.Vector2(inVecPath[0]).Clone(); if (inShotState == CPhysicsObject.ShotState_Fireball) { inObject.m_Velocity.NormalizeTo(Constants.FireballInitVelocity); inObject.m_Acceleration = Constants.FireballAccel; } else { inObject.m_Velocity.NormalizeTo(Constants.MuzzleVelocity); inObject.m_Acceleration = s_ShotAccel; } inObject.m_TotalDist = 0; inObject.m_ShotPathIndex = 0; inObject.m_Mode = Physics_Shoot; addObject(inObject); } function shakeObject(inObject, inTime, inEnd) { if (inEnd == undefined) { inEnd = false; } inObject.m_Duration = inTime; inObject.m_Mode = (inEnd ? (Physics_EndShake) : (Physics_Shake)); inObject.m_Life = 0; inObject.m_StartX = inObject._x; inObject.m_StartY = inObject._y; addObject(inObject); } function ShakeLosePieces() { var _local2 = 0; while (_local2 < Level.m_LosePieces.length) { shakeObject(Level.m_LosePieces[_local2], 4, true); _local2++; } } function GetAndClearAttachedPieces() { var _local2 = m_AttachedPieces; m_AttachedPieces = []; return(_local2); } function HasAttachedPieces() { return(m_AttachedPieces.length > 0); } function Update(i_deltaT) { var _local3 = []; var _local2 = 0; while (_local2 < m_ActiveObjects.length) { if (updateObject(m_ActiveObjects[_local2], i_deltaT)) { _local3.push(m_ActiveObjects[_local2]); } _local2++; } m_ActiveObjects = _local3; } function removeObject(inObject) { var _local1 = SnoodHead(inObject); if (_local1 != null) { if (!_local1.IsInPool()) { if (_local1.m_xSlot != null) { CDebug.WriteErr("PhysicsMgr.removeObject", "Removing slotted head (tile may not be in sync)"); CGame.TileSet.SetTile(_local1.m_xSlot, _local1.m_ySlot, null); } _local1.ResetScale(); SnoodHead.ReturnToPool(SnoodHead(inObject)); } } else { inObject.removeMovieClip(); } } function updateObject(inObject, inDeltaT) { var _local3 = true; if (CGame.DbgTracePhysics) { CDebug.WriteLine(this, (("Physics operation " + PhysicsToString(inObject.m_Mode)) + " on ") + String(inObject)); } switch (inObject.m_Mode) { case Physics_Delete : removeObject(inObject); _local3 = false; break; case Physics_Wait : if (m_AttachedPieces.length == 0) { m_AttachedPieces.push(inObject); _local3 = false; } else { _local3 = true; } break; case Physics_Shoot : _local3 = doShootTick(inObject, inDeltaT); break; case Physics_Shake : case Physics_EndShake : inObject.m_Life = inObject.m_Life + inDeltaT; if ((inObject.m_Life >= inObject.m_Duration) && (m_AttachedPieces.length == 0)) { inObject._x = inObject.m_StartX; inObject._y = inObject.m_StartY; if (!CGame.Board.m_Lost) { m_AttachedPieces.push(inObject); } return(false); } inObject._x = inObject.m_StartX + ((Math.random() * 6) - 3); inObject._y = inObject.m_StartY + ((Math.random() * 6) - 3); break; default : removeObject(inObject); return(false); } return(_local3); } function GetDidCollide(inStartX, inStartY, inEndX, inEndY, xSlot, ySlot) { var _local6; var _local5; var _local4; var _local7; var _local11 = 0; if (!CGame.Board.IsRound()) { _local11 = Level.m_BoardLevel; } _local7 = Level.m_SnoodHeight * ((0.5 + ySlot) + _local11); _local4 = Level.m_SnoodWidth * ((0.5 + ((ySlot % 2) / 2)) + xSlot); var _local8 = ((inStartX - inEndX) * (inStartX - inEndX)) + ((inStartY - inEndY) * (inStartY - inEndY)); if (_local8 == 0) { _local6 = inStartX; _local5 = inStartY; } else { var _local3 = (((_local4 - inStartX) * (inEndX - inStartX)) + ((_local7 - inStartY) * (inEndY - inStartY))) / _local8; if ((_local3 >= -0.25) && (_local3 <= 1.25)) { _local6 = inStartX + (_local3 * (inEndX - inStartX)); _local5 = inStartY + (_local3 * (inEndY - inStartY)); var _local12 = ((_local6 - _local4) * (_local6 - _local4)) + ((_local5 - _local7) * (_local5 - _local7)); var _local13 = (1.5 * Level.m_SnoodWidth) * Level.m_SnoodWidth; if (_local12 <= _local13) { return(true); } } } return(false); } function PendingToString() { var _local3 = "==================================================\nActive physics objects :\n"; var _local2 = 0; while (_local2 < m_ActiveObjects.length) { _local3 = _local3 + ((((((" " + PhysicsToString(CPhysicsObject(m_ActiveObjects[_local2]).m_Mode)) + " : ") + String(m_ActiveObjects[_local2])) + " : ") + Constants.GetSnoodByNumber(SnoodHead(m_ActiveObjects[_local2]).__get__Color())) + newline); _local2++; } _local3 = _local3 + "==================================================\n"; return(_local3); } static function CalcDistance(oldX, oldY, newX, newY) { var _local2 = oldX - newX; var _local1 = oldY - newY; return(Math.sqrt((_local2 * _local2) + (_local1 * _local1))); } function doShootTick(inObject, inDeltaT) { var _local13 = true; if (inDeltaT == 0) { return(_local13); } var _local54 = CGame.Board; var _local14 = CGame.TileSet; var _local56 = _local54.GetBoundingClip(); var _local10 = Core.Vector2(inObject.m_Velocity); var _local4 = SnoodHead(inObject); var _local5 = inObject.m_ShotPath; var _local58 = inObject._x; var _local57 = inObject._y; CDebug.Assert(_local5.length != null, "PhysicsMgr.updateObject()", "null shot path in shoot mode"); var _local43 = false; var _local53 = _local10.Magnitude(); var _local51 = _local53; if (inObject.m_Acceleration != 0) { _local51 = _local53 + (inObject.m_Acceleration * inDeltaT); if (_local51 <= 0) { SnoodHead(inObject).DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard, 0); return(false); } } var _local49 = inObject.m_LegDist; var _local41 = (_local51 * Constants.Fps) / (1 / inDeltaT); inObject.m_LegDist = inObject.m_LegDist + _local41; inObject.m_TotalDist = inObject.m_TotalDist + _local41; var _local52 = inObject.m_TotalDist; _local10.NormalizeTo(_local51); while (!_local43) { var _local46 = Core.Vector2(_local5[inObject.m_ShotPathIndex]); var _local15 = _local46.Magnitude(); if (inObject.m_LegDist < _local15) { _local43 = true; var _local12 = _local10.Clone(); _local12.NormalizeTo(_local41); if (inObject.m_IgnoreDist > 0) { inObject.m_IgnoreDist = inObject.m_IgnoreDist - _local41; if (inObject.m_IgnoreDist < 0) { var _local26 = _local12.Clone(); _local26.NormalizeTo(Math.abs(inObject.m_IgnoreDist)); inObject._x = inObject._x + _local26.X; inObject._y = inObject._y + _local26.Y; inObject.m_IgnoreDist = 0; } } else { inObject._x = inObject._x + _local12.X; inObject._y = inObject._y + _local12.Y; } var _local29 = (_local10.GetAngle() + 90) % 360; var _local40 = _local15 - inObject.m_LegDist; if (inObject.m_DoShotBlur) { var _local39 = s_ShotBlurMagnitude; var _local33 = Level.m_SnoodWidth * s_ShotBlurDist; if (_local40 < _local33) { _local39 = _local39 * (_local40 / _local33); } if (_local4 != null) { if (_local4.m_ShotState == CPhysicsObject.ShotState_Fireball) { var _local7 = MovieClip(_local4.m_BorbUnderItem.FireballTrail); if (_local7 == null) { _local7 = _local4.m_BorbUnderItem.attachMovie("FireballTrail", "FireballTrail", _local4.m_BorbUnderItem.getNextHighestDepth()); _local7._xscale = CGame.TileSet.m_SnoodScale; _local7._yscale = _local7._xscale; _local7._rotation = _local29; } if (inObject.m_LegDist < 100) { _local7._yscale = (_local7._xscale * inObject.m_LegDist) / 300; } else { _local7._yscale = _local7._xscale; } } else { _local4.AddBlur(_local29, _local39, s_ShotBlurQuality); } } else { inObject._rotation = _local29; } } } else { inObject.m_LegDist = inObject.m_LegDist - _local15; _local41 = inObject.m_LegDist; inObject.m_ShotPathIndex++; var _local12 = _local10.Clone(); _local12.NormalizeTo(_local15 - _local49); inObject._x = inObject._x + _local12.X; inObject._y = inObject._y + _local12.Y; _local49 = 0; if (inObject.m_ShotPathIndex < _local5.length) { var _local17 = Core.Vector2(_local5[inObject.m_ShotPathIndex]); var _local9 = null; var _local28 = inObject._x; var _local27 = inObject._y; if ((_local12.X > 0) && (_local17.X < 0)) { _local9 = CLauncher.Orient_Right; _local28 = CGame.TileSet.BoundingClip._x + CGame.TileSet.BoundingClip._width; } else if ((_local12.X < 0) && (_local17.X > 0)) { _local9 = CLauncher.Orient_Left; _local28 = CGame.TileSet.BoundingClip._x; } else if ((_local12.Y < 0) && (_local17.Y > 0)) { _local9 = CLauncher.Orient_Top; _local27 = CGame.TileSet.BoundingClip._y; } else { _local9 = CLauncher.Orient_Bottom; _local27 = CGame.TileSet.BoundingClip._y + CGame.TileSet.BoundingClip._height; } var _local11 = CBoard.G.GetBoundingClip(); _local14 = CBoard.G.m_TileSet; var _local31 = _local14._x; var _local50 = _local14._y; var _local32 = Level.m_SnoodWidth; var _local35 = Level.m_SnoodHeight; var _local18 = (_local31 + _local32) + _local11._x; var _local23 = ((_local31 + _local11._width) + _local11._x) - _local32; var _local45 = _local11._y + _local35; var _local44 = (_local11._height + _local11._y) - _local35; var _local20 = GameState.__get__CurrentGameMode(); if ((_local20 == Constants.BoardMode_BallMedium) || (_local20 == Constants.BoardMode_BallEasy)) { _local18 = _local18 - 14; _local23 = _local23 - 14; } if (_local20 == Constants.BoardMode_BallHard) { _local18 = _local18 - 20; _local23 = _local23 - 20; } else if (_local20 == Constants.BoardMode_BallImpossible) { _local18 = _local18 - 30; _local23 = _local23 - 30; } var _local19 = false; if (((((_local9 == CLauncher.Orient_Left) && (inObject._x > _local18)) || ((_local9 == CLauncher.Orient_Right) && (inObject._x < _local23))) || ((_local9 == CLauncher.Orient_Top) && (inObject._y > _local45))) || ((_local9 == CLauncher.Orient_Bottom) && (inObject._y < _local44))) { CDebug.WriteLine("PhysicsMgr", "Skipping rebound - object was inside bounds."); _local19 = true; } _local19 = _local19 || ((Core.Vector2(_local5[inObject.m_ShotPathIndex]).Magnitude() < (Level.m_SnoodWidth * s_BankShotTolerance)) && ((inObject.m_ShotPathIndex + 1) >= _local5.length)); if ((_local4 != null) && (!_local19)) { _local4.AddBankShot(_local4.__get__Color(), _local9, new CCoord(_local28, _local27)); } _local10 = _local17.Clone(); _local10.NormalizeTo(_local51); inObject.m_Velocity = _local10; } else { _local43 = true; inObject.m_LegDist = 0; inObject.m_TotalDist = 0; if (_local4 != null) { _local4.RemoveBlur(); _local4.m_LastVelocity.Copy(_local10); } _local10.Y = 0; _local10.X = 0; if (inObject.m_ShotState == CPhysicsObject.ShotState_Grab) { if (inObject.m_CollisionDists.length == 0) { removeObject(inObject); CGame.Board.AdvanceLauncher(); CGame.Board.OnMiss(); } else { var _local25 = new Array(_local5.length); var _local8 = 0; while (_local8 < _local5.length) { var _local6 = Core.Vector2(_local5[(_local5.length - 1) - _local8]); _local6.X = -_local6.X; _local6.Y = -_local6.Y; _local25[_local8] = _local6; _local8++; } _local5 = _local25; inObject.m_ShotPath = _local5; inObject.m_ShotPathIndex = 0; inObject.m_ShotState = CPhysicsObject.ShotState_Pull; inObject.m_Velocity = Core.Vector2(_local25[0]).Clone(); inObject.m_Velocity.NormalizeTo(Constants.MuzzleVelocity); _local13 = true; } } else if (inObject.m_ShotState == CPhysicsObject.ShotState_Insert) { CDebug.Assert(_local4 != null, "PhysicsMgr.doShootTick()", "non-borb on insert " + inObject); if (_local4.__get__PowerUp() != Constants.PowerUp_Aimer) { trace("POWERUP!"); CGame.Board.InsertBorbAtCannon(_local4.ToInfo(), true); CGame.Board.m_Launcher.SetMode(CLauncher.Mode_Normal); } else { CGame.Board.InsertBorbAtCannon(_local4.ToInfo()); CGame.Board.m_Launcher.SetMode(CLauncher.Mode_Normal); CGame.Board.AdvanceLauncher(); } removeObject(_local4); _local13 = false; } else if (inObject.m_ShotState == CPhysicsObject.ShotState_Connect) { var _local36 = inObject.m_xNextSlot; var _local37 = inObject.m_yNextSlot; if ((_local36 == null) || (_local37 == null)) { if (_local4 != null) { SnoodHead.ReturnToPool(_local4); CGame.Board.OnMiss(); } _local13 = false; } else { var _local21 = _local14.GetGridCoords(_local36, _local37); var _local22 = new Core.Vector2(inObject._x - _local21.X, inObject._y - _local21.Y); var _local38 = Level.m_SnoodWidth * Constants.ProjectileOvershotScale; if (_local22.Magnitude() > _local38) { _local22.NormalizeTo(_local38); inObject._x = _local21.X + _local22.X; inObject._y = _local21.Y + _local22.Y; } if (m_AttachedPieces.length == 0) { m_AttachedPieces.push(_local4); _local13 = false; } else { inObject.m_Mode = Physics_Wait; _local13 = true; } } } else if (inObject.m_ShotState == CPhysicsObject.ShotState_Fireball) { if (_local4 != null) { MovieClip(_local4.m_BorbUnderItem.FireballTrail).removeMovieClip(); SnoodHead.ReturnToPool(_local4); CGame.Board.OnShotComplete(); CGame.Board.ResyncColors(); } _local13 = false; } else if (inObject.m_ShotState == CPhysicsObject.ShotState_Pull) { removeObject(inObject); _local13 = false; } else { CDebug.WriteErr("PhysicsMgr.doShootTick()", "Unexpected shot state : " + inObject.m_ShotState); } } } } var _local47 = inObject.m_CollisionDists; if ((_local47 != null) && (_local47.length > 0)) { var _local48 = inObject.m_CollisionCoords; var _local24 = 0; var _local42 = false; while ((_local24 < _local47.length) && ((_local47[_local24] < _local52) || (inObject.m_ShotState == CPhysicsObject.ShotState_Pull))) { var _local16 = CCoord(_local48[_local24]); var _local3 = SnoodHead(_local14.GetTile(_local16.X, _local16.Y)); if (_local3 != null) { if (inObject.m_ShotState == CPhysicsObject.ShotState_Fireball) { if (_local3.m_NoHook || (CGame.Board.IsRound() && (CTileSetCircular(CGame.TileSet).GetCenterTile() == _local3))) { } else if ((_local3.Orb && (_local3.__get__PowerUp() != Constants.PowerUp_None)) && (Oberon.ArrayX.IndexOf(Constants.AllCannonPowerUps, _local3.__get__PowerUp()) != -1)) { _local3.DropTo(Effects.CEffect_BorbDropAnim.Dest_ToCannon, Level.m_BasePowerupDropSec, Level.m_PowerupIncrDropSec * Effects.CEffect_BorbDropAnim.GetCount(Effects.CEffect_BorbDropAnim.Dest_ToCannon)); _local42 = true; CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_Match; } else { _local3.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard, 0); _local42 = true; CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_Match; } } else if ((inObject.m_ShotState == CPhysicsObject.ShotState_Pull) && (_local24 == (_local48.length - 1))) { _local14.SetTile(_local16.X, _local16.Y, null); var _local25 = new Array(_local5.length); var _local8 = 0; while (_local8 < _local5.length) { _local25[_local8] = Core.Vector2(_local5[_local8]).Clone(); _local8++; } if ((_local3.__get__PowerUp() == Constants.PowerUp_Lock) || (_local3.__get__PowerUp() == Constants.PowerUp_Hypnosis)) { _local3.SetPowerUp(Constants.PowerUp_None); _local3.SetOrb(false); } else if (_local3.__get__PowerUp() == Constants.PowerUp_Shroud) { var _local30 = Effects.CEffect_ShroudDissolve(CEffect.CreateEffect(CEffect.Type_ShroudDissolve)); if (_local30.OnInit(_local3, null, null, true)) { CGame.EffectMgr.AddEffectToActiveList(_local30); } } else if (((_local3.__get__PowerUp() == Constants.PowerUp_JellyStrThree) || (_local3.__get__PowerUp() == Constants.PowerUp_JellyStrTwo)) || (_local3.__get__PowerUp() == Constants.PowerUp_Jelly)) { CJellyFishy.HandleFishyHit(_local3); } var _local34 = CCoord.ToLocal(inObject, _local3._parent); _local3._x = _local34.X; _local3._y = _local34.Y; shootObject(_local3, _local25, CPhysicsObject.ShotState_Insert, null, null, true); CGame.Board.m_InPlungerGrab = true; CGame.Sounds.PlaySound(Constants.__get__Sound_PlungerGrab()); _local42 = true; } else if (inObject.m_ShotState == CPhysicsObject.ShotState_Grab) { CDebug.WriteLine("PhysicsMgr.doShootTick()", "In grab mode while connecting with object"); } } _local24++; } if (_local42) { _local47.splice(0, _local24); _local48.splice(0, _local24); Level.TryDropSnoods(CGame.CurrentPlayer, true, false, true); } } return(_local13); } static var s_ShotBlurMagnitude = 60; static var s_ShotBlurQuality = 2; static var s_ShotBlurDist = 3; static var s_ShotAccel = 0; static var s_BankShotTolerance = 0.5; static var s_DoShotBlur = true; static var Physics_Shoot = 0; static var Physics_Delete = 4; static var Physics_Wait = 6; static var Physics_Shake = 7; static var Physics_EndShake = 8; static var VaporizeRate = 200; }
Symbol 69 MovieClip [__Packages.Effects.CEffect_ShroudDissolve] Frame 0
class Effects.CEffect_ShroudDissolve extends CEffect { var m_borb, m_shroudMc, m_frameTween, m_xTween, m_yTween; function CEffect_ShroudDissolve () { super(CEffect.Type_ShroudDissolve); } function OnInit(i_tgtBorb, i_srcBorb, i_srcImpactVector, i_playFast) { var _local7 = CGame.Board.m_EffectsLayer; m_borb = i_tgtBorb; var _local6 = _local7.getNextHighestDepth(); var _local4 = (i_playFast ? (s_FastAnimDurationSec) : (s_AnimDurationSec)); m_shroudMc = _local7.attachMovie("ShroudDissolveAnim", "ShroudDissolveAnim" + _local6, _local6); CDebug.Assert(m_shroudMc != null, "CEffect_ShroudDissolve.OnBoardEvent()", "couldn't attach shroud Mc to " + m_borb); m_shroudMc._x = m_borb._x; m_shroudMc._y = m_borb._y; CGame.Sounds.PlaySound(Constants.__get__Sound_ShroudRemove()); m_frameTween = new Core.CTween(m_shroudMc, "_currentframe", null, 1, m_shroudMc._totalframes, _local4, true); var _local2 = null; var _local3 = null; if (i_srcBorb != null) { _local2 = new Core.Vector2(i_tgtBorb._x - i_srcBorb._x, i_tgtBorb._y - i_srcBorb._y); _local2.NormalizeTo(Level.m_SnoodWidth * s_ShroudKickback); _local3 = i_srcBorb.m_LastVelocity; _local3.NormalizeTo(Level.m_SnoodWidth * s_ShroudVelKickback); } else if (i_srcImpactVector != null) { _local2 = i_srcImpactVector; _local2.NormalizeTo(Level.m_SnoodWidth * s_ShroudVelKickback); } m_xTween = new Core.CTween(m_shroudMc, "_x", null, m_shroudMc._x, (m_shroudMc._x + ((_local2 != null) ? (_local2.X) : 0)) + ((_local3 != null) ? (_local3.X) : 0), _local4, true); m_yTween = new Core.CTween(m_shroudMc, "_y", null, m_shroudMc._y, (m_shroudMc._y + ((_local2 != null) ? (_local2.Y) : 0)) + ((_local3 != null) ? (_local3.Y) : 0), _local4, true); m_borb.SetOrb(false); m_borb.SetPowerUp(Constants.PowerUp_None); CGame.TileSet.MoveToTop(m_borb); return(true); } function OnUpdate(bForceComplete) { if (!m_frameTween.m_IsPlaying) { m_xTween.Finish(); m_yTween.Finish(); bForceComplete = true; } return(super.OnUpdate(bForceComplete)); } static var s_AnimDurationSec = 0.5; static var s_FastAnimDurationSec = 0.2; static var s_ShroudKickback = 1; static var s_ShroudVelKickback = 2; }
Symbol 70 MovieClip [__Packages.CJellyFishy] Frame 0
class CJellyFishy { function CJellyFishy () { } static function HandleFishyHit(inTarget) { if (inTarget.__get__PowerUp() == Constants.PowerUp_Jelly) { var _local3 = Effects.CEffect_JellyAnim(CEffect.CreateEffect(CEffect.Type_JellyAnim)); if (_local3.OnInit(inTarget)) { CGame.EffectMgr.AddEffectToActiveList(_local3); } } else if (inTarget.__get__PowerUp() == Constants.PowerUp_JellyStrTwo) { var _local3 = Effects.CEffect_JellyAnim(CEffect.CreateEffect(CEffect.Type_JellyAnim)); if (_local3.OnInit(inTarget)) { CGame.EffectMgr.AddEffectToActiveList(_local3); } } else { var _local7 = CCoord.ToLocal(inTarget, CBoard.G.m_EffectsLayer); var _local5 = CBoard.G.m_EffectsLayer.getNextHighestDepth(); var _local2 = CBoard.G.m_EffectsLayer.attachMovie("NewJellyAnim", "DropJellyAnim" + _local5, _local5); _local2._x = _local7.X; _local2._y = _local7.Y; var _local4 = Effects.CEffect_DropAnim(CEffect.CreateEffect(CEffect.Type_DropAnim)); var _local6 = 300; var _local8 = -900; if (Oberon.MathX.randRange(0, 1) == 1) { _local6 = _local6 * -1; } if (_local4.OnInit(_local2, 60, 0, _local6, _local8)) { CGame.EffectMgr.AddEffectToActiveList(_local4); } } inTarget.SetPowerUp(Constants.PowerUp_None); } }
Symbol 71 MovieClip [__Packages.Effects.CEffect_JellyAnim] Frame 0
class Effects.CEffect_JellyAnim extends CEffect { var m_make2ndJelly, m_make3rdJelly, m_state, m_originHead, m_targetHead, m_outerMc, m_jellyMc, m_blurMc, m_xTween, m_yTween, m_blurBitmap; function CEffect_JellyAnim () { super(CEffect.Type_JellyAnim); m_make2ndJelly = false; m_make3rdJelly = false; m_state = State_Idle; } function OnInit(i_tgtBorb) { CGame.Sounds.PlaySound(Constants.__get__Sound_FishyFly()); m_state = State_FlyOut; m_originHead = i_tgtBorb; m_targetHead = Level.GetRandomBorb(Constants.GetAllHeads(), true, true); if (m_originHead.__get__PowerUp() == Constants.PowerUp_Jelly) { m_make2ndJelly = true; } else if (m_originHead.__get__PowerUp() == Constants.PowerUp_JellyStrTwo) { m_make3rdJelly = true; } var _local3 = CCoord.ToLocal(m_originHead, CBoard.G.m_EffectsLayer); var _local2 = CCoord.ToLocal(m_targetHead, CBoard.G.m_EffectsLayer); var _local5 = CBoard.G.m_EffectsLayer.getNextHighestDepth(); m_outerMc = CBoard.G.m_EffectsLayer.createEmptyMovieClip("JellyAnimEffect" + _local5, _local5); m_outerMc._x = _local3.X; m_outerMc._y = _local3.Y; m_jellyMc = m_outerMc.attachMovie("NewJellyAnim", "NewJellyAnim", 1); m_jellyMc._xscale = CGame.TileSet.m_SnoodScale; m_jellyMc._yscale = m_jellyMc._xscale; var _local7 = new Core.Vector2(_local2.X - _local3.X, _local2.Y - _local3.Y); var _local4 = _local7.Magnitude() / FishyVel; m_blurMc = AddBlur(m_jellyMc, m_outerMc, 20); m_blurMc._rotation = _local7.GetAngle() + 90; m_jellyMc.removeMovieClip(); _local2 = CCoord.ToLocal(m_targetHead, m_outerMc); m_xTween = new Core.CTween(m_blurMc, "_x", null, m_blurMc._x, _local2.X, _local4, true); m_yTween = new Core.CTween(m_blurMc, "_y", null, m_blurMc._y, _local2.Y, _local4, true); var _local6 = Effects.CEffect_DelayedSound(CEffect.CreateEffect(CEffect.Type_DelayedSound)); if (_local6.OnInit(Constants.__get__Sound_FishyLand(), _local4)) { CGame.EffectMgr.AddEffectToActiveList(_local6); } return(true); } function OnUpdate(i_forceFinish, i_deltaT) { if ((!m_xTween.m_IsPlaying) && (!m_yTween.m_IsPlaying)) { m_blurMc.removeMovieClip(); var _local3 = m_targetHead.GetGridCoord(); if (CGame.TileSet.GetTileFromCoord(_local3) != null) { m_targetHead.SetOrb(true); if (m_make2ndJelly) { m_targetHead.SetPowerUp(Constants.PowerUp_JellyStrTwo); } else if (m_make3rdJelly) { m_targetHead.SetPowerUp(Constants.PowerUp_JellyStrThree); } } OnComplete(); } return(super.OnUpdate(i_forceFinish, i_deltaT)); } function AddBlur(inSource, inDest, inMag) { var _local4 = inMag + Math.sqrt((inSource._width * inSource._width) + (inSource._height * inSource._height)); var _local2 = _local4 / 2; m_blurBitmap = new flash.display.BitmapData(_local4, _local4, true, 0); var _local6 = inDest.getNextHighestDepth(); var _local7 = inDest.createEmptyMovieClip("BlurHolder" + _local6, _local6); var _local5 = _local7.createEmptyMovieClip("Blur", 1); _local5.attachBitmap(m_blurBitmap, inDest.getNextHighestDepth(), "always", true); _local5._x = -_local2; _local5._y = -_local2; var _local8 = new flash.geom.Matrix(); _local8.translate(_local2, _local2); m_blurBitmap.draw(inSource, _local8); var _local9 = new flash.filters.BlurFilter(0, inMag); _local9.quality = 1; m_blurBitmap.applyFilter(m_blurBitmap, m_blurBitmap.rectangle, new flash.geom.Point(0, 0), _local9); return(_local7); } function OnComplete() { super.OnComplete(); if (m_blurBitmap != null) { m_blurBitmap.dispose(); } } static var State_Idle = 1; static var State_FlyOut = 2; static var State_FlyIn = 3; static var BoardCenterX = 290; static var BoardCenterY = 266; static var FishyVel = 500; }
Symbol 72 MovieClip [__Packages.Effects.CEffect_DropAnim] Frame 0
class Effects.CEffect_DropAnim extends CEffect { var m_Velocity, m_Mc, m_ScaleRate, m_SpinRate; function CEffect_DropAnim () { super(CEffect.Type_DropAnim); } function OnInit(i_mc, i_spinRate, i_scaleRate, i_initialVelocityX, i_initialVelocityY) { m_Velocity = new Core.Vector2(((i_initialVelocityX == null) ? (Constants.LateralVelocity * (1 - (Math.random() * 2))) : (i_initialVelocityX)), ((i_initialVelocityY == null) ? 0 : (i_initialVelocityY))); m_Mc = i_mc; m_ScaleRate = ((i_scaleRate != null) ? (i_scaleRate) : 0); m_SpinRate = ((i_spinRate != null) ? (i_spinRate) : 0); return(m_Mc != null); } function OnUpdate(i_forceFinish, i_deltaT) { m_Velocity.Y = m_Velocity.Y + (s_Gravity * i_deltaT); m_Mc._x = m_Mc._x + (m_Velocity.X * i_deltaT); m_Mc._y = m_Mc._y + (m_Velocity.Y * i_deltaT); m_Mc._xscale = m_Mc._xscale + (m_ScaleRate * i_deltaT); m_Mc._yscale = m_Mc._yscale + (m_ScaleRate * i_deltaT); m_Mc._rotation = m_Mc._rotation + (m_SpinRate * i_deltaT); var _local4 = CCoord.ToGlobal(m_Mc); if (((_local4.X - m_Mc._width) > Constants.GameResX) || ((_local4.Y - m_Mc._height) > Constants.GameResY)) { i_forceFinish = true; } super.OnUpdate(i_forceFinish, i_deltaT); } static var s_Gravity = 5000; }
Symbol 73 MovieClip [__Packages.Core.COrientedBox] Frame 0
class Core.COrientedBox { var m_center, m_extentsR, m_extentsU, m_axesR, m_axesU; function COrientedBox () { m_center = new Core.Vector2(0, 0); m_extentsR = 0; m_extentsU = 0; m_axesR = new Core.Vector2(0, 0); m_axesU = new Core.Vector2(0, 0); } function SetCenter(x, y) { m_center.X = x; m_center.Y = y; } function SetCenterV(c) { m_center.Copy(c); } function SetExtents(right, up) { m_extentsR = right; m_extentsU = up; } function SetAxes(rightX, rightY, upX, upY) { m_axesR.X = rightX; m_axesR.Y = rightY; m_axesU.X = upX; m_axesU.Y = upY; } function SetAxesV(right, up) { m_axesR.Copy(right); m_axesU.Copy(up); } function checkCollision(boxB) { var _local6 = boxB.m_axesR; var _local9 = boxB.m_axesU; var _local10 = boxB.m_extentsR; var _local7 = boxB.m_extentsU; var _local5 = new Core.Vector2(0, 0); _local5.Copy(boxB.m_center); _local5.Subtract(m_center); var _local2 = [0, 0, 0, 0]; var _local3 = 0; var _local4 = 0; _local2[0] = Math.abs(m_axesR.Dot(_local6)); _local2[1] = Math.abs(m_axesR.Dot(_local9)); _local3 = Math.abs(m_axesR.Dot(_local5)); _local4 = (m_extentsR + (_local10 * _local2[0])) + (_local7 * _local2[1]); if (_local3 > _local4) { return(false); } _local2[2] = Math.abs(m_axesU.Dot(_local6)); _local2[3] = Math.abs(m_axesU.Dot(_local9)); _local3 = Math.abs(m_axesU.Dot(_local5)); _local4 = (m_extentsU + (_local10 * _local2[2])) + (_local7 * _local2[3]); if (_local3 > _local4) { return(false); } _local3 = Math.abs(_local6.Dot(_local5)); _local4 = (_local10 + (m_extentsR * _local2[0])) + (m_extentsU * _local2[2]); if (_local3 > _local4) { return(false); } _local3 = Math.abs(_local9.Dot(_local5)); _local4 = (_local7 + (m_extentsR * _local2[1])) + (m_extentsU * _local2[3]); if (_local3 > _local4) { return(false); } return(true); } function drawBox(parentMC, color, thickness) { var _local2 = new Core.Vector2(m_axesR.X * m_extentsR, m_axesR.Y * m_extentsR); var _local3 = new Core.Vector2(m_axesU.X * m_extentsU, m_axesU.Y * m_extentsU); parentMC.lineStyle(thickness, color, 100); parentMC.moveTo((m_center.X + _local2.X) + _local3.X, (m_center.Y + _local2.Y) + _local3.Y); parentMC.lineTo((m_center.X - _local2.X) + _local3.X, (m_center.Y - _local2.Y) + _local3.Y); parentMC.lineTo((m_center.X - _local2.X) - _local3.X, (m_center.Y - _local2.Y) - _local3.Y); parentMC.lineTo((m_center.X + _local2.X) - _local3.X, (m_center.Y + _local2.Y) - _local3.Y); parentMC.lineTo((m_center.X + _local2.X) + _local3.X, (m_center.Y + _local2.Y) + _local3.Y); } }
Symbol 74 MovieClip [__Packages.CBoardVertical] Frame 0
class CBoardVertical extends CBoard { var m_actionDelta, m_VertTileSet, m_TileSet, m_Queue, SetState, m_LoseShadowBoundingClip, m_EffectsLayer, m_Lost; function CBoardVertical () { super(); } function Reset() { super.Reset(); m_actionDelta = 0; } function onLoad() { super.onLoad(); m_VertTileSet = CTileSetVertical(m_TileSet); } function onXmlLoaded() { super.onXmlLoaded(); m_Queue.SetStickersVisible(false, true); } function AdvanceDanger() { super.AdvanceDanger(); _global.Sounds.PlaySound(Constants.__get__Sound_Whoosh()); SetState(CBoard.State_Dropping); m_VertTileSet.PushDown(); } function DrawLoseBoundary() { super.DrawLoseBoundary(); var _local3 = (Level.m_BoardLevel * Level.m_SnoodHeight) + 1; m_LoseShadowBoundingClip._y = m_TileSet._y + (Level.m_LoseLevel * Level.m_SnoodHeight); trace((((((("LOSE_SHADOW:" + m_LoseShadowBoundingClip._y) + ":") + Level.m_LoseLevel) + ":") + Level.m_SnoodHeight) + ":") + m_TileSet._y); } function onTileSetDropComplete() { SetState(CBoard.State_Playing); m_TileSet.UpdateBoundingBox(); Level.m_BoardLevel = Level.m_BoardLevel + 1; m_EffectsLayer._y = m_EffectsLayer._y + Level.m_SnoodHeight; m_Lost = m_TileSet.CheckAndUpdateForLoss(); } function OnPlayUpdate(i_deltaT) { super.OnPlayUpdate(i_deltaT); if (CGame.DbgActionMode) { m_actionDelta = m_actionDelta + i_deltaT; m_TileSet._y = m_TileSet.m_OrigCoord.Y + Math.ceil(m_actionDelta * s_ActionModeDropRate); m_EffectsLayer._y = m_TileSet._y; Level.m_BoardLevel = Math.floor((m_TileSet._y - m_TileSet.m_OrigCoord.Y) / Level.m_SnoodHeight); m_Lost = m_TileSet.CheckAndUpdateForLoss(); } } function SwapActiveLauncher(inPlayer) { return(false); } function SetTraceShot(i_val, i_noSetVar) { super.SetTraceShot(i_val, i_noSetVar); } static var s_ActionModeDropRate = 3; }
Symbol 75 MovieClip [__Packages.CTileSetVertical] Frame 0
class CTileSetVertical extends CTileSet { var BarShaft, _barShaft, Bar, _bar, cacheAsBitmap, State, m_shakeDuration, m_shakeStartX, _x, m_shakeStartY, _y, m_activeTweens, IsTweenActive, onEnterFrame, BoundingClip; function CTileSetVertical () { super(); } function onLoad() { super.onLoad(); BarShaft = _barShaft; CDebug.Assert(BarShaft != null, this, "Couldn't find bar shaft"); Bar = _bar; CDebug.Assert(Bar != null, this, "Couldn't find bar"); } function PushDown() { cacheAsBitmap = true; State = CTileSet.State_DroppingInitialShake; m_shakeDuration = s_InitialShakeDuration; m_shakeStartX = _x; m_shakeStartY = _y; } function OnPlayUpdate(i_deltaT) { super.OnPlayUpdate(i_deltaT); if (State == CTileSet.State_DroppingInitialShake) { _x = m_shakeStartX + ((Math.random() * 6) - 3); _y = m_shakeStartY + ((Math.random() * 6) - 3); m_shakeDuration = m_shakeDuration - (1 / Constants.Fps); if (m_shakeDuration <= 0) { _x = m_shakeStartX; _y = m_shakeStartY; State = CTileSet.State_DroppingMovingToTarget; var _local3 = new Core.CTween(this, "_y", mx.transitions.easing.Regular.easeOut, _y, _y + Level.m_SnoodHeight, s_DropDuration, true); m_activeTweens.push(_local3); _local3 = new Core.CTween(BarShaft, "_y", mx.transitions.easing.Regular.easeOut, BarShaft._y, BarShaft._y - Level.m_SnoodHeight, s_DropDuration, true); m_activeTweens.push(_local3); _local3 = new Core.CTween(BarShaft, "_height", mx.transitions.easing.Regular.easeOut, BarShaft._height, BarShaft._height + Level.m_SnoodHeight, s_DropDuration, true); m_activeTweens.push(_local3); } } else if (State == CTileSet.State_DroppingMovingToTarget) { if (!IsTweenActive()) { m_activeTweens = []; m_shakeStartX = _x; m_shakeStartY = _y; State = CTileSet.State_DroppingEndShake; m_shakeDuration = s_EndShakeDuration; } } else if (State == CTileSet.State_DroppingEndShake) { _x = m_shakeStartX + ((Math.random() * 6) - 3); _y = m_shakeStartY + ((Math.random() * 6) - 3); m_shakeDuration = m_shakeDuration - (1 / Constants.Fps); if (m_shakeDuration <= 0) { _x = m_shakeStartX; _y = m_shakeStartY; State = CTileSet.State_Playing; onEnterFrame = null; BoundingClip._height = BoundingClip._height - Level.m_SnoodHeight; cacheAsBitmap = false; CBoard.G.onTileSetDropComplete(); } } } function GetDiveBarDist() { return(Level.m_LoseLevel - Level.m_BoardLevel); } static var s_InitialShakeDuration = 0.1; static var s_DropDuration = 0.3; static var s_EndShakeDuration = 0; }
Symbol 76 MovieClip [__Packages.Effects.CEffect_ScareAnim] Frame 0
class Effects.CEffect_ScareAnim extends CEffect { var m_Elapsed, m_Delay, m_Duration, m_Borb, m_origCoord; function CEffect_ScareAnim () { super(CEffect.Type_ScareAnim); } function OnInit(i_borb, i_srcCoord, i_duration, i_delay) { var _local4 = true; m_Elapsed = 0; if (i_delay == null) { m_Delay = s_Delay + (Oberon.MathX.randRange(s_RandRangeMin, s_RandRangeMax) * s_RandMag); } else { m_Delay = i_delay; } if (i_duration == null) { m_Duration = (m_Delay + s_Duration) + (Oberon.MathX.randRange(s_RandRangeMin, s_RandRangeMax) * s_RandMag); } else { m_Duration = i_duration; } m_Borb = i_borb; m_origCoord = new CCoord(i_borb._x, i_borb._y); var _local2 = "happy"; var _local3 = m_Borb.__get__Color(); if (_local3 == Constants.Snood_Pearl) { _local2 = "mad"; } else if (_local3 == Constants.Snood_Crabby) { _local2 = "madNoDir"; } else if (_local3 == Constants.Snood_Sandy) { _local2 = "creepy"; } else if (_local3 == Constants.Snood_Holly) { _local2 = "flirt"; } _local4 = _local4 && (m_Borb.PlayEmoteAnim(_local2, true, null, i_srcCoord) != null); return(_local4); } function OnUpdate(i_forceFinish, i_deltaT) { m_Elapsed = m_Elapsed + i_deltaT; if (m_Elapsed > m_Duration) { i_forceFinish = true; } else if (m_Elapsed > m_Delay) { m_Borb._x = m_origCoord.X + Oberon.MathX.randRange(-s_Magnitude, s_Magnitude); m_Borb._y = m_origCoord.Y + Oberon.MathX.randRange(-s_Magnitude, s_Magnitude); } super.OnUpdate(i_forceFinish, i_deltaT); } function OnComplete() { super.OnComplete(); m_Borb.KillEmoteAnim(); m_Borb.LookOffCenter(); m_Borb._x = m_origCoord.X; m_Borb._y = m_origCoord.Y; } static var s_Delay = 1.5; static var s_Duration = 3; static var s_Magnitude = 1; var s_RandRangeMin = 0; var s_RandRangeMax = 4; var s_RandMag = 0.1; }
Symbol 77 MovieClip [__Packages.CQueue] Frame 0
class CQueue extends MovieClip { var m_headMcs, m_posHeadMcs, FallInAnimCompleteEvent, AdvanceAnimCompleteEvent, RetreatAnimCompleteEvent, FinishedAllAnimEvent, ElevatorLoadCompleteEvent, m_activeHeadMcs, m_fallInMarker, FallInMarker, m_LeftTextLabel, _x, _y; function CQueue () { super(); m_headMcs = []; m_posHeadMcs = []; m_loaded = false; FallInAnimCompleteEvent = new Oberon.CEvent(this); AdvanceAnimCompleteEvent = new Oberon.CEvent(this); RetreatAnimCompleteEvent = new Oberon.CEvent(this); FinishedAllAnimEvent = new Oberon.CEvent(this); ElevatorLoadCompleteEvent = new Oberon.CEvent(this); FinishedAllAnimEvent.PushBehavior(mx.utils.Delegate.create(this, onFinishedAllAnim), false); AdvanceAnimCompleteEvent.PushBehavior(mx.utils.Delegate.create(this, onQueueAdvanceComplete), false); } function GetHeadMcs() { return(m_headMcs); } function GetAbsMax() { return(m_headMcs.length); } function GetCurMax() { return(m_curMax); } function SetCurMax(i_val) { if (m_loaded) { CDebug.Assert(i_val <= GetAbsMax(), this, (("CurMax greater than AbsMax " + i_val) + " vs ") + GetAbsMax()); m_curMax = Math.min(i_val, m_curMax); } else { m_curMax = i_val; } } function GetCount() { return(m_activeHeadMcs.length); } function SetCount(i_val) { CDebug.Assert(m_loaded, this, "Can't change count if not yet loaded"); Fill(Math.min(i_val, GetAbsMax())); } function IsEmpty() { return(GetCount() == 0); } function Reset() { var _local2 = 0; while (_local2 < m_posHeadMcs.length) { var _local3 = CQueueBorb(m_posHeadMcs[_local2]); if (_local3 != null) { returnToPool(_local3); m_posHeadMcs[_local2] = null; } _local2++; } } function Hurry() { if (!m_hurry) { m_hurry = true; var _local2 = 0; while (_local2 < m_activeHeadMcs.length) { var _local3 = CQueueBorb(m_activeHeadMcs[_local2]); if (_local3.GetAnim() == CQueueBorb.Anim_QueueMove) { _local3.Hurry(s_HurryMod); } _local2++; } } } function onLoad() { m_fallInMarker = MovieClip(FallInMarker); m_LeftTextLabel = MovieClip(CGame.Board.OwnerDlg.UsedButton); m_fallInMarker._visible = false; } function onUnload() { super.onUnload(); } function resetHeadPool() { m_activeHeadMcs = []; m_headMcs = []; m_posHeadMcs = []; var _local4 = 0; while (CQueueBorb(this["_head" + _local4]) != null) { var _local2 = CQueueBorb(this["_head" + _local4]); _local2.__get__State()(SnoodHead.State_InQueue); _local2.SetPowerUp(Constants.PowerUp_Ghost); _local2.SetPosition(null, true, m_hurry, s_HurryMod); _local2.gotoAndStop(1); _local2.AnimCompleteEvent.PushBehavior(mx.utils.Delegate.create(this, OnBorbFinishedAnim)); m_headMcs.push(_local2); _local4++; } m_dropPos = GetAbsMax() + 2; AnimDropPos = GetAbsMax(); var _local3 = 0; while (_local3 < (m_dropPos + GetAbsMax())) { m_posHeadMcs.push(null); _local3++; } CDebug.Assert(m_headMcs.length > 0, "CQueue.PopulatePool()", "head pool empty (no heads prefixed with _head?)"); } function Init(i_maxHeads) { resetHeadPool(); SetCurMax(i_maxHeads); if (m_curMax == null) { m_curMax = GetAbsMax(); } else if (m_curMax > GetAbsMax()) { CDebug.Assert(false, this, "Max borbs exceeded in queue (curMax too high)"); m_curMax = Math.min(m_curMax, GetAbsMax()); } m_loaded = true; } function SetDebugColors(i_on) { var _local2 = 0; while (_local2 < m_headMcs.length) { var _local3 = new Color(m_headMcs[_local2]); if (i_on) { _local3.setTransform({ba:100, bb:255}); } else { _local3.setTransform({ba:100, bb:100}); } _local2++; } } function InsertBorbIntoQueue(i_borb) { if (CGame.Board.m_Won) { i_borb.Vaporize(true, true); } else if (AddAnimBorb(i_borb.ToInfo())) { Resync(null); SnoodHead.ReturnToPool(i_borb); } else { i_borb.DropTo(Effects.CEffect_BorbDropAnim.Dest_OffBoard, 0); var _local2 = CGame.Board.CreateSmallPointsEffect((_x + m_fallInMarker._x) + 55, _y + m_fallInMarker._y); _local2.Display.PointsText.text = "+" + Constants.Score_QueueOverflowBonus; _local2.Display.Points.ResetText(); CGame.Sounds.PlaySound(Constants.__get__Sound_Points()); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_QueueOverflowBonus; } } function PopAllHeadAsBonus() { var _local3 = 1; var _local2 = 0; while (_local2 < m_posHeadMcs.length) { if (m_posHeadMcs[_local2] != null) { if ((_local2 != 0) || (SnoodHead(m_posHeadMcs[_local2]).IsAnimating())) { SnoodHead(m_posHeadMcs[_local2]).Vaporize(false, true, _local3 * s_WinDelayPerHead, null, 3); _local3++; } } _local2++; } } function OnBorbFinishedAnim(i_context) { var _local2 = SnoodHead(i_context); if (!(_local2.__get__LastAnim() === CQueueBorb.Anim_QueueMove)) { } else { var _local3 = CQueueBorb(_local2); if (_local3.m_Pos == 0) { ElevatorLoadCompleteEvent.Fire(); m_hurry = false; } if (!IsAnimating()) { AdvanceAnimCompleteEvent.Fire(); } } } function onQueueAdvanceComplete() { FinishedAllAnimEvent.Fire(); } function onFinishedAllAnim() { CQueueBorb.s_CurrentQueueFallTime = CQueueBorb.s_BaseQueueFallTime; } function AddAnimBorb(i_borbInfo) { if (CQueueBorb(m_posHeadMcs[AnimDropPos]) == null) { var _local2 = popNextAvailPooledBorb(); if (_local2 != null) { _local2.SyncWithInfo(i_borbInfo); m_posHeadMcs[AnimDropPos] = _local2; _local2.SetPosition(AnimDropPos, true, m_hurry, s_HurryMod); onHeadsChanged(); return(true); } } return(false); } function returnToPool(i_borb) { m_activeHeadMcs = Oberon.ArrayX.RemoveFrom(m_activeHeadMcs, i_borb); i_borb.SetPosition(null, true, m_hurry, s_HurryMod); i_borb = null; } function GetFallInMarkerCoord() { return(new CCoord(m_fallInMarker._x, m_fallInMarker._y)); } function ToString() { var _local3 = "CQueue contents:\n\n HeadColors:\n "; var _local2 = 0; while (_local2 < m_headMcs.length) { _local3 = _local3 + (_local2 + " "); if (m_headMcs[_local2] == null) { _local3 = _local3 + "N"; } else { _local3 = _local3 + ((CBorbInfo(CQueueBorb(m_headMcs[_local2]).ToInfo()).ToString() + " ") + CQueueBorb(m_headMcs[_local2])._y); } _local3 = _local3 + newline; _local2++; } _local3 = _local3 + "\n PosHeads:\n "; _local2 = 0; while (_local2 < m_posHeadMcs.length) { _local3 = _local3 + ((_local2 + ((m_posHeadMcs[_local2] == null) ? "-" : "+")) + ((_local2 < 10) ? " " : " ")); _local2++; } return(_local3 + "\n\n"); } function CheckColors() { var _local3 = 0; while (_local3 < m_posHeadMcs.length) { var _local2 = CQueueBorb(m_posHeadMcs[_local3]); if (((_local2 != null) && (Constants.IsHead(_local2.__get__Color(), true))) && (!CGame.Board.IsBorbActive(_local2.__get__Color()))) { var _local4 = CGame.Board.GetRandBorb(); _local2.SetColor(_local4.Color); } _local3++; } } function onHeadsChanged() { var _local5 = Math.max(0, GetCount() - 1); CGame.Board.SnoodsLeftDisplay.__set__Text(String(_local5)); var _local4 = new Color(CGame.Board.SnoodsLeftDisplay); if (_local5 == 0) { _local4.setRGB(16711680); } else if (_local5 < 3) { _local4.setRGB(16776960); } else { _local4.setRGB(16777215); } var _local3 = 1; var _local2 = 3; while (_local2 < GetCurMax()) { if (m_posHeadMcs[_local2] != null) { _local3 = _local2; } _local2++; } var _local6 = CQueueBorb(m_posHeadMcs[_local3]); if (_local6 != null) { var _local7 = _local6.GetMainHeadClip(); } } function InsertBorbAtElevator(i_borb, i_replace) { var _local7 = false; if ((!i_replace) && (GetCount() == GetAbsMax())) { var _local5 = false; var _local2 = m_posHeadMcs.length - 1; while ((!_local5) && (_local2 >= 0)) { var _local3 = CQueueBorb(m_posHeadMcs[_local2]); if (_local3 != null) { dropBorb(_local3, s_queueOverflowVelY); m_posHeadMcs[_local2] = null; _local5 = true; var _local4 = CGame.Board.CreateSmallPointsEffect((_x + m_fallInMarker._x) + 55, _y + m_fallInMarker._y); _local4.Display.PointsText.text = "+" + Constants.Score_QueueOverflowBonus; _local4.Display.Points.ResetText(); CGame.Sounds.PlaySound(Constants.__get__Sound_Points()); CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_QueueOverflowBonus; } _local2--; } } if (i_replace) { var _local8 = CQueueBorb(m_posHeadMcs[0]); _local8.SyncWithInfo(i_borb); } else { var _local6 = popNextAvailPooledBorb(); if (_local6 != null) { _local6.SyncWithInfo(i_borb); _local7 = Resync(_local6); } } return(_local7); } function dropBorb(i_borb, i_velY) { var _local2 = CCoord.ToLocal(i_borb.GetMainHeadClip(), CGame.TileSet); var _local5 = SnoodHead.GetAndRemoveFromPool(i_borb.ToInfo(), i_borb.__get__Size(), _local2.X, _local2.Y); returnToPool(i_borb); var _local4 = Effects.CEffect_DropAnim(CEffect.CreateEffect(CEffect.Type_DropAnim)); if (_local4.OnInit(_local5, 0, 0, null, i_velY)) { CGame.EffectMgr.AddEffectToActiveList(_local4); } } function onDropBorbComplete(i_effect) { SnoodHead.ReturnToPool(SnoodHead(i_effect.m_Mc)); } function Resync(i_rewindBorb) { var _local7 = false; var _local5 = []; var _local3 = i_rewindBorb; var _local2 = 0; while (_local2 < m_posHeadMcs.length) { var _local4 = CQueueBorb(m_posHeadMcs[_local2]); var _local6 = null; if (_local4 == null) { if (_local3 != null) { m_posHeadMcs[_local2] = _local3; _local3.SetPosition(_local2, _local2 == 0, m_hurry, s_HurryMod); _local3 = null; _local7 = true; } else { _local5.push(_local2); } } else if (_local3 != null) { var _local8 = m_posHeadMcs[_local2]; m_posHeadMcs[_local2] = _local3; _local3.SetPosition(_local2, _local2 == 0, m_hurry, s_HurryMod); _local3 = _local8; _local7 = true; } else if (_local5.length > 0) { if (_local4.GetAnim() != SnoodHead.Anim_None) { _local4.KillTweens(); } _local7 = true; _local6 = Number(_local5.shift()); _local5.push(_local2); m_posHeadMcs[_local2] = null; m_posHeadMcs[_local6] = _local4; _local4.SetPosition(_local6, false, m_hurry, s_HurryMod); } _local2++; } if (_local7) { onHeadsChanged(); } return(_local7); } function popNextAvailPooledBorb() { var _local3 = 0; while (_local3 < m_headMcs.length) { var _local2 = CQueueBorb(m_headMcs[_local3]); if (_local2.m_Pos == null) { m_activeHeadMcs.push(_local2); return(_local2); } _local3++; } return(null); } function Refill() { CQueueBorb.s_CurrentQueueFallTime = CQueueBorb.s_BaseRefillQueueFallTime; Fill(m_curMax, true); } function Fill(i_count, i_forceRefill) { if (i_forceRefill) { Reset(); } CDebug.Assert(i_count >= GetCount(), "CQueue.Fill()", "Can only add borbs with Fill (remove unsupported)"); var _local2 = new Array(); var _local5 = new Array(); var _local4 = m_dropPos; while ((GetCount() < i_count) && (_local4 < m_posHeadMcs.length)) { if (m_posHeadMcs[_local4] == null) { var _local3 = popNextAvailPooledBorb(); if (_local3 != null) { _local5.push(_local3); _local3.__set__Color(Constants.Snood_Mary); m_posHeadMcs[_local4] = _local3; _local3.SetPosition(_local4, true, m_hurry, s_HurryMod); } } _local4++; } var _local10 = CGame.TileSet; var _local6 = _local10.GetBorbColorCounts(); var _local8 = _local10.GetHeadCount(); _local4 = 0; while (_local4 < Constants.Snood_HeadCount) { trace((((Number(_local6[_local4] + _local6[_local4 + Constants.Snood_HeadCount]) + ":") + _local8) + ":") + Number(s_MinQueueBorbPct / 100)); if (((_local6[_local4] + _local6[_local4 + Constants.Snood_HeadCount]) / _local8) > (s_MinQueueBorbPct / 100)) { _local2.push(new CBorbInfo(_local4 + 1)); } _local4++; } while (_local2.length > _local5.length) { _local2.splice(Oberon.MathX.randRange(0, _local2.length - 1), 1); } while (_local2.length < _local5.length) { _local2.push(CGame.Board.GetRandBorb()); } Core.Utility.ShuffleArray(_local2); _local4 = 0; while (_local4 < _local5.length) { var _local7 = CQueueBorb(_local5[_local4]); _local7.SyncWithInfo(CBorbInfo(_local2[_local4])); _local7.m_FromRefill = true; _local4++; } Resync(null); CDebug.Assert(GetCount() == i_count, "CQueue.Fill()", ((("Couldn't fit all borbs into queue (" + GetCount()) + " of ") + i_count) + ")"); } function Advance(inDir) { var _local2 = CQueueBorb(m_posHeadMcs[0]); if (_local2 != null) { returnToPool(_local2); m_posHeadMcs[0] = null; } Resync(null); } function SetStickersVisible(i_bRight, i_bBottom) { } function IsAnimating() { var _local2 = 0; while (_local2 < m_activeHeadMcs.length) { if (CQueueBorb(m_activeHeadMcs[_local2]).__get__CurAnim() != SnoodHead.Anim_None) { return(true); } _local2++; } return(false); } function IsBusy() { return(IsAnimating()); } function GetNextBorb() { CDebug.Assert(m_posHeadMcs[0] != null, "CQueue.GetNextBorb()", "Elevator empty!"); return(CQueueBorb(m_posHeadMcs[0]).ToInfo()); } function GetNextPosBorb() { var _local2 = 1; while (_local2 < m_posHeadMcs.length) { if (m_posHeadMcs[_local2] != null) { return(CQueueBorb(m_posHeadMcs[_local2]).ToInfo()); } _local2++; } return(null); } function ClearNextBorb() { if (CQueueBorb(m_posHeadMcs[0]) != null) { returnToPool(CQueueBorb(m_posHeadMcs[0])); m_posHeadMcs[0] = null; } } function SetAllBorbsToInfo(i_info, i_notPowerupOnly) { var _local2 = 0; while (_local2 < m_posHeadMcs.length) { if (!i_notPowerupOnly) { var _local3 = CGame.Board.GetRandBorb(); _local3.PowerUp = i_info.PowerUp; CQueueBorb(m_posHeadMcs[_local2]).SyncWithInfo(_local3); } else { CQueueBorb(m_posHeadMcs[_local2]).SyncWithInfo(i_info); } _local2++; } } static var s_queueOverflowVelY = -900; static var s_HurryMod = 1.8; static var s_WinDelayPerHead = 10; static var s_MinQueueBorbPct = 10; var m_dropPos = 0; var AnimDropPos = 0; var m_loaded = false; var m_hurry = false; var m_curMax = null; }
Symbol 78 MovieClip [__Packages.mx.transitions.easing.None] Frame 0
class mx.transitions.easing.None { function None () { } static function easeNone(t, b, c, d) { return(((c * t) / d) + b); } static function easeIn(t, b, c, d) { return(((c * t) / d) + b); } static function easeOut(t, b, c, d) { return(((c * t) / d) + b); } static function easeInOut(t, b, c, d) { return(((c * t) / d) + b); } static var version = "1.1.0.52"; }
Symbol 79 MovieClip [__Packages.Effects.CEffect_Vaporize] Frame 0
class Effects.CEffect_Vaporize extends CEffect { var m_NeedsUpdate, m_Immediate, m_ApplyBonus, m_State, m_MaxVaporizeDelay, m_ForceDelay, m_Borb, m_VaporizeMc, m_FrameTween, m_BonusEffect, m_bReadyForDelete; function CEffect_Vaporize () { super(CEffect.Type_Vaporize); m_NeedsUpdate = false; m_Immediate = false; m_ApplyBonus = false; m_State = State_Vaporize; m_MaxVaporizeDelay = s_MaxVaporizeDelay; m_ForceDelay = null; } function OnInit(i_borb, i_immediate, i_applyBonus, i_forceDelay, i_maxDelay, i_vaporizeEffectNumber, i_scaleVaporize) { m_MaxVaporizeDelay = ((i_maxDelay != null) ? (i_maxDelay) : (s_MaxVaporizeDelay)); m_ForceDelay = i_forceDelay; m_Borb = i_borb; m_Immediate = i_immediate; var _local5 = CGame.Board.m_EffectsLayer; var _local7 = _local5.getNextHighestDepth(); var _local4 = String(i_vaporizeEffectNumber); if (i_vaporizeEffectNumber == null) { _local4 = s_DefaultEffectId; } m_VaporizeMc = _local5.attachMovie("Vaporize" + _local4, "Vaporize" + _local7, _local7); m_VaporizeMc.stop(); m_VaporizeMc._xscale = CGame.TileSet.m_SnoodScale; m_VaporizeMc._yscale = CGame.TileSet.m_SnoodScale; if (m_Borb.IsFromPool()) { m_VaporizeMc._x = m_Borb._x; m_VaporizeMc._y = m_Borb._y; } else { var _local2 = CCoord.ToLocal(m_Borb, m_VaporizeMc._parent); m_VaporizeMc._x = _local2.X + m_Borb.GetMainHeadClip()._x; m_VaporizeMc._y = _local2.Y + m_Borb.GetMainHeadClip()._y; if (CQueueBorb(m_Borb) != null) { m_VaporizeMc._x = _local2.X + ((m_Borb.GetMainHeadClip()._x * Constants.Scaling) / 100); m_VaporizeMc._y = _local2.Y + ((m_Borb.GetMainHeadClip()._y * Constants.Scaling) / 100); } } if (((((m_Borb.__get__Color() >= Constants.Snood_LumpStart) && (m_Borb.__get__Color() <= Constants.Snood_LumpEnd)) || (m_Borb.__get__Color() == Constants.Snood_Slippery)) || (m_Borb.__get__Color() == Constants.Snood_MiniRobot)) || (CGame.Board.m_Lost)) { var _local8 = new Color(m_VaporizeMc); _local8.setRGB(0); } var _local3 = 0; if (!m_Immediate) { if (m_ForceDelay != null) { _local3 = m_ForceDelay / Constants.Fps; } else { _local3 = Oberon.MathX.randRange(0, m_MaxVaporizeDelay) / Constants.Fps; } } var _local6 = (m_Immediate ? (s_VaporizeStartFrame) : 1); CDebug.Assert(m_VaporizeMc != null, "CEffect_Vaporize", "null vaporize mc"); m_FrameTween = new Core.CTween(m_VaporizeMc, "_currentframe", null, _local6, m_VaporizeMc._totalframes, ((m_VaporizeMc._totalframes - _local6) / Constants.Fps) * s_VaporizeSpeed, true, _local3); m_FrameTween.onMotionChanged = mx.utils.Delegate.create(this, onTweenChanged); m_FrameTween.onMotionFinished = mx.utils.Delegate.create(this, onTweenComplete); m_ApplyBonus = ((i_applyBonus != null) ? (i_applyBonus) : false); if (i_scaleVaporize) { m_VaporizeMc._x = m_VaporizeMc._x * Constants.Scaling; m_VaporizeMc._y = m_VaporizeMc._y * Constants.Scaling; } return(m_FrameTween != null); } function onTweenChanged() { if (m_Immediate || (m_VaporizeMc._currentframe >= s_VaporizeStartFrame)) { CGame.Sounds.PlaySound(Oberon.MathX.randRange(Constants.__get__Sound_BubbleFirst(), Constants.__get__Sound_BubbleLast())); m_FrameTween.onMotionChanged = null; if (m_Borb.IsFromPool()) { SnoodHead.ReturnToPool(m_Borb); } else { m_Borb._visible = false; } } } function onTweenComplete() { if (m_State == State_Vaporize) { if (m_ApplyBonus) { if (m_Borb.IsFromPool()) { m_BonusEffect = CGame.Board.CreateSmallPointsEffect(m_VaporizeMc._x, m_VaporizeMc._y); } else { m_BonusEffect = CGame.Board.CreateSmallPointsEffect(m_VaporizeMc._x, CGame.Board.m_EffectsLayer._y + m_VaporizeMc._y); } m_BonusEffect.Display.PointsText.text = "+" + Constants.Score_QueueOverflowBonus; m_BonusEffect.Display.Points.ResetText(); m_BonusEffect._y = m_BonusEffect._y + s_PointsEffectYOffset; m_BonusEffect._x = m_BonusEffect._x + s_PointsEffectXOffset; CGame.Sounds.PlaySound(Constants.__get__Sound_Points()); applyBonus(); m_NeedsUpdate = true; m_State = State_Bonus; } else { m_bReadyForDelete = true; } m_VaporizeMc.removeMovieClip(); m_VaporizeMc = null; } else { m_bReadyForDelete = true; } } function applyBonus() { CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + Constants.Score_QueueOverflowBonus; } function OnUpdate(i_forceFinish, i_deltaT) { if (m_State == State_Bonus) { if ((m_BonusEffect._currentframe == m_BonusEffect._totalframes) || (m_BonusEffect == null)) { i_forceFinish = true; } } return(super.OnUpdate(i_forceFinish, i_deltaT)); } function OnComplete() { super.OnComplete(); if (m_FrameTween.m_IsPlaying) { m_FrameTween.Finish(); } if (m_ApplyBonus && (m_State != State_Bonus)) { applyBonus(); } if (m_BonusEffect != null) { m_BonusEffect.removeMovieClip(); } } static var s_VaporizeSpeed = 1; static var s_MaxVaporizeDelay = 12; static var s_PointsEffectYOffset = -35; static var s_PointsEffectXOffset = 45; static var s_DefaultEffectId = "1"; static var s_VaporizeStartFrame = 3; static var State_Vaporize = 0; static var State_Bonus = 1; }
Symbol 80 MovieClip [__Packages.Effects.CEffect_BankAnim] Frame 0
class Effects.CEffect_BankAnim extends CEffect { var m_NumberOrient, m_CanBonus, m_NeedsUpdate; function CEffect_BankAnim (i_parentMc, i_depth, i_orient, i_pos, i_color, i_canBonus) { super(CEffect.Type_BankAnim); m_NumberOrient = i_orient; m_CanBonus = i_canBonus; m_orient = CLauncher.OrientToString(m_NumberOrient); switch (i_orient) { case CLauncher.Orient_Bottom : m_animMc = i_parentMc.attachMovie("BankShotAnimBottom", "BankShotAnim" + i_depth, i_depth); break; case CLauncher.Orient_Top : m_animMc = i_parentMc.attachMovie("BankShotAnimTop", "BankShotAnim" + i_depth, i_depth); break; case CLauncher.Orient_Left : m_animMc = i_parentMc.attachMovie("BankShotAnimLeft", "BankShotAnim" + i_depth, i_depth); break; case CLauncher.Orient_Right : m_animMc = i_parentMc.attachMovie("BankShotAnimRight", "BankShotAnim" + i_depth, i_depth); break; default : CDebug.WriteErr("CEffect_BankAnim()", "Unknown orient " + i_orient); } m_color = i_color; m_animMc.stop(); m_animMc._x = i_pos.X; m_animMc._y = i_pos.Y; CDebug.Assert(m_animMc != null, "CEffect_BankAnim.onLoad()", "AnimMc is null"); m_animMc.onEnterFrame = mx.utils.Delegate.create(this, onEnterFrameMc); m_state = State_Playing; m_NeedsUpdate = false; } function onEnterFrameMc() { m_animMc.onEnterFrame = mx.utils.Delegate.create(this, onEnterFrameTwoMc); m_wallMc = MovieClip(m_animMc.BankShotWallAnim); m_textMc = MovieClip(m_animMc.BankShotText); CDebug.Assert(m_textMc != null, "CEffect_BankAnim.onLoad()", "BankShotText is null"); CDebug.Assert(m_wallMc != null, "CEffect_BankAnim.onLoad()", "BankShotWallAnim is null"); var _local2 = new Color(m_wallMc); if ((m_color != null) && (m_color <= (Constants.Snood_HeadCount * 2))) { Object(_local2).setTintRGB(Constants.s_BorbColorDarkTints[m_color - 1], s_BankTintPct); } m_wallMc.gotoAndStop(1); m_textMc.gotoAndStop(1); m_textMc._visible = false; addWallAnimLoop(); } function onEnterFrameTwoMc() { CGame.Localizer.LocMc(m_animMc); } function addWallAnimLoop() { m_wallFrameTween = new Core.CTween(m_wallMc, "_currentframe", null, 1, m_wallMc._totalframes, s_BankDuration); m_wallFrameTween.onMotionFinished = mx.utils.Delegate.create(this, OnWallLoopComplete); } function OnWallLoopComplete() { if (m_state == State_Playing) { addWallAnimLoop(); } } function PlayRewardAnim(i_count) { m_textMc.gotoAndStop(i_count + 1); m_textMc._visible = true; FadeOut(); } function FadeOut() { m_state = State_Fading; m_frameTween = new Core.CTween(m_animMc, "_currentframe", null, 1, m_animMc._totalframes, s_TextDuration, true); m_frameTween.onMotionFinished = mx.utils.Delegate.create(this, OnComplete); } function OnComplete() { super.OnComplete(); m_state = State_Complete; m_animMc.removeMovieClip(); } static var s_TextDuration = 1; static var s_BankDuration = 0.5; static var s_BankTintPct = 90; static var State_Playing = 0; static var State_Fading = 1; static var State_Complete = 2; var m_state = 0; var m_orient = "Top"; var m_animMc = null; var m_wallMc = null; var m_textMc = null; var m_color = null; var m_frameTween = null; var m_wallFrameTween = null; }
Symbol 81 MovieClip [__Packages.Effects.CEffect_IdleLookAnim] Frame 0
class Effects.CEffect_IdleLookAnim extends CEffect { var m_NeedsUpdate, m_borb, m_Type; function CEffect_IdleLookAnim () { super(CEffect.Type_IdleLookAnim); m_NeedsUpdate = false; } function OnIdleEffectInit() { var _local7 = true; var _local5 = CGame.TileSet.GetActiveBorbsCount(); if (_local5 == 0) { _local7 = false; } else { var _local4 = false; var _local6 = CGame.TileSet.GetActiveBorbsFixedArray(); var _local2 = 0; while ((!_local4) && (_local2 < s_MaxTries)) { var _local3 = Oberon.MathX.randRange(0, _local5 - 1); m_borb = SnoodHead(_local6[_local3]); CDebug.Assert(m_borb != null, "CEffect_IdleLookAnim.OnInit()", "null borb found"); if (((!m_borb.IsEmoteAnimPlaying()) && (m_borb.HasEyes())) && (m_borb.__get__PowerUp() == Constants.PowerUp_None)) { if (CGame.DbgShowBorbIdleAnim) { SnoodHead.DbgClearTextOnAllSnoods(); m_borb.DbgSetText("ANIM" + m_Type); } m_borb.LookOffCenter(); m_borb.LookCompleteCallback = mx.utils.Delegate.create(this, OnComplete); _local4 = true; } _local2++; } if (!_local4) { _local7 = false; } } return(_local7); } function OnComplete() { m_borb.LookCompleteCallback = null; return(super.OnComplete()); } static var s_MaxTries = 15; }
Symbol 82 MovieClip [__Packages.Effects.CEffect_IdleEmoteAnim] Frame 0
class Effects.CEffect_IdleEmoteAnim extends CEffect { var m_Elapsed, m_State, m_BorbSrc, m_BorbTgt, m_BorbSrcAnim, m_BorbTgtAnim, m_Type, m_LookDirTgt, m_LookDirSrc; function CEffect_IdleEmoteAnim () { super(CEffect.Type_IdleEmoteAnim); m_Elapsed = 0; m_State = State_AnimSrcInvoke; } function OnIdleEffectInit() { var _local16 = true; var _local11 = CGame.TileSet; var _local14 = _local11.GetActiveBorbsCount(); if (_local14 == 0) { _local16 = false; } else { var _local13 = false; var _local15 = _local11.GetActiveBorbsFixedArray(); var _local9 = 0; while ((!_local13) && (_local9 < s_MaxTries)) { var _local12 = Oberon.MathX.randRange(0, _local14 - 1); m_BorbSrc = SnoodHead(_local15[_local12]); CDebug.Assert(m_BorbSrc != null, "CEffect_IdleEmoteAnim.OnInit()", "null borb found"); var _local8 = m_BorbSrc.__get__Color(); if ((Constants.IsHead(_local8) && (!m_BorbSrc.IsEmoteAnimPlaying())) && (m_BorbSrc.__get__PowerUp() == Constants.PowerUp_None)) { var _local7 = s_headInteractions[_local8 - 1]; var _local6 = _local11.GetNeighborCoords(m_BorbSrc); var _local2 = 0; while ((m_BorbTgt == null) && (_local2 < _local6.length)) { var _local5 = CCoord(_local6[_local2]); m_BorbTgt = _local11.GetTileFromCoord(_local5); if (((((m_BorbTgt == null) || (m_BorbTgt.__get__Color() > _local7.length)) || (!Constants.IsHead(m_BorbTgt.__get__Color()))) || (m_BorbSrc.__get__PowerUp() != Constants.PowerUp_None)) || (m_BorbTgt.IsEmoteAnimPlaying())) { m_BorbTgt = null; } _local2++; } if (m_BorbTgt != null) { var _local10 = m_BorbTgt.__get__Color(); m_BorbSrcAnim = _local7[_local10 - 1]; m_BorbTgtAnim = s_headInteractions[_local10 - 1][_local8 - 1]; if (CGame.DbgShowBorbIdleAnim) { SnoodHead.DbgClearTextOnAllSnoods(); m_BorbSrc.DbgSetText(String(m_Type)); m_BorbTgt.DbgSetText(String(m_Type)); } var _local3 = m_BorbSrc.GetPosCoord(); var _local4 = m_BorbTgt.GetPosCoord(); if (((_local3.Y + 5) >= _local4.Y) && ((_local3.Y - 5) <= _local4.Y)) { if (_local3.X < _local4.X) { m_LookDirTgt = CEyes.Dir_Left; m_LookDirSrc = CEyes.Dir_Right; } else { m_LookDirTgt = CEyes.Dir_Right; m_LookDirSrc = CEyes.Dir_Left; } } else if (_local3.X < _local4.X) { if (_local3.Y < _local4.Y) { m_LookDirSrc = CEyes.Dir_DownRight; m_LookDirTgt = CEyes.Dir_UpLeft; } else { m_LookDirSrc = CEyes.Dir_UpRight; m_LookDirTgt = CEyes.Dir_DownLeft; } } else if (_local3.Y < _local4.Y) { m_LookDirSrc = CEyes.Dir_DownLeft; m_LookDirTgt = CEyes.Dir_UpRight; } else { m_LookDirSrc = CEyes.Dir_UpLeft; m_LookDirTgt = CEyes.Dir_DownRight; } if (m_BorbSrc.PlayEmoteAnim(m_BorbSrcAnim, true, m_LookDirSrc) != null) { m_BorbSrc.EmoteCompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnEmoteComplete)); if (s_ReactionDur == 0) { m_BorbTgt.PlayEmoteAnim(m_BorbTgtAnim, true, m_LookDirTgt); m_BorbTgt.EmoteCompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnEmoteComplete)); m_State = State_AnimDestReaction; } _local13 = true; } } } _local9++; } if (!_local13) { _local16 = false; } } return(_local16); } function OnEmoteComplete() { if ((!m_BorbTgt.IsEmoteAnimPlaying()) && (!m_BorbSrc.IsEmoteAnimPlaying())) { OnComplete(); } } function OnUpdate(i_forceFinish, i_deltaT) { m_Elapsed = m_Elapsed + i_deltaT; if ((m_State == State_AnimSrcInvoke) && (m_Elapsed >= s_ReactionDur)) { if (m_BorbTgt.PlayEmoteAnim(m_BorbTgtAnim, true, m_LookDirTgt) != null) { m_BorbTgt.EmoteCompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnEmoteComplete)); m_State = State_AnimDestReaction; } else { i_forceFinish = true; } } else if ((m_State == State_AnimDestReaction) && (m_Elapsed >= (s_Duration + s_ReactionDur))) { m_BorbTgt.CompleteEmoteAnim(); m_State = State_AnimDestStop; } else if ((m_State == State_AnimDestStop) && (m_Elapsed >= (s_Duration + (s_ReactionDur * 2)))) { m_BorbSrc.CompleteEmoteAnim(); m_State = State_AnimCompleting; } else if (m_State == State_AnimCompleting) { if ((!m_BorbTgt.IsEmoteAnimPlaying()) && (!m_BorbSrc.IsEmoteAnimPlaying())) { OnComplete(); } } return(super.OnUpdate(i_forceFinish, i_deltaT)); } function OnComplete() { super.OnComplete(); m_BorbSrc.KillEmoteAnim(); m_BorbTgt.KillEmoteAnim(); } static var s_MaxTries = 15; static var s_Duration = 5; static var s_ReactionDur = 0.4; static var State_AnimSrcInvoke = 0; static var State_AnimDestReaction = 1; static var State_AnimDestStop = 2; static var State_AnimCompleting = 3; static var s_headInteractions = [["happy", "default", "happy", "happy", "sad", "happy", "happy", "sad"], ["mad", "mad", "happy", "happy", "sad", "mad", "mad", "mad"], ["happy", "happy", "happy", "default", "happy", "default", "happy", "sad"], ["default", "default", "default", "default", "default", "default", "default", "special"], ["mad", "sad", "sad", "mad", "happy", "happy", "sad", "mad"], ["happy", "default", "happy", "happy", "default", "happy", "happy", "sad"], ["happy", "happy", "happy", "happy", "sad", "happy", "happy", "sad"], ["creepy", "mad", "mad", "mad", "mad", "mad", "mad", "sad"]]; }
Symbol 83 MovieClip [__Packages.Effects.CEffect_IdleBlinkAnim] Frame 0
class Effects.CEffect_IdleBlinkAnim extends CEffect { var m_NeedsUpdate, m_Borb; function CEffect_IdleBlinkAnim () { super(CEffect.Type_IdleBlinkAnim); m_NeedsUpdate = false; } function OnIdleEffectInit() { var _local7 = true; var _local8 = CGame.TileSet; var _local5 = _local8.GetActiveBorbsCount(); if (_local5 == 0) { _local7 = false; } else { var _local4 = false; var _local6 = _local8.GetActiveBorbsFixedArray(); var _local2 = 0; while ((!_local4) && (_local2 < s_MaxTries)) { var _local3 = Oberon.MathX.randRange(0, _local5 - 1); m_Borb = SnoodHead(_local6[_local3]); CDebug.Assert(m_Borb != null, "CEffect_IdleBlinkAnim.OnInit()", "null borb found"); if ((((m_Borb.__get__PowerUp() == Constants.PowerUp_None) && (!m_Borb.IsEmoteAnimPlaying())) && (Effects.CEffect_EmoteAnim.HasAnimation(m_Borb.__get__Color(), "blink"))) && (m_Borb.PlayEmoteAnim("blink") != null)) { m_Borb.EmoteCompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnComplete)); _local4 = true; } _local2++; } if (!_local4) { _local7 = false; } } return(_local7); } function OnComplete() { super.OnComplete(); if (m_Borb.IsEmoteAnimPlaying()) { m_Borb.KillEmoteAnim(); } } static var s_MaxTries = 15; }
Symbol 84 MovieClip [__Packages.Effects.CEffect_IdleSpecialAnim] Frame 0
class Effects.CEffect_IdleSpecialAnim extends CEffect { var m_NeedsUpdate, m_runtime, m_duration, m_Borb, m_animIndex; function CEffect_IdleSpecialAnim () { super(CEffect.Type_IdleSpecialAnim); m_NeedsUpdate = false; m_runtime = 0; m_duration = 0; } function OnIdleEffectInit() { var _local8 = true; var _local9 = CGame.TileSet; var _local6 = _local9.GetActiveBorbsCount(); if (_local6 == 0) { _local8 = false; } else { var _local5 = false; var _local7 = _local9.GetActiveBorbsFixedArray(); var _local3 = 0; while ((!_local5) && (_local3 < s_MaxTries)) { var _local4 = Oberon.MathX.randRange(0, _local6 - 1); m_Borb = SnoodHead(_local7[_local4]); CDebug.Assert(m_Borb != null, "CEffect_IdleBlinkAnim.OnInit()", "null borb found"); var _local2 = s_idleEffects[m_Borb.__get__Color() - 1]; if (_local2.length > 0) { m_animIndex = Oberon.MathX.randRange(0, _local2.length - 1); if ((!m_Borb.IsEmoteAnimPlaying()) && (m_Borb.__get__PowerUp() == Constants.PowerUp_None)) { m_duration = Number(s_idleEffectsDur[m_Borb.__get__Color() - 1][m_animIndex]); if (m_Borb.PlayEmoteAnim(_local2[m_animIndex], true) != null) { _local5 = true; if (m_duration != null) { m_NeedsUpdate = true; } else { m_Borb.EmoteCompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnAnimComplete)); } } } } _local3++; } if (!_local5) { _local8 = false; } } return(_local8); } function OnUpdate(i_forceFinish, i_deltaT) { m_runtime = m_runtime + i_deltaT; if (m_runtime > m_duration) { if (m_Borb.GetEmoteAnim().m_ReverseOnComplete) { m_Borb.CompleteEmoteAnim(); m_Borb.EmoteCompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnAnimComplete)); m_NeedsUpdate = false; } else { i_forceFinish = true; } } return(super.OnUpdate(i_forceFinish, i_deltaT)); } function OnAnimComplete() { OnComplete(); } function OnComplete() { super.OnComplete(); if (m_Borb.IsEmoteAnimPlaying()) { m_Borb.KillEmoteAnim(); } } static var s_MaxTries = 15; static var s_idleEffects = [["happy", "sad"], ["sad"], ["happy", "sad"], ["happy", "sad", "special"], ["happy", "sad", "mad"], ["happy", "sadNoDir"], ["happy", "sad", "flirt"], ["happy", "sad", "mad", "creepy"], [], [], [], [], [], [], [], [], [], [], [], ["smirk", "angry", "angry shifty"], ["smirk", "angry"], ["smirk", "angry"], [], [], [], [], [], ["idle"], [], []]; static var s_idleEffectsDur = [[3, 3], [3, 3], [3, 3], [3, 3, null], [3, 3, 3], [3, 3], [3, 3], [3, 3, 3], [3], [3], [3], [3], [3], [3], [3], [3], [], [], [], [3, 3, null], [3, 3], [3, 3], [], [], [], [], [], [null], [], []]; }
Symbol 85 MovieClip [__Packages.Effects.CEffect_BubbleBubble] Frame 0
class Effects.CEffect_BubbleBubble extends CEffect { var m_state, m_head, m_targetColor, m_bBlocking, m_bubbleMc, m_frameTween, m_headAlphaTween; function CEffect_BubbleBubble () { super(CEffect.Type_BubbleBubble); m_state = State_Idle; } function OnInit(i_head, i_targetColor) { CGame.Sounds.PlaySound(Constants.__get__Sound_BubbleBubbleHit()); m_head = i_head; m_targetColor = i_targetColor; m_bBlocking = true; m_state = State_Starting; var _local3 = CCoord.ToLocal(i_head, CBoard.G.m_EffectsLayer); var _local2 = CBoard.G.m_EffectsLayer.getNextHighestDepth(); m_bubbleMc = CBoard.G.m_EffectsLayer.attachMovie("BubbleBubbleAnim", "BubbleBubbleAnim" + _local2, _local2); m_bubbleMc._x = _local3.X; m_bubbleMc._y = _local3.Y; m_bubbleMc._width = CBoard.G.m_TileSet.m_SnoodWidth * 1.2; m_bubbleMc._yscale = m_bubbleMc._xscale; m_frameTween = new Core.CTween(m_bubbleMc, "_currentframe", null, 1, m_bubbleMc._totalframes, 0.6, true); m_headAlphaTween = new Core.CTween(m_head, "_alpha", null, 100, 0, 0.4, true); return(true); } function OnUpdate(i_forceFinish, i_deltaT) { if (((m_state == State_Starting) && (!m_frameTween.m_IsPlaying)) && (!m_headAlphaTween.m_IsPlaying)) { m_state = State_Ending; m_head.__set__Color(m_targetColor); CGame.Board.ResyncColors(); m_frameTween = new Core.CTween(m_bubbleMc, "_currentframe", null, m_bubbleMc._totalframes, 1, 0.6, true); m_headAlphaTween = new Core.CTween(m_head, "_alpha", null, 0, 100, 0.4, true); } if (((m_state == State_Ending) && (!m_frameTween.m_IsPlaying)) && (!m_headAlphaTween.m_IsPlaying)) { m_bubbleMc.removeMovieClip(); i_forceFinish = true; } super.OnUpdate(i_forceFinish, i_deltaT); } function OnComplete() { super.OnComplete(); m_bBlocking = false; Level.TryDropSnoods(CGame.CurrentPlayer, false, false, true); m_bubbleMc.removeMovieClip(); } static var State_Idle = 1; static var State_Starting = 2; static var State_Ending = 3; }
Symbol 86 MovieClip [__Packages.Effects.CEffect_Mine] Frame 0
class Effects.CEffect_Mine extends CEffect { var m_borb, m_explodeMc, m_coord, m_frameTween; function CEffect_Mine () { super(CEffect.Type_Mine); m_iState = StateExploding; } function OnInit(borb) { m_borb = borb; CGame.Sounds.PlaySound(Constants.__get__Sound_Bomb()); var _local2 = m_borb.getNextHighestDepth(); m_explodeMc = m_borb.attachMovie("MineExplodeAnim", "MineExplodeAnim" + _local2, _local2); CDebug.Assert(m_explodeMc != null, "CEffect_Mine.OnBoardEvent()", "couldn't attach explode Mc to " + m_borb); m_coord = m_borb.GetGridCoord(); m_frameTween = new Core.CTween(m_explodeMc, "_currentframe", null, 1, m_explodeMc._totalframes, s_AnimDurationSec, true); CGame.TileSet.SetTile(m_coord.X, m_coord.Y, null); return(m_borb != null); } function OnUpdate(bForceComplete, i_deltaT) { switch (m_iState) { case StateExploding : if (m_frameTween.GetPercentComplete() > 50) { Explode(); } break; case StateExplodeCompleting : if (m_frameTween.m_IsPlaying) { break; } bForceComplete = true; } return(super.OnUpdate(bForceComplete, i_deltaT)); } function Explode() { var _local6 = CGame.TileSet.GetNeighborCoordsOfCoord(m_coord); var _local7 = false; var _local3 = 0; while (_local3 < _local6.length) { var _local5 = CCoord(_local6[_local3]); var _local2 = CGame.TileSet.GetTileFromCoord(_local5); if (_local2 != null) { if (_local2.__get__PowerUp() == Constants.PowerUp_Mine) { var _local4 = Effects.CEffect_Mine(CEffect.CreateEffect(CEffect.Type_Mine)); if (_local4.OnInit(_local2)) { CGame.EffectMgr.AddEffectToActiveList(_local4); } } else { Level.InvalidateSpot(_local2); _local2.Vaporize(); } } _local3++; } m_iState = StateExplodeCompleting; } function OnComplete() { super.OnComplete(); if (m_iState == StateExploding) { Explode(); } m_frameTween.Finish(); SnoodHead.ReturnToPool(m_borb); Level.TryDropSnoods(CGame.CurrentPlayer, false, false, true); m_explodeMc.removeMovieClip(); } static var s_AnimDurationSec = 0.5; static var StateExploding = 1; static var StateExplodeCompleting = 2; var m_iState = StateExploding; }
Symbol 87 MovieClip [__Packages.Effects.CEffect_WinAnim] Frame 0
class Effects.CEffect_WinAnim extends CEffect { var m_runtime, m_State, m_waitStart, m_curIndex, m_bBlocking; function CEffect_WinAnim () { super(CEffect.Type_WinAnim); m_runtime = 0; m_State = State_Wait; m_waitStart = null; trace((GameState.GetBaseLevel() + ":") + GameState.IsCurrentArcadeModeBall()); if (GameState.GetBaseLevel() >= 10) { if (GameState.IsCurrentArcadeModeBall()) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MajorBallLevelCompletion); } else { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MajorVertLevelCompletion); } } if (GameState.GetBaseLevel() >= 5) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_MinorLevelCompletion); } if (CGame.Board.m_AllShotsHaveBankBonus) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_ReboundWin); } m_curIndex = 0; } function OnInit() { m_bBlocking = true; CGame.EffectMgr.m_IdleAnimationsOn = true; CGame.Board.SetEnabled(false); var _local2 = CGame.TileSet; Effects.CEffect_BorbDropAnim.StopAllEffects(); CGame.Board.StopSounds(); CGame.TileSet.DropAllHeads(true, true); CGame.Board.m_Launcher.UpdateTracer(); new Core.CTween(CGame.Board.m_Launcher, "_alpha", null, CGame.Board.m_Launcher._alpha, 0, s_CannonFadeOutDur); return(true); } function FinishVaporize() { var _local2 = CGame.EffectMgr.GetAllEffectsOfType(CEffect.Type_BorbDropAnim); var _local1 = 0; while (_local1 < _local2.length) { Effects.CEffect_BorbDropAnim(_local2[_local1]).Finish(); _local1++; } _local2 = CGame.EffectMgr.GetAllEffectsOfType(CEffect.Type_Vaporize); _local1 = 0; while (_local1 < _local2.length) { Effects.CEffect_Vaporize(_local2[_local1]).Finish(); _local1++; } } function OnUpdate(i_forceFinish, i_deltaT) { m_runtime = m_runtime + i_deltaT; if (m_State == State_Wait) { if (m_runtime > s_PopDelay) { CGame.Board.PopAllHeadAsBonus(s_MaxVaporizeDelay); m_State = State_Pop; } } else if (m_State == State_Pop) { if ((m_runtime > s_Timeout) || ((!Effects.CEffect_BorbDropAnim.AreEffectsActive()) && (!CGame.EffectMgr.IsEffectPlaying(CEffect.Type_Vaporize)))) { GameState.Win(); m_State = State_Rain; } } else if (m_State == State_Rain) { if (Oberon.MathX.randRange(0, s_RandPopFreq) == 0) { if ((UI.CWinDlg(Core.DialogUtil.Top()) != null) && (UI.CWinDlg(Core.DialogUtil.Top()).FireworkMc != null)) { var _local5 = Effects.CEffect_Firework(CEffect.CreateEffect(CEffect.Type_Firework)); var _local6 = CGame.TileSet.BoundingClip; var _local4 = 400; var _local3 = 300; switch (Oberon.MathX.randRange(0, 3)) { case 0 : _local4 = Oberon.MathX.randRange(Constants.GameResX / 6, (4 * Constants.GameResX) / 6); _local3 = Oberon.MathX.randRange(Constants.GameResY / 10, (2 * Constants.GameResY) / 10); break; case 1 : _local4 = Oberon.MathX.randRange(Constants.GameResX / 6, (4 * Constants.GameResX) / 6); _local3 = Constants.GameResY - Oberon.MathX.randRange(Constants.GameResY / 10, (2 * Constants.GameResY) / 10); break; case 2 : _local4 = Oberon.MathX.randRange(Constants.GameResX / 10, (2 * Constants.GameResX) / 10); _local3 = (Constants.GameResY / 6) + Oberon.MathX.randRange(0, (4 * Constants.GameResY) / 6); break; case 3 : _local4 = Constants.GameResX - Oberon.MathX.randRange(Constants.GameResX / 10, (2 * Constants.GameResX) / 10); _local3 = Oberon.MathX.randRange(Constants.GameResY / 6, (4 * Constants.GameResY) / 6); } if (_local5.OnInit(UI.CWinDlg(Core.DialogUtil.Top()).FireworkMc, _local4, _local3)) { CGame.EffectMgr.AddEffectToActiveList(_local5); } } } } return(super.OnUpdate(i_forceFinish, i_deltaT)); } function OnComplete() { super.OnComplete(); } static var s_Rate = 2; static var s_FollowMouseWithEyes = false; static var s_RandPopFreq = 4; static var s_MaxVaporizeDelay = 60; static var s_Timeout = 10; static var s_CannonFadeOutDur = 0.5; static var s_PopDelay = 1; static var State_Wait = 0; static var State_Rain = 1; static var State_Pop = 2; static var s_AnimateTime = 5000; }
Symbol 88 MovieClip [__Packages.UI.CWinDlg] Frame 0
class UI.CWinDlg extends CDialog { var FireworkMc, m_tweens, m_playDanceA, ScoreText, GameScoreText, m_nextLevelAnim, NextLevelAnim, BoardScoreLabelText, BoardScoreText, LumpScore, RubberLubberScore, JellyFishyScore, BossScore, DiveBarScore, HighScoreAnim; function CWinDlg () { super(); FireworkMc = null; m_tweens = []; m_danceTweens = []; m_playDanceA = false; m_origScore = CGame.CurrentPlayer.m_Score - CGame.Board.m_StartScore; if (GameState.IsCurrentArcadeModeBall()) { m_bonusMultiplier = Constants.BallBonusMod; m_origScoreWithBonus = m_origScore * Constants.BallBonusMod; CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + (m_origScore * (Constants.BallBonusMod - 1)); } else { m_bonusMultiplier = 1; m_origScoreWithBonus = 0; } m_diveBarCount = CGame.Board.m_WinDiveBarDist; m_diveBarPoints = m_diveBarCount * Constants.Score_DiveBarBonus; m_lumpCount = CGame.Board.m_LumpsDropped; m_lumpPoints = CGame.Board.m_LumpsDropped * Constants.Score_LumpDropBonus; m_rubberLubberCount = CGame.Board.m_RubberLubberDropped; m_rubberLubberPoints = CGame.Board.m_RubberLubberDropped * Constants.Score_RubberLubberDropBonus; m_jellyFishyCount = CGame.Board.m_JellyFishyDropped; m_jellyFishyPoints = CGame.Board.m_JellyFishyDropped * Constants.Score_JellyFishyDropBonus; CGame.CurrentPlayer.m_Score = CGame.CurrentPlayer.m_Score + (((((m_lumpPoints * m_bonusMultiplier) + (m_diveBarPoints * m_bonusMultiplier)) + (m_rubberLubberPoints * m_bonusMultiplier)) + (m_jellyFishyPoints * m_bonusMultiplier)) + (m_bossPoints * m_bonusMultiplier)); } function onLoad() { super.onLoad(); FireworkMc = _root.createEmptyMovieClip("FIREWORKS_LAYER", _root.getNextHighestDepth()); CGame.Board.m_LockScoreUpdates = true; ScoreText.text = CGame.CurrentPlayer.m_Score; GameScoreText.text = String(CGame.Board.m_StartScore); m_nextLevelAnim = MovieClip(NextLevelAnim); m_nextLevelAnim.stop(); CDebug.Assert(m_nextLevelAnim != null, "CWinDlg.onLoad()", "Couldn't find next level anim"); var _local4 = s_InitDur; var _local5 = new Core.CTween(BoardScoreLabelText, "_alpha", Core.CTween.DefaultMcTween, 0, 100, s_AlphaInDur, true, _local4); m_tweens.push(_local5); _local5 = new Core.CTween(BoardScoreText, "_alpha", Core.CTween.DefaultMcTween, 0, 100, s_AlphaInDur, true, _local4); m_tweens.push(_local5); _local4 = _local4 + (s_AlphaInDur + s_IncrDelay); _local5 = new Core.CTween(this, "m_boardScore", Core.CTween.DefaultMcTween, 0, m_origScore, s_AlphaInDur, true, s_BoardScoreShowDur); m_tweens.push(_local5); _local5.onMotionChanged = mx.utils.Delegate.create(this, onBoardScoreChanged); _local4 = _local4 + (s_BoardScoreShowDur + s_IncrDelay); _local4 = _local4 + (doBonusTween(MovieClip(LumpScore), _local4, m_lumpCount, m_lumpPoints, s_BoardScoreShowDur, ((m_rubberLubberCount > 0) || (m_jellyFishyPoints > 0)) || (m_bossPoints > 0), m_origScore, CGame.Board.m_StartScore + (m_origScore * m_bonusMultiplier)) + s_IncrDelay); _local4 = _local4 + (doBonusTween(MovieClip(RubberLubberScore), _local4, m_rubberLubberCount, m_rubberLubberPoints, s_BoardScoreShowDur, (m_jellyFishyPoints > 0) || (m_bossPoints > 0), m_origScore + m_lumpPoints, (CGame.Board.m_StartScore + m_origScore) + (m_lumpPoints * m_bonusMultiplier)) + s_IncrDelay); _local4 = _local4 + (doBonusTween(MovieClip(JellyFishyScore), _local4, m_jellyFishyCount, m_jellyFishyPoints, s_BoardScoreShowDur, m_bossPoints > 0, (m_origScore + m_lumpPoints) + m_rubberLubberPoints, ((CGame.Board.m_StartScore + (m_origScore * m_bonusMultiplier)) + (m_lumpPoints * m_bonusMultiplier)) + (m_rubberLubberPoints * m_bonusMultiplier)) + s_IncrDelay); _local4 = _local4 + (doBonusTween(MovieClip(BossScore), _local4, null, m_bossPoints, s_BoardScoreShowDur, false, ((m_origScore + m_lumpPoints) + m_rubberLubberPoints) + m_jellyFishyPoints, (((CGame.Board.m_StartScore + (m_origScore * m_bonusMultiplier)) + (m_lumpPoints * m_bonusMultiplier)) + (m_rubberLubberPoints * m_bonusMultiplier)) + (m_jellyFishyPoints * m_bonusMultiplier)) + s_IncrDelay); _local4 = _local4 + (doBonusTween(MovieClip(DiveBarScore), _local4, m_diveBarCount, m_diveBarPoints, s_BoardScoreShowDur, false, (((m_origScore + m_lumpPoints) + m_rubberLubberPoints) + m_jellyFishyPoints) + m_bossPoints, ((((CGame.Board.m_StartScore + (m_origScore * m_bonusMultiplier)) + (m_lumpPoints * m_bonusMultiplier)) + (m_rubberLubberPoints * m_bonusMultiplier)) + (m_jellyFishyPoints * m_bonusMultiplier)) + (m_bossPoints * m_bonusMultiplier), mx.utils.Delegate.create(this, OnAllAnimComplete)) + s_IncrDelay); } function onBoardScoreChanged() { BoardScoreText.text = String(m_boardScore); GameScoreText.text = String(CGame.Board.m_StartScore + (m_boardScore * m_bonusMultiplier)); } function doBonusTween(i_mc, i_tweenDelay, i_count, i_points, i_dur, i_fadeOut, i_boardScoreStart, i_totalScoreStart, i_callback) { var _local2 = 0; i_mc._visible = false; if (((i_count != null) && (i_count == 0)) || (i_points == 0)) { return(_local2); } i_mc._alpha = 0; var _local6 = new Core.CTween(i_mc, "_alpha", Core.CTween.DefaultMcTween, 0, 100, s_AlphaInDur, true, i_tweenDelay); _local6.onMotionChanged = mx.utils.Delegate.create(this, updateAlpha); m_tweens.push(_local6); _local2 = _local2 + (s_AlphaInDur + s_IncrDelay); _local6 = new Core.CTween(i_mc, "count", Core.CTween.DefaultMcTween, 0, i_count, s_CountDur, true, i_tweenDelay + _local2); _local6.onMotionChanged = mx.utils.Delegate.create(this, updateTextCount); m_tweens.push(_local6); _local6 = new Core.CTween(i_mc, "points", Core.CTween.DefaultMcTween, 0, i_points, s_CountDur, true, i_tweenDelay + _local2); _local6.onMotionChanged = mx.utils.Delegate.create(this, updateTextPoints); m_tweens.push(_local6); _local6 = new Core.CTween(this, "boardPoints", Core.CTween.DefaultMcTween, i_boardScoreStart, i_boardScoreStart + i_points, s_CountDur, true, i_tweenDelay + _local2); _local6.onMotionChanged = mx.utils.Delegate.create(this, updateTextBoardScore); m_tweens.push(_local6); _local6 = new Core.CTween(this, "totalPoints", Core.CTween.DefaultMcTween, i_totalScoreStart, i_totalScoreStart + (i_points * m_bonusMultiplier), s_CountDur, true, i_tweenDelay + _local2); _local6.onMotionChanged = mx.utils.Delegate.create(this, updateTextTotalScore); m_tweens.push(_local6); _local2 = _local2 + (s_CountDur + s_IncrDelay); if (i_fadeOut) { _local6 = new Core.CTween(i_mc, "_alpha", Core.CTween.DefaultMcTween, 100, 0, s_AlphaInDur / 2, true, i_tweenDelay + _local2); m_tweens.push(_local6); _local2 = _local2 + (s_AlphaInDur / 2); } if (i_callback != null) { _local6.onMotionFinished = i_callback; } return(_local2); } function updateAlpha(i_tween) { i_tween.m_Obj._visible = i_tween.m_Obj._alpha > 0; } function updateTextPoints(i_tween) { TextField(i_tween.m_Obj.PointsText).text = String(i_tween.GetPosition()); } function updateTextCount(i_tween) { TextField(i_tween.m_Obj.CountText).text = String(i_tween.GetPosition()); } function updateTextBoardScore(i_tween) { BoardScoreText.text = String(i_tween.GetPosition()); } function updateTextTotalScore(i_tween) { TextField(i_tween.m_Obj.GameScoreText).text = String(i_tween.GetPosition()); } function onRegister(i_context) { super.onRegister(i_context); if (Core.CUIComponent(i_context) != null) { var _local5 = Core.CUIComponent(i_context); var _local3 = null; var _local4 = false; switch (_local5.__get__Name()) { case "Dance1" : _local4 = true; case "Dance1B" : _local3 = 0; break; case "Dance2" : _local4 = true; case "Dance2B" : _local3 = 1; break; case "Dance3" : _local4 = true; case "Dance3B" : _local3 = 2; break; case "Dance4" : _local4 = true; case "Dance4B" : _local3 = 3; break; case "Dance5" : _local4 = true; case "Dance5B" : _local3 = 4; break; case "Dance6" : _local4 = true; case "Dance6B" : _local3 = 5; } if (_local3 != null) { var _local6 = SnoodHead(_local5.Head); CDebug.Assert(_local6 != null, "CWinDlg.onRegister()", "Couldn't find head on index " + _local3); if ((_local4 && (m_playDanceA)) || ((!_local4) && (!m_playDanceA))) { _local6.SetColor((_local3 % Constants.Snood_HeadCount) + 1); Oberon.CEnterFrameEvent.AddEvent(_local6, mx.utils.Delegate.create(this, onDanceBorbEnterFrame), true); _local5.gotoAndStop(1); var _local7 = new Core.CTween(_local5, "_currentframe", null, 1, _local5._totalframes, (m_playDanceA ? (s_DanceASpeed) : (s_DanceBSpeed)), true, 1 + (s_DanceDelay * _local3)); _local7.m_LoopNoDelay = true; _local7.m_Looping = true; m_danceTweens.push(_local7); } else { _local5.stop(); _local5._visible = false; } } } return(true); } function onDanceBorbEnterFrame(i_context) { SnoodHead(i_context).PlayEmoteAnim("happy", true); } function PlayHighScoreAnim() { m_shouldPlayHighScoreAnim = true; } function playHighScoreAnimWhenReady() { Core.FrameAdvancer(HighScoreAnim).play(); } function IsAnimating() { var _local3 = false; var _local2 = 0; while ((!_local3) && (_local2 < m_tweens.length)) { _local3 = Core.CTween(m_tweens[_local2]).m_IsPlaying; _local2++; } return(_local3); } function OnMouseDown() { FinishAnims(); } function FinishAnims() { var _local2 = 0; while (_local2 < m_tweens.length) { if (Core.CTween(m_tweens[_local2]).m_IsPlaying) { Core.CTween(m_tweens[_local2]).Finish(); } _local2++; } } function Close() { super.Close(); var _local3 = 0; while (_local3 < m_tweens.length) { Core.CTween(m_tweens[_local3]).StopUpdates(); _local3++; } var _local4 = CGame.EffectMgr.GetAllEffectsOfType(CEffect.Type_WinAnim); _local3 = 0; while (_local3 < _local4.length) { Effects.CEffect_WinAnim(_local4[_local3]).Finish(); _local3++; } if (FireworkMc != null) { FireworkMc.removeMovieClip(); } } function DoDefaultCancelAction() { DoDefaultOkAction(); } function DoDefaultOkAction() { if (IsAnimating()) { FinishAnims(); } else { DoNextLevel(); } } function DoNextLevel() { CPachinko.GameBreak(); } function OnAllAnimComplete() { if (m_shouldPlayHighScoreAnim) { playHighScoreAnimWhenReady(); } CGame.Board.m_LockScoreUpdates = false; } static var s_InitDur = 0.3; static var s_AlphaInDur = 0.3; static var s_IncrDelay = 0.1; static var s_BoardScoreShowDur = 1; static var s_CountDur = 1; static var s_DanceASpeed = 3; static var s_DanceBSpeed = 1; static var s_DanceDelay = 0.16; var m_danceTweens = []; var m_boardScore = 0; var m_curScore = 0; var m_lumpPoints = 0; var m_lumpCount = 0; var m_jellyFishyPoints = 0; var m_jellyFishyCount = 0; var m_rubberLubberPoints = 0; var m_rubberLubberCount = 0; var m_bossPoints = 0; var m_bonusMultiplier = 1; var m_diveBarPoints = 0; var m_diveBarCount = 0; var m_origScore = 0; var m_origScoreWithBonus = 0; var m_shouldPlayHighScoreAnim = false; }
Symbol 89 MovieClip [__Packages.Effects.CEffect_Firework] Frame 0
class Effects.CEffect_Firework extends CEffect { var m_particles, m_type, m_mainMc, m_ColorR, m_ColorG, m_ColorB, m_particleFrames; function CEffect_Firework () { super(CEffect.Type_Firework); m_particles = []; m_type = 0; } function typeToParticleMcSymName(i_type) { switch (i_type) { case Type_Small1 : return("FireworkSmall1"); case Type_Small2 : return("FireworkSmall2"); case Type_Small3 : return("FireworkSmall3"); case Type_Small4 : return("FireworkSmall4"); case Type_Small5 : return("FireworkSmall5"); } } function OnInit(i_parentMc, i_x, i_y, i_duration, i_type) { if (s_EffectsCount >= s_MaxEffects) { return(false); } s_EffectsCount++; if (i_type == null) { var _local5 = Oberon.MathX.randRange(0, 100); var _local7 = s_RandTypeVariancePct.length; var _local3 = 0; while ((_local3 < _local7) && (_local5 >= 0)) { _local5 = _local5 - s_RandTypeVariancePct[_local3]; _local3++; } m_type = _local3 - 1; } else { m_type = i_type; } if (i_duration != null) { m_duration = i_duration; } else { m_duration = s_DurBase + ((s_DurBase * Oberon.MathX.randRange(0, s_MaxDurVariancePct)) / 100); } var _local10 = i_parentMc.getNextHighestDepth(); m_mainMc = i_parentMc.createEmptyMovieClip("firework" + _local10, _local10); m_mainMc._x = i_x; m_mainMc._y = i_y; var _local11 = new Color(m_mainMc); m_ColorR = Oberon.MathX.randRange(200, 255); m_ColorG = Oberon.MathX.randRange(40, 255); m_ColorB = Oberon.MathX.randRange(40, 255); Object(_local11).setTint(m_ColorR, m_ColorG, m_ColorB, s_TintStrength); var _local8 = typeToParticleMcSymName(m_type); var _local6 = s_PartBase + int((s_PartBase * s_MaxPartVariancePct) / 100); m_particles = new Array(_local6); var _local9 = i_parentMc.attachMovie("FireworkFlash", "flash", _local10 + 1); _local9._x = i_x; _local9._y = i_y; _local9._rotation = random(360); _local11 = new Color(_local9); Object(_local11).setTint(m_ColorR, m_ColorG, m_ColorB, 100); m_mainMc.blendMode = MovieClip.BlendModeType.ADD; var _local2 = null; var _local3 = 2; while (_local3 < (_local6 + 2)) { if (_local2 == null) { _local2 = m_mainMc.attachMovie(_local8, "fw" + _local3, _local3); m_particleFrames = _local2._totalframes; } else { _local2 = _local2.duplicateMovieClip("fw" + _local3, _local3); } _local2.blendMode = MovieClip.BlendModeType.ADD; _local2._rotation = int(random(360)); var _local4 = s_ScaleBase + int(random(s_MaxScaleVariancePct * 2)); _local2._xscale = _local4; _local2._yscale = _local4; _local2.gotoAndStop(Oberon.MathX.randRange(1, 5)); m_particles[_local3] = _local2; _local3++; } m_frameTween = new Core.CTween(this, "m_curFrame", EaseOut, 1, m_particleFrames, m_duration); m_frameTween.onMotionChanged = mx.utils.Delegate.create(this, onFrameUpdate); m_frameTween.onMotionFinished = mx.utils.Delegate.create(this, onFrameFinished); return(true); } function onFrameUpdate() { if (m_lastFrame != m_curFrame) { var _local5 = m_curFrame - m_lastFrame; var _local6 = m_curFrame / m_particleFrames; var _local4 = m_particles.length; var _local3 = 0; while (_local3 < _local4) { var _local2 = m_particles[_local3]; _local2.gotoAndStop(Math.min(_local2._currentframe + _local5, _local2._totalframes)); _local3++; } if (s_DoEndTint && (_local6 > 0.5)) { var _local7 = new Color(m_mainMc); Object(_local7).reset(); _local7 = new Color(m_mainMc); Object(_local7).setTint(m_ColorR, int(m_ColorG * (1 - (_local6 - 0.5))), int(m_ColorB * (1 - (_local6 - 0.5))), s_TintStrength); } m_lastFrame = m_curFrame; } } function onFrameFinished() { m_frameTween.StopUpdates(); m_frameTween = null; OnComplete(); } function OnComplete() { super.OnComplete(); if (m_frameTween != null) { m_frameTween.StopUpdates(); } s_EffectsCount--; m_mainMc.removeMovieClip(); } static function EaseOut(t, b, c, d) { t = t / d; return(int((((-c) * t) * (t - 2)) + b)); } static var s_TintStrength = 80; static var s_MaxEffects = 3; static var s_DoEndTint = false; static var s_DurBase = 1.5; static var s_PartBase = 40; static var s_ScaleBase = 40; static var s_MaxDurVariancePct = 40; static var s_MaxScaleVariancePct = 40; static var s_MaxPartVariancePct = 40; static var s_RandTypeVariancePct = [25, 30, 15, 15, 15]; static var Type_Small1 = 0; static var Type_Small2 = 1; static var Type_Small3 = 2; static var Type_Small4 = 3; static var Type_Small5 = 4; static var Type_Count = 5; static var s_EffectsCount = 0; var m_duration = 1; var m_lastFrame = 1; var m_curFrame = 1; var m_frameTween = null; }
Symbol 90 MovieClip [__Packages.Effects.CEffect_LoseAnim] Frame 0
class Effects.CEffect_LoseAnim extends CEffect { var m_yTweens, m_runtime, m_lastRuntime, m_offsetY, m_state, m_emoteHeads, m_heads, m_idleHeads, m_shakeEffects, m_bBlocking; function CEffect_LoseAnim () { super(CEffect.Type_LoseAnim); m_yTweens = []; m_runtime = 0; m_lastRuntime = 0; m_offsetY = 0; m_state = State_Fade; m_emoteHeads = []; m_heads = []; m_idleHeads = []; m_shakeEffects = []; } function OnInit() { m_bBlocking = true; CGame.EffectMgr.m_IdleAnimationsOn = false; var _local8 = CGame.TileSet.GetActiveBorbsCount(); var _local7 = CGame.TileSet.GetActiveBorbsFixedArray(); m_offsetY = CGame.TileSet._y - CGame.TileSet.m_OrigCoord.Y; var _local6 = 0; while (_local6 < _local8) { var _local4 = SnoodHead(_local7[_local6]); if (_local4.__get__Color() <= Constants.Snood_HeadCount) { m_heads.push(_local4); m_idleHeads.push(_local4); if (_local4.__get__PowerUp() == Constants.PowerUp_Lock) { _local4.SetPowerUp(Constants.PowerUp_None); } else { _local4.KillEmoteAnim(); } } else if ((_local4.__get__Color() >= Constants.Snood_LumpStart) && (_local4.__get__Color() <= Constants.Snood_LumpEnd)) { _local4.KillEmoteAnim(); _local4.PlayEmoteAnim("smirk", true); } _local6++; } _local6 = 0; while (_local6 < Level.m_LosePieces.length) { var _local2 = SnoodHead(Level.m_LosePieces[_local6]); new Core.CTween(_local2, "_xscale", null, _local2._xscale, _local2._xscale * 1.5, s_LosePieceTransDur); new Core.CTween(_local2, "_yscale", null, _local2._yscale, _local2._yscale * 1.5, s_LosePieceTransDur); _local2.KillEmoteAnim(); if (_local2.__get__Color() == Constants.Snood_Sandy) { _local2.PlayEmoteAnim("creepy", true); } else if (_local2.__get__Color() == Constants.Snood_Star) { _local2.PlayEmoteAnim("sadNoDir", true); } else { _local2.PlayEmoteAnim("sad", true); } new Core.CTween(_local2, "_alpha", null, _local2._alpha, 0, s_LosePieceTransDur); var _local5 = _local2.ToInfo(); _local5.PowerUp = Constants.PowerUp_None; _local5.Orb = false; var _local3 = SnoodHead.GetAndRemoveFromPool(_local5); _local3.SetColor(Oberon.MathX.randRange(Constants.Snood_LumpStart, Constants.Snood_LumpEnd)); _local3._x = _local2._x; _local3._y = _local2._y; new Core.CTween(_local3, "_xscale", null, _local3._xscale, _local3._xscale * 1.5, s_LosePieceTransDur); new Core.CTween(_local3, "_yscale", null, _local3._yscale, _local3._yscale * 1.5, s_LosePieceTransDur); new Core.CTween(_local3, "_alpha", null, 0, 100, s_LosePieceTransDur); _local6++; } CGame.Board.SetEnabled(false); CGame.Sounds.PlaySound(Constants.__get__Sound_Lose()); CGame.Board.SetEnabled(false); return(true); } function OnUpdate(i_forceFinish, i_deltaT) { SnoodHead.DbgClearTextOnAllSnoods(); var _local13 = int((m_runtime - m_lastRuntime) / (1 / Constants.Fps)); if (_local13 > 0) { m_lastRuntime = m_runtime; } m_runtime = m_runtime + i_deltaT; var _local5 = int((m_runtime - m_lastRuntime) / (1 / Constants.Fps)); if (m_state == State_Fade) { if (m_runtime >= s_FadeDuration) { m_state = State_Pop; } else { var _local9 = 1 - (m_runtime / s_FadeDuration); var _local11 = new Array(4); _local11 = new Array(); _local11 = _local11.concat(applySaturation([1, 0, 0, 0, 0], _local9), applySaturation([0, 1, 0, 0, 0], _local9), applySaturation([0, 0, 1, 0, 0], _local9), [0, 0, 0, 1, 0]); var _local6 = new flash.filters.ColorMatrixFilter(_local11); var _local3 = 0; while (_local3 < m_heads.length) { SnoodHead(m_heads[_local3]).filters = [_local6]; _local3++; } } var _local4 = Oberon.MathX.randRange(s_MinEmote * _local5, s_MaxEmote * _local5); var _local3 = 0; while ((m_idleHeads.length > 0) && (_local3 < _local4)) { addSadEmote(); _local3++; } } else if (m_state == State_Pop) { var _local4 = Oberon.MathX.randRange(s_MinEmote * _local5, s_MaxEmote * _local5); var _local3 = 0; while ((m_idleHeads.length > 0) && (_local3 < _local4)) { addSadEmote(); _local3++; } _local4 = Oberon.MathX.randRange(s_MinShake * _local5, s_MaxShake * _local5); _local3 = 0; while ((m_emoteHeads.length > 0) && (_local3 < _local4)) { addShake(); _local3++; } } else if (m_state == State_LumpDrop) { if ((false && (CGame.m_AppActive)) && (Oberon.MathX.randRange(0, s_RandPopFreq) == 0)) { var _local8 = SnoodHead.GetAndRemoveFromPool(new CBorbInfo(Oberon.MathX.randRange(Constants.Snood_LumpStart, Constants.Snood_LumpEnd)), SnoodHead.Size_Med); CDebug.Assert(_local8 != null, "CEffect_WinAnim.OnUpdate()", "Couldn't create borb"); var _local10 = SnoodHead.SizeToGridWidth(SnoodHead.Size_Med); var _local7 = CGame.Board.GetBoundingClip(); _local8._x = Oberon.MathX.randRange(int(_local7._x + (_local10 / 2)), int((_local7._x + _local7._width) - (_local10 / 2))); var _local12 = new Core.CTween(_local8, "_y", mx.transitions.easing.Strong.easeIn, (-_local10) - m_offsetY, (_local7._y + _local7._height) - Oberon.MathX.randRange(s_RainMinY, s_RainMaxY), s_RandPopDur, true); _local12.onMotionFinished = mx.utils.Delegate.create(this, onYPopTweenFinished); m_yTweens.push(_local12); } } if ((m_state != State_LumpDrop) && (m_runtime > s_Duration)) { StartLumpDrop(); } return(super.OnUpdate(i_forceFinish, i_deltaT)); } function StartLumpDrop() { GameState.Lose(); m_state = State_LumpDrop; } function OnEmoteComplete(i_borb) { var _local2 = Effects.CEffect_ShakeAnim(CEffect.CreateEffect(CEffect.Type_ShakeAnim)); if (_local2.OnInit(i_borb, s_ShakeDuration, 0)) { CGame.EffectMgr.AddEffectToActiveList(_local2); _local2.m_CompleteEvent.PushBehaviorRunOnce(mx.utils.Delegate.create(this, OnShakeComplete)); m_shakeEffects.push(_local2); } } function OnShakeComplete(i_effect) { var _local4 = Effects.CEffect_ShakeAnim(i_effect); var _local3 = _local4.m_Borb; Level.InvalidateSpot(_local3); _local3.Vaporize(); var _local2 = Oberon.ArrayX.IndexOf(m_shakeEffects, i_effect); if (_local2 != -1) { m_shakeEffects.splice(_local2, 1); } CDebug.Assert(_local2 != -1, "LoseAnim.OnShakeCOmplete()", "COuldn't find shake anim"); } function OnComplete() { super.OnComplete(); var _local3 = 0; while (_local3 < m_yTweens.length) { SnoodHead(Core.CTween(m_yTweens[_local3]).m_Obj).ReturnToPool(); Core.CTween(m_yTweens[_local3]).StopUpdates(); _local3++; } } function addSadEmote() { var _local5 = Oberon.MathX.randRange(0, m_idleHeads.length - 1); var _local4 = false; var _local2 = _local5; while ((!_local4) && (_local2 < m_idleHeads.length)) { var _local3 = SnoodHead(m_idleHeads[_local2]); if (!_local3.IsEmoteAnimPlaying()) { if (_local3.__get__Color() == Constants.Snood_Sandy) { _local3.PlayEmoteAnim("creepy", true); } else if (_local3.__get__Color() == Constants.Snood_Star) { _local3.PlayEmoteAnim("sadNoDir", true); } else { _local3.PlayEmoteAnim("sad", true); } m_idleHeads.splice(_local2, 1); _local2--; m_emoteHeads.push(_local3); _local4 = true; } if (!_local4) { _local2++; if (_local2 == m_idleHeads.length) { _local2 = 0; } if (_local2 == _local5) { _local4 = true; } } } } function addShake() { var _local6 = Oberon.MathX.randRange(0, m_emoteHeads.length - 1); var _local3 = false; var _local2 = _local6; while ((!_local3) && (_local2 < m_emoteHeads.length)) { var _local4 = SnoodHead(m_emoteHeads[_local2]); var _local5 = _local4.GetEmoteAnim(); if (_local5.m_FrameTween == null) { m_emoteHeads.splice(_local2, 1); _local2--; OnEmoteComplete(_local4); _local3 = true; } if (!_local3) { _local2++; if (_local2 == m_emoteHeads.length) { _local2 = 0; } if (_local2 == _local6) { _local3 = true; } } } } function onYPopTweenFinished(i_tween) { m_yTweens = Oberon.ArrayX.RemoveFrom(m_yTweens, i_tween); SnoodHead(i_tween.m_Obj).Vaporize(true); } function applySaturation(i_matrix, i_saturation) { var _local4 = new Array(5); var _local1 = 0; while (_local1 < 5) { var _local2 = s_GrayMatrix[_local1]; var _local3 = i_matrix[_local1]; _local4[_local1] = _local2 + ((_local3 - _local2) * i_saturation); _local1++; } return(_local4); } static var s_Duration = 7; static var s_RandPopDur = 2; static var s_FadeDuration = 1; static var s_ShakeDuration = 1; static var s_MinEmote = 0; static var s_MaxEmote = 2; static var s_MinShake = 0; static var s_MaxShake = 1; static var s_LosePieceTransDur = 1; static var s_RandPopFreq = 4; static var s_RainMinY = 50; static var s_RainMaxY = 450; static var s_GrayMatrix = [0.3, 0.59, 0.11, 0, 0]; static var State_Fade = 0; static var State_Pop = 1; static var State_Dump = 2; static var State_LumpDrop = 3; }
Symbol 91 MovieClip [__Packages.mx.transitions.easing.Strong] Frame 0
class mx.transitions.easing.Strong { function Strong () { } static function easeIn(t, b, c, d) { t = t / d; return((((((c * t) * t) * t) * t) * t) + b); } static function easeOut(t, b, c, d) { t = (t / d) - 1; return((c * (((((t * t) * t) * t) * t) + 1)) + b); } static function easeInOut(t, b, c, d) { t = t / (d / 2); if (t < 1) { return(((((((c / 2) * t) * t) * t) * t) * t) + b); } t = t - 2; return(((c / 2) * (((((t * t) * t) * t) * t) + 2)) + b); } static var version = "1.1.0.52"; }
Symbol 92 MovieClip [__Packages.Effects.CEffect_ShakeAnim] Frame 0
class Effects.CEffect_ShakeAnim extends CEffect { var m_Elapsed, m_Delay, m_Duration, m_Borb, m_origCoord; function CEffect_ShakeAnim () { super(CEffect.Type_ShakeAnim); } function OnInit(i_borb, i_duration, i_delay) { var _local2 = true; m_Elapsed = 0; if (i_delay == null) { m_Delay = s_Delay; } else { m_Delay = i_delay; } if (i_duration == null) { m_Duration = m_Delay + s_Duration; } else { m_Duration = i_duration; } m_Borb = i_borb; m_origCoord = new CCoord(i_borb._x, i_borb._y); return(_local2); } function OnUpdate(i_forceFinish, i_deltaT) { m_Elapsed = m_Elapsed + i_deltaT; if (m_Elapsed > m_Duration) { i_forceFinish = true; } else if (m_Elapsed > m_Delay) { m_Borb._x = m_origCoord.X + Oberon.MathX.randRange(-s_Magnitude, s_Magnitude); m_Borb._y = m_origCoord.Y + Oberon.MathX.randRange(-s_Magnitude, s_Magnitude); } super.OnUpdate(i_forceFinish, i_deltaT); } function OnComplete() { super.OnComplete(); m_Borb._x = m_origCoord.X; m_Borb._y = m_origCoord.Y; } static var s_Delay = 0; static var s_Duration = 2; static var s_Magnitude = 1; }
Symbol 93 MovieClip [__Packages.Effects.CEffect_FlyTo] Frame 0
class Effects.CEffect_FlyTo extends CEffect { var m_NeedsUpdate, m_Mc, m_Dest, m_xTween, m_yTween; function CEffect_FlyTo () { super(CEffect.Type_FlyTo); m_NeedsUpdate = false; } function OnInit(i_mc, i_destCoord, i_duration, i_easingFuncX, i_easingFuncY) { m_Mc = i_mc; m_Dest = i_destCoord.Clone(); if (m_Mc != null) { var _local3 = ((i_easingFuncX != null) ? (i_easingFuncX) : (mx.transitions.easing.Regular.easeOut)); var _local4 = ((i_easingFuncY != null) ? (i_easingFuncY) : (mx.transitions.easing.Regular.easeOut)); m_xTween = new Core.CTween(m_Mc, "_x", _local3, m_Mc._x, m_Dest.X, i_duration); m_yTween = new Core.CTween(m_Mc, "_y", _local4, m_Mc._y, m_Dest.Y, i_duration); var _local2 = mx.utils.Delegate.create(this, OnTweenComplete); m_xTween.onMotionFinished = _local2; m_yTween.onMotionFinished = _local2; return(true); } return(false); } function OnTweenComplete() { if ((!m_xTween.m_IsPlaying) && (!m_yTween.m_IsPlaying)) { OnComplete(); } } function OnComplete() { super.OnComplete(); if (m_xTween.m_IsPlaying) { m_xTween.Finish(); } if (m_yTween.m_IsPlaying) { m_yTween.Finish(); } } }
Symbol 94 MovieClip [__Packages.Effects.CEffect_BorbFadeOut] Frame 0
class Effects.CEffect_BorbFadeOut extends CEffect { var m_head, m_bBlocking, m_headAlphaTween; function CEffect_BorbFadeOut () { super(CEffect.Type_BorbFadeOut); } function OnInit(i_head) { m_head = i_head; m_bBlocking = true; Level.InvalidateSpot(m_head); m_headAlphaTween = new Core.CTween(m_head, "_alpha", null, 100, 0, 0.6, true); return(true); } function OnUpdate(i_forceFinish, i_deltaT) { if (!m_headAlphaTween.m_IsPlaying) { i_forceFinish = true; } super.OnUpdate(i_forceFinish, i_deltaT); } function OnComplete() { super.OnComplete(); m_head.RemoveFromBoard(); m_bBlocking = false; Level.DoDropSnoods(); } static var State_Idle = 1; static var State_Starting = 2; static var State_Ending = 3; }
Symbol 95 MovieClip [__Packages.Effects.CEffect_StartAnim] Frame 0
class Effects.CEffect_StartAnim extends CEffect { var m_runtime, m_state, m_updateCount, m_duration, m_bBlocking, m_launcherFadeInAnim, m_startAnimTween, m_origTileSetPos, m_animStartTileSetPos; function CEffect_StartAnim () { super(CEffect.Type_StartAnim); m_runtime = 0; m_state = State_Waiting; m_updateCount = 0; m_duration = 0; } function OnInit() { m_bBlocking = true; CGame.EffectMgr.m_IdleAnimationsOn = false; CGame.TileSet._visible = false; CGame.Board.m_Launcher._alpha = 0; m_launcherFadeInAnim = new Core.CTween(CGame.Board.m_Launcher, "_alpha", null, 0, 100, s_CannonFadeInDur); return(true); } function OnUpdate(i_forceFinish, i_deltaT) { if (i_forceFinish) { m_startAnimTween.Finish(); } if (m_state == State_Waiting) { m_updateCount++; if (m_updateCount == 1) { CGame.TileSet.cacheAsBitmap = true; m_origTileSetPos = int(CGame.TileSet._y); m_animStartTileSetPos = int((-CGame.TileSet._height) - 30); CGame.TileSet._y = m_animStartTileSetPos; CGame.TileSet._visible = true; } else if (m_updateCount >= s_FrameWaitCount) { Core.DialogUtil.Pop(Constants.Dialog_BoardLoading); CGame.TileSet.UpdateBoundingBox(true); m_animStartTileSetPos = int((-(CGame.TileSet.m_bbox.m_extentsU * 2)) - 20); CGame.TileSet._y = m_animStartTileSetPos; m_duration = Math.abs(m_animStartTileSetPos * s_DurationConst); m_state = State_BeginAnim; } } else if (m_state == State_BeginAnim) { var _local4 = CGame.Board.m_LevelTextAnim; m_startAnimTween = new Core.CTween(_local4, "_currentframe", null, 1, _local4._totalframes, s_StartAnimDuration); m_state = State_Playing; } else if (m_state == State_Playing) { m_runtime = m_runtime + i_deltaT; if (m_runtime < s_Delay) { } else if (m_runtime < (m_duration + s_Delay)) { CGame.TileSet._y = m_animStartTileSetPos + int(((m_runtime - s_Delay) * (m_origTileSetPos - m_animStartTileSetPos)) / m_duration); } else { CGame.TileSet._y = m_origTileSetPos; i_forceFinish = true; } } else if (m_state == State_Cutscene) { var _local5 = CDialog(Core.DialogUtil.Top()); if (_local5.Name == "CBoardDlg") { i_forceFinish = true; } } return(super.OnUpdate(i_forceFinish, i_deltaT)); } function OnComplete() { super.OnComplete(); if (Core.DialogUtil.Top() != CGame.Board.OwnerDlg) { Core.DialogUtil.Pop(Constants.Dialog_BoardLoading); } m_launcherFadeInAnim.Finish(); CGame.TileSet._y = m_origTileSetPos; CGame.TileSet.cacheAsBitmap = false; CGame.Board.OnRevealFinished(); } static var s_DurationConst = 0.002; static var s_Delay = 0.1; static var s_FrameWaitCount = 10; static var s_StartAnimDuration = 2.5; static var s_CannonFadeInDur = 0.5; static var State_Waiting = 0; static var State_Cutscene = 1; static var State_Playing = 2; static var State_BeginAnim = 3; }
Symbol 96 MovieClip [__Packages.Effects.CEffect_HypnoBorb] Frame 0
class Effects.CEffect_HypnoBorb extends CEffect { var m_NeedsUpdate, m_Immediate, m_Borb, m_FrameTween, m_HypnoBorbMc, m_bReadyForDelete; function CEffect_HypnoBorb () { super(CEffect.Type_HypnoBorb); m_NeedsUpdate = false; m_Immediate = false; } function OnInit(i_borb) { m_Borb = i_borb; var _local3 = CGame.Board.m_EffectsLayer; var _local4 = _local3.getNextHighestDepth(); var _local2 = _local3.attachMovie("HypnoBorbTargetAnim", "HypnoBorbTargetAnim" + _local4, _local4); _local2.stop(); _local2._xscale = CGame.TileSet.m_SnoodScale; _local2._yscale = CGame.TileSet.m_SnoodScale; _local2._x = m_Borb._x; _local2._y = m_Borb._y; m_FrameTween = new Core.CTween(_local2, "_currentframe", null, 1, _local2._totalframes, _local2._totalframes / Constants.Fps, true, Oberon.MathX.randRange(0, 6) / 10); m_FrameTween.onMotionFinished = mx.utils.Delegate.create(this, onTweenComplete); return(m_FrameTween != null); } function onTweenComplete() { MovieClip(m_FrameTween.m_Obj).removeMovieClip(); m_HypnoBorbMc.removeMovieClip(); m_HypnoBorbMc = null; if (!m_Borb.IsInPool()) { m_Borb.SetPowerUp(Constants.PowerUp_Hypnosis); } m_bReadyForDelete = true; } function OnComplete() { super.OnComplete(); if (m_FrameTween.m_IsPlaying) { m_FrameTween.Finish(); } } static var s_MaxHypnoBorbDelay = 15; }
Symbol 97 MovieClip [__Packages.Core.CTip] Frame 0
class Core.CTip extends Core.CUIComponent { var _alpha, cacheAsBitmap, m_alphaTween, useHandCursor, m_TipShown, m_TipHidden, m_origY, _y, m_hideY, m_targetY, m_origX, _x, m_hideX, m_targetX, m_AttachedMc, m_xTween, m_yTween; function CTip () { super(); _alpha = 0; cacheAsBitmap = true; m_alphaTween = null; useHandCursor = false; m_TipShown = new Oberon.CEvent(this); m_TipHidden = new Oberon.CEvent(this); m_origY = _y; m_hideY = _y; m_targetY = _y; m_origX = _x; m_hideX = _x; m_targetX = _x; } function onLoad() { super.onLoad(); if (Dir == null) { Dir = 0; } var _local3 = Core.Vector2.CreateFromAngle(Dir); _local3.NormalizeTo(s_TweenDist); m_origX = _x - _local3.X; m_origY = _y - _local3.Y; m_targetX = _x; m_targetY = _y; if (NoPosTween) { m_origX = m_targetX; m_origY = m_targetY; } else if (ReverseDir) { m_hideX = m_origX; m_hideY = m_origY; } else { m_hideX = m_targetX + _local3.X; m_hideY = m_targetY + _local3.Y; } if (StartShown) { _alpha = 100; } else { _x = m_origX; _y = m_origY; } } function AttachTo(i_mc) { m_AttachedMc = i_mc; m_AttachedMc.OnMouseLeave = mx.utils.Delegate.create(this, Hide); m_AttachedMc.OnMouseEnter = mx.utils.Delegate.create(this, Show); } function Show() { if (m_alphaTween != null) { m_alphaTween.StopUpdates(); } if (m_xTween != null) { m_xTween.StopUpdates(); } if (m_yTween != null) { m_yTween.StopUpdates(); } cacheAsBitmap = false; m_alphaTween = new Core.CTween(this, "_alpha", mx.transitions.easing.Regular.easeOut, _alpha, 100, s_TipShowHideDur); m_xTween = new Core.CTween(this, "_x", mx.transitions.easing.Regular.easeOut, _x, m_targetX, s_TipShowHideDur); m_yTween = new Core.CTween(this, "_y", mx.transitions.easing.Regular.easeOut, _y, m_targetY, s_TipShowHideDur); m_TipShown.Fire(); } function Hide() { cacheAsBitmap = false; if (m_alphaTween != null) { m_alphaTween.StopUpdates(); } if (m_xTween != null) { m_xTween.StopUpdates(); } if (m_yTween != null) { m_yTween.StopUpdates(); } m_alphaTween = new Core.CTween(this, "_alpha", mx.transitions.easing.Regular.easeOut, _alpha, 0, s_TipShowHideDur); m_xTween = new Core.CTween(this, "_x", mx.transitions.easing.Regular.easeOut, _x, m_hideX, s_TipShowHideDur); m_yTween = new Core.CTween(this, "_y", mx.transitions.easing.Regular.easeOut, _y, m_hideY, s_TipShowHideDur); m_TipHidden.Fire(); } function FinishTweens() { m_alphaTween.Finish(); m_xTween.Finish(); m_yTween.Finish(); } static var s_TipShowHideDur = 0.5; static var s_TweenDist = 30; var Dir = null; var ReverseDir = true; var StartShown = false; var NoPosTween = false; }
Symbol 98 MovieClip [__Packages.Core.CTipTarget] Frame 0
class Core.CTipTarget extends Core.CUIComponent { var enabled, _parent, _x, _width, _y, _height; function CTipTarget () { super(); enabled = false; } function SetEnabled(i_val) { if (m_enabled != i_val) { m_enabled = i_val; if ((!m_enabled) && (m_entered)) { OnMouseLeave(); } } } function GetEntered() { return(m_entered); } function TryHit(i_coord) { if (!m_enabled) { return(false); } var _local2 = CCoord.GlobalToLocal(_parent, i_coord); if ((((_local2.X >= _x) && (_local2.X <= (_x + _width))) && (_local2.Y >= _y)) && (_local2.Y <= (_y + _height))) { if (!m_entered) { m_entered = true; OnMouseEnter(); } } else if (m_entered) { m_entered = false; OnMouseLeave(); } return(m_entered); } var OnMouseEnter = null; var OnMouseLeave = null; var m_entered = false; var m_enabled = true; }
Symbol 99 MovieClip [__Packages.UI.CBoardMenuDlg] Frame 0
class UI.CBoardMenuDlg extends CDialog { var Name, BackVisible, BackAlpha, gotoAndPlay, muteButton1, _totalframes, _currentframe, onEnterFrame; function CBoardMenuDlg () { super(); Name = Constants.Dialog_GameBoardMenu; BackVisible = true; BackAlpha = 95; GameState.Freeze(); } function onLoad() { super.onLoad(); gotoAndPlay("FallIn"); CGame.m_startPauseTime = getTimer(); if (CPachinko.IsMuted()) { muteButton1.gotoAndStop(2); } GameState.boardMutBut = muteButton1; } function onClick(i_context) { if (Core.Button(i_context) != null) { var _local3 = Core.Button(i_context); switch (_local3.__get__Name()) { case "Resume" : DoDefaultOkAction(); break; case "DownloadDeluxe" : CPachinko.DownloadDeluxe(); break; case "BuyNow" : break; case "Help" : Core.DialogUtil.Push(Constants.Dialog_Help); break; case "BackToMain" : var _local2 = UI.CConfirmationDlg(Core.DialogUtil.Push(Constants.Dialog_Confirmation)); _local2.CurrentDialogueType = UI.CConfirmationDlg.Confirm_ExitBoardArcade; _local2.OkClickedEvent.PushBehavior(GameState.ExitBoardNoRestart, true); GameState.m_MainMenu = true; break; case "Mute" : CPachinko.MuteToggle(); break; default : CDebug.Assert(false, "UI.CBoardMenuDlg", "Unknown button! " + _local3.__get__Name()); } } return(true); } function onRegister(i_context) { super.onRegister(i_context); return(true); } function Close(i_immediate) { CGame.m_startTime = CGame.m_startTime + (getTimer() - CGame.m_startPauseTime); CGame.m_startPauseTime = getTimer(); CPachinko.UpdateScore(); if (i_immediate || (_currentframe == _totalframes)) { GameState.Unfreeze(); super.Close(); CGame.Board.OnMenuClosed(); } else { gotoAndPlay("AnimClose"); onEnterFrame = onEnterFrameClosing; } } function onEnterFrameClosing() { if (_currentframe == _totalframes) { onEnterFrame = null; Close(true); } } function DoDefaultCancelAction() { Close(); } function DoDefaultOkAction() { Close(); } function OnKeyDown(i_keyCode) { } function OnMouseDown() { if (_root._xmouse < (0.666666666666667 * Constants.GameResX)) { DoDefaultOkAction(); } } }
Symbol 100 MovieClip [__Packages.UI.CConfirmationDlg] Frame 0
class UI.CConfirmationDlg extends CDialog { var Name, BackVisible, BackAlpha, CancelClickedEvent, OkClickedEvent, gotoAndStop, TopMostOnly, Close; function CConfirmationDlg () { super(); DialogueDisplayed = true; Name = "CConfirmationDlg"; BackVisible = true; BackAlpha = 80; CancelClickedEvent = new Oberon.CEvent(this); OkClickedEvent = new Oberon.CEvent(this); } static function GetConfirmFrameByNumber(inIndex) { switch (inIndex) { case Confirm_ExitBoard : return("ExitBoard"); case Confirm_RestartBoard : return("RestartBoard"); case Confirm_ExitGame : return("ExitGame"); case Confirm_DeletePlayer : return("DeletePlayer"); case Confirm_ClearHighScores : return("ClearHighScores"); case Confirm_NameExists : return("NameExists"); case Confirm_NoPlayers : return("NoPlayers"); case Confirm_DisableTips : return("DisableTips"); case Confirm_ExitBoardArcade : return("ExitBoardArcade"); } return("<Unknown>"); } static function CanDisplayDialogue() { return(!DialogueDisplayed); } function onClick(i_context) { if (Core.Button(i_context) != null) { var _local2 = Core.Button(i_context); switch (_local2.__get__Name()) { case "Yes" : DoDefaultOkAction(); break; case "No" : DoDefaultCancelAction(); } } } function onLoad() { super.onLoad(); gotoAndStop(GetConfirmFrameByNumber(CurrentDialogueType)); if (CurrentDialogueType == Confirm_ExitGame) { TopMostOnly = true; } } function DoDefaultCancelAction() { CancelClickedEvent.Fire(); DialogueDisplayed = false; Close(); } function DoDefaultOkAction() { OkClickedEvent.Fire(); DialogueDisplayed = false; Close(); } var CurrentDialogueType = 0; static var Confirm_ExitBoard = 0; static var Confirm_RestartBoard = 1; static var Confirm_ExitGame = 2; static var Confirm_DeletePlayer = 3; static var Confirm_ClearHighScores = 4; static var Confirm_NameExists = 5; static var Confirm_NoPlayers = 6; static var Confirm_DisableTips = 7; static var Confirm_ExitBoardArcade = 8; static var DialogueDisplayed = false; }
Symbol 101 MovieClip [__Packages.CEffectManager] Frame 0
class CEffectManager { var m_BlockingEffectsActive, m_CurFrameCategoryAnims, m_IdleAnimationsOn, m_nextIdleEffectTime, m_currentIdleEffectCounts, m_ActiveEffects, m_ActiveEffectCount; function CEffectManager () { m_BlockingEffectsActive = 0; m_CurFrameCategoryAnims = 0; } function Reset() { KillAllEffects(); m_BlockingEffectsActive = 0; m_CurFrameCategoryAnims = 0; m_IdleAnimationsOn = false; m_nextIdleEffectTime = new Array(CEffect.Type_IdleCount); m_currentIdleEffectCounts = new Array(CEffect.Type_IdleCount); m_ActiveEffects = new Array(s_StaticEffectPoolSize); var _local2 = 0; while (_local2 < CEffect.Type_IdleCount) { m_nextIdleEffectTime[_local2] = Oberon.MathX.randRange(m_MinIdleEffectDelayTime[_local2], m_MaxIdleEffectDelayTime[_local2]); m_currentIdleEffectCounts[_local2] = 0; _local2++; } } function SpawnEffectsForNewBorb(x, y, newBorb, addDanger) { BroadcastBorbEffectMesgToNeighbors(y, x, newBorb, eBoardEvent_NewNeighbor, {inX:x, inY:y, inWhichObject:newBorb}); BroadcastBorbEffectMesgToSingle(y, x, newBorb, eBoardEvent_NewAttach); } function UpdateEffects(i_deltaT, bForceFinish) { m_BlockingEffectsActive = 0; m_CurFrameCategoryAnims = 0; var _local9 = i_deltaT * 1000; if (m_IdleAnimationsOn && (!GameState.IsFrozen())) { var _local13 = CGame.TileSet.GetActiveBorbsCount(); var _local12 = CEffect.Type_IdleCount; var _local3 = 0; while (_local3 < _local12) { var _local7 = m_MaxIdleEffects[_local3]; if ((((_local7 != null) && (_local7 > 0)) && (_local9 > m_nextIdleEffectTime[_local3])) && (m_currentIdleEffectCounts[_local3] < Math.ceil(_local13 / _local7))) { var _local6 = CEffect.CreateEffect(_local3); if ((_local6 != null) && (_local6.OnIdleEffectInit())) { m_currentIdleEffectCounts[_local3]++; AddEffectToActiveList(_local6); } m_nextIdleEffectTime[_local3] = Oberon.MathX.randRange(m_MinIdleEffectDelayTime[_local3], m_MaxIdleEffectDelayTime[_local3]); } else { m_nextIdleEffectTime[_local3] = m_nextIdleEffectTime[_local3] - _local9; } _local3++; } } if (CGame.DbgShowActiveEffects) { var _local10 = ("ActiveAnim: " + m_ActiveEffectCount) + "\n\n"; var _local11 = "Blockers:\n\n"; var _local4 = {}; var _local3 = 0; while (_local3 < m_ActiveEffectCount) { var _local8 = CEffect(m_ActiveEffects[_local3]).getType(); if (_local4[_local8] == undefined) { _local4[_local8] = 1; } else { _local4[_local8] = _local4[_local8] + 1; } if (CEffect(m_ActiveEffects[_local3]).m_bBlocking) { _local11 = _local11 + (CEffect(m_ActiveEffects[_local3]).getType() + newline); } _local3++; } for (_local3 in _local4) { _local10 = _local10 + (((_local4[_local3] + ":") + _local3) + newline); } CGame.Board.OwnerDlg.DbgAnimCount.text = _local10; CGame.Board.OwnerDlg.DbgAnimCountBlockers.text = _local11; CGame.Board.OwnerDlg.DbgTweenCount.text = "CTween: " + Core.CTween.GetCount(); CGame.Board.OwnerDlg.DbgFrameAdvCount.text = "FrameAdv: " + Core.FrameAdvancer.GetCount(); } if (m_ActiveEffectCount == 0) { return(undefined); } var _local3 = 0; while (_local3 < m_ActiveEffectCount) { var _local2 = CEffect(m_ActiveEffects[_local3]); var _local5 = CEffect.UpdateCode_FreeEffect; if (!_local2.m_bReadyForDelete) { if (_local2.m_NeedsUpdate) { _local5 = _local2.OnUpdate(bForceFinish, i_deltaT); } else { _local5 = CEffect.UpdateCode_DoNothing; } } if (_local2.m_bReadyForDelete || (_local5 == CEffect.UpdateCode_FreeEffect)) { if (_local2.m_Type < 100) { m_currentIdleEffectCounts[_local2.m_Type]--; CDebug.Assert(m_currentIdleEffectCounts[_local2.m_Type] >= 0, "CEffectManager.UpdateEffects()", "idle effect counter is negative! " + _local2.m_Type); } if (m_ActiveEffectCount > 1) { m_ActiveEffects[_local3] = m_ActiveEffects[m_ActiveEffectCount - 1]; } m_ActiveEffectCount--; _local3--; } else { m_CurFrameCategoryAnims = m_CurFrameCategoryAnims | _local2.m_Category; if (_local2.m_bBlocking) { m_BlockingEffectsActive++; } } _local3++; } } function AreBlockingEffectsPlaying() { return(m_BlockingEffectsActive > 0); } function GetNumEffects() { return(m_ActiveEffectCount); } function BroadcastBorbEffectMesgToSingle(inX, inY, inTarget, inEventID, inParams) { if (inTarget != null) { switch (inEventID) { case eBoardEvent_Match : break; case eBoardEvent_NewNeighborPostMatch : var _local9 = SnoodHead(inParams.inWhichObject); CDebug.Assert(_local9 != null, "CEffectManager.BroadcastBorbEffectMesgToSingle()", "whichObject is null"); switch (inTarget.__get__PowerUp()) { case Constants.PowerUp_Shroud : var _local5 = Effects.CEffect_ShroudDissolve(CEffect.CreateEffect(CEffect.Type_ShroudDissolve)); if (_local5.OnInit(inTarget, _local9)) { AddEffectToActiveList(_local5); } break; case Constants.PowerUp_Lock : if ((inTarget.__get__Color() == _local9.__get__Color()) || (_local9.__get__Color() == Constants.Snood_Wild)) { var _local11 = CCharacterSounds.GetCharacterSound(inTarget.__get__Color(), Constants.__get__CharSound_Waking()); if (_local11 != null) { CGame.Sounds.PlaySound(_local11); } inTarget.SetPowerUp(Constants.PowerUp_None); } break; case Constants.PowerUp_Hypnosis : if ((inTarget.__get__Color() == _local9.__get__Color()) || (_local9.__get__Color() == Constants.Snood_Wild)) { inTarget.SetPowerUp(Constants.PowerUp_None); } break; default : if (!(((inTarget.__get__PowerUp() == Constants.PowerUp_JellyStrThree) || (inTarget.__get__PowerUp() == Constants.PowerUp_JellyStrTwo)) || (inTarget.__get__PowerUp() == Constants.PowerUp_Jelly))) { break; } CJellyFishy.HandleFishyHit(inTarget); } break; case eBoardEvent_NewNeighbor : _local9 = SnoodHead(inParams.inWhichObject); CDebug.Assert(_local9 != null, "CEffectManager.BroadcastBorbEffectMesgToSingle()", "whichObject is null"); if ((inTarget.__get__Color() == Constants.Snood_CrateStrThree) || (inTarget.__get__Color() == Constants.Snood_CrateStrTwo)) { inTarget.DamageCrate(); return(false); } if (inTarget.__get__Color() == Constants.Snood_Crate) { inTarget.DamageCrate(); if ((_local9.__get__Color() >= Constants.Snood_Lump1) && (_local9.__get__Color() <= Constants.Snood_Lump3)) { CGame.CurrentPlayer.Accomplish(CPlayerInfo.Achievement_BreakCrateWithLump); } Level.TryDropSnoods(CGame.CurrentPlayer, false, false, true); return(false); } break; case eBoardEvent_NewAttach : if ((inTarget.__get__Color() == Constants.Snood_CrateStrThree) || (inTarget.__get__Color() == Constants.Snood_CrateStrTwo)) { inTarget.DamageCrate(); return(false); } if (inTarget.__get__Color() == Constants.Snood_Crate) { inTarget.DamageCrate(); Level.TryDropSnoods(CGame.CurrentPlayer, false, false, true); return(false); } if (!(inTarget.__get__PowerUp() === Constants.PowerUp_BubbleBubble)) { } else { var _local7 = CBoard.G.m_TileSet.GetNeighborCoords(inTarget); var _local2; var _local8; var _local4 = 0; while (_local4 < _local7.length) { _local2 = SnoodHead(CBoard.G.m_TileSet.GetTile(_local7[_local4].X, _local7[_local4].Y)); if (Constants.IsHead(_local2.__get__Color())) { var _local6 = false; if ((_local2.__get__PowerUp() == Constants.PowerUp_Hypnosis) || (_local2.__get__PowerUp() == Constants.PowerUp_Lock)) { _local2.SetPowerUp(Constants.PowerUp_None); } else if (_local2.__get__PowerUp() == Constants.PowerUp_Shroud) { _local5 = Effects.CEffect_ShroudDissolve(CEffect.CreateEffect(CEffect.Type_ShroudDissolve)); if (_local5.OnInit(_local2, inTarget, null, true)) { CGame.EffectMgr.AddEffectToActiveList(_local5); } } else if (_local2.__get__PowerUp() != Constants.PowerUp_None) { _local6 = true; } if (!_local6) { _local8 = Effects.CEffect_BubbleBubble(CEffect.CreateEffect(CEffect.Type_BubbleBubble)); if (_local8.OnInit(_local2, inTarget.__get__Color())) { AddEffectToActiveList(_local8); } } if (((_local2.__get__PowerUp() == Constants.PowerUp_JellyStrThree) || (_local2.__get__PowerUp() == Constants.PowerUp_JellyStrTwo)) || (_local2.__get__PowerUp() == Constants.PowerUp_Jelly)) { CJellyFishy.HandleFishyHit(_local2); } } _local4++; } var _local10 = Effects.CEffect_BorbFadeOut(CEffect.CreateEffect(CEffect.Type_BorbFadeOut)); if (!_local10.OnInit(inTarget)) { break; } AddEffectToActiveList(_local10); } } } return(false); } function BroadcastBorbEffectMesgToNeighbors(i_row, i_col, origin, inEventID, inParams) { if ((i_col == null) || (i_row == null)) { CDebug.WriteErr("CEffectManager.BroadcastBorbEffectMesgToNeighbors()", "x/y slot null : " + origin); return(undefined); } var _local6 = CGame.TileSet; var _local5 = _local6.GetNeighborCoordsOfCoord(new CCoord(i_col, i_row)); var _local7 = false; var _local3 = _local5.length - 1; while (_local3 >= 0) { var _local2 = CCoord(_local5[_local3]); var _local4 = SnoodHead(_local6.GetTile(_local2.X, _local2.Y)); if (_local4 != null) { _local7 = BroadcastBorbEffectMesgToSingle(_local2.X, _local2.Y, _local4, inEventID, inParams); } _local3--; } } function AddEffectToActiveList(effect) { if (effect != null) { m_ActiveEffectCount++; if (m_ActiveEffectCount > m_ActiveEffects.length) { CDebug.AssertWarn(m_ActiveEffectCount > 300, "CEffectManager.AddEffectToActiveList()", "Lots of active effects! Count: " + m_ActiveEffectCount); m_ActiveEffects.push(effect); } else { m_ActiveEffects[m_ActiveEffectCount - 1] = effect; } if (effect.m_bBlocking) { m_BlockingEffectsActive++; } m_CurFrameCategoryAnims = m_CurFrameCategoryAnims | effect.m_Category; } } function IsEffectPlaying(i_type) { var _local2 = 0; while (_local2 < m_ActiveEffectCount) { var _local3 = CEffect(m_ActiveEffects[_local2]); if ((_local3.m_Type == i_type) && (!_local3.m_bReadyForDelete)) { return(true); } _local2++; } return(false); } function IsCategoryPlaying(i_cat) { var _local2 = 0; while (_local2 < m_ActiveEffectCount) { var _local3 = CEffect(m_ActiveEffects[_local2]); if ((Number(_local3.m_Category & i_cat) > 0) && (!_local3.m_bReadyForDelete)) { return(true); } _local2++; } return(false); } function KillAllEffectsOfCategory(i_cat) { var _local2 = 0; while (_local2 < m_ActiveEffectCount) { var _local3 = CEffect(m_ActiveEffects[_local2]); if (_local3.m_Category & (i_cat != 0)) { _local3.Finish(_local3, true); if (_local3.m_bBlocking) { m_BlockingEffectsActive--; } m_ActiveEffects[_local2] = m_ActiveEffects[m_ActiveEffectCount - 1]; m_ActiveEffectCount--; _local2--; } _local2++; } } function KillAllEffectsOfType(i_type) { var _local2 = 0; while (_local2 < m_ActiveEffectCount) { var _local3 = CEffect(m_ActiveEffects[_local2]); if (_local3.m_Type == i_type) { _local3.Finish(_local3, true); if (_local3.m_bBlocking) { m_BlockingEffectsActive--; } m_ActiveEffects[_local2] = m_ActiveEffects[m_ActiveEffectCount - 1]; m_ActiveEffectCount--; _local2--; } _local2++; } } function KillAllEffects() { var _local3 = 0; while (_local3 < m_ActiveEffectCount) { var _local2 = CEffect(m_ActiveEffects[_local3]); _local2.Finish(_local2, true); if (_local2.m_bBlocking) { m_BlockingEffectsActive--; } _local3++; } m_ActiveEffectCount = 0; } function RemoveEffectFromActiveList(effect) { var _local2 = 0; while (_local2 < m_ActiveEffectCount) { if (m_ActiveEffects[_local2] == effect) { m_ActiveEffects[_local2] = m_ActiveEffects[m_ActiveEffects.length - 1]; m_ActiveEffectCount--; return(undefined); } _local2++; } } function GetAllEffectsOfType(i_type) { var _local4 = []; var _local2 = 0; while (_local2 < m_ActiveEffectCount) { var _local3 = CEffect(m_ActiveEffects[_local2]); if (_local3.m_Type == i_type) { _local4.push(_local3); } _local2++; } return(_local4); } function PlaySingleAnimMc(i_name, i_parentMc, i_duration, i_depth) { if (i_depth == null) { i_depth = i_parentMc.getNextHighestDepth(); } var _local1 = i_parentMc.attachMovie(i_name, i_name + i_depth, i_depth); CDebug.Assert(_local1 != null, "CEffectManager.PlaySingleAnimMc()", "Couldn't create mc : " + i_name); _local1.stop(); var _local3 = new Core.CTween(_local1, "_currentframe", null, 1, _local1._totalframes, i_duration, true); _local3.m_CompleteEvent.PushBehaviorRunOnce(function (i_context) { MovieClip(i_context.m_Obj).removeMovieClip(); }); return(_local3); } static var eBoardEvent_NewNeighbor = 1; static var eBoardEvent_NewNeighborPostMatch = 2; static var eBoardEvent_Match = 3; static var eBoardEvent_NeighborMatch = 4; static var eBoardEvent_NewAttach = 5; static var NumSecsUntilIdleEffect = 2; var m_lastEffectUpdate = 0; var m_nextLookEffectDuration = 0.1; var s_StaticEffectPoolSize = 200; static var m_MaxIdleEffects = [20, 30, 30, 20, 30]; static var m_MaxIdleEffectDelayTime = [1500, 2000, 2000, 1500, 2000]; static var m_MinIdleEffectDelayTime = [300, 400, 500, 500, 1000]; }
Symbol 102 MovieClip [__Packages.CLocalizer] Frame 0
class CLocalizer { var m_idTable, m_strTable, m_language, m_srcFileName, m_xml, m_state; function CLocalizer (i_srcFileName, i_locale) { m_idTable = new Object(); m_strTable = new Object(); m_language = i_locale; m_srcFileName = i_srcFileName; m_xml = new XML(); m_xml.ignoreWhite = true; m_xml.onLoad = mx.utils.Delegate.create(this, onXmlLoaded); m_xml.load(m_srcFileName); m_state = State_Loading; } function onXmlLoaded(i_success) { if (i_success) { var _local7 = m_xml.childNodes[0].childNodes; var _local8 = false; var _local6 = 0; while (_local6 < _local7.length) { var _local3 = _local7[_local6]; if (_local3.nodeName == "IdTable") { var _local4 = 0; while (_local4 < _local3.childNodes.length) { var _local2 = _local3.childNodes[_local4]; m_idTable[_local2.attributes.Text] = parseInt(_local2.attributes.Id); _local4++; } } else if (_local3.nodeName == "Locale") { if (_local3.attributes.language == m_language) { var _local4 = 0; while (_local4 < _local3.childNodes.length) { var _local2 = _local3.childNodes[_local4]; var _local5 = parseInt(_local2.attributes.Id); m_strTable[_local5] = new CLocStrData(_local2.attributes.Text, ((_local2.attributes.FontDelta != undefined) ? (parseInt(_local2.attributes.FontDelta)) : 0), ((_local2.attributes.WidthDelta != undefined) ? (parseFloat(_local2.attributes.WidthDelta)) : 0), ((_local2.attributes.HeightDelta != undefined) ? (parseFloat(_local2.attributes.HeightDelta)) : 0), ((_local2.attributes.XDelta != undefined) ? (parseFloat(_local2.attributes.XDelta)) : 0), ((_local2.attributes.YDelta != undefined) ? (parseFloat(_local2.attributes.YDelta)) : 0), ((_local2.attributes.ExtentWidthDelta != undefined) ? (parseFloat(_local2.attributes.ExtentWidthDelta)) : 0), ((_local2.attributes.ExtentHeightDelta != undefined) ? (parseFloat(_local2.attributes.ExtentHeightDelta)) : 0)); _local4++; } _local8 = true; } } _local6++; } if (!_local8) { trace("Couldn't load lang " + m_language); } m_state = State_Ready; } else { m_xml.load(m_srcFileName); } } function GetIsLoaded() { return(m_state == State_Ready); } function LocTxtField(i_txtField, i_str) { if (i_txtField.__localizeStr != i_txtField.text) { var _local2 = i_txtField; _local2.embedFonts = true; _local2.selectable = false; var _local5; var _local3; if (i_str == null) { _local5 = LocStr(_local2.text); _local3 = GetLocData(_local2.text); } else { _local5 = LocStr(i_str); _local3 = GetLocData(i_str); } var _local4 = _local2.getTextFormat(); _local4.font = "Arial Black"; if (_local3 != null) { if (_local3.WidthDelta != 0) { _local2._xscale = _local2._xscale + _local3.WidthDelta; } if (_local3.HeightDelta != 0) { _local2._yscale = _local2._yscale + _local3.HeightDelta; } if (_local3.XDelta != 0) { _local2._x = _local2._x + _local3.XDelta; } if (_local3.YDelta != 0) { _local2._y = _local2._y + _local3.YDelta; } if (_local3.WidthExtentDelta != 0) { _local2._width = _local2._width + _local3.WidthExtentDelta; } if (_local3.HeightExtentDelta != 0) { _local2._height = _local2._height + _local3.HeightExtentDelta; } if (_local3.FontDelta != 0) { _local4.size = _local4.size + _local3.FontDelta; } } _local2.autoSize = _local4.align; _local2.setTextFormat(_local4); _local2.multiline = true; if (_local5 != null) { _local2.text = _local5; _local2.__localizeStr = _local5; } else { _local2.background = true; _local2.backgroundColor = 16711680 /* 0xFF0000 */; } return(true); } return(false); } function GetLocData(i_str) { if (m_language == "test") { return(new CLocStrData(("<<" + i_str) + ">>", 0, 0, 0, 0, 0, 0, 0)); } var _local2 = i_str.split("\r").join("\\n"); return(m_strTable[m_idTable[_local2]]); } function LocStr(i_str) { if (m_language == "en-US") { return(i_str); } var _local9 = i_str.split("\r").join("\\n"); var _local8 = m_idTable[_local9]; var _local7 = m_strTable[_local8].Str; if ((_local8 != null) && (m_language == "test")) { _local7 = ("<<" + i_str) + ">>"; } else { _local7 = _local7.split("\\n").join("\r"); } if ((_local8 == null) || (_local7 == null)) { var _local6 = false; var _local3 = 0; while ((!_local6) && (_local3 < i_str.length)) { var _local4 = i_str.charAt(_local3); var _local2 = i_str.charCodeAt(_local3); if ((((((((_local2 < 48) || (_local2 > 57)) && (_local2 != 32)) && (_local2 != 10)) && (_local2 != 13)) && (_local2 != 9)) && (_local4 != "+")) && (_local4 != "X")) { _local6 = true; } _local3++; } if (_local6) { CDebug.Assert(_local8 != null, "CLocalizer.LocStr()", ("String \"" + i_str) + "\" is not in string table!"); CDebug.Assert((_local8 == null) || (_local7 != null), "CLocalizer.LocStr()", (("String \"" + i_str) + "\" is not localized for locale ") + m_language); m_UnknownStr[_local9] = true; return(null); } return(i_str); } return(_local7); } function LocMc(i_mc, i_force) { var _local4 = 0; for (var _local6 in i_mc) { if (MovieClip(i_mc[_local6]) != null) { if (MovieClip(i_mc[_local6])._parent == i_mc) { _local4 = _local4 + LocMc(MovieClip(i_mc[_local6])); } } else if (i_force || (TextField(i_mc[_local6]) != null)) { var _local3 = LocTxtField(TextField(i_mc[_local6]), null); if (_local3) { _local4++; } } } return(_local4); } static var State_Loading = 0; static var State_Ready = 1; var m_UnknownStr = {}; }
Symbol 103 MovieClip [__Packages.CLocStrData] Frame 0
class CLocStrData { var Str, FontDelta, WidthDelta, HeightDelta, WidthExtentDelta, HeightExtentDelta, XDelta, YDelta; function CLocStrData (i_str, i_fontDelta, i_widthDelta, i_heightDelta, i_xDelta, i_yDelta, i_widthExtentDelta, i_heightExtentDelta) { Str = i_str; FontDelta = i_fontDelta; WidthDelta = i_widthDelta; HeightDelta = i_heightDelta; WidthExtentDelta = i_widthExtentDelta; HeightExtentDelta = i_heightExtentDelta; XDelta = i_xDelta; YDelta = i_yDelta; } function ToString() { return((((((Str + ",") + FontDelta) + ",") + WidthDelta) + ",") + HeightDelta); } }
Symbol 104 MovieClip [__Packages.CLoadMonitor] Frame 0
class CLoadMonitor extends MovieClip { var _state, _brandingHolderMc, createEmptyMovieClip, getNextHighestDepth, removeMovieClip, _startTime; function CLoadMonitor () { super(); CGame.LoadMonitor = this; } static function get State_WaitingForConfig() { return(0); } static function get State_ShowingSplash() { return(1); } static function get State_WaitingForPachinko() { return(2); } static function get State_Ready() { return(3); } function onLoad() { _state = State_WaitingForConfig; _brandingHolderMc = createEmptyMovieClip("BrandingHolder", getNextHighestDepth()); _brandingHolderMc.loadMovie("brand.swf"); } function onUnload() { unloadMovieNum (2); CGame.LoadMonitor = null; } function onEnterFrame() { if ((_level2 != undefined) && (!_setup)) { _setup = true; } if (_waitCount > 0) { _waitCount--; if (_waitCount == 0) { CGame.Init(); } } else { switch (_state) { case State_WaitingForConfig : if (CWebConfig.IsInitialized) { if (CWebConfig.IsPachinkoActive()) { _state = State_WaitingForPachinko; } else { initSplash(); } } break; case State_ShowingSplash : if (_brandingHolderMc == null) { _state = State_Ready; } else if (_brandingHolderMc._currentframe == _brandingHolderMc._totalframes) { _state = State_Ready; _brandingHolderMc.stop(); } break; case State_WaitingForPachinko : if ((getTimer() - _lastReady) < 500) { break; } _lastReady = getTimer(); CPachinko.SessionReady(); } if (IsReady()) { if (CGame.Sounds == null) { CGame.SoundImport = CGame.Root.__Assets__; _global.Sounds = new SoundDb(); CGame.Sounds = _global.Sounds; } Core.DialogUtil.Push(Constants.Dialog_MainMenu); removeMovieClip(); } } } function OnPachinkoLoaded() { initSplash(); } function IsReady() { return((((((_state == State_Ready) && (CGame.Root.__Assets__.isLoaded)) && (CLevelManifest.G.m_Loaded)) && (CGame.XmlLoaded)) && (CGame.Localizer != null)) && (CGame.Localizer.GetIsLoaded())); } function initSplash() { _startTime = getTimer(); if ((_brandingHolderMc != null) && (_brandingHolderMc.getBytesTotal() > 0)) { _state = State_ShowingSplash; } else { _state = State_Ready; } } var _lastReady = 0; var _waitCount = 2; var _setup = false; }
Symbol 105 MovieClip [__Packages.Core.CStackTracer] Frame 0
class Core.CStackTracer { function CStackTracer () { } static function Attach(i_enabled, i_filterAttach, i_filterAttachAtBeg, i_resolveUnknownVars, i_includeGetters, i_includeSetters, i_includeCtors) { if (!m_attached) { _global.ASSetPropFlags(_global, "ASProf", 7); WriteLine("Core.CStackTracer.Attach()", "Start attach" + ((m_filterAttach.length == 0) ? "" : ((" ( filter on " + m_filterAttach.join(", ")) + " )"))); m_startTime = getTimer(); if (i_enabled != null) { m_Enabled = i_enabled; } if (i_filterAttach != null) { m_filterAttach = i_filterAttach; } if (i_filterAttachAtBeg != null) { m_filterAttachBeg = i_filterAttachAtBeg; } if (i_resolveUnknownVars != null) { m_resolveUnknownVars = i_resolveUnknownVars; } if (i_includeGetters != null) { m_includeGetters = i_includeGetters; } if (i_includeSetters != null) { m_includeSetters = i_includeSetters; } if (i_includeCtors != null) { m_includeCtors = i_includeCtors; } attachSingle(null, null, 0); m_attached = true; if (((getTimer() - m_startTime) / 1000) > m_timeout) { WriteErr("Core.CStackTracer.Attach()", ("Attach failed, timeout after " + m_timeout) + " seconds"); } WriteLine("Core.CStackTracer.Attach()", ((("Attach completed : " + m_parsed) + " functions attached in ") + ((getTimer() - m_startTime) / 1000)) + " seconds"); } } static function IsAttached() { return(m_attached); } static function EnableOneTick() { EnableForMultipleTicks(1); } static function EnableForMultipleTicks(i_tickCount) { if (!m_enterFrameEventRunning) { Oberon.CEnterFrameEvent.AddEvent(_root, TickElapsed, false); m_enterFrameEventRunning = true; } m_TicksToDisable = ((i_tickCount == undefined) ? 1 : (i_tickCount)); m_Enabled = true; } static function TickElapsed(i_context, i_event) { if (m_TicksToDisable != null) { m_TicksToDisable--; if (m_TicksToDisable <= 0) { i_event.RemoveCurrentBehavior(); m_Enabled = false; m_enterFrameEventRunning = false; } } } static function WriteLine(a, b) { trace(((" *** " + a) + ": ") + b); } static function WriteErr(a, b) { trace(((" !!! " + a) + ": ") + b); } static function attachSingle(i_name, i_obj, i_depth) { if (((getTimer() - m_startTime) / 1000) > m_timeout) { return(undefined); } if ((i_obj == null) && (i_name != null)) { return(undefined); } if (i_name == null) { for (var _local6 in _global) { if (_local6 == "CStackTracer") { continue; } if ((Object(_global[_local6].prototype) != null) && ((m_filterAttach.length == 0) || (isFilterMatch(_local6, true)))) { attachSingleObj(_local6, Object(_global[_local6].prototype)); } if ((Object(_global[_local6]).prototype == undefined) && (((!m_filterAttachBeg) || (m_filterAttach.length == 0)) || (isFilterMatch(_local6)))) { attachSingle(_local6, Object(_global[_local6]), i_depth); } } } else { for (var _local6 in i_obj) { if (_local6 == "CStackTracer") { continue; } var _local3 = (i_name + ".") + _local6; if ((Object(i_obj[_local6].prototype) != null) && ((m_filterAttach.length == 0) || (isFilterMatch(_local3, true)))) { attachSingleObj((i_name + ".") + _local6, Object(i_obj[_local6].prototype)); } if ((Object(i_obj[_local6]).prototype == undefined) && (((!m_filterAttachBeg) || (m_filterAttach.length == 0)) || (isFilterMatch(_local3)))) { attachSingle(_local3, Object(i_obj[_local6]), i_depth); } } } } static function isFilterMatch(i_str, i_finalStr) { var _local1 = 0; while (_local1 < m_filterAttach.length) { var _local5 = m_filterAttach[_local1]; if (_local5.indexOf(".") == -1) { if (i_str.indexOf(m_filterAttach[_local1]) != -1) { return(true); } } else { var _local4 = _local5.split("."); var _local2 = i_str.split("."); var _local3 = false; _local1 = 0; while (((!_local3) && (_local1 < _local4.length)) && (_local1 < _local2.length)) { if (String(_local2[_local1]).indexOf(_local4[_local1]) == -1) { _local3 = true; } _local1++; } if ((!_local3) && ((!i_finalStr) || (_local4.length <= _local2.length))) { return(true); } } _local1++; } return(false); } static function attachSingleObj(i_name, i_obj) { _global.ASSetPropFlags(i_obj, null, 0, 5); for (var curFunc in i_obj) { if (typeof(i_obj[curFunc]) == "function") { addFuncTracer(i_name, i_obj, curFunc, false); } } var evalObj = eval (i_name); for (var curFunc in evalObj) { if (typeof(evalObj[curFunc]) == "function") { addFuncTracer(i_name, evalObj, curFunc, true); } } if (m_resolveUnknownVars && (i_obj.__resolve == undefined)) { i_obj.__resolve = function (i_var) { Core.CStackTracer.OnResolveFailed(i_name, i_var); }; } _global.ASSetPropFlags(i_obj, null, 0, 1); } static function addFuncTracer(i_name, i_obj, i_str, i_fromEval) { var fullName = ((i_name + ".") + i_str); var fullNameWithProto = ((i_name + ".prototype.") + i_str); if (((((!i_fromEval) && (eval (fullNameWithProto) == undefined)) || ((!m_includeCtors) && (fullName.indexOf("__constructor__") != -1))) || ((!m_includeGetters) && (fullName.indexOf("__get__") != -1))) || ((!m_includeSetters) && (fullName.indexOf("__set__") != -1))) { return(undefined); } m_parsed++; var oldFunc = Function(i_obj[i_str]); Set((i_fromEval ? (fullName) : (fullNameWithProto)), function () { if (((!Core.CStackTracer.m_Enabled) && (Core.CStackTracer.m_StartTraceOnHit)) && (fullName.indexOf(Core.CStackTracer.m_StartTraceOnHit) != -1)) { if ((Core.CStackTracer.m_TicksToDisable != null) && (Core.CStackTracer.m_TicksToDisable > 0)) { Core.CStackTracer.EnableForMultipleTicks(Core.CStackTracer.m_TicksToDisable); } else { Core.CStackTracer.m_Enabled = true; } } if ((!Core.CStackTracer.m_Enabled) || ((Core.CStackTracer.m_FilterTrace != null) && (fullName.indexOf(Core.CStackTracer.m_FilterTrace) == -1))) { return(oldFunc.apply(this, arguments)); } var _local6 = ""; var _local3 = 0; while (_local3 < Core.CStackTracer.m_depth) { _local6 = _local6 + " "; _local3++; } var _local7 = ((_local6 + (Core.CStackTracer.m_depth % 10)) + ">> ") + fullName; if (Core.CStackTracer.m_ShowArgs) { if (arguments.length == 0) { _local7 = _local7 + "( <void> )"; } else if (Core.CStackTracer.m_AttemptToString) { var _local5 = "( "; _local3 = 0; while (_local3 < arguments.length) { var _local4 = arguments[_local3]; if (_local4.ToString != null) { _local5 = _local5 + _local4.ToString(); } else { _local5 = _local5 + String(_local4); } if (_local3 != (arguments.length - 1)) { _local5 = _local5 + ", "; } _local3++; } _local5 = _local5 + " )"; _local7 = _local7 + _local5; } else { _local7 = _local7 + (("( " + arguments.join(", ")) + " )"); } } else { _local7 = _local7 + "()"; } trace(_local7); if ((Core.CStackTracer.m_CrashOnHit != null) && (fullName.indexOf(Core.CStackTracer.m_CrashOnHit) != -1)) { trace(" !!! FORCE CRASH !!!"); Core.CStackTracer.crash(); } else if ((Core.CStackTracer.m_StopTraceOnHit != null) && (fullName.indexOf(Core.CStackTracer.m_CrashOnHit) != -1)) { Core.CStackTracer.m_Enabled = false; } Core.CStackTracer.m_depth++; var _local9 = oldFunc.apply(this, arguments); if (Core.CStackTracer.m_depth > 0) { Core.CStackTracer.m_depth--; } if (Core.CStackTracer.m_ShowResult) { var _local8 = String(_local9); trace(((((_local6 + (Core.CStackTracer.m_depth % 10)) + "<< ") + fullName) + " result: ") + ((_local8 == "") ? "<empty string>" : (_local8))); if (_local8 != null) { if ((Core.CStackTracer.m_CrashOnHit != null) && (fullName.indexOf(Core.CStackTracer.m_CrashOnHit) != -1)) { trace(" !!! FORCE CRASH !!!"); Core.CStackTracer.crash(); } else if ((Core.CStackTracer.m_StopTraceOnHit != null) && (fullName.indexOf(Core.CStackTracer.m_CrashOnHit) != -1)) { Core.CStackTracer.m_Enabled = false; } } } return(_local9); }); } static function OnResolveFailed(i_name, i_var) { if (m_ResolveEnabled) { WriteErr("CStackTracer.OnResolveFailed", (("Undefined var : class " + i_name) + ", var ") + i_var); } } static function crash() { crash(); } static var m_ShowArgs = false; static var m_ShowResult = false; static var m_AttemptToString = false; static var m_CrashOnHit = null; static var m_StopTraceOnHit = null; static var m_StartTraceOnHit = null; static var m_FilterTrace = null; static var m_Enabled = false; static var m_TicksToDisable = null; static var m_ResolveEnabled = true; static var m_filterAttach = []; static var m_filterAttachBeg = true; static var m_resolveUnknownVars = false; static var m_includeGetters = false; static var m_includeSetters = false; static var m_includeCtors = false; static var m_depth = 0; static var m_attached = false; static var m_parsed = 0; static var m_startTime = 0; static var m_timeout = 60; static var m_enterFrameEventRunning = false; }

Library Items

Symbol 1 GraphicUsed by:4
Symbol 2 ShapeTweeningUsed by:4
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClipUses:1 2 3Used by:5
Symbol 5 MovieClip [Load]Uses:4Used by:Timeline
Symbol 6 GraphicUsed by:Timeline
Symbol 7 FontUsed by:8
Symbol 8 EditableTextUses:7Used by:Timeline
Symbol 9 MovieClip [__Packages.CPachinko]
Symbol 10 MovieClip [__Packages.CWebConfig]
Symbol 11 MovieClip [__Packages.Oberon.XmlX]
Symbol 12 MovieClip [__Packages.CGame]
Symbol 13 MovieClip [__Packages.CBoard]
Symbol 14 MovieClip [__Packages.StaticText]
Symbol 15 MovieClip [__Packages.TextRenderer]
Symbol 16 MovieClip [__Packages.FHost.CApp]
Symbol 17 MovieClip [__Packages.Oberon.StringX]
Symbol 18 MovieClip [__Packages.mx.utils.Delegate]
Symbol 19 MovieClip [__Packages.Core.CTween]
Symbol 20 MovieClip [__Packages.Oberon.CEvent]
Symbol 21 MovieClip [__Packages.CustomTweens.Bounce]
Symbol 22 MovieClip [__Packages.CDialog]
Symbol 23 MovieClip [__Packages.Core.CUIComponent]
Symbol 24 MovieClip [__Packages.CDebug]
Symbol 25 MovieClip [__Packages.Level]
Symbol 26 MovieClip [__Packages.CPlayerInfo]
Symbol 27 MovieClip [__Packages.UI.CAchievementDlg]
Symbol 28 MovieClip [__Packages.Constants]
Symbol 29 MovieClip [__Packages.Oberon.MathX]
Symbol 30 MovieClip [__Packages.Core.DialogUtil]
Symbol 31 MovieClip [__Packages.mx.transitions.easing.Regular]
Symbol 32 MovieClip [__Packages.Oberon.CEnterFrameEvent]
Symbol 33 MovieClip [__Packages.Core.Button]
Symbol 34 MovieClip [__Packages.CLevelManifest]
Symbol 35 MovieClip [__Packages.CLevelManifestSet]
Symbol 36 MovieClip [__Packages.CLevelManifestFile]
Symbol 37 MovieClip [__Packages.Core.Utility]
Symbol 38 MovieClip [__Packages.GameState]
Symbol 39 MovieClip [__Packages.UI.CLoseDlg]
Symbol 40 MovieClip [__Packages.Core.FrameAdvancer]
Symbol 41 MovieClip [__Packages.CEffect]
Symbol 42 MovieClip [__Packages.Effects.CEffect_SleepAnim]
Symbol 43 MovieClip [__Packages.CPhysicsObject]
Symbol 44 MovieClip [__Packages.Core.Vector2]
Symbol 45 MovieClip [__Packages.SnoodHead]
Symbol 46 MovieClip [__Packages.CEyes]
Symbol 47 MovieClip [__Packages.Oberon.ArrayX]
Symbol 48 MovieClip [__Packages.CCoord]
Symbol 49 MovieClip [__Packages.Effects.CEffect_EmoteAnim]
Symbol 50 MovieClip [__Packages.Oberon.MovieClipX]
Symbol 51 MovieClip [__Packages.CProcEyes]
Symbol 52 MovieClip [__Packages.CLevelInfo]
Symbol 53 MovieClip [__Packages.CLevelTileInfo]
Symbol 54 MovieClip [__Packages.CBorbInfo]
Symbol 55 MovieClip [__Packages.Effects.CEffect_BorbDropAnim]
Symbol 56 MovieClip [__Packages.CTileSet]
Symbol 57 MovieClip [__Packages.Effects.CEffect_CannonScareAnim]
Symbol 58 MovieClip [__Packages.CLauncher]
Symbol 59 MovieClip [__Packages.CLauncherTrack]
Symbol 60 MovieClip [__Packages.CCharacterSounds]
Symbol 61 MovieClip [__Packages.SoundDb]
Symbol 62 MovieClip [__Packages.CSoundConstants]
Symbol 63 MovieClip [__Packages.SoundEntry]
Symbol 64 MovieClip [__Packages.Effects.CEffect_DelayedSound]
Symbol 65 MovieClip [__Packages.CBoardCircular]
Symbol 66 MovieClip [__Packages.CTileSetCircular]
Symbol 67 MovieClip [__Packages.CQueueBorb]
Symbol 68 MovieClip [__Packages.PhysicsMgr]
Symbol 69 MovieClip [__Packages.Effects.CEffect_ShroudDissolve]
Symbol 70 MovieClip [__Packages.CJellyFishy]
Symbol 71 MovieClip [__Packages.Effects.CEffect_JellyAnim]
Symbol 72 MovieClip [__Packages.Effects.CEffect_DropAnim]
Symbol 73 MovieClip [__Packages.Core.COrientedBox]
Symbol 74 MovieClip [__Packages.CBoardVertical]
Symbol 75 MovieClip [__Packages.CTileSetVertical]
Symbol 76 MovieClip [__Packages.Effects.CEffect_ScareAnim]
Symbol 77 MovieClip [__Packages.CQueue]
Symbol 78 MovieClip [__Packages.mx.transitions.easing.None]
Symbol 79 MovieClip [__Packages.Effects.CEffect_Vaporize]
Symbol 80 MovieClip [__Packages.Effects.CEffect_BankAnim]
Symbol 81 MovieClip [__Packages.Effects.CEffect_IdleLookAnim]
Symbol 82 MovieClip [__Packages.Effects.CEffect_IdleEmoteAnim]
Symbol 83 MovieClip [__Packages.Effects.CEffect_IdleBlinkAnim]
Symbol 84 MovieClip [__Packages.Effects.CEffect_IdleSpecialAnim]
Symbol 85 MovieClip [__Packages.Effects.CEffect_BubbleBubble]
Symbol 86 MovieClip [__Packages.Effects.CEffect_Mine]
Symbol 87 MovieClip [__Packages.Effects.CEffect_WinAnim]
Symbol 88 MovieClip [__Packages.UI.CWinDlg]
Symbol 89 MovieClip [__Packages.Effects.CEffect_Firework]
Symbol 90 MovieClip [__Packages.Effects.CEffect_LoseAnim]
Symbol 91 MovieClip [__Packages.mx.transitions.easing.Strong]
Symbol 92 MovieClip [__Packages.Effects.CEffect_ShakeAnim]
Symbol 93 MovieClip [__Packages.Effects.CEffect_FlyTo]
Symbol 94 MovieClip [__Packages.Effects.CEffect_BorbFadeOut]
Symbol 95 MovieClip [__Packages.Effects.CEffect_StartAnim]
Symbol 96 MovieClip [__Packages.Effects.CEffect_HypnoBorb]
Symbol 97 MovieClip [__Packages.Core.CTip]
Symbol 98 MovieClip [__Packages.Core.CTipTarget]
Symbol 99 MovieClip [__Packages.UI.CBoardMenuDlg]
Symbol 100 MovieClip [__Packages.UI.CConfirmationDlg]
Symbol 101 MovieClip [__Packages.CEffectManager]
Symbol 102 MovieClip [__Packages.CLocalizer]
Symbol 103 MovieClip [__Packages.CLocStrData]
Symbol 104 MovieClip [__Packages.CLoadMonitor]
Symbol 105 MovieClip [__Packages.Core.CStackTracer]

Instance Names

"Progress"Frame 1Symbol 5 MovieClip [Load]
"LoadText"Frame 1Symbol 8 EditableText
"Progress"Symbol 5 MovieClip [Load] Frame 1Symbol 4 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS1/AS2.
ExportAssets (56)Timeline Frame 1Symbol 5 as "Load"
ExportAssets (56)Timeline Frame 1Symbol 9 as "__Packages.CPachinko"
ExportAssets (56)Timeline Frame 1Symbol 10 as "__Packages.CWebConfig"
ExportAssets (56)Timeline Frame 1Symbol 11 as "__Packages.Oberon.XmlX"
ExportAssets (56)Timeline Frame 1Symbol 12 as "__Packages.CGame"
ExportAssets (56)Timeline Frame 1Symbol 13 as "__Packages.CBoard"
ExportAssets (56)Timeline Frame 1Symbol 14 as "__Packages.StaticText"
ExportAssets (56)Timeline Frame 1Symbol 15 as "__Packages.TextRenderer"
ExportAssets (56)Timeline Frame 1Symbol 16 as "__Packages.FHost.CApp"
ExportAssets (56)Timeline Frame 1Symbol 17 as "__Packages.Oberon.StringX"
ExportAssets (56)Timeline Frame 1Symbol 18 as "__Packages.mx.utils.Delegate"
ExportAssets (56)Timeline Frame 1Symbol 19 as "__Packages.Core.CTween"
ExportAssets (56)Timeline Frame 1Symbol 20 as "__Packages.Oberon.CEvent"
ExportAssets (56)Timeline Frame 1Symbol 21 as "__Packages.CustomTweens.Bounce"
ExportAssets (56)Timeline Frame 1Symbol 22 as "__Packages.CDialog"
ExportAssets (56)Timeline Frame 1Symbol 23 as "__Packages.Core.CUIComponent"
ExportAssets (56)Timeline Frame 1Symbol 24 as "__Packages.CDebug"
ExportAssets (56)Timeline Frame 1Symbol 25 as "__Packages.Level"
ExportAssets (56)Timeline Frame 1Symbol 26 as "__Packages.CPlayerInfo"
ExportAssets (56)Timeline Frame 1Symbol 27 as "__Packages.UI.CAchievementDlg"
ExportAssets (56)Timeline Frame 1Symbol 28 as "__Packages.Constants"
ExportAssets (56)Timeline Frame 1Symbol 29 as "__Packages.Oberon.MathX"
ExportAssets (56)Timeline Frame 1Symbol 30 as "__Packages.Core.DialogUtil"
ExportAssets (56)Timeline Frame 1Symbol 31 as "__Packages.mx.transitions.easing.Regular"
ExportAssets (56)Timeline Frame 1Symbol 32 as "__Packages.Oberon.CEnterFrameEvent"
ExportAssets (56)Timeline Frame 1Symbol 33 as "__Packages.Core.Button"
ExportAssets (56)Timeline Frame 1Symbol 34 as "__Packages.CLevelManifest"
ExportAssets (56)Timeline Frame 1Symbol 35 as "__Packages.CLevelManifestSet"
ExportAssets (56)Timeline Frame 1Symbol 36 as "__Packages.CLevelManifestFile"
ExportAssets (56)Timeline Frame 1Symbol 37 as "__Packages.Core.Utility"
ExportAssets (56)Timeline Frame 1Symbol 38 as "__Packages.GameState"
ExportAssets (56)Timeline Frame 1Symbol 39 as "__Packages.UI.CLoseDlg"
ExportAssets (56)Timeline Frame 1Symbol 40 as "__Packages.Core.FrameAdvancer"
ExportAssets (56)Timeline Frame 1Symbol 41 as "__Packages.CEffect"
ExportAssets (56)Timeline Frame 1Symbol 42 as "__Packages.Effects.CEffect_SleepAnim"
ExportAssets (56)Timeline Frame 1Symbol 43 as "__Packages.CPhysicsObject"
ExportAssets (56)Timeline Frame 1Symbol 44 as "__Packages.Core.Vector2"
ExportAssets (56)Timeline Frame 1Symbol 45 as "__Packages.SnoodHead"
ExportAssets (56)Timeline Frame 1Symbol 46 as "__Packages.CEyes"
ExportAssets (56)Timeline Frame 1Symbol 47 as "__Packages.Oberon.ArrayX"
ExportAssets (56)Timeline Frame 1Symbol 48 as "__Packages.CCoord"
ExportAssets (56)Timeline Frame 1Symbol 49 as "__Packages.Effects.CEffect_EmoteAnim"
ExportAssets (56)Timeline Frame 1Symbol 50 as "__Packages.Oberon.MovieClipX"
ExportAssets (56)Timeline Frame 1Symbol 51 as "__Packages.CProcEyes"
ExportAssets (56)Timeline Frame 1Symbol 52 as "__Packages.CLevelInfo"
ExportAssets (56)Timeline Frame 1Symbol 53 as "__Packages.CLevelTileInfo"
ExportAssets (56)Timeline Frame 1Symbol 54 as "__Packages.CBorbInfo"
ExportAssets (56)Timeline Frame 1Symbol 55 as "__Packages.Effects.CEffect_BorbDropAnim"
ExportAssets (56)Timeline Frame 1Symbol 56 as "__Packages.CTileSet"
ExportAssets (56)Timeline Frame 1Symbol 57 as "__Packages.Effects.CEffect_CannonScareAnim"
ExportAssets (56)Timeline Frame 1Symbol 58 as "__Packages.CLauncher"
ExportAssets (56)Timeline Frame 1Symbol 59 as "__Packages.CLauncherTrack"
ExportAssets (56)Timeline Frame 1Symbol 60 as "__Packages.CCharacterSounds"
ExportAssets (56)Timeline Frame 1Symbol 61 as "__Packages.SoundDb"
ExportAssets (56)Timeline Frame 1Symbol 62 as "__Packages.CSoundConstants"
ExportAssets (56)Timeline Frame 1Symbol 63 as "__Packages.SoundEntry"
ExportAssets (56)Timeline Frame 1Symbol 64 as "__Packages.Effects.CEffect_DelayedSound"
ExportAssets (56)Timeline Frame 1Symbol 65 as "__Packages.CBoardCircular"
ExportAssets (56)Timeline Frame 1Symbol 66 as "__Packages.CTileSetCircular"
ExportAssets (56)Timeline Frame 1Symbol 67 as "__Packages.CQueueBorb"
ExportAssets (56)Timeline Frame 1Symbol 68 as "__Packages.PhysicsMgr"
ExportAssets (56)Timeline Frame 1Symbol 69 as "__Packages.Effects.CEffect_ShroudDissolve"
ExportAssets (56)Timeline Frame 1Symbol 70 as "__Packages.CJellyFishy"
ExportAssets (56)Timeline Frame 1Symbol 71 as "__Packages.Effects.CEffect_JellyAnim"
ExportAssets (56)Timeline Frame 1Symbol 72 as "__Packages.Effects.CEffect_DropAnim"
ExportAssets (56)Timeline Frame 1Symbol 73 as "__Packages.Core.COrientedBox"
ExportAssets (56)Timeline Frame 1Symbol 74 as "__Packages.CBoardVertical"
ExportAssets (56)Timeline Frame 1Symbol 75 as "__Packages.CTileSetVertical"
ExportAssets (56)Timeline Frame 1Symbol 76 as "__Packages.Effects.CEffect_ScareAnim"
ExportAssets (56)Timeline Frame 1Symbol 77 as "__Packages.CQueue"
ExportAssets (56)Timeline Frame 1Symbol 78 as "__Packages.mx.transitions.easing.None"
ExportAssets (56)Timeline Frame 1Symbol 79 as "__Packages.Effects.CEffect_Vaporize"
ExportAssets (56)Timeline Frame 1Symbol 80 as "__Packages.Effects.CEffect_BankAnim"
ExportAssets (56)Timeline Frame 1Symbol 81 as "__Packages.Effects.CEffect_IdleLookAnim"
ExportAssets (56)Timeline Frame 1Symbol 82 as "__Packages.Effects.CEffect_IdleEmoteAnim"
ExportAssets (56)Timeline Frame 1Symbol 83 as "__Packages.Effects.CEffect_IdleBlinkAnim"
ExportAssets (56)Timeline Frame 1Symbol 84 as "__Packages.Effects.CEffect_IdleSpecialAnim"
ExportAssets (56)Timeline Frame 1Symbol 85 as "__Packages.Effects.CEffect_BubbleBubble"
ExportAssets (56)Timeline Frame 1Symbol 86 as "__Packages.Effects.CEffect_Mine"
ExportAssets (56)Timeline Frame 1Symbol 87 as "__Packages.Effects.CEffect_WinAnim"
ExportAssets (56)Timeline Frame 1Symbol 88 as "__Packages.UI.CWinDlg"
ExportAssets (56)Timeline Frame 1Symbol 89 as "__Packages.Effects.CEffect_Firework"
ExportAssets (56)Timeline Frame 1Symbol 90 as "__Packages.Effects.CEffect_LoseAnim"
ExportAssets (56)Timeline Frame 1Symbol 91 as "__Packages.mx.transitions.easing.Strong"
ExportAssets (56)Timeline Frame 1Symbol 92 as "__Packages.Effects.CEffect_ShakeAnim"
ExportAssets (56)Timeline Frame 1Symbol 93 as "__Packages.Effects.CEffect_FlyTo"
ExportAssets (56)Timeline Frame 1Symbol 94 as "__Packages.Effects.CEffect_BorbFadeOut"
ExportAssets (56)Timeline Frame 1Symbol 95 as "__Packages.Effects.CEffect_StartAnim"
ExportAssets (56)Timeline Frame 1Symbol 96 as "__Packages.Effects.CEffect_HypnoBorb"
ExportAssets (56)Timeline Frame 1Symbol 97 as "__Packages.Core.CTip"
ExportAssets (56)Timeline Frame 1Symbol 98 as "__Packages.Core.CTipTarget"
ExportAssets (56)Timeline Frame 1Symbol 99 as "__Packages.UI.CBoardMenuDlg"
ExportAssets (56)Timeline Frame 1Symbol 100 as "__Packages.UI.CConfirmationDlg"
ExportAssets (56)Timeline Frame 1Symbol 101 as "__Packages.CEffectManager"
ExportAssets (56)Timeline Frame 1Symbol 102 as "__Packages.CLocalizer"
ExportAssets (56)Timeline Frame 1Symbol 103 as "__Packages.CLocStrData"
ExportAssets (56)Timeline Frame 1Symbol 104 as "__Packages.CLoadMonitor"
ExportAssets (56)Timeline Frame 1Symbol 105 as "__Packages.Core.CStackTracer"

Labels

"SessionStart"Frame 3
"MuteOn"Frame 12
"MuteOff"Frame 19
"PauseOn"Frame 26
"PauseOff"Frame 33
"GameMenu"Frame 40
"GameContinue"Frame 48
"GameStart"Frame 58
"CustomReturn"Frame 66
"LoadAchievement"Frame 76




http://swfchan.com/50/246776/info.shtml
Created: 17/6 -2022 22:05:00 Last modified: 17/6 -2022 22:05:00 Server time: 07/12 -2025 09:16:46