Frame 1
var _oPreloaderScreen = (new com.disney.gem.games.grinding_stomach.screens.PreloaderScreen(mcScreens.mcPreloader));
com.sarbakan.BaseDisneyController.bDEBUG = false;
new com.disney.gem.games.grinding_stomach.Controller(this, _oPreloaderScreen);
Symbol 860 MovieClip [__Packages.com.sarbakan.utils.StateManaged] Frame 0
class com.sarbakan.utils.StateManaged
{
var mcRef, bPausable, sNextState, sState;
function StateManaged (_mcRef) {
setMC(_mcRef);
setPausable(true);
}
function setMC(_mcRef) {
mcRef = _mcRef;
}
function setPausable(_bPausable) {
bPausable = _bPausable;
}
function setState(_sState, _bInstant, _bForce) {
sNextState = _sState;
if (_bInstant) {
checkStateChange();
}
if (_bForce) {
mcRef.mcState.gotoAndPlay(1);
}
}
function getState() {
return(sState);
}
function stateStarting() {
return(mcRef.mcState._currentframe == 1);
}
function stateFinished() {
return(mcRef.mcState._currentframe == mcRef.mcState._totalframes);
}
function stateCurrentFrame() {
return(mcRef.mcState._currentframe);
}
function stateIsNot() {
var _local4 = false;
var _local3 = arguments.length - 1;
while (_local3 >= 0) {
if (arguments[_local3] == sState) {
_local4 = true;
break;
}
_local3--;
}
return(!_local4);
}
function destroy() {
delete mcRef;
}
function get Mc() {
return(mcRef);
}
function onUpdate() {
checkStateChange();
this["state_" + sState]();
}
function checkStateChange() {
if ((sNextState != undefined) && (sNextState != sState)) {
this[("state_" + sState) + "_end"]();
sState = sNextState;
sNextState = undefined;
mcRef.gotoAndStop(sState);
this[("state_" + sState) + "_init"]();
}
}
function onUpdatePaused() {
if (bPausable == false) {
onUpdate();
}
}
function onPause() {
if (bPausable) {
mcRef.mcState.stop();
}
}
function onUnPause() {
if (bPausable) {
mcRef.mcState.play();
}
}
}
Symbol 861 MovieClip [__Packages.com.sarbakan.utils.ScreenController] Frame 0
class com.sarbakan.utils.ScreenController extends com.sarbakan.utils.StateManaged
{
var setMC, setState, setPausable, oController, bInOut, fHideCallBack, mcRef, sState, stateFinished;
function ScreenController (_mcRef) {
super();
setMC(_mcRef);
setState(sSTATE_HIDDEN);
setPausable(false);
}
function setGameController(_oController) {
oController = _oController;
}
function show(_bInOut) {
bInOut = _bInOut;
if (bInOut) {
setState(sSTATE_IN, true);
} else {
setState(sSTATE_IDLE, true);
}
}
function hide(_fHideCallBack, _bInOutOverride) {
fHideCallBack = _fHideCallBack;
var _local2 = bInOut;
if (_bInOutOverride != undefined) {
_local2 = _bInOutOverride;
}
if (_local2) {
setState(sSTATE_OUT);
} else {
setState(sSTATE_HIDDEN, true);
fHideCallBack();
}
}
function getRef() {
return(mcRef);
}
function isInOutTransitionning() {
return(sState != sSTATE_IDLE);
}
function state_in() {
if (stateFinished()) {
setState(sSTATE_IDLE);
}
}
function state_out() {
if (stateFinished()) {
setState(sSTATE_HIDDEN, true);
fHideCallBack();
}
}
function state_in_init() {
mcRef.btBlocker.useHandCursor = false;
}
function state_idle_init() {
mcRef.btBlocker.useHandCursor = false;
}
function state_out_init() {
mcRef.btBlocker.useHandCursor = false;
}
static var sSTATE_HIDDEN = "hidden";
static var sSTATE_IN = "in";
static var sSTATE_IDLE = "idle";
static var sSTATE_OUT = "out";
}
Symbol 862 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.screens.PreloaderScreen] Frame 0
class com.disney.gem.games.grinding_stomach.screens.PreloaderScreen extends com.sarbakan.utils.ScreenController
{
var oController, mcRef;
function PreloaderScreen (_mcRef) {
super(_mcRef);
}
function state_idle() {
var _local2 = com.disney.gem.games.grinding_stomach.Controller(oController).mcTimeline.getBytesLoaded() / com.disney.gem.games.grinding_stomach.Controller(oController).mcTimeline.getBytesTotal();
mcRef.mcState.mcContent.txtLoading.text = Math.round(_local2 * 100);
mcRef.mcState.mcPercent.gotoAndStop(Math.round(_local2 * 100));
if (_local2 == 1) {
com.disney.gem.games.grinding_stomach.Controller(oController).onPreloadingDone();
}
}
}
Symbol 863 MovieClip [__Packages.com.sarbakan.BaseDisneyController] Frame 0
class com.sarbakan.BaseDisneyController
{
static var oInstance;
var mcTimeline, oPreloaderScreen, oMainBroadcaster, oFrameRate, aPopups, oTransitionManager, bSoundMuted, nLastSoundToggleTimer, bPaused, oDXDControllerWrapper, nGamePhase, oCurrentScreen, fScreenShowTransitionCallBack, fScreenHideCallBack, nLevel, nScore, bInstructionCanBeDisplayed, bInstructionActive, nLastUpdateTimer;
function BaseDisneyController (_mcTimeline, _oPreloaderScreen) {
oInstance = this;
mcTimeline = _mcTimeline;
_mcTimeline.stop();
oPreloaderScreen = _oPreloaderScreen;
oMainBroadcaster = new Object();
AsBroadcaster.initialize(oMainBroadcaster);
oMainBroadcaster.addListener(this);
if (bDEBUG) {
oFrameRate = new com.sarbakan.utils.FrameRateDisplayer(_mcTimeline, nFRAME_RATE, nGAME_STAGE_WIDTH);
oMainBroadcaster.addListener(oFrameRate);
} else {
Stage.showMenu = false;
mcTimeline._focusrect = false;
}
aPopups = new Array();
if (getControllerMode() == nCONTROLLER_MODE_DXD) {
setDXDCallback();
} else {
initStandAloneController();
}
}
static function getInstance() {
return(oInstance);
}
function init() {
setGamePhase(nGAME_PHASE_PACKAGING);
stopScreenContainers();
oTransitionManager = new com.sarbakan.utils.TransitionManager(mcTimeline.mcTransitions);
oMainBroadcaster.addListener(oTransitionManager);
bSoundMuted = false;
nLastSoundToggleTimer = getTimer();
}
function update(_nElapsed) {
if (bPaused) {
oMainBroadcaster.broadcastMessage("onUpdatePaused", _nElapsed);
} else {
oMainBroadcaster.broadcastMessage("onUpdate", _nElapsed);
}
checkGlobalKeys();
if (getControllerMode() == nCONTROLLER_MODE_DXD) {
bSoundMuted = oDXDControllerWrapper.isMuted();
}
}
function pause() {
if (!bPaused) {
bPaused = true;
oMainBroadcaster.broadcastMessage("onPause");
}
}
function unpause() {
if (bPaused) {
bPaused = false;
oMainBroadcaster.broadcastMessage("onUnPause");
}
}
function togglePause() {
if (bPaused) {
unpause();
} else {
pause();
}
}
function getControllerMode() {
var _local1;
if (com.disney.gem.base.BaseObject == undefined) {
_local1 = nCONTROLLER_MODE_STANDALONE;
} else {
_local1 = nCONTROLLER_MODE_DXD;
}
return(_local1);
}
function setGamePhase(_nPhase) {
nGamePhase = _nPhase;
switch (_nPhase) {
case nGAME_PHASE_PRELOADER :
mcTimeline.gotoAndStop("preloader");
break;
case nGAME_PHASE_PACKAGING :
mcTimeline.gotoAndStop("packaging");
break;
case nGAME_PHASE_INGAME :
mcTimeline.gotoAndStop("game");
}
}
function getGamePhase() {
return(nGamePhase);
}
function gameLog(_sText) {
if (getControllerMode() == nCONTROLLER_MODE_DXD) {
oDXDControllerWrapper.gameLog(_sText);
} else {
trace(_sText);
}
}
function showScreen(_oScreenController, _bInOut, _sTransitionID, _fMidTransitionCallBack) {
if (oCurrentScreen) {
hideCurrentScreen(com.sarbakan.utils.Delegate.create(this, showScreen, _oScreenController, _bInOut), _sTransitionID);
} else {
oCurrentScreen = _oScreenController;
oCurrentScreen.setGameController(this);
if (_sTransitionID != undefined) {
fScreenShowTransitionCallBack = _fMidTransitionCallBack;
oTransitionManager.playTransition(_sTransitionID, com.sarbakan.utils.Delegate.create(this, onScreenShowTransitionMiddle, _bInOut));
} else {
oCurrentScreen.show(_bInOut);
}
oMainBroadcaster.addListener(oCurrentScreen);
}
}
function hideCurrentScreen(_fHideCallBack, _sTransition, _fEndCallBack) {
fScreenHideCallBack = _fHideCallBack;
if (_sTransition != undefined) {
oTransitionManager.playTransition(_sTransition, com.sarbakan.utils.Delegate.create(oCurrentScreen, oCurrentScreen.hide, com.sarbakan.utils.Delegate.create(this, onScreenHidden)), _fEndCallBack);
} else {
oCurrentScreen.hide(com.sarbakan.utils.Delegate.create(this, onScreenHidden));
}
}
function showPopup(_oPopupController, _bInOut) {
var _local5 = false;
var _local2 = aPopups.length - 1;
while (_local2 >= 0) {
var _local3 = aPopups[_local2];
if (_oPopupController.getRef() == _local3.getRef()) {
_local5 = true;
_local3.destroy();
oMainBroadcaster.removeListener(_local3);
aPopups[_local2] = _oPopupController;
break;
}
_local2--;
}
if (!_local5) {
aPopups.push(_oPopupController);
}
_oPopupController.setGameController(this);
_oPopupController.show(_bInOut);
oMainBroadcaster.addListener(_oPopupController);
}
function setLevel(_nLevel) {
nLevel = _nLevel;
}
function getLevel() {
return(nLevel);
}
function setScore(_nScore) {
nScore = _nScore;
}
function increaseScore(_nIncrement) {
nScore = nScore + _nIncrement;
}
function getScore() {
return(nScore);
}
function allowInstructions() {
bInstructionCanBeDisplayed = true;
}
function disallowInstructions() {
bInstructionCanBeDisplayed = false;
}
function showInstructions() {
if (canShowInstructions()) {
bInstructionActive = true;
showInstructionsScreen();
}
}
function hideInstructions() {
if (canHideInstructions()) {
bInstructionActive = false;
hideInstructionsScreen();
}
}
function toggleSound() {
if ((getTimer() - nLastSoundToggleTimer) >= nSOUND_TOGGLE_DELAY) {
bSoundMuted = !bSoundMuted;
nLastSoundToggleTimer = getTimer();
if (getControllerMode() == nCONTROLLER_MODE_DXD) {
oDXDControllerWrapper.toggleSound();
} else {
toggleSoundStandalone();
}
}
}
function onPreloadingDone() {
hideCurrentScreen();
init();
}
function onGameStart() {
setLevel(1);
setScore(0);
}
function onLevelStart() {
if (getControllerMode() == nCONTROLLER_MODE_DXD) {
oDXDControllerWrapper.startLevel(nLevel, nScore);
}
}
function onLevelEnd() {
if (getControllerMode() == nCONTROLLER_MODE_DXD) {
oDXDControllerWrapper.endLevel(nLevel, nScore);
}
}
function onGameEnd() {
if (getControllerMode() == nCONTROLLER_MODE_DXD) {
oDXDControllerWrapper.endGame(nLevel, nScore);
}
}
function onTransitionStart(_mcTransition) {
}
function onTransitionMiddle(_mcTransition) {
}
function onEnterFrame() {
var _local2 = getTimer();
update(_local2 - nLastUpdateTimer);
nLastUpdateTimer = _local2;
}
function onScreenShowTransitionMiddle(_bInOut) {
fScreenShowTransitionCallBack();
oCurrentScreen.show(_bInOut);
}
function onScreenHidden() {
oMainBroadcaster.removeListener(oCurrentScreen);
delete oCurrentScreen;
fScreenHideCallBack();
}
function setDXDCallback() {
mcTimeline.init = com.sarbakan.utils.Delegate.create(this, initDXDController);
}
function initDXDController(_oOwner) {
oDXDControllerWrapper = new com.sarbakan.DXDControllerWrapper(this, mcTimeline, _oOwner);
return(oDXDControllerWrapper);
}
function initStandAloneController() {
mcTimeline.onEnterFrame = com.sarbakan.utils.Delegate.create(this, onEnterFrame);
nLastUpdateTimer = getTimer();
initPreloader();
}
function initPreloader() {
setGamePhase(nGAME_PHASE_PRELOADER);
showScreen(oPreloaderScreen);
}
function checkGlobalKeys() {
if (Key.isDown(nKEY_INSTRUCTIONS)) {
if (!bInstructionActive) {
showInstructions();
} else {
hideInstructions();
}
}
if (Key.isDown(nKEY_SOUND)) {
toggleSound();
}
}
function toggleSoundStandalone() {
var _local2 = new Sound(mcTimeline);
if (!bSoundMuted) {
_local2.setVolume(100);
} else {
_local2.setVolume(0);
}
}
function canShowInstructions() {
return((((!bInstructionActive) && (bInstructionCanBeDisplayed)) && (!oCurrentScreen.isInOutTransitionning())) && (!oTransitionManager.isTransitionning()));
}
function canHideInstructions() {
return(((bInstructionActive && (bInstructionCanBeDisplayed)) && (!oCurrentScreen.isInOutTransitionning())) && (!oTransitionManager.isTransitionning()));
}
function showInstructionsScreen() {
}
function hideInstructionsScreen() {
}
function stopScreenContainers() {
var _local3 = [mcTimeline.mcPopups, mcTimeline.mcScreens];
var _local2 = _local3.length - 1;
while (_local2 >= 0) {
for (var _local4 in _local3[_local2]) {
_local3[_local2][_local4].stop();
}
_local2--;
}
}
static var bDEBUG = true;
static var nFRAME_RATE = 30;
static var nCONTROLLER_MODE_STANDALONE = 1;
static var nCONTROLLER_MODE_DXD = 2;
static var nGAME_PHASE_PRELOADER = 1;
static var nGAME_PHASE_PACKAGING = 2;
static var nGAME_PHASE_INGAME = 3;
static var nKEY_INSTRUCTIONS = -1;
static var nKEY_SOUND = -1;
static var nGAME_STAGE_WIDTH = 580;
static var nGAME_STAGE_HEIGHT = 400;
static var nSOUND_TOGGLE_DELAY = 100;
}
Symbol 864 MovieClip [__Packages.com.sarbakan.utils.TransitionManager] Frame 0
class com.sarbakan.utils.TransitionManager extends com.sarbakan.utils.StateManaged
{
var setPausable, mcTransitionContainer, mcTransition, fMiddleCallBack, fEndCallBack, bTransitionning, setMC, setState, stateFinished, mcRef;
function TransitionManager (_mcTransition) {
super();
setPausable(false);
mcTransitionContainer = _mcTransition;
for (var _local3 in mcTransitionContainer) {
mcTransitionContainer[_local3].stop();
}
}
function playTransition(_sTransitionID, _fMiddleCallBack, _fEndCallBack) {
mcTransition = mcTransitionContainer["mc" + com.sarbakan.utils.MoreString.upperFirstChar(_sTransitionID)];
fMiddleCallBack = _fMiddleCallBack;
fEndCallBack = _fEndCallBack;
if (mcTransition == undefined) {
trace(("TransitionManager error: Unable to find mc" + com.sarbakan.utils.MoreString.upperFirstChar(_sTransitionID)) + " in transition movieclip");
} else {
bTransitionning = true;
setMC(mcTransition);
setState(sSTATE_IN);
}
}
function isTransitionning() {
return(bTransitionning);
}
function state_in() {
if (stateFinished()) {
setState(sSTATE_OUT);
fMiddleCallBack();
}
}
function state_out() {
if (stateFinished()) {
bTransitionning = false;
setState(sSTATE_HIDDEN);
fEndCallBack();
}
}
function state_in_init() {
com.sarbakan.BaseDisneyController.getInstance().onTransitionStart(mcTransition);
mcRef.btBlocker.useHandCursor = false;
}
function state_out_init() {
com.sarbakan.BaseDisneyController.getInstance().onTransitionMiddle(mcTransition);
mcRef.btBlocker.useHandCursor = false;
}
static var sSTATE_IN = "in";
static var sSTATE_OUT = "out";
static var sSTATE_HIDDEN = "hidden";
}
Symbol 865 MovieClip [__Packages.com.sarbakan.utils.MoreString] Frame 0
class com.sarbakan.utils.MoreString
{
function MoreString () {
}
static function pad(_sToPad, _sCharPad, _nMinLength, _sSideToPad) {
var _local1 = String(_sToPad);
while (_local1.length < _nMinLength) {
if (_sSideToPad == "RIGHT") {
_local1 = _local1 + _sCharPad;
} else {
_local1 = _sCharPad + _local1;
}
}
return(_local1);
}
static function trim(_sToTrim, _sCharTrim, _sSideToTrim) {
var _local1 = String(_sToTrim);
if (_sSideToTrim == "RIGHT") {
while (_local1.substr(_local1.length - 2, 1) == _sCharTrim) {
_local1 = _local1.slice(-1);
}
} else {
while (_local1.substr(0, 1) == _sCharTrim) {
_local1 = _local1.slice(1);
}
}
return(_local1);
}
static function replace(_sString, _sFind, _sReplace) {
return(_sString.split(_sFind).join(_sReplace));
}
static function formatTime(_nTime) {
var _local2 = _nTime;
var _local1 = Math.floor(_local2 / 60);
var _local3 = Math.round(_local2 - (_local1 * 60));
return((pad(String(_local1), "0", 2) + ":") + pad(String(_local3), "0", 2));
}
static function formatNumber(__sNumber, __nMinimumChar) {
var _local1 = String(__sNumber);
var _local3 = "";
var _local4 = _local1.length;
_local4 = _local4 / 3;
var _local5;
var _local2;
if (_local4 <= 1) {
_local5 = _local1;
if (_local5.length < __nMinimumChar) {
_local5 = "0" + _local5;
}
} else {
_local2 = _local4;
while (_local2 > 1) {
_local3 = (" " + _local1.substr(-3)) + _local3;
_local1 = _local1.substr(0, -3);
_local2--;
}
_local5 = _local1 + _local3;
if (_local5.length < __nMinimumChar) {
_local5 = "0" + _local5;
}
}
return(_local5);
}
static function upperFirstChar(_sString) {
return(_sString.substr(0, 1).toUpperCase() + _sString.substr(1));
}
static function lowerFirstChar(_sString) {
return(_sString.substr(0, 1).toLowerCase() + _sString.substr(1));
}
static function convertToBoolean(_sString) {
return(_sString.toLowerCase() == "true");
}
static function formatMoney(_nMoney, _sDelimiteur, _bDecimalOpt) {
var _local5;
var _local3;
var _local2;
var _local1;
var _local6;
if (_bDecimalOpt == undefined) {
_local6 = true;
} else {
_local6 = _bDecimalOpt;
}
_local5 = String(_nMoney).split(".");
if (_local5[1] != undefined) {
_local3 = _local5[1].substr(0, 2);
switch (_local3.length) {
case 0 :
_local3 = _local3 + "00";
break;
case 1 :
_local3 = _local3 + "0";
break;
case 2 :
break;
default :
_local3 = "00";
}
} else {
_local3 = "00";
}
_local1 = _local5[0];
_local2 = "";
while (_local1.length > 3) {
_local2 = (_sDelimiteur + _local1.substr(_local1.length - 3)) + _local2;
_local1 = _local1.substr(0, _local1.length - 3);
}
_local2 = _local1 + _local2;
if (_local6) {
return(((_local2 + ".") + _local3) + "$");
}
return(_local2 + " $");
}
static function getOrdinalSuffix(_nNumber) {
var _local2;
var _local1 = String(_nNumber);
if (((_local1.substr(-2, 2) == 11) || (_local1.substr(-2, 2) == 12)) || (_local1.substr(-2, 2) == 13)) {
_local2 = "th";
} else if (_local1.substr(-1, 1) == 1) {
_local2 = "st";
} else if (_local1.substr(-1, 1) == 2) {
_local2 = "nd";
} else if (_local1.substr(-1, 1) == 3) {
_local2 = "rd";
} else {
_local2 = "th";
}
return(_local2);
}
}
Symbol 866 MovieClip [__Packages.com.sarbakan.DXDControllerWrapper] Frame 0
class com.sarbakan.DXDControllerWrapper extends com.disney.gem.games.BaseGameController
{
var oRealController, __owner;
function DXDControllerWrapper (_oRealController, _mcTimeline, _oOwner) {
super(_mcTimeline, _oOwner);
oRealController = _oRealController;
}
function init() {
super.init();
oRealController.init();
}
function update(_nElapsed) {
oRealController.update(_nElapsed);
}
function toggleSound() {
__owner.onToggleSound();
}
function isMuted() {
return(!__owner.__soundOn);
}
function gameLog(_sText) {
__owner.gameLog(_sText, "game");
}
}
Symbol 867 MovieClip [__Packages.com.disney.gem.games.GameContainer] Frame 0
interface com.disney.gem.games.GameContainer
{
}
Symbol 868 MovieClip [__Packages.com.sarbakan.utils.FrameRateDisplayer] Frame 0
class com.sarbakan.utils.FrameRateDisplayer
{
var nMovieFPS, nUpdateCounter, nAverageFps, nCurrentFPS, nUpdateCount, mcDebug, nLastGetTimer;
function FrameRateDisplayer (_mcTimeline, _nMovieFPS, _nStageWidth) {
nMovieFPS = _nMovieFPS;
nUpdateCounter = 0;
nAverageFps = 0;
nCurrentFPS = nMovieFPS;
reset();
startDebug(_mcTimeline, _nStageWidth);
}
function get fps() {
return(nCurrentFPS);
}
function onUpdate() {
if ((++nUpdateCount) == nMovieFPS) {
computeFrameRate();
updateDebug();
}
}
function onUpdatePaused() {
onUpdate();
}
function startDebug(_mcTimeline, _nStageWidth) {
mcDebug = _mcTimeline.createEmptyMovieClip("PerformanceWatcherDebug", DEBUG_DEPTH);
mcDebug._x = (_nStageWidth - DEBUG_RIGHT_MARGIN) - 400;
mcDebug._y = DEBUG_TOP_MARGIN;
mcDebug.createTextField("field", 2, 0, 0, 400, 50);
var _local2 = new TextFormat();
_local2.font = DEBUG_FONT;
_local2.size = DEBUG_FONT_SIZE;
_local2.color = DEBUG_FONT_COLOR;
_local2.align = "right";
mcDebug.field.setNewTextFormat(_local2);
mcDebug.field.selectable = false;
mcDebug.createTextField("fieldShadow", 1, 1, 1, 400, 50);
var _local3 = new TextFormat();
_local3.font = DEBUG_FONT;
_local3.size = DEBUG_FONT_SIZE;
_local3.color = DEBUG_FONT_SHADOW_COLOR;
_local3.align = "right";
mcDebug.fieldShadow.setNewTextFormat(_local3);
mcDebug.fieldShadow.selectable = false;
}
function reset() {
nUpdateCount = 0;
nLastGetTimer = getTimer();
}
function computeFrameRate() {
var _local2 = getTimer() - nLastGetTimer;
var _local3 = _local2 / 1000;
nCurrentFPS = Math.round(nMovieFPS / _local3);
reset();
}
function updateDebug() {
if (mcDebug != undefined) {
nUpdateCounter++;
var _local2 = ((nCurrentFPS + " fps (avg ") + getAverage()) + ")";
mcDebug.field.text = _local2;
mcDebug.fieldShadow.text = _local2;
}
}
function getAverage() {
nAverageFps = nAverageFps + ((nCurrentFPS - nAverageFps) * (1 / nUpdateCounter));
var _local3 = "";
var _local2 = String(nAverageFps).split(".");
if (_local2[1] == undefined) {
_local3 = nAverageFps + ".00";
} else if (_local2[1].length == 1) {
_local3 = (_local2[0] + ".0") + _local2[1];
} else {
_local3 = (_local2[0] + ".") + _local2[1].substr(0, 2);
}
return(_local3);
}
static var DEBUG_DEPTH = 123456;
static var DEBUG_RIGHT_MARGIN = 0;
static var DEBUG_TOP_MARGIN = 0;
static var DEBUG_FONT = "Verdana";
static var DEBUG_FONT_SIZE = 10;
static var DEBUG_FONT_COLOR = 16777215;
static var DEBUG_FONT_SHADOW_COLOR = 0;
}
Symbol 869 MovieClip [__Packages.com.sarbakan.utils.Delegate] Frame 0
class com.sarbakan.utils.Delegate extends Object
{
var func;
function Delegate () {
super();
}
function DelegateArgs(f) {
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local3 = arguments.callee.target;
var _local4 = arguments.callee.func;
var _local2 = arguments.callee.arg;
_local2 = _local2.concat(arguments);
return(_local4.apply(_local3, _local2));
};
_local2.target = obj;
_local2.func = func;
_local2.arg = arguments.slice(2);
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 870 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.Controller] Frame 0
class com.disney.gem.games.grinding_stomach.Controller extends com.sarbakan.BaseDisneyController
{
var oMusicPack, showScreen, mcTimeline, allowInstructions, onGameStart, setLevel, setScore, bPaused, unpause, setGamePhase, nLevel, oGame, oMainBroadcaster, hideCurrentScreen, onLevelStart, pause, nGamePhase, nFinalScore, nFinalDifficulty, onLevelEnd, onGameEnd, disallowInstructions;
function Controller (_mcTimeline, _oPreloaderScreen) {
super(_mcTimeline, _oPreloaderScreen);
com.sarbakan.sound.SoundManager.doInit(_mcTimeline.createEmptyMovieClip(sMC_SOUND_NAME, nMC_SOUND_DEPTH));
com.sarbakan.sound.SoundManager.setCategoryVolume(sSOUND_CAT_MUSIC, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_MUSIC);
com.sarbakan.sound.SoundManager.setCategoryVolume(sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
function doSoundEvent(_nEvent, _oSound) {
if (_nEvent == com.sarbakan.sound.SoundManager.nEVENT_SOUND_COMPLETE) {
if (_oSound == oMusicPack) {
delete oMusicPack;
}
}
}
static function getInstance() {
return(com.disney.gem.games.grinding_stomach.Controller(com.sarbakan.BaseDisneyController.oInstance));
}
function init() {
super.init();
showTitleScreen();
}
function showTitleScreen(_bShowTransition) {
closeHighScoreSubmitScreen();
if (_bShowTransition) {
showScreen(new com.disney.gem.games.grinding_stomach.screens.TitleScreen(mcTimeline.mcScreens.mcTitle), false, sTRANSITION_DEFAULT);
playTransitionSound();
} else {
showScreen(new com.disney.gem.games.grinding_stomach.screens.TitleScreen(mcTimeline.mcScreens.mcTitle));
startPackMusic();
}
allowInstructions();
}
function startNewGame() {
closeHighScoreSubmitScreen();
closeHighScoreListScreen();
onGameStart();
setLevel(0);
setScore(0);
startNextLevel();
}
function startNextLevel() {
if (bPaused) {
unpause();
}
stopPackMusic();
setGamePhase(com.sarbakan.BaseDisneyController.nGAME_PHASE_INGAME);
setLevel(nLevel + 1);
oGame = new com.disney.gem.games.grinding_stomach.GameEngine(this, mcTimeline.mcGame);
oMainBroadcaster.addListener(oGame);
hideCurrentScreen(com.sarbakan.utils.Delegate.create(this, onLevelTransitionDone), sTRANSITION_DEFAULT);
playTransitionSound();
onLevelStart();
}
function showInstructionsScreen() {
closeHighScoreListScreen();
closeHighScoreSubmitScreen();
pause();
showScreen(new com.disney.gem.games.grinding_stomach.screens.HelpScreen(mcTimeline.mcScreens.mcHelp), false, sTRANSITION_DEFAULT);
playTransitionSound();
}
function hideInstructionsScreen() {
if (nGamePhase == com.sarbakan.BaseDisneyController.nGAME_PHASE_INGAME) {
unpause();
hideCurrentScreen(null, sTRANSITION_DEFAULT);
playTransitionSound();
} else {
showScreen(new com.disney.gem.games.grinding_stomach.screens.TitleScreen(mcTimeline.mcScreens.mcTitle), false, sTRANSITION_DEFAULT);
playTransitionSound();
}
}
function get FinalScore() {
return(nFinalScore);
}
function get FinalDifficulty() {
return(nFinalDifficulty);
}
function playClickSound() {
com.sarbakan.sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_CLICK, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
function applyRollSound(_oButton) {
_oButton.onRollOver = com.sarbakan.utils.Delegate.create(this, playRollSound);
}
function onLevelTransitionDone() {
oGame.init();
}
function onGameLose() {
nFinalScore = oGame.Score;
nFinalDifficulty = oGame.Difficulty;
setScore(nFinalScore);
onLevelEnd();
onGameEnd();
oGame.stopGameMusic();
startPackMusic();
disallowInstructions();
showScreen(new com.disney.gem.games.grinding_stomach.screens.EndScreen(mcTimeline.mcScreens.mcWin), false, sTRANSITION_DEFAULT, com.sarbakan.utils.Delegate.create(this, cleanGame));
playTransitionSound();
showHighScoreSubmitScreen();
}
function cleanGame() {
oGame.destroy();
setGamePhase(com.sarbakan.BaseDisneyController.nGAME_PHASE_PACKAGING);
}
function startPackMusic() {
if (oMusicPack == undefined) {
oMusicPack = com.sarbakan.sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_MUSIC, com.disney.gem.games.grinding_stomach.GameData.sMUSIC_PACK, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_MUSIC, 99999999);
oMusicPack.doAddListener(this);
}
oMusicPack.doFadeTo(100);
}
function stopPackMusic() {
oMusicPack.doFadeTo(0);
}
function playTransitionSound() {
com.sarbakan.sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_TRANSITION, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
function showHighScoreSubmitScreen() {
mcTimeline.mcScreens.createEmptyMovieClip("submitScore", mcTimeline.mcScreens.getNextHighestDepth());
var _local4 = new MovieClipLoader();
var _local3 = new Object();
_local3.onLoadInit = function (submitScoreContainer) {
var _local2 = submitScoreContainer.module_mc;
_local2.titleText = "Munch 'N' Grind - Submit Your Score";
_local2.score = com.sarbakan.BaseDisneyController.getInstance().getScore();
_local2.gameID = 5;
_local2.onCloseButtonClick = com.sarbakan.utils.Delegate.create(this, this.closeHighScoreSubmitScreen);
submitScoreContainer._x = 10;
submitScoreContainer._y = 10;
this.showScreen(new com.sarbakan.utils.ScreenController(this.mcTimeline.mcScreens.submitScore), false);
};
_local3.closeHighScoreSubmitScreen = com.sarbakan.utils.Delegate.create(this, closeHighScoreSubmitScreen);
_local4.addListener(_local3);
_local4.loadClip("../../../global/swf/highscoreSubmit.swf", mcTimeline.mcScreens.submitScore);
}
function closeHighScoreSubmitScreen() {
if ((mcTimeline.mcScreens.submitScore != null) || (mcTimeline.mcScreens.submitScore != undefined)) {
mcTimeline.mcScreens.submitScore.swapDepths(1048000);
mcTimeline.mcScreens.submitScore.removeMovieClip();
}
}
function showHighScoreListScreen() {
if ((mcTimeline.mcScreens.listScores != null) || (mcTimeline.mcScreens.listScores != undefined)) {
return(undefined);
}
mcTimeline.mcScreens.createEmptyMovieClip("listScores", mcTimeline.mcScreens.getNextHighestDepth());
var _local4 = new MovieClipLoader();
var _local2 = new Object();
_local2.onLoadInit = function (highScoreContainer) {
var _local2 = highScoreContainer.module_mc;
_local2.titleText = "Munch 'N' Grind - High Scores";
_local2.gameID = 5;
_local2.onCloseButtonClick = com.sarbakan.utils.Delegate.create(this, this.closeHighScoreListScreen);
highScoreContainer._x = 290 - (highScoreContainer._width / 2);
highScoreContainer._y = 20;
};
_local2.closeHighScoreListScreen = com.sarbakan.utils.Delegate.create(this, closeHighScoreListScreen);
_local4.addListener(_local2);
_local4.loadClip("../../../global/swf/highscoreList.swf", mcTimeline.mcScreens.listScores);
}
function closeHighScoreListScreen() {
if ((mcTimeline.mcScreens.listScores != null) || (mcTimeline.mcScreens.listScores != undefined)) {
mcTimeline.mcScreens.listScores.swapDepths(1048000);
mcTimeline.mcScreens.listScores.removeMovieClip();
}
}
function playRollSound() {
var _local1 = com.sarbakan.sound.SoundManager.isSoundPlaying(com.disney.gem.games.grinding_stomach.GameData.sSOUND_ROLL);
if (_local1.bPlaying) {
com.sarbakan.sound.SoundItem(_local1.oSound).doStop();
}
com.sarbakan.sound.SoundManager.doPlaySoundInCat(sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_ROLL, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
static var sTRANSITION_DEFAULT = "default";
static var sSOUND_CAT_SOUND = "SFX";
static var sSOUND_CAT_MUSIC = "Music";
static var sMC_SOUND_NAME = "mcSoundManager";
static var nMC_SOUND_DEPTH = 80000;
}
Symbol 871 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.GameEngine] Frame 0
class com.disney.gem.games.grinding_stomach.GameEngine
{
var oController, mcGame, aFood, aBonus, aSpark, aCrack, aHouses, aParallaxFront, aParallaxBack, aObstacle, aGrindable, aScoreTextFields, nScore, nCombo, nDifficulty, nComboTimer, nScoreMultiplier, oPlayer, oCamera, oSpriteGenerator, oParallaxGenerator, bGameEnded, oMusicGame;
function GameEngine (_oController, _mcGame) {
oController = _oController;
mcGame = _mcGame;
MovieClip(mcGame.mcHud).swapDepths(nDEPTH_HUD);
MovieClip(mcGame.mcPlayer).swapDepths(nDEPTH_PLAYER);
aFood = new Array();
aBonus = new Array();
aSpark = new Array();
aCrack = new Array();
aHouses = new Array();
aParallaxFront = new Array();
aParallaxBack = new Array();
aObstacle = new Array();
aGrindable = new Array();
aScoreTextFields = new Array();
nScore = 0;
nCombo = 0;
nDifficulty = 0;
nComboTimer = 0;
nScoreMultiplier = 0;
setMultiplier();
mcGame.mcHud.mcScoreMultiplier.stop();
mcGame.mcHud.btMenu.onRelease = com.sarbakan.utils.Delegate.create(this, onBtMenu);
oPlayer = new com.disney.gem.games.grinding_stomach.Player(this, mcGame.mcPlayer);
oController.oMainBroadcaster.addListener(oPlayer);
oCamera = new com.disney.gem.games.grinding_stomach.GameCamera(this, mcGame.mcBackground);
oController.oMainBroadcaster.addListener(oCamera);
oSpriteGenerator = new com.disney.gem.games.grinding_stomach.SpriteGenerator(this, mcGame.mcBackground);
oController.oMainBroadcaster.addListener(oSpriteGenerator);
mcGame.createEmptyMovieClip(sPARALLAX_MC, nDEPTH_PARALLAX);
oParallaxGenerator = new com.disney.gem.games.grinding_stomach.ParallaxGenerator(this, mcGame.mcParallax, mcGame.mcBackground.mcBackTrees);
oController.oMainBroadcaster.addListener(oParallaxGenerator);
bGameEnded = false;
aScoreTextFields.push(mcGame.mcHud.mcScore.txtScore0, mcGame.mcHud.mcScore.txtScore1, mcGame.mcHud.mcScore.txtScore2, mcGame.mcHud.mcScore.txtScore3, mcGame.mcHud.mcScore.txtScore4, mcGame.mcHud.mcScore.txtScore5, mcGame.mcHud.mcScore.txtScore6, mcGame.mcHud.mcScore.txtScore7, mcGame.mcHud.mcScore.txtScore8);
setScore();
startGameMusic();
}
function init() {
oController.pause();
oController.disallowInstructions();
oController.showPopup(new com.disney.gem.games.grinding_stomach.popups.InstructPopup(oController.mcTimeline.mcPopups.mcInstruct), true);
}
function get stageRef() {
return(mcGame);
}
function updateStomach(_nTargetPercent) {
if (_nTargetPercent <= nSTOMACH_ALERT_LEVEL) {
mcGame.mcHud.mcStomach.gotoAndStop(sSTOMACH_LABEL_ALERT);
} else {
mcGame.mcHud.mcStomach.gotoAndStop(sSTOMACH_LABEL_NORMAL);
}
var _local2 = Math.round(mcGame.mcHud.mcStomach.mcState.mcState.mcState._totalframes - ((mcGame.mcHud.mcStomach.mcState.mcState.mcState._totalframes * _nTargetPercent) / 100));
if (_local2 == 0) {
_local2 = 1;
}
mcGame.mcHud.mcStomach.mcState.mcState.mcState.gotoAndStop(_local2);
}
function updateSpeed(_nTargetPercent) {
var _local2 = Math.round(mcGame.mcHud.mcSpeed._totalframes - ((mcGame.mcHud.mcSpeed._totalframes * _nTargetPercent) / 100));
if (_local2 == 0) {
_local2 = 1;
}
mcGame.mcHud.mcSpeed.gotoAndStop(_local2);
}
function addFood(_mcFood, _nFoodType) {
aFood.push(new com.disney.gem.games.grinding_stomach.sprites.Food(this, _mcFood, _nFoodType));
}
function removeFood(_oFood) {
aFood.shift();
_oFood.__get__Mc().removeMovieClip();
_oFood.destroy();
}
function get FoodArray() {
return(aFood);
}
function addBonus(_mcBonus) {
aBonus.push(new com.disney.gem.games.grinding_stomach.sprites.Bonus(this, _mcBonus, com.disney.gem.games.grinding_stomach.GameData.aBONUS_POINTS[Difficulty]));
}
function removeBonus(_oBonus) {
aBonus.shift();
_oBonus.__get__Mc().removeMovieClip();
_oBonus.destroy();
}
function get BonusArray() {
return(aBonus);
}
function addHouse(_mcHouse) {
aHouses.push(new com.disney.gem.games.grinding_stomach.sprites.House(this, _mcHouse));
}
function removeHouse(_oHouse) {
aHouses.shift();
_oHouse.__get__Mc().removeMovieClip();
_oHouse.destroy();
}
function get HouseArray() {
return(aHouses);
}
function addSpark(_mcSpark) {
var _local4 = nScoreMultiplier;
var _local3 = 0;
var _local2 = 0;
while (_local2 < com.disney.gem.games.grinding_stomach.GameData.aSCORE_MULTIPLIER.length) {
if (com.disney.gem.games.grinding_stomach.GameData.aSCORE_MULTIPLIER[_local2] == _local4) {
_local3 = _local2 + 1;
break;
}
_local2++;
}
aSpark.push(new com.disney.gem.games.grinding_stomach.sprites.Spark(this, _mcSpark, _local3));
}
function removeSpark(_oSpark) {
aSpark.shift();
_oSpark.__get__Mc().removeMovieClip();
_oSpark.destroy();
}
function get SparkArray() {
return(aSpark);
}
function addObstacle(_mcObstacle, _nObjectType) {
aObstacle.push(new com.disney.gem.games.grinding_stomach.sprites.Obstacle(this, _mcObstacle, _nObjectType));
}
function removeObstacle(_oObstacle) {
aObstacle.shift();
_oObstacle.__get__Mc().removeMovieClip();
_oObstacle.destroy();
}
function get ObstacleArray() {
return(aObstacle);
}
function addGrindable(_mcGrindable, _nGrindableType) {
aGrindable.push(new com.disney.gem.games.grinding_stomach.sprites.Grindable(this, _mcGrindable, _nGrindableType));
}
function removeGrindable(_oGrindable) {
aGrindable.shift();
_oGrindable.__get__Mc().removeMovieClip();
_oGrindable.destroy();
}
function get GrindableArray() {
return(aGrindable);
}
function addParallaxBack(_mcParallax) {
aParallaxBack.push(new com.disney.gem.games.grinding_stomach.sprites.Parallax(this, _mcParallax, 1));
}
function removeParallaxBack(_oParallax) {
aParallaxBack.shift();
_oParallax.__get__Mc().removeMovieClip();
_oParallax.destroy();
}
function get ParallaxBackArray() {
return(aParallaxBack);
}
function addParallaxFront(_mcParallax) {
aParallaxFront.push(new com.disney.gem.games.grinding_stomach.sprites.Parallax(this, _mcParallax, 0));
}
function removeParallaxFront(_oParallax) {
aParallaxFront.shift();
_oParallax.__get__Mc().removeMovieClip();
_oParallax.destroy();
}
function get ParallaxFrontArray() {
return(aParallaxFront);
}
function addCrack(_mcCrack) {
aCrack.push(new com.disney.gem.games.grinding_stomach.sprites.SidewalkCrack(this, _mcCrack));
}
function removeCrack(_oCrack) {
aCrack.shift();
_oCrack.__get__Mc().removeMovieClip();
_oCrack.destroy();
}
function get CrackArray() {
return(aCrack);
}
function addToScore(_nScoreAdded) {
nScore = nScore + (_nScoreAdded * nScoreMultiplier);
setScore();
checkDifficulty();
}
function addCombo() {
nCombo++;
nComboTimer = 0;
setMultiplier();
}
function resetCombo() {
nCombo = 0;
nComboTimer = com.disney.gem.games.grinding_stomach.GameData.nCOMBO_DELAY;
setMultiplier();
}
function get Difficulty() {
return(nDifficulty);
}
function attachSpark(_nX, _nY) {
oSpriteGenerator.attachSpark(_nX, _nY);
}
function get DistanceX() {
return(oCamera.__get__DistanceX());
}
function get DistanceY() {
return(oCamera.__get__DistanceY());
}
function destroy() {
oController.oMainBroadcaster.removeListener(oParallaxGenerator);
oParallaxGenerator.destroy();
delete oParallaxGenerator;
oController.oMainBroadcaster.removeListener(oPlayer);
oPlayer.destroy();
delete oPlayer;
oController.oMainBroadcaster.removeListener(oCamera);
oCamera.destroy();
delete oCamera;
oController.oMainBroadcaster.removeListener(oSpriteGenerator);
oSpriteGenerator.destroy();
delete oSpriteGenerator;
var _local2 = 0;
while (_local2 < aFood.length) {
com.disney.gem.games.grinding_stomach.sprites.Food(aFood[_local2]).destroy();
_local2++;
}
aFood = new Array();
delete aFood;
_local2 = 0;
while (_local2 < aObstacle.length) {
com.disney.gem.games.grinding_stomach.sprites.Obstacle(aObstacle[_local2]).destroy();
_local2++;
}
aObstacle = new Array();
delete aObstacle;
_local2 = 0;
while (_local2 < aGrindable.length) {
com.disney.gem.games.grinding_stomach.sprites.Grindable(aGrindable[_local2]).destroy();
_local2++;
}
aGrindable = new Array();
delete aGrindable;
_local2 = 0;
while (_local2 < aHouses.length) {
com.disney.gem.games.grinding_stomach.sprites.House(aHouses[_local2]).destroy();
_local2++;
}
aHouses = new Array();
delete aHouses;
_local2 = 0;
while (_local2 < aCrack.length) {
com.disney.gem.games.grinding_stomach.sprites.SidewalkCrack(aCrack[_local2]).destroy();
_local2++;
}
aCrack = new Array();
delete aCrack;
_local2 = 0;
while (_local2 < aParallaxFront.length) {
com.disney.gem.games.grinding_stomach.GameSprites(aParallaxFront[_local2]).destroy();
_local2++;
}
aParallaxFront = new Array();
delete aParallaxFront;
_local2 = 0;
while (_local2 < aSpark.length) {
com.disney.gem.games.grinding_stomach.sprites.Spark(aSpark[_local2]).destroy();
_local2++;
}
aSpark = new Array();
delete aSpark;
_local2 = 0;
while (_local2 < aBonus.length) {
com.disney.gem.games.grinding_stomach.sprites.Bonus(aBonus[_local2]).destroy();
_local2++;
}
aBonus = new Array();
delete aBonus;
oController.oMainBroadcaster.removeListener(this);
delete aScoreTextFields;
delete oController;
delete oMusicGame;
delete mcGame;
}
function onUpdate() {
checkComboTimer();
}
function onPause() {
mcGame.mcHud.mcStomach.mcState.mcState.stop();
mcGame.mcHud.mcStomach.mcState.stop();
}
function onUnPause() {
mcGame.mcHud.mcStomach.mcState.mcState.play();
mcGame.mcHud.mcStomach.mcState.play();
}
function onLose() {
if (!bGameEnded) {
bGameEnded = true;
stopGameMusic();
oController.onGameLose();
}
}
function moveX(_nMouvement) {
_nMouvement = Math.round(_nMouvement);
oCamera.moveX(_nMouvement);
oSpriteGenerator.moveX(_nMouvement);
}
function moveY(_nMouvement) {
oCamera.moveY(Math.round(_nMouvement));
}
function resetY() {
oCamera.resetY();
}
function get Score() {
return(nScore);
}
function onBtMenu() {
oController.pause();
oController.disallowInstructions();
oController.showPopup(new com.disney.gem.games.grinding_stomach.popups.MenuPopup(oController.mcTimeline.mcPopups.mcMenu), true);
}
function startGameMusic() {
if (oMusicGame == undefined) {
oMusicGame = com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_MUSIC, com.disney.gem.games.grinding_stomach.GameData.sMUSIC_GAME, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_MUSIC, 9999999);
oMusicGame.doAddListener(this);
}
oMusicGame.doFadeTo(100);
}
function stopGameMusic() {
oMusicGame.doFadeTo(0);
}
function setMultiplier() {
if (nCombo < com.disney.gem.games.grinding_stomach.GameData.aSCORE_MULTIPLIER_TRIGGER[0]) {
nScoreMultiplier = 1;
mcGame.mcHud.mcScoreMultiplier.gotoAndStop(1);
} else {
var _local3 = 0;
var _local2 = 0;
while (_local2 < com.disney.gem.games.grinding_stomach.GameData.aSCORE_MULTIPLIER_TRIGGER.length) {
if (nCombo >= com.disney.gem.games.grinding_stomach.GameData.aSCORE_MULTIPLIER_TRIGGER[_local2]) {
_local3++;
} else if (nCombo < com.disney.gem.games.grinding_stomach.GameData.aSCORE_MULTIPLIER_TRIGGER[_local2]) {
break;
}
_local2++;
}
nScoreMultiplier = com.disney.gem.games.grinding_stomach.GameData.aSCORE_MULTIPLIER[_local3 - 1];
mcGame.mcHud.mcScoreMultiplier.gotoAndStop(_local3 + 1);
}
var _local4 = String(nCombo);
mcGame.mcHud.mcCombo.txtCombo0.text = _local4.charAt(0);
mcGame.mcHud.mcCombo.txtCombo1.text = _local4.charAt(1);
mcGame.mcHud.mcCombo.txtCombo2.text = _local4.charAt(2);
}
function checkComboTimer() {
if (nComboTimer < com.disney.gem.games.grinding_stomach.GameData.nCOMBO_DELAY) {
nComboTimer++;
var _local2 = com.sarbakan.utils.Tools.getFormatedTime(Math.round(((com.disney.gem.games.grinding_stomach.GameData.nCOMBO_DELAY - nComboTimer) / com.disney.gem.games.grinding_stomach.GameData.nSECOND) * 1000), true, false);
mcGame.mcHud.mcTimer.txtCombo0.text = _local2.charAt(1);
mcGame.mcHud.mcTimer.txtCombo1.text = _local2.charAt(3);
mcGame.mcHud.mcTimer.txtCombo2.text = _local2.charAt(4);
} else {
resetCombo();
}
}
function checkDistance() {
mcGame.mcHud.mcScoreHUD.txtDistance.text = Math.round(oCamera.__get__DistanceX());
}
function checkDifficulty() {
if ((nDifficulty < (com.disney.gem.games.grinding_stomach.GameData.aSCORE_DIFFICULTY_TRIGGER.length - 1)) && (nScore >= com.disney.gem.games.grinding_stomach.GameData.aSCORE_DIFFICULTY_TRIGGER[nDifficulty])) {
nDifficulty++;
}
}
function setScore() {
var _local3 = String(nScore);
var _local2 = 0;
while (_local2 < aScoreTextFields.length) {
aScoreTextFields[_local2].text = _local3.charAt(_local2);
_local2++;
}
}
var sSTOMACH_LABEL_NORMAL = "Normal";
var sSTOMACH_LABEL_ALERT = "Alert";
var nSTOMACH_ALERT_LEVEL = 25;
var sPARALLAX_MC = "mcParallax";
var nDEPTH_HUD = 99999;
var nDEPTH_PARALLAX = 5000;
var nDEPTH_PLAYER = 2000;
}
Symbol 872 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.Player] Frame 0
class com.disney.gem.games.grinding_stomach.Player extends com.sarbakan.utils.StateManaged
{
var oController, setState, bKeyPushed, bHeightReached, nSpeed, nGravityForce, nLastSpeedCheck, nFloorHeight, mcRef, nLastStarvationCheck, nSparkAdded, nStomachGauge, nCurrentJumpingState, stateFinished, oGrindingJumped, oGrinding, sState;
function Player (_oController, _mcRef) {
super(_mcRef);
oController = _oController;
setState(sSTATE_IDLE);
bKeyPushed = false;
bHeightReached = true;
nSpeed = 0;
nGravityForce = 0;
nLastSpeedCheck = 0;
nFloorHeight = mcRef._y;
nLastStarvationCheck = 0;
nSparkAdded = com.disney.gem.games.grinding_stomach.GameData.nSPARK_DELAY;
nStomachGauge = com.disney.gem.games.grinding_stomach.GameData.nSTOMACH_START;
nCurrentJumpingState = Math.floor(Math.random() * aSTATE_JUMPING.length);
oController.updateSpeed(0);
oController.updateStomach(nStomachGauge);
}
function destroy() {
delete oController;
}
function onUpdate() {
super.onUpdate();
checkKeys();
checkSpeed();
checkGravity();
checkStarvation();
checkHits();
checkGrinding();
}
function state_JumpStart1() {
state_JumpStart();
}
function state_JumpStart2() {
state_JumpStart();
}
function state_JumpStart3() {
state_JumpStart();
}
function state_JumpStart() {
if (stateFinished()) {
setState(aSTATE_JUMPING[nCurrentJumpingState]);
}
}
function state_Jumping1() {
state_Jumping();
}
function state_Jumping2() {
state_Jumping();
}
function state_Jumping3() {
state_Jumping();
}
function state_Jumping() {
if (stateFinished()) {
setState(aSTATE_JUMPING[nCurrentJumpingState]);
}
}
function state_JumpEnd1() {
state_JumpEnd();
}
function state_JumpEnd2() {
state_JumpEnd();
}
function state_JumpEnd3() {
state_JumpEnd();
}
function state_JumpEnd() {
if (stateFinished()) {
setState(sSTATE_IDLE);
}
}
function state_Push() {
if (stateFinished()) {
setState(sSTATE_IDLE);
}
}
function state_Hungry() {
if (stateFinished()) {
oController.onLose();
mcRef.mcState.stop();
}
}
function state_Falling1() {
state_Falling();
}
function state_Falling2() {
state_Falling();
}
function state_Falling() {
if (stateFinished()) {
setState(sSTATE_IDLE);
}
}
function state_GrindOut() {
if (stateFinished()) {
stopGrindingSound();
if ((mcRef._y + nGravityForce) < nFloorHeight) {
setState(aSTATE_JUMPING[nCurrentJumpingState]);
} else {
setState(sSTATE_IDLE);
}
}
}
function checkKeys() {
if (Key.isDown(String(com.disney.gem.games.grinding_stomach.GameData.sPUSH_KEY).charCodeAt(0))) {
if (!bKeyPushed) {
forwardPumped();
bKeyPushed = true;
}
} else {
bKeyPushed = false;
}
if (Key.isDown(38)) {
jump();
} else if (Key.isDown(40)) {
if (isGrinding()) {
nGravityForce = com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
oGrindingJumped = oGrinding;
oGrinding = undefined;
setState(sSTATE_GRINDING_OUT);
stopGrindingSound();
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_GRINDOUT, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
}
}
function jump() {
if (((!isJumping()) && (isAbleToMove())) && (bHeightReached)) {
if (nSpeed > 0) {
if (isGrinding()) {
stopGrindingSound();
oGrindingJumped = oGrinding;
oGrinding = undefined;
}
nCurrentJumpingState = Math.floor(Math.random() * aSTATE_JUMPING.length);
setState(aSTATE_JUMP_START[nCurrentJumpingState]);
var _local8 = (nSpeed * 100) / com.disney.gem.games.grinding_stomach.GameData.nSPEED_MAX;
var _local7 = (com.disney.gem.games.grinding_stomach.GameData.nJUMP_MAX_HEIGTH * _local8) / 100;
if (_local7 < com.disney.gem.games.grinding_stomach.GameData.nJUMP_MIN_HEIGTH) {
_local7 = com.disney.gem.games.grinding_stomach.GameData.nJUMP_MIN_HEIGTH;
}
var _local6 = mcRef._y - _local7;
var _local5 = 0;
var _local2 = mcRef._y;
var _local4 = com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
var _local3 = false;
while (!_local3) {
_local2 = _local2 - _local4;
_local4 = _local4 + com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
if (_local2 <= _local6) {
_local3 = true;
}
_local5++;
}
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_JUMP, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
nGravityForce = _local5 * com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
bHeightReached = false;
}
}
}
function forwardPumped() {
if (isAbleToMove() && (!isGrinding())) {
var _local2 = com.disney.gem.games.grinding_stomach.GameData.nSPEED_INCREASE * ((nStomachGauge / 100) + com.disney.gem.games.grinding_stomach.GameData.nSPEED_BUFFER);
nSpeed = nSpeed + _local2;
if (nSpeed > com.disney.gem.games.grinding_stomach.GameData.nSPEED_MAX) {
nSpeed = com.disney.gem.games.grinding_stomach.GameData.nSPEED_MAX;
}
var _local3 = Math.round((nSpeed * 100) / com.disney.gem.games.grinding_stomach.GameData.nSPEED_MAX);
oController.updateSpeed(_local3);
if (_local2 > 0) {
if (sState != sSTATE_PUSH) {
setState(sSTATE_PUSH, false, true);
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_PUSH, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
}
}
}
function checkSpeed() {
nLastSpeedCheck++;
if (nLastSpeedCheck >= com.disney.gem.games.grinding_stomach.GameData.nSPEED_DECREASE_DELAY) {
if (isGrinding()) {
if (oGrinding.__get__GrindableType() == -1) {
nSpeed = nSpeed - com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_FRICTION_DESCENDING;
} else if (oGrinding.__get__GrindableType() == 0) {
nSpeed = nSpeed - com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_FRICTION_FLAT;
} else if (oGrinding.__get__GrindableType() == 1) {
nSpeed = nSpeed - com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_FRICTION_ASCENDING;
}
} else {
nSpeed = nSpeed - com.disney.gem.games.grinding_stomach.GameData.nSPEED_DECREASE;
}
if (nSpeed < com.disney.gem.games.grinding_stomach.GameData.nSPEED_MIN) {
nSpeed = com.disney.gem.games.grinding_stomach.GameData.nSPEED_MIN;
if (nStomachGauge == 0) {
if (mcRef._y == nFloorHeight) {
setState(sSTATE_HUNGRY);
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_HUNGRY, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
com.disney.gem.games.grinding_stomach.Controller.getInstance().disallowInstructions();
} else if (isGrinding()) {
nGravityForce = com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
oGrindingJumped = oGrinding;
oGrinding = undefined;
setState(sSTATE_GRINDING_OUT);
stopGrindingSound();
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_GRINDOUT, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
}
}
nLastSpeedCheck = 0;
var _local2 = Math.round((nSpeed * 100) / com.disney.gem.games.grinding_stomach.GameData.nSPEED_MAX);
oController.updateSpeed(_local2);
}
oController.moveX(nSpeed);
}
function checkGravity() {
if (!isGrinding()) {
if (!bHeightReached) {
if ((nGravityForce - com.disney.gem.games.grinding_stomach.GameData.nGRAVITY) > 0) {
if ((mcRef._y - nGravityForce) < com.disney.gem.games.grinding_stomach.GameData.nCAMERA_PLAYER_MAX_HEIGTH) {
oController.moveY(-nGravityForce);
mcRef._y = com.disney.gem.games.grinding_stomach.GameData.nCAMERA_PLAYER_MAX_HEIGTH;
} else {
mcRef._y = mcRef._y - nGravityForce;
}
nGravityForce = nGravityForce - com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
} else {
oGrindingJumped = undefined;
bHeightReached = true;
nGravityForce = com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
}
} else if (nGravityForce > 0) {
if ((oController.__get__DistanceY() + nGravityForce) < 0) {
oController.moveY(nGravityForce);
nGravityForce = nGravityForce + com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
} else {
oController.resetY();
if ((mcRef._y + nGravityForce) <= nFloorHeight) {
mcRef._y = mcRef._y + nGravityForce;
nGravityForce = nGravityForce + com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
} else {
mcRef._y = nFloorHeight;
nGravityForce = 0;
if (sState == aSTATE_JUMPING[nCurrentJumpingState]) {
setState(aSTATE_JUMP_END[nCurrentJumpingState], true, true);
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_LAND, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
}
}
}
}
}
function checkStarvation() {
nLastStarvationCheck++;
if (nLastStarvationCheck >= com.disney.gem.games.grinding_stomach.GameData.nSTOMACH_DECREASE_DELAY) {
nStomachGauge = nStomachGauge - com.disney.gem.games.grinding_stomach.GameData.nSTOMACH_DECREASE;
if (nStomachGauge < 0) {
nStomachGauge = 0;
}
nLastStarvationCheck = 0;
oController.updateStomach(nStomachGauge);
}
}
function checkHits() {
var _local16 = oController.__get__FoodArray();
var _local9 = 0;
while (_local9 < _local16.length) {
var _local4 = _local16[_local9];
if (_local4.isEdible()) {
if (hitBounds(_local4.__get__Mc().getBounds(oController.__get__stageRef()))) {
_local4.hit();
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.aSOUND_FOOD[_local4.__get__FoodType()], com.disney.gem.games.grinding_stomach.GameData.aSOUND_FOOD_VOL[_local4.__get__FoodType()]);
restoreHunger();
oController.addToScore(com.disney.gem.games.grinding_stomach.GameData.nSCORE_FOOD);
}
}
_local9++;
}
var _local17 = oController.__get__BonusArray();
_local9 = 0;
while (_local9 < _local17.length) {
var _local7 = _local17[_local9];
if (_local7.isReady()) {
if (hitBounds(_local7.__get__Mc().getBounds(oController.__get__stageRef()))) {
_local7.hit();
var _local12 = Math.floor(Math.random() * com.disney.gem.games.grinding_stomach.GameData.aSOUND_BONUS.length);
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.aSOUND_BONUS[_local12], com.disney.gem.games.grinding_stomach.GameData.aSOUND_BONUS_VOL[_local12]);
oController.addToScore(_local7.__get__Worth());
}
}
_local9++;
}
if (!isGrinding()) {
var _local18 = oController.__get__ObstacleArray();
_local9 = 0;
while (_local9 < _local18.length) {
var _local5 = _local18[_local9];
if (!_local5.isBroken()) {
if (hitDistance(_local5) <= com.disney.gem.games.grinding_stomach.GameData.nHIT_THRESHOLD) {
_local5.hit();
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.aSOUND_HIT[_local5.__get__ObjectType()], com.disney.gem.games.grinding_stomach.GameData.aSOUND_HIT_VOL[_local5.__get__ObjectType()]);
bHeightReached = true;
var _local14 = Math.floor(Math.random() * aSTATE_FALLING.length);
setState(aSTATE_FALLING[_local14]);
if (com.disney.gem.games.grinding_stomach.GameData.bCOMBO_RESET_ON_FALLING) {
oController.resetCombo();
}
}
}
_local9++;
}
}
if ((!isGrinding()) && (bHeightReached)) {
var _local15 = oController.__get__GrindableArray();
_local9 = 0;
while (_local9 < _local15.length) {
var _local3 = _local15[_local9];
if ((_local3 != oGrinding) && (_local3 != oGrindingJumped)) {
if (hitBounds(_local3.__get__Mc().mcState.getBounds(oController.__get__stageRef()))) {
var _local11 = _local3.__get__ContactPoint();
var _local6 = new flash.geom.Point(0, 0);
var _local2 = new flash.geom.Point(0, 0);
MovieClip(_local11[0]).localToGlobal(_local6);
MovieClip(_local11[1]).localToGlobal(_local2);
oController.__get__stageRef().globalToLocal(_local6);
oController.__get__stageRef().globalToLocal(_local2);
var _local8 = (_local2.y - _local6.y) / (_local2.x - _local6.x);
var _local10 = _local2.y - (_local8 * _local2.x);
var _local19 = (_local8 * _local6.x) + _local10;
var _local13 = (_local8 * mcRef._x) + _local10;
if (Math.abs(_local13 - mcRef._y) <= com.disney.gem.games.grinding_stomach.GameData.nHIT_THRESHOLD_GRIND) {
oGrinding = _local3;
bHeightReached = true;
nGravityForce = 0;
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_GRIND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_GRIND_VOL, 99999);
oController.addCombo();
if (oGrinding.__get__GrindableType() == -1) {
setState(sSTATE_GRINDING_DOWN);
} else if (oGrinding.__get__GrindableType() == 0) {
setState(sSTATE_GRINDING_FLAT);
} else if (oGrinding.__get__GrindableType() == 1) {
setState(sSTATE_GRINDING_UP);
}
}
}
}
_local9++;
}
}
}
function checkGrinding() {
if (oGrinding != undefined) {
if (nSpeed > 0) {
var _local8 = oGrinding.__get__ContactPoint();
var _local3 = new flash.geom.Point(0, 0);
var _local2 = new flash.geom.Point(0, 0);
MovieClip(_local8[0]).localToGlobal(_local3);
MovieClip(_local8[1]).localToGlobal(_local2);
oController.__get__stageRef().globalToLocal(_local3);
oController.__get__stageRef().globalToLocal(_local2);
var _local5 = (_local2.y - _local3.y) / (_local2.x - _local3.x);
var _local7 = _local2.y - (_local5 * _local2.x);
var _local10 = (_local5 * _local3.x) + _local7;
var _local9 = (_local5 * mcRef._x) + _local7;
var _local4 = mcRef._y - _local9;
if (mcRef._x <= _local2.x) {
if ((mcRef._y - _local4) < nFloorHeight) {
if ((mcRef._y - _local4) < com.disney.gem.games.grinding_stomach.GameData.nCAMERA_PLAYER_MAX_HEIGTH) {
oController.moveY(-_local4);
} else {
mcRef._y = mcRef._y - _local4;
}
} else {
mcRef._y = nFloorHeight;
}
} else {
oGrindingJumped = oGrinding;
oGrinding = undefined;
setState(sSTATE_GRINDING_OUT, true, true);
nSparkAdded = com.disney.gem.games.grinding_stomach.GameData.nSPARK_DELAY;
nGravityForce = com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
stopGrindingSound();
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_GRINDOUT, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
oController.addToScore(com.disney.gem.games.grinding_stomach.GameData.nSCORE_GRIND);
nSparkAdded++;
if (nSparkAdded >= com.disney.gem.games.grinding_stomach.GameData.nSPARK_DELAY) {
var _local6 = new flash.geom.Point(0, 0);
mcRef.localToGlobal(_local6);
oController.attachSpark(_local6.x, _local6.y);
nSparkAdded = 0;
}
} else {
nGravityForce = com.disney.gem.games.grinding_stomach.GameData.nGRAVITY;
oGrindingJumped = oGrinding;
oGrinding = undefined;
setState(sSTATE_GRINDING_OUT);
stopGrindingSound();
com.sarbakan.sound.SoundManager.doPlaySoundInCat(com.disney.gem.games.grinding_stomach.Controller.sSOUND_CAT_SOUND, com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_GRINDOUT, com.disney.gem.games.grinding_stomach.GameData.nSOUND_VOLUME_SOUND);
}
}
}
function hitDistance(_oSprite) {
var _local3 = new flash.geom.Point(0, 0);
_oSprite.__get__Mc().localToGlobal(_local3);
oController.__get__stageRef().globalToLocal(_local3);
var _local2 = new flash.geom.Point(0, 0);
mcRef.localToGlobal(_local2);
oController.__get__stageRef().globalToLocal(_local2);
var _local7 = _local3.x;
var _local5 = _local2.x;
var _local6 = _local3.y;
var _local4 = _local2.y;
var _local8 = Math.sqrt(((_local5 - _local7) * (_local5 - _local7)) + ((_local4 - _local6) * (_local4 - _local6)));
return(_local8);
}
function hitBounds(_oBounds) {
var _local4 = false;
var _local2 = mcRef.getBounds(oController.__get__stageRef());
if ((_oBounds.xMin < _local2.xMax) && (_oBounds.xMax > _local2.xMin)) {
if ((_oBounds.yMin < _local2.yMax) && (_oBounds.yMax > _local2.yMin)) {
_local4 = true;
}
}
return(_local4);
}
function restoreHunger() {
nStomachGauge = nStomachGauge + com.disney.gem.games.grinding_stomach.GameData.nSTOMACH_INCREASE;
if (nStomachGauge > sSTOMACH_MAX) {
nStomachGauge = sSTOMACH_MAX;
}
oController.updateStomach(nStomachGauge);
}
function isGrinding() {
var _local2 = false;
if (((sState == sSTATE_GRINDING_UP) || (sState == sSTATE_GRINDING_FLAT)) || (sState == sSTATE_GRINDING_DOWN)) {
_local2 = true;
}
return(_local2);
}
function isJumping() {
var _local3 = false;
var _local2 = 0;
while (_local2 < aSTATE_JUMP_START.length) {
if (sState == aSTATE_JUMP_START[_local2]) {
_local3 = true;
break;
}
if (sState == aSTATE_JUMPING[_local2]) {
_local3 = true;
break;
}
if (sState == aSTATE_JUMP_END[_local2]) {
_local3 = true;
break;
}
if (sState == sSTATE_GRINDING_OUT) {
_local3 = true;
break;
}
_local2++;
}
return(_local3);
}
function isAbleToMove() {
var _local2 = true;
if (((isJumping() || (sState == sSTATE_HUNGRY)) || (sState == aSTATE_FALLING[0])) || (sState == aSTATE_FALLING[1])) {
_local2 = false;
}
return(_local2);
}
function stopGrindingSound() {
var _local1 = com.sarbakan.sound.SoundManager.isSoundPlaying(com.disney.gem.games.grinding_stomach.GameData.sSOUND_PLAYER_GRIND);
if (_local1.bPlaying) {
com.sarbakan.sound.SoundItem(_local1.oSound).doStop();
}
}
var sSTATE_IDLE = "Idle";
var sSTATE_SKATING = "Skating";
var sSTATE_PUSH = "Push";
var aSTATE_FALLING = ["Falling1", "Falling2"];
var sSTATE_HUNGRY = "Hungry";
var aSTATE_JUMP_START = ["JumpStart1", "JumpStart2", "JumpStart3"];
var aSTATE_JUMPING = ["Jumping1", "Jumping2", "Jumping3"];
var aSTATE_JUMP_END = ["JumpEnd1", "JumpEnd2", "JumpEnd3"];
var sSTATE_GRINDING_FLAT = "GrindingFlat";
var sSTATE_GRINDING_UP = "GrindingUp";
var sSTATE_GRINDING_DOWN = "GrindingDown";
var sSTATE_GRINDING_OUT = "GrindOut";
var sSTOMACH_MAX = 100;
}
Symbol 873 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.GameSprites] Frame 0
class com.disney.gem.games.grinding_stomach.GameSprites extends com.sarbakan.utils.StateManaged
{
var oController, mcRef, nLastPosCheck;
function GameSprites (_oController, _mcRef) {
super(_mcRef);
oController = _oController;
com.disney.gem.games.grinding_stomach.Controller.getInstance().oMainBroadcaster.addListener(this);
}
function get GlobalHitCoords() {
var _local2 = {x:0, y:0};
mcRef.mcState.mcHit.localToGlobal(_local2);
return(_local2);
}
function hit() {
}
function destroy() {
super.destroy();
com.disney.gem.games.grinding_stomach.Controller.getInstance().oMainBroadcaster.removeListener(this);
delete oController;
}
function onUpdate() {
super.onUpdate();
checkPosition();
}
function checkPosition() {
if (nLastPosCheck >= nPOS_CHECK_DELAY) {
var _local2 = new flash.geom.Point(0, 0);
mcRef.localToGlobal(_local2);
if ((_local2.x + mcRef._width) < 0) {
removeObject();
}
nLastPosCheck = 0;
}
nLastPosCheck++;
}
function removeObject() {
}
static var nPOS_CHECK_DELAY = 5;
}
Symbol 874 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.Grindable] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.Grindable extends com.disney.gem.games.grinding_stomach.GameSprites
{
var nGrindableType, setState, mcRef, oController;
function Grindable (_oController, _mcRef, _nGrindableType) {
super(_oController, _mcRef);
nGrindableType = _nGrindableType;
setState(sSTATE_IDLE, true, true);
mcRef.mcState.mcExit0._visible = false;
mcRef.mcState.mcExit1._visible = false;
}
function get GrindableType() {
return(nGrindableType);
}
function get ContactPoint() {
var _local2 = [mcRef.mcState.mcExit0, mcRef.mcState.mcExit1];
return(_local2);
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
}
function removeObject() {
oController.removeGrindable(this);
}
static var sSTATE_IDLE = "Idle";
}
Symbol 875 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.GameData] Frame 0
class com.disney.gem.games.grinding_stomach.GameData
{
function GameData () {
}
static var nSECOND = 30;
static var nMINUTE = 60 * nSECOND;
static var nSTAGE_WIDTH = 580;
static var nSTAGE_HEIGHT = 410;
static var nHIT_THRESHOLD = 30;
static var nHIT_THRESHOLD_GRIND = 30;
static var nSPARK_DELAY = 1;
static var nSIDEWALK_STEPS = 200;
static var nPARALLAX_STEPS_FRONT = 1250;
static var nPARALLAX_STEPS_BACK = 900;
static var nPARALLAX_SPEED_FRONT = 1.5;
static var nPARALLAX_SPEED_BACK = 0.5;
static var nSIDEWALK_Y_ATTACH = 265;
static var nCAMERA_PLAYER_MAX_HEIGTH = 130;
static var sPUSH_KEY = "B";
static var nGRAVITY = 3;
static var nJUMP_MAX_HEIGTH = 275;
static var nJUMP_MIN_HEIGTH = 100;
static var nSPEED_INCREASE = 3.25;
static var nSPEED_BUFFER = 0.025;
static var nSPEED_MAX = 22;
static var nSPEED_MIN = 0;
static var nSPEED_DECREASE_DELAY = 1 * nSECOND;
static var nSPEED_DECREASE = 2;
static var nSTOMACH_DECREASE_DELAY = 1.5 * nSECOND;
static var nSTOMACH_DECREASE = 20;
static var nSTOMACH_INCREASE = 100;
static var nSTOMACH_START = 100;
static var nSCORE_GRIND = 10;
static var nSCORE_FOOD = 100;
static var aBONUS_POINTS = [500, 400, 300, 200, 100];
static var nCOMBO_DELAY = 5 * nSECOND;
static var bCOMBO_RESET_ON_FALLING = false;
static var aSCORE_MULTIPLIER_TRIGGER = [6, 12, 18];
static var aSCORE_MULTIPLIER = [2, 3, 4];
static var aSCORE_DIFFICULTY_TRIGGER = [15000, 25000, 35000, 45000, 55000];
static var aSCORE_FLAVOR_TEXT = [0, 9999, 19999, 29999, 39999, 50001];
static var nHOUSE_RANDOM_DISTANCE = 300;
static var nFOOD_MIN_DISTANCE = 1000;
static var nFOOD_DISTANCE_INCREASE = 300;
static var nDISTANCE_FOOD_FROM_OBSTACLE = 200;
static var nOBSTACLE_MIN_DISTANCE = 1000;
static var nOBSTACLE_CHANCE = 30;
static var nOBSTACLE_CHANCES_INCREMENT = 10;
static var nOBSTACLE_DISTANCE_DECREASE = 350;
static var nOBSTACLE_Y_COORD = 300;
static var nGRINDABLE_FRICTION_FLAT = 1;
static var nGRINDABLE_FRICTION_ASCENDING = 1.15;
static var nGRINDABLE_FRICTION_DESCENDING = -1;
static var nGRINDABLE_COMBO_CHANCE = 90;
static var nGRINDABLE_DELAY_STARTING = 100;
static var nGRINDABLE_DELAY_SERIES = 10;
static var nGRINDABLE_Y_POS = 266;
static var nBONUS_DISTANCE = 2000;
static var nBONUS_CHANCE = 100;
static var nSOUND_VOLUME_SOUND = 100;
static var nSOUND_VOLUME_MUSIC = 60;
static var sMUSIC_PACK = "MusicPack.wav";
static var sMUSIC_GAME = "MusicGame.wav";
static var sSOUND_CLICK = "Button_Click.wav";
static var sSOUND_ROLL = "Button_Roll.wav";
static var sSOUND_TRANSITION = "Transition.wav";
static var aSOUND_BONUS = ["Bonus_Collect_0.wav", "Bonus_Collect_1.wav", "Bonus_Collect_2.wav", "Bonus_Collect_3.wav"];
static var aSOUND_BONUS_VOL = [150, 110, 70, 110];
static var aSOUND_HIT = ["Hit_Tree.wav", "Hit_Fire_Hydrant.wav", "Hit_Mailbox.wav"];
static var aSOUND_HIT_VOL = [120, 65, 70];
static var aSOUND_FOOD = ["Food_Munch.wav", "Food_Munch.wav", "Food_Drink.wav"];
static var aSOUND_FOOD_VOL = [150, 150, 150];
static var sSOUND_PLAYER_PUSH = "Player_Pushing.wav";
static var sSOUND_PLAYER_GRIND = "Skating_Grinding.wav";
static var sSOUND_PLAYER_GRIND_VOL = 70;
static var sSOUND_PLAYER_GRINDOUT = "Skating_Grinding_Out.wav";
static var sSOUND_PLAYER_JUMP = "Skating_Jump.wav";
static var sSOUND_PLAYER_LAND = "Skating_Landing.wav";
static var sSOUND_PLAYER_ROLL = "Skating_Roll.wav";
static var sSOUND_PLAYER_HUNGRY = "Player_Hungry.wav";
static var aSOUND_STARS = ["StarsStageOne.wav", "StarsStageTwo.wav", "StarsStageThree.wav", "StarsStageFour.wav"];
}
Symbol 876 MovieClip [__Packages.com.sarbakan.sound.SoundManager] Frame 0
class com.sarbakan.sound.SoundManager
{
static var aSounds, mcAttach, nSoundNum, aSoundCategories, nMasterVolume, oEnterFrameListener;
function SoundManager () {
}
static function doPlaySound(_sLinkage, _nVolume, _nLoop, _bUnique) {
return(doPlaySoundInCat(sDEFAULT_CATEGORY, _sLinkage, _nVolume, _nLoop, _bUnique));
}
static function doPlaySoundInCat(_sCategoryName, _sLinkage, _nVolume, _nLoop, _bUnique) {
doCheckInit();
var _local1;
if (NewSoundAllowed) {
if (_nVolume == undefined) {
_nVolume = 100;
}
if (_nLoop == undefined) {
_nLoop = 1;
}
if (_bUnique == undefined) {
_bUnique = false;
}
var _local2;
if (_bUnique) {
var _local4 = isSoundPlaying(_sLinkage);
if (_local4.bPlaying) {
_local2 = false;
_local1 = _local4.oSound;
} else {
_local2 = true;
}
} else {
_local2 = true;
}
if (_local2) {
doManageCategory(_sCategoryName);
var _local5 = getMCForSound();
var _local3 = new Sound(_local5);
_local3.attachSound(_sLinkage);
if (_local3.duration != undefined) {
_local1 = new com.sarbakan.sound.SoundItem(_local3, _sLinkage, _nVolume, _nLoop, _sCategoryName, _local5);
} else {
trace("**** BAD SOUND LINKAGE : " + _sLinkage);
}
_local1.doAddListener(com.sarbakan.sound.SoundManager);
aSounds.push(_local1);
}
} else {
trace("ERROR - ***** - MAX SOUND NUM REACHED : " + nMAX_SOUNDS_PLAYING);
}
return(_local1);
}
static function isSoundPlaying(_sLinkageName) {
var _local2 = new Object();
_local2.bPlaying = false;
_local2.oSound = undefined;
var _local1 = aSounds.length - 1;
while (_local1 >= 0) {
if (aSounds[_local1].LinkageName == _sLinkageName) {
_local2.oSound = aSounds[_local1];
_local2.bPlaying = true;
}
_local1--;
}
return(_local2);
}
function getPlayingQty(_sLinkageName) {
var _local2 = 0;
var _local1 = aSounds.length - 1;
while (_local1 >= 0) {
if (aSounds[_local1].LinkageName == _sLinkageName) {
_local2++;
}
_local1--;
}
return(_local2);
}
static function doManageExternalSound(_oSound) {
doCheckInit();
doManageCategory(_oSound.__get__Category());
_oSound.doAddListener(com.sarbakan.sound.SoundManager);
aSounds.push(_oSound);
}
static function getMCForSound() {
var _local1 = getNextDepth();
var _local2 = mcAttach.createEmptyMovieClip("Snd" + _local1, _local1);
return(_local2);
}
static function getNextDepth() {
nSoundNum++;
return(nSoundNum);
}
static function doInit(_mcAttach) {
if (!bInited) {
mcAttach = _mcAttach;
bInited = true;
nSoundNum = 0;
aSounds = new Array();
aSoundCategories = new Array();
nMasterVolume = 100;
mx.transitions.OnEnterFrameBeacon.init();
oEnterFrameListener = new Object();
oEnterFrameListener.onEnterFrame = com.sarbakan.utils.Delegate.create(com.sarbakan.sound.SoundManager, doEnterFrame);
MovieClip.addListener(oEnterFrameListener);
}
}
static function doEnterFrame() {
var _local1 = aSounds.length - 1;
while (_local1 >= 0) {
aSounds[_local1].doEnterFrame();
_local1--;
}
}
static function setCategoryVolume(_sCategoryName, _nVol) {
doManageCategory(_sCategoryName);
var _local1 = aSoundCategories.length - 1;
while (_local1 >= 0) {
if (aSoundCategories[_local1].sName == _sCategoryName) {
aSoundCategories[_local1].nVolume = _nVol;
}
_local1--;
}
doUpdateAllSoundsVolume();
}
static function getCategoryVolume(_sCategoryName) {
doManageCategory(_sCategoryName);
var _local2;
var _local1 = aSoundCategories.length - 1;
while (_local1 >= 0) {
if (aSoundCategories[_local1].sName == _sCategoryName) {
_local2 = aSoundCategories[_local1].nVolume;
}
_local1--;
}
return(_local2);
}
static function isCategoryMuted(_sCategoryName) {
doManageCategory(_sCategoryName);
var _local2;
var _local1 = aSoundCategories.length - 1;
while (_local1 >= 0) {
if (aSoundCategories[_local1].sName == _sCategoryName) {
_local2 = aSoundCategories[_local1].bMuted;
}
_local1--;
}
return(_local2);
}
static function doSoundEvent(_nEvent, _oSound) {
if (!(_nEvent === nEVENT_SOUND_COMPLETE)) {
} else {
var _local2 = false;
var _local1 = aSounds.length - 1;
while (_local1 >= 0) {
if (!_local2) {
if (aSounds[_local1] == _oSound) {
_local2 = true;
delete aSounds[_local1];
aSounds.splice(Number(_local1), 1);
}
}
_local1--;
}
}
}
static function doMuteCategory(_sCategoryName) {
var _local1 = aSoundCategories.length - 1;
while (_local1 >= 0) {
if (aSoundCategories[_local1].sName == _sCategoryName) {
aSoundCategories[_local1].bMuted = true;
}
_local1--;
}
doUpdateAllSoundsVolume();
}
static function doUnMuteCategory(_sCategoryName) {
var _local1 = aSoundCategories.length - 1;
while (_local1 >= 0) {
if (aSoundCategories[_local1].sName == _sCategoryName) {
aSoundCategories[_local1].bMuted = false;
}
_local1--;
}
doUpdateAllSoundsVolume();
}
static function setMasterVolume(_nVol) {
nMasterVolume = _nVol;
doUpdateAllSoundsVolume();
}
static function get NewSoundAllowed() {
return(aSounds.length < nMAX_SOUNDS_PLAYING);
}
static function get MasterVolume() {
return(nMasterVolume);
}
static function doRemoveListenerFromAllSounds(_oListener) {
var _local1 = aSounds.length - 1;
while (_local1 >= 0) {
aSounds[_local1].doRemoveListener(_oListener);
_local1--;
}
}
static function doDestroy() {
doRemoveListenerFromAllSounds();
var _local1 = aSounds.length - 1;
while (_local1 >= 0) {
aSounds[_local1].doDestroy();
_local1--;
}
mcAttach.removeMovieClip();
delete mcAttach;
nSoundNum = 0;
bInited = false;
nMasterVolume = 100;
delete aSounds;
delete aSoundCategories;
delete oEnterFrameListener;
}
static function get Inited() {
return(bInited);
}
static function doUpdateAllSoundsVolume() {
var _local1 = aSounds.length - 1;
while (_local1 >= 0) {
aSounds[_local1].doUpdateSound();
_local1--;
}
}
static function doCheckInit() {
if (!bInited) {
trace("**** NORMAL SM ERROR, NEED TO INIT SOUND MANAGER FIRST");
}
}
static function doManageCategory(_sCategoryName) {
doCheckInit();
var _local2 = false;
var _local1 = aSoundCategories.length - 1;
while (_local1 >= 0) {
if (aSoundCategories[_local1].sName == _sCategoryName) {
_local2 = true;
}
_local1--;
}
if (!_local2) {
var _local4 = new Object();
_local4.sName = _sCategoryName;
_local4.nVolume = 100;
_local4.bMuted = false;
aSoundCategories.push(_local4);
}
}
static var nEVENT_SOUND_COMPLETE = 1;
static var sDEFAULT_CATEGORY = "SFX";
static var nMAX_SOUNDS_PLAYING = 32;
static var bInited = false;
}
Symbol 877 MovieClip [__Packages.com.sarbakan.sound.SoundItem] Frame 0
class com.sarbakan.sound.SoundItem
{
var sndObj, sLinkage, mcRef, nRemainingLoop, nCurrentVolume, nTargetVolume, nFadeRate, sCategory, bFadeAtEnd, bMuted, bPaused, bNeedFreshStart, nCurrentTime, aEventListeners, bStopAfterFade;
function SoundItem (_sndObject, _sLinkage, _nVolume, _nLoop, _sCategory, _mc) {
sndObj = _sndObject;
sLinkage = _sLinkage;
mcRef = _mc;
nRemainingLoop = _nLoop;
nCurrentVolume = _nVolume;
nTargetVolume = _nVolume;
nFadeRate = nFADE_RATE;
sCategory = _sCategory;
bFadeAtEnd = false;
bMuted = false;
bPaused = false;
bNeedFreshStart = false;
sndObj.onSoundComplete = com.sarbakan.utils.Delegate.create(this, doSoundComplete);
doStart(_nLoop);
sndObj.setVolume(returnComputedVolume(nCurrentVolume));
nCurrentTime = 0;
aEventListeners = new Array();
}
function doEnterFrame() {
if (!bPaused) {
if (nCurrentTime > sndObj.position) {
nRemainingLoop--;
}
nCurrentTime = sndObj.position;
}
doCheckFadeAtEnd();
doManageFade();
}
function doAddListener(_oListener) {
aEventListeners.push(_oListener);
}
function doRemoveListener(_oListener) {
var _local2 = 0;
while (_local2 < aEventListeners.length) {
if (aEventListeners[_local2] == _oListener) {
delete aEventListeners[_local2];
aEventListeners.splice(_local2, 1);
}
_local2++;
}
}
function doSoundComplete() {
if (bNeedFreshStart && (nRemainingLoop > 1)) {
sndObj.start(0, nRemainingLoop - 1);
} else {
doManageEndEvent();
}
}
function doUpdateSound() {
sndObj.setVolume(returnComputedVolume(nCurrentVolume));
}
function doMute() {
bMuted = true;
doUpdateSound();
}
function doUnMute() {
bMuted = false;
doUpdateSound();
}
function doPause() {
sndObj.stop();
bPaused = true;
}
function doResume() {
bPaused = false;
bNeedFreshStart = true;
sndObj.start(nCurrentTime / 1000, 1);
}
function doStart(_nLoop) {
if (_nLoop == undefined) {
_nLoop = 1;
}
if (sLinkage.indexOf(".mp3") != -1) {
sndObj.start(0.015, _nLoop);
} else {
sndObj.start(0, _nLoop);
}
}
function doStop() {
sndObj.stop();
doManageEndEvent();
}
function doFadeTo(_nVolume, _bStopAndDelete) {
if (_bStopAndDelete == undefined) {
_bStopAndDelete = true;
}
bStopAfterFade = _bStopAndDelete;
nTargetVolume = _nVolume;
}
function setFadeRate(_nRate) {
if (_nRate == undefined) {
_nRate = nFADE_RATE;
}
nFadeRate = _nRate;
}
function setFadeAtEnd(_bFadeAtEnd) {
bFadeAtEnd = true;
}
function setPan(_nPan) {
sndObj.setPan(_nPan);
}
function get Category() {
return(sCategory);
}
function get LinkageName() {
return(sLinkage);
}
function doDestroy() {
sndObj.stop();
delete sndObj;
mcRef.removeMovieClip();
}
function doCheckFadeAtEnd() {
if (bFadeAtEnd) {
if (nRemainingLoop == 1) {
if ((sndObj.duration - nCurrentTime) <= nFADE_AT_END_TIME) {
doFadeTo(0);
}
}
}
}
function doManageEndEvent() {
var _local2 = 0;
while (_local2 < aEventListeners.length) {
aEventListeners[_local2].doSoundEvent(com.sarbakan.sound.SoundManager.nEVENT_SOUND_COMPLETE, this);
_local2++;
}
aEventListeners = new Array();
mcRef.removeMovieClip();
delete mcRef;
delete aEventListeners;
delete sndObj.onSoundComplete;
delete sndObj;
}
function doManageFade() {
if (nCurrentVolume != nTargetVolume) {
nCurrentVolume = com.sarbakan.utils.MoreMath.getReachNum(nCurrentVolume, nTargetVolume, nFadeRate);
sndObj.setVolume(returnComputedVolume(nCurrentVolume));
}
if ((nCurrentVolume <= 0) && (bStopAfterFade)) {
sndObj.stop();
doManageEndEvent();
}
}
function returnComputedVolume(_nVolume) {
var _local2;
if ((!bMuted) && (!com.sarbakan.sound.SoundManager.isCategoryMuted(sCategory))) {
var _local3 = com.sarbakan.sound.SoundManager.__get__MasterVolume() / 100;
var _local4 = com.sarbakan.sound.SoundManager.getCategoryVolume(sCategory) / 100;
_local2 = _nVolume;
_local2 = _local2 * _local4;
_local2 = _local2 * _local3;
} else {
_local2 = 0;
}
return(_local2);
}
static var nFADE_RATE = 8;
static var nFADE_AT_END_TIME = 800;
}
Symbol 878 MovieClip [__Packages.com.sarbakan.utils.MoreMath] Frame 0
class com.sarbakan.utils.MoreMath
{
function MoreMath () {
}
static function getRandomRange(__nMin, __nMax) {
return(Math.floor(Math.random() * ((__nMax + 1) - __nMin)) + __nMin);
}
static function getPolarity(__nNum) {
var _local1 = 0;
if (__nNum < 0) {
_local1 = -1;
} else if (__nNum > 0) {
_local1 = 1;
}
return(_local1);
}
static function getReachZero(__nNum, __nReducer) {
return(getReachNum(__nNum, 0, __nReducer));
}
static function getReachNum(__nNum, __nTargetNum, __nReducer) {
var _local1 = __nNum;
if (_local1 != __nTargetNum) {
if (_local1 < __nTargetNum) {
_local1 = _local1 + __nReducer;
if (_local1 > __nTargetNum) {
_local1 = __nTargetNum;
}
} else {
_local1 = _local1 - __nReducer;
if (_local1 < __nTargetNum) {
_local1 = __nTargetNum;
}
}
}
return(_local1);
}
static function getDistance(__nX1, __nY1, __nX2, __nY2) {
return(Math.sqrt(Math.pow(Math.abs(__nX2 - __nX1), 2) + Math.pow(Math.abs(__nY2 - __nY1), 2)));
}
static function getManhattanDistance(_x1, _y1, _x2, _y2) {
return(Math.abs(_x1 - _x2) + Math.abs(_y1 - _y2));
}
static function getHypotenuse(__nDX, __nDY) {
return(Math.sqrt(Math.pow(__nDX, 2) + Math.pow(__nDY, 2)));
}
static function getAngle(__nX1, __nY1, __nX2, __nY2) {
var _local2;
var _local1;
var _local4;
var _local3;
_local2 = __nX2 - __nX1;
_local1 = __nY2 - __nY1;
_local4 = Math.atan2(_local1, _local2);
_local3 = getDegreeFromRadius(_local4);
return(_local3);
}
static function getCleanedAngle(_nAngle) {
while (_nAngle < 360) {
_nAngle = _nAngle + 360;
}
_nAngle = _nAngle % 360;
return(_nAngle);
}
static function getDegreeFromRadius(__nRadius) {
var _local1 = (__nRadius / MATH_PI) * 180;
return(_local1);
}
static function getRadianFromDegree(__nDegree) {
var _local1 = __nDegree * (MATH_PI / 180);
return(_local1);
}
static function getBoundsCenter(_oBox) {
var _local3 = (_oBox.xMin + _oBox.xMax) / 2;
var _local2 = (_oBox.yMin + _oBox.yMax) / 2;
return({x:_local3, y:_local2});
}
static var MATH_PI = Math.PI;
}
Symbol 879 MovieClip [__Packages.mx.transitions.OnEnterFrameBeacon] Frame 0
class mx.transitions.OnEnterFrameBeacon
{
function OnEnterFrameBeacon () {
}
static function init() {
var _local4 = _global.MovieClip;
if (!_root.__OnEnterFrameBeacon) {
mx.transitions.BroadcasterMX.initialize(_local4);
var _local3 = _root.createEmptyMovieClip("__OnEnterFrameBeacon", 9876);
_local3.onEnterFrame = function () {
_global.MovieClip.broadcastMessage("onEnterFrame");
};
}
}
static var version = "1.1.0.52";
}
Symbol 880 MovieClip [__Packages.mx.transitions.BroadcasterMX] Frame 0
class mx.transitions.BroadcasterMX
{
var _listeners;
function BroadcasterMX () {
}
static function initialize(o, dontCreateArray) {
if (o.broadcastMessage != undefined) {
delete o.broadcastMessage;
}
o.addListener = mx.transitions.BroadcasterMX.prototype.addListener;
o.removeListener = mx.transitions.BroadcasterMX.prototype.removeListener;
if (!dontCreateArray) {
o._listeners = new Array();
}
}
function addListener(o) {
removeListener(o);
if (broadcastMessage == undefined) {
broadcastMessage = mx.transitions.BroadcasterMX.prototype.broadcastMessage;
}
return(_listeners.push(o));
}
function removeListener(o) {
var _local2 = _listeners;
var _local3 = _local2.length;
while (_local3--) {
if (_local2[_local3] == o) {
_local2.splice(_local3, 1);
if (!_local2.length) {
broadcastMessage = undefined;
}
return(true);
}
}
return(false);
}
function broadcastMessage() {
var _local5 = String(arguments.shift());
var _local4 = _listeners.concat();
var _local6 = _local4.length;
var _local3 = 0;
while (_local3 < _local6) {
_local4[_local3][_local5].apply(_local4[_local3], arguments);
_local3++;
}
}
static var version = "1.1.0.52";
}
Symbol 881 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.Food] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.Food extends com.disney.gem.games.grinding_stomach.GameSprites
{
var setState, nFoodType, sState, mcRef, stateFinished, oController;
function Food (_oController, _mcRef, _nFoodType) {
super(_oController, _mcRef);
setState(sSTATE_IDLE, true, true);
nFoodType = _nFoodType;
}
function hit() {
setState(sSTATE_DISAPPEAR);
}
function isEdible() {
var _local2 = false;
if (sState == sSTATE_IDLE) {
_local2 = true;
}
return(_local2);
}
function get FoodType() {
return(nFoodType);
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
}
function state_Idle_init() {
mcRef.mcState.mcHit._visible = false;
}
function state_Disappear() {
if (stateFinished()) {
oController.removeFood(this);
}
}
function removeObject() {
oController.removeFood(this);
}
static var sSTATE_IDLE = "Idle";
static var sSTATE_DISAPPEAR = "Disappear";
}
Symbol 882 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.Bonus] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.Bonus extends com.disney.gem.games.grinding_stomach.GameSprites
{
var setState, nWorth, sState, stateFinished, oController, mcRef;
function Bonus (_oController, _mcRef, _nWorth) {
super(_oController, _mcRef);
setState(sSTATE_IDLE, true, true);
nWorth = _nWorth;
}
function hit() {
setState(sSTATE_DISAPPEAR);
}
function isReady() {
var _local2 = false;
if (sState == sSTATE_IDLE) {
_local2 = true;
}
return(_local2);
}
function get Worth() {
return(nWorth);
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
}
function state_Idle() {
updateWorth();
}
function state_Disappear() {
if (stateFinished()) {
oController.removeBonus(this);
} else {
updateWorth();
}
}
function removeObject() {
oController.removeBonus(this);
}
function updateWorth() {
mcRef.mcState.mcContent.txtScore.text = nWorth;
}
static var sSTATE_IDLE = "Idle";
static var sSTATE_DISAPPEAR = "Disappear";
}
Symbol 883 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.Obstacle] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.Obstacle extends com.disney.gem.games.grinding_stomach.GameSprites
{
var setState, nObjectType, bHit, sState, mcRef, stateFinished, oController;
function Obstacle (_oController, _mcRef, _nObjectType) {
super(_oController, _mcRef);
setState(sSTATE_IDLE, true, true);
nObjectType = _nObjectType;
bHit = false;
}
function hit() {
setState(sSTATE_HIT);
bHit = true;
}
function isBroken() {
var _local2 = false;
if ((sState == sSTATE_HIT) || (bHit)) {
_local2 = true;
}
return(_local2);
}
function get ObjectType() {
return(nObjectType);
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
}
function state_Idle_init() {
mcRef.mcState.mcHit._visible = false;
}
function state_Hit() {
if (stateFinished()) {
setState(sSTATE_IDLE);
}
}
function removeObject() {
oController.removeObstacle(this);
}
static var sSTATE_IDLE = "Idle";
static var sSTATE_HIT = "Hit";
}
Symbol 884 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.GameCamera] Frame 0
class com.disney.gem.games.grinding_stomach.GameCamera
{
static var oController, mcRef, nDistanceX, nDistanceY;
var aActiveElements, nOriginY, mcBackTrees;
function GameCamera (_oController, _mcRef) {
oController = _oController;
mcRef = _mcRef;
aActiveElements = new Array();
aActiveElements.push(oController.__get__BonusArray(), oController.__get__CrackArray(), oController.__get__FoodArray(), oController.__get__SparkArray());
aActiveElements.push(oController.__get__GrindableArray(), oController.__get__HouseArray(), oController.__get__ObstacleArray());
nDistanceX = 0;
nDistanceY = 0;
nOriginY = mcRef._y;
mcBackTrees = mcRef.mcBackTrees;
}
function onUpdate() {
}
function moveX(_nMove) {
var _local3 = 0;
while (_local3 < aActiveElements.length) {
var _local2 = 0;
while (_local2 < aActiveElements[_local3].length) {
com.disney.gem.games.grinding_stomach.GameSprites(aActiveElements[_local3][_local2]).__get__Mc()._x = com.disney.gem.games.grinding_stomach.GameSprites(aActiveElements[_local3][_local2]).__get__Mc()._x - _nMove;
_local2++;
}
_local3++;
}
_local3 = 0;
while (_local3 < oController.__get__ParallaxFrontArray().length) {
com.disney.gem.games.grinding_stomach.GameSprites(oController.__get__ParallaxFrontArray()[_local3]).__get__Mc()._x = com.disney.gem.games.grinding_stomach.GameSprites(oController.__get__ParallaxFrontArray()[_local3]).__get__Mc()._x - (_nMove * com.disney.gem.games.grinding_stomach.GameData.nPARALLAX_SPEED_FRONT);
_local3++;
}
_local3 = 0;
while (_local3 < oController.__get__ParallaxBackArray().length) {
com.disney.gem.games.grinding_stomach.GameSprites(oController.__get__ParallaxBackArray()[_local3]).__get__Mc()._x = com.disney.gem.games.grinding_stomach.GameSprites(oController.__get__ParallaxBackArray()[_local3]).__get__Mc()._x - (_nMove * com.disney.gem.games.grinding_stomach.GameData.nPARALLAX_SPEED_BACK);
_local3++;
}
nDistanceX = nDistanceX + _nMove;
}
function moveY(_nMove) {
mcRef._y = mcRef._y - _nMove;
nDistanceY = nDistanceY + _nMove;
var _local1 = 0;
while (_local1 < oController.__get__ParallaxFrontArray().length) {
com.disney.gem.games.grinding_stomach.GameSprites(oController.__get__ParallaxFrontArray()[_local1]).__get__Mc()._y = com.disney.gem.games.grinding_stomach.GameSprites(oController.__get__ParallaxFrontArray()[_local1]).__get__Mc()._y - _nMove;
_local1++;
}
}
function resetY() {
mcRef._y = nOriginY;
nDistanceY = 0;
}
function get DistanceX() {
return(nDistanceX);
}
function get DistanceY() {
return(nDistanceY);
}
function destroy() {
aActiveElements = new Array();
delete aActiveElements;
delete oController;
delete mcRef;
}
}
Symbol 885 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.SpriteGenerator] Frame 0
class com.disney.gem.games.grinding_stomach.SpriteGenerator
{
var oController, mcRef, nAttach, nLastCrack, nBonusDistance, nCurrentPlatform, nObstacleDistance, nGrindableDistance, nFoodDistance, nHouseDistance, nPlatformModifier;
function SpriteGenerator (_oController, _mcRef) {
oController = _oController;
mcRef = _mcRef;
nAttach = 0;
nLastCrack = 0;
nBonusDistance = 0;
nCurrentPlatform = 0;
nObstacleDistance = 0;
nGrindableDistance = 0;
nFoodDistance = com.disney.gem.games.grinding_stomach.GameData.nFOOD_MIN_DISTANCE;
var _local2 = 0;
while (_local2 < aSTARTING_CRACKS.length) {
attachCrack(aSTARTING_CRACKS[_local2], com.disney.gem.games.grinding_stomach.GameData.nSIDEWALK_Y_ATTACH);
_local2++;
}
}
function onUpdate() {
checkGrindableAdd();
checkObstacleAdd();
checkFoodAdd();
checkCrackAdd();
checkBonusAdd();
}
function moveX(_nMouvementX) {
nFoodDistance = nFoodDistance + _nMouvementX;
nBonusDistance = nBonusDistance + _nMouvementX;
nHouseDistance = nHouseDistance + _nMouvementX;
nObstacleDistance = nObstacleDistance + _nMouvementX;
nGrindableDistance = nGrindableDistance + _nMouvementX;
}
function attachSpark(_nX, _nY) {
var _local2 = new flash.geom.Point(_nX, _nY);
mcRef.globalToLocal(_local2);
var _local3 = mcRef.attachMovie(sSPARK_LINKAGE, sSPARK_LINKAGE + nAttach, nAttach + nDEPTH_SPARK);
var _local5 = _local2.x - nSPARK_RANDOM_SPACE;
var _local7 = _local2.x + nSPARK_RANDOM_SPACE;
var _local4 = _local2.y - nSPARK_RANDOM_SPACE;
var _local6 = _local2.y + nSPARK_RANDOM_SPACE;
_local3._x = Math.floor(Math.random() * ((_local7 - _local5) + 1)) + _local5;
_local3._y = Math.floor(Math.random() * ((_local6 - _local4) + 1)) + _local4;
oController.addSpark(_local3);
nAttach++;
}
function attachCrack(_nX, _nY) {
var _local2 = mcRef.attachMovie(sCRACK_LINKAGE, sCRACK_LINKAGE + nAttach, nAttach + nDEPTH_CRACK);
_local2._x = _nX;
_local2._y = _nY;
oController.addCrack(_local2);
nAttach++;
}
function destroy() {
delete oController;
delete mcRef;
}
function spawnHouse() {
if (nHouseDistance >= 0) {
var _local4 = Math.floor(Math.random() * com.disney.gem.games.grinding_stomach.GameData.nHOUSE_RANDOM_DISTANCE);
var _local3 = Math.floor(Math.random() * aHOUSE_LINKAGE.length);
var _local2 = mcRef.attachMovie(aHOUSE_LINKAGE[_local3], aHOUSE_LINKAGE[_local3] + nAttach, nAttach + nDEPTH_GRINDABLE);
_local2._x = (com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH + (_local2._width / 2)) + _local4;
_local2._y = com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_Y_POS;
nAttach++;
nHouseDistance = (com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH + _local2._width) * -1;
oController.addHouse(_local2);
}
}
function spawnFood() {
var _local4 = Math.floor(Math.random() * aFOOD_LINKAGE.length);
var _local2 = mcRef.attachMovie(aFOOD_LINKAGE[_local4], aFOOD_LINKAGE[_local4] + nAttach, nAttach + nDEPTH_FOOD);
_local2._x = com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH + (_local2._width / 2);
_local2._y = Math.floor(Math.random() * ((aOBJECT_POS[1] - aOBJECT_POS[0]) + 1)) + aOBJECT_POS[0];
var _local3 = oController.__get__ObstacleArray()[oController.__get__ObstacleArray().length - 1];
if (_local3 != undefined) {
var _local8 = _local2._x;
var _local6 = _local3.__get__Mc()._x;
var _local7 = _local2._y;
var _local5 = _local3.__get__Mc()._y;
var _local9 = Math.sqrt(((_local6 - _local8) * (_local6 - _local8)) + ((_local5 - _local7) * (_local5 - _local7)));
if (_local9 <= com.disney.gem.games.grinding_stomach.GameData.nDISTANCE_FOOD_FROM_OBSTACLE) {
_local2._x = (com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH + (_local2._width / 2)) + _local3.__get__Mc()._width;
}
}
nAttach++;
oController.addFood(_local2, _local4);
}
function spawnBonus() {
var _local2 = mcRef.attachMovie(sBONUS_LINKAGE, sBONUS_LINKAGE + nAttach, nAttach + nDEPTH_FOOD);
_local2._x = com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH + (_local2._width / 2);
_local2._y = Math.floor(Math.random() * ((aOBJECT_POS[1] - aOBJECT_POS[0]) + 1)) + aOBJECT_POS[0];
nAttach++;
oController.addBonus(_local2);
}
function spawnObstacle() {
var _local4 = Math.floor(Math.random() * 100);
if (_local4 < com.disney.gem.games.grinding_stomach.GameData.nOBSTACLE_CHANCE) {
var _local3 = Math.floor(Math.random() * aOBSTACLE_LINKAGE.length);
var _local2 = mcRef.attachMovie(aOBSTACLE_LINKAGE[_local3], aOBSTACLE_LINKAGE[_local3] + nAttach, nAttach + nDEPTH_OBSTACLES);
_local2._x = com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH + (_local2._width / 2);
_local2._y = com.disney.gem.games.grinding_stomach.GameData.nOBSTACLE_Y_COORD;
nAttach++;
oController.addObstacle(_local2, _local3);
}
}
function getGrindableType() {
var _local3 = Math.floor(Math.random() * aALL_GRINDABLE[nCurrentPlatform].length);
var _local4 = aALL_GRINDABLE[nCurrentPlatform][_local3];
var _local2;
switch (_local4) {
case nGRINDABLE_LINKAGE_FLOOR_FLAT :
spawnHouse();
_local2 = sGRINDABLE_LINKAGE_FLOOR_FLAT;
nPlatformModifier = 0;
break;
case nGRINDABLE_LINKAGE_FLOOR_UP :
_local2 = sGRINDABLE_LINKAGE_FLOOR_UP;
nPlatformModifier = 1;
break;
case nGRINDABLE_LINKAGE_SECOND_FLAT :
var _local5 = [sGRINDABLE_LINKAGE_2ND_FLAT_0, sGRINDABLE_LINKAGE_2ND_FLAT_1, sGRINDABLE_LINKAGE_2ND_FLAT_2];
_local2 = getRandomFromArray(_local5);
nPlatformModifier = 0;
break;
case nGRINDABLE_LINKAGE_SECOND_UP :
_local5 = [sGRINDABLE_LINKAGE_2ND_UP_0, sGRINDABLE_LINKAGE_2ND_UP_1, sGRINDABLE_LINKAGE_2ND_UP_2, sGRINDABLE_LINKAGE_2ND_UP_3, sGRINDABLE_LINKAGE_2ND_UP_4, sGRINDABLE_LINKAGE_2ND_UP_5];
_local2 = getRandomFromArray(_local5);
nPlatformModifier = 1;
break;
case nGRINDABLE_LINKAGE_THIRD_FLAT :
_local2 = sGRINDABLE_LINKAGE_3RD_FLAT;
nPlatformModifier = 0;
break;
case nGRINDABLE_LINKAGE_THIRD_DOWN :
_local5 = [sGRINDABLE_LINKAGE_3RD_DOWN_0, sGRINDABLE_LINKAGE_3RD_DOWN_1, sGRINDABLE_LINKAGE_3RD_DOWN_2, sGRINDABLE_LINKAGE_3RD_DOWN_3, sGRINDABLE_LINKAGE_3RD_DOWN_4, sGRINDABLE_LINKAGE_3RD_DOWN_5];
_local2 = getRandomFromArray(_local5);
nPlatformModifier = -1;
}
return(_local2);
}
function spawnGrindable(_sLinkage) {
var _local2 = mcRef.attachMovie(_sLinkage, _sLinkage + nAttach, nAttach + nDEPTH_GRINDABLE);
_local2._x = com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH + (_local2._width / 2);
_local2._y = com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_Y_POS;
nAttach++;
nCurrentPlatform = nCurrentPlatform + nPlatformModifier;
oController.addGrindable(_local2, nPlatformModifier);
nGrindableDistance = (_local2._width + com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_DELAY_SERIES) * -1;
}
function checkFoodAdd() {
if (oController.__get__Difficulty() > 0) {
if (nFoodDistance >= ((oController.__get__Difficulty() * com.disney.gem.games.grinding_stomach.GameData.nFOOD_DISTANCE_INCREASE) + com.disney.gem.games.grinding_stomach.GameData.nFOOD_MIN_DISTANCE)) {
spawnFood();
nFoodDistance = 0;
}
} else if (nFoodDistance >= com.disney.gem.games.grinding_stomach.GameData.nFOOD_MIN_DISTANCE) {
spawnFood();
nFoodDistance = 0;
}
}
function checkBonusAdd() {
if (nBonusDistance >= com.disney.gem.games.grinding_stomach.GameData.nBONUS_DISTANCE) {
var _local2 = Math.floor(Math.random() * 100);
if (_local2 <= com.disney.gem.games.grinding_stomach.GameData.nBONUS_CHANCE) {
spawnBonus();
}
nBonusDistance = 0;
}
}
function checkObstacleAdd() {
if (oController.__get__Difficulty() > 0) {
if (nObstacleDistance >= ((oController.__get__Difficulty() * com.disney.gem.games.grinding_stomach.GameData.nOBSTACLE_DISTANCE_DECREASE) + com.disney.gem.games.grinding_stomach.GameData.nOBSTACLE_MIN_DISTANCE)) {
spawnObstacle();
nObstacleDistance = 0;
}
} else if (nObstacleDistance >= com.disney.gem.games.grinding_stomach.GameData.nOBSTACLE_MIN_DISTANCE) {
spawnObstacle();
nObstacleDistance = 0;
}
}
function checkGrindableAdd() {
if (nGrindableDistance >= 0) {
var _local2 = Math.floor(Math.random() * 100);
if (_local2 <= com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_COMBO_CHANCE) {
spawnGrindable(getGrindableType());
} else {
nCurrentPlatform = 0;
nGrindableDistance = nGrindableDistance - com.disney.gem.games.grinding_stomach.GameData.nGRINDABLE_DELAY_STARTING;
}
}
}
function checkCrackAdd() {
if (oController.__get__DistanceX() >= (nLastCrack + com.disney.gem.games.grinding_stomach.GameData.nSIDEWALK_STEPS)) {
attachCrack(com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH, com.disney.gem.games.grinding_stomach.GameData.nSIDEWALK_Y_ATTACH);
nLastCrack = oController.DistanceX;
}
}
function getRandomFromArray(_aArray) {
var _local1 = Math.floor(Math.random() * _aArray.length);
return(_aArray[_local1]);
}
static var aOBSTACLE_LINKAGE = ["mcObstacle1", "mcObstacle2", "mcObstacle3"];
static var aHOUSE_LINKAGE = ["mcHouse1", "mcHouse2", "mcHouse3", "mcHouse4", "mcHouse5", "mcHouse6", "mcHouse7"];
static var nGRINDABLE_LINKAGE_FLOOR_FLAT = 0;
static var nGRINDABLE_LINKAGE_FLOOR_UP = 1;
static var nGRINDABLE_LINKAGE_SECOND_FLAT = 2;
static var nGRINDABLE_LINKAGE_SECOND_UP = 3;
static var nGRINDABLE_LINKAGE_THIRD_FLAT = 4;
static var nGRINDABLE_LINKAGE_THIRD_DOWN = 5;
static var aALL_GRINDABLE = [[nGRINDABLE_LINKAGE_FLOOR_FLAT, nGRINDABLE_LINKAGE_FLOOR_UP], [nGRINDABLE_LINKAGE_SECOND_FLAT, nGRINDABLE_LINKAGE_SECOND_UP], [nGRINDABLE_LINKAGE_THIRD_FLAT, nGRINDABLE_LINKAGE_THIRD_DOWN]];
static var sGRINDABLE_LINKAGE_FLOOR_FLAT = "mcGrindableFlatFloor";
static var sGRINDABLE_LINKAGE_FLOOR_UP = "mcGrindableUpFloor";
static var sGRINDABLE_LINKAGE_2ND_FLAT_0 = "mcGrindableFlatSecond0";
static var sGRINDABLE_LINKAGE_2ND_FLAT_1 = "mcGrindableFlatSecond1";
static var sGRINDABLE_LINKAGE_2ND_FLAT_2 = "mcGrindableFlatSecond2";
static var sGRINDABLE_LINKAGE_2ND_UP_0 = "mcGrindableUpSecond0";
static var sGRINDABLE_LINKAGE_2ND_UP_1 = "mcGrindableUpSecond1";
static var sGRINDABLE_LINKAGE_2ND_UP_2 = "mcGrindableUpSecond2";
static var sGRINDABLE_LINKAGE_2ND_UP_3 = "mcGrindableUpSecond3";
static var sGRINDABLE_LINKAGE_2ND_UP_4 = "mcGrindableUpSecond4";
static var sGRINDABLE_LINKAGE_2ND_UP_5 = "mcGrindableUpSecond5";
static var sGRINDABLE_LINKAGE_3RD_FLAT = "mcGrindableFlatThird";
static var sGRINDABLE_LINKAGE_3RD_DOWN_0 = "mcGrindableDownThird0";
static var sGRINDABLE_LINKAGE_3RD_DOWN_1 = "mcGrindableDownThird1";
static var sGRINDABLE_LINKAGE_3RD_DOWN_2 = "mcGrindableDownThird2";
static var sGRINDABLE_LINKAGE_3RD_DOWN_3 = "mcGrindableDownThird3";
static var sGRINDABLE_LINKAGE_3RD_DOWN_4 = "mcGrindableDownThird4";
static var sGRINDABLE_LINKAGE_3RD_DOWN_5 = "mcGrindableDownThird5";
static var aFOOD_LINKAGE = ["mcFood1", "mcFood2", "mcFood3"];
static var sSPARK_LINKAGE = "mcStars";
static var sCRACK_LINKAGE = "mcCrack";
static var sBONUS_LINKAGE = "mcBonus";
static var nDEPTH_CRACK = 10000;
static var nDEPTH_GRINDABLE = 20000;
static var nDEPTH_OBSTACLES = 30000;
static var nDEPTH_SPARK = 40000;
static var nDEPTH_FOOD = 50000;
static var nSPARK_RANDOM_SPACE = 20;
static var aOBJECT_POS = [70, 250];
static var aSTARTING_CRACKS = [170, 370, 570];
}
Symbol 886 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.ParallaxGenerator] Frame 0
class com.disney.gem.games.grinding_stomach.ParallaxGenerator
{
var oController, mcRefFront, mcRefBack, nAttach, nLastParallaxFront, nLastParallaxBack;
function ParallaxGenerator (_oController, _mcRefFront, _mcRefBack) {
oController = _oController;
mcRefFront = _mcRefFront;
mcRefBack = _mcRefBack;
nAttach = 0;
nLastParallaxFront = 0;
nLastParallaxBack = 0;
}
function onUpdate() {
checkParallaxAdd();
}
function attachParallaxFront(_nX, _nY) {
var _local3 = Math.floor(Math.random() * aPARALAX_OBJECTS_FRONT.length);
var _local2 = mcRefFront._parent.attachMovie(aPARALAX_OBJECTS_FRONT[_local3], aPARALAX_OBJECTS_FRONT[_local3] + nAttach, nAttach + nDEPTH_PARALLAX_FRONT);
_local2._x = _nX + _local2._width;
_local2._y = _nY - oController.__get__DistanceY();
oController.addParallaxFront(_local2);
nAttach++;
}
function attachParallaxBack(_nX, _nY) {
var _local3 = Math.floor(Math.random() * aPARALAX_OBJECTS_BACK.length);
var _local2 = mcRefBack.attachMovie(aPARALAX_OBJECTS_BACK[_local3], aPARALAX_OBJECTS_BACK[_local3] + nAttach, nAttach + nDEPTH_PARALLAX_BACK);
_local2._x = _nX + _local2._width;
_local2._y = _nY;
oController.addParallaxBack(_local2);
nAttach++;
}
function destroy() {
aPARALAX_OBJECTS_FRONT = new Array();
aPARALAX_OBJECTS_BACK = new Array();
delete aPARALAX_OBJECTS_FRONT;
delete aPARALAX_OBJECTS_FRONT;
delete oController;
delete mcRefFront;
delete mcRefBack;
}
function checkParallaxAdd() {
if (oController.__get__DistanceX() >= (nLastParallaxFront + com.disney.gem.games.grinding_stomach.GameData.nPARALLAX_STEPS_FRONT)) {
attachParallaxFront(com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH, nY_COORD);
nLastParallaxFront = oController.DistanceX;
}
if (oController.__get__DistanceX() >= (nLastParallaxBack + com.disney.gem.games.grinding_stomach.GameData.nPARALLAX_STEPS_BACK)) {
attachParallaxBack(com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH, 0);
nLastParallaxBack = oController.DistanceX;
}
}
static var aPARALAX_OBJECTS_FRONT = ["mcTree0", "mcTree2", "mcTree3", "mcLight0", "mcLight1", "mcLight2"];
static var aPARALAX_OBJECTS_BACK = ["mcPark0", "mcPark1", "mcPark2"];
static var nDEPTH_PARALLAX_FRONT = 10000;
static var nDEPTH_PARALLAX_BACK = 100;
static var nY_COORD = 350;
}
Symbol 887 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.popups.InstructPopup] Frame 0
class com.disney.gem.games.grinding_stomach.popups.InstructPopup extends com.sarbakan.utils.ScreenController
{
var bClosed, hide, oController;
function InstructPopup (_mcRef) {
super(_mcRef);
bClosed = false;
}
function onUpdate() {
super.onUpdate();
if (!bClosed) {
checkKeys();
}
}
function onBtB() {
hide();
bClosed = true;
com.disney.gem.games.grinding_stomach.Controller(oController).unpause();
com.disney.gem.games.grinding_stomach.Controller(oController).allowInstructions();
}
function state_in_init() {
super.state_in_init();
}
function state_idle_init() {
super.state_idle_init();
}
function state_out_init() {
super.state_out_init();
}
function checkKeys() {
if (Key.isDown(String("B").charCodeAt(0))) {
onBtB();
}
}
}
Symbol 888 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.House] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.House extends com.disney.gem.games.grinding_stomach.GameSprites
{
var setState, oController;
function House (_oController, _mcRef) {
super(_oController, _mcRef);
setState(sSTATE_IDLE, true, true);
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
}
function removeObject() {
oController.removeHouse(this);
}
static var sSTATE_IDLE = "Idle";
}
Symbol 889 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.Spark] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.Spark extends com.disney.gem.games.grinding_stomach.GameSprites
{
var setState, stateFinished, oController;
function Spark (_oController, _mcRef, _nStage) {
super(_oController, _mcRef);
setState(aLABEL_STAGES[_nStage], true, true);
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
}
function state_StageOne() {
state_Stage();
}
function state_StageTwo() {
state_Stage();
}
function state_StageThree() {
state_Stage();
}
function state_StageFour() {
state_Stage();
}
function state_Stage() {
if (stateFinished()) {
oController.removeSpark(this);
}
}
function removeObject() {
oController.removeSpark(this);
}
static var aLABEL_STAGES = ["StageOne", "StageTwo", "StageThree", "StageFour"];
}
Symbol 890 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.Parallax] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.Parallax extends com.disney.gem.games.grinding_stomach.GameSprites
{
var setState, nParallaxType, oController;
function Parallax (_oController, _mcRef, _nType) {
super(_oController, _mcRef);
setState(sSTATE_IDLE, true, true);
nParallaxType = _nType;
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
}
function removeObject() {
if (nParallaxType == 0) {
oController.removeParallaxFront(this);
} else {
oController.removeParallaxBack(this);
}
}
static var sSTATE_IDLE = "Idle";
}
Symbol 891 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.sprites.SidewalkCrack] Frame 0
class com.disney.gem.games.grinding_stomach.sprites.SidewalkCrack extends com.disney.gem.games.grinding_stomach.GameSprites
{
var mcRef, oController;
function SidewalkCrack (_oController, _mcRef) {
super(_oController, _mcRef);
}
function destroy() {
super.destroy();
}
function onUpdate() {
super.onUpdate();
checkPosition();
}
function checkPosition() {
var _local2 = new flash.geom.Point(0, 0);
mcRef.localToGlobal(_local2);
oController.__get__stageRef().globalToLocal(_local2);
if ((_local2.x + mcRef._width) < 0) {
removeObject();
}
var _local3 = (_local2.x * 100) / com.disney.gem.games.grinding_stomach.GameData.nSTAGE_WIDTH;
var _local4 = Math.round(mcRef._totalframes - ((mcRef._totalframes * _local3) / 100));
mcRef.gotoAndStop(_local4);
}
function removeObject() {
oController.removeCrack(this);
}
}
Symbol 892 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.popups.MenuPopup] Frame 0
class com.disney.gem.games.grinding_stomach.popups.MenuPopup extends com.sarbakan.utils.ScreenController
{
var oController, hide, mcRef;
function MenuPopup (_mcRef) {
super(_mcRef);
}
function onBtSound() {
com.disney.gem.games.grinding_stomach.Controller(oController).toggleSound();
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
updateSoundGroup();
}
function onBtHelp() {
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
com.disney.gem.games.grinding_stomach.Controller(oController).allowInstructions();
com.disney.gem.games.grinding_stomach.Controller(oController).showInstructions();
hide(null, true);
}
function onBtQuit() {
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
com.disney.gem.games.grinding_stomach.Controller(oController).showPopup(new com.disney.gem.games.grinding_stomach.popups.ConfirmPopup(com.disney.gem.games.grinding_stomach.Controller(oController).mcTimeline.mcPopups.mcConfirm, this), true);
}
function onBtResume() {
com.disney.gem.games.grinding_stomach.Controller(oController).allowInstructions();
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
com.disney.gem.games.grinding_stomach.Controller(oController).unpause();
hide();
}
function state_in_init() {
super.state_in_init();
setBts();
}
function state_idle_init() {
super.state_idle_init();
setBts();
}
function state_idle() {
updateSoundGroup();
}
function state_out_init() {
super.state_out_init();
setBts();
}
function setBts() {
mcRef.mcState.mcContent.btHelp.onRelease = com.sarbakan.utils.Delegate.create(this, onBtHelp);
mcRef.mcState.mcContent.btRestart.onRelease = com.sarbakan.utils.Delegate.create(this, onBtQuit);
mcRef.mcState.mcContent.btResume.onRelease = com.sarbakan.utils.Delegate.create(this, onBtResume);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btHelp);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btRestart);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btResume);
updateSoundGroup();
}
function updateSoundGroup() {
var _local2 = sLABEL_SOUND_ON;
if (com.disney.gem.games.grinding_stomach.Controller(oController).bSoundMuted) {
_local2 = sLABEL_SOUND_OFF;
}
mcRef.mcState.mcContent.mcSoundToggle.gotoAndStop(_local2);
mcRef.mcState.mcContent.mcSoundToggle.btSound.onRelease = com.sarbakan.utils.Delegate.create(this, onBtSound);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.mcSoundToggle.btSound);
}
var sLABEL_SOUND_ON = "On";
var sLABEL_SOUND_OFF = "Off";
}
Symbol 893 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.popups.ConfirmPopup] Frame 0
class com.disney.gem.games.grinding_stomach.popups.ConfirmPopup extends com.sarbakan.utils.ScreenController
{
var oMenuOrigin, hide, oController, mcRef;
function ConfirmPopup (_mcRef, _oMenuOrigin) {
super(_mcRef);
oMenuOrigin = _oMenuOrigin;
}
function onBtNo() {
hide();
}
function onBtYes() {
hide();
com.disney.gem.games.grinding_stomach.Controller(oController).allowInstructions();
com.disney.gem.games.grinding_stomach.Controller(oController).onGameLose();
oMenuOrigin.hide();
}
function state_in_init() {
super.state_in_init();
setBts();
}
function state_idle_init() {
super.state_idle_init();
setBts();
}
function state_out_init() {
super.state_out_init();
setBts();
}
function setBts() {
mcRef.mcState.mcContent.btYes.onRelease = com.sarbakan.utils.Delegate.create(this, onBtYes);
mcRef.mcState.mcContent.btNo.onRelease = com.sarbakan.utils.Delegate.create(this, onBtNo);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btYes);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btNo);
}
}
Symbol 894 MovieClip [__Packages.com.sarbakan.utils.Tools] Frame 0
class com.sarbakan.utils.Tools
{
function Tools () {
}
static function isItemInArray(_aArray, _oItem) {
var _local3 = false;
var _local1 = _aArray.length - 1;
while (_local1 >= 0) {
if (_aArray[_local1] == _oItem) {
_local3 = true;
}
_local1--;
}
return(_local3);
}
static function doCopyArray(_aArraySource) {
var _local3 = new Array();
var _local1 = 0;
_local1 = 0;
while (_local1 < _aArraySource.length) {
if (_aArraySource[_local1] instanceof Array) {
_local3.push(doCopyArray(_aArraySource[_local1]));
} else {
_local3.push(_aArraySource[_local1]);
}
_local1++;
}
return(_local3);
}
static function getFormatedNumber(_nNumber, _nMinimumChar) {
return(returnFormatedNumber(_nNumber, _nMinimumChar));
}
static function returnFormatedNumber(_nNumber, _nMinimumChar) {
var _local1 = String(_nNumber);
while (_local1.length < _nMinimumChar) {
_local1 = "0" + _local1;
}
var _local3 = new Array();
var _local6 = _local1.length - 1;
var _local2;
_local2 = 0;
while (_local2 <= _local6) {
var _local5 = _local1.charAt(_local2);
_local3.push(_local5);
_local2++;
}
_local1 = "";
var _local4 = 0;
_local2 = _local3.length - 1;
while (_local2 >= 0) {
if (((_local4 % 3) == 0) && (_local4 != 0)) {
_local1 = "," + _local1;
}
_local1 = _local3[_local2] + _local1;
_local4++;
_local2--;
}
return(_local1);
}
static function getFormatedTime(_nTime, _bIncludeMilliseconds, _bShowMinutes) {
if (_bIncludeMilliseconds == undefined) {
_bIncludeMilliseconds = false;
}
if (_bShowMinutes == undefined) {
_bShowMinutes = true;
}
var _local6 = false;
if (_nTime < 0) {
_local6 = true;
_nTime = Math.abs(_nTime);
}
var _local4 = Math.floor(_nTime / 1000);
var _local3;
if (_bIncludeMilliseconds) {
var _local5;
if (_nTime >= 1000) {
_local5 = _nTime % (_local4 * 1000);
} else {
_local5 = _nTime;
}
_local3 = String(_local5).substr(0, 2);
if (_local3.length <= 1) {
_local3 = "0" + _local3;
}
}
var _local7 = Math.floor(_local4 / 60);
var _local8 = Math.floor(_local4 % 60);
var _local11 = "";
var _local9 = "";
if (_local8 < 10) {
_local9 = "0";
}
if (_local7 < 10) {
_local11 = "0";
}
var _local1 = "";
if (_bShowMinutes) {
_local1 = _local1 + String((_local11 + _local7) + ":");
}
_local1 = _local1 + (_local9 + _local8);
if (_bIncludeMilliseconds) {
_local1 = _local1 + (":" + _local3);
}
if (_local6) {
_local1 = "-" + _local1;
}
return(_local1);
}
static function getTrimmedString(_sStr) {
while (_sStr.charAt(0) == " ") {
_sStr = _sStr.substring(1, _sStr.length);
}
while (_sStr.charAt(_sStr.length - 1) == " ") {
_sStr = _sStr.substring(0, _sStr.length - 1);
}
return(_sStr);
}
}
Symbol 895 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.screens.TitleScreen] Frame 0
class com.disney.gem.games.grinding_stomach.screens.TitleScreen extends com.sarbakan.utils.ScreenController
{
var oController, mcRef;
function TitleScreen (_mcRef) {
super(_mcRef);
}
function onBtHelp() {
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
com.disney.gem.games.grinding_stomach.Controller(oController).showInstructions();
}
function onBtPlay() {
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
com.disney.gem.games.grinding_stomach.Controller(oController).startNewGame();
}
function onBtHighScore() {
com.disney.gem.games.grinding_stomach.Controller(oController).showHighScoreListScreen();
}
function state_idle_init() {
super.state_idle_init();
mcRef.mcState.mcContent.btHelp.onRelease = com.sarbakan.utils.Delegate.create(this, onBtHelp);
mcRef.mcState.mcContent.btPlay.onRelease = com.sarbakan.utils.Delegate.create(this, onBtPlay);
mcRef.mcState.mcContent.btHighScore.onRelease = com.sarbakan.utils.Delegate.create(this, onBtHighScore);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btPlay);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btHelp);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btHighScore);
}
}
Symbol 896 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.screens.HelpScreen] Frame 0
class com.disney.gem.games.grinding_stomach.screens.HelpScreen extends com.sarbakan.utils.ScreenController
{
var mcRef, oController;
function HelpScreen (_mcRef) {
super(_mcRef);
}
function showNextScreen() {
mcRef.mcState.mcContent.nextFrame();
updateButtons();
}
function showPreviousScreen() {
mcRef.mcState.mcContent.prevFrame();
updateButtons();
}
function onBtPlay() {
com.disney.gem.games.grinding_stomach.Controller(oController).allowInstructions();
com.disney.gem.games.grinding_stomach.Controller(oController).hideInstructions();
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
if (com.disney.gem.games.grinding_stomach.Controller(oController).nGamePhase == com.sarbakan.BaseDisneyController.nGAME_PHASE_PACKAGING) {
com.disney.gem.games.grinding_stomach.Controller(oController).startNewGame();
}
}
function onBtBack() {
com.disney.gem.games.grinding_stomach.Controller.getInstance().oTransitionManager.playTransition(com.disney.gem.games.grinding_stomach.Controller.sTRANSITION_DEFAULT, com.sarbakan.utils.Delegate.create(this, showPreviousScreen));
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
com.disney.gem.games.grinding_stomach.Controller(oController).playTransitionSound();
}
function onBtNext() {
com.disney.gem.games.grinding_stomach.Controller.getInstance().oTransitionManager.playTransition(com.disney.gem.games.grinding_stomach.Controller.sTRANSITION_DEFAULT, com.sarbakan.utils.Delegate.create(this, showNextScreen));
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
com.disney.gem.games.grinding_stomach.Controller(oController).playTransitionSound();
}
function state_idle_init() {
super.state_idle_init();
updateButtons();
}
function updateButtons() {
mcRef.mcState.mcContent.btPlay.onRelease = com.sarbakan.utils.Delegate.create(this, onBtPlay);
mcRef.mcState.mcContent.btNext.onRelease = com.sarbakan.utils.Delegate.create(this, onBtNext);
mcRef.mcState.mcContent.btBack.onRelease = com.sarbakan.utils.Delegate.create(this, onBtBack);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btPlay);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btBack);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btNext);
mcRef.mcState.mcContent.mcStomach.stop();
mcRef.mcState.mcContent.mcStomach.mcState.mcState.mcState.stop();
}
}
Symbol 897 MovieClip [__Packages.com.disney.gem.games.grinding_stomach.screens.EndScreen] Frame 0
class com.disney.gem.games.grinding_stomach.screens.EndScreen extends com.sarbakan.utils.ScreenController
{
var oController, mcRef;
function EndScreen (_mcRef) {
super(_mcRef);
}
function onBtPlay() {
com.disney.gem.games.grinding_stomach.Controller(oController).showTitleScreen(true);
com.disney.gem.games.grinding_stomach.Controller(oController).playClickSound();
}
function state_idle_init() {
super.state_idle_init();
var _local4 = 1;
var _local3 = 0;
while (_local3 < com.disney.gem.games.grinding_stomach.GameData.aSCORE_FLAVOR_TEXT.length) {
if (com.disney.gem.games.grinding_stomach.Controller(oController).__get__FinalScore() > com.disney.gem.games.grinding_stomach.GameData.aSCORE_FLAVOR_TEXT[_local3]) {
_local4 = _local3 + 1;
}
_local3++;
}
mcRef.mcState.mcContent.mcFlavorText.gotoAndStop(_local4);
mcRef.mcState.mcContent.mcScore.txtScore.text = com.sarbakan.utils.Tools.getFormatedNumber(com.disney.gem.games.grinding_stomach.Controller(oController).__get__FinalScore());
mcRef.mcState.mcContent.btPlay.onRelease = com.sarbakan.utils.Delegate.create(this, onBtPlay);
com.disney.gem.games.grinding_stomach.Controller(oController).applyRollSound(mcRef.mcState.mcContent.btPlay);
}
}
Symbol 382 MovieClip Frame 1
stop();
Symbol 420 MovieClip Frame 12
stop();
Symbol 421 MovieClip Frame 9
Symbol 421 MovieClip Frame 10
stop();
Symbol 428 MovieClip Frame 12
stop();
Symbol 429 MovieClip Frame 9
Symbol 429 MovieClip Frame 10
stop();
Symbol 435 MovieClip Frame 12
stop();
Symbol 436 MovieClip Frame 10
stop();
Symbol 468 MovieClip Frame 12
stop();
Symbol 469 MovieClip Frame 9
Symbol 469 MovieClip Frame 10
stop();
Symbol 516 MovieClip Frame 12
stop();
Symbol 517 MovieClip Frame 9
Symbol 517 MovieClip Frame 10
stop();
Symbol 519 MovieClip Frame 1
stop();
Symbol 519 MovieClip Frame 2
stop();
Symbol 531 MovieClip Frame 12
stop();
Symbol 532 MovieClip Frame 9
Symbol 532 MovieClip Frame 10
stop();
Symbol 561 MovieClip Frame 12
stop();
Symbol 562 MovieClip Frame 9
Symbol 562 MovieClip Frame 10
stop();
Symbol 567 MovieClip Frame 12
stop();
Symbol 568 MovieClip Frame 9
Symbol 568 MovieClip Frame 10
stop();
Symbol 575 MovieClip Frame 12
stop();
Symbol 576 MovieClip Frame 9
Symbol 576 MovieClip Frame 10
stop();
Symbol 582 MovieClip Frame 12
stop();
Symbol 583 MovieClip Frame 9
Symbol 583 MovieClip Frame 10
stop();
Symbol 600 MovieClip Frame 12
stop();
Symbol 601 MovieClip Frame 9
Symbol 601 MovieClip Frame 10
stop();
Symbol 606 MovieClip Frame 12
stop();
Symbol 607 MovieClip Frame 9
Symbol 607 MovieClip Frame 10
stop();
Symbol 815 MovieClip Frame 12
stop();
Symbol 816 MovieClip Frame 9
Symbol 816 MovieClip Frame 10
stop();