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);
}
stop();
urlStart = _url.indexOf("://") + 3;
urlEnd = _url.indexOf("/", urlStart);
domain = _url.substring(urlStart, urlEnd);
LastDot = domain.lastIndexOf(".") - 1;
domEnd = domain.lastIndexOf(".", LastDot) + 1;
domainpl = domain.substring(domEnd, domain.length);
_root.nameT = "";
var MENU = new ContextMenu();
MENU.hideBuiltInItems();
MENU.builtInItems.quality = true;
_root.menu = MENU;
_root.onEnterFrame = function () {
var _local2 = Math.floor((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
loading.text = _local2;
if (_local2 == 100) {
play();
_root.onEnterFrame = null;
}
};
mochi.as2.MochiServices.connect("a2ecb4d06cbbf3a7");
__com_mochibot__("0cab06bf", this, 10301, true);
Frame 3
stop();
Frame 4
stop();
Instance of Symbol 135 MovieClip in Frame 4
on (release) {
getURL (("http://www.4v4.com/?utm_medium=brandedgames_external&utm_campaign=halloween-runner&utm_source=" + _root.domainpl) + "&utm_content=ingame", "_blank");
}
Frame 5
_root.stop();
Frame 54
stop();
Frame 56
function scoreRes(t) {
if (t) {
_root.endM.score.gotoAndStop("suc");
} else {
_root.endM.score.gotoAndStop("fail");
}
}
function gameOver() {
_root.g.GOMC.play();
}
function gameOverComplete() {
play();
scoreMC.removeMovieClip();
GO = true;
}
function limit(num, min, max) {
return(Math.max(min, Math.min(num, max)));
}
function newSol() {
solNumSt++;
solNum++;
var _local1 = g.solHolder.attachMovie("solClip", "sol" + (solNumSt - 1), solNumSt - 1);
_local1.num = solNum - 1;
if (solNum > 2) {
var _local2 = solDist / (solNum - 2);
solDist = solDist + _local2;
solCenter = solCenter + (_local2 / 2);
}
_local1.targx = getSolPos(_local1.num, solDist, solNum);
_local1.dead = false;
_local1._y = solY;
_local1._x = W + 100;
_local1.onEnterFrame = solBrain;
}
function getSolPos(num, dist2, tot) {
if (tot == 1) {
return(solCenter);
}
var _local1 = dist2 / (tot - 1);
return((((-_local1) * ((tot - 1) / 2)) + (_local1 * num)) + solCenter);
}
function solBrain() {
this.targx = getSolPos(this.num, _root.solDist, _root.solNum);
this.xs = this.targx - this._x;
this.xs = limit(this.xs, -solSpeed, solSpeed);
this._x = this._x + this.xs;
}
function kill(sol) {
if ((!sol.dead) && (!_root.catnbehitted)) {
solLifes--;
if (solLifes == 0) {
sol.dead = true;
sol.play();
var _local2 = 0;
while (_local2 < solNumSt) {
var _local4 = g.solHolder["sol" + _local2];
if (_local4.num > sol.num) {
_local4.num--;
}
_local2++;
}
sol.onEnterFrame = null;
solNum--;
} else {
_root.catnbehitted = 1;
sol.gotoAndStop(2);
trace("hited");
}
il = 1;
while (il <= 3) {
_root.scoreMC["lif" + il]._visible = false;
il++;
}
il = 1;
while (il <= solLifes) {
_root.scoreMC["lif" + il]._visible = true;
il++;
}
if (solNum == 1) {
solDist = 1;
var _local2 = 0;
while (_local2 < solNumSt) {
sol = g.solHolder["sol" + _local2];
if (!sol.dead) {
solCenter = sol._x;
}
_local2++;
}
} else if (solNum == 0) {
gameOver();
}
}
}
function dropBomb(xp) {
var bomb = g.solHolder.attachMovie("bomb1", "bomb" + numBombs, numBombs + 1000);
bomb._y = -20;
bomb._x = xp;
bomb.ys = 0;
bomb.ac = true;
bomb.onEnterFrame = function () {
if (this.ac) {
bomb.ys = bomb.ys + _root.GRAV;
bomb._y = bomb._y + bomb.ys;
if (bomb._y > _root.bombGround) {
this.ac = false;
this.ys = 0;
this.play();
var _local3 = 0;
while (_local3 < _root.solNumSt) {
var _local4 = _root.g.solHolder["sol" + _local3];
if ((Math.abs(_local4._x - this._x) < bombRad) && (!_local4.dead)) {
kill(_local4);
}
_local3++;
}
}
}
};
numBombs++;
numBombs = numBombs % 250;
}
function bounceBomb() {
rd = Math.ceil(Math.random() * 2);
if (rd == 1) {
var bomb = g.solHolder.attachMovie("bomb3", "bomb" + numBombs, numBombs + 1000);
bomb._y = -20;
bomb._x = _root.W + 35;
bomb.xs = ((Math.random() * -1.6) - 0.4) * _root.bounceS;
bomb.ys = 0;
bomb.ac = true;
bomb.onEnterFrame = function () {
if (this.ac) {
((this._x < -50) ? (this.removeMovieClip()) : 0);
bomb.ys = bomb.ys + _root.GRAV;
bomb._x = bomb._x + bomb.xs;
bomb._y = bomb._y + bomb.ys;
bomb._rotation = bomb._rotation + bomb.xs;
if (bomb._y > _root.bombGround3) {
var _local3 = 0;
while (_local3 < _root.solNumSt) {
var _local4 = _root.g.solHolder["sol" + _local3];
if ((Math.abs(_local4._x - this._x) < bombRad) && (!_local4.dead)) {
kill(_local4);
this.ac = false;
this.ys = 0;
this.play();
}
_local3++;
}
if (this.ac) {
this._y = _root.bombGround3;
this.ys = this.ys * -0.975;
}
}
}
};
} else {
var bomb = g.solHolder.attachMovie("bomb4", "bomb" + numBombs, numBombs + 1000);
bomb._y = _root.bombGround3 - 35;
bomb._x = _root.W + 35;
bomb.xs = ((Math.random() * -1.6) - 0.4) * 3;
bomb.ys = 0;
bomb.ac = true;
bomb.doattack = 1;
bomb.onEnterFrame = function () {
if (this.ac) {
((this._x < -50) ? (this.removeMovieClip()) : 0);
bomb.ys = bomb.ys + _root.GRAV;
bomb._x = bomb._x + bomb.xs;
if (bomb.doattack) {
var _local3 = 0;
while (_local3 < _root.solNumSt) {
var _local4 = _root.g.solHolder["sol" + _local3];
if ((Math.abs(_local4._x - this._x) < bombRad) && (!_local4.dead)) {
kill(_local4);
this.ac = false;
this.ys = 0;
this.play();
}
_local3++;
}
if (this.ac) {
this.ys = this.ys * -0.975;
}
}
}
};
}
numBombs++;
numBombs = numBombs % 250;
}
function curveBomb() {
var bomb = g.solHolder.attachMovie("bomb2", "bomb" + numBombs, numBombs + 1000);
bomb._y = 230;
bomb._x = _root.W + 35;
bomb.xs = ((Math.random() * -1.6) - 0.4) * 3;
bomb.ys = 0;
bomb.ac = true;
bomb.acf = true;
bomb.acd = true;
bomb.onEnterFrame = function () {
if (this.ac) {
((this._x > (_root.W + 50)) ? (this.removeMovieClip()) : 0);
((this._x < 50) ? ((bomb.acf = false)) : 0);
bomb.ys = bomb.ys + 0.75;
if (bomb.acf) {
bomb._x = bomb._x + bomb.xs;
} else {
bomb._x = bomb._x - bomb.xs;
this.gotoAndStop(2);
}
if (bomb._y < 230) {
bomb.acd = true;
}
if (bomb.acd) {
bomb._y = bomb._y + 5;
} else {
bomb._y = bomb._y - 5;
}
if (bomb._y > _root.bombGround2) {
var _local3 = 0;
while (_local3 < _root.solNumSt) {
var _local4 = _root.g.solHolder["sol" + _local3];
if ((Math.abs(_local4._x - this._x) < bombRad) && (!_local4.dead)) {
kill(_local4);
this.ac = false;
this.ys = 0;
this.gotoAndStop(3);
}
_local3++;
}
if (this.ac) {
this._y = _root.bombGround2;
this.ys = this.ys * -0.975;
bomb.acd = false;
}
}
}
};
numBombs++;
numBombs = numBombs % 250;
}
stop();
var GO = false;
var GRAV = 0.75;
var W = 620;
var H = 400;
var Wlim = 200;
var Wlim2 = 45;
var numBombs = 0;
var bombGround = 340;
var bombGround = 340;
var bombGround3 = 360;
var bombGround2 = 330;
var bombRad = 40;
var bounceS = 4;
var bounceS2 = 1;
var solNumSt = 1;
var solLifes = 3;
var solNum = solNumSt;
var maxDist = (W - (Wlim / 2));
var minDist = 50;
var solDist = (minDist * solNum);
var solCenter = (W / 2);
var solY = 330;
var solSpeed = 12;
var distSpeed = 15;
var centSpeed = 8;
var nextBomb1 = 145;
var nextBomb3 = 350;
var nextBomb2 = 450;
var nextSol = 500;
var nextSolC = nextSol;
var f = 0;
var score = 0;
var gameOverC = -1;
var s = false;
var k = false;
g.swapDepths(5);
scoreMC.swapDepths(10);
_root.onMouseDown = function () {
};
_root.onEnterFrame = function () {
if (!s) {
s = true;
g.gReady.play();
}
if (GO) {
score = Math.round(score);
var _local2 = 0;
while (_local2 < solNumSt) {
var _local3 = g.solHolder["sol" + _local2];
if (_local3) {
kill(_local3);
}
_local2++;
}
} else {
score = score + (solNum + ((100 + solDist) / (W + 100)));
var _local5 = 5 - String(Math.round(score)).length;
var _local4 = "";
var _local2 = 0;
while (_local2 < _local5) {
_local4 = _local4 + "0";
_local2++;
}
_root.scoreMC.score_txt.text = ("Score: " + _local4) + Math.round(score);
f = f + 0.05;
gameOverC--;
if (gameOverC > -1) {
nextSolC = 1;
if (gameOverC == 0) {
gameOverComplete();
}
}
nextBomb1--;
nextBomb3--;
nextBomb2--;
nextSolC--;
if (nextBomb1 < 0) {
dropBomb(Math.random() * W);
nextBomb1 = ((Math.random() * 0.5) + 0.5) * (2500000 / ((20000 + (f * f)) * 1.7));
}
if (nextBomb2 < 0) {
curveBomb();
nextBomb2 = ((Math.random() * 0.5) + 0.5) * (10000000 / ((20000 + (f * f)) * 1.7));
}
if (nextBomb3 < 0) {
bounceBomb();
nextBomb3 = ((Math.random() * 0.5) + 0.5) * (6000000 / ((20000 + (f * f)) * 1.7));
}
if (nextSolC < 0) {
nextSolC = nextSol;
}
if (Key.isDown(38)) {
solDist = solDist + distSpeed;
}
if (Key.isDown(40)) {
solDist = solDist - distSpeed;
}
solDist = limit(solDist, minDist * (solNum - 1), maxDist);
((solNum == 1) ? ((solDist = 0)) : 0);
if (Key.isDown(37)) {
solCenter = solCenter - centSpeed;
}
if (Key.isDown(39)) {
solCenter = solCenter + centSpeed;
}
if (getSolPos(0, solDist, solNum) < Wlim2) {
solCenter = Wlim2 + (solDist / 2);
}
if (getSolPos(solNum - 1, solDist, solNum) > (W - Wlim2)) {
solCenter = (W - Wlim2) - (solDist / 2);
}
}
};
var i = 0;
while (i < solNum) {
var sol = g.solHolder.attachMovie("solClip", "sol" + i, i);
sol.num = i;
sol.targx = getSolPos(i, solDist, solNum);
sol.dead = false;
sol._y = solY;
sol._x = sol.targx + W;
sol.onEnterFrame = solBrain;
i++;
}
il = 1;
while (il <= 3) {
_root.scoreMC["lif" + il]._visible = false;
il++;
}
il = 1;
while (il <= solLifes) {
_root.scoreMC["lif" + il]._visible = true;
il++;
}
Frame 57
stop();
endM.swapDepths(100);
endM.score.score_txt.text = score;
trace("test scor");
Frame 58
gotoAndStop ("game");
endM.removeMovieClip();
Frame 59
stop();
var o = {n:[8, 6, 9, 5, 1, 11, 14, 13, 3, 12, 1, 4, 11, 10, 2, 12], 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});
Frame 60
stop();
Symbol 3 MovieClip Frame 1
_parent.doattack = 1;
Symbol 3 MovieClip Frame 55
_parent.doattack = 0;
Symbol 3 MovieClip Frame 90
_parent.doattack = 1;
Symbol 5 MovieClip Frame 16
_parent.removeMovieClip();
Symbol 6 MovieClip [bomb4] Frame 1
stop();
Symbol 6 MovieClip [bomb4] Frame 2
stop();
Symbol 13 MovieClip Frame 16
_parent.removeMovieClip();
Symbol 14 MovieClip [bomb2] Frame 1
stop();
Symbol 14 MovieClip [bomb2] Frame 2
stop();
Symbol 14 MovieClip [bomb2] Frame 3
stop();
Symbol 51 MovieClip Frame 44
_root.catnbehitted = 0;
_parent.gotoAndStop(1);
Symbol 53 MovieClip Frame 26
stop();
Symbol 54 MovieClip [solClip] Frame 1
stop();
Symbol 54 MovieClip [solClip] Frame 3
stop();
Symbol 57 MovieClip Frame 1
gotoAndStop(Math.ceil(Math.random() * 2));
Symbol 78 MovieClip Frame 23
_parent.removeMovieClip();
Symbol 79 MovieClip [bomb3] Frame 1
stop();
Symbol 79 MovieClip [bomb3] Frame 2
stop();
Symbol 85 MovieClip Frame 23
_parent.removeMovieClip();
Symbol 86 MovieClip [bomb1] Frame 1
stop();
Symbol 86 MovieClip [bomb1] Frame 2
stop();
Symbol 120 Button
on (release) {
getURL (("http://www.4v4.com/?utm_medium=brandedgames_external&utm_campaign=halloween-runner&utm_source=" + _root.domainpl) + "&utm_content=ingame", "_blank");
}
Symbol 264 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 265 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.9.1 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 "services" :
mochi.as2.MochiServices.triggerEvent(pkg.event, pkg.args);
break;
case "events" :
mochi.as2.MochiEvents.triggerEvent(pkg.event, pkg.args);
break;
case "coins" :
mochi.as2.MochiCoins.triggerEvent(pkg.event, pkg.args);
break;
case "social" :
mochi.as2.MochiSocial.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://link.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 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 var CONNECTED = "onConnected";
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 _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 266 MovieClip [__Packages.mochi.as2.MochiEvents] Frame 0
class mochi.as2.MochiEvents
{
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 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 startPlay(tag) {
if (tag == undefined) {
tag = "gameplay";
}
mochi.as2.MochiServices.send("events_setRoundID", {tag:String(tag)}, null, null);
}
static function endPlay() {
mochi.as2.MochiServices.send("events_clearRoundID", null, null, null);
}
static function trackEvent(tag, value) {
mochi.as2.MochiServices.send("events_trackEvent", {tag:tag, value:value}, null, null);
}
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 267 MovieClip [__Packages.mochi.as2.MochiCoins] Frame 0
class mochi.as2.MochiCoins
{
function MochiCoins () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showStore(options) {
mochi.as2.MochiServices.send("coins_showStore", {options:options}, null, null);
}
static function showItem(options) {
if ((options == undefined) || (typeof(options.item) != "string")) {
trace("ERROR: showItem call must pass an Object with an item key");
return(undefined);
}
mochi.as2.MochiServices.send("coins_showItem", {options:options}, null, null);
}
static function showVideo(options) {
if ((options == undefined) || (typeof(options.item) != "string")) {
trace("ERROR: showVideo call must pass an Object with an item key");
return(undefined);
}
mochi.as2.MochiServices.send("coins_showVideo", {options:options}, null, null);
}
static function getStoreItems() {
mochi.as2.MochiServices.send("coins_getStoreItems");
}
static function requestFunding(properties) {
mochi.as2.MochiServices.send("social_requestFunding", 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 STORE_SHOW = "StoreShow";
static var STORE_HIDE = "StoreHide";
static var ITEM_OWNED = "ItemOwned";
static var ITEM_NEW = "ItemNew";
static var STORE_ITEMS = "StoreItems";
static var ERROR = "Error";
static var IO_ERROR = "IOError";
static var NO_USER = "NoUser";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 268 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("social_showLoginWidget", {options:options});
}
static function hideLoginWidget() {
mochi.as2.MochiServices.send("social_hideLoginWidget");
}
static function requestLogin(properties) {
mochi.as2.MochiServices.send("social_requestLogin", properties);
}
static function getFriendsList(properties) {
mochi.as2.MochiServices.send("social_getFriendsList", properties);
}
static function postToStream(properties) {
mochi.as2.MochiServices.send("social_postToStream", properties);
}
static function inviteFriends(properties) {
mochi.as2.MochiServices.send("social_inviteFriends", properties);
}
static function requestFan(properties) {
mochi.as2.MochiServices.send("social_requestFan", properties);
}
static function saveUserProperties(properties) {
mochi.as2.MochiServices.send("social_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 FRIEND_LIST = "FriendsList";
static var PROFILE_DATA = "ProfileData";
static var GAMEPLAY_DATA = "GameplayData";
static var ACTION_CANCELED = "onCancel";
static var ACTION_COMPLETE = "onComplete";
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 269 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 270 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 123 Button
on (release) {
play();
}
Symbol 135 MovieClip Frame 211
stop();
_root.play();
Symbol 147 Button
on (release) {
gotoAndStop ("highscores");
}
Symbol 151 Button
on (release) {
soundMC.gotoAndStop("stop");
gotoAndStop ("game");
}
Symbol 154 Button
on (release) {
getURL (("http://www.4v4.com/?utm_medium=brandedgames_external&utm_campaign=halloween-runner&utm_source=" + _root.domainpl) + "&utm_content=ingame", "_blank");
}
Symbol 155 Button
on (release) {
getURL (("http://www.4v4.com/?utm_medium=brandedgames_external&utm_campaign=halloween-runner&utm_source=" + _root.domainpl) + "&utm_content=ingame", "_blank");
}
Symbol 158 Button
on (release) {
soundMC.gotoAndStop("stop");
}
Symbol 159 Button
on (release) {
soundMC.gotoAndStop("start");
}
Symbol 170 MovieClip Frame 1
stop();
Symbol 185 Button
on (release) {
getURL ("http://www.armorblog.com/", _blank);
}
Symbol 192 MovieClip Frame 1
stop();
Symbol 196 MovieClip Frame 1
stop();
Symbol 196 MovieClip Frame 188
_root.gameOverComplete();
Symbol 197 Button
on (release) {
_root.soundMC.gotoAndStop("stop");
}
Symbol 198 Button
on (release) {
_root.soundMC.gotoAndStop("start");
}
Symbol 199 Button
on (release) {
getURL (("http://www.4v4.com/?utm_medium=brandedgames_external&utm_campaign=halloween-runner&utm_source=" + _root.domainpl) + "&utm_content=ingame", "_blank");
}
Symbol 209 MovieClip Frame 1
stop();
Symbol 212 Button
on (release) {
_root.g.removeMovieClip();
_root.score.removeMovieClip();
_root.play();
}
Symbol 215 Button
on (release) {
_root.g.removeMovieClip();
_root.score.removeMovieClip();
_root.gotoAndStop("highscores");
_root.endM.removeMovieClip();
}
Symbol 220 Button
on (release) {
var nameT = _root.nameT;
var o = {n:[8, 6, 9, 5, 1, 11, 14, 13, 3, 12, 1, 4, 11, 10, 2, 12], 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:_root.score, name:nameT});
_root.g.removeMovieClip();
_root.score.removeMovieClip();
}
Symbol 244 MovieClip Frame 1
stop();
Symbol 244 MovieClip Frame 2
_root.gotoAndStop("highscores");
Symbol 246 Button
on (release) {
getURL (("http://www.4v4.com/?utm_medium=brandedgames_external&utm_campaign=halloween-runner&utm_source=" + _root.domainpl) + "&utm_content=ingame", "_blank");
}
Symbol 263 Button
on (release) {
_root.g.removeMovieClip();
_root.score.removeMovieClip();
_root.gotoAndPlay("game");
}