Frame 1
MochiAd.showPreGameAd({id:"0d81d3c3b2ab1707", res:"500x500"});
stop();
Frame 2
function play_level(level) {
player._alpha = 100;
_root.createEmptyMovieClip("field", 3);
lose_anyway = false;
number_of_mobs = ((mobs_on_stage[_root.level_to_play] + blue_mobs_on_stage[_root.level_to_play]) + yellow_mobs_on_stage[_root.level_to_play]) + purple_mobs_on_stage[_root.level_to_play];
mobs_destroyed = 0;
mobs_to_destroy = to_destroy[_root.level_to_play];
player_exploded = false;
player_started = false;
_root.collision_array = new Array();
field.attachMovie("howmany", "howmany", field.getNextHighestDepth());
field.howmany.txt.text = (("Exploded: " + mobs_destroyed) + "/") + mobs_to_destroy;
field.attachMovie("intro", "intro", field.getNextHighestDepth(), {_x:250, _y:250});
field.intro.levname.text = "Level " + (_root.level_to_play + 1);
field.intro.levnotes.text = descriptions[_root.level_to_play];
x = 1;
while (x <= number_of_mobs) {
startx = Math.random() * 500;
starty = Math.random() * 500;
if (x <= mobs_on_stage[_root.level_to_play]) {
mob = field.attachMovie("mobs", "mobs_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:startx, _y:starty});
mob.untouchable = false;
mob.inc = 0;
mob.spawn = 0;
} else if (x <= (mobs_on_stage[_root.level_to_play] + blue_mobs_on_stage[_root.level_to_play])) {
mob = field.attachMovie("blue_mobs", "mobs_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:startx, _y:starty});
mob.untouchable = true;
mob.inc = 0;
mob.spawn = 0;
} else if (x <= ((mobs_on_stage[_root.level_to_play] + blue_mobs_on_stage[_root.level_to_play]) + yellow_mobs_on_stage[_root.level_to_play])) {
mob = field.attachMovie("yellow_mobs", "mobs_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:startx, _y:starty});
mob.untouchable = false;
mob.inc = (Math.PI/4);
mob.spawn = 0;
} else {
mob = field.attachMovie("purple_mobs", "mobs_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:startx, _y:starty});
mob.untouchable = false;
mob.inc = 0;
mob.spawn = 1;
}
mob.dir = (Math.random() * 2) * Math.PI;
mob.onEnterFrame = function () {
this.xspeed = 2 * Math.cos(this.dir);
this.yspeed = 2 * Math.sin(this.dir);
this._x = this._x + this.xspeed;
this._y = this._y + this.yspeed;
if (this._x > 500) {
this._x = this._x - 500;
}
if (this._x < 0) {
this._x = this._x + 500;
}
if (this._y > 500) {
this._y = this._y - 500;
}
if (this._y < 0) {
this._y = this._y + 500;
}
for (i in _root.collision_array) {
x_pos = eval (_root.collision_array[i])._x;
y_pos = eval (_root.collision_array[i])._y;
if ((((x_pos > 500) or (y_pos > 500)) or (x_pos < 0)) or (y_pos < 0)) {
eval (_root.collision_array[i]).removeMovieClip();
_root.collision_array.splice(i, 1);
} else {
wid = eval (_root.collision_array[i])._width;
dist_x = this._x - x_pos;
dist_y = this._y - y_pos;
distance = Math.sqrt((dist_x * dist_x) + (dist_y * dist_y));
if (distance < ((this._width + wid) / 2)) {
mobs_destroyed++;
if (this.untouchable) {
lose_anyway = true;
}
field.howmany.txt.text = (("Exploded: " + mobs_destroyed) + "/") + mobs_to_destroy;
eval (_root.collision_array[i]).removeMovieClip();
if ((!this.untouchable) and (!this.spawn)) {
x = 1;
while (x <= 4) {
if (!this.inc) {
bul = field.attachMovie("mbullet", "pbullet_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:this._x, _y:this._y});
} else {
bul = field.attachMovie("ybullet", "pbullet_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:this._x, _y:this._y});
}
bul.dir = ((Math.PI * x) / 2) + this.inc;
_root.collision_array.push(bul);
bul.onEnterFrame = function () {
this._xspeed = 6 * Math.cos(this.dir);
this._yspeed = 6 * Math.sin(this.dir);
this._x = this._x + this._xspeed;
this._y = this._y + this._yspeed;
};
x++;
}
}
if (this.spawn) {
x = 1;
while (x <= 8) {
bul = field.attachMovie("purple_bullet", "bullet_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:this._x, _y:this._y});
bul.dir = (Math.PI * x) / 4;
_root.collision_array.push(bul);
bul.onEnterFrame = function () {
this._xspeed = 6 * Math.cos(this.dir);
this._yspeed = 6 * Math.sin(this.dir);
this._x = this._x + this._xspeed;
this._y = this._y + this._yspeed;
};
x++;
}
}
this.removeMovieClip();
_root.collision_array.splice(i, 1);
}
}
}
};
x++;
}
field.onMouseDown = function () {
if (player_started and (!player_exploded)) {
player_exploded = true;
x = 1;
while (x <= 4) {
bul = field.attachMovie("pbullet", "pbullet_" + field.getNextHighestDepth(), field.getNextHighestDepth(), {_x:player._x, _y:player._y});
bul.dir = (Math.PI * x) / 2;
_root.collision_array.push(bul);
bul.onEnterFrame = function () {
this._xspeed = 6 * Math.cos(this.dir);
this._yspeed = 6 * Math.sin(this.dir);
this._x = this._x + this._xspeed;
this._y = this._y + this._yspeed;
};
x++;
}
player._alpha = 25;
}
if (!player_started) {
field.intro.removeMovieClip();
player_started = true;
}
};
}
stop();
Mouse.hide();
music = new Sound(this);
music.attachSound("music");
music.start(0, 1000);
game = false;
level_to_play = 0;
_root.attachMovie("bg", "bg", 1);
_root.attachMovie("title", "title", 2);
_root.attachMovie("player", "player", 4);
var mobs_on_stage = new Array(5, 10, 15, 20, 6, 10, 7, 25, 5, 10, 0, 10, 2, 1, 10, 0, 5, 0, 25, 2, 0);
var blue_mobs_on_stage = new Array(0, 0, 0, 0, 1, 2, 6, 0, 0, 1, 15, 0, 1, 1, 0, 1, 0, 6, 0, 1, 0);
var yellow_mobs_on_stage = new Array(0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 1, 10, 1, 1, 10, 0, 5, 0, 20, 2, 0);
var purple_mobs_on_stage = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 5, 5, 1, 5, 2, 0);
var to_destroy = new Array(2, 5, 10, 15, 3, 4, 1, 24, 3, 5, 1, 18, 3, 3, 30, 1, 13, 1, 50, 5, 0);
var descriptions = new Array();
descriptions[0] = "This is the first level.\nJust move the red circle with the mouse\nand click to start the chain reaction\nand explode other cirlces\n\nClick anywhere to begin";
descriptions[1] = "If you can see this message,\nyou are on level 2.\n\nYou have to destroy as many circles as\nreported in the upper left corner to\nadvance levels\n\nClick anywhere to begin";
descriptions[2] = "Well done\n\nYou can proceed\nThis is the last time I tell you that...\n\nyou have to press mouse anywhere\nto begin";
descriptions[3] = "Ok\n\nYou managed the game.\n\nThis is the last normal stage";
descriptions[4] = "Ok\n\nLet's get things harder.\n\nYou can't touch blue circles";
descriptions[5] = "Hmmmm\n\nLet me see if you can save TWO blues";
descriptions[6] = "If your boss knew you are\ntrying to save all those blues...";
descriptions[7] = "Now a bit of mess, then you'll meet\na new circle type";
descriptions[8] = "Yellow circles explode in a different way";
descriptions[9] = "All 3 colors together";
descriptions[10] = "Feeling blue?";
descriptions[11] = "Destroy them all! (well, almost)";
descriptions[12] = "Easy?";
descriptions[13] = "What! Another circle!\nHow does it work?";
descriptions[14] = "Destroy them all! (this time 4 real)";
descriptions[15] = "It sucks, I know...\n\nBut I just did not want you\nto pass this level";
descriptions[16] = "There are 20 levels in this game\n\nBut the sequel is on its way!";
descriptions[17] = "This is so bad...";
descriptions[18] = "It's not a level.\n\nIt's a stress test!";
descriptions[19] = "One last level and...\n\nBACK AT WORK!!";
player.onEnterFrame = function () {
this._x = _root._xmouse;
this._y = _root._ymouse;
if (game) {
if (((_root.collision_array.length == 0) or (mobs_destroyed == number_of_mobs)) and player_exploded) {
if ((mobs_destroyed >= mobs_to_destroy) and (!lose_anyway)) {
_root.level_to_play++;
}
field.removeMovieClip();
if (_root.level_to_play != 20) {
play_level(_root.level_to_play);
} else {
player_exploded = false;
_root.attachMovie("congratz", "congratz", 4, {_x:250, _y:250});
game = false;
}
}
}
};
_root.onMouseDown = function () {
if (!game) {
game = true;
title.removeMovieClip();
play_level(_root.level_to_play);
}
};
Symbol 41 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.1");
}
static function showPreGameAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
showInterLevelAd(options);
}
static function showPreloaderAd(options) {
showPreGameAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local26 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local26);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local25 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local25);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb_arg) {
var _local8 = parseInt(cb_arg);
var _local4 = this._callbacks[_local8];
if (!_local4) {
return(undefined);
}
delete this._callbacks[_local8];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}
}