Frame 1
mochi.MochiServices.connect("b95c96bfe0772d97");
function moveOn() {
this.gotoAndStop(3);
}
MochiAd.showPreGameAd({id:"b95c96bfe0772d97", res:"550x400", background:4828656, color:16776960, outline:16711680, no_bg:true, ad_finished:function () {
moveOn();
}});
Frame 2
_root.gotoAndStop(3);
Frame 3
function __com_mochibot__(swfid, mc, lv, trk) {
var x;
var g;
var s;
var fv;
var sb;
var u;
var res;
var mb;
var mbc;
mb = "__mochibot__";
mbc = "mochibot.com";
g = (_global ? (_global) : (_level0._root));
if (g[mb + swfid]) {
return(g[mb + swfid]);
}
s = System.security;
x = mc._root.getSWFVersion;
fv = (x ? (mc.getSWFVersion()) : ((_global ? 6 : 5)));
if (!s) {
s = {};
}
sb = s.sandboxType;
if (sb == "localWithFile") {
return(null);
}
x = s.allowDomain;
if (x) {
s.allowDomain(mbc);
}
x = s.allowInsecureDomain;
if (x) {
s.allowInsecureDomain(mbc);
}
u = (((((((((((("http://" + mbc) + "/my/core.swf?mv=7&fv=") + fv) + "&v=") + escape(getVersion())) + "&swfid=") + escape(swfid)) + "&l=") + lv) + "&f=") + mc) + (sb ? ("&sb=" + sb) : "")) + (trk ? "&t=1" : "");
lv = ((fv > 6) ? (mc.getNextHighestDepth()) : ((g[mb + "level"] ? (g[mb + "level"] + 1) : (lv))));
g[mb + "level"] = lv;
if (fv == 5) {
res = "_level" + lv;
if (!eval (res)) {
loadMovieNum (u, lv);
}
} else {
res = mc.createEmptyMovieClip(mb + swfid, lv);
res.loadMovie(u);
}
return(res);
}
__com_mochibot__("3ac45e09", this, 10301, true);
function beginGame() {
attachMovie("title", "titleScr", 0, {_x:275, _y:200});
attachMovie("mute", "mute", 1, {_x:520, _y:370});
myShadow = new flash.filters.DropShadowFilter(5, 45, 0, 1, 10, 10, 1, 2, false, false, false);
mute.filters = [myShadow];
attachMovie("mPointer", "Pointer", _root.getNextHighestDepth(), {_x:0, _y:0});
titleScr._alpha = 0;
bPlayMusic = true;
clicked = new Sound();
clicked.attachSound("click");
popper = new Sound();
popper.attachSound("pop");
adder = new Sound();
adder.attachSound("ching");
bang = new Sound();
bang.attachSound("bang");
sndTrans = new Sound();
sndTrans.attachSound("tranSnd");
Mouse.hide();
if (BGM == undefined) {
BGM = new Sound();
BGM.attachSound("bgm");
BGM.start();
BGM.onSoundComplete = function () {
if (_root.bPlayMusic) {
this.start();
}
};
}
BGM.setVolume(100);
if (gameLevel != undefined) {
removeMC(gameLevel);
}
}
function newGame(flag) {
playerScore = 0;
levelScore = 0;
playerLevel = flag;
levelTime = 0;
playerTotalTime = 0;
reds = 0;
blues = 0;
greens = 0;
cyans = 0;
magentas = 0;
yellows = 0;
bonusScore = 0;
retries = 5;
tested = 0;
rankCount = 0;
bLvl1 = true;
bLvl2 = false;
bLvl3 = false;
bLvl4 = false;
bLvl5 = false;
bLvl6 = false;
bLvl7 = false;
bLvl8 = false;
levelBalls = new Array();
levelStars = new Array();
targetBall = undefined;
nextTarget = undefined;
buildLevel(playerLevel);
clock = undefined;
flashPointer = undefined;
}
function buildLevel(num) {
attachMovie("level" + num, "gameLevel", 0, {_x:0, _y:0});
gameLevel.gotoAndStop(1);
switch (playerLevel) {
case 2 :
bLvl2 = true;
break;
case 3 :
bLvl3 = true;
break;
case 4 :
bLvl4 = true;
break;
case 5 :
bLvl5 = true;
break;
case 6 :
bLvl6 = true;
break;
case 7 :
bLvl7 = true;
break;
case 7 :
bLvl8 = true;
}
}
function getAction(ball) {
Mouse.hide();
if ((targetBall != undefined) && (targetBall != ball)) {
tempBall = targetBall;
targetBall = undefined;
return(tempBall);
}
targetBall = ball;
return(null);
}
function testColours(ballA, ballB) {
newBall = undefined;
switch (ballA) {
case "red" :
switch (ballB) {
case "blue" :
newBall = "magenta";
break;
case "green" :
newBall = "yellow";
break;
case "red" :
newBall = "red";
break;
case "black" :
newBall = "magenta";
break;
case "white" :
newBall = "yellow";
}
break;
case "blue" :
switch (ballB) {
case "blue" :
newBall = "blue";
break;
case "green" :
newBall = "cyan";
break;
case "red" :
newBall = "magenta";
break;
case "black" :
newBall = "cyan";
break;
case "white" :
newBall = "magenta";
}
break;
case "green" :
switch (ballB) {
case "blue" :
newBall = "cyan";
break;
case "green" :
newBall = "green";
break;
case "red" :
newBall = "yellow";
break;
case "black" :
newBall = "yellow";
break;
case "white" :
newBall = "cyan";
}
break;
case "yellow" :
switch (ballB) {
case "cyan" :
newBall = "green";
break;
case "magenta" :
newBall = "red";
break;
case "yellow" :
newBall = "yellow";
break;
case "black" :
newBall = "red";
break;
case "white" :
newBall = "green";
}
break;
case "cyan" :
switch (ballB) {
case "cyan" :
newBall = "cyan";
break;
case "magenta" :
newBall = "blue";
break;
case "yellow" :
newBall = "green";
break;
case "black" :
newBall = "green";
break;
case "white" :
newBall = "blue";
}
break;
case "magenta" :
switch (ballB) {
case "cyan" :
newBall = "blue";
break;
case "magenta" :
newBall = "magenta";
break;
case "yellow" :
newBall = "red";
break;
case "black" :
newBall = "blue";
break;
case "white" :
newBall = "red";
}
break;
case "white" :
switch (ballB) {
case "cyan" :
newBall = "blue";
break;
case "magenta" :
newBall = "red";
break;
case "yellow" :
newBall = "green";
break;
case "red" :
newBall = "yellow";
break;
case "blue" :
newBall = "magenta";
break;
case "green" :
newBall = "cyan";
break;
case "white" :
newBall = "white";
}
break;
case "black" :
switch (ballB) {
case "cyan" :
newBall = "green";
break;
case "magenta" :
newBall = "blue";
break;
case "yellow" :
newBall = "red";
break;
case "red" :
newBall = "magenta";
break;
case "blue" :
newBall = "cyan";
break;
case "green" :
newBall = "yellow";
break;
case "black" :
newBall = "black";
}
}
return(newBall);
}
function deleteBall(ball) {
levelScore = levelScore + ball.score;
for (i in levelBalls) {
if (levelBalls[i] == ball) {
levelBalls.splice(i, 1);
}
}
popper.start();
removeMC(ball);
checkLevelBalls();
}
function createBall(xpos, ypos, ballColour) {
newColourBall = attachMovie(ballColour + "Ball", ((ballColour + _root.getNextHighestDepth()) + "_") + Math.floor(xpos * ypos), _root.getNextHighestDepth(), {_x:xpos, _y:ypos});
newColourBall.ballColour = ballColour;
myShadow = new flash.filters.DropShadowFilter(5, 45, 0, 1, 10, 10, 1, 2, false, false, false);
newColourBall.filters = [myShadow];
Pointer.swapDepths(newColourBall);
levelBalls[levelBalls.length + 1] = newColourBall;
}
function checkLevelBalls() {
var _local1 = 0;
for (var _local2 in levelBalls) {
if (levelBalls[_local2].ballColour != undefined) {
_local1 = _local1 + 1;
}
}
if (_local1 <= 0) {
levelChange();
}
if (_local1 == 2) {
testOutcome();
}
if ((_local1 == 1) && (tested == 0)) {
checkTimer = setInterval(checkTime, 1000);
}
if ((_local1 == 1) && (tested == 1)) {
testOutcome();
}
}
function testOutcome() {
var _local1 = new Array();
for (var _local2 in levelBalls) {
if (levelBalls[_local2] != undefined) {
_local1[_local1.length] = levelBalls[_local2].ballColour;
}
}
var _local3 = testColours(_local1[0], _local1[1]);
if (_local3 == undefined) {
retryLevel();
}
}
function levelChange() {
clearInterval(checkTimer);
if (clock.elapsed_time != undefined) {
playerTotalTime = playerTotalTime + clock.elapsed_time;
levelTime = clock.count - clock.elapsed_time;
}
bonusScore = 10 * Math.floor(levelTime / 1000);
if (bonusScore < 0) {
bonusScore = 0;
}
levelScore = levelScore + bonusScore;
playerScore = playerScore + levelScore;
rankMulti = rankCount;
rankCount = 0;
tested = 0;
cleanArrays();
gameLevel.nextFrame();
}
function changeArea(flag) {
_root.removeMC(gameLevel);
clearInterval(checkTimer);
cleanArrays();
rankCount = 0;
_root.buildLevel(flag);
}
function removeMC(mc) {
var _local2 = _root.getInstanceAtDepth(0);
mc.swapDepths(0);
mc.removeMovieClip();
if (_local2 != undefined) {
_local2.swapDepths(0);
}
}
function createFX(actor) {
var _local2 = 1;
while (_local2 < 20) {
newParticle = attachMovie("particle", "part" + _root.getNextHighestDepth(), _root.getNextHighestDepth(), {_x:actor._x + ((Math.random() * 20) - 10), _y:actor._y + ((Math.random() * 20) - 10)});
newParticle.dirx = -4 + (Math.random() * 8);
newParticle.diry = (-Math.random()) * 15;
newParticle.Kullor = actor.ballColour;
_local2++;
}
}
function createTrail(actor) {
newTrail = attachMovie("trail", "part" + _root.getNextHighestDepth(), _root.getNextHighestDepth(), {_x:actor._x, _y:actor._y});
newTrail.Kullor = actor.ballColour;
}
function retryLevel() {
this.currentStage = gameLevel._currentframe;
clearInterval(checkTimer);
cleanArrays();
rankCount = 0;
if (retries > 0) {
tested = 0;
gameLevel.gotoAndStop(109);
} else {
tested = 0;
gameLevel.gotoAndStop(110);
}
}
function timeOut() {
this.currentStage = gameLevel._currentframe;
clearInterval(checkTimer);
cleanArrays();
if (retries > 0) {
tested = 0;
gameLevel.gotoAndStop(108);
} else {
tested = 0;
gameLevel.gotoAndStop(110);
}
}
function cleanArrays() {
for (var _local2 in levelBalls) {
removeMC(levelBalls[_local2]);
}
levelStars.removeAll();
levelBalls.removeAll();
for (var _local1 in levelBalls) {
}
}
this.stop();
beginGame();
onEnterFrame = function () {
var _local2 = new ContextMenu();
_local2.hideBuiltInItems();
var _local4 = new ContextMenuItem("Join Mochiads !", mySpin);
_local2.customItems.push(_local4);
mySpin = function () {
getURL ("https://www.mochiads.com/r/d12b91b9f5860432", blank);
};
var _local3 = new ContextMenuItem("visit banana box !", myLink);
_local2.customItems.push(_local3);
myLink = function () {
getURL ("http://www.banana-box.co.uk", blank);
};
_root.menu = _local2;
bMenuSet = true;
};
checkTime = function () {
if (_root.tested == 0) {
_root.tested = 1;
_root.checkLevelBalls();
}
_root.clearInterval(_root.checkTimer);
};
Symbol 8 MovieClip [mute] Frame 1
function onEnterFrame() {
if (_root.bPlayMusic) {
this.gotoAndStop(1);
} else {
this.gotoAndStop(2);
}
}
function onPress() {
if (_root.bPlayMusic) {
_root.bPlayMusic = false;
_root.BGM.stop();
} else {
_root.bPlayMusic = true;
_root.BGM.start();
}
}
Symbol 13 MovieClip [myLink] Frame 1
function onEnterFrame() {
if (!this.bSetup) {
this.gotoAndStop(1);
this.bSetup = true;
}
}
function onRelease() {
if (!this.bClicked) {
getURL ("http://www.banana-box.co.uk", _blank);
this.bClicked = true;
}
}
function onRollOver() {
this.gotoAndStop(2);
}
function onRollOut() {
this.gotoAndStop(1);
}
Symbol 311 MovieClip [__Packages.mochi.MochiServices] Frame 0
class mochi.MochiServices
{
static var _id, _container, _clip, _sendChannelName, _rcvChannelName, __get__comChannelName, onError, _listenChannel, _rcvChannel, _loader, _loaderListener, _sendChannel;
function MochiServices () {
}
static function get id() {
return(_id);
}
static function get clip() {
return(_container);
}
static function get childClip() {
return(_clip);
}
static function getVersion() {
return("1.31");
}
static function allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function get isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function set comChannelName(val) {
if (val != undefined) {
if (val.length > 3) {
_sendChannelName = val + "_fromgame";
_rcvChannelName = val;
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
if ((!_connected) && (_clip == undefined)) {
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.MochiServices.onError = onError;
} else if (mochi.MochiServices.onError == undefined) {
mochi.MochiServices.onError = function (errorCode) {
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.close();
_rcvChannel.close();
}
}
static function init(id, clip) {
_id = id;
if (clip != undefined) {
_container = clip;
} else {
_container = _root;
}
loadCommunicator(id, _container);
}
static function loadCommunicator(id, clip) {
var _local2 = "_mochiservices_com_" + id;
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
allowDomains(_gatewayURL);
_clip = clip.createEmptyMovieClip(_local2, 10336, false);
_loader = new MovieClipLoader();
if (_loaderListener.waitInterval != null) {
clearInterval(_loaderListener.waitInterval);
}
_loaderListener = {};
_loaderListener.onLoadError = function (target_mc, errorCode, httpStatus) {
mochi.MochiServices.disconnect();
mochi.MochiServices.onError.apply(null, [errorCode]);
};
_loaderListener.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_loaderListener.startTime = getTimer();
_loaderListener.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.MochiServices.disconnect();
mochi.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_loaderListener.waitInterval = setInterval(_loaderListener, "wait", 1000);
_loader.addListener(_loaderListener);
_loader.loadClip(_gatewayURL, _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
_rcvChannel = new LocalConnection();
_rcvChannel.allowDomain = function (d) {
return(true);
};
_rcvChannel.allowInsecureDomain = _rcvChannel.allowDomain;
_rcvChannel._nextcallbackID = 0;
_rcvChannel._callbacks = {};
listen();
return(_clip);
}
static function onStatus(infoObject) {
if (!(infoObject.level === "error")) {
} else {
_connected = false;
_listenChannel.connect(_listenChannelName);
}
}
static function listen() {
_listenChannel = new LocalConnection();
_listenChannel.handshake = function (args) {
mochi.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel.connect(_listenChannelName);
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_clip, version:getVersion()});
_rcvChannel.onStatus = function (infoObject) {
mochi.MochiServices.onStatus(infoObject);
};
_rcvChannel.onReceive = function (pkg) {
var _local5 = pkg.callbackID;
var _local4 = this._callbacks[_local5];
if (!_local4) {
return(undefined);
}
var _local2 = _local4.callbackMethod;
var _local3 = _local4.callbackObject;
if (_local3 && (typeof(_local2) == "string")) {
_local2 = _local3[_local2];
}
if (_local2 != undefined) {
_local2.apply(_local3, pkg.args);
}
delete this._callbacks[_local5];
};
_rcvChannel.onError = function () {
mochi.MochiServices.onError.apply(null, ["IOError"]);
};
_rcvChannel.connect(_rcvChannelName);
_connecting = false;
_connected = true;
_listenChannel.close();
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function flush(error) {
var _local1;
var _local2;
while (_sendChannel._queue.length > 0) {
_local1 = _sendChannel._queue.shift();
if (_local1.callbackID != null) {
_local2 = _rcvChannel._callbacks[_local1.callbackID];
}
delete _rcvChannel._callbacks[_local1.callbackID];
if (error) {
handleError(_local1.args, _local2.callbackObject, _local2.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_rcvChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
onError.apply(null, ["NotConnected"]);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_rcvChannel._nextcallbackID});
}
_rcvChannel._callbacks[_rcvChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_rcvChannel._nextcallbackID++;
}
static var _gatewayURL = "http://www.mochiads.com/static/lib/services/services.swf";
static var _listenChannelName = "__mochiservices";
static var _connecting = false;
static var _connected = false;
}
Symbol 312 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.1");
}
static function showPreGameAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
showInterLevelAd(options);
}
static function showPreloaderAd(options) {
showPreGameAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local26 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local26);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local25 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local25);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb_arg) {
var _local8 = parseInt(cb_arg);
var _local4 = this._callbacks[_local8];
if (!_local4) {
return(undefined);
}
delete this._callbacks[_local8];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}
}
Symbol 313 MovieClip [__Packages.mochi.MochiScores] Frame 0
class mochi.MochiScores
{
static var boardID, onClose, onError;
function MochiScores () {
}
static function setBoardID(boardID) {
mochi.MochiScores.boardID = boardID;
mochi.MochiServices.send("scores_setBoardID", {boardID:boardID});
}
static function showLeaderboard(options) {
if (options.clip != null) {
if ((options.clip != mochi.MochiServices.__get__clip()) || (mochi.MochiServices.__get__childClip()._target == undefined)) {
mochi.MochiServices.disconnect();
mochi.MochiServices.connect(mochi.MochiServices.__get__id(), options.clip);
}
delete options.clip;
}
if (options.name != null) {
if (typeof(options.name) == "object") {
if (options.name.text != undefined) {
options.name = options.name.text;
}
}
}
if (options.score != null) {
if (typeof(options.score) == "object") {
if (options.score.text != undefined) {
options.score = options.score.text;
}
}
}
if (options.onDisplay != null) {
options.onDisplay();
} else {
mochi.MochiServices.__get__clip().stop();
}
if (options.onClose != null) {
onClose = options.onClose;
} else {
onClose = function () {
mochi.MochiServices.__get__clip().play();
};
}
if (options.onError != null) {
onError = options.onError;
} else {
onError = onClose;
}
if (options.boardID == null) {
if (boardID != null) {
options.boardID = boardID;
}
}
mochi.MochiServices.send("scores_showLeaderboard", {options:options}, null, doClose);
}
static function closeLeaderboard() {
mochi.MochiServices.send("scores_closeLeaderboard");
}
static function getPlayerInfo(callbackObj, callbackMethod) {
mochi.MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
static function submit(score, name, callbackObj, callbackMethod) {
mochi.MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
static function requestList(callbackObj, callbackMethod) {
mochi.MochiServices.send("scores_requestList", null, callbackObj, callbackMethod);
}
static function scoresArrayToObjects(scores) {
var _local5 = {};
var _local1;
var _local4;
var _local2;
var _local6;
for (var _local8 in scores) {
if (typeof(scores[_local8]) == "object") {
if ((scores[_local8].cols != null) && (scores[_local8].rows != null)) {
_local5[_local8] = [];
_local2 = scores[_local8];
_local4 = 0;
while (_local4 < _local2.rows.length) {
_local6 = {};
_local1 = 0;
while (_local1 < _local2.cols.length) {
_local6[_local2.cols[_local1]] = _local2.rows[_local4][_local1];
_local1++;
}
_local5[_local8].push(_local6);
_local4++;
}
} else {
_local5[_local8] = {};
for (var _local7 in scores[_local8]) {
_local5[_local8][_local7] = scores[_local8][_local7];
}
}
} else {
_local5[_local8] = scores[_local8];
}
}
return(_local5);
}
static function doClose(args) {
if (args.error == true) {
if (args.errorCode == undefined) {
args.errorCode = "IOError";
}
onError.apply(null, [args.errorCode]);
} else {
onClose.apply();
}
}
}
Symbol 15 MovieClip [beginoTrans] Frame 1
function onEnterFrame() {
if (!this.bSetup) {
this.counter = 0;
this.numSpawns = 0;
this.bSetup = true;
_root.sndTrans.start();
}
if (this.bGrow) {
this._xscale = this._xscale * 1.32;
this._alpha = this._alpha + 5;
this._yscale = this._xscale;
this.counter++;
} else {
if (this.counter > 4) {
this.counter = 0;
Ltrans = _root.attachMovie("transition2", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 200;
Ltrans._yscale = 200;
Ltrans._alpha = 100;
Ltrans.bGrow = false;
this.numSpawns++;
}
this._xscale = this._xscale * 0.7;
this._alpha = this._alpha - 5;
this._yscale = this._xscale;
}
if (this._width >= 1200) {
this.bGrow = false;
_root.newGame(flag);
}
if ((this._width <= 10) && (!this.bGrow)) {
_root.removeMC(this);
}
}
Symbol 16 MovieClip [changeTrans] Frame 1
function onEnterFrame() {
if (!this.bSetup) {
this.counter = 0;
this.numSpawns = 0;
this.bSetup = true;
_root.sndTrans.start();
}
if (this.bGrow) {
this._xscale = this._xscale * 1.32;
this._alpha = this._alpha + 5;
this._yscale = this._xscale;
this.counter++;
} else {
if (this.counter > 4) {
this.counter = 0;
Ltrans = _root.attachMovie("transition2", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 200;
Ltrans._yscale = 200;
Ltrans._alpha = 100;
Ltrans.bGrow = false;
this.numSpawns++;
}
this._xscale = this._xscale * 0.7;
this._alpha = this._alpha - 5;
this._yscale = this._xscale;
}
if ((this._width >= 1200) && (this.bGrow == true)) {
this.bGrow = false;
_root.changeArea(flag);
}
if ((this._width <= 10) && (!this.bGrow)) {
_root.removeMC(this);
}
}
Symbol 20 MovieClip Frame 1
function onEnterFrame() {
this._rotation = this._rotation + 8;
}
Symbol 26 MovieClip [yellowBall] Frame 1
function onEnterFrame() {
this.score = 40;
if (this.ballColour == undefined) {
this.ballColour = "yellow";
_root.levelBalls[_root.levelBalls.length + 1] = this;
_root.rankCount++;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle - 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle - 1.5));
this._rotation = this._rotation + 30;
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 26) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 14) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "cyan" :
_root.cyans++;
break;
case "yellow" :
_root.yellows++;
break;
case "magenta" :
_root.magentas++;
}
_root.deleteBall(this.targetBall);
_root.yellows++;
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 32 MovieClip [whiteBall] Frame 1
function onEnterFrame() {
this.score = 0;
if (this.ballColour == undefined) {
this.ballColour = "white";
_root.levelBalls[_root.levelBalls.length + 1] = this;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle + 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle + 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
this._rotation = this._rotation + 30;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "red" :
_root.reds++;
break;
case "blue" :
_root.blues++;
break;
case "green" :
_root.blues++;
break;
case "magenta" :
_root.magentas++;
break;
case "yellow" :
_root.yellow++;
break;
case "cyan" :
_root.cyans++;
}
_root.deleteBall(this.targetBall);
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 33 MovieClip [transition] Frame 1
function onEnterFrame() {
if (!this.bSetup) {
this.counter = 0;
this.numSpawns = 0;
this.bSetup = true;
_root.sndTrans.start();
}
if (this.bGrow) {
this._xscale = this._xscale * 1.32;
this._alpha = this._alpha + 5;
this._yscale = this._xscale;
this.counter++;
} else {
if (this.counter > 4) {
this.counter = 0;
Ltrans = _root.attachMovie("transition2", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 200;
Ltrans._yscale = 200;
Ltrans._alpha = 100;
Ltrans.bGrow = false;
this.numSpawns++;
}
this._xscale = this._xscale * 0.7;
this._alpha = this._alpha - 5;
this._yscale = this._xscale;
}
if (this._width >= 1200) {
this.bGrow = false;
_root.gameLevel.nextFrame();
}
if ((this._width <= 10) && (!this.bGrow)) {
_root.removeMC(this);
}
}
Symbol 35 MovieClip [trail] Frame 1
function onEnterFrame() {
this.gotoAndStop(8);
this._alpha = this._alpha - 5;
this._xscale = this._xscale * 0.9;
this._yscale = this._xscale;
if (this._alpha < 5) {
_root.removeMC(this);
}
}
Symbol 83 MovieClip Frame 1
function onPress() {
_root.targetBall = undefined;
}
Symbol 84 MovieClip [title] Frame 1
function onEnterFrame() {
if (this._alpha < 100) {
this._alpha = this._alpha + 5;
}
if (!this.bsetup) {
this.gotoAndStop(1);
this.bsetup = true;
}
if (this.bplayGame && (!this.bClicked)) {
Ltrans = _root.attachMovie("beginoTrans", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 1;
Ltrans._yscale = 1;
Ltrans._alpha = 0;
Ltrans.bGrow = true;
Ltrans.flag = 1;
this.bClicked = true;
}
if (this.bplayTut && (!this.bClicked)) {
Ltrans = _root.attachMovie("beginoTrans", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 1;
Ltrans._yscale = 1;
Ltrans._alpha = 0;
Ltrans.bGrow = true;
Ltrans.flag = 0;
this.bClicked = true;
}
if (this._currentframe > 25) {
_root.removeMC(this);
}
}
this.pButton.onPress = function () {
this._parent.bplayGame = true;
this._parent.gotoAndPlay(1);
};
this.tutButton.onPress = function () {
this._parent.bplayTut = true;
this._parent.gotoAndPlay(1);
};
Symbol 85 MovieClip [retryTransition] Frame 1
function onEnterFrame() {
if (!this.bSetup) {
this.counter = 0;
this.numSpawns = 0;
this.bSetup = true;
_root.sndTrans.start();
}
if (this.bGrow) {
this._xscale = this._xscale * 1.32;
this._alpha = this._alpha + 5;
this._yscale = this._xscale;
this.counter++;
} else {
if (this.counter > 4) {
this.counter = 0;
Ltrans = _root.attachMovie("transition2", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 200;
Ltrans._yscale = 200;
Ltrans._alpha = 100;
Ltrans.bGrow = false;
this.numSpawns++;
}
this._xscale = this._xscale * 0.7;
this._alpha = this._alpha - 5;
this._yscale = this._xscale;
}
if (this._width >= 1200) {
this.bGrow = false;
_root.gameLevel.gotoAndStop(_root.currentStage);
}
if ((this._width <= 10) && (!this.bGrow)) {
_root.removeMC(this);
}
}
Symbol 88 MovieClip [redBall] Frame 1
function onEnterFrame() {
this.score = 30;
if (this.ballColour == undefined) {
this.ballColour = "red";
_root.levelBalls[_root.levelBalls.length + 1] = this;
_root.rankCount++;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle + 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle + 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
this._rotation = this._rotation + 30;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "red" :
_root.reds++;
break;
case "blue" :
_root.blues++;
break;
case "green" :
_root.blues++;
}
_root.deleteBall(this.targetBall);
_root.reds++;
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 101 MovieClip [rank] Frame 1
function onEnterFrame() {
if (this._currentframe != 1) {
if (this._xscale < 100) {
this._xscale = this._xscale * 1.3;
this._yscale = this._xscale;
this.bMakeNoise = true;
} else if ((this._xscale >= 100) && (this.bMakeNoise)) {
this.bMakeNoise = false;
_root.bang.start();
}
}
}
Symbol 109 MovieClip [particle] Frame 1
function onEnterFrame() {
switch (this.Kullor) {
case "red" :
this.gotoAndStop(7);
break;
case "blue" :
this.gotoAndStop(2);
break;
case "green" :
this.gotoAndStop(3);
break;
case "cyan" :
this.gotoAndStop(4);
break;
case "yellow" :
this.gotoAndStop(5);
break;
case "magenta" :
this.gotoAndStop(6);
break;
default :
this.gotoAndStop(8);
}
this._alpha = this._alpha - 2;
if (this._alpha < 5) {
_root.removeMC(this);
}
this.dirx = this.dirx * 0.98;
this.diry = this.diry + 1;
this._x = this._x + (this.dirx / 2);
this._y = this._y + (this.diry / 2);
}
Symbol 119 MovieClip [mPointer] Frame 1
function onEnterFrame() {
Mouse.hide();
this._x = _root._xmouse;
this._y = _root._ymouse;
if ((_root.targetBall != undefined) && (_root.nextTarget != undefined)) {
this.newColour = _root.testColours(_root.targetBall.ballColour, _root.nextTarget.ballColour);
} else {
this.newColour = undefined;
}
switch (this.newColour) {
case "red" :
this.gotoAndStop(2);
break;
case "blue" :
this.gotoAndStop(3);
break;
case "green" :
this.gotoAndStop(4);
break;
case "cyan" :
this.gotoAndStop(5);
break;
case "magenta" :
this.gotoAndStop(6);
break;
case "yellow" :
this.gotoAndStop(7);
break;
default :
this.gotoAndStop(1);
}
if ((_root.targetBall.ballColour == _root.nextTarget.ballColour) && (this.newColour != undefined)) {
this.gotoAndStop(8);
}
if (_root.targetBall == _root.nextTarget) {
this.gotoAndStop(1);
}
}
Symbol 120 MovieClip [magentaBall] Frame 1
function onEnterFrame() {
this.score = 40;
if (this.ballColour == undefined) {
this.ballColour = "magenta";
_root.levelBalls[_root.levelBalls.length + 1] = this;
_root.rankCount++;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle - 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle - 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 25;
this.diry = Math.sin(angle) * 25;
this._rotation = this._rotation + 30;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "cyan" :
_root.cyans++;
break;
case "yellow" :
_root.yellows++;
break;
case "magenta" :
_root.magentas++;
}
_root.deleteBall(this.targetBall);
_root.magentas++;
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 122 MovieClip [MainTrans] Frame 1
function onEnterFrame() {
if (!this.bSetup) {
this.counter = 0;
this.numSpawns = 0;
this.bSetup = true;
_root.sndTrans.start();
}
if (this.bGrow) {
this._xscale = this._xscale * 1.32;
this._alpha = this._alpha + 5;
this._yscale = this._xscale;
this.counter++;
} else {
if (this.counter > 4) {
this.counter = 0;
Ltrans = _root.attachMovie("transition2", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 200;
Ltrans._yscale = 200;
Ltrans._alpha = 100;
Ltrans.bGrow = false;
this.numSpawns++;
}
this._xscale = this._xscale * 0.7;
this._alpha = this._alpha - 5;
this._yscale = this._xscale;
}
if (this._width >= 1200) {
this.bGrow = false;
_root.removeMC(_root.gameLevel);
_root.beginGame();
}
if ((this._width <= 10) && (!this.bGrow)) {
_root.removeMC(this);
}
}
Symbol 124 MovieClip Frame 1
function onPress() {
if (!this.bClicked) {
_root.retryLevel();
this.bClicked = true;
}
}
Symbol 136 MovieClip Frame 1
function onEnterFrame() {
if (!this.bSetup) {
if (_root.bPlayMusic == true) {
_root.BGM.setVolume(100);
}
this.bSetup = true;
}
if (this._currentframe > 60) {
_root.gameLevel.clock.bBegin = true;
_root.removeMC(this);
}
}
Symbol 142 MovieClip Frame 1
function onEnterFrame() {
if (this.bBegin) {
if (!this.bsetup) {
this.start_time = getTimer();
_root.clock = this;
this.bsetup = true;
this.warningTime = 10000;
}
this.elapsed_time = getTimer() - this.start_time;
this.count_down.text = time_to_string(this.count - this.elapsed_time) + " ";
}
if (((this.count - this.elapsed_time) < this.warningTime) && (this.elapsed_time != undefined)) {
if (this.lastColour != "red") {
this.count_down.textColor = 16720418 /* 0xFF2222 */;
this.lastColour = "red";
} else {
this.count_down.textColor = 16776994 /* 0xFFFF22 */;
this.lastColour = "yellow";
}
if (this.warningTime > 6000) {
this.warningTime = this.warningTime - 1000;
} else {
this.warningTime = this.warningTime - 500;
}
_root.adder.start();
} else {
this.count_down.textColor = 16777215 /* 0xFFFFFF */;
}
if (((this.count - this.elapsed_time) <= 0) && (this.elapsed_time != undefined)) {
_root.timeOut();
}
}
function time_to_string(time_to_convert) {
elapsed_hours = Math.floor(time_to_convert / 3600000);
remaining = time_to_convert - (elapsed_hours * 3600000);
elapsed_minutes = Math.floor(remaining / 60000);
remaining = remaining - (elapsed_minutes * 60000);
elapsed_seconds = Math.floor(remaining / 1000);
remaining = remaining - (elapsed_seconds * 1000);
elapsed_fs = Math.floor(remaining / 10);
if (elapsed_minutes < 10) {
minutes = "0" + elapsed_minutes.toString();
} else {
minutes = elapsed_minutes.toString();
}
if (elapsed_seconds < 10) {
seconds = "0" + elapsed_seconds.toString();
} else {
seconds = elapsed_seconds.toString();
}
return((minutes + ":") + seconds);
}
Symbol 147 MovieClip Frame 1
function onEnterFrame() {
this.score = 0;
if (!this.bHit) {
for (i in _root.levelBalls) {
currentBall = _root.levelBalls[i];
if (currentBall.bHasTarget) {
if (this.hitTest(currentBall)) {
this.bHit = true;
this.initBall = currentBall;
this.targetKullor = currentBall.ballColour;
this.bHasTarget = true;
this.targetBall = this.getNextTarget();
}
}
}
}
if (this.bHasTarget) {
if (this.targetKullor == undefined) {
this.targetKullor = this.targetBall.ballColour;
}
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (this.targetBall.ballColour != undefined) {
if (distance < 350) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle + 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle + 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
this._rotation = this._rotation + 30;
}
} else {
this.targetBall = this.getNextTarget();
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = undefined;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "red" :
_root.reds++;
break;
case "blue" :
_root.blues++;
break;
case "green" :
_root.blues++;
break;
case "yellow" :
_root.yellows++;
break;
case "cyan" :
_root.cyans++;
break;
case "magenta" :
_root.magentas++;
}
colour = this.getRandomColour();
_root.createBall(this.targetBall._x, this.targetBall._y, colour);
_root.deleteBall(this.targetBall);
this.targetBall = this.getNextTarget();
if (this.targetBall == undefined) {
for (i in _root.levelStars) {
if (_root.levelStarts[i] == this) {
_root.levelStars.splice(i, 1);
}
}
_root.deleteBall(this);
}
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
function getNextTarget() {
var _local3;
for (i in _root.levelBalls) {
if (((_root.levelBalls[i].ballColour == this.targetKullor) && (_root.levelBalls[i] != this.initBall)) && (_root.levelBalls[i] != this.initBall.targetBall)) {
_local3 = _root.levelBalls[i];
}
}
if (_local3 == undefined) {
_root.createFX(this);
_root.deleteBall(this);
}
return(_local3);
}
function getRandomColour() {
this.randNum = Math.random() * 12;
this.newBallColour = "red";
if (this.randNum < 2) {
this.newBallColour = "red";
} else if (this.randNum < 4) {
this.newBallColour = "green";
} else if (this.randNum < 6) {
this.newBallColour = "blue";
} else if (this.randNum < 8) {
this.newBallColour = "cyan";
} else if (this.randNum < 10) {
this.newBallColour = "yellow";
} else if (this.randNum < 12) {
this.newBallColour = "magenta";
}
return(this.newBallColour);
}
Symbol 150 MovieClip [cyanBall] Frame 1
function onEnterFrame() {
this.score = 30;
if (this.ballColour == undefined) {
this.ballColour = "cyan";
_root.levelBalls[_root.levelBalls.length + 1] = this;
_root.rankCount++;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle - 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle - 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
this._rotation = this._rotation + 30;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "cyan" :
_root.cyans++;
break;
case "yellow" :
_root.yellows++;
break;
case "magenta" :
_root.magentas++;
}
_root.deleteBall(this.targetBall);
_root.cyans++;
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 154 MovieClip [blueBall] Frame 1
function onEnterFrame() {
this.score = 20;
if (this.ballColour == undefined) {
this.ballColour = "blue";
_root.levelBalls[_root.levelBalls.length + 1] = this;
_root.rankCount++;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle + 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle + 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
this._rotation = this._rotation + 30;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "red" :
_root.reds++;
break;
case "blue" :
_root.blues++;
break;
case "green" :
_root.blues++;
}
_root.deleteBall(this.targetBall);
_root.blues++;
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 155 MovieClip Frame 1
function onEnterFrame() {
_root.gameLevel.clock.count = 60000;
_root.removeMC(this);
}
Symbol 157 MovieClip Frame 1
function onPress() {
_root.targetBall = undefined;
}
Symbol 184 MovieClip Frame 1
function onEnterFrame() {
if (!this.bSetup) {
this.bSetup = true;
if (_root.bPlayMusic) {
_root.BGM.setVolume(70);
}
this.count = 0;
this.blueC = 0;
this.redC = 0;
this.cyC = 0;
this.yellC = 0;
this.magC = 0;
this.greenC = 0;
this.lScore = 0;
this.bScore = 0;
this.tScore = _root.playerScore - _root.levelScore;
this.getTimes();
this.rank.gotoAndStop(1);
this.rank._xscale = 10;
this.rank._yscale = 10;
}
this.blueQ.text = String(_root.blues);
this.greenQ.text = String(_root.greens);
this.redQ.text = String(_root.reds);
this.cyanQ.text = String(_root.cyans);
this.yellowQ.text = String(_root.yellows);
this.magentaQ.text = String(_root.magentas);
if (this.blueC < (_root.blues * 20)) {
this.blueC = this.blueC + 5;
this.blueSc.text = String(this.blueC);
}
if (this.greenC < (_root.greens * 20)) {
this.greenC = this.greenC + 5;
this.greenSc.text = String(this.greenC);
}
if (this.redC < (_root.reds * 30)) {
this.redC = this.redC + 5;
this.redSc.text = String(this.redC);
}
if (this.cyC < (_root.cyans * 30)) {
this.cyC = this.cyC + 5;
this.cyanSc.text = String(this.cyC);
}
if (this.yellC < (_root.yellows * 40)) {
this.yellC = this.yellC + 5;
this.yellowSc.text = String(this.yellC);
}
if (this.magC < (_root.magentas * 40)) {
this.magC = this.magC + 5;
this.magentaSc.text = String(this.magC);
}
if (this.lScore < _root.levelScore) {
this.lScore = this.lScore + 10;
if (this.lScore > _root.levelScore) {
this.lScore = _root.levelScore;
}
this.levelScore.text = this.lScore;
}
if (this.tScore < _root.playerScore) {
this.tScore = this.tScore + 10;
if (this.tScore > _root.playerScore) {
this.tScore = _root.playerScore;
}
this.totalScore.text = this.tScore;
}
if (this.bScore < _root.bonusScore) {
this.bScore = this.bScore + 5;
if (this.bScore > _root.bonusScore) {
this.bScore = _root.bonusScore;
}
this.timeBonus.text = this.bScore;
}
this.testC = (((((this.blueC + this.greenC) + this.redC) + this.cyC) + this.magC) + this.yellC) + this.bScore;
if (this.count > 1) {
if ((this.testC < _root.levelScore) || (this.tScore < _root.playerScore)) {
_root.adder.start();
this.count = 0;
}
}
this.count++;
if (((this.testC == _root.levelScore) && (this.tScore == _root.playerScore)) && (!this.Ranked)) {
getRank();
}
}
function getTimes() {
this.levelTime.text = time_to_string(_root.levelTime);
this.TotalTime.text = time_to_string(_root.playerTotalTime);
}
function time_to_string(time_to_convert) {
elapsed_hours = Math.floor(time_to_convert / 3600000);
remaining = time_to_convert - (elapsed_hours * 3600000);
elapsed_minutes = Math.floor(remaining / 60000);
remaining = remaining - (elapsed_minutes * 60000);
elapsed_seconds = Math.floor(remaining / 1000);
remaining = remaining - (elapsed_seconds * 1000);
elapsed_fs = Math.floor(remaining / 10);
if (elapsed_minutes < 10) {
minutes = "0" + elapsed_minutes.toString();
} else {
minutes = elapsed_minutes.toString();
}
if (elapsed_seconds < 10) {
seconds = "0" + elapsed_seconds.toString();
} else {
seconds = elapsed_seconds.toString();
}
return((minutes + ":") + seconds);
}
function getRank() {
if (_root.levelScore < (30 * _root.rankMulti)) {
this.rank.gotoAndStop(6);
}
if (_root.levelScore >= (30 * _root.rankMulti)) {
this.rank.gotoAndStop(5);
}
if (_root.levelScore > (40 * _root.rankMulti)) {
this.rank.gotoAndStop(4);
}
if (_root.levelScore > (60 * _root.rankMulti)) {
this.rank.gotoAndStop(3);
}
if (_root.levelScore > (70 * _root.rankMulti)) {
this.rank.gotoAndStop(2);
}
this.Ranked = true;
}
Symbol 187 MovieClip Frame 1
function onPress() {
if (!this.bClicked) {
Ltrans = _root.attachMovie("transition", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 1;
Ltrans._yscale = 1;
Ltrans._alpha = 0;
Ltrans.bGrow = true;
this.bClicked = true;
_root.reds = 0;
_root.blues = 0;
_root.greens = 0;
_root.cyans = 0;
_root.magentas = 0;
_root.yellows = 0;
_root.bonusScore = 0;
_root.levelScore = 0;
}
}
Symbol 192 MovieClip [greenBall] Frame 1
function onEnterFrame() {
this.score = 20;
if (this.ballColour == undefined) {
this.ballColour = "green";
_root.levelBalls[_root.levelBalls.length + 1] = this;
_root.rankCount++;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle + 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle + 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 25;
this.diry = Math.sin(angle) * 25;
this._rotation = this._rotation + 30;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "red" :
_root.reds++;
break;
case "blue" :
_root.blues++;
break;
case "green" :
_root.blues++;
}
_root.deleteBall(this.targetBall);
_root.greens++;
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 197 MovieClip Frame 1
function onEnterFrame() {
if (!this.bHit) {
this.gotoAndStop(1);
for (i in _root.levelBalls) {
currentBall = _root.levelBalls[i];
if (currentBall.bHasTarget) {
if (this.hitTest(currentBall)) {
this.bHit = true;
this.collideBall();
}
}
}
}
if (this._currentframe >= 28) {
_root.removeMC(this);
}
this._alpha = 100 - (this._currentframe * 3);
}
function collideBall() {
_root.gameLevel.clock.count = _root.gameLevel.clock.count + 15000;
_root.popper.start();
_root.createFX(this);
this.gotoAndPlay(2);
}
Symbol 203 MovieClip [blackBall] Frame 1
function onEnterFrame() {
this.score = 0;
if (this.ballColour == undefined) {
this.ballColour = "black";
_root.levelBalls[_root.levelBalls.length + 1] = this;
}
if (this.bHasTarget) {
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (distance >= 40) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle + 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle + 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
this._rotation = this._rotation + 30;
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = this;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "red" :
_root.reds++;
break;
case "blue" :
_root.blues++;
break;
case "green" :
_root.blues++;
break;
case "magenta" :
_root.magentas++;
break;
case "yellow" :
_root.yellow++;
break;
case "cyan" :
_root.cyans++;
}
_root.deleteBall(this.targetBall);
_root.deleteBall(this);
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
Symbol 204 MovieClip Frame 1
function onEnterFrame() {
_root.gameLevel.clock.count = 20000;
_root.removeMC(this);
}
Symbol 206 MovieClip Frame 1
function onPress() {
_root.targetBall = undefined;
}
Symbol 207 MovieClip Frame 1
function onEnterFrame() {
_root.gameLevel.clock.count = 30000;
_root.removeMC(this);
}
Symbol 209 MovieClip Frame 1
function onPress() {
_root.targetBall = undefined;
}
Symbol 210 MovieClip Frame 1
function onEnterFrame() {
_root.gameLevel.clock.count = 45000;
_root.removeMC(this);
}
Symbol 212 MovieClip Frame 1
function onEnterFrame() {
this.score = 0;
if (!this.bHit) {
for (i in _root.levelBalls) {
currentBall = _root.levelBalls[i];
if (currentBall.bHasTarget) {
if (this.hitTest(currentBall)) {
this.bHit = true;
this.initBall = currentBall;
this.targetKullor = currentBall.ballColour;
this.bHasTarget = true;
this.targetBall = this.getNextTarget();
}
}
}
}
if (this.bHasTarget) {
if (this.targetKullor == undefined) {
this.targetKullor = this.targetBall.ballColour;
}
this.fTime++;
this.targetBall.bChosen = true;
sideA = this._x - this.targetBall._x;
sideB = this._y - this.targetBall._y;
distance = Math.sqrt((sideA * sideA) + (sideB * sideB));
if (this.targetBall.ballColour != undefined) {
if (distance < 350) {
angle = Math.atan2(sideB, sideA);
posx = this._x + ((distance * 3) * Math.cos(angle + 1.5));
posy = this._y + ((distance * 3) * Math.sin(angle + 1.5));
sideA = posx - this.targetBall._x;
sideB = posy - this.targetBall._y;
angle = Math.atan2(sideB, sideA);
this.dirx = Math.cos(angle) * 20;
this.diry = Math.sin(angle) * 20;
this._rotation = this._rotation + 30;
}
} else {
this.targetBall = this.getNextTarget();
}
if (distance < 40) {
this.collideTarget();
}
this._x = this._x - this.dirx;
this._y = this._y - this.diry;
_root.createTrail(this);
}
if (_root.targetBall == this) {
if ((this._currentframe > 27) || (this._currentframe < 15)) {
this.gotoAndPlay(15);
}
} else if (this.bChosen) {
if ((this._currentframe > 44) || (this._currentframe < 30)) {
this.gotoAndPlay(30);
}
} else if (this._currentframe > 13) {
this.gotoAndPlay(1);
}
}
function onPress() {
action = _root.getAction(this);
_root.clicked.start();
if (action != null) {
newBallColour = _root.testColours(action.ballColour, this.ballColour);
if (newBallColour != undefined) {
this.targetBall = action;
this.newBall = newBallColour;
this.bHasTarget = true;
this.fTime = 0;
} else {
_root.targetBall = undefined;
}
}
}
function collideTarget() {
if (this.newBall != this.ballColour) {
_root.createBall(this.targetBall._x, this.targetBall._y, newBall);
}
_root.createFX(this.targetBall);
switch (this.targetBall.ballColour) {
case "red" :
_root.reds++;
break;
case "blue" :
_root.blues++;
break;
case "green" :
_root.blues++;
break;
case "yellow" :
_root.yellows++;
break;
case "cyan" :
_root.cyans++;
break;
case "magenta" :
_root.magentas++;
}
_root.deleteBall(this.targetBall);
this.targetBall = this.getNextTarget();
if (this.targetBall == undefined) {
for (i in _root.levelStars) {
if (_root.levelStarts[i] == this) {
_root.levelStars.splice(i, 1);
}
}
_root.deleteBall(this);
}
}
function onRollOver() {
_root.nextTarget = this;
}
function onRollOut() {
_root.nextTarget = undefined;
}
function getNextTarget() {
var _local3;
for (i in _root.levelBalls) {
if (((_root.levelBalls[i].ballColour == this.targetKullor) && (_root.levelBalls[i] != this.initBall)) && (_root.levelBalls[i] != this.initBall.targetBall)) {
_local3 = _root.levelBalls[i];
}
}
if (_local3 == undefined) {
_root.createFX(this);
_root.deleteBall(this);
}
return(_local3);
}
Symbol 227 MovieClip [GameFinished] Frame 1
function onEnterFrame() {
_root.BGM.setVolume(50);
}
this.subButton.onPress = function () {
mochi.MochiScores.showLeaderboard({boardID:"9519d6bf4a6b1795", score:_root.playerScore, name:this._parent.playerName.text, onClose:function () {
_root.beginGame();
}});
_root.removeMC(_root.gameLevel);
_root.removeMC(titleScr);
};
Symbol 229 MovieClip Frame 1
function onPress() {
_root.targetBall = undefined;
}
Symbol 232 MovieClip Frame 1
function onPress() {
if (!this.bClicked) {
Ltrans = _root.attachMovie("retryTransition", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 1;
Ltrans._yscale = 1;
Ltrans._alpha = 0;
Ltrans.bGrow = true;
this.bClicked = true;
_root.reds = 0;
_root.blues = 0;
_root.greens = 0;
_root.cyans = 0;
_root.magentas = 0;
_root.yellows = 0;
_root.bonusScore = 0;
_root.levelScore = 0;
_root.retries = _root.retries - 1;
}
}
Symbol 238 MovieClip Frame 1
function onEnterFrame() {
this.tries.text = _root.retries;
}
Symbol 242 MovieClip Frame 1
function onEnterFrame() {
this.tries.text = _root.retries;
}
Symbol 248 MovieClip Frame 1
function onEnterFrame() {
_root.BGM.setVolume(50);
}
this.subButton.onPress = function () {
mochi.MochiScores.showLeaderboard({boardID:"9519d6bf4a6b1795", score:_root.playerScore, name:this._parent.playerName.text, onClose:function () {
_root.beginGame();
}});
_root.removeMC(_root.gameLevel);
_root.removeMC(titleScr);
};
Symbol 250 MovieClip Frame 1
function onPress() {
_root.targetBall = undefined;
}
Symbol 281 MovieClip Frame 1
function onEnterFrame() {
if (!this.bsetup) {
this.bsetup = true;
this.setLevels();
}
}
function goToLevel(newLevel) {
Ltrans = _root.attachMovie("changeTrans", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 1;
Ltrans._yscale = 1;
Ltrans._alpha = 0;
Ltrans.bGrow = true;
Ltrans.flag = newLevel;
_root.playerLevel = newLevel;
}
function setLevels() {
if (_root.bLvl1) {
this.lvl1.gotoAndStop(4);
} else {
this.lvl1.gotoAndStop(1);
}
if (_root.bLvl2) {
this.lvl2.gotoAndStop(4);
} else {
this.lvl2.gotoAndStop(1);
}
if (_root.bLvl3) {
this.lvl3.gotoAndStop(4);
} else {
this.lvl3.gotoAndStop(1);
}
if (_root.bLvl4) {
this.lvl4.gotoAndStop(4);
} else {
this.lvl4.gotoAndStop(1);
}
if (_root.bLvl5) {
this.lvl5.gotoAndStop(4);
} else {
this.lvl5.gotoAndStop(1);
}
if (_root.bLvl6) {
this.lvl6.gotoAndStop(4);
} else {
this.lvl6.gotoAndStop(1);
}
if (_root.bLvl7) {
this.lvl7.gotoAndStop(4);
} else {
this.lvl7.gotoAndStop(1);
}
if (_root.bLvl8) {
this.lvl8.gotoAndStop(4);
} else {
this.lvl8.gotoAndStop(1);
}
switch (_root.playerLevel) {
case 1 :
this.lvl2.gotoAndStop(2);
this.lvl3.gotoAndStop(2);
break;
case 2 :
this.lvl4.gotoAndStop(2);
this.lvl5.gotoAndStop(2);
break;
case 3 :
this.lvl5.gotoAndStop(2);
this.lvl6.gotoAndStop(2);
break;
case 4 :
this.lvl7.gotoAndStop(2);
break;
case 5 :
this.lvl7.gotoAndStop(2);
this.lvl8.gotoAndStop(2);
break;
case 6 :
this.lvl8.gotoAndStop(2);
}
}
this.lvl2.onPress = function () {
if ((!this.bClicked) && (this._currentframe == 3)) {
this._parent.goToLevel(2);
this.bClicked = true;
}
};
this.lvl3.onPress = function () {
if ((!this.bClicked) && (this._currentframe == 3)) {
this._parent.goToLevel(3);
this.bClicked = true;
}
};
this.lvl4.onPress = function () {
if ((!this.bClicked) && (this._currentframe == 3)) {
this._parent.goToLevel(4);
this.bClicked = true;
}
};
this.lvl5.onPress = function () {
if ((!this.bClicked) && (this._currentframe == 3)) {
this._parent.goToLevel(5);
this.bClicked = true;
}
};
this.lvl6.onPress = function () {
if ((!this.bClicked) && (this._currentframe == 3)) {
this._parent.goToLevel(6);
this.bClicked = true;
}
};
this.lvl7.onPress = function () {
if ((!this.bClicked) && (this._currentframe == 3)) {
this._parent.goToLevel(7);
this.bClicked = true;
}
};
this.lvl8.onPress = function () {
if ((!this.bClicked) && (this._currentframe == 3)) {
this._parent.goToLevel(8);
this.bClicked = true;
}
};
this.lvl2.onRollOver = function () {
if (this._currentframe == 2) {
this.gotoAndStop(3);
}
};
this.lvl2.onRollOut = function () {
if (this._currentframe == 3) {
this.gotoAndStop(2);
}
};
this.lvl3.onRollOver = function () {
if (this._currentframe == 2) {
this.gotoAndStop(3);
}
};
this.lvl3.onRollOut = function () {
if (this._currentframe == 3) {
this.gotoAndStop(2);
}
};
this.lvl4.onRollOver = function () {
if (this._currentframe == 2) {
this.gotoAndStop(3);
}
};
this.lvl4.onRollOut = function () {
if (this._currentframe == 3) {
this.gotoAndStop(2);
}
};
this.lvl5.onRollOver = function () {
if (this._currentframe == 2) {
this.gotoAndStop(3);
}
};
this.lvl5.onRollOut = function () {
if (this._currentframe == 3) {
this.gotoAndStop(2);
}
};
this.lvl6.onRollOver = function () {
if (this._currentframe == 2) {
this.gotoAndStop(3);
}
};
this.lvl6.onRollOut = function () {
if (this._currentframe == 3) {
this.gotoAndStop(2);
}
};
this.lvl7.onRollOver = function () {
if (this._currentframe == 2) {
this.gotoAndStop(3);
}
};
this.lvl7.onRollOut = function () {
if (this._currentframe == 3) {
this.gotoAndStop(2);
}
};
this.lvl8.onRollOver = function () {
if (this._currentframe == 2) {
this.gotoAndStop(3);
}
};
this.lvl8.onRollOut = function () {
if (this._currentframe == 3) {
this.gotoAndStop(2);
}
};
Symbol 288 MovieClip Frame 1
function onPress() {
_root.targetBall = undefined;
}
Symbol 305 MovieClip Frame 1
function onPress() {
if (!this.bClicked) {
Ltrans = _root.attachMovie("MainTrans", "trans", _root.getNextHighestDepth(), {_x:275, _y:200});
Ltrans._xscale = 1;
Ltrans._yscale = 1;
Ltrans._alpha = 0;
Ltrans.bGrow = true;
this.bClicked = true;
_root.reds = 0;
_root.blues = 0;
_root.greens = 0;
_root.cyans = 0;
_root.magentas = 0;
_root.yellows = 0;
_root.bonusScore = 0;
_root.levelScore = 0;
}
}