Frame 1
function _getHighScore(Void) {
return(GC.getTotalScore());
}
function ShowHighScore(Void) {
loadMovie ((("WBHighScores.swf?GameID=" + NGameID) + "&GameScore=") + _getHighScore(), this.createEmptyMovieClip("mcHSBoard", this.getNextHighestDepth()));
}
Object.prototype.gameTimeline = this;
var percentLoaded = ((this.getBytesLoaded() / this.getBytesTotal()) * 100);
if (percentLoaded == 100) {
this.gotoAndPlay("start");
} else {
loadingBG_mc._yscale = percentLoaded;
}
Frame 2
gotoAndPlay (1);
Frame 12
GC = new com.ndimedia.bedrockbowling.GameController(this);
GC.start();
Frame 13
stop();
Frame 16
GC.title();
Frame 17
stop();
Frame 18
GC.instructions();
Frame 26
stop();
Frame 27
GC.play();
GC.pause = true;
mute_btn.onRelease = function () {
if (this._currentframe == 1) {
this.gotoAndStop("off");
var _local2 = new Sound(this._parent);
_local2.stop("BBQ funk - 63 BPM 001.wav");
} else {
this.gotoAndStop("on");
var _local2 = new Sound(this._parent);
_local2.attachSound("BBQ funk - 63 BPM 001.wav");
_local2.start(0, 999);
}
};
Frame 32
GC.levelStart();
Frame 40
GC.mainLoop();
GC.pause = false;
Frame 41
this.gotoAndPlay("mainLoop");
Frame 48
GC.levelComplete();
score_txt.text = GC.getTotalScore();
level_txt.text = GC.getLevel();
Frame 53
if (GC.levelPauseTimer.seconds() > 3) {
gameTimeline.gotoAndPlay("levelStart");
}
timer_txt.text = 3 - GC.levelPauseTimer.seconds();
Frame 54
gameTimeline.gotoAndPlay(_currentframe - 1);
Frame 61
GC.win();
score_txt.text = GC.getTotalScore();
level_txt.text = GC.getLevel();
_root.ShowHighScore();
Frame 63
if (GC.levelPauseTimer.seconds() > 3) {
gameTimeline.gotoAndPlay("start");
}
timer_txt.text = 3 - GC.levelPauseTimer.seconds();
Frame 64
gameTimeline.gotoAndPlay(_currentframe - 1);
Frame 65
play_btn.onRelease = function () {
this._parent.gotoAndPlay("start");
};
Frame 67
GC.gameOver();
score_txt.text = GC.getTotalScore();
level_txt.text = GC.getLevel();
stop();
_root.ShowHighScore();
Frame 72
if (GC.levelPauseTimer.seconds() > 3) {
gameTimeline.gotoAndPlay("start");
}
timer_txt.text = 3 - GC.levelPauseTimer.seconds();
Frame 73
gameTimeline.gotoAndPlay(_currentframe - 1);
Symbol 9 MovieClip [alley_mc] Frame 1
var items = [pin_1, pin_2, pin_3, pin_4, pin_5, pin_6, pin_7, pin_8, pin_9, pin_10, ball];
pin_1.vx = (pin_1.vy = 0);
pin_1.mass = 1;
pin_1.hit = 0;
pin_1.id = 1;
pin_2.vx = (pin_2.vy = 0);
pin_2.mass = 1;
pin_2.hit = 0;
pin_2.id = 2;
pin_3.vx = (pin_3.vy = 0);
pin_3.mass = 1;
pin_3.hit = 0;
pin_3.id = 3;
pin_4.vx = (pin_4.vy = 0);
pin_4.mass = 1;
pin_4.hit = 0;
pin_4.id = 4;
pin_5.vx = (pin_5.vy = 0);
pin_5.mass = 1;
pin_5.hit = 0;
pin_5.id = 5;
pin_6.vx = (pin_6.vy = 0);
pin_6.mass = 1;
pin_6.hit = 0;
pin_6.id = 6;
pin_7.vx = (pin_7.vy = 0);
pin_7.mass = 1;
pin_7.hit = 0;
pin_7.id = 7;
pin_8.vx = (pin_8.vy = 0);
pin_8.mass = 1;
pin_8.hit = 0;
pin_8.id = 8;
pin_9.vx = (pin_9.vy = 0);
pin_9.mass = 1;
pin_9.hit = 0;
pin_9.id = 9;
pin_10.vx = (pin_10.vy = 0);
pin_10.mass = 1;
pin_10.hit = 0;
pin_10.id = 10;
ball.vx = 0;
ball.vy = 0;
ball.mass = 5;
this.hidePins = function (a) {
for (var _local3 in a) {
this["pin_" + a[_local3]]._x = this["pin_" + a[_local3]]._x + 3000;
}
};
this.onEnterFrame = function () {
var _local2 = 0;
while (_local2 < items.length) {
var _local3 = items[_local2];
_local3._x = _local3._x + _local3.vx;
_local3._y = _local3._y + _local3.vy;
_local2++;
}
_local2 = 0;
while (_local2 < (items.length - 1)) {
var _local5 = items[_local2];
var _local1 = _local2 + 1;
while (_local1 < items.length) {
var _local4 = items[_local1];
checkCollision(_local5, _local4);
_local1++;
}
_local2++;
}
};
this.onPintHit = function () {
};
this.checkCollision = function (ball0, ball1) {
var _local9 = ball1._x - ball0._x;
var _local8 = ball1._y - ball0._y;
var _local20 = Math.sqrt((_local9 * _local9) + (_local8 * _local8));
if (_local20 < ((ball0._width / 2) + (ball1._width / 2))) {
if (ball0.hit == 0) {
this.onPinHit(ball0);
ball0.hit = 1;
}
var _local15 = Math.atan2(_local8, _local9);
var _local6 = Math.sin(_local15);
var _local5 = Math.cos(_local15);
var _local11 = {x:0, y:0};
var _local10 = rotate(_local9, _local8, _local6, _local5, true);
var _local4 = rotate(ball0.vx, ball0.vy, _local6, _local5, true);
var _local7 = rotate(ball1.vx, ball1.vy, _local6, _local5, true);
var _local19 = _local4.x - _local7.x;
_local4.x = (((ball0.mass - ball1.mass) * _local4.x) + ((2 * ball1.mass) * _local7.x)) / (ball0.mass + ball1.mass);
_local7.x = _local19 + _local4.x;
var _local17 = Math.abs(_local4.x) + Math.abs(_local7.x);
var _local18 = ((ball0._width / 2) + (ball1._width / 2)) - Math.abs(_local11.x - _local10.x);
_local11.x = _local11.x + ((_local4.x / _local17) * _local18);
_local10.x = _local10.x + ((_local7.x / _local17) * _local18);
var _local12 = rotate(_local11.x, _local11.y, _local6, _local5, false);
var _local13 = rotate(_local10.x, _local10.y, _local6, _local5, false);
ball1._x = ball0._x + _local13.x;
ball1._y = ball0._y + _local13.y;
ball0._x = ball0._x + _local12.x;
ball0._y = ball0._y + _local12.y;
var _local14 = rotate(_local4.x, _local4.y, _local6, _local5, false);
var _local16 = rotate(_local7.x, _local7.y, _local6, _local5, false);
ball0.vx = _local14.x;
ball0.vy = _local14.y;
ball1.vx = _local16.x;
ball1.vy = _local16.y;
}
};
this.rotate = function (x, y, sine, cosine, reverse) {
var _local1 = new Object();
if (reverse) {
_local1.x = (x * cosine) + (y * sine);
_local1.y = (y * cosine) - (x * sine);
} else {
_local1.x = (x * cosine) - (y * sine);
_local1.y = (y * cosine) + (x * sine);
}
return(_local1);
};
Symbol 24 MovieClip [animatedPin_mc] Frame 1
stop();
Symbol 24 MovieClip [animatedPin_mc] Frame 38
stop();
Symbol 24 MovieClip [animatedPin_mc] Frame 54
stop();
Symbol 24 MovieClip [animatedPin_mc] Frame 69
stop();
Symbol 473 MovieClip [__Packages.com.warnerbros.games.BaseGameController] Frame 0
class com.warnerbros.games.BaseGameController
{
var gameTimeline, containerTimeline, engineClip, levelPauseTimer, inputTimer, mcHS, debugMsgList, mclListenerHS, mclHS;
function BaseGameController (game_timeline, engine_clip) {
gameTimeline = game_timeline;
containerTimeline = gameTimeline._parent;
if ((containerTimeline == undefined) && (gameTimeline != _level0)) {
containerTimeline = _level0;
}
if ((containerTimeline != undefined) && (containerTimeline.AC == undefined)) {
containerTimeline = _level10;
}
if ((containerTimeline != undefined) && (containerTimeline.AC == undefined)) {
containerTimeline = _level10;
}
engineClip = engine_clip;
engineClip._visible = false;
levelPauseTimer = new com.warnerbros.games.Timer();
inputTimer = new com.warnerbros.games.Timer();
}
function onHSReady() {
trace("GC: onHSReady");
mcHS.HS.loading();
gameTimeline.gotoAndPlay("title");
}
function onHSLoadError(error_code) {
trace("GC: onHSLoadError: Tracking and High Scores not available. : " + error_code);
mcHS.HS = undefined;
gameTimeline.gotoAndPlay("title");
}
function start() {
debugMsgList = new Array();
if (containerTimeline != undefined) {
containerTimeline.AC.gameStart(gameTimeline, this);
} else {
gameDebug("Container: undefined");
}
mclListenerHS = new Object();
mclListenerHS.owner = this;
mclHS = new MovieClipLoader();
mclListenerHS.onLoadComplete = function (target_mc) {
target_mc.owner = this.owner;
};
mclListenerHS.onLoadError = function (target_mc, errorCode) {
trace("HS: onLoadError: " + errorCode);
this.owner.onHSLoadError(errorCode);
};
mclHS.addListener(mclListenerHS);
if (gameTimeline.gGameID == undefined) {
gameTimeline.gGameID = "na.no_id.fla";
}
if (gameTimeline.gHSRoot_swf == undefined) {
gameTimeline.gHSRoot_swf = "";
}
if (gameTimeline.gHSRoot_jsp == undefined) {
gameTimeline.gHSRoot_jsp = "/web/load_variables/games/";
}
if (gameTimeline.gHSRoot_top100 == undefined) {
gameTimeline.gHSRoot_top100 = "/web/games/";
}
if (gameTimeline.gDB_domain == undefined) {
gameTimeline.gDB_domain = "http://looneytunes2.warnerbros.com";
}
mcHS = gameTimeline.createEmptyMovieClip("hs_scripts2", 24000);
mclHS.loadClip(gameTimeline.gHSRoot_swf + filenameHS, mcHS);
}
function title() {
if (containerTimeline != undefined) {
containerTimeline.AC.gameTitle();
}
mcHS.HS.loaded();
}
function instructions() {
if (containerTimeline != undefined) {
containerTimeline.AC.gameInstructions();
}
}
function play() {
if (containerTimeline != undefined) {
containerTimeline.AC.gamePlay();
}
mcHS.HS.play();
}
function levelStart(level, score) {
if (containerTimeline != undefined) {
containerTimeline.AC.gameLevelStart(level, score);
}
mcHS.HS.levelStart(level, score);
}
function mainLoop() {
com.warnerbros.games.managers.FrameTimeManager.calculateFrameTime();
mcHS.HS.DC.mcDC.frameTime_text.text = com.warnerbros.games.managers.FrameTimeManager.getFrameMilliseconds();
}
function checkLevelComplete() {
return(false);
}
function checkGameOver() {
return(false);
}
function levelComplete() {
if (containerTimeline != undefined) {
containerTimeline.AC.gameLevelComplete();
}
levelPauseTimer.restartTimer();
}
function win(level, score) {
if (containerTimeline != undefined) {
containerTimeline.AC.gameWin(level, score);
}
mcHS.HS.gameOver(level, score);
levelPauseTimer.restartTimer();
}
function gameOver(level, score) {
if (containerTimeline != undefined) {
containerTimeline.AC.gameGameOver(level, score);
}
mcHS.HS.gameOver(level, score);
levelPauseTimer.restartTimer();
}
function handleInput() {
if (Key.isDown(com.warnerbros.games.managers.BaseInputManager.keyMap[com.warnerbros.games.managers.BaseInputManager.QUIT])) {
gameTimeline.gotoAndPlay("gameOver");
}
if (Key.getCode() == 13) {
consoleCode = "";
} else if ((Key.getAscii() > 45) && (Key.getAscii() != prevConsoleCodeChar)) {
consoleCode = consoleCode + (Key.getAscii() + ":");
prevConsoleCodeChar = Key.getAscii();
}
if (consoleCode == "126:119:98:100:98:") {
mcHS.HS.showDebugConsole();
consoleCode = "";
}
}
function getScore() {
return(0);
}
function setScore(value) {
}
function getTotalScore() {
return(0);
}
function getLevel() {
return(0);
}
function setLevel(value) {
}
function getFrameTime() {
return(com.warnerbros.games.managers.FrameTimeManager.getFrameMilliseconds());
}
function gameDebug(msg) {
if (gameTimeline.gDebug == undefined) {
gameTimeline.gDebug = "";
}
gameTimeline.gDebug = (gameTimeline.gDebug + msg) + newline;
debugMsgList.push(msg);
trace(msg);
}
var filenameHS = "HSScripts2.swf";
var consoleCode = "";
var prevConsoleCodeChar = 0;
}
Symbol 474 MovieClip [__Packages.com.warnerbros.games.Timer] Frame 0
class com.warnerbros.games.Timer
{
function Timer () {
startTime = getTimer();
}
function restartTimer() {
startTime = getTimer();
}
function milliseconds() {
return(getTimer() - startTime);
}
function seconds() {
return(getSeconds());
}
function getSeconds() {
return(Math.floor((getTimer() - startTime) / 1000));
}
function minutes() {
return(Math.floor(getSeconds() / 60));
}
function remaining(time_allowed) {
return(time_allowed - milliseconds());
}
function expire() {
startTime = -100000;
}
function display() {
var _local2;
var _local3;
_local2 = "00" + minutes();
_local2 = _local2.substr(_local2.length - 2, 2);
_local3 = "00" + seconds();
_local3 = _local3.substr(_local3.length - 2, 2);
return((_local2 + ":") + _local3);
}
function displayRemaining(time_allowed) {
var _local2;
var _local3;
var _local4 = time_allowed - milliseconds();
var _local5 = Math.floor(_local4 / 1000);
var _local6 = Math.floor(_local5 / 60);
if (_local4 >= 0) {
_local2 = "00" + _local6;
_local2 = _local2.substr(_local2.length - 2, 2);
_local3 = "00" + _local5;
_local3 = _local3.substr(_local3.length - 2, 2);
} else {
_local2 = "00";
_local3 = "00";
}
return((_local2 + ":") + _local3);
}
var startTime = 0;
}
Symbol 475 MovieClip [__Packages.com.warnerbros.games.managers.FrameTimeManager] Frame 0
class com.warnerbros.games.managers.FrameTimeManager
{
static var frameTimeMilliseconds;
function FrameTimeManager () {
}
static function calculateFrameTime() {
frameTimeMilliseconds = frameTimeTimer.milliseconds();
frameTimeTimer.restartTimer();
}
static function getFrameMilliseconds() {
return(frameTimeMilliseconds);
}
static function getFrameSeconds() {
return(frameTimeMilliseconds / 1000);
}
static var frameTimeTimer = new com.warnerbros.games.Timer();
}
Symbol 476 MovieClip [__Packages.com.warnerbros.games.managers.BaseInputManager] Frame 0
class com.warnerbros.games.managers.BaseInputManager
{
static var keyMap, inputState;
function BaseInputManager () {
}
static function init() {
keyMap = new Array(NUM_STATES);
inputState = new Array(NUM_STATES);
keyMap[QUIT] = 81;
inputState[QUIT] = false;
initialized = true;
}
static function processInput() {
if (!initialized) {
init();
}
processKeyboardInput();
}
static function processKeyboardInput() {
inputState[QUIT] = Key.isDown(keyMap[QUIT]);
}
static function checkInputState(keyMapIndex) {
return(inputState[keyMapIndex]);
}
static function showInputState() {
trace("BIM: " + inputState.toString());
}
static var QUIT = 0;
static var NUM_STATES = 1;
static var initialized = false;
}
Symbol 477 MovieClip [__Packages.com.ndimedia.bedrockbowling.GameController] Frame 0
class com.ndimedia.bedrockbowling.GameController extends com.warnerbros.games.BaseGameController
{
var levelPauseTimer, inputTimer, m_viewManager, mcHS, m_score, m_currentThrow, m_currentFrame, m_currentGameState, m_aimingView, gameTimeline, m_runningView, m_remainingPins, pause, m_avatar;
function GameController (game_timeline, engine_clip) {
super(game_timeline, engine_clip);
levelPauseTimer = new com.warnerbros.games.Timer();
inputTimer = new com.warnerbros.games.Timer();
m_viewManager = new com.ndimedia.bedrockbowling.ViewManager();
level = 1;
}
function start() {
super.start();
}
function title() {
super.title();
mcHS.HS.setDialogLocation(175, 100);
}
function play() {
super.play();
m_score = new com.ndimedia.bedrockbowling.Score();
m_currentThrow = 2;
m_currentFrame = 0;
m_currentGameState = NEW_THROW;
m_aimingView = new com.ndimedia.bedrockbowling.views.AimingView(gameTimeline.aimView_mc);
m_aimingView.addEventListener(com.ndimedia.bedrockbowling.views.AimingView.AIMING_DONE, com.ndimedia.utils.Proxy.create(this, _aimingDone));
m_aimingView.addEventListener(com.ndimedia.bedrockbowling.views.AimingView.END_ROLL, com.ndimedia.utils.Proxy.create(this, _rollDone));
m_aimingView.addEventListener(com.ndimedia.bedrockbowling.views.AimingView.SPECIAL_MOVE_DONE, com.ndimedia.utils.Proxy.create(this, _specialMoveDone));
m_runningView = new com.ndimedia.bedrockbowling.views.RunningView(gameTimeline.runView_mc, this);
m_runningView.addEventListener(com.ndimedia.bedrockbowling.views.RunningView.HIDE_SCORE, com.ndimedia.utils.Proxy.create(this, _initThrow));
m_score.addEventListener(com.ndimedia.bedrockbowling.Frame.CHANGE, com.ndimedia.utils.Proxy.create(m_runningView, m_runningView.changeFrameScore));
m_viewManager.addView(gameTimeline.runView_mc);
m_viewManager.addView(gameTimeline.aimView_mc);
m_remainingPins = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}
function levelStart() {
level++;
super.levelStart(level, score);
}
function mainLoop() {
super.mainLoop();
com.ndimedia.bedrockbowling.managers.InputManager.processInput();
handleInput();
if (!pause) {
if (checkGameOver()) {
gameTimeline.gotoAndPlay("gameOver");
} else if (checkLevelComplete()) {
gameTimeline.gotoAndPlay("levelComplete");
} else {
switch (m_currentGameState) {
case AIMING_INTRO :
gameTimeline.currentGameState_field.text = "AIMING_INTRO";
break;
case AIMING_OUTRO :
gameTimeline.currentGameState_field.text = "AIMING_OUTRO";
break;
case AIMING :
gameTimeline.currentGameState_field.text = "AIMING";
break;
case RUNNING_INTRO :
gameTimeline.currentGameState_field.text = "RUNNING_INTRO";
break;
case RUNNING :
gameTimeline.currentGameState_field.text = "RUNNING";
_processRun();
break;
case NEW_THROW :
gameTimeline.currentGameState_field.text = "NEW_THROW";
_initThrow();
m_currentGameState = PENDING;
break;
case PENDING :
gameTimeline.currentGameState_field.text = "PENDING";
break;
case BALL_ROLLING :
gameTimeline.currentGameState_field.text = "BALL_ROLLING";
break;
default :
gameTimeline.currentGameState_field.text = "no state defined...";
}
}
}
}
function checkLevelComplete() {
return(false);
}
function checkGameOver() {
return(false);
}
function levelComplete() {
super.levelComplete();
}
function win() {
super.win(level, score);
}
function gameOver() {
super.gameOver(level, score);
gameTimeline.score_txt.text = score;
}
function handleInput() {
super.handleInput();
}
function getLevelScore() {
return(score);
}
function getTotalScore() {
return(score);
}
function setScore(value) {
score = value;
}
function getLevel() {
return(level);
}
function setLevel(value) {
level = value;
}
function get runProgress() {
return(m_avatar.__get__position() / (MAX_THROWING_POSITION + 1000));
}
function _initThrow() {
if (m_viewManager.show(gameTimeline.runView_mc)) {
m_runningView.init();
if (!m_avatar) {
m_avatar = new com.ndimedia.bedrockbowling.Avatar(gameTimeline.runView_mc.fred_mc);
m_avatar.addEventListener("ALL", this, "_onAvatarEvent");
}
if (m_currentFrame == 10) {
if (!m_score.__get__closed()) {
trace("m_aimingView.downedPins = " + m_aimingView.__get__downedPins());
if (m_aimingView.__get__downedPins() >= 10) {
m_remainingPins = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}
_nextThrow();
trace("Frame 10, throw " + m_currentThrow);
} else {
trace("\n\n******************\n*\n*\t\tGAME OVER");
trace("*\n******************");
gameTimeline.gotoAndPlay("gameOver");
}
} else if (m_aimingView.__get__downedPins() >= 10) {
trace("_nextFrame() m_aimingView.downedPins >= 10");
_nextFrame();
} else if (m_currentThrow == 2) {
trace("_nextFrame() m_currentThrow == 2");
_nextFrame();
} else {
trace("_nextThrow() vanilla ");
_nextThrow();
}
if (!m_score.__get__closed()) {
m_avatar.startAiming();
m_currentGameState = AIMING_INTRO;
} else {
gameOver();
}
}
}
function _specialMoveDone(evt) {
trace("_specialMoveDone = " + m_score.__get__currentFrame().__get__score());
if (evt.__get__data().specialPoints == -1) {
m_score.addTo(10 - m_score.__get__currentFrame().__get__score());
} else {
m_score.addTo(evt.__get__data().specialPoints);
}
var self = this;
var timeOut = setInterval(function () {
clearInterval(timeOut);
self._showReaction();
}, 2000);
m_remainingPins = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}
function _onAvatarEvent(evt) {
switch (evt.__get__type()) {
case com.ndimedia.bedrockbowling.Avatar.AIM_INTRO_DONE :
m_viewManager.show(gameTimeline.aimView_mc);
m_aimingView.startAiming(m_remainingPins);
break;
case com.ndimedia.bedrockbowling.Avatar.AIM_OUTRO_DONE :
m_runningView.showRunHint();
m_avatar.startRunning();
break;
case com.ndimedia.bedrockbowling.Avatar.RUN_INTRO_DONE :
m_currentGameState = RUNNING;
break;
case com.ndimedia.bedrockbowling.Avatar.START_RUN :
m_runningView.hideRunHint();
break;
case com.ndimedia.bedrockbowling.Avatar.FALL_INTRO_DONE :
var self = this;
var delay = setInterval(function () {
self.m_viewManager.show(self.gameTimeline.aimView_mc);
self.m_aimingView.doSpecialMove(-1, self.m_remainingPins);
clearInterval(delay);
}, 500);
m_currentGameState = PENDING;
m_runningView.hideWarning();
break;
case com.ndimedia.bedrockbowling.Avatar.EMOTE :
_showScore();
break;
case com.ndimedia.bedrockbowling.Avatar.THROW :
m_currentGameState = BALL_ROLLING;
m_viewManager.show(gameTimeline.aimView_mc);
m_runningView.hideWarning();
if (m_avatar.__get__position() > (MAX_THROWING_POSITION - SPECIAL_MOVE_LIMIT)) {
m_aimingView.doSpecialMove(m_avatar.__get__finalSpeed(), m_remainingPins);
} else {
m_aimingView.throwBall(m_avatar.__get__finalSpeed(), m_remainingPins);
}
break;
default :
trace("no event type has been defined in GameController::_onAvatarEvent for " + evt.__get__type());
}
}
function _aimingDone(evt) {
m_viewManager.show(gameTimeline.runView_mc);
m_avatar.finishAiming();
m_currentGameState = AIMING_OUTRO;
}
function _rollDone(evt) {
m_score.addTo(m_aimingView.__get__downedPins());
var self = this;
var timeOut = setInterval(function () {
clearInterval(timeOut);
self._showReaction();
}, 2000);
}
function _showReaction() {
trace("showReaction");
m_viewManager.show(gameTimeline.runView_mc);
m_currentGameState = PENDING;
var _local2;
if (m_aimingView.__get__downedPins() == 0) {
_local2 = 1;
} else if (m_aimingView.__get__downedPins() >= 10) {
_local2 = 4;
} else if (m_score.__get__currentFrame().__get__spare()) {
_local2 = 3;
} else {
_local2 = 2;
}
m_avatar.emote(_local2);
}
function _showScore() {
m_remainingPins = m_aimingView.remainingPins;
m_runningView.showScore();
setScore(m_score.__get__totalScore());
}
function _processRun() {
if (m_avatar.__get__position() < MAX_THROWING_POSITION) {
if (m_avatar.__get__position() > THROW_WARNING_POSITION) {
m_runningView.showWarning();
}
} else {
m_aimingView.killThrow();
m_currentGameState = PENDING;
m_avatar.fall();
}
m_runningView.moveBackground(m_avatar.__get__speed());
}
function _nextFrame() {
m_currentThrow = 1;
m_currentFrame++;
m_score.setFrame(m_currentFrame);
m_score.setThrow(m_currentThrow);
m_remainingPins = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}
function _nextThrow() {
m_currentThrow++;
m_score.setThrow(m_currentThrow);
}
var level = 0;
var score = 0;
static var PENDING = -1;
static var NEW_THROW = 0;
static var AIMING_INTRO = 1;
static var AIMING_OUTRO = 2;
static var AIMING = 3;
static var RUNNING_INTRO = 4;
static var RUNNING_OUTRO = 5;
static var RUNNING = 6;
static var BALL_ROLLING = 7;
static var MAX_THROWING_POSITION = 3800;
static var THROW_WARNING_POSITION = 2500;
static var SPECIAL_MOVE_LIMIT = 200;
}
Symbol 478 MovieClip [__Packages.com.ndimedia.bedrockbowling.Avatar] Frame 0
class com.ndimedia.bedrockbowling.Avatar
{
var m_view, m_viewMonitor, m_sceneStopHandler, m_speed, m_finalSpeed, m_position, m_arrowsTimeDelay, m_runKeyToCheck, m_runKeyIndex, m_runDisplayRefreshIndex, m_running, m_falling, m_sliding, m_runTimer, m_leftWasReleased, m_rightWasReleased, m_runningSound, dispatchEvent;
function Avatar (view) {
com.gskinner.GDispatcher.initialize(this);
m_view = view;
m_viewMonitor = new com.ndimedia.display.MovieClipMonitor();
m_sceneStopHandler = com.ndimedia.utils.Proxy.create(this, _onSceneStopped);
}
function get speed() {
return(Math.ceil(m_speed));
}
function get finalSpeed() {
return(m_finalSpeed);
}
function get position() {
return(m_position);
}
function startAiming() {
playScene("aim intro");
var _local2 = new com.ndimedia.events.Event(AIM_INTRO_DONE, this);
m_viewMonitor.monitorStop(m_view.anim_mc, _local2, 33);
m_viewMonitor.removeEventListener(AIM_INTRO_DONE, m_sceneStopHandler);
m_viewMonitor.addEventListener(AIM_INTRO_DONE, m_sceneStopHandler);
}
function startRunning() {
m_view.onEnterFrame = com.ndimedia.utils.Proxy.create(this, _windUp);
m_arrowsTimeDelay = 0;
m_runKeyToCheck = [com.ndimedia.bedrockbowling.managers.InputManager.LEFT, com.ndimedia.bedrockbowling.managers.InputManager.RIGHT];
m_runKeyIndex = 0;
m_speed = 0;
m_runDisplayRefreshIndex = RUN_DISPLAY_REFRESH;
m_running = false;
m_position = 0;
m_falling = false;
m_sliding = false;
m_runTimer = -1;
m_leftWasReleased = true;
m_rightWasReleased = true;
}
function finishAiming() {
playScene("aim outro");
var _local2 = new com.ndimedia.events.Event(AIM_OUTRO_DONE, this);
m_viewMonitor.monitorStop(m_view.anim_mc, _local2, 33);
m_viewMonitor.removeEventListener(AIM_OUTRO_DONE, m_sceneStopHandler);
m_viewMonitor.addEventListener(AIM_OUTRO_DONE, m_sceneStopHandler);
}
function fall() {
m_falling = true;
playScene("fall");
var _local2 = new com.ndimedia.events.Event(FALL_INTRO_DONE, this);
m_viewMonitor.killMonitorOnMc(m_view.anim_mc);
m_viewMonitor.monitorAtOrPassFrame(m_view.anim_mc, 30, _local2, 33, true);
m_viewMonitor.removeEventListener(THROW, m_sceneStopHandler);
m_viewMonitor.removeEventListener(FALL_INTRO_DONE, m_sceneStopHandler);
m_viewMonitor.addEventListener(FALL_INTRO_DONE, m_sceneStopHandler);
m_runningSound.stop("Run.mp3");
}
function slide() {
m_finalSpeed = speed;
m_sliding = true;
m_view.onEnterFrame = com.ndimedia.utils.Proxy.create(this, _slide);
var _local2 = new com.ndimedia.events.Event(THROW, this);
playScene("throw");
m_viewMonitor.killMonitorOnMc(m_view.anim_mc);
m_viewMonitor.monitorStop(m_view.anim_mc, _local2, 33);
m_viewMonitor.removeEventListener(FALL_INTRO_DONE, m_sceneStopHandler);
m_viewMonitor.removeEventListener(THROW, m_sceneStopHandler);
m_viewMonitor.addEventListener(THROW, m_sceneStopHandler);
m_runningSound.stop("Run.mp3");
}
function playScene(frameLabel) {
m_view.gotoAndPlay(frameLabel);
}
function emote(scene) {
playScene("reaction" + scene);
var _local2 = new com.ndimedia.events.Event(EMOTE, this);
m_viewMonitor.monitorStop(m_view.anim_mc, _local2, 33);
m_viewMonitor.removeEventListener(EMOTE, m_sceneStopHandler);
m_viewMonitor.addEventListener(EMOTE, m_sceneStopHandler);
}
function _onSceneStopped(evt, sceneName) {
m_viewMonitor.killMonitorOnMc(m_view);
switch (evt.__get__type()) {
case AIM_INTRO_DONE :
evt.bubble(this);
break;
case AIM_OUTRO_DONE :
evt.bubble(this);
break;
case EMOTE :
evt.bubble(this);
break;
case RUN_INTRO_DONE :
m_runningSound = new Sound(m_view);
m_runningSound.attachSound("Run.mp3");
m_runningSound.start(0, 999);
evt.bubble(this);
m_view.onEnterFrame = com.ndimedia.utils.Proxy.create(this, _run);
break;
case FALL_INTRO_DONE :
m_speed = 0;
m_view.onEnterFrame = null;
evt.bubble(this);
break;
case THROW :
m_speed = 0;
m_view.onEnterFrame = null;
evt.bubble(this);
}
}
function _run() {
if ((!m_falling) && (!m_sliding)) {
_processInput();
_displayRun();
} else {
m_speed = m_speed * 0.85;
}
m_position = m_position + speed;
}
function _slide() {
m_speed = m_speed * 0.95;
m_position = m_position + speed;
}
function _windUp() {
_processInput();
}
function _processInput() {
if ((com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.THROW) && (m_running)) && (_checkRunTime() > 1000)) {
slide();
} else if ((com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.LEFT) && (m_leftWasReleased)) || (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.RIGHT) && (m_rightWasReleased))) {
m_runKeyIndex = Math.abs(m_runKeyIndex - 1);
if (!m_running) {
_startDisplayRun();
m_running = true;
m_runTimer = getTimer();
}
m_speed = m_speed + 2.5;
} else {
if (m_speed > 0) {
m_speed = m_speed * DAMPING;
}
if (com.warnerbros.games.managers.BaseInputManager.checkInputState(m_runKeyToCheck[Math.abs(m_runKeyIndex - 1)])) {
m_runKeyIndex = Math.abs(m_runKeyIndex - 1);
}
}
_checkKeysStatus();
}
function _checkRunTime() {
if (m_runTimer == -1) {
return(-1);
}
return(getTimer() - m_runTimer);
}
function _startDisplayRun() {
playScene("runStart");
var _local3 = new com.ndimedia.events.Event(START_RUN, this);
dispatchEvent(_local3);
var _local2 = new com.ndimedia.events.Event(RUN_INTRO_DONE, this);
m_viewMonitor.monitorStop(m_view.anim_mc, _local2, 33);
m_viewMonitor.removeEventListener(RUN_INTRO_DONE, m_sceneStopHandler);
m_viewMonitor.addEventListener(RUN_INTRO_DONE, m_sceneStopHandler);
}
function _displayRun() {
if (!m_sliding) {
if ((m_runDisplayRefreshIndex++) >= RUN_DISPLAY_REFRESH) {
m_runDisplayRefreshIndex = 0;
var _local2 = Math.ceil(speed / RUN_ANIM_SPEED_DIVIDER);
if (_local2 > 4) {
_local2 = 4;
}
playScene("run" + _local2);
}
}
}
function _checkKeysStatus() {
if (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.LEFT)) {
m_leftWasReleased = false;
} else {
m_leftWasReleased = true;
}
if (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.RIGHT)) {
m_rightWasReleased = false;
} else {
m_rightWasReleased = true;
}
}
static var AIM_INTRO_DONE = "aimIntroDone";
static var AIM_OUTRO_DONE = "aimOutroDone";
static var RUN_INTRO_DONE = "runIntroDone";
static var START_RUN = "startRun";
static var FALL_INTRO_DONE = "fallIntroDone";
static var THROW = "throw";
static var EMOTE = "emote";
static var DAMPING = 0.97;
static var RUN_ANIM_SPEED_DIVIDER = 10;
static var RUN_DISPLAY_REFRESH = 10;
}
Symbol 479 MovieClip [__Packages.com.ndimedia.display.MovieClipMonitor] Frame 0
class com.ndimedia.display.MovieClipMonitor
{
var m_intervalID, dispatchEvent;
function MovieClipMonitor () {
mx.events.EventDispatcher.initialize(this);
m_intervalID = new Array();
}
function killMonitorOnMc(mc) {
_clearInterval(mc._name);
}
function monitorAtOrPassFrame(mc, frame, evt, frequency, autoDestruct) {
if (mc._currentframe >= frame) {
dispatchEvent(evt);
} else {
frequency = ((frequency == undefined) ? 1 : (frequency));
var _local5 = ((autoDestruct == undefined) ? true : (autoDestruct));
var _local2 = new Object();
_local2.id = mc._name;
_local2.intervalID = setInterval(this, "_watchAtOrPassFrame", frequency, mc, frame, evt, _local5);
m_intervalID.push(_local2);
}
}
function _watchAtOrPassFrame(mc, frame, evt, ad) {
if (mc._currentframe >= frame) {
if (ad) {
_clearInterval(mc._name);
}
dispatchEvent(evt);
}
}
function monitorAtFrame(mc, frame, evt, frequency) {
if (mc._currentframe == frame) {
dispatchEvent(evt);
} else {
frequency = ((frequency == undefined) ? 1 : (frequency));
var _local2 = new Object();
_local2.id = mc._name;
_local2.intervalID = setInterval(this, "_watchAtFrame", frequency, mc, frame, evt);
m_intervalID.push(_local2);
}
}
function _watchAtFrame(mc, frame, evt) {
if (mc._currentframe == frame) {
_clearInterval(mc._name);
dispatchEvent(evt);
}
}
function monitorStop(mc, evt, frequency) {
m_stopedFrame = mc._currentframe;
frequency = ((frequency == undefined) ? 1 : (frequency));
var _local2 = new Object();
_local2.id = mc._name;
_local2.intervalID = setInterval(this, "_watchStop", frequency, mc, evt);
m_intervalID.push(_local2);
}
function _watchStop(mc, evt) {
if (mc._currentframe == m_stopedFrame) {
_clearInterval(mc._name);
dispatchEvent(evt);
} else {
m_stopedFrame = mc._currentframe;
}
}
function _clearInterval(id) {
var _local2 = 0;
while (_local2 < m_intervalID.length) {
if (m_intervalID[_local2].id == id) {
clearInterval(m_intervalID[_local2].intervalID);
m_intervalID.splice(_local2, 1);
break;
}
_local2++;
}
}
var m_stopedFrame = 0;
}
Symbol 480 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local4 = queue.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
var _local2 = queue[_local1];
if (_local2 == handler) {
queue.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local7 = "__q_" + eventObj.type;
var _local4 = queueObj[_local7];
if (_local4 != undefined) {
var _local5;
for (_local5 in _local4) {
var _local1 = _local4[_local5];
var _local3 = typeof(_local1);
if ((_local3 == "object") || (_local3 == "movieclip")) {
if (_local1.handleEvent != undefined) {
_local1.handleEvent(eventObj);
}
if (_local1[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local1[eventObj.type](eventObj);
}
}
} else {
_local1.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local3 = "__q_" + event;
if (this[_local3] == undefined) {
this[_local3] = new Array();
}
_global.ASSetPropFlags(this, _local3, 1);
_removeEventListener(this[_local3], event, handler);
this[_local3].push(handler);
}
function removeEventListener(event, handler) {
var _local2 = "__q_" + event;
_removeEventListener(this[_local2], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1, load:1};
}
Symbol 481 MovieClip [__Packages.com.ndimedia.events.Event] Frame 0
class com.ndimedia.events.Event
{
var m_type, m_target, m_data;
function Event (type, target) {
m_type = type;
m_target = target;
m_data = {};
}
function get type() {
return(m_type);
}
function get target() {
return(m_target);
}
function get data() {
return(m_data);
}
function addData(data) {
m_data[data.__get__label()] = data.data;
}
function bubble(dispatcher) {
dispatcher.dispatchEvent(this);
}
}
Symbol 482 MovieClip [__Packages.com.ndimedia.events.EventData] Frame 0
class com.ndimedia.events.EventData
{
var m_label, m_data;
function EventData (label, data) {
m_label = label;
m_data = data;
}
function get label() {
return(m_label);
}
function get data() {
return(m_data);
}
}
Symbol 483 MovieClip [__Packages.com.gskinner.GDispatcher] Frame 0
class com.gskinner.GDispatcher
{
var gDispatcher_listeners;
function GDispatcher () {
}
static function initialize(p_obj) {
if ($instance == undefined) {
$instance = new com.gskinner.GDispatcher();
}
p_obj.dispatchEvent = $instance.dispatchEvent;
p_obj.eventListenerExists = $instance.eventListenerExists;
p_obj.addEventListener = $instance.addEventListener;
p_obj.removeEventListener = $instance.removeEventListener;
p_obj.removeAllEventListeners = $instance.removeAllEventListeners;
}
static function $indexOfListener(p_listeners, p_obj, p_function) {
var _local3 = p_listeners.length;
var _local2 = -1;
while (_local2++ , _local2 < _local3) {
var _local1 = p_listeners[_local2];
if ((_local1.o == p_obj) && (_local1.f == p_function)) {
return(_local2);
}
}
return(-1);
}
static function $dispatchEvent(p_dispatchObj, p_listeners, p_eventObj) {
var _local5;
for (_local5 in p_listeners) {
var _local1 = p_listeners[_local5].o;
var _local3 = typeof(_local1);
var _local2 = p_listeners[_local5].f;
if ((_local3 == "object") || (_local3 == "movieclip")) {
if ((_local1.handleEvent != undefined) && (_local2 == undefined)) {
_local1.handleEvent(p_eventObj);
} else {
if (_local2 == undefined) {
_local2 = p_eventObj.type;
}
_local1[_local2](p_eventObj);
}
} else {
_local1.apply(p_dispatchObj, [p_eventObj]);
}
}
}
function dispatchEvent(p_eventObj) {
if (p_eventObj.type == "ALL") {
return(undefined);
}
if (p_eventObj.target == undefined) {
p_eventObj.target = this;
}
this[p_eventObj.type + "Handler"](p_eventObj);
var _local3 = gDispatcher_listeners[p_eventObj.type];
if (_local3 != undefined) {
$dispatchEvent(this, _local3, p_eventObj);
}
_local3 = gDispatcher_listeners.ALL;
if (_local3 != undefined) {
$dispatchEvent(this, _local3, p_eventObj);
}
}
function eventListenerExists(p_event, p_obj, p_function) {
return($indexOfListener(gDispatcher_listeners[p_event], p_obj, p_function) != -1);
}
function addEventListener(p_event, p_obj, p_function) {
if (gDispatcher_listeners == undefined) {
gDispatcher_listeners = {};
_global.ASSetPropFlags(this, gDispatcher_listeners, 1);
}
var _local3 = gDispatcher_listeners[p_event];
if (_local3 == undefined) {
_local3 = [];
gDispatcher_listeners[p_event] = _local3;
}
if ($indexOfListener(_local3, p_obj, p_function) == -1) {
_local3.push({o:p_obj, f:p_function});
}
}
function removeEventListener(p_event, p_obj, p_function) {
var _local2 = gDispatcher_listeners[p_event];
if (_local2 == undefined) {
return(undefined);
}
var _local3 = $indexOfListener(_local2, p_obj, p_function);
if (_local3 != -1) {
_local2.splice(_local3, 1);
}
}
function removeAllEventListeners(p_event) {
if (p_event == undefined) {
delete gDispatcher_listeners;
} else {
delete gDispatcher_listeners[p_event];
}
}
static var $instance = undefined;
}
Symbol 484 MovieClip [__Packages.com.ndimedia.utils.Proxy] Frame 0
class com.ndimedia.utils.Proxy
{
function Proxy () {
}
static function create(oTarget, fFunction) {
var aParameters = new Array();
var _local2 = 2;
while (_local2 < arguments.length) {
aParameters[_local2 - 2] = arguments[_local2];
_local2++;
}
var _local4 = function () {
var _local2 = arguments.concat(aParameters);
fFunction.apply(oTarget, _local2);
};
return(_local4);
}
}
Symbol 485 MovieClip [__Packages.com.ndimedia.bedrockbowling.managers.InputManager] Frame 0
class com.ndimedia.bedrockbowling.managers.InputManager extends com.warnerbros.games.managers.BaseInputManager
{
function InputManager () {
super();
}
static function init() {
com.warnerbros.games.managers.BaseInputManager.NUM_STATES = 4;
com.warnerbros.games.managers.BaseInputManager.keyMap = new Array(com.warnerbros.games.managers.BaseInputManager.NUM_STATES);
com.warnerbros.games.managers.BaseInputManager.inputState = new Array(com.warnerbros.games.managers.BaseInputManager.NUM_STATES);
com.warnerbros.games.managers.BaseInputManager.keyMap[LEFT] = 37;
com.warnerbros.games.managers.BaseInputManager.keyMap[RIGHT] = 39;
com.warnerbros.games.managers.BaseInputManager.keyMap[THROW] = 32;
com.warnerbros.games.managers.BaseInputManager.inputState[LEFT] = false;
com.warnerbros.games.managers.BaseInputManager.inputState[RIGHT] = false;
com.warnerbros.games.managers.BaseInputManager.inputState[THROW] = false;
var _local1 = new Object();
_local1.onKeyUp = function () {
switch (Key.getCode()) {
case com.ndimedia.bedrockbowling.managers.InputManager.SPACEBAR :
com.warnerbros.games.managers.BaseInputManager.inputState[com.ndimedia.bedrockbowling.managers.InputManager.THROW] = false;
return;
case com.ndimedia.bedrockbowling.managers.InputManager.LEFT_ARROW :
com.warnerbros.games.managers.BaseInputManager.inputState[com.ndimedia.bedrockbowling.managers.InputManager.LEFT] = false;
return;
case com.ndimedia.bedrockbowling.managers.InputManager.RIGHT_ARROW :
com.warnerbros.games.managers.BaseInputManager.inputState[com.ndimedia.bedrockbowling.managers.InputManager.RIGHT] = false;
}
};
Key.addListener(_local1);
com.warnerbros.games.managers.BaseInputManager.initialized = true;
}
static function processInput() {
if (!com.warnerbros.games.managers.BaseInputManager.initialized) {
init();
}
processKeyboardInput();
}
static function processKeyboardInput() {
com.warnerbros.games.managers.BaseInputManager.inputState[LEFT] = Key.isDown(com.warnerbros.games.managers.BaseInputManager.keyMap[LEFT]);
com.warnerbros.games.managers.BaseInputManager.inputState[RIGHT] = Key.isDown(com.warnerbros.games.managers.BaseInputManager.keyMap[RIGHT]);
com.warnerbros.games.managers.BaseInputManager.inputState[THROW] = Key.isDown(com.warnerbros.games.managers.BaseInputManager.keyMap[THROW]);
}
static var LEFT = 1;
static var RIGHT = 2;
static var THROW = 3;
static var SPACEBAR = 32;
static var LEFT_ARROW = 37;
static var RIGHT_ARROW = 39;
static var ENTER = 13;
}
Symbol 486 MovieClip [__Packages.com.ndimedia.bedrockbowling.ViewManager] Frame 0
class com.ndimedia.bedrockbowling.ViewManager
{
var m_views;
function ViewManager () {
m_views = {};
}
function show(view) {
for (var _local2 in m_views) {
m_views[_local2].mc._x = 3000;
}
if (m_views[view._name]) {
m_views[view._name].mc._x = 0;
return(true);
}
return(false);
}
function hide(view) {
m_views[view._name].mc._x = 3000;
}
function addView(view) {
if (view != _level0) {
var _local3 = {mc:view, initX:view._x};
m_views[view._name] = _local3;
}
}
}
Symbol 487 MovieClip [__Packages.com.ndimedia.bedrockbowling.views.AimingView] Frame 0
class com.ndimedia.bedrockbowling.views.AimingView
{
var m_scope, m_btnOK, m_viewMonitor, m_specialMoveHandler, m_cam, m_downedPins, m_aimingValue, m_remainingPins, m_ballPosition, m_ballSpeed, m_ballCurve, m_ball, m_leftWasReleased, m_rightWasReleased, m_collisionResolver, m_gutter, m_ballDisappearance, m_pinsCoordinates, m_spin, dispatchEvent;
function AimingView (scope) {
com.gskinner.GDispatcher.initialize(this);
m_scope = scope;
m_btnOK = m_scope.ok_btn;
m_viewMonitor = new com.ndimedia.display.MovieClipMonitor();
m_specialMoveHandler = com.ndimedia.utils.Proxy.create(this, _onSpecialMoveStopped);
m_scope.rollingBall_mc._x = 3000;
m_scope.spinningBall_mc._x = 3000;
m_scope.aimingBall_mc.swapDepths(1040000);
m_scope.aimingBall_mc._x = 3000;
m_cam = {x:0, y:312, z:-50, ry:0.25};
findSinCosY(m_cam);
m_downedPins = 0;
}
function get aimingValue() {
com.ndimedia.Logger.warn("Property AimingView::aimingValue hasn't been coded yet...");
return(m_aimingValue);
}
function startAiming(remainingPins) {
_placePins();
m_scope.specialMoves_mc._x = 3000;
m_scope.specialMoves_mc.stop();
m_scope.aimingBall_mc._x = 250;
m_scope.aimingBall_mc.onEnterFrame = com.ndimedia.utils.Proxy.create(this, _aim);
m_btnOK._visible = true;
m_btnOK.onRelease = com.ndimedia.utils.Proxy.create(this, _aimingComplete);
m_scope.spinningBall_mc._x = 3000;
_showRemainingPins(remainingPins);
}
function doSpecialMove(speed, remainingPins) {
trace("doSpecialMove");
m_scope.specialMoves_mc._x = 165;
m_remainingPins = remainingPins;
var _local2 = new com.ndimedia.events.Event(SPECIAL_MOVE_DONE, this);
var _local3 = 0;
if (speed >= 40) {
m_scope.specialMoves_mc.gotoAndPlay("threeBalls");
_local3 = 85;
_local2.addData(new com.ndimedia.events.EventData("specialPoints", 30));
} else if (speed >= 25) {
m_scope.specialMoves_mc.gotoAndPlay("twoBalls");
_local3 = 173;
_local2.addData(new com.ndimedia.events.EventData("specialPoints", 20));
} else if (speed > 0) {
m_scope.specialMoves_mc.gotoAndPlay("zigZag");
_local3 = 331;
_local2.addData(new com.ndimedia.events.EventData("specialPoints", -1));
} else {
m_scope.specialMoves_mc.gotoAndPlay("crumble");
_local3 = 250;
_local2.addData(new com.ndimedia.events.EventData("specialPoints", 0));
}
m_viewMonitor.monitorAtOrPassFrame(m_scope.specialMoves_mc, _local3, _local2, 33, true);
m_viewMonitor.removeEventListener(SPECIAL_MOVE_DONE, m_specialMoveHandler);
m_viewMonitor.addEventListener(SPECIAL_MOVE_DONE, m_specialMoveHandler);
}
function killThrow() {
m_downedPins = 0;
m_remainingPins = remainingPins;
}
function throwBall(speed, remainingPins) {
var _local2 = (ROLL_START_X_MAX - ROLL_START_X_MIN) / 2;
m_ballPosition = _local2;
m_scope.rollingBall_mc._x = m_ballPosition;
m_scope.rollingBall_mc._y = ROLL_START_Y;
m_scope.rollingBall_mc._alpha = 100;
m_ballSpeed = ((speed < MINIMUM_SPEED) ? (MINIMUM_SPEED) : (speed));
m_ballCurve = ((aimingValue - _local2) / (_local2 / 3.5)) * (m_ballSpeed / MINIMUM_SPEED);
trace("m_ballCurve: " + m_ballCurve);
m_ball = new com.ndimedia.bedrockbowling.Ball(m_scope.rollingBall_mc);
m_scope.rollingBall_mc.onEnterFrame = com.ndimedia.utils.Proxy.create(this, _rollBall);
m_scope.rollingBall_mc.x = 250;
m_scope.rollingBall_mc.z = 0;
m_leftWasReleased = true;
m_rightWasReleased = true;
m_collisionResolver = new com.ndimedia.bedrockbowling.CollisionResolver(m_scope, remainingPins);
m_collisionResolver.onPinHit = com.ndimedia.utils.Proxy.create(this, _animatePin);
m_gutter = null;
m_downedPins = 0;
m_remainingPins = remainingPins;
m_ballDisappearance = null;
m_pinsCoordinates = m_collisionResolver.getPinsCoordinates();
_showRemainingPins(remainingPins);
m_spin = 0;
_displayBallCurve();
m_scope.spinningBall_mc._x = 415;
m_scope.spinningBall_mc.gotoAndPlay("idle");
}
function get remainingPins() {
return(m_remainingPins);
}
function get downedPins() {
return(m_downedPins);
}
function endRoll() {
trace("endRoll");
m_scope.rollingBall_mc.onEnterFrame = null;
m_collisionResolver.stop();
delete m_collisionResolver;
var _local2 = new com.ndimedia.events.Event(END_ROLL, this);
dispatchEvent(_local2);
}
function _aimingComplete() {
var _local2 = new com.ndimedia.events.Event(AIMING_DONE, this);
_local2.addData(new com.ndimedia.events.EventData("aimingValue", aimingValue));
m_scope.aimingBall_mc.onEnterFrame = null;
m_aimingValue = ((m_scope.aimingBall_mc._x - AIM_MIN) / (AIM_MAX - AIM_MIN)) * (ROLL_START_X_MAX - ROLL_START_X_MIN);
m_scope.aimingBall_mc._x = 2500;
m_btnOK._visible = false;
dispatchEvent(_local2);
}
function _aim() {
if (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.LEFT)) {
if (m_scope.aimingBall_mc._x >= (AIM_MIN + 2)) {
m_scope.aimingBall_mc._x = m_scope.aimingBall_mc._x - 2;
}
} else if (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.RIGHT)) {
if (m_scope.aimingBall_mc._x <= (AIM_MAX - 2)) {
m_scope.aimingBall_mc._x = m_scope.aimingBall_mc._x + 2;
}
}
if (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.THROW)) {
_aimingComplete();
}
}
function _rollBall() {
var _local5 = 250;
var _local4 = 240;
var _local3 = 160;
var b = m_scope.rollingBall_mc;
if (!m_gutter) {
if (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.LEFT) && (m_leftWasReleased)) {
m_leftWasReleased = false;
m_ballCurve = m_ballCurve + ((m_spin = m_spin - CURVE_SPEED));
_displayBallCurve();
} else if (com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.RIGHT) && (m_rightWasReleased)) {
m_rightWasReleased = false;
m_ballCurve = m_ballCurve + ((m_spin = m_spin + CURVE_SPEED));
_displayBallCurve();
}
if (!com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.LEFT)) {
m_leftWasReleased = true;
}
if (!com.warnerbros.games.managers.BaseInputManager.checkInputState(com.ndimedia.bedrockbowling.managers.InputManager.RIGHT)) {
m_rightWasReleased = true;
}
var _local2 = m_collisionResolver.__get__ball();
b.y = 0;
b.x = -250 + _local2.x;
b.z = 2000 - _local2.z;
perspectiveProjection(b, m_cam, true);
if (_local2.x <= (ROLL_START_X_MIN - 70)) {
m_gutter = LEFT_GUTTER;
} else if (_local2.x >= (ROLL_START_X_MAX + 70)) {
m_gutter = RIGHT_GUTTER;
} else {
m_collisionResolver.updateBall(m_ballCurve * 2, m_ballSpeed);
if (_local2.z <= 5) {
if (!m_ballDisappearance) {
var scope = this;
var watcher = setInterval(function () {
if (b._alpha > 0) {
b._alpha = b._alpha - 20;
} else {
clearInterval(watcher);
scope.endRoll();
}
}, 33);
m_ballDisappearance = watcher;
}
}
}
} else {
var _local2 = m_collisionResolver.__get__ball();
if (m_gutter == LEFT_GUTTER) {
_local2.x = ROLL_START_X_MIN - 100;
} else if (m_gutter == RIGHT_GUTTER) {
_local2.x = ROLL_START_X_MAX + 100;
}
b.z = b.z + (m_ballSpeed / 2);
b.y = -25;
b.x = -250 + _local2.x;
b.z = 2000 - _local2.z;
perspectiveProjection(b, m_cam, true);
if (_local2.z <= 5) {
if (!m_ballDisappearance) {
var scope = this;
var watcher = setInterval(function () {
b._alpha = 0;
clearInterval(watcher);
scope.endRoll();
}, 250);
m_ballDisappearance = watcher;
}
}
}
}
function _animatePin(id, removePin) {
var _local4 = ["pin_back", "pin_left", "pin_right"];
var _local3 = random(3);
m_scope[("pin" + id) + "_mc"].gotoAndPlay(_local4[_local3]);
if (removePin != false) {
_removePin(id);
var b = m_scope.rollingBall_mc;
if (!m_ballDisappearance) {
var _local2 = new Sound();
_local2.attachSound("Pins.mp3");
_local2.start(0, 0);
var scope = this;
var watcher = setInterval(function () {
b._alpha = 0;
clearInterval(watcher);
scope.endRoll();
}, 250);
m_ballDisappearance = watcher;
}
}
}
function _removePin(id) {
m_downedPins++;
var _local2 = 0;
while (_local2 < m_remainingPins.length) {
if (m_remainingPins[_local2] == id) {
m_remainingPins.splice(_local2, 1);
break;
}
_local2++;
}
}
function _showRemainingPins(pins) {
var _local4 = 1;
while (_local4 < 11) {
m_scope[("pin" + _local4) + "_mc"].gotoAndStop(1);
m_scope[("pin" + _local4) + "_mc"]._visible = false;
_local4++;
}
var _local2 = 0;
while (_local2 < pins.length) {
m_scope[("pin" + pins[_local2]) + "_mc"]._visible = true;
_local2++;
}
if (m_pinsCoordinates) {
_local2 = 0;
while (_local2 < m_pinsCoordinates.length) {
var _local3 = m_scope[("pin" + m_pinsCoordinates[_local2].id) + "_mc"];
_local3.y = 0;
_local3.x = -250 + m_pinsCoordinates[_local2].x;
_local3.z = 2000 - m_pinsCoordinates[_local2].z;
perspectiveProjection(_local3, m_cam);
_local2++;
}
}
}
function _testPerspective() {
var _local3 = m_scope.attachMovie("empty_mc", "p1", m_scope.getNextHighestDepth(), {x:-250, y:0, z:2000});
var _local6 = m_scope.attachMovie("empty_mc", "p2", m_scope.getNextHighestDepth(), {x:250, y:0, z:2000});
var _local5 = m_scope.attachMovie("empty_mc", "p3", m_scope.getNextHighestDepth(), {x:250, y:0, z:5});
var _local4 = m_scope.attachMovie("empty_mc", "p4", m_scope.getNextHighestDepth(), {x:-250, y:0, z:5});
perspectiveProjection(_local3, m_cam);
perspectiveProjection(_local6, m_cam);
perspectiveProjection(_local5, m_cam);
perspectiveProjection(_local4, m_cam);
var _local2 = m_scope.attachMovie("empty_mc", "board", m_scope.getNextHighestDepth());
_local2.beginFill(16711782, 50);
_local2.moveTo(_local3._x, _local3._y);
_local2.lineTo(_local6._x, _local6._y);
_local2.lineTo(_local5._x, _local5._y);
_local2.lineTo(_local4._x, _local4._y);
_local2.lineTo(_local3._x, _local3._y);
_local2.endFill();
}
function perspectiveProjection(mc, cam, adjustScale) {
var _local9 = 246;
var _local7 = 153;
var _local4 = mc.x - cam.x;
var _local6 = mc.y - cam.y;
var _local3 = mc.z - cam.z;
var _local8 = (_local3 * cam.cy) + (_local4 * cam.sy);
_local4 = (_local4 * cam.cy) - (_local3 * cam.sy);
_local3 = _local8;
var _local10 = 200;
var _local5 = _local10 / _local3;
mc._x = (_local4 * _local5) + _local9;
mc._y = ((-_local6) * _local5) + _local7;
if (adjustScale) {
mc._xscale = (mc._yscale = 100 * _local5);
}
mc.swapDepths(-mc.z);
}
function findSinCosY(obj) {
obj.cy = Math.cos((obj.ry * Math.PI) / 180);
obj.sy = Math.sin((obj.ry * Math.PI) / 180);
}
function _placePins() {
var _local3 = 201;
while (_local3 < 211) {
m_scope[("pin" + _local3) + "_mc"].gotoAndStop(1);
_local3++;
}
var _local2 = 101;
while (_local2 < 111) {
m_scope[("pin" + _local2) + "_mc"].gotoAndStop(1);
_local2++;
}
}
function _onSpecialMoveStopped(evt) {
if (evt.__get__data().specialPoints == -1) {
var _local4 = 0;
while (_local4 < m_remainingPins.length) {
_animatePin(m_remainingPins[_local4], false);
m_downedPins++;
_local4++;
}
} else if (evt.__get__data().specialPoints == 20) {
var _local4 = 0;
while (_local4 < m_remainingPins.length) {
_animatePin(m_remainingPins[_local4], false);
_local4++;
}
var _local3 = 201;
while (_local3 < 211) {
_animatePin(_local3, false);
_local3++;
}
m_downedPins = m_downedPins + 10;
} else if (evt.__get__data().specialPoints == 30) {
var _local4 = 0;
while (_local4 < m_remainingPins.length) {
_animatePin(m_remainingPins[_local4], false);
_local4++;
}
var _local3 = 201;
while (_local3 < 211) {
_animatePin(_local3, false);
_local3++;
}
var _local2 = 101;
while (_local2 < 111) {
_animatePin(_local2, false);
_local2++;
}
m_downedPins = m_downedPins + 20;
} else {
trace("miss");
}
trace("_onSpecialMoveStopped");
var self = this;
var delay = setInterval(function () {
evt.bubble(self);
clearInterval(delay);
}, 1000);
}
function _displayBallCurve() {
var _local2 = m_scope.spinningBall_mc;
if (m_spin > 0) {
if (m_spin < 0.1) {
_local2.gotoAndStop("idle");
} else if (m_spin < 0.8) {
_local2.gotoAndPlay("med_spin_right");
} else {
_local2.gotoAndPlay("twirl_right");
}
} else if (m_spin > -0.1) {
_local2.gotoAndStop("idle");
} else if (m_spin > -0.8) {
_local2.gotoAndPlay("med_spin_left");
} else {
_local2.gotoAndPlay("twirl_left");
}
}
static var AIMING_DONE = "aimingDone";
static var END_ROLL = "endRoll";
static var SPECIAL_MOVE_DONE = "specialMoveDone";
static var AIM_MIN = 160;
static var AIM_MAX = 340;
static var ROLL_START_X_MIN = 0;
static var ROLL_START_X_MAX = 500;
static var ROLL_END_X_MIN = 205;
static var ROLL_END_X_MAX = 280;
static var ROLL_START_Y = 375;
static var ROLL_END_Y = 183;
static var CURVE_SPEED = 0.2;
static var GUTTER_WIDTH = 1;
static var LEFT_GUTTER = 1;
static var RIGHT_GUTTER = 2;
static var MINIMUM_SPEED = 10;
}
Symbol 488 MovieClip [__Packages.com.ndimedia.bedrockbowling.Ball] Frame 0
class com.ndimedia.bedrockbowling.Ball
{
var m_view;
function Ball (view) {
m_view = view;
}
}
Symbol 489 MovieClip [__Packages.com.ndimedia.bedrockbowling.CollisionResolver] Frame 0
class com.ndimedia.bedrockbowling.CollisionResolver
{
var m_view, m_upPins, m_downedPins, m_ball;
function CollisionResolver (scope, remainingPins) {
m_view = scope.attachMovie("alley_mc", "collisionResolver_mc", scope.getNextHighestDepth(), {_x:3000});
m_view._xscale = (m_view._yscale = 10);
m_view.onPinHit = com.ndimedia.utils.Proxy.create(this, _pinHit);
m_upPins = remainingPins || ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
var scope = this;
var delay = setInterval(function () {
scope._displayPins();
clearInterval(delay);
}, 50);
m_downedPins = new Array();
m_ball = {oldX:null};
}
function get ball() {
return({x:m_view.ball._x, z:m_view.ball._y});
}
function getPinsCoordinates() {
var _local4 = [];
var _local2 = 0;
while (_local2 < m_upPins.length) {
var _local3 = {};
_local3.id = m_upPins[_local2];
_local3.x = m_view["pin_" + m_upPins[_local2]]._x;
_local3.z = m_view["pin_" + m_upPins[_local2]]._y;
_local4.push(_local3);
_local2++;
}
return(_local4);
}
function updateBall(curve, speed) {
m_view.ball.vx = curve;
m_view.ball.vy = -speed;
}
function stop() {
m_view.removeMovieClip();
}
function onPinHit() {
}
function _displayPins() {
var _local3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var _local4 = 0;
while (_local4 < m_upPins.length) {
var _local2 = 0;
while (_local2 < _local3.length) {
if (m_upPins[_local4] == _local3[_local2]) {
_local3.splice(_local2, 1);
break;
}
_local2++;
}
_local4++;
}
m_view.hidePins(_local3);
}
function _pinHit(pin) {
onPinHit(pin.id);
}
}
Symbol 490 MovieClip [__Packages.com.ndimedia.Logger] Frame 0
class com.ndimedia.Logger
{
static var m_instance;
function Logger () {
}
static function _getInstance() {
if (!m_instance) {
m_instance = new LuminicBox.Log.Logger("ndiLogger");
m_instance.addPublisher(new LuminicBox.Log.ConsolePublisher());
}
return(m_instance);
}
static function debug() {
_getInstance().debug(arguments[0]);
}
static function info() {
_getInstance().info(arguments[0]);
}
static function warn() {
_getInstance().warn(arguments[0]);
}
static function error() {
_getInstance().error(arguments[0]);
}
static function fatal() {
_getInstance().fatal(arguments[0]);
}
}
Symbol 491 MovieClip [__Packages.LuminicBox.Log.Logger] Frame 0
class LuminicBox.Log.Logger
{
var _loggerId, _level, _publishers, _filters;
function Logger (logId) {
if (logId && (logId.length > 0)) {
_loggerId = logId;
}
_level = LuminicBox.Log.Level.LOG;
_publishers = new Array();
_filters = new Array();
}
function setLevel(level) {
_level = level;
}
function addPublisher(publisher) {
if (!_publishers[publisher.toString()]) {
_publishers[publisher.toString()] = publisher;
}
}
function removePublisher(publisher) {
delete _publishers[publisher.toString()];
}
function getPublishers() {
return(_publishers);
}
function publish(argument, level) {
if (level.getValue() >= _level.getValue()) {
var _local2 = new LuminicBox.Log.LogEvent(_loggerId, argument, level);
for (var _local3 in _publishers) {
LuminicBox.Log.IPublisher(_publishers[_local3]).publish(_local2);
}
}
}
function log(argument) {
publish(argument, LuminicBox.Log.Level.LOG);
}
function debug(argument) {
publish(argument, LuminicBox.Log.Level.DEBUG);
}
function info(argument) {
publish(argument, LuminicBox.Log.Level.INFO);
}
function warn(argument) {
publish(argument, LuminicBox.Log.Level.WARN);
}
function error(argument) {
publish(argument, LuminicBox.Log.Level.ERROR);
}
function fatal(argument) {
publish(argument, LuminicBox.Log.Level.FATAL);
}
}
Symbol 492 MovieClip [__Packages.LuminicBox.Log.Level] Frame 0
class LuminicBox.Log.Level
{
var _name, _value;
function Level (name, value) {
_name = name;
_value = value;
}
function getName() {
return(_name);
}
function getValue() {
return(_value);
}
function toString() {
return(getName());
}
static var ALL = new LuminicBox.Log.Level("ALL", 1);
static var LOG = new LuminicBox.Log.Level("LOG", 1);
static var DEBUG = new LuminicBox.Log.Level("DEBUG", 2);
static var INFO = new LuminicBox.Log.Level("INFO", 4);
static var WARN = new LuminicBox.Log.Level("WARN", 8);
static var ERROR = new LuminicBox.Log.Level("ERROR", 16);
static var FATAL = new LuminicBox.Log.Level("FATAL", 32);
static var NONE = new LuminicBox.Log.Level("NONE", 1024);
}
Symbol 493 MovieClip [__Packages.LuminicBox.Log.IPublisher] Frame 0
interface LuminicBox.Log.IPublisher
{
}
Symbol 494 MovieClip [__Packages.LuminicBox.Log.LogEvent] Frame 0
class LuminicBox.Log.LogEvent
{
var loggerId, argument, level, time;
function LogEvent (loggerId, argument, level) {
this.loggerId = loggerId;
this.argument = argument;
this.level = level;
time = new Date();
}
static function serialize(logEvent) {
var _local1 = new Object();
_local1.loggerId = logEvent.loggerId;
_local1.time = logEvent.time;
_local1.levelName = logEvent.level.getName();
_local1.argument = logEvent.argument;
return(_local1);
}
static function deserialize(o) {
var _local3 = LuminicBox.Log.Level["" + o.levelName];
var _local1 = new LuminicBox.Log.LogEvent(o.loggerId, o.argument, _local3);
_local1.time = o.time;
return(_local1);
}
}
Symbol 495 MovieClip [__Packages.LuminicBox.Log.ConsolePublisher] Frame 0
class LuminicBox.Log.ConsolePublisher implements LuminicBox.Log.IPublisher
{
var _maxDepth;
function ConsolePublisher () {
_maxDepth = 4;
}
function set maxDepth(value) {
_maxDepth = ((_maxDepth > 255) ? 255 : (value));
//return(maxDepth);
}
function get maxDepth() {
return(_maxDepth);
}
function toString() {
return("ConsolePublisher");
}
function publish(e) {
var _local2 = LuminicBox.Log.LogEvent.serialize(e);
_local2.argument = serializeObj(_local2.argument, 1);
var _local3 = new LocalConnection();
_local3.send("_luminicbox_log_console", "log", _local2);
}
function serializeObj(o, depth) {
var _local9 = getType(o);
var _local8 = new Object();
if (!_local9.inspectable) {
_local8.value = o;
} else if (_local9.stringify) {
_local8.value = o + "";
} else if (depth <= _maxDepth) {
if ((_local9.name == "movieclip") || (_local9.name == "button")) {
_local8.id = o + "";
}
var _local4 = new Array();
if (o instanceof Array) {
var _local2 = 0;
while (_local2 < o.length) {
_local4.push({property:_local2, value:serializeObj(o[_local2], depth + 1)});
_local2++;
}
} else {
for (var _local10 in o) {
_local4.push({property:_local10, value:serializeObj(o[_local10], depth + 1)});
}
}
_local8.value = _local4;
} else {
_local8.reachLimit = true;
}
_local8.type = _local9.name;
return(_local8);
}
function getType(o) {
var _local2 = typeof(o);
var _local1 = new Object();
_local1.inspectable = true;
_local1.name = _local2;
if (((((_local2 == "string") || (_local2 == "boolean")) || (_local2 == "number")) || (_local2 == "undefined")) || (_local2 == "null")) {
_local1.inspectable = false;
} else if (o instanceof Date) {
_local1.inspectable = false;
_local1.name = "date";
} else if (o instanceof Array) {
_local1.name = "array";
} else if (o instanceof Button) {
_local1.name = "button";
} else if (o instanceof MovieClip) {
_local1.name = "movieclip";
} else if (o instanceof XML) {
_local1.name = "xml";
_local1.stringify = true;
} else if (o instanceof XMLNode) {
_local1.name = "xmlnode";
_local1.stringify = true;
} else if (o instanceof Color) {
_local1.name = "color";
}
return(_local1);
}
var _version = 0.1;
}
Symbol 496 MovieClip [__Packages.com.ndimedia.bedrockbowling.views.RunningView] Frame 0
class com.ndimedia.bedrockbowling.views.RunningView
{
var m_model, m_scope, m_scoreBoard, m_runHint, m_runningMeter, m_bgRoll, onKeyDown, dispatchEvent;
function RunningView (scope, model) {
com.gskinner.GDispatcher.initialize(this);
m_model = model;
m_scope = scope;
m_scoreBoard = m_scope.scoreBoard_mc;
m_runHint = m_scope.runHint_mc;
m_runHint.initX = m_runHint._x;
m_runningMeter = m_scope.runningMeter_mc;
m_runningMeter._x = 3000;
hideRunHint();
}
function init() {
m_scope.ok_btn._x = 3000;
m_scoreBoard._x = 3000;
m_bgRoll.reset();
}
function showWarning() {
m_scope.throwSign_mc._x = 450;
}
function hideWarning() {
m_scope.throwSign_mc._x = 3000;
}
function showScore() {
m_scope.ok_btn._x = 390;
m_scope.ok_btn.onRelease = com.ndimedia.utils.Proxy.create(this, hideScore);
m_runningMeter._x = 3000;
onKeyDown = function () {
if (Key.isDown(32)) {
this.hideScore();
Key.removeListener(this);
}
};
Key.addListener(this);
m_scoreBoard._x = 0;
}
function hideScore() {
trace("hideScore()");
m_scope.ok_btn.onRelease = null;
Key.removeListener(this);
var _local2 = new com.ndimedia.events.Event(HIDE_SCORE, this);
dispatchEvent(_local2);
}
function changeFrameScore(evt) {
var _local3 = m_scoreBoard.container_mc["frame" + evt.__get__target().id];
var _local2 = evt.__get__target();
if (_local2.id != 10) {
if (_local2.strike) {
_local3.extra_mc.gotoAndStop("strike");
if (_local2.closed) {
_local3.frameScore_field.text = _local2.score;
} else {
_local3.frameScore_field.text = "";
}
} else if (_local2.spare) {
_local3.extra_mc.gotoAndStop("spare");
_local3.frameScore_field.text = _local2.throw1;
} else {
_local3.frameScore_field.text = _local2.throw1;
if (_local2.closed) {
_local3.extra_mc.extra_field.text = _local2.throw2;
}
}
if (_local2.closed) {
_local3.gameScore_field.text = evt.__get__data().gameScore;
}
} else {
if (_local2.throw1 >= 10) {
_local3.throw1_mc.gotoAndStop("strike");
} else if (((_local2.throw1 + _local2.throw2) >= 10) && (_local2.throw2 != undefined)) {
_local3.throw1_mc.gotoAndStop("spare");
} else {
_local3.throw1_mc.extra_field.text = _local2.throw1;
}
if (_local2.throw2 != undefined) {
if (_local2.throw2 >= 10) {
_local3.throw2_mc.gotoAndStop("strike");
} else if (((_local2.throw2 + _local2.throw3) >= 10) && (_local2.throw3 != undefined)) {
_local3.throw2_mc.gotoAndStop("spare");
} else {
_local3.throw2_mc.extra_field.text = _local2.throw2;
}
}
if (_local2.throw3 != undefined) {
if (_local2.throw3 >= 10) {
_local3.throw3_mc.gotoAndStop("strike");
} else {
_local3.throw3_mc.extra_field.text = _local2.throw3;
}
}
if (_local2.closed) {
_local3.gameScore_field.text = evt.__get__data().gameScore;
}
}
}
function showRunHint() {
m_runHint._x = m_runHint.initX;
}
function hideRunHint() {
m_runHint._x = 3000;
}
function moveBackground(amount) {
if (!m_bgRoll) {
m_bgRoll = new com.ndimedia.display.BackgroundRoll(m_scope.runBG_mc.bgStart_mc, m_scope.runBG_mc.bgLoop_mc, m_scope.runBG_mc.bgEnd_mc, 2);
}
m_bgRoll.move(amount / BG_MOVEMENT_DIVIDER);
m_runningMeter.mask_mc._xscale = m_model.runProgress * 100;
m_runningMeter._x = 245;
}
static var BG_MOVEMENT_DIVIDER = 2.5;
static var HIDE_SCORE = "hideScore";
}
Symbol 497 MovieClip [__Packages.com.ndimedia.display.BackgroundRoll] Frame 0
class com.ndimedia.display.BackgroundRoll
{
var m_totalLoops, m_clips, m_clipIndex, m_position, m_totalWidth;
function BackgroundRoll (start, loop, end, totalLoops) {
m_totalLoops = totalLoops || 9999;
m_clips = new Array();
m_clipIndex = 0;
m_clips.push(start);
m_clips.push(loop);
var _local2 = 1;
while (_local2 < totalLoops) {
m_clips.push(null);
_local2++;
}
m_clips.push(end);
m_position = 0;
m_totalWidth = 0;
}
function reset() {
var _local2 = 2;
while (_local2 < (m_clips.length - 1)) {
m_clips[_local2].removeMovieClip();
m_clips[_local2] = null;
_local2++;
}
m_clips[0]._x = 0;
m_clips[1]._x = 3000;
m_clips[m_clips.length - 1]._x = 3000;
m_position = 0;
m_clipIndex = 0;
m_totalWidth = 0;
}
function move(amount) {
m_position = m_position - amount;
var _local4 = false;
var _local2 = m_clips[m_clipIndex];
var _local3 = m_clips[m_clipIndex + 1];
var _local5;
if (m_clips[m_clipIndex - 1]) {
_local2._x = m_position + m_totalWidth;
} else {
_local2._x = m_position;
}
if (_local2._x < _getItemMaxPosition(_local2)) {
var _local6 = m_clipIndex + 1;
m_totalWidth = m_totalWidth + _local2._width;
_local5 = _local2._x + _local2._width;
_local2._x = 3000;
_local2 = _local3;
_local3 = m_clips[m_clipIndex + 2];
if (_local3 == null) {
_local3 = m_clips[1].duplicateMovieClip("loop" + _local6, _local6, {_y:m_clips[1]._y});
m_clips[m_clipIndex + 2] = _local3;
}
_local4 = true;
}
if (_local5) {
_local2._x = _local5;
}
_local3._x = (_local2._x + _local2._width) - 1;
if (_local4) {
m_clipIndex++;
}
}
function _getItemMaxPosition(item) {
return(-item._width);
}
}
Symbol 498 MovieClip [__Packages.com.ndimedia.bedrockbowling.Score] Frame 0
class com.ndimedia.bedrockbowling.Score
{
var m_frameMinusTwo, m_frameMinusOne, m_totalScore, m_currentFrame, m_currentThrow, m_bonusMode, m_frames, dispatchEvent;
function Score () {
com.gskinner.GDispatcher.initialize(this);
m_frameMinusTwo = 0;
m_frameMinusOne = 0;
m_totalScore = 0;
m_currentFrame = 0;
m_currentThrow = 0;
m_bonusMode = 0;
m_frames = new Array();
}
function get currentFrame() {
return(m_frames[m_currentFrame]);
}
function get closed() {
return(m_bonusMode == -1);
}
function get totalScore() {
return(m_totalScore);
}
function setFrame(n) {
m_currentFrame = n;
var _local2 = new com.ndimedia.bedrockbowling.Frame(n);
m_frames[m_currentFrame] = _local2;
_local2.addEventListener(com.ndimedia.bedrockbowling.Frame.CHANGE, com.ndimedia.utils.Proxy.create(this, _frameChange));
}
function setThrow(n) {
m_currentThrow = n;
}
function addTo(n) {
m_frames[m_currentFrame - 1].setThrow(null);
m_frames[m_currentFrame].setThrow(m_currentThrow);
if (m_currentFrame != 10) {
m_frames[m_currentFrame].addTo(n);
_addPoints(n);
} else if (m_currentThrow == 1) {
m_frames[m_currentFrame].addTo(n);
_addPoints(n);
} else if (m_currentThrow == 2) {
m_frames[m_currentFrame].addTo(n);
_addPoints(n);
if (m_frames[m_currentFrame].closed) {
m_bonusMode = -1;
}
} else {
m_frames[m_currentFrame].addTo(n);
_addPoints(n);
m_bonusMode = -1;
}
m_totalScore = 0;
var _local3 = 1;
while (_local3 <= m_frames.length) {
m_totalScore = m_totalScore + (m_frames[_local3].score || 0);
_local3++;
}
var _local4 = [];
var _local2 = 1;
while (_local2 <= m_frames.length) {
_local4.push(m_frames[_local2].score);
_local2++;
}
}
function _addPoints(n) {
trace("m_frames[m_currentFrame - 2].strike: " + m_frames[m_currentFrame - 2].strike);
if (m_frames[m_currentFrame - 2].strike && (m_currentThrow == 1)) {
var _local2;
if (m_frames[m_currentFrame - 1].strike) {
trace((("adding " + _local2) + " to frame ") + (m_currentFrame - 2));
trace("\tm_frames[m_currentFrame - 1].score = " + m_frames[m_currentFrame - 1].flatPoints);
trace("\tm_frames[m_currentFrame].score = " + m_frames[m_currentFrame].flatPoints);
_local2 = m_frames[m_currentFrame - 1].flatPoints + m_frames[m_currentFrame].flatPoints;
m_frames[m_currentFrame - 2].addTo(_local2, true);
_recountLastFrame();
}
}
if (m_frames[m_currentFrame - 1].strike && (m_currentThrow == 2)) {
m_frames[m_currentFrame - 1].addTo(m_frames[m_currentFrame].flatPoints, true);
_recountLastFrame();
}
if (m_frames[m_currentFrame - 1].spare && (m_currentThrow == 1)) {
m_frames[m_currentFrame - 1].addTo(n, true);
_recountLastFrame();
}
}
function _calculateUntil(frameNumber) {
var _local3 = 0;
var _local2 = 1;
while (_local2 <= frameNumber) {
_local3 = _local3 + m_frames[_local2].score;
_local2++;
}
return(_local3);
}
function _recountLastFrame() {
var _local2 = m_frames[m_currentFrame];
var _local3 = new com.ndimedia.events.Event(com.ndimedia.bedrockbowling.Frame.CHANGE, _local2);
if (_local2.__get__closed()) {
_local3.addData(new com.ndimedia.events.EventData("gameScore", _calculateUntil(_local2.__get__id())));
}
dispatchEvent(_local3);
}
function _frameChange(evt) {
if (m_currentFrame != 10) {
if (evt.__get__target().closed) {
evt.addData(new com.ndimedia.events.EventData("gameScore", _calculateUntil(evt.__get__target().id)));
}
} else {
trace("evt.target.closed = " + evt.__get__target().closed);
if (evt.__get__target().closed) {
evt.addData(new com.ndimedia.events.EventData("gameScore", _calculateUntil(evt.__get__target().id)));
}
}
evt.bubble(this);
}
}
Symbol 499 MovieClip [__Packages.com.ndimedia.bedrockbowling.Frame] Frame 0
class com.ndimedia.bedrockbowling.Frame
{
var m_strike, m_spare, m_score, m_closed, m_id, m_flatPoints, m_currentThrow, throw2, throw3, m_additionalPoints, throw1, dispatchEvent;
function Frame (id) {
com.gskinner.GDispatcher.initialize(this);
m_strike = false;
m_spare = false;
m_score = 0;
m_closed = false;
m_id = id;
}
function get id() {
return(m_id);
}
function get score() {
return(m_score);
}
function get flatPoints() {
return(m_flatPoints);
}
function get closed() {
return(m_closed);
}
function get strike() {
return(m_strike);
}
function get currenThrow() {
return(m_currentThrow);
}
function get spare() {
return(m_spare);
}
function _close() {
trace("closing frame " + id);
if (throw2 == undefined) {
throw2 = 0;
}
if (throw3 == undefined) {
throw3 = 0;
}
if (m_additionalPoints == undefined) {
m_additionalPoints = 0;
}
m_score = ((throw1 + throw2) + throw3) + m_additionalPoints;
m_closed = true;
}
function setThrow(n) {
m_currentThrow = n;
}
function addTo(sc, additionalPoints) {
if ((sc < 1) || (sc == undefined)) {
sc = 0;
}
if (!m_closed) {
if (id != 10) {
if (additionalPoints) {
m_additionalPoints = sc;
_close();
} else {
switch (m_currentThrow) {
case 1 :
if (sc >= 10) {
m_strike = true;
} else {
m_strike = false;
}
throw1 = sc;
m_flatPoints = sc;
break;
case 2 :
throw2 = sc;
m_flatPoints = throw1 + sc;
if ((throw1 + sc) >= 10) {
m_spare = true;
} else {
_close();
}
}
}
} else {
switch (m_currentThrow) {
case 1 :
throw1 = sc;
break;
case 2 :
throw2 = sc;
if (((throw1 + sc) >= 10) || (throw1 >= 10)) {
} else {
_close();
}
break;
case 3 :
throw3 = sc;
_close();
}
}
_propagateChange();
}
}
function _propagateChange(throwScore) {
var _local2 = new com.ndimedia.events.Event(CHANGE, this);
dispatchEvent(_local2);
}
static var CHANGE = "change";
static var NORMAL = 1;
static var SPARE = 2;
static var STRIKE = 3;
}
Symbol 37 MovieClip Frame 1
stop();
Symbol 37 MovieClip Frame 20
stop();
Symbol 37 MovieClip Frame 30
stop();
this._parent._parent.gotoAndPlay("instructions");
Symbol 40 MovieClip Frame 1
stop();
Symbol 40 MovieClip Frame 20
stop();
Symbol 40 MovieClip Frame 30
stop();
this.parent = this.parent || (this._parent);
this.parent.gotoAndPlay(this.destination);
Instance of Symbol 37 MovieClip in Symbol 45 MovieClip Frame 1
on (rollOver) {
gotoAndPlay ("over");
}
on (rollOut) {
gotoAndPlay ("idle");
}
on (release) {
gotoAndPlay ("click");
}
Instance of Symbol 40 MovieClip in Symbol 45 MovieClip Frame 1
on (rollOver) {
gotoAndPlay ("over");
}
on (rollOut) {
gotoAndPlay ("idle");
}
on (release) {
gotoAndPlay ("click");
this.parent = this._parent._parent;
this.destination = "play";
}
Symbol 92 MovieClip Frame 1
stop();
next_btn.onRelease = function () {
this._parent.gotoAndStop("_instruc_2");
};
Symbol 92 MovieClip Frame 10
stop();
next_btn.onRelease = function () {
this._parent.gotoAndStop("_instruc_3");
};
previous_btn.onRelease = function () {
this._parent.gotoAndStop("_instruc_1");
};
Symbol 92 MovieClip Frame 20
stop();
next_btn.onRelease = function () {
this._parent.gotoAndStop("_instruc_4");
};
previous_btn.onRelease = function () {
this._parent.gotoAndStop("_instruc_2");
};
Symbol 92 MovieClip Frame 30
stop();
play_btn.onRelease = function () {
this._parent._parent.gotoAndPlay("play");
};
previous_btn.onRelease = function () {
this._parent.gotoAndStop("_instruc_3");
};
Symbol 101 MovieClip Frame 1
stop();
Symbol 101 MovieClip Frame 20
stop();
Symbol 149 MovieClip Frame 52
stop();
Symbol 151 MovieClip Frame 91
stop();
Symbol 151 MovieClip Frame 182
stop();
Symbol 151 MovieClip Frame 250
stop();
Symbol 151 MovieClip Frame 341
stop();
Symbol 161 MovieClip Frame 1
stop();
Symbol 161 MovieClip Frame 28
gotoAndPlay ("med_spin_left");
Symbol 161 MovieClip Frame 39
gotoAndPlay ("med_spin_right");
Symbol 161 MovieClip Frame 52
gotoAndPlay ("twirl_left");
Symbol 215 MovieClip Frame 75
stop();
Symbol 216 MovieClip Frame 19
stop();
Symbol 227 MovieClip Frame 19
stop();
Symbol 293 MovieClip Frame 25
stop();
Symbol 304 MovieClip Frame 35
stop();
Symbol 314 MovieClip Frame 40
stop();
Symbol 344 MovieClip Frame 30
stop();
Symbol 357 MovieClip Frame 41
stop();
Symbol 405 MovieClip Frame 1
counter = 0;
Symbol 405 MovieClip Frame 37
counter++;
if (counter >= 2) {
stop();
} else {
gotoAndPlay (7);
}
Symbol 407 MovieClip Frame 10
stop();
Symbol 407 MovieClip Frame 20
stop();
Symbol 407 MovieClip Frame 30
stop();
Symbol 407 MovieClip Frame 40
stop();
Symbol 407 MovieClip Frame 50
stop();
Symbol 407 MovieClip Frame 60
stop();
Symbol 407 MovieClip Frame 70
stop();
Symbol 407 MovieClip Frame 80
stop();
Symbol 407 MovieClip Frame 90
stop();
Symbol 407 MovieClip Frame 100
stop();
Symbol 407 MovieClip Frame 110
stop();
Symbol 407 MovieClip Frame 120
stop();
Symbol 407 MovieClip Frame 130
stop();
Symbol 407 MovieClip Frame 140
stop();
Symbol 437 MovieClip Frame 1
stop();
Symbol 437 MovieClip Frame 10
stop();
Symbol 437 MovieClip Frame 20
stop();
Symbol 459 MovieClip Frame 1
stop();
Symbol 465 Button
on (release) {
gotoAndPlay ("start");
}