Frame 1
_root.startGame = function () {
_root.gameLogic.getWorld().clearWorldObjects();
_root.gameLogic = new com.midasplayer.bigbang.GameLogic();
_root.gameView = new com.midasplayer.bigbang.GameView();
_root.gameLogic.setGameView(_root.gameView);
_root.gameLogic.init(_root.gameBoardWrapper.gameBoard);
if (!useDummyProxy) {
_root._visible = false;
}
};
var useDummyProxy = false;
if (useDummyProxy) {
_root.proxySettings.btn_createGame.onRelease = function () {
_root.dummyProxy.updateParameters();
_level0.gameData = _root.dummyProxy.getGameData();
_root.proxySettings._visible = false;
_root.startGame();
};
_root.proxySettings.createNewSeed = function () {
var _local2 = Math.round(Math.random() * 2147483648);
this.randomSeed_.text = _local2;
trace("seed: " + _local2);
};
_root.proxySettings.btn_randomSeed.onRelease = function () {
_root.proxySettings.createNewSeed();
};
_root.btn_toggleProxySettings.onRelease = function () {
_root.proxySettings._visible = !_root.proxySettings._visible;
};
_root.dummyProxy = new com.midasplayer.bigbang.DummyProxy();
_root.dummyProxy.setParameterClip(_root.proxySettings);
_root.dummyProxy.showParameters();
_root.proxySettings.createNewSeed();
} else {
_root.proxySettings._visible = false;
_root.btn_toggleProxySettings._visible = false;
_root.startGame();
}
Symbol 25 MovieClip [electricbolt] Frame 10
this.removeMovieClip();
Symbol 47 MovieClip Frame 31
stop();
Symbol 116 MovieClip Frame 1
stop();
Symbol 116 MovieClip Frame 3
this.number.gotoAndStop(3);
this.number.onEnterFrame = function () {
if (this.startTime == undefined) {
this.startTime = getTimer();
}
var _local3 = getTimer() - this.startTime;
var _local2 = true;
if ((_local3 % 500) < 150) {
_local2 = false;
}
this._visible = _local2;
};
Symbol 117 MovieClip Frame 2
var mc = this.instructions;
mc.stop();
Symbol 117 MovieClip Frame 284
var mc = this.instructions;
var frame = ((mc._currentframe % mc._framesloaded) + 1);
if (mc._currentframe == mc._framesloaded) {
stop();
} else {
mc.gotoAndStop((mc._currentframe % mc._framesloaded) + 1);
}
Symbol 120 MovieClip [intro-instructions] Frame 1
this.logo.bgr._visible = false;
Symbol 120 MovieClip [intro-instructions] Frame 20
this.logo.bgr._visible = true;
Symbol 120 MovieClip [intro-instructions] Frame 140
var instrClip = this.instructions;
if (instrClip._currentframe < instrClip._framesloaded) {
instrClip.gotoAndStop(instrClip._currentframe + 1);
}
gotoAndPlay ("alien_loop");
Symbol 145 MovieClip Frame 58
_parent.gotoAndStop(1);
_parent._parent.gotoAndStop(1);
Symbol 154 MovieClip Frame 58
_parent.gotoAndStop(1);
_parent._parent.gotoAndStop(1);
Symbol 166 MovieClip Frame 58
_parent.gotoAndStop(1);
_parent._parent.gotoAndStop(1);
Symbol 174 MovieClip Frame 35
stop();
Symbol 178 MovieClip Frame 41
stop();
Symbol 187 MovieClip Frame 1
this.mouse_over.mouse_over.gotoAndStop(1);
Symbol 187 MovieClip Frame 2
this.mouse_over.mouse_over.gotoAndPlay(1);
Symbol 196 MovieClip Frame 39
this.removeMovieClip();
Symbol 210 MovieClip [pop_big_wrapper] Frame 25
this.removeMovieClip();
Symbol 213 MovieClip Frame 21
this.removeMovieClip();
Symbol 229 MovieClip [pop_medium_wrapper] Frame 1
var numEffects = 3;
var activeEffect = Math.floor(Math.random() * numEffects);
var i = 0;
while (i < numEffects) {
if (i != activeEffect) {
this[i]._visible = false;
}
i++;
}
Symbol 229 MovieClip [pop_medium_wrapper] Frame 25
this.removeMovieClip();
Symbol 233 MovieClip [pop_small_wrapper] Frame 25
this.removeMovieClip();
Symbol 245 MovieClip Frame 17
stop();
Symbol 251 MovieClip Frame 1
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_GAME_OVER, com.midasplayer.bigbang.GameView.SOUND_GAME_OVER_VOLUME);
Symbol 251 MovieClip Frame 83
_parent.gotoAndStop(_parent._currentframe + 1);
Symbol 297 MovieClip Frame 1
if (this.anim._currentframe == 3) {
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_GAME_SUMMARY_EFFECT, com.midasplayer.bigbang.GameView.SOUND_GAME_SUMMARY_EFFECT_VOLUME, true);
}
Symbol 297 MovieClip Frame 86
stop();
Symbol 298 MovieClip [game_over] Frame 1
stop();
Symbol 311 MovieClip Frame 1
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_BIGBANG, com.midasplayer.bigbang.GameView.SOUND_BIGBANG_VOLUME);
_root.gameBoardWrapper._visible = true;
_root.gameBoardWrapper.bolt._visible = true;
_root.gameBoardWrapper.bolt.gotoAndPlay(1);
Symbol 311 MovieClip Frame 141
var easeType = mx.transitions.easing.None.easeNone;
var begin = 100;
var end = 0;
var duration = 1;
var transition = (new mx.transitions.Tween(_root.gameBoardWrapper, "_alpha", easeType, begin, end, duration, true));
Symbol 311 MovieClip Frame 188
if ((_root.gameLogic.getState() == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) || (_root.gameLogic.getState() == com.midasplayer.gameCore.GameState.GAME_SUMMARY)) {
_root.gameBoardWrapper._visible = false;
}
_parent.gotoAndStop(_parent._currentframe + 1);
Symbol 331 MovieClip Frame 1
if (_root.gameLogic.getGameBoard().isBigBang()) {
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_SHIP_TAKEOFF_BIGBANG, com.midasplayer.bigbang.GameView.SOUND_SHIP_TAKEOFF_BIGBANG_VOLUME);
} else {
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_SHIP_TAKEOFF, com.midasplayer.bigbang.GameView.SOUND_SHIP_TAKEOFF_VOLUME);
}
Symbol 331 MovieClip Frame 71
if (_root.gameLogic.getLevel() >= _root.gameView.GAME_COMPLETE_LEVELS) {
var parentFrame = (_parent._framesloaded - 1);
_parent.gotoAndStop(parentFrame);
} else {
_parent.gotoAndStop(_parent._currentframe + 1);
}
Symbol 402 MovieClip Frame 1
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_SUMMARY, com.midasplayer.bigbang.GameView.SOUND_SUMMARY_VOLUME);
Symbol 402 MovieClip Frame 100
stop();
Symbol 407 MovieClip Frame 130
_parent.gotoAndStop(_parent._currentframe + 1);
Symbol 408 MovieClip [level_summary] Frame 1
if (_root.gameLogic.getGameBoard().isBigBang()) {
stop();
} else {
gotoAndStop (2);
}
Symbol 437 MovieClip Frame 1
stop();
Symbol 451 MovieClip [__Packages.com.midasplayer.gameCore.AbstractGameView] Frame 0
class com.midasplayer.gameCore.AbstractGameView
{
var m_gameLogic;
function AbstractGameView () {
}
function setGameLogic(gameLogic) {
m_gameLogic = gameLogic;
}
function getGameLogic() {
return(m_gameLogic);
}
function onInitInfoScreen(infoScreen, currentState) {
}
function onUpdateInfoScreen(infoScreen, currentState) {
}
function onInit() {
}
function onLevelSetup() {
}
function onCompleteLevel() {
}
function onGameOver() {
}
function onTick() {
}
function onRender(ipTime) {
}
}
Symbol 452 MovieClip [__Packages.com.midasplayer.gameCore.AbstractGameLogic] Frame 0
class com.midasplayer.gameCore.AbstractGameLogic
{
var m_gameMode, m_randomSeed, m_random, m_performanceTimer, m_performanceTimerName, m_scopeRef, m_resetTick, m_tickCount, m_gameState, m_gda, m_world, NUMBER_LEVELS, m_timeLimit, m_gameView, m_timeLeft, m_pendingStateStart, m_clientInput, m_infoScreen;
function AbstractGameLogic () {
}
function getGameMode() {
return(m_gameMode);
}
function setAchievement(achievement) {
m_hasAchievement = achievement;
}
function hasAchievement() {
return(m_hasAchievement);
}
function getSeed() {
return(m_randomSeed);
}
function getRandom() {
return(m_random);
}
function setTicksPerSecond(ticksPerSecond) {
TICKS_PER_SECOND = ticksPerSecond;
TIME_PER_TICK = 1000 / TICKS_PER_SECOND;
}
function getTicksPerSecond() {
return(TICKS_PER_SECOND);
}
function getTimePerTick() {
return(TIME_PER_TICK);
}
function isServer() {
return(SERVER);
}
function isClient() {
return(!SERVER);
}
function startPerformaceTimer(scope, functionName) {
if (!PERFORMANCE_LOG) {
return(undefined);
}
m_performanceTimer.insert(getTimer());
m_performanceTimerName.insert((scope + "::") + functionName);
}
function stopPerformaceTimer() {
if (!PERFORMANCE_LOG) {
return(undefined);
}
var _local3 = m_performanceTimer.size() - 1;
var _local6 = getTimer() - Number(m_performanceTimer.get(_local3));
var _local5 = String(m_performanceTimerName.get(_local3));
m_performanceTimer.removeByIndex(_local3);
m_performanceTimerName.removeByIndex(_local3);
var _local4 = "";
var _local2 = 0;
while (_local2 < _local3) {
_local4 = _local4 + "- ";
_local2++;
}
_local4 = _local4 + (((("[" + _local5) + "]:\t") + _local6) + " ms");
trace(_local4);
}
function init(scopeRef) {
m_scopeRef = scopeRef;
m_resetTick = true;
m_tickCount = 0;
m_lastTickTime = -1;
m_ipTime = 0;
m_gameState = com.midasplayer.gameCore.GameState.INSTRUCTIONS;
if (isClient()) {
m_gda = new com.midasplayer.util.GameDataAcquirer();
m_gda.beginWait(mx.utils.Delegate.create(this, setupGame));
}
m_world = new com.midasplayer.gameCore.World(this, getScopeRef());
onInit();
if (DEV) {
new com.midasplayer.util.FpsCounter(_root);
}
if (PERFORMANCE_LOG) {
m_performanceTimer = new com.midasplayer.util.ArrayList();
m_performanceTimerName = new com.midasplayer.util.ArrayList();
}
}
function getScopeRef() {
return(m_scopeRef);
}
function setupGame() {
m_gameMode = Number(m_gda.getGameData("gameMode"));
m_randomSeed = Number(m_gda.getGameData("randomSeed"));
m_random = new com.midasplayer.util.Random(m_randomSeed);
NUMBER_LEVELS = Number(m_gda.getGameData("numberLevels"));
m_timeLimit = new com.midasplayer.util.ArrayList(m_gda.getGameData("timeLimit"));
if (m_timeLimit.size() < NUMBER_LEVELS) {
var _local3 = Number(m_timeLimit.get(0));
m_timeLimit = new com.midasplayer.util.ArrayList();
var _local2 = 0;
while (_local2 < NUMBER_LEVELS) {
m_timeLimit.insert(_local3);
_local2++;
}
}
onSetGameData(m_gda);
parseClientInput();
getGameView().onInit();
m_scopeRef.onEnterFrame = mx.utils.Delegate.create(this, update);
}
function setGameView(gameView) {
m_gameView = gameView;
m_gameView.setGameLogic(this);
}
function getWorld() {
return(m_world);
}
function getGameLogic() {
return(this);
}
function getTickCount() {
return(m_tickCount);
}
function getIPTime() {
return(m_ipTime);
}
function getGameTime() {
return(getTickCount() * TIME_PER_TICK);
}
function getScore() {
return(m_score);
}
function setScore(score) {
m_score = Math.max(score, 0);
}
function addScore(score) {
m_score = Math.max(m_score + score, 0);
trace("Add score: " + score);
trace("-- Total score: " + m_score);
}
function getLevel() {
return(m_level);
}
function getNumberLevels() {
return(NUMBER_LEVELS);
}
function addTime(time) {
m_timeLeft = Math.max(m_timeLeft + time, 0);
}
function getTimeLeft() {
return(m_timeLeft);
}
function getTimeLeftPercent() {
return((getTimeLeft() / m_timeLimit.get(getLevel())) * 100);
}
function getTimeLimit() {
return(Number(m_timeLimit.get(getLevel())));
}
function getState() {
return(m_gameState);
}
function getStateString() {
if (m_gameState == com.midasplayer.gameCore.GameState.INSTRUCTIONS) {
return("INSTRUCTIONS");
}
if (m_gameState == com.midasplayer.gameCore.GameState.GAME_START) {
return("GAME_START");
}
if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_SETUP) {
return("LEVEL_SETUP");
}
if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_START_PENDING) {
return("LEVEL_START_PENDING");
}
if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_RUNNING) {
return("LEVEL_RUNNING");
}
if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING) {
return("LEVEL_OVER_PENDING");
}
if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_OVER) {
return("LEVEL_OVER");
}
if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) {
return("LEVEL_SUMMARY");
}
if (m_gameState == com.midasplayer.gameCore.GameState.GAME_OVER_PENDING) {
return("GAME_OVER_PENDING");
}
if (m_gameState == com.midasplayer.gameCore.GameState.GAME_OVER) {
return("GAME_OVER");
}
if (m_gameState == com.midasplayer.gameCore.GameState.GAME_SUMMARY) {
return("GAME_SUMMARY");
}
if (m_gameState == com.midasplayer.gameCore.GameState.GAME_QUIT) {
return("GAME_QUIT");
}
return("NONE");
}
function setState(state) {
m_gameState = state;
if (((state == com.midasplayer.gameCore.GameState.LEVEL_START_PENDING) || (state == com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING)) || (state == com.midasplayer.gameCore.GameState.GAME_OVER_PENDING)) {
m_pendingStateStart = getTickCount();
}
}
function getPendingStateDurationStart() {
return(m_pendingStateDuration[0]);
}
function getPendingStateDurationEnd() {
return(m_pendingStateDuration[1]);
}
function setPendingStateDuration(durationStart, durationEnd) {
m_pendingStateDuration[0] = durationStart;
m_pendingStateDuration[1] = durationEnd;
}
function isPractice() {
return(PRACTICE_GAME);
}
function isDev() {
return(DEV);
}
function isLocalGame() {
return(LOCAL_GAME);
}
function update() {
checkForServerResponse();
if (m_gameState == com.midasplayer.gameCore.GameState.NONE) {
trace("INVALID GAME STATE!!");
} else if (m_gameState == com.midasplayer.gameCore.GameState.INSTRUCTIONS) {
getGameLogic().updateInfoScreen();
} else if (m_gameState == com.midasplayer.gameCore.GameState.GAME_START) {
fscommand ("gameStart");
setState(com.midasplayer.gameCore.GameState.LEVEL_SETUP);
} else if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_SETUP) {
trace("-- State: SETUP");
m_resetTick = true;
m_timeLeft = Number(m_timeLimit.get(getLevel()));
onLevelSetup();
getGameView().onLevelSetup();
setState(com.midasplayer.gameCore.GameState.LEVEL_START_PENDING);
} else if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_START_PENDING) {
checkPendingState();
gameLoop();
} else if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_RUNNING) {
gameLoop();
} else if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING) {
checkPendingState();
gameLoop();
} else if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_OVER) {
trace("-- State: LEVEL_OVER");
onLevelOver();
m_level++;
if (m_level >= NUMBER_LEVELS) {
setState(com.midasplayer.gameCore.GameState.GAME_OVER);
} else {
setState(com.midasplayer.gameCore.GameState.LEVEL_SUMMARY);
}
} else if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) {
getGameLogic().updateInfoScreen();
} else if (m_gameState == com.midasplayer.gameCore.GameState.GAME_OVER_PENDING) {
checkPendingState();
gameLoop();
} else if (m_gameState == com.midasplayer.gameCore.GameState.GAME_OVER) {
trace("-- State: GAME_OVER");
setState(com.midasplayer.gameCore.GameState.GAME_SUMMARY);
fscommand ("gameEnd", m_score);
trace("gameEnd: " + m_score);
} else if (m_gameState == com.midasplayer.gameCore.GameState.GAME_SUMMARY) {
getGameLogic().updateInfoScreen();
} else if (m_gameState == com.midasplayer.gameCore.GameState.GAME_QUIT) {
if (!m_gameQuit) {
fscommand ("gameQuit");
m_gameQuit = true;
}
}
}
function completeLevel() {
setState(com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING);
onCompleteLevel();
getGameView().onCompleteLevel();
}
function gameOver() {
if (getState() != com.midasplayer.gameCore.GameState.LEVEL_RUNNING) {
return(undefined);
}
setState(com.midasplayer.gameCore.GameState.GAME_OVER_PENDING);
onGameOver();
getGameView().onGameOver();
}
function checkPendingState() {
if (((m_gameState == com.midasplayer.gameCore.GameState.LEVEL_START_PENDING) || (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING)) || (m_gameState == com.midasplayer.gameCore.GameState.GAME_OVER_PENDING)) {
var _local3 = ((m_gameState == com.midasplayer.gameCore.GameState.LEVEL_START_PENDING) ? (m_pendingStateDuration[0]) : (m_pendingStateDuration[1]));
if (getTickCount() >= (m_pendingStateStart + _local3)) {
var _local2 = com.midasplayer.gameCore.GameState.NONE;
if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_START_PENDING) {
_local2 = com.midasplayer.gameCore.GameState.LEVEL_RUNNING;
} else if (m_gameState == com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING) {
_local2 = com.midasplayer.gameCore.GameState.LEVEL_OVER;
} else if (m_gameState == com.midasplayer.gameCore.GameState.GAME_OVER_PENDING) {
_local2 = com.midasplayer.gameCore.GameState.GAME_OVER;
}
setState(_local2);
}
}
}
function gameLoop() {
if (m_resetTick) {
m_resetTick = false;
m_lastTickTime = getTimer();
}
var _local2 = 0;
for(;;){
calcIPTime();
if (m_ipTime < 1) {
break;
}
tickGame();
if ((((getState() != com.midasplayer.gameCore.GameState.LEVEL_RUNNING) && (getState() != com.midasplayer.gameCore.GameState.LEVEL_START_PENDING)) && (getState() != com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING)) && (getState() != com.midasplayer.gameCore.GameState.GAME_OVER_PENDING)) {
break;
}
if (_local2 >= 1000) {
trace("Infinite recursions or intolerable delay in gameLoop");
break;
}
if (getGameLogic().isDev() && (_local2 > 1)) {
break;
}
_local2++;
};
renderGame();
}
function calcIPTime() {
if (isServer()) {
m_ipTime = 1;
} else if (isClient()) {
m_ipTime = (getTimer() - m_lastTickTime) / TIME_PER_TICK;
}
}
function handleInput() {
if ((m_clientInput.size() > 0) && (getState() == com.midasplayer.gameCore.GameState.LEVEL_RUNNING)) {
var _local2;
do {
if ((m_clientInput == undefined) || (m_clientInput.size() == 0)) {
break;
}
_local2 = com.midasplayer.gameCore.ClientInput(m_clientInput.get(0));
var _local3 = _local2.getTick();
if (_local3 == getTickCount()) {
var _local4 = false;
_local4 = onHandleInput(_local2);
if (!_local4) {
trace("ClientInput NOT handled correctly. " + _local2.toString());
}
m_clientInput.removeByIndex(0);
} else if (_local3 < getTickCount()) {
trace((("ClientInput skipped! InputTick: " + _local3) + " Tick: ") + getTickCount());
}
} while ((_local2 != undefined) && (_local2.getTick() == getTickCount()));
}
}
function tickGame() {
handleInput();
getWorld().tick();
onTick();
getGameView().onTick();
m_lastTickTime = m_lastTickTime + TIME_PER_TICK;
m_tickCount++;
calcIPTime();
checkPendingState();
if (getState() == com.midasplayer.gameCore.GameState.LEVEL_RUNNING) {
m_timeLeft = m_timeLeft - TIME_PER_TICK;
if (getTimeLeft() <= 0) {
if (onLevelTimeUp()) {
completeLevel();
} else {
gameOver();
}
}
}
}
function renderGame() {
var _local2 = getIPTime();
getWorld().render(_local2);
onRender(_local2);
getGameView().onRender(_local2);
}
function sendRequest(request) {
request = request.split("<").join("<");
request = request.split(">").join(">");
request = request.split(""").join("\"");
fscommand ("request", request);
}
function sendPlaydata(playData) {
if (PRACTICE_GAME) {
return(undefined);
}
fscommand ("playData", playData);
trace("playData: " + playData);
}
function checkForServerResponse() {
if (_root.response != undefined) {
var _local3 = _root.response;
_root.response = undefined;
_local3 = _local3.split("<").join("<");
_local3 = _local3.split(">").join(">");
_local3 = _local3.split(""").join("\"");
onResponseReceived(_local3);
}
}
function trimArray(arrayList) {
var _local2 = 0;
while (_local2 < arrayList.size()) {
var _local1 = String(arrayList.get(_local2));
if (_local1.charAt(0) == " ") {
_local1 = _local1.substr(1);
}
if (_local1.charAt(_local1.length) == " ") {
_local1 = _local1.substring(0, _local1.length - 1);
}
arrayList.set(_local2, _local1);
_local2++;
}
}
function trace(string) {
if (isClient()) {
trace(string);
var _local2 = getScopeRef().debug_text;
_local2.text = (string + newline) + _local2.text;
if (!DEV) {
_local2._visible = false;
}
} else if (isServer()) {
}
}
function getInfoScreen() {
return(m_infoScreen);
}
function updateInfoScreen() {
var _local2 = getState();
if (m_infoScreen == undefined) {
m_infoScreen = new com.midasplayer.gameCore.InfoScreen();
var _local3 = com.midasplayer.gameCore.GameState.NONE;
if (_local2 == com.midasplayer.gameCore.GameState.INSTRUCTIONS) {
_local3 = com.midasplayer.gameCore.GameState.GAME_START;
} else if (_local2 == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) {
_local3 = com.midasplayer.gameCore.GameState.LEVEL_SETUP;
} else if (_local2 == com.midasplayer.gameCore.GameState.GAME_SUMMARY) {
_local3 = com.midasplayer.gameCore.GameState.GAME_QUIT;
}
m_infoScreen.setExitState(this, _local3);
m_gameView.onInitInfoScreen(m_infoScreen, _local2);
}
m_infoScreen.update();
m_gameView.onUpdateInfoScreen(m_infoScreen, _local2);
}
function infoScreenExit() {
var _local2 = m_infoScreen.getExitState();
setState(_local2);
m_infoScreen = undefined;
}
function addWorldObject(obj, worldLayer, symbol, clipName) {
return(getWorld().addWorldObject(obj, worldLayer, symbol, clipName));
}
function parseClientInput() {
var _local2 = _level0.playData;
m_clientInput = com.midasplayer.gameCore.ClientInput.parseInput(_local2);
}
function setClientInput(clientInputList) {
m_clientInput = clientInputList;
}
function getGameView() {
return(m_gameView);
}
function onSetGameData(gda) {
var _local2 = "onSetGameData";
trace(("~~ " + _local2) + "()");
}
function onResponseReceived(response) {
var _local2 = "onResponseReceived";
trace(("~~ " + _local2) + "()");
}
function onLevelSetup() {
var _local2 = "onLevelSetup";
trace(("~~ " + _local2) + "()");
}
function onLevelTimeUp() {
var _local2 = "onLevelTimeUp";
trace(("~~ " + _local2) + "()");
return(false);
}
function onLevelOver() {
var _local2 = "onLevelOver";
trace(("~~ " + _local2) + "()");
}
function onCompleteLevel() {
var _local2 = "onCompleteLevel";
trace(("~~ " + _local2) + "()");
}
function onGameOver() {
var _local2 = "onGameOver";
trace(("~~ " + _local2) + "()");
}
function onInit() {
var _local2 = "onInit";
trace(("~~ " + _local2) + "()");
}
function onTick() {
var _local1 = "onTick";
}
function onRender(ipTime) {
var _local1 = "onRender";
}
function onHandleInput(input) {
return(false);
}
static var PRACTICE_GAME = false;
static var DEV = false;
static var LOCAL_GAME = false;
static var PERFORMANCE_LOG = false;
var m_gameQuit = false;
static var GAME_MODE_NORMAL = 0;
static var GAME_MODE_SHORT = 1;
static var GAME_MODE_DELUXE = 2;
var m_pendingStateDuration = new Array(0, 0);
var m_lastTickTime = -1;
var m_ipTime = 0;
var m_score = 0;
var m_level = 0;
var m_hasAchievement = false;
static var TICKS_PER_SECOND = 4;
static var TIME_PER_TICK = 1000 / TICKS_PER_SECOND;
var SERVER = false;
}
Symbol 453 MovieClip [__Packages.com.midasplayer.gameCore.World] Frame 0
class com.midasplayer.gameCore.World
{
var m_scopeRef, m_gameLogic, m_clip, m_layers, m_worldObjects, m_worldObjectRemove;
function World (gameLogic, scope) {
m_scopeRef = scope;
m_gameLogic = gameLogic;
m_clip = m_scopeRef.createEmptyMovieClip("world", m_scopeRef.getNextHighestDepth());
m_clip._x = WORLD_OFFSET_X;
m_clip._y = WORLD_OFFSET_Y;
m_layers = new com.midasplayer.util.ArrayList();
m_worldObjects = new com.midasplayer.util.ArrayList();
m_worldObjectRemove = new com.midasplayer.util.ArrayList();
}
function getGameLogic() {
return(m_gameLogic);
}
function getClip() {
return(m_clip);
}
function render(ipTime) {
var _local3 = m_worldObjects.size();
var _local2 = 0;
while (_local2 < _local3) {
m_worldObjects.get(_local2).render(ipTime);
_local2++;
}
}
function tick() {
var _local5 = m_worldObjects.size();
var _local2 = 0;
while (_local2 < _local5) {
m_worldObjects.get(_local2).update();
_local2++;
}
_local2 = 0;
while (_local2 < _local5) {
m_worldObjects.get(_local2).onTick();
_local2++;
}
var _local4 = 0;
while (_local4 < m_worldObjectRemove.size()) {
_local2 = 0;
while (_local2 < m_worldObjects.size()) {
var _local3 = com.midasplayer.gameCore.WorldObject(m_worldObjects.get(_local2));
if (_local3.getObjId() == m_worldObjectRemove.get(_local4)) {
_local3.getObjectView().removeClip();
_local3.onRemovedFromWorld();
m_worldObjects.removeByIndex(_local2);
break;
}
_local2++;
}
_local4++;
}
if (m_worldObjectRemove.size() > 0) {
m_worldObjectRemove.clear();
}
}
function getLayer(layer) {
if (m_layers.size() <= layer) {
var _local2 = m_layers.size();
while (_local2 <= layer) {
addLayer();
_local2++;
}
}
return(MovieClip(m_layers.get(layer)));
}
function addLayer() {
m_layers.insert(getClip().createEmptyMovieClip("layer_" + m_layers.size(), getClip().getNextHighestDepth()));
return(m_layers.size());
}
function addWorldObject(obj, worldLayer, symbol, clipName) {
var _local3 = m_worldObjectIdCounter;
m_worldObjectIdCounter++;
obj.setObjId(_local3);
m_worldObjects.insert(obj);
addWorldObjectHelper(obj, symbol, worldLayer, clipName);
return(obj);
}
function addWorldObjectHelper(obj, symbol, worldLayer, clipName) {
obj.setGameLogic(m_gameLogic);
obj.setWorld(this);
obj.getObjectView().setClip(symbol, worldLayer, clipName);
obj.onAddedToWorld();
}
function clearWorldObjects() {
trace("clearWorldObjects");
var _local2 = 0;
while (_local2 < m_worldObjects.size()) {
var _local3 = com.midasplayer.gameCore.WorldObject(m_worldObjects.get(_local2));
_local3.getObjectView().removeClip();
_local3.onRemovedFromWorld();
_local2++;
}
m_worldObjects.clear();
}
function removeWorldObject(obj) {
m_worldObjectRemove.insert(obj.getObjId());
obj.getObjectView().setClip("");
}
function getAllWorldObjects() {
return(m_worldObjects);
}
function getWorldObject(objId) {
var _local2 = 0;
while (_local2 < m_worldObjects.size()) {
var _local3 = com.midasplayer.gameCore.WorldObject(m_worldObjects.get(_local2));
if (_local3.getObjId() == objId) {
return(com.midasplayer.gameCore.WorldObject(m_worldObjects.get(_local2)));
}
_local2++;
}
return(undefined);
}
static var WORLD_EDGE_TOP = 0;
static var WORLD_EDGE_BOTTOM = 345;
static var WORLD_EDGE_LEFT = 0;
static var WORLD_EDGE_RIGHT = 460;
static var WORLD_OFFSET_X = 0;
static var WORLD_OFFSET_Y = 0;
var m_worldObjectIdCounter = 0;
}
Symbol 454 MovieClip [__Packages.com.midasplayer.util.ArrayList] Frame 0
class com.midasplayer.util.ArrayList
{
var value;
function ArrayList (ar) {
if (ar == undefined) {
value = new Array();
} else {
value = ar;
}
}
function insert(obj, pos) {
var _local2 = value.length;
if ((pos == undefined) || (pos >= _local2)) {
value.push(obj);
return(_local2);
}
value.splice(pos, 0, obj);
return(pos);
}
function get(pos) {
return(value[pos]);
}
function set(pos, o) {
value[pos] = o;
}
function indexOf(obj) {
var _local2 = 0;
while (_local2 < value.length) {
if (obj == value[_local2]) {
return(_local2);
}
_local2++;
}
return(-1);
}
function remove(obj) {
return(removeByIndex(indexOf(obj)));
}
function removeByIndex(pos) {
var _local2;
var _local4 = value.length;
if ((pos < _local4) && (pos >= 0)) {
_local2 = value[pos];
value.splice(pos, 1);
}
return(_local2);
}
function size() {
return(value.length);
}
function clear() {
value = new Array();
}
function toArray() {
return(value);
}
function foreach(fn) {
var _local2 = 0;
var _local3 = value.length;
while (_local2 < _local3) {
if (fn(_local2, value[_local2]) == false) {
break;
}
_local2++;
}
}
function sortOn(field) {
value.sortOn(field);
}
function sort(sortFn) {
value.sort(sortFn);
}
function get iterator() {
return(new com.midasplayer.util.ArrayListIterator(this));
}
function subList(from, to) {
if ((to > value.length) || (!to)) {
to = value.length;
}
var _local4 = value.slice(from, to);
var _local3 = new com.midasplayer.util.ArrayList(_local4);
return(_local3);
}
}
Symbol 455 MovieClip [__Packages.com.midasplayer.util.Iterator] Frame 0
interface com.midasplayer.util.Iterator
{
}
Symbol 456 MovieClip [__Packages.com.midasplayer.util.ArrayListIterator] Frame 0
class com.midasplayer.util.ArrayListIterator implements com.midasplayer.util.Iterator
{
var ptr, list;
function ArrayListIterator (list) {
ptr = 0;
this.list = list;
}
function next() {
if (ptr < list.size()) {
return(list.get(ptr++));
}
return(undefined);
}
function hasNext() {
return(ptr < list.size());
}
function remove() {
if (ptr == 0) {
return(undefined);
}
list.removeByIndex(ptr - 1);
}
}
Symbol 457 MovieClip [__Packages.com.midasplayer.gameCore.WorldObject] Frame 0
class com.midasplayer.gameCore.WorldObject
{
var DEFAULT_SYMBOL, m_animFrame, m_posX, m_posY, m_rotation, m_scaleX, m_scaleY, m_alpha, m_visible, m_objectView, m_gameLogic, m_world, m_parent;
function WorldObject (defaultSymbol) {
if ((defaultSymbol != undefined) && (defaultSymbol != "")) {
DEFAULT_SYMBOL = defaultSymbol;
}
m_animFrame = new com.midasplayer.gameCore.InterpolationValue(1);
m_posX = new com.midasplayer.gameCore.InterpolationValue(0);
m_posY = new com.midasplayer.gameCore.InterpolationValue(0);
m_rotation = new com.midasplayer.gameCore.InterpolationValue(0);
m_scaleX = new com.midasplayer.gameCore.InterpolationValue(100);
m_scaleY = new com.midasplayer.gameCore.InterpolationValue(100);
m_alpha = new com.midasplayer.gameCore.InterpolationValue(100);
m_visible = new Array();
m_visible.push(true);
m_visible.push(true);
if (m_objectView != undefined) {
deleteObjectView();
}
m_objectView = createObjectView();
getObjectView().setObject(this);
}
function deleteObjectView() {
delete m_objectView;
}
function setDefaultSymbol(symbol) {
DEFAULT_SYMBOL = symbol;
}
function getDefaultSymbol() {
return(DEFAULT_SYMBOL);
}
function setObjId(id) {
m_objectId = id;
}
function getObjId() {
return(m_objectId);
}
function setGameLogic(gameLogic) {
m_gameLogic = gameLogic;
}
function getGameLogic() {
return(m_gameLogic);
}
function setWorld(world) {
m_world = world;
}
function getWorld() {
return(m_world);
}
function removeFromWorld() {
m_world.removeWorldObject(this);
}
function setPerformCollision(collision) {
m_performCollision = collision;
}
function getPerformCollision() {
return(m_performCollision);
}
function setPhysicsEnabled(physics) {
m_physicsEnabled = physics;
}
function isPhysicsEnabled() {
return(m_physicsEnabled);
}
function setAnimated(animated) {
m_animated = animated;
}
function isAnimated() {
return(m_animated);
}
function animPlay() {
m_playing = true;
}
function animStop() {
m_playing = false;
}
function isAnimPlaying() {
return(m_playing);
}
function setAnimLooping(loop) {
m_looping = loop;
}
function isAnimLooping() {
return(m_looping);
}
function setPlaybackSpeed(speed) {
m_playbackSpeed = speed;
}
function getPlaybackSpeed() {
return(m_playbackSpeed);
}
function setFrame(frame) {
m_animFrame.setValue(frame);
}
function getFrame(ipTime) {
return(m_animFrame.getValue(ipTime));
}
function setParent(parent) {
m_parent = parent;
}
function getParent() {
return(m_parent);
}
function setX(x) {
m_posX.setValue(x);
getObjectView().makeDirty();
}
function setY(y) {
m_posY.setValue(y);
getObjectView().makeDirty();
}
function setPos(x, y) {
setX(x);
setY(y);
}
function setPrevX(x) {
m_posX.setPrevValue(x);
getObjectView().makeDirty();
}
function setPrevY(y) {
m_posY.setPrevValue(y);
getObjectView().makeDirty();
}
function setNextX(x) {
m_posX.setNextValue(x);
getObjectView().makeDirty();
}
function setNextY(y) {
m_posY.setNextValue(y);
getObjectView().makeDirty();
}
function setVelX(vel) {
m_posVelocityX = vel;
}
function setVelY(vel) {
m_posVelocityY = vel;
}
function setVel(vel) {
m_posVelocityX = vel.x;
m_posVelocityY = vel.y;
}
function addVelX(vel) {
m_posVelocityX = m_posVelocityX + vel;
}
function addVelY(vel) {
m_posVelocityY = m_posVelocityY + vel;
}
function setGravity(vel) {
m_gravity = vel;
}
function setRotation(rot) {
m_rotation.setValue(rot);
getObjectView().makeDirty();
}
function setRotationVel(vel) {
m_rotationVelocity = vel;
}
function addRotationVel(vel) {
m_rotationVelocity = m_rotationVelocity + vel;
}
function setScaleX(scale) {
m_scaleX.setValue(scale);
getObjectView().makeDirty();
}
function setNextScaleX(scale) {
m_scaleX.setNextValue(scale);
getObjectView().makeDirty();
}
function setScaleXVel(vel) {
m_scaleXVelocity = vel;
}
function setScaleY(scale) {
m_scaleY.setValue(scale);
getObjectView().makeDirty();
}
function setNextScaleY(scale) {
m_scaleY.setNextValue(scale);
getObjectView().makeDirty();
}
function setScaleYVel(vel) {
m_scaleYVelocity = vel;
}
function setAlpha(alpha) {
m_alpha.setValue(alpha);
getObjectView().makeDirty();
}
function setNextAlpha(alpha) {
m_alpha.setNextValue(alpha);
getObjectView().makeDirty();
}
function setAlphaVel(vel) {
m_alphaVelocity = vel;
}
function setVisible(visible) {
m_visible[0] = (m_visible[1] = visible);
getObjectView().makeDirty();
}
function setNextVisible(visible) {
m_visible[1] = visible;
getObjectView().makeDirty();
}
function getX(ipTime) {
return(m_posX.getValue(ipTime));
}
function getY(ipTime) {
return(m_posY.getValue(ipTime));
}
function getPos(ipTime) {
return(new com.midasplayer.util.Vec2D(m_posX.getValue(ipTime), m_posY.getValue(ipTime)));
}
function getVelX() {
return(m_posVelocityX);
}
function getVelY() {
return(m_posVelocityY);
}
function getVel() {
return(new com.midasplayer.util.Vec2D(m_posVelocityX, m_posVelocityY));
}
function getGravity() {
return(m_gravity);
}
function getRotation(ipTime) {
return(m_rotation.getValue(ipTime));
}
function getRotationVel() {
return(m_rotationVelocity);
}
function getScaleX(ipTime) {
return(m_scaleX.getValue(ipTime));
}
function getScaleXVel() {
return(m_scaleXVelocity);
}
function getScaleY(ipTime) {
return(m_scaleY.getValue(ipTime));
}
function getScaleYVel() {
return(m_scaleYVelocity);
}
function getAlpha(ipTime) {
return(m_alpha.getValue(ipTime));
}
function getAlphaVel() {
return(m_alphaVelocity);
}
function getVisible(ipTime) {
if (ipTime < 1) {
return(m_visible[0]);
}
return(m_visible[1]);
}
function setDestroyTick(tick) {
m_destroyTick = tick;
}
function getDestroyTick() {
return(m_destroyTick);
}
function getUseHandCursor() {
return(m_useHandCursor);
}
function setUseHandCursor(useHand) {
m_useHandCursor = useHand;
getObjectView().updateHandCursor();
}
function addInputEnabled(input) {
setInputEnabled(m_inputEnabled | input);
}
function removeInputEnabled(input) {
setInputEnabled(m_inputEnabled ^ input);
}
function setInputEnabled(input) {
m_inputEnabled = input;
getObjectView().setupInput();
}
function isInputEnabled(input) {
return((input & m_inputEnabled) == input);
}
function updatePhysics() {
}
function isDirty() {
return(m_dirty);
}
function updateIPValue(ipValue, vel) {
ipValue.updateValue(ipValue.getNextValue() + vel);
m_dirty = true;
}
function update() {
if ((m_destroyTick != -1) && (m_gameLogic.getTickCount() >= m_destroyTick)) {
m_world.removeWorldObject(this);
}
if (m_physicsEnabled) {
m_posVelocityY = m_posVelocityY + m_gravity;
}
m_dirty = false;
if (m_posVelocityX != 0) {
updateIPValue(m_posX, m_posVelocityX);
}
if (m_posVelocityY != 0) {
updateIPValue(m_posY, m_posVelocityY);
}
if (m_rotationVelocity != 0) {
updateIPValue(m_rotation, m_rotationVelocity);
}
if (m_alphaVelocity != 0) {
updateIPValue(m_alpha, m_alphaVelocity);
}
if (m_scaleXVelocity != 0) {
updateIPValue(m_scaleX, m_scaleXVelocity);
}
if (m_scaleYVelocity != 0) {
updateIPValue(m_scaleY, m_scaleYVelocity);
}
if (m_visible[0] != m_visible[1]) {
m_visible[0] = m_visible[1];
m_dirty = true;
}
if (m_animated && (m_playing)) {
var _local5 = m_animFrame.getNextValue() + m_playbackSpeed;
m_animFrame.updateValue(_local5);
var _local4 = m_animFrame.getPrevValue();
var _local3 = getObjectView().getFrames();
if (_local4 > _local3) {
if (!m_looping) {
m_animFrame.setValue(_local3);
animStop();
} else {
var _local2 = getObjectView().getFrames();
m_animFrame.setNextValue(m_animFrame.getNextValue() - _local2);
m_animFrame.setPrevValue(m_animFrame.getPrevValue() - _local2);
}
}
}
}
function render(ipTime) {
m_objectView.render(ipTime);
}
function createObjectView() {
return(new com.midasplayer.gameCore.WorldObjectView());
}
function getObjectView() {
return(m_objectView);
}
function onMouseEvent() {
}
function onPress() {
}
function onRelease() {
}
function onRollOver() {
}
function onRollOut() {
}
function onDragOver() {
}
function onDragOut() {
}
function onMouseMove() {
}
function onClipLoaded() {
}
function onAddedToWorld() {
}
function onRemovedFromWorld() {
}
function onTick() {
}
static var INPUT_NONE = 0;
static var INPUT_MOUSE_PRESS = 1;
static var INPUT_MOUSE_RELEASE = 2;
static var INPUT_MOUSE_ROLL_OVER = 4;
static var INPUT_MOUSE_ROLL_OUT = 8;
static var INPUT_MOUSE_DRAG_OVER = 16;
static var INPUT_MOUSE_DRAG_OUT = 32;
static var INPUT_MOUSE_MOVE = 64;
var m_objectId = -1;
var m_inputEnabled = 0;
var m_worldLayer = 0;
var m_useHandCursor = false;
var m_performCollision = false;
var m_physicsEnabled = true;
var m_animated = false;
var m_playing = true;
var m_looping = true;
var m_playbackSpeed = 0.2;
var m_posVelocityX = 0;
var m_posVelocityY = 0;
var m_gravity = 0;
var m_rotationVelocity = 0;
var m_scaleXVelocity = 0;
var m_scaleYVelocity = 0;
var m_alphaVelocity = 0;
var m_destroyTick = -1;
var m_dirty = false;
}
Symbol 458 MovieClip [__Packages.com.midasplayer.gameCore.WorldObjectView] Frame 0
class com.midasplayer.gameCore.WorldObjectView
{
var m_object, m_clip;
function WorldObjectView () {
}
function isDirty() {
return(m_dirty);
}
function makeDirty() {
m_dirty = true;
}
function setObject(worldObject) {
m_object = worldObject;
}
function getClip() {
return(m_clip);
}
function gotoAndStop(frame) {
getClip().gotoAndStop(frame);
}
function getFrames() {
return(getClip()._framesloaded);
}
function setClip(symbol, worldLayer, clipName) {
if (symbol == undefined) {
symbol = getObject().getDefaultSymbol();
}
if (worldLayer != undefined) {
m_worldLayer = worldLayer;
}
if ((clipName == undefined) || (clipName == null)) {
clipName = (symbol + "_") + getObject().getObjId();
}
var _local5 = getObject().getWorld().getLayer(m_worldLayer);
var _local3 = _local5.getNextHighestDepth();
if (m_clip != undefined) {
_local3 = m_clip.getDepth();
m_clip.removeMovieClip();
}
if (symbol == SYMBOL_EMPTY_MOVIECLIP) {
m_clip = _local5.createEmptyMovieClip(clipName, _local3);
} else if (symbol != "") {
m_clip = _local5.attachMovie(symbol, clipName, _local3);
if (m_clip == undefined) {
trace(((((("Falied to attach clip: " + symbol) + " for objId: ") + getObject().getObjId()) + " Symbol: '") + symbol) + "'");
}
} else {
m_clip = undefined;
}
m_clip._visible = false;
updateHandCursor();
makeDirty();
getObject().setFrame(1);
if (getObject().isAnimated()) {
m_clip.stop();
}
getObject().onClipLoaded();
onClipLoaded();
setupInput();
}
function removeClip() {
m_clip.removeMovieClip();
onClipRemoved();
}
function updateHandCursor() {
m_clip.useHandCursor = getObject().getUseHandCursor();
}
function setupInput() {
if (getObject().isInputEnabled(com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_PRESS)) {
getClip().onPress = mx.utils.Delegate.create(this, onPress);
} else {
getClip().onPress = undefined;
}
if (getObject().isInputEnabled(com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_RELEASE)) {
getClip().onRelease = mx.utils.Delegate.create(this, onRelease);
} else {
getClip().onRelease = undefined;
}
if (getObject().isInputEnabled(com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_ROLL_OVER)) {
getClip().onRollOver = mx.utils.Delegate.create(this, onRollOver);
} else {
getClip().onRollOver = undefined;
}
if (getObject().isInputEnabled(com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_ROLL_OUT)) {
getClip().onRollOut = mx.utils.Delegate.create(this, onRollOut);
} else {
getClip().onRollOut = undefined;
}
if (getObject().isInputEnabled(com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_DRAG_OVER)) {
getClip().onDragOut = mx.utils.Delegate.create(this, onDragOut);
} else {
getClip().onDragOut = undefined;
}
if (getObject().isInputEnabled(com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_DRAG_OUT)) {
getClip().onDragOut = mx.utils.Delegate.create(this, onDragOut);
} else {
getClip().onDragOut = undefined;
}
if (getObject().isInputEnabled(com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_MOVE)) {
getClip().onMouseMove = mx.utils.Delegate.create(this, onMouseMove);
} else {
getClip().onMouseMove = undefined;
}
}
function isMouseOver() {
return(m_mouseOver);
}
function onPress() {
getObject().onPress();
getObject().onMouseEvent();
}
function onRelease() {
getObject().onRelease();
getObject().onMouseEvent();
}
function onRollOver() {
getObject().onRollOver();
m_mouseOver = true;
getObject().onMouseEvent();
}
function onRollOut() {
getObject().onRollOut();
m_mouseOver = false;
getObject().onMouseEvent();
}
function onDragOver() {
getObject().onDragOver();
m_mouseOver = true;
getObject().onMouseEvent();
}
function onDragOut() {
getObject().onDragOut();
m_mouseOver = false;
getObject().onMouseEvent();
}
function onMouseMove() {
getObject().onMouseMove();
getObject().onMouseEvent();
}
function render(ipTime) {
if (m_clip == undefined) {
return(undefined);
}
var _local2 = getObject();
if ((!m_dirty) && (_local2.isDirty())) {
makeDirty();
}
if (m_dirty) {
m_clip._x = _local2.getX(ipTime);
m_clip._y = _local2.getY(ipTime);
m_clip._rotation = _local2.getRotation(ipTime);
m_clip._xscale = _local2.getScaleX(ipTime);
m_clip._yscale = _local2.getScaleY(ipTime);
m_clip._alpha = _local2.getAlpha(ipTime);
m_clip._visible = _local2.getVisible(ipTime);
m_dirty = false;
}
onRender(ipTime);
}
function getGameLogic() {
return(getObject().getGameLogic());
}
function getObject() {
return(m_object);
}
function onClipLoaded() {
}
function onClipRemoved() {
}
function onRender(ipTime) {
}
static var SYMBOL_EMPTY_MOVIECLIP = "____symbol_empty_movieclip";
var m_mouseOver = false;
var m_worldLayer = 0;
var m_dirty = false;
}
Symbol 459 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local2 = arguments.callee.target;
var _local3 = arguments.callee.func;
return(_local3.apply(_local2, arguments));
};
_local2.target = obj;
_local2.func = func;
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 460 MovieClip [__Packages.com.midasplayer.gameCore.InterpolationValue] Frame 0
class com.midasplayer.gameCore.InterpolationValue
{
function InterpolationValue (startValue) {
if (startValue != undefined) {
setValue(startValue);
}
}
function getPrevValue() {
return(m_prevValue);
}
function getNextValue() {
return(m_nextValue);
}
function setValue(valueParam) {
setPrevValue(valueParam);
setNextValue(valueParam);
}
function setPrevValue(valueParam) {
m_prevValue = valueParam;
}
function setNextValue(valueParam) {
m_nextValue = valueParam;
}
function setWaypointValue(valueParam, IPparam) {
m_waypointValue = valueParam;
m_waypointIP = IPparam;
}
function clearWaypoint() {
m_waypointIP = -1;
}
function updateValue(valueParam) {
setPrevValue(getNextValue());
setNextValue(valueParam);
}
function getValue(ipTime) {
if (((ipTime == undefined) || (ipTime == 1)) || (m_prevValue == m_nextValue)) {
return(m_nextValue);
}
if (ipTime == 0) {
return(m_prevValue);
}
if ((m_waypointIP > 0) && (m_waypointIP < 1)) {
if (ipTime == m_waypointIP) {
return(m_waypointValue);
}
if (ipTime < m_waypointIP) {
return(m_prevValue + ((m_waypointValue - m_prevValue) * (ipTime / m_waypointIP)));
}
if (ipTime > m_waypointIP) {
return(m_waypointValue + (((m_nextValue - m_waypointValue) * (ipTime - m_waypointIP)) / (1 - m_waypointIP)));
}
}
return(m_prevValue + ((m_nextValue - m_prevValue) * ipTime));
}
var m_prevValue = 0;
var m_nextValue = 0;
var m_waypointValue = 0;
var m_waypointIP = -1;
}
Symbol 461 MovieClip [__Packages.com.midasplayer.util.Vec2D] Frame 0
class com.midasplayer.util.Vec2D
{
function Vec2D (x, y) {
if (x != undefined) {
this.x = x;
}
if (y != undefined) {
this.y = y;
}
}
function toString() {
return(((("<" + x) + ", ") + y) + ">");
}
function addition(vec) {
return(new com.midasplayer.util.Vec2D(x + vec.x, y + vec.y));
}
function subtract(vec) {
return(new com.midasplayer.util.Vec2D(x - vec.x, y - vec.y));
}
function multiply(scalar) {
return(new com.midasplayer.util.Vec2D(x * scalar, y * scalar));
}
function divide(scalar) {
return(new com.midasplayer.util.Vec2D(x / scalar, y / scalar));
}
function normalize() {
return(divide(length()));
}
function length() {
return(Math.sqrt(lengthSqr()));
}
function lengthSqr() {
return(Math.pow(x, 2) + Math.pow(y, 2));
}
function dot(vec) {
return((x * vec.x) + (y * vec.y));
}
function project(vec) {
var _local4 = dot(vec);
var _local3 = new com.midasplayer.util.Vec2D();
_local3.x = (_local4 / ((vec.x * vec.x) + (vec.y * vec.y))) * vec.x;
_local3.y = (_local4 / ((vec.x * vec.x) + (vec.y * vec.y))) * vec.y;
return(_local3);
}
var x = 0;
var y = 0;
}
Symbol 462 MovieClip [__Packages.com.midasplayer.gameCore.GameState] Frame 0
class com.midasplayer.gameCore.GameState
{
function GameState () {
}
static var NONE = -1;
static var INSTRUCTIONS = 0;
static var GAME_START = 1;
static var LEVEL_SETUP = 2;
static var LEVEL_START_PENDING = 3;
static var LEVEL_RUNNING = 4;
static var LEVEL_OVER_PENDING = 5;
static var LEVEL_OVER = 6;
static var LEVEL_SUMMARY = 7;
static var GAME_OVER_PENDING = 8;
static var GAME_OVER = 9;
static var GAME_SUMMARY = 10;
static var GAME_QUIT = 11;
}
Symbol 463 MovieClip [__Packages.com.midasplayer.gameCore.InfoScreen] Frame 0
class com.midasplayer.gameCore.InfoScreen
{
var m_okButtonText, m_clip, m_okButton, m_gameLogic, m_soundIdentifier;
function InfoScreen () {
m_okButtonText = com.midasplayer.util.I18n.getString("start");
}
function setDeleteOnExit(deleteOnExit) {
m_deleteOnExit = deleteOnExit;
}
function deleteOnExit() {
return(m_deleteOnExit);
}
function getTimePassed() {
return(m_expireTime - m_timeRemaining);
}
function getTimeRemaining() {
return(m_timeRemaining);
}
function setTimeRemaining(time) {
m_timeRemaining = time;
}
function setFps(fps) {
m_fps = fps;
}
function setLooping(looping) {
m_looping = looping;
}
function getClip() {
return(m_clip);
}
function init(parent, symbol, expireTime) {
if (symbol == undefined) {
symbol = DEFAULT_SYMBOL;
}
if (expireTime != undefined) {
m_expireTime = expireTime;
}
m_clip = parent.attachMovie(symbol, symbol + "_infoscreen", parent.getNextHighestDepth());
setOkButton(m_clip[SIGN_NAME].ok_button);
setExpireTime(expireTime);
}
function setClip(clip) {
m_clip = clip;
}
function setOkButton(okButton) {
m_okButton = okButton;
m_okButton.onPress = mx.utils.Delegate.create(this, exit);
m_okButton.onRollOver = mx.utils.Delegate.create(this, okButtonRollOver);
m_okButton.onRollOut = mx.utils.Delegate.create(this, okButtonRollOut);
}
function okButtonRollOver() {
m_okButton.gotoAndStop(2);
updateButtonText();
}
function okButtonRollOut() {
m_okButton.gotoAndStop(1);
updateButtonText();
}
function setPos(x, y) {
m_clip._x = x;
m_clip._y = y;
}
function setExitState(gameLogic, exitState) {
m_gameLogic = gameLogic;
m_exitState = exitState;
}
function getExitState() {
return(m_exitState);
}
function setExpireTime(expireTime) {
m_expireTime = expireTime;
m_startTime = getTimer();
m_timeRemaining = expireTime;
m_lastTimer = getTimer();
}
function setSound(sound, soundVolume) {
m_soundIdentifier = sound;
com.midasplayer.fx.SoundManager.play(m_soundIdentifier, soundVolume);
}
function setButtonText(textValue) {
m_okButtonText = textValue;
}
function setSignText(textFieldName, textValue) {
m_clip[SIGN_NAME][textFieldName].text = textValue;
}
function setText(textFieldName, textValue) {
m_clip[textFieldName].text = textValue;
}
function setElementVisible(name, visible) {
m_clip[name]._visible = visible;
}
function updateButtonText() {
m_okButton.text.text = m_okButtonText;
}
function update() {
if (m_clip == undefined) {
exit();
return(undefined);
}
var _local4 = (getTimer() - m_lastTimer) / 1000;
m_lastTimer = getTimer();
m_timeRemaining = m_timeRemaining - _local4;
var _local6 = m_okButtonText;
var _local5 = m_clip[SIGN_NAME][TIMER_NAME];
if (_local5 != undefined) {
_local5.gotoAndStop(m_timeRemaining - 1);
}
updateButtonText();
if (m_timeRemaining <= 0) {
exit();
}
var _local2;
if (_local2 != undefined) {
var _local3 = Math.floor(_local4 * m_fps);
if (m_looping) {
_local3 = (_local3 % _local2._framesloaded) + 1;
} else if (_local3 > _local2._framesloaded) {
_local3 = _local2._framesloaded;
}
_local2.gotoAndStop(_local3);
}
}
function exit() {
if (deleteOnExit() && (m_clip != undefined)) {
m_clip._visible = false;
m_clip.removeMovieClip();
trace("delete movie " + m_clip);
}
if (m_soundIdentifier != undefined) {
com.midasplayer.fx.SoundManager.stop(m_soundIdentifier);
}
m_gameLogic.infoScreenExit();
}
static var DEFAULT_SYMBOL = "info_screen";
static var SIGN_NAME = "sign";
static var ANIM_NAME = "anim";
static var TIMER_NAME = "timer";
static var OK_BUTTON_TEXT = "ok_button_text";
var m_startTime = -1;
var m_lastTimer = -1;
var m_expireTime = 10;
var m_exitState = com.midasplayer.gameCore.GameState.NONE;
var m_deleteOnExit = true;
var m_timeRemaining = -1;
var m_fps = 20;
var m_looping = true;
}
Symbol 464 MovieClip [__Packages.com.midasplayer.util.I18n] Frame 0
class com.midasplayer.util.I18n
{
static var lang;
function I18n () {
}
static function init(newLang) {
lang = newLang;
}
static function getString(name) {
var _local1 = lang.get(name);
if (_local1 == undefined) {
return(("{" + name) + "}");
}
return(_local1.toString());
}
}
Symbol 465 MovieClip [__Packages.com.midasplayer.util.Map] Frame 0
class com.midasplayer.util.Map
{
var map, lastSize;
function Map (init) {
map = new Object();
for (var _local3 in init) {
map["@" + _local3] = init[_local3];
}
lastSize = -1;
}
function put(key, value) {
map["@" + key] = value;
lastSize = -1;
}
function get(key) {
return(map["@" + key]);
}
function remove(key) {
var _local2 = map["@" + key];
delete map["@" + key];
lastSize = -1;
return(_local2);
}
function count() {
if (lastSize < 0) {
lastSize = 0;
for (var _local2 in map) {
lastSize++;
}
}
return(lastSize);
}
function size() {
return(count());
}
function clear() {
map = {};
lastSize = 0;
}
function dump() {
var _local2 = "";
for (var _local3 in map) {
_local2 = _local2 + (((_local3 + "=>") + map[_local3]) + newline);
}
trace(_local2);
}
function toArray() {
var _local2 = [];
for (var _local3 in map) {
_local2[_local2.length] = map[_local3];
}
return(_local2);
}
function keySet() {
var _local2 = [];
for (var _local3 in map) {
_local2[_local2.length] = _local3.substring(1);
}
return(_local2);
}
function foreach(fn) {
do {
if ((in map) == null) {
break;
}
var _local3 = in map;
} while (fn(_local3.substring(1), map[_local3]) != false);
do {
} while ("foreach" != null);
lastSize = -1;
}
}
Symbol 466 MovieClip [__Packages.com.midasplayer.fx.SoundManager] Frame 0
class com.midasplayer.fx.SoundManager
{
function SoundManager () {
}
static function parseGroup(group) {
return(((group == undefined) ? (DEFAULT_GROUP) : (group)));
}
static function addSoundGroup(group) {
var _local1 = soundEnabledMap.get(group);
if (_local1 == undefined) {
soundEnabledMap.put(group, {groupEnabled:isSoundEnabled(DEFAULT_GROUP)});
}
}
static function isSoundEnabled(group) {
group = parseGroup(group);
var _local1 = soundEnabledMap.get(group).groupEnabled;
if (_local1 == undefined) {
_local1 = true;
}
return(_local1);
}
static function enableSounds(enabled, group) {
group = parseGroup(group);
addSoundGroup(group);
var _local2 = (soundEnabledMap.get(group).groupEnabled = enabled);
trace(((("soundEnabled: " + isSoundEnabled(group)) + " '") + group) + "'");
if (!enabled) {
muteAll(group);
} else {
restoreMuteAll(group);
}
}
static function stopAll(group) {
sounds.foreach(function (name, soundEntry) {
soundEntry.sound.stop();
soundEntry.playStatus = false;
});
}
static function muteAll(group) {
group = parseGroup(group);
sounds.foreach(function (name, soundEntry) {
if (soundEntry.group == group) {
soundEntry.sound.setVolume(0);
}
});
}
static function restoreMuteAll(group) {
group = parseGroup(group);
sounds.foreach(function (name, soundEntry) {
if (soundEntry.group == group) {
soundEntry.sound.setVolume(soundEntry.realVol);
}
});
}
static function stop(resource) {
var _local1 = sounds.get(resource);
if (_local1 != undefined) {
_local1.sound.stop();
_local1.playStatus = false;
}
}
static function getCalibratedVolume(flashVolume) {
flashVolume = Math.min(100, flashVolume);
flashVolume = Math.max(0, flashVolume);
return(Math.ceil(Math.pow(flashVolume / 100, 1.46) * 100));
}
static function setVolume(resource, percent) {
var _local1 = sounds.get(resource);
if ((_local1 != undefined) && (_local1.playStatus == true)) {
var _local2 = getCalibratedVolume(percent);
_local1.sound.setVolume(_local2);
_local1.sound.volume = _local2;
}
}
static function isPlaying(resource) {
var _local1 = sounds.get(resource);
return((_local1 != undefined) && (_local1.playStatus == true));
}
static function play(resource, volume, isLoop, group) {
if (volume == undefined) {
volume = 100;
}
if (isLoop == undefined) {
isLoop = false;
}
volume = getCalibratedVolume(volume);
var _local1 = sounds.get(resource);
if (_local1 == undefined) {
_local1 = loadResource(resource, group);
}
if (_local1 != undefined) {
_local1.sound.setVolume((isSoundEnabled(_local1.group) ? (volume) : 0));
_local1.realVol = volume;
_local1.playStatus = true;
_local1.sound.start(0, (isLoop ? 32767 : 1));
}
}
static function loadResource(resource, group) {
group = parseGroup(group);
addSoundGroup(group);
var _local3 = _root.getNextHighestDepth();
var _local2 = new Sound(_root.createEmptyMovieClip("sm_sndhold_" + _local3, _local3));
_local2.attachSound(resource);
_local2.onSoundComplete = function () {
var _local1 = com.midasplayer.fx.SoundManager.sounds.get(resource);
_local1.playStatus = false;
};
sounds.put(resource, {realVol:100, sound:_local2, playStatus:true, group:group});
return(sounds.get(resource));
}
static var DEFAULT_GROUP = "default";
static var sounds = new com.midasplayer.util.Map();
static var soundEnabledMap = new com.midasplayer.util.Map();
}
Symbol 467 MovieClip [__Packages.com.midasplayer.util.GameDataAcquirer] Frame 0
class com.midasplayer.util.GameDataAcquirer
{
var attrib, multiplayerAttrib, trees, targetVar, dataEvent, timerFn, timer, error;
function GameDataAcquirer (variable) {
attrib = new com.midasplayer.util.Map();
multiplayerAttrib = new com.midasplayer.util.Map();
trees = new com.midasplayer.util.Map();
if (variable != undefined) {
targetVar = variable;
} else {
targetVar = "gameData";
}
}
function beginWait(fn) {
dataEvent = fn;
timerFn = function (caller) {
var _local1 = _level0[caller.targetVar];
if (((_local1 != undefined) && (_local1 != null)) && (_local1.length > 0)) {
caller.parse(_local1);
if (caller.dataEvent != undefined) {
caller.dataEvent();
}
caller.dataEvent = undefined;
clearInterval(caller.timer);
}
};
timer = setInterval(timerFn, 100, this);
}
function poll() {
if (!parsed) {
var _local2 = _level0[targetVar];
if (((_local2 != undefined) && (_local2 != null)) && (_local2.length > 0)) {
parse(_local2);
parsed = true;
return(true);
}
}
return(false);
}
function getAttributes() {
return(attrib);
}
function getSubTrees(name) {
return(trees.get(name));
}
function getGameData(name) {
return(attrib.get(name));
}
function getMultiplayerData(name) {
return(multiplayerAttrib.get(name));
}
function parse(data) {
attrib.clear();
var _local7 = new com.midasplayer.util.Map();
var _local9 = new XML();
_local9.ignoreWhite = true;
_local9.parseXML(data);
var _local4 = _local9.firstChild;
if (_local4.nodeName != "gamedata") {
error = "Bad XML (expected <gamedata>)";
return(undefined);
}
for (var _local8 in _local4.attributes) {
var _local5;
var _local3 = _local4.attributes[_local8];
if ((_local3.indexOf("[") == 0) && ((_local5 = _local3.indexOf("]")) != -1)) {
_local3 = _local3.substring(1, _local5).split(",");
}
attrib.put(_local8, _local3);
}
for (var _local8 in _local4.childNodes) {
var _local2 = _local4.childNodes[_local8];
switch (_local2.nodeName) {
case "text" :
_local7.put(_local2.attributes.id, _local2.firstChild.nodeValue);
break;
case "multiplayer" :
for (var _local8 in _local2.attributes) {
multiplayerAttrib.put(_local8, _local2.attributes[_local8]);
}
break;
default :
var _local6;
_local6 = trees.get(_local2.nodeName);
if (_local6 == undefined) {
trees.put(_local2.nodeName, [_local2]);
} else {
_local6.push(_local2);
}
}
}
trace("parse(): completed");
com.midasplayer.util.I18n.init(_local7);
}
var parsed = false;
}
Symbol 468 MovieClip [__Packages.com.midasplayer.util.Random] Frame 0
class com.midasplayer.util.Random
{
var mta, mti, lastSeed;
function Random (aSeed) {
mta = new Array(N);
mti = N + 1;
if (aSeed != undefined) {
init_genrand(aSeed);
}
}
function setSeed(s) {
init_genrand(s);
}
function getSeed() {
return(lastSeed);
}
function nextInt(n) {
return((genrand_int32() & 2147483647) % n);
}
function nextFloat() {
return(next(24) / 16777216);
}
function nextDouble() {
return(next(24) / 16777216);
}
function next(bits) {
if (bits < 32) {
return(genrand_int32() & ((1 << bits) - 1));
}
return(genrand_int32());
}
function init_genrand(s) {
s = int(s);
trace("Random::init_genrand(): seed=" + s);
var _local5 = getTimer();
lastSeed = s;
mta[0] = s;
var _local2 = s;
var _local3 = new com.midasplayer.util.Integer64();
mti = 1;
while (mti < N) {
_local3.init32((_local2 >>> 30) ^ _local2);
_local3.mulu32(1812433253);
_local2 = (mta[mti] = int(_local3.lsb + mti));
mti++;
}
var _local6 = getTimer();
trace(("Random::init_genrand(): initialization ~" + (_local6 - _local5)) + "ms");
}
function genrand_int32() {
var _local3 = 0;
if (mti >= N) {
if (mti == (N + 1)) {
init_genrand(5489);
}
var _local4 = getTimer();
var _local2 = 0;
_local2 = 0;
while (_local2 < (N - M)) {
_local3 = (mta[_local2] & UPPER_MASK) | (mta[_local2 + 1] & LOWER_MASK);
mta[_local2] = (mta[_local2 + M] ^ (_local3 >>> 1)) ^ mag01[_local3 & 1];
_local2++;
}
while (_local2 < (N - 1)) {
_local3 = (mta[_local2] & UPPER_MASK) | (mta[_local2 + 1] & LOWER_MASK);
mta[_local2] = (mta[_local2 + (M - N)] ^ (_local3 >>> 1)) ^ mag01[_local3 & 1];
_local2++;
}
_local3 = (mta[N - 1] & UPPER_MASK) | (mta[0] & LOWER_MASK);
mta[N - 1] = (mta[M - 1] ^ (_local3 >>> 1)) ^ mag01[_local3 & 1];
mti = 0;
var _local5 = getTimer();
trace(((("Random::genrand_int32(): precalc " + N) + " new numbers ~") + (_local5 - _local4)) + "ms");
}
_local3 = mta[mti++];
_local3 = _local3 ^ (_local3 >>> 11);
_local3 = _local3 ^ ((_local3 << 7) & 2636928640);
_local3 = _local3 ^ ((_local3 << 15) & 4022730752);
_local3 = _local3 ^ (_local3 >>> 18);
return(_local3);
}
static var N = 624;
static var M = 397;
static var MATRIX_A = 2567483615;
static var UPPER_MASK = 2147483648;
static var LOWER_MASK = 2147483647;
static var mag01 = [0, 2567483615];
}
Symbol 469 MovieClip [__Packages.com.midasplayer.util.Integer64] Frame 0
class com.midasplayer.util.Integer64
{
var r, p, s;
function Integer64 (lowInt) {
r = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]];
p = [0, 0, 0, 0, 0];
s = [0, 0, 0];
if (lowInt != undefined) {
merge(lowInt);
}
}
function init(v) {
var _local2 = 0;
while (_local2 < p.length) {
p[_local2] = v.p[_local2];
_local2++;
}
}
function init32(n) {
p[0] = n & 32767;
n = n >>> 15;
p[1] = n & 32767;
n = n >>> 15;
p[2] = n & 3;
p[3] = 0;
p[4] = 0;
}
function get lsb() {
return((p[0] | (p[1] << SH)) | ((p[2] & 3) << 30));
}
function get msb() {
return((((p[2] >> 2) | ((p[3] << SH) >> 2)) | ((p[4] << (SH * 2)) >> 2)) & 2147483647);
}
function binaryShiftLeft(step) {
var _local2 = 0;
while (_local2 < step) {
shl();
_local2++;
}
}
function binaryShiftRight(step) {
var _local4 = (step / SH) >> 0;
var _local5 = step - (_local4 * SH);
var _local2 = p.length - 1;
while (_local2 > 0) {
var _local3 = 0;
while (_local3 < _local4) {
p[_local3] = p[_local3 + 1];
_local3++;
}
p[_local2--] = 0;
}
if (_local5 > 0) {
var _local3 = 0;
while (_local3 < _local5) {
shr();
_local3++;
}
}
}
function binaryNot(o) {
p[0] = p[0] ^ o.p[0];
p[1] = p[1] ^ o.p[1];
p[2] = p[2] ^ o.p[2];
p[3] = p[3] ^ o.p[3];
p[4] = p[4] ^ o.p[4];
}
function add64(o) {
var _local4 = 0;
var _local3 = 1;
var _local2 = 0;
while ((_local3 < p.length) && (o.p[_local2] != 0)) {
_local3++;
}
_local2 = 0;
while (_local2 < _local3) {
_local4 = _local4 + (p[_local2] + o.p[_local2]);
p[_local2] = _local4 & MASK;
_local4 = _local4 >> SH;
_local2++;
}
}
function add32(num) {
var _local2 = 0;
var _local5 = num & MASK;
num = num >> SH;
var _local6 = num & MASK;
num = num >> SH;
var _local4 = num & 3;
_local2 = _local2 + (p[0] + _local5);
p[0] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (p[1] + _local6);
p[1] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (p[2] + _local4);
p[2] = _local2 & MASK;
}
function mulu32(num) {
var _local3 = 0;
s[0] = num & MASK;
num = num >>> 15;
s[1] = num & MASK;
num = num >>> 15;
s[2] = num & 3;
var _local2 = 0;
while (_local2 < 3) {
var _local4 = s[_local2];
_local3 = _local4 * p[0];
r[_local2][0] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local4 * p[1]);
r[_local2][1] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local4 * p[2]);
r[_local2][2] = _local3 & 3;
_local2++;
}
_local3 = r[0][0];
p[0] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (r[0][1] + r[1][0]);
p[1] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + ((r[0][2] + r[1][1]) + r[2][0]);
p[2] = _local3 & 3;
p[3] = 0;
p[4] = 0;
}
function mul64(o) {
var _local2 = 0;
var _local3 = 0;
while (_local3 < 5) {
var _local4 = o.p[_local3];
_local2 = _local4 * p[0];
r[_local3][0] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (_local4 * p[1]);
r[_local3][1] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (_local4 * p[2]);
r[_local3][2] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (_local4 * p[3]);
r[_local3][3] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (_local4 * p[4]);
r[_local3][4] = _local2 & MASK;
_local3++;
}
_local2 = r[0][0];
p[0] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (r[0][1] + r[1][0]);
p[1] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + ((r[0][2] + r[1][1]) + r[2][0]);
p[2] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + (((r[0][3] + r[1][2]) + r[2][1]) + r[3][0]);
p[3] = _local2 & MASK;
_local2 = _local2 >> SH;
_local2 = _local2 + ((((r[0][4] + r[1][3]) + r[2][2]) + r[3][1]) + r[4][0]);
p[4] = _local2 & 7;
}
function mul32(value) {
mul64(new com.midasplayer.util.Integer64(value));
}
function merge(a) {
var _local2 = 0;
while (_local2 < 3) {
p[_local2] = p[_local2] + (a & 32767);
a = a >>> 15;
_local2++;
}
return(a);
}
function shl() {
var _local5 = 0;
var _local4 = 0;
var _local2 = 0;
var _local3 = p.length;
while (_local2 < _local3) {
_local5 = (p[_local2] & 16384) >> 14;
p[_local2] = p[_local2] << 1;
p[_local2] = (p[_local2] | _local4) & 32767;
_local2++;
_local4 = _local5;
}
}
function shr() {
var _local4 = 0;
var _local3 = 0;
var _local2 = p.length - 1;
while (_local2 >= 0) {
_local4 = (p[_local2] & 1) << 14;
p[_local2] = p[_local2] >> 1;
p[_local2] = (p[_local2] | _local3) & 32767;
_local2--;
_local3 = _local4;
}
}
static var MASK = 32767;
static var SH = 15;
}
Symbol 470 MovieClip [__Packages.com.midasplayer.util.FpsCounter] Frame 0
class com.midasplayer.util.FpsCounter
{
var m_clip, m_textField;
function FpsCounter (scope) {
var _local4 = 0;
var _local3 = 0;
var _local2 = "fpsTextField";
m_clip = scope.createEmptyMovieClip("fpsCounter", scope.getNextHighestDepth());
m_clip.createTextField(_local2, m_clip.getNextHighestDepth(), _local4, _local3, 100, 30);
m_textField = m_clip[_local2];
m_textField.textColor = 16711680 /* 0xFF0000 */;
m_clip.onEnterFrame = mx.utils.Delegate.create(this, onRender);
}
function onRender() {
var _local2 = getTimer();
m_fpsCount++;
if ((getTimer() - m_lastFpsUpdateTime) >= 1000) {
var _local3 = "FPS: " + m_fpsCount;
m_lastFpsUpdateTime = _local2;
m_textField.text = _local3;
m_fpsCount = 0;
m_lastFpsUpdateTime = getTimer();
}
}
var m_fpsCount = 0;
var m_lastFpsUpdateTime = 0;
}
Symbol 471 MovieClip [__Packages.com.midasplayer.gameCore.ClientInput] Frame 0
class com.midasplayer.gameCore.ClientInput
{
var m_entries, m_time, m_type, m_tick;
function ClientInput () {
m_entries = new com.midasplayer.util.ArrayList();
m_time = new Date();
}
function setType(type) {
m_type = type;
}
function getType() {
return(m_type);
}
function setTick(tick) {
m_tick = tick;
}
function getTick() {
return(m_tick);
}
function getTime() {
return(m_time);
}
function addEntry(entry) {
m_entries.insert(entry);
}
function getNumEntries() {
return(m_entries.size());
}
function getInt(index) {
return(Number(m_entries.get(index)));
}
function toString() {
var _local3 = "";
_local3 = _local3 + "[CLIENT DATA] ";
_local3 = _local3 + ((("C:" + m_type) + " T:") + m_tick);
var _local2 = 0;
while (_local2 < m_entries.size()) {
_local3 = _local3 + ((" '" + String(m_entries.get(_local2))) + "'");
_local2++;
}
return(_local3);
}
static function parseInput(inputString) {
var _local13 = new com.midasplayer.util.ArrayList();
var _local12 = "[CDATA[";
var _local1 = 0;
var _local5 = 0;
var _local14 = 10000;
var _local8 = 0;
while (_local8 < _local14) {
_local1 = inputString.indexOf(_local12, _local1);
if (_local1 == -1) {
break;
}
_local1 = _local1 + _local12.length;
var _local4 = new com.midasplayer.gameCore.ClientInput();
_local5 = inputString.indexOf(",", _local1);
var _local9 = Number(inputString.substr(_local1, _local5 - _local1));
_local4.setType(_local9);
_local1 = _local5 + 1;
_local5 = inputString.indexOf(",", _local1);
var _local10 = inputString.substr(_local1, _local5 - _local1);
var _local3 = _local10.split(" ");
if (_local3.length > 0) {
var _local11 = Number(_local3[0]);
_local4.setTick(_local11);
_local3.splice(0, 1);
}
var _local2 = 0;
while (_local2 < _local3.length) {
var _local6 = _local3[_local2];
_local4.addEntry(_local6);
_local2++;
}
_local1 = _local5 + 1;
_local13.insert(_local4);
_local8++;
}
return(_local13);
}
}
Symbol 472 MovieClip [__Packages.com.midasplayer.bigbang.GameLogic] Frame 0
class com.midasplayer.bigbang.GameLogic extends com.midasplayer.gameCore.AbstractGameLogic
{
var m_gameBoard, m_gameView, trace, setTicksPerSecond, setPendingStateDuration, m_levelLayout, trimArray, getState, m_pendingStateTickCount, getLevel, addTime, getTimeLeft, getTimeLimit, getTickCount, sendPlaydata, gameOver;
function GameLogic () {
super();
}
function getGameBoard() {
return(m_gameBoard);
}
function getGameView() {
return(com.midasplayer.bigbang.GameView(m_gameView));
}
function onInit() {
trace("INIT!!!");
com.midasplayer.gameCore.AbstractGameLogic.DEV = false;
com.midasplayer.gameCore.AbstractGameLogic.PERFORMANCE_LOG = false;
com.midasplayer.gameCore.AbstractGameLogic.PRACTICE_GAME = false;
m_gameBoard = new com.midasplayer.bigbang.GameBoard();
m_gameBoard.setGameLogic(this);
getGameView().setGameBoard(m_gameBoard);
setTicksPerSecond(TICKS_PER_SECOND);
setPendingStateDuration(PENDING_STATE_TICKS_START, PENDING_STATE_TICKS_END);
}
function onSetGameData(gda) {
trace("GameDataReceived");
var _local3 = Number(gda.getGameData("viewFrame"));
getGameView().setViewFrame(_local3);
m_levelLayout = new com.midasplayer.util.ArrayList(gda.getGameData("levelLayout"));
trimArray(m_levelLayout);
var _local5 = Number(gda.getGameData("numberClicks"));
m_gameBoard.setClicks(_local5);
var _local4 = new com.midasplayer.util.ArrayList(gda.getGameData("bonusClicks"));
m_gameBoard.setBonusClicks(_local4);
}
function onHandleInput(input) {
var _local3 = input.getType();
if (_local3 == com.midasplayer.bigbang.GameBoard.INPUT_TYPE_CLICK_CARD) {
var _local2 = input.getInt(0);
var _local4 = input.getInt(1);
getGameBoard().cardClicked(_local2, _local4);
trace(((("~~~~ clicked card - [" + _local2) + ", ") + _local4) + "]");
return(true);
}
if (_local3 == com.midasplayer.bigbang.GameBoard.INPUT_TYPE_QUIT) {
exitButtonPush();
trace("~~~~ exit game button pushed");
return(true);
}
return(false);
}
function onTick() {
if ((!m_exitGamePressed) && ((getState() == com.midasplayer.gameCore.GameState.LEVEL_OVER_PENDING) || (getState() == com.midasplayer.gameCore.GameState.GAME_OVER_PENDING))) {
if (m_gameBoard.getMissileCount() > 0) {
m_pendingStateTickCount++;
setPendingStateDuration(PENDING_STATE_TICKS_START, PENDING_STATE_TICKS_END + m_pendingStateTickCount);
}
}
m_gameBoard.onTick();
}
function onLevelSetup() {
trace("--- onLevelSetup");
var _local2 = getLevel();
var _local3 = String(m_levelLayout.get(_local2));
m_gameBoard.clearLevel();
m_gameBoard.setupLevel(LEVEL_WIDTH, LEVEL_HEIGHT, _local3);
addTime(-m_totalTimeSpent);
m_pendingStateTickCount = 0;
}
function onLevelTimeUp() {
return(m_gameBoard.onLevelTimeUp());
}
function onCompleteLevel() {
m_totalTimeSpent = getTimeLimit() - getTimeLeft();
}
function exitButtonPush() {
if (getState() != com.midasplayer.gameCore.GameState.LEVEL_RUNNING) {
return(undefined);
}
m_exitGamePressed = true;
var _local2 = ((com.midasplayer.bigbang.GameBoard.INPUT_TYPE_QUIT + ",") + getTickCount()) + " ,=0";
sendPlaydata(_local2);
setPendingStateDuration(0, 0);
gameOver();
}
static var LAYER_CARDS_HITAREA = 0;
static var LAYER_CARDS = 1;
static var LAYER_CARD_EFFECT = 2;
static var LAYER_MISSILES = 3;
static var LAYER_SCOREPOP = 4;
static var LAYER_OVERLAY_EFFECT = 5;
static var TICKS_PER_SECOND = 10;
static var LEVEL_WIDTH = 6;
static var LEVEL_HEIGHT = 6;
var m_totalTimeSpent = 0;
var m_exitGamePressed = false;
var PENDING_STATE_TICKS_START = 0;
var PENDING_STATE_TICKS_END = 10;
}
Symbol 473 MovieClip [__Packages.com.midasplayer.bigbang.GameBoard] Frame 0
class com.midasplayer.bigbang.GameBoard
{
var m_width, m_height, m_gameLogic, m_cards, m_missiles, m_burstCount, m_maxGeneration, m_bangCount, m_lastComboTick, m_clicks, m_bonusClicks, m_levelComplete;
function GameBoard () {
}
function getWidth() {
return(m_width);
}
function getHeight() {
return(m_height);
}
function hasValidAchievement() {
return(m_validAchievement);
}
function setGameLogic(gameLogic) {
m_gameLogic = gameLogic;
}
function getGameLogic() {
return(m_gameLogic);
}
function clearLevel() {
getGameLogic().getWorld().clearWorldObjects();
m_width = 0;
m_height = 0;
m_cards = new com.midasplayer.util.ArrayList();
var _local2 = 0;
while (_local2 < m_missiles.size()) {
var _local3 = com.midasplayer.bigbang.Missile(m_missiles.get(_local2));
_local3.removeFromWorld();
_local2++;
}
m_missiles = new com.midasplayer.util.ArrayList();
m_burstCount = 0;
m_maxGeneration = 0;
m_bangCount = 0;
m_lastComboTick = -1000;
}
function isBigBang() {
return(m_bangCount == 1);
}
function getTotalBangCount() {
return(m_totalBangCount);
}
function setClicks(clicks) {
m_clicks = clicks;
}
function addClick(clicks) {
m_clicks = m_clicks + clicks;
}
function getClicksLeft() {
return(m_clicks);
}
function setBonusClicks(bonusClicks) {
m_bonusClicks = bonusClicks;
}
function getBonusClick(levelNo) {
return(Number(m_bonusClicks.get(levelNo)));
}
function getBonusScore() {
return(m_bonusScore);
}
function setupLevel(width, height, layout) {
m_levelComplete = false;
clearLevel();
var _local9 = getGameLogic().getLevel() - 1;
if (_local9 >= 0) {
var _local8 = getBonusClick(_local9);
trace("bonusClick: " + _local8);
addClick(_local8);
}
m_width = width;
m_height = height;
var _local5 = 0;
while (_local5 < m_height) {
var _local3 = 0;
while (_local3 < m_width) {
var _local2;
var _local4 = layout.substr(((_local5 * m_width) + _local3) * 3, 3);
if (_local4 != LEVEL_ITEM_EMPTY) {
_local2 = com.midasplayer.bigbang.Card(getGameLogic().addWorldObject(new com.midasplayer.bigbang.Card(), com.midasplayer.bigbang.GameLogic.LAYER_CARDS));
_local2.setGameBoard(this);
_local2.setBoardPos(_local3, _local5);
_local2.init(_local4);
}
m_cards.insert(_local2);
_local3++;
}
_local5++;
}
var _local7 = getGameLogic();
if ((_local7.getGameMode() == com.midasplayer.gameCore.AbstractGameLogic.GAME_MODE_SHORT) && (_local7.getLevel() == 1)) {
_local7.addTime(-_local7().getTimeLeft());
}
}
function getCard(x, y) {
if ((x < 0) || (x >= m_width)) {
return(undefined);
}
if ((y < 0) || (y >= m_height)) {
return(undefined);
}
return(com.midasplayer.bigbang.Card(m_cards.get((y * m_width) + x)));
}
function isOffset(columnOrRow) {
return(false);
}
function cardClicked(x, y) {
if (m_missiles.size() > 0) {
getGameLogic().getGameView().makeZapClick();
return(undefined);
}
if (m_clicks <= 0) {
return(undefined);
}
var _local2 = new com.midasplayer.gameCore.ClientInput();
_local2.setType(INPUT_TYPE_CLICK_CARD);
_local2.setTick(getGameLogic().getTickCount());
_local2.addEntry(x);
_local2.addEntry(y);
handleClientInput(_local2);
}
function handleClientInput(clientInput) {
var _local5 = getGameLogic();
if ((_local5.getState() != com.midasplayer.gameCore.GameState.LEVEL_RUNNING) || (clientInput.getTick() != _local5.getTickCount())) {
return(false);
}
var _local8 = clientInput.getInt(0);
var _local7 = clientInput.getInt(1);
var _local6 = getCard(_local8, _local7);
if (_local6 == undefined) {
return(false);
}
var _local10 = ((((((INPUT_TYPE_CLICK_CARD + ",") + _local5.getTickCount()) + " ") + _local8) + " ") + _local7) + " ,=0";
_local5.sendPlaydata(_local10);
var _local4 = false;
var _local2 = 0;
while (_local2 < m_cards.size()) {
var _local3 = com.midasplayer.bigbang.Card(m_cards.get(_local2));
if ((_local3 != undefined) && (_local3.getSize() == (com.midasplayer.bigbang.Card.MAX_SIZE - 1))) {
_local4 = true;
}
_local2++;
}
if (((m_clicks == 1) && (_local6.getSize() < (com.midasplayer.bigbang.Card.MAX_SIZE - 1))) && (_local4)) {
_local5.getGameView().makeZapLastClick();
} else {
_local6.increaseSize(undefined);
m_clicks--;
_local5.getGameView().makeZapEffect();
}
return(true);
}
function onTick() {
var _local4 = new com.midasplayer.util.ArrayList();
var _local6 = new com.midasplayer.util.ArrayList();
if (getMissileCount() > 0) {
var _local2 = 0;
while (_local2 < m_missiles.size()) {
var _local5 = com.midasplayer.bigbang.Missile(m_missiles.get(_local2));
var _local3 = checkCollision(_local5);
if (_local3 != undefined) {
_local4.insert(_local3);
_local6.insert(_local5);
}
_local2++;
}
_local2 = 0;
while (_local2 < _local4.size()) {
var _local3 = com.midasplayer.bigbang.Card(_local4.get(_local2));
var _local5 = com.midasplayer.bigbang.Missile(_local6.get(_local2));
_local3.increaseSize(_local5);
_local5.collide();
_local2++;
}
_local2 = 0;
while (_local2 < m_missiles.size()) {
var _local5 = com.midasplayer.bigbang.Missile(m_missiles.get(_local2));
_local5.checkEdgeCollision();
_local2++;
}
if (getMissileCount() == 0) {
onEndMissileFlight();
}
if (!m_levelComplete) {
m_levelComplete = true;
_local2 = 0;
while (_local2 < m_cards.size()) {
var _local3 = com.midasplayer.bigbang.Card(m_cards.get(_local2));
if ((_local3 != undefined) && (_local3.getSize() < com.midasplayer.bigbang.Card.MAX_SIZE)) {
m_levelComplete = false;
}
_local2++;
}
if (m_levelComplete) {
if (m_bangCount == 0) {
m_totalBangCount++;
}
if ((getGameLogic().getLevel() + 1) == getGameLogic().getNumberLevels()) {
var _local7 = getClicksLeft() * SCORE_CLICK_LEFT;
var _local8 = Math.round((getGameLogic().getTimeLeft() / 1000) * SCORE_TIME_LEFT);
trace("award bonus for clicks left " + _local7);
trace("award bonus for time left " + _local8);
m_bonusScore = _local7 + _local8;
getGameLogic().addScore(m_bonusScore);
}
getGameLogic().completeLevel();
}
}
} else if (getClicksLeft() == 0) {
getGameLogic().gameOver();
}
}
function checkCollision(missile) {
if (!missile.isActive()) {
return(undefined);
}
var _local6 = missile.getX();
var _local5 = missile.getY();
var _local4 = Math.floor(_local6 / com.midasplayer.bigbang.BoardObject.SQUARE_WIDTH);
var _local7 = Math.floor(_local5 / com.midasplayer.bigbang.BoardObject.SQUARE_WIDTH);
var _local2 = getCard(_local4, _local7);
if (_local2 != undefined) {
if (missile.isColliding(_local2)) {
return(_local2);
}
}
return(undefined);
}
function getMissileCount() {
return(m_missiles.size());
}
function onEndMissileFlight() {
m_burstCount = 0;
m_maxGeneration = 0;
m_bangCount++;
getGameLogic().getGameView().resetWarningClicks();
}
function onBurst(card, missile) {
var _local3 = getGameLogic();
var _local2 = SCORE_BURST;
var _local4 = 0;
if (missile != undefined) {
_local4 = missile.getGeneration() + 2;
}
_local2 = _local2 + (m_burstCount * SCORE_COMBO_BONUS);
if (card.getAttribute() == com.midasplayer.bigbang.Card.ATTRIBUTE_X2) {
_local2 = _local2 * 2;
} else if (card.getAttribute() == com.midasplayer.bigbang.Card.ATTRIBUTE_X3) {
_local2 = _local2 * 3;
}
m_burstCount++;
if ((m_burstCount % 3) == 0) {
trace("award bonus click! burstCount: " + m_burstCount);
addClick(1);
}
_local3.addScore(_local2);
_local3.getGameView().makeScorePop(_local2, card, _local4);
}
function addMissile(inMissile) {
m_missiles.insert(inMissile);
}
function removeMissile(inMissile) {
var _local2 = 0;
while (_local2 < m_missiles.size()) {
var _local3 = com.midasplayer.bigbang.Missile(m_missiles.get(_local2));
if (_local3 == inMissile) {
m_missiles.removeByIndex(_local2);
}
_local2++;
}
}
function onLevelTimeUp() {
var _local3 = false;
var _local2 = getGameLogic();
_local2.getGameView().updateScoreSign();
return(_local3);
}
static var LEVEL_ITEM_EMPTY = "000";
static var INPUT_TYPE_CLICK_CARD = 42;
static var INPUT_TYPE_QUIT = 999;
static var SCORE_BURST = 100;
static var SCORE_COMBO_BONUS = 10;
static var SCORE_CLICK_LEFT = 100;
static var SCORE_TIME_LEFT = 10;
var m_bonusScore = 0;
var m_totalBangCount = 0;
var m_validAchievement = true;
}
Symbol 474 MovieClip [__Packages.com.midasplayer.bigbang.Missile] Frame 0
class com.midasplayer.bigbang.Missile extends com.midasplayer.gameCore.WorldObject
{
var m_objectView, m_parent, m_atomColor, setX, setY, getY, setVelY, setRotation, getX, setVelX, setDestroyTick, getVelX, getVelY;
function Missile () {
super();
}
function createObjectView() {
return(new com.midasplayer.bigbang.MissileView());
}
function getObjectView() {
return(com.midasplayer.bigbang.MissileView(m_objectView));
}
function getGameLogic() {
return(com.midasplayer.bigbang.GameLogic(super.getGameLogic()));
}
function init(card, direction, parentMissile, missileCount) {
getGameLogic().getGameBoard().addMissile(this);
m_active = true;
m_parent = card;
var _local4 = 0;
if (parentMissile != undefined) {
_local4 = parentMissile.getGeneration() + 1;
}
m_generation = _local4;
m_atomColor = card.getAtomColor();
if (card.getAttribute() == com.midasplayer.bigbang.Card.ATTRIBUTE_POWER) {
m_powerMissile = true;
}
setX(card.getX());
setY(card.getY());
var _local2 = ((missileCount == 0) ? (SPEED_PRIMARY) : (SPEED_SECONDARY));
if (direction == DIRECTION_UP) {
setY(getY() - CENTER_OFFSET);
setVelY(-_local2);
setRotation(0);
} else if (direction == DIRECTION_RIGHT) {
setX(getX() + CENTER_OFFSET);
setVelX(_local2);
setRotation(90);
}
if (direction == DIRECTION_DOWN) {
setY(getY() + CENTER_OFFSET);
setVelY(_local2);
setRotation(180);
}
if (direction == DIRECTION_LEFT) {
setX(getX() - CENTER_OFFSET);
setVelX(-_local2);
setRotation(270);
}
getObjectView().updateView();
}
function isActive() {
return(m_active);
}
function getGeneration() {
return(m_generation);
}
function getAtomColor() {
return(m_atomColor);
}
function isPowerMissile() {
return(m_powerMissile);
}
function checkEdgeCollision() {
if (m_active) {
if ((((getX() <= 0) || (getX() >= (getGameLogic().getGameBoard().getWidth() * com.midasplayer.bigbang.BoardObject.SQUARE_WIDTH))) || (getY() <= 0)) || (getY() >= (getGameLogic().getGameBoard().getHeight() * com.midasplayer.bigbang.BoardObject.SQUARE_HEIGHT))) {
collide();
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_SHOT_VANISH, com.midasplayer.bigbang.GameView.SOUND_SHOT_VANISH_VOLUME);
}
}
}
function isColliding(card) {
if (card == m_parent) {
return(false);
}
if (card.getSize() == com.midasplayer.bigbang.Card.MAX_SIZE) {
return(false);
}
var _local8 = card.getX();
var _local7 = card.getY();
var _local4 = getX();
var _local3 = getY();
var _local6 = Math.abs(_local8 - _local4);
var _local5 = Math.abs(_local7 - _local3);
if ((_local6 <= com.midasplayer.bigbang.Card.BOUND_RADIUS) && (_local5 <= com.midasplayer.bigbang.Card.BOUND_RADIUS)) {
return(true);
}
return(false);
}
function collide() {
var _local2 = getGameLogic();
getGameLogic().getGameBoard().removeMissile(this);
setDestroyTick(_local2.getTickCount() + DESTROY_DELAY);
m_active = false;
setVelX(0);
setVelY(0);
getObjectView().onCollide();
}
function onTick() {
var _local2 = getVelX();
setVelX(_local2 * ACCELERATION_FACTOR);
if (Math.abs(_local2) > MAX_SPEED) {
setVelX((MAX_SPEED * _local2) / Math.abs(_local2));
}
_local2 = getVelY();
setVelY(_local2 * ACCELERATION_FACTOR);
if (Math.abs(_local2) > MAX_SPEED) {
setVelY((MAX_SPEED * _local2) / Math.abs(_local2));
}
}
static var DIRECTION_UP = 0;
static var DIRECTION_RIGHT = 1;
static var DIRECTION_DOWN = 2;
static var DIRECTION_LEFT = 3;
static var SPEED_PRIMARY = 5;
static var SPEED_SECONDARY = 2;
static var MAX_SPEED = 30;
static var ACCELERATION_FACTOR = 1.2;
static var CENTER_OFFSET = 0;
static var DESTROY_DELAY = 10;
var m_active = false;
var m_generation = 0;
var m_powerMissile = false;
var DEFAULT_SYMBOL = "missile_wrapper";
}
Symbol 475 MovieClip [__Packages.com.midasplayer.bigbang.BoardObject] Frame 0
class com.midasplayer.bigbang.BoardObject extends com.midasplayer.gameCore.WorldObject
{
var m_gameBoard, setX, setY, setScaleX, setScaleY;
function BoardObject () {
super();
}
function getGameLogic() {
return(com.midasplayer.bigbang.GameLogic(super.getGameLogic()));
}
function setGameBoard(gameBoard) {
m_gameBoard = gameBoard;
}
function getGameBoard() {
return(m_gameBoard);
}
function getBoardX() {
return(m_boardX);
}
function getBoardY() {
return(m_boardY);
}
function setBoardPos(x, y) {
m_boardX = x;
m_boardY = y;
updatePosition();
}
function updatePosition() {
var _local3 = getBoardX();
var _local5 = getBoardY();
var _local4 = LEFT_OFFSET + (_local3 * SQUARE_WIDTH);
var _local2 = TOP_OFFSET + (_local5 * SQUARE_HEIGHT);
if (!m_gameBoard.isOffset(_local3)) {
_local2 = _local2 + (SQUARE_HEIGHT / 2);
}
setX(_local4);
setY(_local2);
setScaleX(SQUARE_SCALE);
setScaleY(SQUARE_SCALE);
}
static var SQUARE_SCALE = 100;
static var SQUARE_WIDTH = (77 * SQUARE_SCALE) / 100;
static var SQUARE_HEIGHT = (77 * SQUARE_SCALE) / 100;
static var LEFT_OFFSET = 38;
static var TOP_OFFSET = 0;
var m_boardX = -1;
var m_boardY = -1;
}
Symbol 476 MovieClip [__Packages.com.midasplayer.bigbang.Card] Frame 0
class com.midasplayer.bigbang.Card extends com.midasplayer.bigbang.BoardObject
{
var setInputEnabled, setAnimated, setUseHandCursor, m_objectView, getGameLogic, setDestroyTick, getBoardX, getBoardY;
function Card () {
super();
setInputEnabled(((com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_PRESS | com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_ROLL_OVER) | com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_ROLL_OUT) | com.midasplayer.gameCore.WorldObject.INPUT_MOUSE_DRAG_OUT);
setAnimated(false);
setUseHandCursor(true);
}
function createObjectView() {
return(new com.midasplayer.bigbang.CardView());
}
function getObjectView() {
return(com.midasplayer.bigbang.CardView(m_objectView));
}
function init(initString) {
var _local3 = Math.min(Number(initString.charAt(0)), MAX_SIZE - 1);
m_size = _local3;
var _local2 = Number(initString.charAt(1));
m_atomColor = _local2;
var _local4 = Number(initString.charAt(2));
m_attribute = _local4;
getObjectView().updateView(true);
}
function increaseSize(parentMissile) {
if (m_size >= MAX_SIZE) {
return(undefined);
}
if ((parentMissile != undefined) && (parentMissile.isPowerMissile())) {
m_size = MAX_SIZE;
} else if ((parentMissile == undefined) || (parentMissile.getAtomColor() == getAtomColor())) {
m_size++;
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_ATOM_GROW, com.midasplayer.bigbang.GameView.SOUND_ATOM_GROW_VOLUME);
} else if (m_size < (MAX_SIZE - 1)) {
m_size++;
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_ATOM_GROW, com.midasplayer.bigbang.GameView.SOUND_ATOM_GROW_VOLUME);
} else {
com.midasplayer.fx.SoundManager.play(com.midasplayer.bigbang.GameView.SOUND_ATOM_STOP_GROW, com.midasplayer.bigbang.GameView.SOUND_ATOM_STOP_GROW_VOLUME);
}
if (getSize() == MAX_SIZE) {
var _local6 = 1;
if (getAttribute() == ATTRIBUTE_DOUBLE) {
_local6 = 2;
}
var _local3 = 0;
while (_local3 < _local6) {
var _local2 = 0;
while (_local2 < 4) {
var _local4 = com.midasplayer.bigbang.Missile(getGameLogic().addWorldObject(new com.midasplayer.bigbang.Missile(), com.midasplayer.bigbang.GameLogic.LAYER_MISSILES));
_local4.init(this, _local2, parentMissile, _local3);
_local2++;
}
_local3++;
}
var _local7 = getGameLogic();
var _local8 = _local7.getGameBoard();
_local8.onBurst(this, parentMissile);
setDestroyTick(_local7.getTickCount() + DESTROY_DELAY);
}
if (parentMissile == undefined) {
getObjectView().makeEffect("electricbolt");
}
getObjectView().updateView();
getObjectView().makeRollOverEffect();
}
function getSize() {
return(m_size);
}
function getAtomColor() {
return(m_atomColor);
}
function getAttribute() {
return(m_attribute);
}
function onPress() {
if (getGameLogic().getState() != com.midasplayer.gameCore.GameState.LEVEL_RUNNING) {
return(undefined);
}
getGameLogic().getGameBoard().cardClicked(getBoardX(), getBoardY());
}
static var COLOR_PINK = 0;
static var COLOR_GREEN = 1;
static var ATTRIBUTE_NONE = 0;
static var ATTRIBUTE_X2 = 1;
static var ATTRIBUTE_X3 = 2;
static var ATTRIBUTE_DOUBLE = 3;
static var ATTRIBUTE_POWER = 4;
static var BOUND_RADIUS = 20;
static var MAX_SIZE = 5;
var m_size = 0;
var m_atomColor = COLOR_PINK;
var m_attribute = ATTRIBUTE_NONE;
static var DESTROY_DELAY = 15;
var DEFAULT_SYMBOL = "atom";
}
Symbol 477 MovieClip [__Packages.com.midasplayer.bigbang.CardView] Frame 0
class com.midasplayer.bigbang.CardView extends com.midasplayer.gameCore.WorldObjectView
{
var getClip, getGameLogic;
function CardView () {
super();
}
function getObject() {
return(com.midasplayer.bigbang.Card(super.getObject()));
}
function updateView(init) {
var _local2 = getClip();
var _local3 = getObject();
var _local6 = _local3.getSize() + (_local3.getAtomColor() * com.midasplayer.bigbang.Card.MAX_SIZE);
_local2.gotoAndStop(_local6);
_local2.clip.gotoAndStop(1);
var _local5 = _local3.getAttribute();
if (_local5 == com.midasplayer.bigbang.Card.ATTRIBUTE_NONE) {
_local2.attribute_icon._visible = false;
} else {
_local2.attribute_icon._visible = true;
_local2.attribute_icon.gotoAndStop(_local5);
if (init) {
var _local4 = _local2.attribute_icon.anim;
_local4.gotoAndPlay(Math.floor(Math.random() * _local4._framesloaded) + 1);
}
}
}
function onClipLoaded() {
}
function onRollOver() {
makeRollOverEffect();
}
function makeRollOverEffect() {
var _local2 = getClip();
_local2.clip.gotoAndStop(2);
}
function setFalldownOffset(yOffset) {
var _local5 = mx.transitions.easing.Bounce.easeOut;
var _local3 = yOffset * com.midasplayer.bigbang.BoardObject.SQUARE_HEIGHT;
var _local4 = 0;
var _local2 = 1;
var _local6 = new mx.transitions.Tween(this, "m_offsetY", _local5, _local3, _local4, _local2, true);
}
function makeEffect(identifier, xOffset, yOffset, scale) {
if (xOffset == undefined) {
xOffset = 0;
}
if (yOffset == undefined) {
yOffset = 0;
}
if (scale == undefined) {
scale = 100;
}
var _local3 = getClip();
var _local4 = getGameLogic().getWorld().getLayer(com.midasplayer.bigbang.GameLogic.LAYER_CARD_EFFECT);
var _local2 = _local4.attachMovie(identifier, "effect_" + getObject().getObjId(), _local4.getNextHighestDepth());
_local2._x = _local3._x + xOffset;
_local2._y = _local3._y + yOffset;
_local2._xscale = (_local2._yscale = scale);
return(_local2);
}
var m_offsetX = 0;
var m_offsetY = 0;
}
Symbol 478 MovieClip [__Packages.mx.transitions.easing.Bounce] Frame 0
class mx.transitions.easing.Bounce
{
function Bounce () {
}
static function easeOut(t, b, c, d) {
t = t / d;
if (t < 0.363636363636364) {
return((c * ((7.5625 * t) * t)) + b);
}
if (t < 0.727272727272727) {
t = t - 0.545454545454545;
return((c * (((7.5625 * t) * t) + 0.75)) + b);
}
if (t < 0.909090909090909) {
t = t - 0.818181818181818;
return((c * (((7.5625 * t) * t) + 0.9375)) + b);
}
t = t - 0.954545454545455;
return((c * (((7.5625 * t) * t) + 0.984375)) + b);
}
static function easeIn(t, b, c, d) {
return((c - easeOut(d - t, 0, c, d)) + b);
}
static function easeInOut(t, b, c, d) {
if (t < (d / 2)) {
return((easeIn(t * 2, 0, c, d) * 0.5) + b);
}
return(((easeOut((t * 2) - d, 0, c, d) * 0.5) + (c * 0.5)) + b);
}
static var version = "1.1.0.52";
}
Symbol 479 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 480 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 481 MovieClip [__Packages.mx.transitions.Tween] Frame 0
class mx.transitions.Tween
{
var obj, prop, begin, useSeconds, _listeners, addListener, prevTime, _time, looping, _duration, broadcastMessage, isPlaying, _fps, prevPos, _pos, change, _intervalID, _startTime;
function Tween (obj, prop, func, begin, finish, duration, useSeconds) {
mx.transitions.OnEnterFrameBeacon.init();
if (!arguments.length) {
return;
}
this.obj = obj;
this.prop = prop;
this.begin = begin;
position = (begin);
this.duration = (duration);
this.useSeconds = useSeconds;
if (func) {
this.func = func;
}
this.finish = (finish);
_listeners = [];
addListener(this);
start();
}
function set time(t) {
prevTime = _time;
if (t > duration) {
if (looping) {
rewind(t - _duration);
update();
broadcastMessage("onMotionLooped", this);
} else {
if (useSeconds) {
_time = _duration;
update();
}
stop();
broadcastMessage("onMotionFinished", this);
}
} else if (t < 0) {
rewind();
update();
} else {
_time = t;
update();
}
//return(time);
}
function get time() {
return(_time);
}
function set duration(d) {
_duration = (((d == null) || (d <= 0)) ? (_global.Infinity) : (d));
//return(duration);
}
function get duration() {
return(_duration);
}
function set FPS(fps) {
var _local2 = isPlaying;
stopEnterFrame();
_fps = fps;
if (_local2) {
startEnterFrame();
}
//return(FPS);
}
function get FPS() {
return(_fps);
}
function set position(p) {
setPosition(p);
//return(position);
}
function setPosition(p) {
prevPos = _pos;
obj[prop] = (_pos = p);
broadcastMessage("onMotionChanged", this, _pos);
updateAfterEvent();
}
function get position() {
return(getPosition());
}
function getPosition(t) {
if (t == undefined) {
t = _time;
}
return(func(t, begin, change, _duration));
}
function set finish(f) {
change = f - begin;
//return(finish);
}
function get finish() {
return(begin + change);
}
function continueTo(finish, duration) {
begin = position;
this.finish = (finish);
if (duration != undefined) {
this.duration = (duration);
}
start();
}
function yoyo() {
continueTo(begin, time);
}
function startEnterFrame() {
if (_fps == undefined) {
_global.MovieClip.addListener(this);
} else {
_intervalID = setInterval(this, "onEnterFrame", 1000 / _fps);
}
isPlaying = true;
}
function stopEnterFrame() {
if (_fps == undefined) {
_global.MovieClip.removeListener(this);
} else {
clearInterval(_intervalID);
}
isPlaying = false;
}
function start() {
rewind();
startEnterFrame();
broadcastMessage("onMotionStarted", this);
}
function stop() {
stopEnterFrame();
broadcastMessage("onMotionStopped", this);
}
function resume() {
fixTime();
startEnterFrame();
broadcastMessage("onMotionResumed", this);
}
function rewind(t) {
_time = ((t == undefined) ? 0 : (t));
fixTime();
update();
}
function fforward() {
time = (_duration);
fixTime();
}
function nextFrame() {
if (useSeconds) {
time = ((getTimer() - _startTime) / 1000);
} else {
time = (_time + 1);
}
}
function onEnterFrame() {
nextFrame();
}
function prevFrame() {
if (!useSeconds) {
time = (_time - 1);
}
}
function toString() {
return("[Tween]");
}
function fixTime() {
if (useSeconds) {
_startTime = getTimer() - (_time * 1000);
}
}
function update() {
position = (getPosition(_time));
}
static var version = "1.1.0.52";
static var __initBeacon = mx.transitions.OnEnterFrameBeacon.init();
static var __initBroadcaster = mx.transitions.BroadcasterMX.initialize(mx.transitions.Tween.prototype, true);
function func(t, b, c, d) {
return(((c * t) / d) + b);
}
}
Symbol 482 MovieClip [__Packages.com.midasplayer.bigbang.MissileView] Frame 0
class com.midasplayer.bigbang.MissileView extends com.midasplayer.gameCore.WorldObjectView
{
var getClip;
function MissileView () {
super();
}
function getObject() {
return(com.midasplayer.bigbang.Missile(super.getObject()));
}
function updateView() {
var _local2 = getClip();
var _local4 = getObject();
_local2.gotoAndStop(FRAME_FLY);
var _local3 = _local4.getAtomColor() + 1;
if (_local4.isPowerMissile()) {
_local3 = 3;
}
_local2.missile.gotoAndStop(_local3);
}
function onCollide() {
var _local2 = getClip();
var _local3 = getObject();
_local2.gotoAndStop(FRAME_COLLIDE);
}
static var FRAME_FLY = 1;
static var FRAME_COLLIDE = 2;
static var NUM_FRAMES = 2;
}
Symbol 483 MovieClip [__Packages.com.midasplayer.bigbang.GameView] Frame 0
class com.midasplayer.bigbang.GameView extends com.midasplayer.gameCore.AbstractGameView
{
var m_gameBoard, m_starMapPath, m_pathEffect, m_timeAlertPlayed, m_levelStartPlayTick, m_scoreSign, m_zapperClip, m_zapWorldX, m_zapWorldY, m_zappDiffX, m_zappDiffY;
function GameView () {
super();
}
function setViewFrame(viewFrame) {
m_viewFrame = viewFrame;
}
function getGameLogic() {
return(com.midasplayer.bigbang.GameLogic(super.getGameLogic()));
}
function setGameBoard(gameBoard) {
m_gameBoard = gameBoard;
}
function getGameBoard() {
return(m_gameBoard);
}
function onInitInfoScreen(infoScreen, currentState) {
var _local4 = getGameLogic();
var _local11 = getGameLogic().getGameBoard();
_root.gameBoardWrapper._visible = false;
moveScoreSign(1);
com.midasplayer.fx.SoundManager.stop(SOUND_LOOP);
com.midasplayer.fx.SoundManager.stop(SOUND_WARNING_CLICK);
com.midasplayer.fx.SoundManager.stop(SOUND_WARNING_TIME);
if (currentState == com.midasplayer.gameCore.GameState.INSTRUCTIONS) {
infoScreen.init(_root.infoScreenHolder, "intro-instructions", INSTRUCTION_INFO_SCREEN_TIME);
infoScreen.setPos(0, 0);
infoScreen.setSound(SOUND_INTRO, SOUND_INTRO_VOLUME);
var _local12 = infoScreen.getClip();
_local12.onRelease = function () {
_root.gameLogic.getInfoScreen().setTimeRemaining(0);
};
_local12.logo.gotoAndStop(m_viewFrame);
} else if ((currentState == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) || ((currentState == com.midasplayer.gameCore.GameState.GAME_SUMMARY) && (getGameLogic().getLevel() >= GAME_COMPLETE_LEVELS))) {
var _local13 = _local4.getScore();
var _local9 = _local4.getLevel();
var _local7 = _local9 >= getGameLogic().getNumberLevels();
_local4 = getGameLogic();
_local11 = _local4.getGameBoard();
_local4.getWorld().clearWorldObjects();
var _local8 = "level_summary";
infoScreen.init(_root.infoScreenHolder, _local8, (_local7 ? (GAME_SUMMARY_INFO_SCREEN_TIME) : (SUMMARY_INFO_SCREEN_TIME)));
var _local12 = infoScreen.getClip();
infoScreen.setPos(0, 0);
var _local5 = String(_local4.getLevel());
if ((_local4.getLevel() < GAME_COMPLETE_LEVELS) && (_local11.isBigBang())) {
_local5 = _local5 + "b";
}
m_starMapPath.insert(_local5);
trace("pathString: " + _local5);
var _local10;
if (_local7) {
_local10 = com.midasplayer.util.I18n.getString("game_cleared");
infoScreen.setSound(SOUND_GAME_SUMMARY, SOUND_GAME_SUMMARY_VOLUME);
} else {
_local10 = com.midasplayer.util.I18n.getString("level_complete");
}
_local12.onRelease = function () {
if (_root.gameLogic.getInfoScreen().getTimePassed() > com.midasplayer.bigbang.GameView.INFO_SCREEN_DELAY) {
_root.gameLogic.getInfoScreen().setTimeRemaining(0);
}
};
} else if (currentState == com.midasplayer.gameCore.GameState.GAME_SUMMARY) {
getGameLogic().getWorld().clearWorldObjects();
var _local8 = "game_over";
infoScreen.init(_root.infoScreenHolder, _local8, GAME_OVER_INFO_SCREEN_TIME);
var _local12 = infoScreen.getClip();
infoScreen.setPos(150, 0);
infoScreen.setDeleteOnExit(true);
_local12.onRelease = function () {
if (_root.gameLogic.getInfoScreen().getTimePassed() > com.midasplayer.bigbang.GameView.INFO_SCREEN_DELAY) {
_root.gameLogic.getInfoScreen().setTimeRemaining(0);
}
};
}
}
function onUpdateInfoScreen(infoScreen, currentState) {
if (currentState == com.midasplayer.gameCore.GameState.INSTRUCTIONS) {
var _local13 = infoScreen.getClip();
var _local17 = Math.max(0, infoScreen.getTimeRemaining());
var _local23 = com.midasplayer.util.I18n.getString("game_starts");
var _local21 = ((_local17 == 1) ? (com.midasplayer.util.I18n.getString("second")) : (com.midasplayer.util.I18n.getString("seconds")));
infoScreen.setText("timer", (((((_local23 + " ") + com.midasplayer.util.I18n.getString("in")) + " ") + Math.round(_local17)) + " ") + _local21);
infoScreen.setText("instructions", com.midasplayer.util.I18n.getString("instructions_" + _local13._currentframe));
_local13.screen.instructions.header.text = com.midasplayer.util.I18n.getString("instructions_header");
_local13.screen.instructions.text_1.text = com.midasplayer.util.I18n.getString("instructions_text_1");
_local13.screen.instructions.text_2_1.text = com.midasplayer.util.I18n.getString("instructions_text_2_1");
_local13.screen.instructions.text_2_2.text = com.midasplayer.util.I18n.getString("instructions_text_2_2");
_local13.screen.instructions.text_2_3.text = com.midasplayer.util.I18n.getString("instructions_text_2_3");
_local13.screen.instructions.text_3.text = com.midasplayer.util.I18n.getString("instructions_text_3");
if (m_viewFrame == 1) {
_local13.galileo._visible = false;
}
} else if ((currentState == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) || ((currentState == com.midasplayer.gameCore.GameState.GAME_SUMMARY) && (getGameLogic().getLevel() >= 5))) {
var _local13 = infoScreen.getClip();
var _local17 = infoScreen.getTimeRemaining();
var _local23 = ((currentState == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) ? (com.midasplayer.util.I18n.getString("game_starts")) : (com.midasplayer.util.I18n.getString("game_ends")));
var _local21 = ((_local17 == 1) ? (com.midasplayer.util.I18n.getString("second")) : (com.midasplayer.util.I18n.getString("seconds")));
_local13.summary.timer.text = (((((_local23 + " ") + com.midasplayer.util.I18n.getString("in")) + " ") + Math.round(_local17)) + " ") + _local21;
var _local25 = getGameLogic().getGameBoard();
var _local20 = getGameLogic().getScore();
var _local18 = _local25.getBonusScore();
var _local22 = _local25.getBonusClick(getGameLogic().getLevel() - 1);
_local13.summary.header.text = com.midasplayer.util.I18n.getString("level_cleared_header");
_local13.summary.score_header.text = com.midasplayer.util.I18n.getString("score_header");
_local13.summary.score.text = _local20 - _local18;
_local13.summary.bonus_header.text = com.midasplayer.util.I18n.getString("bonus_header");
_local13.summary.bonus.text = _local18;
_local13.summary.total_score_header.text = com.midasplayer.util.I18n.getString("total_score_header");
_local13.summary.total_score.text = _local20;
_local13.summary.bonus_click_header.text = com.midasplayer.util.I18n.getString("bonus_click_header");
_local13.summary.bonus_click.text = _local22;
if (!getGameLogic().getGameBoard().isBigBang()) {
_local13.ship.warp._visible = false;
}
var _local4 = _local13.summary.map;
var _local7 = _local13.summary;
var _local3 = 0;
while (_local3 < 6) {
var _local11 = _local3;
var _local5 = _local3 + 1;
_local4[(_local11 + "-") + _local5]._visible = false;
_local4[(_local11 + "b-") + _local5]._visible = false;
_local4[((_local11 + "-") + _local5) + "b"]._visible = false;
_local4[((_local11 + "b-") + _local5) + "b"]._visible = false;
_local7[_local3]._visible = false;
_local7[_local3 + "b"]._visible = false;
_local3++;
}
_local3 = 1;
while (_local3 < m_starMapPath.size()) {
var _local11 = String(m_starMapPath.get(_local3 - 1));
var _local5 = String(m_starMapPath.get(_local3));
var _local6 = _local4[(_local11 + "-") + _local5];
_local6._visible = true;
if (_local3 == (m_starMapPath.size() - 1)) {
_local7[_local5]._visible = true;
}
if ((_local3 == (m_starMapPath.size() - 1)) && (m_pathEffect == undefined)) {
var _local12 = mx.transitions.easing.Regular.easeInOut;
var _local9 = 0;
var _local10 = 100;
var _local8 = 1;
m_pathEffect = new mx.transitions.Tween(_local6, "_alpha", _local12, _local9, _local10, _local8, true);
m_pathEffect.onMotionFinished = function () {
_root.gameView.m_pathEffect = undefined;
};
}
_local3++;
}
}
if (currentState == com.midasplayer.gameCore.GameState.GAME_SUMMARY) {
var _local13 = infoScreen.getClip();
var _local24 = false;
if (getGameLogic().getLevel() >= getGameLogic().getNumberLevels()) {
_local24 = true;
}
var _local17 = infoScreen.getTimeRemaining();
var _local23 = ((currentState == com.midasplayer.gameCore.GameState.LEVEL_SUMMARY) ? (com.midasplayer.util.I18n.getString("game_starts")) : (com.midasplayer.util.I18n.getString("game_ends")));
var _local21 = ((_local17 == 1) ? (com.midasplayer.util.I18n.getString("second")) : (com.midasplayer.util.I18n.getString("seconds")));
_local13.summary.timer.text = (((((_local23 + " ") + com.midasplayer.util.I18n.getString("in")) + " ") + Math.round(_local17)) + " ") + _local21;
var _local25 = getGameLogic().getGameBoard();
var _local20 = getGameLogic().getScore();
var _local18 = _local25.getBonusScore();
var _local26 = getGameLogic().getLevel() >= GAME_COMPLETE_LEVELS;
var _local19;
var _local16 = 1;
if (_local26) {
if (getGameLogic().getGameBoard().getTotalBangCount() > 0) {
_local16 = 3;
} else {
_local16 = 2;
}
_local19 = com.midasplayer.util.I18n.getString("game_cleared");
} else {
_local19 = com.midasplayer.util.I18n.getString("game_over");
}
_local24 = getGameLogic().getGameMode() == com.midasplayer.gameCore.AbstractGameLogic.GAME_MODE_SHORT;
_local13.summary.anim.gotoAndStop(_local16);
_local13.summary.header.text = _local19;
_local13.summary.score_header.text = com.midasplayer.util.I18n.getString("score_header");
_local13.summary.score.text = _local20 - _local18;
_local13.summary.bonus_header.text = com.midasplayer.util.I18n.getString("bonus_header");
_local13.summary.bonus.text = _local18;
_local13.summary.total_score_header.text = com.midasplayer.util.I18n.getString("total_score_header");
_local13.summary.total_score.text = _local20;
_local13.summary.register.text = com.midasplayer.util.I18n.getString("register");
_local13.summary.register._visible = _local24;
}
}
function onLevelSetup() {
com.midasplayer.fx.SoundManager.stop(SOUND_SUMMARY);
com.midasplayer.fx.SoundManager.play(SOUND_LOOP, SOUND_LOOP_VOLUME, true);
moveScoreSign(-1);
_root.gameBoardWrapper._visible = true;
_root.gameBoardWrapper.bolt._visible = false;
m_timeAlertPlayed = false;
m_levelStartPlayTick = getGameLogic().getTickCount();
}
function moveScoreSign(dir) {
var _local3 = SCORE_SIGN_X;
var _local4 = SCORE_SIGN_X + SCORE_SIGN_MOVE_OFFSET;
var _local5 = mx.transitions.easing.Regular.easeOut;
if (dir == -1) {
_local3 = SCORE_SIGN_X + SCORE_SIGN_MOVE_OFFSET;
_local4 = SCORE_SIGN_X;
_local5 = mx.transitions.easing.Regular.easeIn;
var _local8 = new mx.transitions.Tween(_root.gameBoardWrapper, "_xscale", mx.transitions.easing.Strong.easeIn, 0, 100, GAME_BOARD_SCALE_DURATION, true);
var _local7 = new mx.transitions.Tween(_root.gameBoardWrapper, "_yscale", mx.transitions.easing.Strong.easeIn, 0, 100, GAME_BOARD_SCALE_DURATION, true);
}
var _local6 = new mx.transitions.Tween(m_scoreSign, "_x", _local5, _local3, _local4, SCORE_SIGN_MOVE_DURATION, true);
}
function onInit() {
_root.gameBoardWrapper._visible = false;
m_scoreSign = _root.score_sign;
m_scoreSign._visible = false;
m_scoreSign._x = SCORE_SIGN_X;
m_zapperClip = m_scoreSign.zapper;
m_zapWorldX = m_zapperClip._x + m_zapperClip._parent._x;
m_zapWorldY = m_zapperClip._y + m_zapperClip._parent._y;
if (getGameLogic().isDev()) {
com.midasplayer.fx.SoundManager.enableSounds(false);
}
m_scoreSign.time_header.text = com.midasplayer.util.I18n.getString("time");
m_scoreSign.score_header.text = com.midasplayer.util.I18n.getString("score");
m_scoreSign.level_header.text = com.midasplayer.util.I18n.getString("level");
m_starMapPath = new com.midasplayer.util.ArrayList();
m_starMapPath.insert("0");
m_pathEffect = undefined;
_root.sound_toggle.onRelease = function () {
if (com.midasplayer.fx.SoundManager.isSoundEnabled()) {
trace("Sound: off");
com.midasplayer.fx.SoundManager.enableSounds(false);
_root.sound_toggle_text.text = com.midasplayer.util.I18n.getString("sound_off");
_root.gameView.onButtonClick();
} else {
trace("Sound: on");
com.midasplayer.fx.SoundManager.enableSounds(true);
_root.sound_toggle_text.text = com.midasplayer.util.I18n.getString("sound_on");
_root.gameView.onButtonClick();
}
};
_root.sound_toggle_text.text = com.midasplayer.util.I18n.getString("sound_on");
_root.exit_game_text.text = com.midasplayer.util.I18n.getString("exit_game");
_root.exit_game.onRelease = function () {
_root.gameView.onButtonClick();
_root.gameLogic.exitButtonPush();
trace("exit game pressed");
};
_root._visible = true;
}
function resetWarningClicks() {
m_warningClicksCount = 0;
}
function onTick() {
if (m_levelStartPlayTick == getGameLogic().getTickCount()) {
com.midasplayer.fx.SoundManager.play(SOUND_LEVEL_START, SOUND_LEVEL_START_VOLUME);
}
var _local3 = getGameBoard();
var _local2 = getGameLogic().getTickCount();
if (((_local3.getClicksLeft() <= WARNING_CLICKS) && (m_warningClicksCount < WARNING_CLICKS_LIMIT)) && (m_warningClicksTick == -1)) {
m_warningClicksTick = _local2 + WARNING_CLICKS_DELAY;
}
if (_local2 == m_warningClicksTick) {
if (!com.midasplayer.fx.SoundManager.isPlaying(SOUND_WARNING_CLICK)) {
com.midasplayer.fx.SoundManager.play(SOUND_WARNING_CLICK, SOUND_WARNING_CLICK_VOLUME, false);
m_warningClicksCount++;
m_warningClicksTick = -1;
}
}
}
function onRender() {
_root.gameBoardWrapper._alpha = 100;
m_scoreSign._visible = true;
updateScoreSign();
var _local5 = _root._xmouse;
var _local4 = _root._ymouse;
m_zappDiffX = Math.min(_local5 - m_zapWorldX, -0.01);
m_zappDiffY = _local4 - m_zapWorldY;
var _local3 = 0;
_local3 = (Math.atan(m_zappDiffY / m_zappDiffX) / (Math.PI*2)) * 360;
_local3 = _local3 + 180;
m_zapperClip._rotation = _local3;
}
function updateScoreSign() {
var _local2 = getGameLogic();
var _local8 = _local2.getGameBoard();
var _local5 = _local2.getState();
var _local4 = _local2.getTimeLeft();
var _local3 = false;
var _local6 = ((_local4 % 500) < 150) && (_local5 == com.midasplayer.gameCore.GameState.LEVEL_RUNNING);
var _local7 = _local8.getClicksLeft();
_local3 = (_local7 <= WARNING_CLICKS) && (_local6);
setNumericField(_local7, m_scoreSign, "clicks_", _local3);
m_scoreSign.score.text = _local2.getScore();
if ((_local5 == com.midasplayer.gameCore.GameState.LEVEL_RUNNING) || (_local5 == com.midasplayer.gameCore.GameState.LEVEL_START_PENDING)) {
_local3 = (_local4 <= WARNING_TIME) && (_local6);
m_scoreSign.time.text = Math.round(_local4 / 1000);
m_scoreSign.time._visible = !_local3;
m_scoreSign.level.text = _local2.getLevel() + 1;
if (_local3 && (!m_timeAlertPlayed)) {
trace("playing time warning");
com.midasplayer.fx.SoundManager.play(SOUND_WARNING_TIME, SOUND_WARNING_TIME_VOLUME, true);
m_timeAlertPlayed = true;
}
}
}
function makeZapEffect() {
var _local2 = Math.sqrt(Math.pow(m_zappDiffX, 2) + Math.pow(m_zappDiffY, 2)) - ZAP_LINE_OFFSET;
m_zapperClip.gotoAndPlay(2);
m_zapperClip.blast_line._width = _local2;
com.midasplayer.fx.SoundManager.play(SOUND_LASER_SHOT, SOUND_LASER_SHOT_VOLUME);
}
function makeZapClick() {
com.midasplayer.fx.SoundManager.play(SOUND_LASER_CLICK, SOUND_LASER_CLICK_VOLUME);
}
function makeZapLastClick() {
trace("make last click effekt!");
com.midasplayer.fx.SoundManager.play(SOUND_LASER_LAST_CLICK, SOUND_LASER_LAST_CLICK_VOLUME);
}
function makeScorePop(score, card, generation) {
var _local3 = "pop_small_wrapper";
if (generation >= 7) {
_local3 = "pop_big_wrapper";
} else if (generation >= 4) {
_local3 = "pop_medium_wrapper";
}
var _local5 = card.getX();
var _local4 = card.getY();
var _local7 = getGameLogic().getWorld().getLayer(com.midasplayer.bigbang.GameLogic.LAYER_SCOREPOP);
var _local2 = _local7.attachMovie(_local3, (("scorepop_" + _local5) + "_") + _local4, _local7.getNextHighestDepth());
_local2._x = _local5;
_local2._y = _local4;
setNumericField(score, _local2.score, "score_");
_local2.score.score_text.text = score;
if (card.getAttribute() == com.midasplayer.bigbang.Card.ATTRIBUTE_POWER) {
com.midasplayer.fx.SoundManager.play(SOUND_ATOM_EXPLODE_POWER, SOUND_ATOM_EXPLODE_POWER_VOLUME);
} else if (card.getAtomColor() == com.midasplayer.bigbang.Card.COLOR_PINK) {
com.midasplayer.fx.SoundManager.play(SOUND_ATOM_EXPLODE_PINK, SOUND_ATOM_EXPLODE_PINK_VOLUME);
} else {
com.midasplayer.fx.SoundManager.play(SOUND_ATOM_EXPLODE_GREEN, SOUND_ATOM_EXPLODE_GREEN_VOLUME);
}
}
function setNumericField(number, parent, prefix, hidden) {
if (hidden == undefined) {
hidden = false;
}
var _local1 = 0;
while (_local1 < 7) {
if (number != undefined) {
var _local2 = number;
if (_local1 > 0) {
_local2 = Math.floor(_local2 / Math.pow(10, _local1));
}
_local2 = _local2 % 10;
_local2 = _local2 + 1;
parent[prefix + _local1].gotoAndStop(_local2);
}
var _local3 = true;
if ((number == undefined) && (parent[prefix + _local1]._currentframe == 1)) {
_local3 = false;
} else if (hidden || (_local1 > (String(number).length - 1))) {
_local3 = false;
}
parent[(prefix + "dot_") + _local1].gotoAndStop((_local3 ? 1 : 2));
parent[prefix + _local1]._visible = _local3;
_local1++;
}
}
function makeEffect(identifier, x, y) {
var _local3 = getGameLogic().getWorld().getLayer(com.midasplayer.bigbang.GameLogic.LAYER_OVERLAY_EFFECT);
var _local2 = _local3.attachMovie(identifier, "effect_" + identifier, _local3.getNextHighestDepth());
_local2._x = x;
_local2._y = y;
}
static var SOUND_INTRO = "sound_intro";
static var SOUND_INTRO_VOLUME = 60;
static var SOUND_LOOP = "sound_loop";
static var SOUND_LOOP_VOLUME = 30;
static var SOUND_LASER_SHOT = "sound_laser_shot";
static var SOUND_LASER_SHOT_VOLUME = 50;
static var SOUND_LASER_CLICK = "sound_laser_click";
static var SOUND_LASER_CLICK_VOLUME = 100;
static var SOUND_LASER_LAST_CLICK = "sound_laser_last_click";
static var SOUND_LASER_LAST_CLICK_VOLUME = 100;
static var SOUND_ATOM_GROW = "sound_atom_grow";
static var SOUND_ATOM_GROW_VOLUME = 50;
static var SOUND_ATOM_STOP_GROW = "sound_atom_stop_grow";
static var SOUND_ATOM_STOP_GROW_VOLUME = 70;
static var SOUND_ATOM_EXPLODE_PINK = "sound_atom_explode_pink";
static var SOUND_ATOM_EXPLODE_PINK_VOLUME = 30;
static var SOUND_ATOM_EXPLODE_GREEN = "sound_atom_explode_green";
static var SOUND_ATOM_EXPLODE_GREEN_VOLUME = 40;
static var SOUND_ATOM_EXPLODE_POWER = "sound_atom_explode_power";
static var SOUND_ATOM_EXPLODE_POWER_VOLUME = 30;
static var SOUND_SHOT_VANISH = "sound_shot_vanish";
static var SOUND_SHOT_VANISH_VOLUME = 50;
static var SOUND_WARNING_CLICK = "sound_warning_click";
static var SOUND_WARNING_CLICK_VOLUME = 50;
static var SOUND_WARNING_TIME = "sound_warning_time";
static var SOUND_WARNING_TIME_VOLUME = 50;
static var SOUND_COUNTDOWN = "sound_countdown";
static var SOUND_COUNTDOWN_VOLUME = 50;
static var SOUND_SHIP_TAKEOFF = "sound_ship_takeoff";
static var SOUND_SHIP_TAKEOFF_VOLUME = 80;
static var SOUND_SHIP_TAKEOFF_BIGBANG = "sound_ship_takeoff";
static var SOUND_SHIP_TAKEOFF_BIGBANG_VOLUME = 80;
static var SOUND_BIGBANG = "sound_bigbang";
static var SOUND_BIGBANG_VOLUME = 50;
static var SOUND_LEVEL_START = "sound_level_start";
static var SOUND_LEVEL_START_VOLUME = 50;
static var SOUND_GAME_SUMMARY = "sound_game_summary";
static var SOUND_GAME_SUMMARY_VOLUME = 50;
static var SOUND_GAME_SUMMARY_EFFECT = "sound_game_summary_effect";
static var SOUND_GAME_SUMMARY_EFFECT_VOLUME = 50;
static var SOUND_SUMMARY = "sound_summary";
static var SOUND_SUMMARY_VOLUME = 50;
static var SOUND_GAME_OVER = "sound_game_over";
static var SOUND_GAME_OVER_VOLUME = 50;
static var SCORE_SIGN_X = 500;
static var SCORE_SIGN_MOVE_OFFSET = 280;
static var SCORE_SIGN_MOVE_DURATION = 2;
static var GAME_BOARD_SCALE_DURATION = 2;
static var INSTRUCTION_INFO_SCREEN_TIME = 27;
static var INFO_SCREEN_DELAY = 4;
static var GAME_OVER_INFO_SCREEN_TIME = 25;
static var GAME_SUMMARY_INFO_SCREEN_TIME = 25;
static var SUMMARY_INFO_SCREEN_TIME = 15;
var GAME_COMPLETE_LEVELS = 5;
static var WARNING_TIME = 10000;
static var WARNING_CLICKS = 3;
static var WARNING_CLICKS_LIMIT = 3;
static var WARNING_CLICKS_DELAY = com.midasplayer.bigbang.GameLogic.TICKS_PER_SECOND * 1;
var m_warningClicksCount = 0;
var m_warningClicksTick = -1;
var m_graphicFrame = 1;
var m_viewFrame = 1;
var ZAP_LINE_OFFSET = 60;
}
Symbol 484 MovieClip [__Packages.mx.transitions.easing.Regular] Frame 0
class mx.transitions.easing.Regular
{
function Regular () {
}
static function easeIn(t, b, c, d) {
t = t / d;
return(((c * t) * t) + b);
}
static function easeOut(t, b, c, d) {
t = t / d;
return((((-c) * t) * (t - 2)) + b);
}
static function easeInOut(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return((((c / 2) * t) * t) + b);
}
t--;
return((((-c) / 2) * ((t * (t - 2)) - 1)) + b);
}
static var version = "1.1.0.52";
}
Symbol 485 MovieClip [__Packages.mx.transitions.easing.Strong] Frame 0
class mx.transitions.easing.Strong
{
function Strong () {
}
static function easeIn(t, b, c, d) {
t = t / d;
return((((((c * t) * t) * t) * t) * t) + b);
}
static function easeOut(t, b, c, d) {
t = (t / d) - 1;
return((c * (((((t * t) * t) * t) * t) + 1)) + b);
}
static function easeInOut(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return(((((((c / 2) * t) * t) * t) * t) * t) + b);
}
t = t - 2;
return(((c / 2) * (((((t * t) * t) * t) * t) + 2)) + b);
}
static var version = "1.1.0.52";
}
Symbol 486 MovieClip [__Packages.mx.transitions.easing.None] Frame 0
class mx.transitions.easing.None
{
function None () {
}
static function easeNone(t, b, c, d) {
return(((c * t) / d) + b);
}
static function easeIn(t, b, c, d) {
return(((c * t) / d) + b);
}
static function easeOut(t, b, c, d) {
return(((c * t) / d) + b);
}
static function easeInOut(t, b, c, d) {
return(((c * t) / d) + b);
}
static var version = "1.1.0.52";
}
Symbol 487 MovieClip [__Packages.com.midasplayer.bigbang.DummyProxy] Frame 0
class com.midasplayer.bigbang.DummyProxy
{
var randomSeed_, m_numLevels, m_levelStrings, m_parameterClip;
function DummyProxy () {
}
function setRandomSeed(seed) {
randomSeed_ = seed;
}
function getGameData() {
m_numLevels = NUM_LEVELS;
generateLevels();
var _local2 = new String();
_local2 = _local2 + " <gamedata";
var _local4 = com.midasplayer.gameCore.AbstractGameLogic.GAME_MODE_NORMAL;
_local2 = _local2 + " viewFrame=\"1\" \n";
_local2 = _local2 + ((" gameMode=\"" + _local4) + "\" \n");
_local2 = _local2 + ((" numberLevels=\"" + m_numLevels) + "\" \n");
_local2 = _local2 + ((" timeLimit=\"[" + TIME_LIMIT) + "]\" \n");
_local2 = _local2 + ((" randomSeed=\"" + randomSeed_) + "\" \n");
_local2 = _local2 + " levelLayout=\"[";
var _local3 = 0;
while (_local3 < m_numLevels) {
if (_local3 > 0) {
_local2 = _local2 + ",";
}
_local2 = _local2 + m_levelStrings[_local3];
_local3++;
}
_local2 = _local2 + "]\" \n";
_local2 = _local2 + ((" numberClicks=\"" + NUMBER_CLICKS) + "\" \n");
_local2 = _local2 + " bonusClicks=\"[";
_local3 = 0;
while (_local3 < m_numLevels) {
if (_local3 > 0) {
_local2 = _local2 + ",";
}
_local2 = _local2 + BONUS_CLICKS[_local3];
_local3++;
}
_local2 = _local2 + "]\" \n";
_local2 = _local2 + ">\n";
_local2 = _local2 + " </gamedata>";
_local2 = _local2 + newline;
_local2 = _local2 + "</game>";
_local2 = _local2 + newline;
trace("GAME DATA: " + _local2);
return(_local2.toString());
}
function generateLevels() {
var _local11 = new com.midasplayer.util.Random(randomSeed_);
m_levelStrings = new Array(m_numLevels);
var _local5 = 0;
while (_local5 < m_numLevels) {
var _local9 = new com.midasplayer.util.ArrayList();
var _local22 = new String();
var _local24 = 6;
var _local23 = 6;
var _local19 = _local24 * _local23;
var _local13 = 0;
var _local18 = new Array();
var _local8 = 0;
while (_local8 < 4) {
var _local16 = SIZE_MIN[_local8][_local5];
var _local20 = SIZE_MAX[_local8][_local5];
_local18[_local8] = _local11.nextInt((_local20 - _local16) + 1) + _local16;
_local8++;
}
var _local7 = 0;
while (_local7 < 4) {
var _local17 = 0;
while (_local17 < _local18[_local7]) {
var _local12 = (_local7 + 1) + "";
var _local4 = "0";
var _local3 = _local11.nextInt(100);
trace("attributeRoll: " + _local3);
var _local2 = 0;
while (_local2 < NUM_ATTRIBUTES) {
var _local6 = ATTRIBUTE_CHANCE[_local2][_local5];
if (_local3 < _local6) {
_local4 = (_local2 + 1) + "";
break;
}
_local3 = _local3 - _local6;
_local2++;
}
trace("attribute: " + _local4);
var _local10 = "0";
var _local14 = _local11.nextInt(100);
if (_local14 < COLOR_CHANCE[_local5]) {
_local10 = "1";
}
_local9.insert((_local12 + _local10) + _local4);
_local13++;
_local17++;
}
_local7++;
}
while (_local13 < _local19) {
_local9.insert("000");
_local13++;
}
var _local17 = 0;
while (_local17 < _local19) {
var _local15 = _local11.nextInt(_local9.size());
var _local21 = String(_local9.get(_local15));
_local22 = _local22 + _local21;
_local9.removeByIndex(_local15);
_local17++;
}
m_levelStrings[_local5] = _local22.toString();
_local5++;
}
}
function setParameterClip(parameterClip) {
m_parameterClip = parameterClip;
}
function showParameters() {
m_parameterClip.randomSeed_.text = randomSeed_;
m_parameterClip.number_clicks.text = NUMBER_CLICKS;
m_parameterClip.num_levels.text = NUM_LEVELS;
m_parameterClip.time_limit.text = Math.round(TIME_LIMIT / 1000);
var _local2 = 0;
while (_local2 < 10) {
m_parameterClip["bonus_clicks_" + _local2].text = BONUS_CLICKS[_local2];
_local2++;
}
_local2 = 0;
while (_local2 < 10) {
m_parameterClip["color_chance_" + _local2].text = COLOR_CHANCE[_local2];
_local2++;
}
var _local4 = 0;
while (_local4 < NUM_ATTRIBUTES) {
_local2 = 0;
while (_local2 < 10) {
m_parameterClip[(("attribute_chance_" + _local2) + "_") + _local4].text = ATTRIBUTE_CHANCE[_local4][_local2];
_local2++;
}
_local4++;
}
var _local3 = 0;
while (_local3 < 4) {
_local2 = 0;
while (_local2 < 10) {
m_parameterClip[(("size_min_" + _local2) + "_") + _local3].text = SIZE_MIN[_local3][_local2];
_local2++;
}
_local3++;
}
_local3 = 0;
while (_local3 < 4) {
_local2 = 0;
while (_local2 < 10) {
m_parameterClip[(("size_max_" + _local2) + "_") + _local3].text = SIZE_MAX[_local3][_local2];
_local2++;
}
_local3++;
}
}
function updateParameters() {
randomSeed_ = Number(m_parameterClip.randomSeed_.text);
NUMBER_CLICKS = Number(m_parameterClip.number_clicks.text);
NUM_LEVELS = Number(m_parameterClip.num_levels.text);
TIME_LIMIT = Number(m_parameterClip.time_limit.text) * 1000;
var _local2 = 0;
while (_local2 < NUM_LEVELS) {
BONUS_CLICKS[_local2] = Number(m_parameterClip["bonus_clicks_" + _local2].text);
_local2++;
}
_local2 = 0;
while (_local2 < NUM_LEVELS) {
COLOR_CHANCE[_local2] = Number(m_parameterClip["color_chance_" + _local2].text);
_local2++;
}
var _local4 = 0;
while (_local4 < NUM_ATTRIBUTES) {
_local2 = 0;
while (_local2 < 10) {
ATTRIBUTE_CHANCE[_local4][_local2] = Number(m_parameterClip[(("attribute_chance_" + _local2) + "_") + _local4].text);
_local2++;
}
_local4++;
}
var _local3 = 0;
while (_local3 < 4) {
_local2 = 0;
while (_local2 < 10) {
SIZE_MIN[_local3][_local2] = Number(m_parameterClip[(("size_min_" + _local2) + "_") + _local3].text);
_local2++;
}
_local3++;
}
_local3 = 0;
while (_local3 < 4) {
_local2 = 0;
while (_local2 < 10) {
SIZE_MAX[_local3][_local2] = Number(m_parameterClip[(("size_max_" + _local2) + "_") + _local3].text);
_local2++;
}
_local3++;
}
}
var NUMBER_CLICKS = 10;
var BONUS_CLICKS = new Array(1, 2, 3, 4, 0);
var NUM_LEVELS = 5;
var NUM_LEVELS_OPENGAME = 5;
var TIME_LIMIT = 240000;
var ATTRIBUTE_CHANCE = new Array(new Array(4, 4, 4, 4, 4), new Array(4, 4, 4, 4, 4), new Array(2, 3, 4, 4, 4), new Array(2, 3, 3, 3, 3));
var NUM_ATTRIBUTES = 4;
var COLOR_CHANCE = new Array(0, 0, 0, 50, 50);
var SIZE_MIN = new Array(new Array(5, 5, 5, 5, 5), new Array(8, 8, 8, 8, 8), new Array(8, 8, 8, 8, 8), new Array(5, 5, 5, 6, 6));
var SIZE_MAX = new Array(new Array(6, 6, 6, 5, 5), new Array(10, 10, 10, 10, 10), new Array(10, 10, 10, 10, 10), new Array(6, 6, 6, 7, 7));
}