Frame 1
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;
var pv;
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);
}
pv = ((fv == 5) ? (getVersion()) : (System.capabilities.version));
u = (((((((((((("http://" + mbc) + "/my/core.swf?mv=8&fv=") + fv) + "&v=") + escape(pv)) + "&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__("47790ccc", this, 10301, true);
mochi.as2.MochiAd.showPreGameAd({id:"9f0eeb00f94aa27f", res:"650x500", background:16777161, color:13112277, outline:12135486, no_bg:true});
mochi.as2.MochiServices.connect("9f0eeb00f94aa27f");
Frame 2
stop();
Frame 6
stop();
Frame 7
stop();
Frame 8
stop();
Frame 9
stop();
Frame 10
stop();
Frame 11
stop();
Frame 12
stop();
Frame 13
stop();
Frame 21
stop();
Frame 41
stop();
var main = new Main();
Frame 58
stop();
score = ControllCenter.score;
if (_root.completed) {
_root.text_completed._visible = true;
} else {
_root.text_completed._visible = false;
}
Frame 59
stop();
Frame 60
stop();
Frame 61
stop();
Frame 62
stop();
Frame 63
stop();
Frame 64
stop();
Frame 65
stop();
Frame 69
stop();
score = ControllCenter.score;
Frame 70
stop();
Frame 71
stop();
Frame 72
stop();
Frame 73
stop();
Frame 74
stop();
Frame 75
stop();
Frame 76
stop();
Symbol 302 MovieClip [__Packages.mochi.as2.MochiAd] Frame 0
class mochi.as2.MochiAd
{
function MochiAd () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showPreGameAd(options) {
var _local26 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}, ad_progress:function (percent) {
}};
options = _parseOptions(options, _local26);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def") {
options.ad_started();
options.ad_finished();
return(undefined);
}
var clip = options.clip;
var _local23 = 11000;
var _local19 = options.ad_timeout;
if (options.skip) {
_local19 = 0;
}
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
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 _local6 = chk.createEmptyMovieClip("_mochiad_bar", 4);
if (options.no_progress_bar) {
_local6._visible = false;
delete options.no_progress_bar;
} else {
_local6._x = 10;
_local6._y = _local13 - 20;
}
var _local22 = options.color;
delete options.color;
var _local20 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local6.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local20);
_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 = _local6.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 _local7 = _local6.createEmptyMovieClip("_outline", 3);
_local7.lineStyle(0, _local24, 100);
_local7.moveTo(0, 0);
_local7.lineTo(_local4 - 20, 0);
_local7.lineTo(_local4 - 20, 10);
_local7.lineTo(0, 10);
_local7.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local19;
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;
mochi.as2.MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
var sendHostProgress = false;
mc.lc.sendHostLoadProgress = function (lc_name) {
sendHostProgress = true;
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local11 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local2 = (100 * _local8) / _local4;
var _local10 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local13 = Math.min(100, Math.min(_local2 || 0, _local10));
_local13 = Math.max(this.last_pcnt, _local13);
this.last_pcnt = _local13;
_local9._xscale = _local13;
options.ad_progress(_local13);
if (sendHostProgress) {
mochi.as2.MochiAd.containerNotify(clip, {id:"hostLoadPcnt", pcnt:_local2}, clip._mochiad._containerLCName);
if (_local2 == 100) {
sendHostProgress = false;
}
}
if (!chk.showing) {
var _local7 = _local11.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if ((_local5 > chk.ad_timeout) && (_local2 == 100)) {
options.ad_failed();
_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 showClickAwayAd(options) {
var _local9 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function () {
}, ad_finished:function () {
}, ad_loaded:function (width, height) {
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function () {
}};
options = _parseOptions(options, _local9);
var clip = options.clip;
var _local8 = options.ad_timeout;
delete options.ad_timeout;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local4 = _getRes(options);
var _local10 = _local4[0];
var _local7 = _local4[1];
mc._x = _local10 * 0.5;
mc._y = _local7 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_timeout = _local8;
chk.started = getTimer();
chk.showing = false;
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
var _local20 = false;
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
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")) {
_local2 = true;
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
options.ad_failed();
_local2 = true;
}
}
if (_local2) {
delete this.onEnterFrame;
}
};
}
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();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}};
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_failed();
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;
mochi.as2.MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
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) {
options.ad_failed();
_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 showPreloaderAd(options) {
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
showPreGameAd(options);
}
static function showTimedAd(options) {
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
showInterLevelAd(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 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 _local7 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local7._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local7.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local7._mochiad_loaded = true;
if (_local7._url.indexOf("http") != 0) {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
}
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
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;
mochi.as2.MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new Object();
var _local9 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local9;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local9);
_local6.lc = _local5;
_local4.lc = _local9;
_local4.st = getTimer();
if (!options.skip) {
_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);
}
containerNotify(clip, {id:"unload"}, clip._mochiad._containerLCName);
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++;
}
}
if (_local4.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(_local4);
}
static function rpc(clip, callbackID, arg) {
switch (arg.id) {
case "setValue" :
setValue(clip, arg.objectName, arg.value);
break;
case "getValue" :
var _local4 = getValue(clip, arg.objectName);
containerRpcResult(clip, callbackID, _local4, clip._mochiad._containerLCName);
break;
case "runMethod" :
var _local3 = runMethod(clip, arg.method, arg.args);
containerRpcResult(clip, callbackID, _local3, clip._mochiad._containerLCName);
break;
default :
trace("[mochiads rpc] unknown rpc id: " + arg.id);
}
}
static function setValue(base, objectName, value) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
base[_local2[_local1]] = value;
}
static function getValue(base, objectName) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
return(base[_local2[_local1]]);
}
static function runMethod(base, methodName, argsArray) {
var _local2 = methodName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
if (typeof(base[_local2[_local1]]) == "function") {
return(base[_local2[_local1]].apply(base, argsArray));
}
return(undefined);
}
static function containerNotify(clip, args, lcName) {
var _local1 = clip._mochiad._mochiad_ctr.ad.app;
if (_local1.notify) {
_local1.notify(args);
} else {
new LocalConnection().send(lcName, "notify", args);
}
}
static function containerRpcResult(clip, callbackID, val, lcName) {
var _local1 = clip._mochiad._mochiad_ctr.ad.app;
if (_local1.rpcResult) {
_local1.rpcResult(callbackID, val);
} else {
new LocalConnection().send(lcName, "rpcResult", callbackID, val);
}
}
}
Symbol 303 MovieClip [__Packages.mochi.as2.MochiSync] Frame 0
class mochi.as2.MochiSync
{
var _syncContainer;
function MochiSync () {
_syncContainer = {};
}
function getProp(name) {
return(_syncContainer[name]);
}
function setProp(name, value) {
if (_syncContainer[name] == value) {
return(undefined);
}
_syncContainer[name] = value;
mochi.as2.MochiServices.send("sync_propUpdate", {name:name, value:value});
}
function triggerEvent(eventType, args) {
switch (eventType) {
case SYNC_REQUEST :
mochi.as2.MochiServices.send("sync_syncronize", _syncContainer);
break;
case SYNC_PROPERTY :
_syncContainer[args.name] = args.value;
}
}
static var SYNC_REQUEST = "SyncRequest";
static var SYNC_PROPERTY = "UpdateProperty";
}
Symbol 304 MovieClip [__Packages.mochi.as2.MochiServices] Frame 0
class mochi.as2.MochiServices
{
static var _id, _container, _clip, _sendChannelName, __get__comChannelName, onError, _listenChannel, _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("3.7 as2");
}
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";
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
warnID(id, false);
if ((!_connected) && (_clip == undefined)) {
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.as2.MochiServices.onError = onError;
} else if (mochi.as2.MochiServices.onError == undefined) {
mochi.as2.MochiServices.onError = function (errorCode) {
trace(errorCode);
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.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 _local6 = "_mochiservices_com_" + id;
var _local5 = new MovieClipLoader();
var _local3 = {};
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
if (urlOptions().servURL) {
_servURL = urlOptions().servURL;
}
var _local4 = _servURL + _services;
if (urlOptions().servicesURL) {
_local4 = urlOptions().servicesURL;
}
allowDomains(_local4);
_clip = clip.createEmptyMovieClip(_local6, 10336, false);
_listenChannelName = _listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor(Math.random() * 99999));
listen();
if (_local3.waitInterval != null) {
clearInterval(_local3.waitInterval);
}
_local3.onLoadError = loadError;
_local3.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_local3.onLoadComplete = function (target_mc) {
target_mc.MochiServices = mochi.as2.MochiServices;
};
_local3.startTime = getTimer();
_local3.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.as2.MochiServices.disconnect();
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_local3.waitInterval = setInterval(_local3, "wait", 1000);
_local5.addListener(_local3);
_local5.loadClip((((((_local4 + "?listenLC=") + _listenChannelName) + "&mochiad_options=") + escape(_root.mochiad_options)) + "&api_version=") + getVersion(), _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
return(_clip);
}
static function loadError(target_mc, errorCode, httpStatus) {
trace("MochiServices could not load.");
disconnect();
onError.apply(null, [errorCode]);
}
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.as2.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel._nextcallbackID = 0;
_listenChannel._callbacks = {};
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, version:getVersion()});
_listenChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_listenChannel.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];
};
_listenChannel.onEvent = function (pkg) {
switch (pkg.target) {
case "events" :
mochi.as2.MochiEvents.triggerEvent(pkg.event, pkg.args);
break;
case "coins" :
mochi.as2.MochiSocial.triggerEvent(pkg.event, pkg.args);
break;
case "sync" :
mochi.as2.MochiServices.servicesSync.triggerEvent(pkg.event, pkg.args);
}
};
_listenChannel.onError = function () {
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
};
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
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 = _listenChannel._callbacks[_local1.callbackID];
}
delete _listenChannel._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 ((args.options != null) && (args.options.onError != null)) {
args.options.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:_listenChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
trace("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
}
_listenChannel._callbacks[_listenChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_listenChannel._nextcallbackID++;
}
static function urlOptions() {
var _local5 = {};
var _local6;
if (_root._url.indexOf("mochiad_options") != -1) {
var _local2 = (_root._url.indexOf("mochiad_options") + "mochiad_options".length) + 1;
_local6 = _root._url.substr(_local2, _root._url.length);
} else if (_root.mochiad_options) {
_local6 = _root.mochiad_options;
}
if (_local6) {
var _local4 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2].split("=");
_local5[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local5);
}
static function warnID(bid, leaderboard) {
bid = bid.toLowerCase();
if (bid.length != 16) {
trace(("WARNING: " + (leaderboard ? "board" : "game")) + " ID is not the appropriate length");
return(undefined);
}
if (bid == "1e113c7239048b3f") {
if (leaderboard) {
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
}
return(undefined);
}
if (bid == "84993a1de4031cd8") {
if (leaderboard) {
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
}
return(undefined);
}
var _local1 = 0;
while (_local1 < bid.length) {
switch (bid.charAt(_local1)) {
case "0" :
case "1" :
case "2" :
case "3" :
case "4" :
case "5" :
case "6" :
case "7" :
case "8" :
case "9" :
case "a" :
case "b" :
case "c" :
case "d" :
case "e" :
case "f" :
break;
default :
trace("WARNING: Board ID contains illegal characters: " + bid);
return(undefined);
}
_local1++;
}
}
static function addLinkEvent(url, burl, btn, onClick) {
var timeout = 1500;
var t0 = getTimer();
var _local2 = new Object();
_local2.mav = getVersion();
_local2.swfv = btn.getSWFVersion() || 6;
_local2.swfurl = btn._url;
_local2.fv = System.capabilities.version;
_local2.os = System.capabilities.os;
_local2.lang = System.capabilities.language;
_local2.scres = (System.capabilities.screenResolutionX + "x") + System.capabilities.screenResolutionY;
var s = "?";
var _local3 = 0;
for (var _local6 in _local2) {
if (_local3 != 0) {
s = s + "&";
}
_local3++;
s = ((s + _local6) + "=") + escape(_local2[_local6]);
}
if (!(netupAttempted || (_connected))) {
var ping = btn.createEmptyMovieClip("ping", 777);
var _local7 = btn.createEmptyMovieClip("nettest", 778);
netupAttempted = true;
ping.loadMovie("http://x.mochiads.com/linkping.swf?t=" + getTimer());
_local7.onEnterFrame = function () {
if ((ping._totalframes > 0) && (ping._totalframes == ping._framesloaded)) {
delete this.onEnterFrame;
} else if ((getTimer() - t0) > timeout) {
delete this.onEnterFrame;
mochi.as2.MochiServices.netup = false;
}
};
}
var _local4 = btn.createEmptyMovieClip("clk", 1001);
_local4._alpha = 0;
_local4.beginFill(1044735);
_local4.moveTo(0, 0);
_local4.lineTo(0, btn._height);
_local4.lineTo(btn._width, btn._height);
_local4.lineTo(btn._width, 0);
_local4.lineTo(0, 0);
_local4.endFill();
_local4.onRelease = function () {
if (mochi.as2.MochiServices.netup) {
getURL (url + s, "_blank");
} else {
getURL (burl, "_blank");
}
if (onClick != undefined) {
onClick();
}
};
}
static function setContainer(clip) {
}
static function stayOnTop(clip) {
}
static var _servURL = "http://www.mochiads.com/static/lib/services/";
static var _services = "services.swf";
static var _mochiLC = "MochiLC.swf";
static var _listenChannelName = "__ms_";
static var _connecting = false;
static var _connected = false;
static var netup = true;
static var netupAttempted = false;
static var servicesSync = new mochi.as2.MochiSync();
}
Symbol 305 MovieClip [__Packages.mochi.as2.MochiEventDispatcher] Frame 0
class mochi.as2.MochiEventDispatcher
{
var eventTable;
function MochiEventDispatcher () {
eventTable = {};
}
function buildDelegate(thisObject, thatObject) {
var _local2 = {thisObject:thisObject, thatObject:thatObject};
if (thatObject != undefined) {
var funct = ((typeof(thatObject) == "string") ? (thisObject[thatObject]) : (thatObject));
_local2.delegate = function (args) {
funct.call(thisObject, args);
};
} else {
_local2.delegate = thisObject;
}
return(_local2);
}
function compareDelegate(d_A, d_B) {
if ((d_A.thisObject != d_B.thisObject) || (d_A.thatObject != d_B.thatObject)) {
return(false);
}
return(true);
}
function addEventListener(event, thisObject, thatObject) {
removeEventListener(event, thisObject, thatObject);
eventTable[event].push(buildDelegate(thisObject, thatObject));
}
function removeEventListener(event, thisObject, thatObject) {
var _local3 = buildDelegate(thisObject, thatObject);
if (eventTable[event] == undefined) {
eventTable[event] = [];
return(undefined);
}
for (var _local4 in eventTable[event]) {
if (!compareDelegate(eventTable[event][_local4], _local3)) {
continue;
}
eventTable[event].splice(Number(_local4), 1);
}
}
function triggerEvent(event, args) {
if (eventTable[event] == undefined) {
return(undefined);
}
for (var _local4 in eventTable[event]) {
eventTable[event][_local4].delegate(args);
}
}
}
Symbol 306 MovieClip [__Packages.mochi.as2.MochiEvents] Frame 0
class mochi.as2.MochiEvents
{
static var gameStart, levelStart;
function MochiEvents () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function startSession(achievementID) {
mochi.as2.MochiServices.send("events_beginSession", {achievementID:achievementID}, null, null);
}
static function trigger(kind, obj) {
if (obj == undefined) {
obj = {};
} else if (obj.kind != undefined) {
trace("WARNING: optional arguements package contains key 'id', it will be overwritten");
obj.kind = kind;
}
mochi.as2.MochiServices.send("events_triggerEvent", {eventObject:obj}, null, null);
}
static function setNotifications(clip, style) {
var _local2 = {};
for (var _local3 in style) {
_local2[_local3] = style[_local3];
}
_local2.clip = clip;
mochi.as2.MochiServices.send("events_setNotifications", _local2, null, null);
}
static function addEventListener(eventType, thisObject, thatObject) {
_dispatcher.addEventListener(eventType, thisObject, thatObject);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, thisObject, thatObject) {
_dispatcher.removeEventListener(eventType, thisObject, thatObject);
}
static function startGame() {
gameStart = new Date().getTime();
trigger("start_game");
}
static function endGame() {
var _local1 = new Date().getTime() - gameStart;
trigger("end_game", {time:_local1});
}
static function startLevel() {
levelStart = new Date().getTime();
trigger("start_level");
}
static function endLevel() {
var _local1 = new Date().getTime() - levelStart;
trigger("end_level", {time:_local1});
}
static var ACHIEVEMENT_RECEIVED = "AchievementReceived";
static var ALIGN_TOP_LEFT = "ALIGN_TL";
static var ALIGN_TOP = "ALIGN_T";
static var ALIGN_TOP_RIGHT = "ALIGN_TR";
static var ALIGN_LEFT = "ALIGN_L";
static var ALIGN_CENTER = "ALIGN_C";
static var ALIGN_RIGHT = "ALIGN_R";
static var ALIGN_BOTTOM_LEFT = "ALIGN_BL";
static var ALIGN_BOTTOM = "ALIGN_B";
static var ALIGN_BOTTOM_RIGHT = "ALIGN_BR";
static var FORMAT_SHORT = "ShortForm";
static var FORMAT_LONG = "LongForm";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 307 MovieClip [__Packages.mochi.as2.MochiSocial] Frame 0
class mochi.as2.MochiSocial
{
function MochiSocial () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showLoginWidget(options) {
mochi.as2.MochiServices.setContainer();
mochi.as2.MochiServices.stayOnTop();
mochi.as2.MochiServices.send("coins_showLoginWidget", {options:options});
}
static function hideLoginWidget() {
mochi.as2.MochiServices.send("coins_hideLoginWidget");
}
static function requestLogin() {
mochi.as2.MochiServices.send("coins_requestLogin");
}
static function getUserInfo() {
mochi.as2.MochiServices.send("coins_getUserInfo");
}
static function saveUserProperties(properties) {
mochi.as2.MochiServices.send("coins_saveUserProperties", properties);
}
static function addEventListener(eventType, delegate) {
_dispatcher.addEventListener(eventType, delegate);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, delegate) {
_dispatcher.removeEventListener(eventType, delegate);
}
static var LOGGED_IN = "LoggedIn";
static var LOGGED_OUT = "LoggedOut";
static var LOGIN_SHOW = "LoginShow";
static var LOGIN_HIDE = "LoginHide";
static var LOGIN_SHOWN = "LoginShown";
static var PROFILE_SHOW = "ProfileShow";
static var PROFILE_HIDE = "ProfileHide";
static var PROPERTIES_SAVED = "PropertySaved";
static var WIDGET_LOADED = "WidgetLoaded";
static var USER_INFO = "UserInfo";
static var ERROR = "Error";
static var IO_ERROR = "IOError";
static var NO_USER = "NoUser";
static var PROPERTIES_SIZE = "PropertiesSize";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 308 MovieClip [__Packages.mochi.as2.MochiScores] Frame 0
class mochi.as2.MochiScores
{
static var boardID, onClose, onError;
function MochiScores () {
}
static function setBoardID(boardID) {
mochi.as2.MochiServices.warnID(boardID, true);
mochi.as2.MochiScores.boardID = boardID;
mochi.as2.MochiServices.send("scores_setBoardID", {boardID:boardID});
}
static function showLeaderboard(options) {
options.clip = mochi.as2.MochiServices.clip;
if ((options.clip != mochi.as2.MochiServices.__get__clip()) || (mochi.as2.MochiServices.__get__childClip()._target == undefined)) {
mochi.as2.MochiServices.disconnect();
trace("WARNING! This application is attempting to connect to MochiServices inside a showLeaderboard call!");
trace("make sure MochiServices.connect is called as early in the application runtime as possible.");
mochi.as2.MochiServices.connect(mochi.as2.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 (options.score instanceof TextField) {
if (options.score.text != undefined) {
options.score = options.score.text;
}
} else if (options.score instanceof mochi.as2.MochiDigits) {
options.score = options.score.value;
}
var _local1 = Number(options.score);
if (isNaN(_local1)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'");
} else if ((_local1 == Number.NEGATIVE_INFINITY) || (_local1 == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(_local1) != _local1) {
trace(("WARNING: Submitted score '" + options.score) + "' will be truncated");
}
options.score = _local1;
}
}
if (options.onDisplay != null) {
options.onDisplay();
} else {
mochi.as2.MochiServices.__get__clip().stop();
}
if (options.onClose != null) {
onClose = options.onClose;
} else {
onClose = function () {
mochi.as2.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.as2.MochiServices.warnID(options.boardID, true);
trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal");
mochi.as2.MochiServices.send("scores_showLeaderboard", {options:options}, null, doClose);
}
static function closeLeaderboard() {
mochi.as2.MochiServices.send("scores_closeLeaderboard");
}
static function getPlayerInfo(callbackObj, callbackMethod) {
mochi.as2.MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
static function submit(score, name, callbackObj, callbackMethod) {
score = Number(score);
if (isNaN(score)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'");
} else if ((score == Number.NEGATIVE_INFINITY) || (score == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(score) != score) {
trace(("WARNING: Submitted score '" + String(score)) + "' will be truncated");
}
score = Number(score);
}
mochi.as2.MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
static function requestList(callbackObj, callbackMethod) {
mochi.as2.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 309 MovieClip [__Packages.mochi.as2.MochiDigits] Frame 0
class mochi.as2.MochiDigits
{
var Encoder, Fragment, Sibling;
function MochiDigits (digit, index) {
Encoder = 0;
setValue(digit, index);
}
function get value() {
return(Number(toString()));
}
function set value(v) {
setValue(v);
//return(value);
}
function addValue(v) {
value = value + v;
}
function setValue(digit, index) {
var _local3 = digit.toString();
if ((index == undefined) || (isNaN(index))) {
index = 0;
}
Fragment = _local3.charCodeAt(index++) ^ Encoder;
if (index < _local3.length) {
Sibling = new mochi.as2.MochiDigits(digit, index);
} else {
Sibling = null;
}
reencode();
}
function reencode() {
var _local2 = int(2147483647 * Math.random());
Fragment = Fragment ^ (_local2 ^ Encoder);
Encoder = _local2;
}
function toString() {
var _local2 = String.fromCharCode(Fragment ^ Encoder);
return(((Sibling != null) ? (_local2.concat(Sibling.toString())) : (_local2)));
}
}
Symbol 310 MovieClip [__Packages.Main] Frame 0
class Main
{
var screen, controllCenter;
function Main () {
newGame();
screen = new Screen();
}
function newGame() {
controllCenter = new ControllCenter();
ControllCenter.run();
}
}
Symbol 311 MovieClip [__Packages.ControllCenter] Frame 0
class ControllCenter
{
static var intervalTime, intervalTime_addFish, pause, fishArray, LEVEL_TIME, current_level_time, level, score, caughtCounter, caughtTarget, tools_timer_box, tools_timer_hooker, box, setIntervalId, setIntervalId_addFish, timeBonus, hooker;
function ControllCenter () {
intervalTime = 100;
intervalTime_addFish = 1000;
pause = true;
fishArray = new Array();
LEVEL_TIME = 50;
current_level_time = LEVEL_TIME;
level = 1;
score = 0;
caughtCounter = 0;
caughtTarget = 5;
tools_timer_box = 0;
tools_timer_hooker = 0;
box = _root.Container.Box;
initHooker();
loadEvent();
}
function loadEvent() {
setIntervalId = setInterval(this, "process", intervalTime);
setIntervalId_addFish = setInterval(this, "addFish", intervalTime_addFish);
}
function addFish() {
if (pause) {
return(undefined);
}
if ((current_level_time--) <= 0) {
gameover();
} else if (caughtCounter >= caughtTarget) {
trace("get time bonus");
timeBonus = score;
addScore(current_level_time);
timeBonus = score - timeBonus;
Screen.updateTimeBonus();
levelUp();
Screen.updateLevel();
Screen.showNextLevel();
Pause();
if (level == 11) {
gameCompleted();
}
}
Screen.updateLevelTime();
if (fishArray.length < MAX_FISH_NUMBER) {
fishArray.push(new Fish());
}
if ((--tools_timer_box) == 0) {
normalBox();
}
if ((--tools_timer_hooker) == 0) {
normalHooker();
}
Screen.updateTimeBar(current_level_time, LEVEL_TIME);
}
function initHooker() {
hooker = new Hooker();
}
static function removeAll() {
hooker.unloadMc();
var _local1 = fishArray.length - 1;
while (_local1 >= 0) {
if (fishArray[_local1] != null) {
fishArray[_local1].unloadMc();
fishArray.pop();
}
_local1--;
}
clearInterval(setIntervalId_addFish);
clearInterval(setIntervalId);
}
static function run() {
pause = false;
Hooker.pause = false;
Fish.pause = false;
}
static function Pause() {
pause = true;
Hooker.pause = true;
Fish.pause = true;
}
function levelUp() {
if (LEVEL_TIME < LEVEL_TIME_MAX) {
LEVEL_TIME = LEVEL_TIME + 10;
}
current_level_time = LEVEL_TIME;
level++;
caughtCounter = 0;
if (caughtTarget < MAX_TARGET) {
caughtTarget = caughtTarget + 5;
}
Screen.updateTarget();
Screen.updateCaughtCounter();
Fish.moreFish();
}
static function addScore(bonus) {
score = score + 100;
var _local1 = 0;
while (_local1 < bonus) {
score = score + 100;
_local1++;
}
Screen.updateScore();
}
function gameover() {
removeAll();
Screen.gotoGameover();
}
function gameCompleted() {
removeAll();
Screen.gotoGameCompleted();
}
function process() {
if (pause) {
return(undefined);
}
var _local1 = 0;
while (_local1 < fishArray.length) {
if (fishArray[_local1].mc == null) {
fishArray.splice(_local1, 1);
_local1--;
} else if ((!hooker.isCatching) && (hooker.isFishing())) {
var _local2 = fishArray[_local1];
if (_local2.mc.hitTest(hooker.hook)) {
hooker.catchFish(_local2.getColor());
_local2.remove();
}
}
_local1++;
}
if (hooker.isCatching && (hooker.isFishing())) {
if (box.hitTest(hooker.hook)) {
hooker.releaseFish();
box.play();
switch (hooker.catchedFishColor) {
case 1 :
subCurrentLevelTime();
break;
case 2 :
addScore(0);
caughtCounter++;
break;
case 3 :
addScore(0);
caughtCounter++;
break;
case 4 :
addScore(0);
caughtCounter++;
break;
case 5 :
addScore(0);
caughtCounter++;
break;
case 6 :
addScore(0);
caughtCounter++;
break;
case 7 :
addScore(2);
caughtCounter++;
break;
case 8 :
addScore(1);
caughtCounter++;
break;
case 9 :
addScore(1);
caughtCounter++;
break;
case 10 :
addScore(2);
caughtCounter++;
break;
case 11 :
addScore(1);
caughtCounter++;
break;
case 12 :
addScore(3);
caughtCounter++;
break;
case 13 :
addScore(0);
caughtCounter++;
break;
case 14 :
addScore(4);
caughtCounter++;
break;
case Fish.MAX_COLOR + 1 :
addCurrentLevelTime();
break;
case Fish.MAX_COLOR + 2 :
biggerBox();
break;
case Fish.MAX_COLOR + 3 :
biggerHooker();
}
Screen.updateCaughtCounter();
}
}
}
static function addCurrentLevelTime() {
current_level_time = current_level_time + 10;
if (current_level_time > LEVEL_TIME_MAX) {
current_level_time = LEVEL_TIME_MAX;
}
}
static function subCurrentLevelTime() {
current_level_time = current_level_time - 10;
if (current_level_time < 0) {
current_level_time = 0;
}
}
static function biggerBox() {
if (tools_timer_box < 0) {
Screen.biggerBox();
}
tools_timer_box = TOOLS_TIMER;
}
static function normalBox() {
Screen.normalBox();
}
static function biggerHooker() {
if (tools_timer_hooker < 0) {
hooker.biggerHooker();
}
tools_timer_hooker = TOOLS_TIMER;
}
static function normalHooker() {
hooker.normalHooker();
}
static var MAX_FISH_NUMBER = 8;
static var TOOLS_TIMER = 16;
static var LEVEL_TIME_MAX = 300;
static var MAX_TARGET = 200;
}
Symbol 312 MovieClip [__Packages.McLoader] Frame 0
class McLoader
{
var srcName, orgWidth, direction;
function McLoader (parentMc, _srcName, posX, posY, newName) {
if (Utils.isNull(parentMc)) {
trace("McLoader: parentMc is null");
return;
}
if (Utils.isNull(_srcName)) {
trace("McLoader: srcName is null");
return;
}
if (Utils.isNull(posX)) {
posX = 0;
}
if (Utils.isNull(posY)) {
posY = 0;
}
if (Utils.isNull(newName)) {
newName = _srcName + (defaultNewNameCounter++);
}
srcName = _srcName;
loadMc(parentMc, srcName, posX, posY, newName);
}
function unloadMc() {
removeMovieClip(mc);
mc = null;
}
function loadMc(parentMc, srcName, posX, posY, newName) {
parentMc.attachMovie(srcName, newName, parentMc.getNextHighestDepth(), {_x:posX, _y:posY});
mc = parentMc[newName];
orgWidth = mc._width;
}
function setX(__x) {
if (Utils.isNull(__x)) {
trace("McLoader: __x is null");
__x = 0;
}
mc._x = __x;
}
function setY(__y) {
if (Utils.isNull(__y)) {
trace("McLoader: __y is null");
__y = 0;
}
mc._y = __y;
}
function getX() {
return(mc._x);
}
function getY() {
return(mc._y);
}
function setWidth(_w) {
if (Utils.isNull(_w)) {
trace("McLoader: _w is null");
_w = 0;
}
mc._width = _w;
}
function setHeight(_h) {
if (Utils.isNull(_h)) {
trace("McLoader: _h is null");
_h = 0;
}
mc._height = _h;
}
function getWidth() {
return(mc._width);
}
function getOrgWidth() {
return(orgWidth);
}
function getHeight() {
return(mc._height);
}
function getDirection() {
return(direction);
}
function reverseMc() {
mc._xscale = mc._xscale * -1;
direction = direction * -1;
}
function getState() {
return(mc.state);
}
function setGlobalPoint(_p) {
mc._parent.globalToLocal(_p);
mc._x = _p.x;
mc._y = _p.y;
}
function getGlobalPoint() {
var _local2 = new flash.geom.Point(mc._x, mc._y);
mc._parent.localToGlobal(_local2);
return(_local2);
}
function setGlobalX(__x) {
var _local2 = new flash.geom.Point(__x, 0);
mc._parent.globalToLocal(_local2);
mc._x = _local2.x;
}
function getGlobalX() {
var _local2 = new flash.geom.Point(mc._x, mc._y);
mc._parent.localToGlobal(_local2);
return(_local2.x);
}
var mc = null;
static var DIRECTION_RIGHT = 1;
static var DIRECTION_LEFT = -1;
static var defaultNewNameCounter = 0;
}
Symbol 313 MovieClip [__Packages.Utils] Frame 0
class Utils
{
function Utils () {
}
static function isNull(obj) {
if ((typeof(obj) == "undefined") || (obj == null)) {
return(true);
}
return(false);
}
static function getRandom(max) {
return(Math.round(((max * Math.random()) * 100) / 100));
}
static function submitScore(_score) {
if (_root.username == undefined) {
_root.username = "Guest";
}
sendScore(_score);
}
static function sendScore(_score) {
if (_score < 0) {
_score = 0;
}
var _local2 = new LoadVars();
var _local3 = new LoadVars();
_local2.user_id = _root.user_id;
_local2.game_id = _root.game_id;
_local2.score = _score;
_local3.onLoad = function (success) {
if (success) {
}
};
if (_root.username == undefined) {
_local2.sendAndLoad((("addscore.php?username=Guset&game_id=" + _root.game_id) + "&score=") + _score, _local3);
} else {
_local2.sendAndLoad((((("addscore.php?username=" + _root.username) + "&game_id=") + _root.game_id) + "&score=") + _score, _local3);
}
}
}
Symbol 314 MovieClip [__Packages.Hooker] Frame 0
class Hooker extends McLoader
{
static var pause;
var mc, pole, hook, isCatching, catchedFishColor;
function Hooker () {
super(_root.Container, "Poler");
mc._x = 382.9;
mc._y = 99.7;
pause = true;
pole = mc.Pole;
hook = mc.Pole.Hook;
isCatching = false;
loadEvent();
}
function biggerHooker() {
mc._width = mc._width * 1.5;
mc._height = mc._height * 1.5;
}
function normalHooker() {
mc._width = mc._width / 1.5;
mc._height = mc._height / 1.5;
}
function loadEvent() {
var ins = this;
mc.onMouseDown = function () {
if (!Hooker.pause) {
ins.shoot();
}
};
}
function catchFish(_color) {
catchedFishColor = _color;
trace("catch fish " + catchedFishColor);
hook.gotoAndStop("catching");
hook.Fish.gotoAndStop(catchedFishColor);
isCatching = true;
goBack();
}
function isFishing() {
if (pole._currentframe == 1) {
if (!isCatching) {
hook.gotoAndStop("normal");
}
return(false);
}
return(true);
}
function shoot() {
trace("shoot");
pole.play();
if (!isCatching) {
hook.gotoAndStop("open");
}
mc.stop();
}
function releaseFish() {
hook.gotoAndStop("normal");
isCatching = false;
goBack();
}
function goBack() {
var _local2 = pole._currentframe;
if (_local2 < (pole._totalframes / 2)) {
pole.gotoAndPlay(pole._totalframes - _local2);
}
}
}
Symbol 315 MovieClip [__Packages.Screen] Frame 0
class Screen
{
function Screen () {
init();
}
function init() {
_root.screen_pause._visible = false;
_root.screen_nextLevel._visible = false;
updateTarget();
updateLevel();
updateScore();
updateLevelTime();
updateCaughtCounter();
loadEvent();
}
function loadEvent() {
var _local4 = this;
_root.btn_pause.onRelease = function () {
if (_root.screen_pause._visible) {
_root.screen_pause._visible = false;
ControllCenter.run();
} else {
_root.screen_pause._visible = true;
ControllCenter.Pause();
}
};
_root.screen_pause.btn_continue.onRelease = function () {
_root.screen_pause._visible = false;
ControllCenter.run();
};
_root.screen_nextLevel.btn_nextLevel.onRelease = function () {
_root.screen_nextLevel._visible = false;
ControllCenter.run();
};
_root.btn_menu.onRelease = function () {
ControllCenter.removeAll();
_root.gotoAndStop("menu");
};
_root.btn_sound.onRelease = function () {
var _local2 = new Sound();
if (this._currentframe == 1) {
this.gotoAndStop(2);
_local2.setVolume(0);
} else {
this.gotoAndStop(1);
_local2.setVolume(100);
}
};
}
static function gotoGameover() {
_root.gotoAndStop("gameover");
_root.completed = false;
}
static function gotoGameCompleted() {
_root.gotoAndStop("gameover");
_root.completed = true;
}
static function showNextLevel() {
_root.screen_nextLevel._visible = true;
_root.screen_nextLevel.text_level = ControllCenter.level - 1;
_root.screen_nextLevel.text_target = ControllCenter.caughtTarget;
ramdomBg();
}
static function updateLevel() {
_root.text_level = ControllCenter.level;
}
static function updateLevelTime() {
_root.text_levelTime = ControllCenter.current_level_time;
}
static function updateScore() {
_root.text_score = ControllCenter.score;
}
static function updateTarget() {
_root.text_target = ControllCenter.caughtTarget;
}
static function updateCaughtCounter() {
_root.text_caughtCounter = ControllCenter.caughtCounter;
}
static function biggerBox() {
_root.Container.Box._width = _root.Container.Box._width * 1.5;
_root.Container.Box._height = _root.Container.Box._height * 1.5;
}
static function normalBox() {
_root.Container.Box._width = _root.Container.Box._width / 1.5;
_root.Container.Box._height = _root.Container.Box._height / 1.5;
}
static function updateTimeBar(time, maxTime) {
var _local2 = Math.round((time / maxTime) * 100);
_root.timeBar.percentMc.gotoAndStop(100 - _local2);
}
static function ramdomBg() {
_root.Container.bg.gotoAndStop(Utils.getRandom(_root.Container.bg.totalFrames - 1) + 1);
if ((ControllCenter.level % 3) == 0) {
if (_root.Container._currentframe != _root.Container.totalFrames) {
_root.Container.nextFrame();
} else {
_root.Container.gotoAndStop(1);
}
}
}
static function updateTimeBonus() {
_root.screen_nextLevel.text_timeBonus = ControllCenter.timeBonus;
}
}
Symbol 316 MovieClip [__Packages.Fish] Frame 0
class Fish extends McLoader
{
static var pause;
var color, speed, mc, reverseMc, unloadMc;
function Fish () {
super(_root.Container, "Fish");
if (Utils.getRandom(5) == 2) {
setColor((MAX_COLOR + Utils.getRandom(MAX_TOOLS - 1)) + 1);
} else {
setColor(Utils.getRandom(TotalColor - 1) + 1);
}
switch (color) {
case 5 :
speed = SPEED_SLOW;
break;
case 10 :
case 11 :
speed = SPEED_FAST;
break;
case 12 :
speed = SPEED_VERY_FAST;
break;
case 9 :
case 13 :
speed = SPEED_SLOW;
break;
default :
speed = SPEED_NORMAL;
}
var _local4 = Utils.getRandom(1);
if (_local4 == 0) {
mc._x = mc._parent.Pool._width + mc._width;
speed = -speed;
} else {
reverseMc();
mc._x = -mc._width;
}
mc._y = Math.round(Math.random() * (mc._parent.Pool._height - mc._height)) + mc._parent.Pool._y;
pause = false;
loadEvent();
}
static function moreFish() {
if (TotalColor < MAX_COLOR) {
TotalColor++;
}
}
function loadEvent() {
var ins = this;
mc.onEnterFrame = function () {
if (!Fish.pause) {
ins.move();
}
};
}
function move() {
mc._x = mc._x + speed;
if ((mc._x < (-mc._width)) || (mc._x > (mc._parent.Pool._width + mc._width))) {
remove();
}
}
function remove() {
mc.onEnterFrame = null;
unloadMc();
}
function setColor(_color) {
color = _color;
mc.gotoAndStop(_color);
}
function getColor() {
return(color);
}
static var pool = _root.Container.Pool;
static var SPEED_NORMAL = 3;
static var SPEED_FAST = 5;
static var SPEED_VERY_FAST = 8;
static var SPEED_SLOW = 1;
static var MAX_COLOR = 14;
static var TotalColor = 6;
static var MAX_TOOLS = 3;
}
Symbol 12 Button
on (release) {
getURL ("http://www.benz.be", "_blank");
}
Symbol 18 MovieClip Frame 95
stop();
Symbol 20 MovieClip Frame 158
stop();
_root.play();
Symbol 61 MovieClip [Fish] Frame 1
stop();
Symbol 83 MovieClip Frame 1
stop();
Symbol 86 MovieClip Frame 1
stop();
Symbol 86 MovieClip Frame 10
stop();
Symbol 86 MovieClip Frame 20
stop();
Symbol 88 MovieClip Frame 1
stop();
this._parent.play();
Symbol 148 Button
on (release) {
var o = {n:[1, 14, 6, 15, 8, 7, 5, 10, 11, 2, 5, 5, 5, 9, 9, 6], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var boardID = o.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:boardID});
}
Symbol 149 Button
on (release) {
_root.gotoAndStop("howTo");
}
Symbol 150 Button
on (release) {
getURL ("http://www.benz.be/en", "_blank");
}
Symbol 151 Button
on (release) {
_root.gotoAndStop("game");
}
Symbol 152 MovieClip Frame 49
stop();
Symbol 154 Button
on (release) {
getURL ("http://www.benz.be/en", "_blank");
}
Symbol 190 MovieClip Frame 1
stop();
Symbol 208 MovieClip Frame 12
stop();
Symbol 214 MovieClip Frame 1
stop();
Symbol 218 MovieClip Frame 1
stop();
Symbol 229 MovieClip Frame 1
stop();
Symbol 260 MovieClip Frame 1
stop();
Symbol 260 MovieClip Frame 100
stop();
Symbol 267 Button
on (release) {
getURL ("http://www.benz.be/en", "_blank");
}
Symbol 292 Button
on (release) {
_root.gotoAndPlay("menu");
}
Symbol 295 Button
on (release) {
var o = {n:[1, 14, 6, 15, 8, 7, 5, 10, 11, 2, 5, 5, 5, 9, 9, 6], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var boardID = o.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:boardID, score:ControllCenter.score});
}