Frame 1
function goTo() {
getURL (_global.sponsorurl, "_blank");
}
function loggedIn(event) {
trace("Hello " + event.name);
}
function registerItem(event) {
trace((("Player owns " + event.count) + " of ") + event.id);
if (event.id == "9d848befd48668f6") {
vipskin1 = true;
}
if (event.id == "f179093d098e1a25") {
vipgenerator = true;
}
if (event.id == "23698eb6881cf880") {
vipupgr = true;
}
if (event.id == "56d18e5b1e694e5b") {
vipskin2 = true;
}
if (event.id == "4bbdd92e6d5bcbf1") {
vipmusic = true;
}
if (event.id == "0c8a25bf68c44107") {
vipskin1 = true;
vipgenerator = true;
vipupgr = true;
vipskin2 = true;
vipmusic = true;
}
}
function newItem(event) {
trace((("Player just bought " + event.count) + " of ") + event.id);
if (event.id == "9d848befd48668f6") {
vipskin1 = true;
opt.skins.lock1._visible = false;
}
if (event.id == "f179093d098e1a25") {
vipgenerator = true;
opt.butgen.gotoAndStop(2);
}
if (event.id == "23698eb6881cf880") {
vipupgr = true;
_root.initUpgr();
}
if (event.id == "56d18e5b1e694e5b") {
vipskin2 = true;
opt.skins.lock1._visible = false;
opt.skins.lock2._visible = false;
opt.skins.lock3._visible = false;
opt.skins.lock4._visible = false;
opt.skins.lock5._visible = false;
}
if (event.id == "4bbdd92e6d5bcbf1") {
vipmusic = true;
snd_music.stop();
snd_music2.start(0, 1);
}
if (event.id == "0c8a25bf68c44107") {
vipskin1 = true;
vipgenerator = true;
vipupgr = true;
vipskin2 = true;
vipmusic = true;
opt.butgen.gotoAndStop(2);
_root.initUpgr();
opt.skins.lock1._visible = false;
opt.skins.lock2._visible = false;
opt.skins.lock3._visible = false;
opt.skins.lock4._visible = false;
opt.skins.lock5._visible = false;
snd_music.stop();
snd_music2.start(0, 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);
}
var _mochiads_game_id = "8b9339de84c347e9";
mochi.as2.MochiAd.showPreGameAd({id:"8b9339de84c347e9", res:"640x480"});
mochiapi = true;
_global.sponsorurl = "http://www.mochigames.com/?utm_source=sponsored_game&utm_medium=more_games&utm_content=flying-candy&utm_campaign=sponsored_game";
_global.walkurl = "http://www.mochigames.com/games/flying-candy?utm_source=sponsored_game&utm_medium=walkthrough&utm_content=flying-candy&utm_campaign=sponsored_game";
var newMenu = new ContextMenu();
newMenu.hideBuiltInItems();
newMenu.customItems.push(new ContextMenuItem("Play More Games", goTo));
this.menu = newMenu;
urlStart = _url.indexOf("://") + 3;
urlEnd = _url.indexOf("/", urlStart);
domain = _url.substring(urlStart, urlEnd);
LastDot = domain.lastIndexOf(".") - 1;
domEnd = domain.lastIndexOf(".", LastDot) + 1;
domain = domain.substring(domEnd, domain.length);
mochi.as2.MochiServices.connect("8b9339de84c347e9", _root.mochiobj);
mochi.as2.MochiSocial.addEventListener(mochi.as2.MochiSocial.ERROR, handleError);
mochi.as2.MochiSocial.addEventListener(mochi.as2.MochiSocial.LOGGED_IN, loggedIn);
mochi.as2.MochiCoins.addEventListener(mochi.as2.MochiCoins.ITEM_OWNED, registerItem);
mochi.as2.MochiCoins.addEventListener(mochi.as2.MochiCoins.STORE_ITEMS, storeItems);
mochi.as2.MochiCoins.addEventListener(mochi.as2.MochiCoins.ITEM_NEW, newItem);
__com_mochibot__("d0ed0727", this, 10301, true);
if (domain == "ungrounded.net") {
ngapi = true;
}
ngstar = function (info) {
if (stat[7] >= info) {
var _local2 = com.newgrounds.API.getMedal(info + " Stars");
if (_local2.__get__unlocked() != true) {
com.newgrounds.API.unlockMedal(info + " Stars");
}
trace("NG TEST " + info);
}
};
ngclick = function () {
if (stat[0] >= 200) {
var _local1 = com.newgrounds.API.getMedal("200 Clicks!");
if (_local1.__get__unlocked() != true) {
com.newgrounds.API.unlockMedal("200 Clicks!");
}
}
};
ngscore = function () {
if (stat[8] >= 100000) {
var _local1 = com.newgrounds.API.getMedal("100K Points!");
if (_local1.__get__unlocked() != true) {
com.newgrounds.API.unlockMedal("100K Points!");
}
}
};
ngupgr = function () {
if (stat[4] >= 60) {
var _local1 = com.newgrounds.API.getMedal("All Upgrades!");
if (_local1.__get__unlocked() != true) {
com.newgrounds.API.unlockMedal("All Upgrades!");
}
}
};
Instance of Symbol 417 MovieClip [API Connector (NewgroundsAPI)] in Frame 1
//component parameters
onClipEvent (construct) {
api_id = "18124:THAqfKl5";
encryption_key = "a15agitwEJxWyhgiPQcHhOz5brtX5IMg";
version = "";
fake_session = false;
debug = false;
error_screens = true;
medal_popups = true;
}
Frame 2
currmap = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
map = new Array();
map[0] = [1, 20, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2];
map[1] = [0.5, 8, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0];
map[2] = [0.6, 12, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0];
map[3] = [0.8, 8, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0];
map[4] = [0.7, 30, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0];
map[5] = [0.7, 15, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0];
map[6] = [0.6, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0];
map[7] = [0.8, 0, 15, 0, 0, 0, 0, 5, 0, 0, 0, 0];
map[8] = [0.5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0];
map[9] = [0.9, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0];
map[10] = [0.9, 0, 0, 5, 5, 5, 0, 5, 0, 0, 0, 0];
map[11] = [1, 0, 2, 0, 0, 0, 0, 0, 12, 0, 0, 0];
map[12] = [1, 10, 0, 0, 0, 0, 5, 0, 10, 0, 0, 2];
map[13] = [1.5, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0];
map[14] = [1, 16, 8, 0, 0, 0, 0, 0, 0, 8, 0, 0];
map[15] = [0.8, 0, 2, 1, 0, 0, 0, 1, 0, 1, 0, 0];
map[16] = [1.2, 70, 10, 0, 0, 0, 0, 0, 0, 0, 0, 2];
map[17] = [1.3, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0];
map[18] = [1, 10, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0];
map[19] = [1.6, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8];
map[20] = [1, 0, 0, 6, 6, 6, 0, 6, 6, 6, 6, 0];
map[21] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
map[22] = [1.5, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0];
map[23] = [1.5, 40, 0, 4, 0, 4, 8, 0, 0, 0, 0, 2];
map[24] = [1.4, 0, 40, 0, 0, 0, 0, 0, 0, 5, 0, 1];
map[25] = [1.5, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0];
map[26] = [1.6, 50, 15, 0, 5, 0, 0, 0, 5, 0, 0, 2];
map[27] = [0.5, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1];
map[28] = [1.5, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0];
map[29] = [1.7, 0, 20, 0, 0, 0, 12, 6, 0, 6, 0, 2];
map[30] = [1.2, 0, 0, 8, 8, 8, 0, 8, 8, 8, 8, 0];
map[31] = [1.5, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3];
map[32] = [1.5, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0];
map[33] = [1.8, 70, 0, 6, 0, 6, 14, 0, 6, 0, 0, 2];
map[34] = [0.5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2];
map[35] = [1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0];
map[36] = [1.9, 0, 30, 0, 0, 0, 16, 7, 0, 7, 7, 2];
map[37] = [1.6, 140, 20, 0, 0, 0, 0, 0, 0, 0, 0, 4];
map[38] = [1.5, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 5];
map[39] = [2, 90, 30, 5, 5, 5, 18, 5, 5, 5, 5, 3];
map[40] = [1.4, 0, 0, 10, 10, 10, 0, 10, 10, 10, 10, 0];
stop();
Frame 3
gachi = new Array();
gachitxt = new Array();
setGachi = function () {
gachi[0] = [1, 10, 20, 40, 70, 100, 150];
gachitxt[0] = ["Perform", "Clicks"];
gachi[1] = [20, 60, 150, 400, 800, 1500, 2500];
gachitxt[1] = ["Pop", "Bubbles"];
gachi[2] = [10, 30, 100, 400, 750, 1500, 3000];
gachitxt[2] = ["Collect", "Candies"];
gachi[3] = [3, 30, 75, 200, 350, 650, 1000];
gachitxt[3] = ["Use", "Bombs"];
gachi[4] = [1, 5, 10, 15, 25, 40, 60];
gachitxt[4] = ["Get", "Upgrades"];
gachi[5] = [15, 30, 60, 90, 120, 160, 200];
gachitxt[5] = ["Get", "Combo"];
gachi[6] = [1, 5, 10, 15, 20, 30, 40];
gachitxt[6] = ["Complete", "Level"];
gachi[7] = [5, 15, 30, 50, 70, 90, 120];
gachitxt[7] = ["Collect", "Stars"];
gachi[8] = [500, 2000, 5000, 10000, 20000, 40000, 80000];
gachitxt[8] = ["Earn", "Points"];
};
setGachi();
atxt = new Array();
atxt2 = new Array();
i = 0;
while (i < gachi.length) {
atxt[i] = new Array();
atxt2[i] = new Array();
j = 0;
while (j < gachi[i].length) {
atxt[i][j] = (((gachitxt[i][0] + newline) + gachi[i][j]) + newline) + gachitxt[i][1];
atxt2[i][j] = (((gachitxt[i][0] + " ") + gachi[i][j]) + " ") + gachitxt[i][1];
j++;
}
i++;
}
var my_so = SharedObject.getLocal("flying_candy", "/");
lvlmedal = new Array();
lvlrec = new Array();
stat = new Array();
i = 0;
while (i < gachi.length) {
stat[i] = 0;
trace((i + "-") + stat[i]);
i++;
}
if (my_so.data.lvlmedal[0] == undefined) {
my_so.data.lvlmedal = new Array();
my_so.data.lvlmedal[0] = 0;
my_so.data.lvlmedal[1] = 0;
my_so.data.lvlrec = new Array();
i = 1;
while (i < 41) {
my_so.data.lvlrec[i] = 0;
i++;
}
my_so.data.sound = true;
my_so.data.music = true;
my_so.data.maxlvl = 1;
my_so.data.upgr = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
my_so.data.money = 0;
i = 0;
while (i < gachi.length) {
j = 0;
while (j < gachi[i].length) {
my_so.data[("gachi" + i) + j] = gachi[i][j];
j++;
}
my_so.data["stat" + i] = stat[i];
i++;
}
}
sound = my_so.data.sound;
music = my_so.data.music;
money = my_so.data.money;
maxlvl = my_so.data.maxlvl;
totalscore = 0;
if (music == false) {
ib2.gotoAndStop(2);
}
if (sound == false) {
ib1.gotoAndStop(2);
}
i = 1;
while (i < 41) {
lvlmedal[i] = my_so.data.lvlmedal[i];
lvlrec[i] = my_so.data.lvlrec[i];
if (lvlrec[i] != undefined) {
totalscore = totalscore + lvlrec[i];
}
i++;
}
i = 0;
while (i < 9) {
j = 0;
while (j < 7) {
if (my_so.data[("gachi" + i) + j] != undefined) {
gachi[i][j] = my_so.data[("gachi" + i) + j];
} else {
break;
}
j++;
}
stat[i] = my_so.data["stat" + i];
i++;
}
_global.saveStat = function () {
trace("SAVE STAT...");
i = 0;
while (i < gachi.length) {
j = 0;
while (j < gachi[i].length) {
my_so.data[("gachi" + i) + j] = gachi[i][j];
j++;
}
my_so.data["stat" + i] = stat[i];
trace((gachitxt[i][0] + "---") + my_so.data["stat" + i]);
i++;
}
trace("SAVE STAT END...");
my_so.data.sound = sound;
my_so.data.music = music;
my_so.data.maxlvl = maxlvl;
my_so.data.money = money;
my_so.flush();
};
_global.addStat = function (type, amount) {
stat[type] = stat[type] + amount;
testGachi(type);
};
_global.setStat = function (type, amount) {
if (amount > stat[type]) {
stat[type] = amount;
}
testGachi(type);
};
_global.testGachi = function (type) {
j = 0;
while (j < gachi[type].length) {
if (gachi[type][j] != -1) {
if (stat[type] >= gachi[type][j]) {
gachilogo.desc = atxt2[type][j];
gachilogo.img.gotoAndStop(j + 1);
gachilogo.img.img.gotoAndStop(type + 1);
gachilogo.img.img2.gotoAndStop(type + 1);
gachilogo.gotoAndPlay(2);
gachi[type][j] = -1;
saveStat();
}
}
j++;
}
};
upgr = new Array();
upgr[1] = [12, "CLICK RADIUS", "Increase Click explosion radius"];
upgr[2] = [20, "BUBBLE RADIUS", "Increase explosion radius of bubbles"];
upgr[3] = [16, "BUBBLE SPEED", "Increase speed of bubbles and bombs"];
upgr[4] = [6, "CANDY MAGNET", "Increase candies collecting radius"];
upgr[5] = [16, "SHELL COUNT", "Increase amount of shells"];
upgr[6] = [8, "MINE RADIUS", "Increase explosion radius of the mine"];
upgr[7] = [14, "SPARK COUNT", "Increase amount of sparks"];
upgr[8] = [6, "PORTAL LIFETIME", "Increase amount of bubbles appearing through the portal"];
upgr[9] = [10, "ACID LIFETIME", "Increase lifetime of acid spot"];
upgr[10] = [18, "TESLA TARGETS", "Increase amount of targets of the tesla"];
upgr[11] = [12, "LASER LIFETIME", "Increase lifetime of laser beam"];
upgr[12] = [20, "WAVE RISE", "Increase size of the wave"];
upgrok = new Array();
upgrok = [0, 0, 0, 0, 0, 1, 2, 5, 6, 7, 11, 14, 18];
upgr[0] = my_so.data.upgr;
gotoAndStop ("functions");
Frame 13
generator = false;
newgen = false;
currskin = 0;
oxlimit = 50;
mouseClick = false;
bankUnit = new Array();
bankGift = new Array();
lvl = 0;
maxupgr = 6;
createLevel = function () {
if (generator == true) {
if (newgen == true) {
getGenerator();
newgen = false;
}
} else {
currmap = map[lvl];
}
resmulti = currmap[0];
explorad = 45 + (15 * upgr[0][1]);
breakrad = 35 + (10 * upgr[0][2]);
unitspeed = 1 + (0.5 * upgr[0][3]);
magnet = 50 + (25 * upgr[0][4]);
hulkcount = 2 + upgr[0][5];
mineradius = 80 + (20 * upgr[0][6]);
pulsecount = 2 + upgr[0][7];
portalcount = 4 + upgr[0][8];
toxiclife = 70 + (20 * upgr[0][9]);
cryshot = upgr[0][10];
laserlife = 50 + (15 * upgr[0][11]);
sonicrise = 0.6 + (0.25 * upgr[0][12]);
closeMenu();
clearLevel();
if (lvl == 0) {
paused = true;
inter._alpha = 0;
inter._visible = false;
cursor._visible = false;
back.gotoAndStop(1 + random(3));
back.img.back2.gotoAndStop(1 + random(8));
back.img.back3.gotoAndStop(back.img.back2._currentframe);
congrat._visible = false;
} else {
paused = false;
gumtitle.gotoAndStop(1);
inter._alpha = 100;
inter._visible = true;
cursor._visible = true;
back.gotoAndStop((lvl % 3) + 1);
back.img.back2.gotoAndStop((lvl % 8) + 1);
back.img.back3.gotoAndStop(back.img.back2._currentframe);
if ((lvl == 40) & (generator == false)) {
congrat._visible = true;
} else {
congrat._visible = false;
}
}
cursor._xscale = (cursor._yscale = explorad / resmulti);
clickCount = 1;
unitNeed = (((((((((((currmap[6] * portalcount) + currmap[1]) + currmap[2]) + currmap[3]) + currmap[4]) + currmap[5]) + currmap[6]) + currmap[7]) + currmap[8]) + currmap[9]) + currmap[10]) + currmap[11];
giftNeed = ((currmap[6] * portalcount) + (currmap[2] * 5)) + currmap[1];
unitHave = (giftHave = 0);
unitTarget = Math.ceil(unitNeed / 2);
halfTarget = false;
score = 0;
lvlDelay = 40;
objCount = 0;
giftCount = 0;
oxcount = 0;
oxtimer = 15;
maxcombo = 0;
combotimer = 0;
combocount = 0;
_global.resx = 640 * resmulti;
_global.resy = 480 * resmulti;
levelmap._xscale = (levelmap._yscale = 100 / resmulti);
j = 1;
while (j < 12) {
i = 0;
while (i < currmap[j]) {
objCount++;
obj = levelmap.attachMovie("unit", "unit" + objCount, objCount);
obj._x = 30 + random(resx - 60);
obj._y = 30 + random(resy - 60);
obj.gotoAndStop(j);
obj.type = j;
bankUnit.push(obj);
i++;
}
j++;
}
};
clearLevel = function () {
i = 0;
while (i < bankUnit.length) {
bankUnit[i].removeMovieClip();
i++;
}
i = 0;
while (i < bankGift.length) {
bankGift[i].removeMovieClip();
i++;
}
bankUnit.length = 0;
bankGift.length = 0;
};
getGenerator = function () {
currmap = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
g_diff = (lvl * 0.05) + diff;
g_res = Math.min(2, Math.max(0.5, random(diff * 10) / 10));
currmap[0] = g_res;
g_rest1 = 0.5 + g_res;
g_rest2 = Math.round(g_rest1 * g_rest1);
g_pnt = Math.round((40 / g_diff) * g_rest2);
g_clc = choose(0, 0, g_rest2, random(g_rest2), random(g_rest2));
currmap[11] = g_clc;
g_pnt = g_pnt - (g_clc * 5);
g_bub = choose(0, g_pnt, random(g_pnt));
g_bom = choose(0, 0, 3 + random(8));
if (g_bub > 0) {
g_big = choose(0, g_bub, random(g_bub));
g_pnt = g_pnt - g_big;
currmap[2] = Math.round(g_big / 3);
g_bub = g_bub - g_big;
g_pnt = g_pnt - g_bub;
currmap[1] = g_bub;
if (g_bub == g_pnt) {
currmap[11] = currmap[11] + 2;
}
}
while (g_pnt > 0) {
if (g_bom == 0) {
i = 1 + random(11);
} else {
i = g_bom;
}
currmap[i]++;
g_pnt = g_pnt - 3;
}
trace((("tracedddd = " + generator) + " - ") + newgen);
trace(currmap.toString());
};
addDelay = function (type) {
lvlDelay = 40;
};
castBreak = function (xx, yy, type) {
if (type == 40) {
createPart(xx, yy, type, "explo2", levelmap, 1);
} else {
createPart(xx, yy, type, "explo", levelmap, 1);
}
i = 0;
while (i < bankUnit.length) {
zz = bankUnit[i];
if ((point_distance(xx, yy, zz._x, zz._y) - zz.rad) < type) {
if (zz.kill == undefined) {
killUnit(zz);
}
}
i++;
}
};
killUnit = function (ob) {
playSoundLim("dam1", "dam2", "dam3");
if (ob.life == undefined) {
ob.kill = ob.killtime;
} else {
ob.life.nextFrame();
if (ob.life._currentframe == 4) {
ob.kill = ob.killtime;
}
}
ob.cacheAsBitmap = false;
ob.img.gotoAndPlay(2);
};
dieGift = function (ob) {
j = 0;
while (j < bankGift.length) {
if (bankGift[j] == ob) {
bankGift.splice(j, 1);
break;
}
j++;
}
ob.removeMovieClip();
};
dieUnit = function (ob) {
addDelay();
unitHave++;
combotimer = 10;
combocount++;
if (combocount > 1) {
combotxt = combocount;
inter.combo.txt._xscale = (inter.combo.txt._yscale = 120);
}
inter.unit._xscale = (inter.unit._yscale = 120);
if (halfTarget == false) {
if (unitHave >= (unitTarget / 2)) {
halfTarget = true;
half.play();
}
} else if (unitHave >= unitTarget) {
if (back._currentframe == 1) {
}
}
j = 0;
while (j < bankUnit.length) {
if (bankUnit[j] == ob) {
bankUnit.splice(j, 1);
break;
}
j++;
}
if (ob.type < 3) {
addStat(1, 1);
} else {
addStat(3, 1);
}
switch (ob.type) {
case 1 :
createGift(ob._x, ob._y, ob.box._currentframe);
castBreak(ob._x, ob._y, breakrad);
playSoundLim("die1", "die2", "die3");
createScore(ob._x, ob._y, 10);
break;
case 2 :
createGift(ob._x, ob._y, ob.box._currentframe);
createGift(ob._x, ob._y, ob.box._currentframe);
createGift(ob._x, ob._y, ob.box._currentframe);
createGift(ob._x, ob._y, ob.box._currentframe);
createGift(ob._x, ob._y, ob.box._currentframe);
castBreak(ob._x, ob._y, breakrad + 20);
playSoundLim("die1", "die2", "die3");
createScore(ob._x, ob._y, 100);
break;
case 3 :
castBreak(ob._x, ob._y, breakrad);
createPart(ob._x, ob._y, 100, "bullet", levelmap, hulkcount);
playSound("bullet");
createScore(ob._x, ob._y, 20);
break;
case 4 :
castBreak(ob._x, ob._y, mineradius);
createPart(ob._x, ob._y, mineradius, "boom", levelmap, 1);
playSound("explo");
createScore(ob._x, ob._y, 30);
break;
case 5 :
castBreak(ob._x, ob._y, breakrad);
createPart(ob._x, ob._y, 100, "pulse", levelmap, pulsecount);
playSound("pulse");
createScore(ob._x, ob._y, 40);
break;
case 6 :
castBreak(ob._x, ob._y, breakrad);
createPart(ob._x, ob._y, 100, "portal", levelmap, 1);
playSound("portal");
createScore(ob._x, ob._y, 50);
break;
case 7 :
createPart(ob._x, ob._y, 100, "toxic", levelmap, 1);
playSound("toxic");
createScore(ob._x, ob._y, 60);
break;
case 8 :
createPart(ob._x, ob._y, 100, "light", levelmap, cryshot);
createPart(ob._x, ob._y, 100, "light2", levelmap, 1);
playSound("tesla");
createScore(ob._x, ob._y, 70);
break;
case 9 :
createPart(ob._x, 0, 100, "laser", levelmap, 1);
playSound("laser");
createScore(ob._x, ob._y, 80);
break;
case 10 :
castBreak(ob._x, ob._y, breakrad);
createPart(ob._x, ob._y, 100, "sonic", levelmap, 1, 1);
createPart(ob._x, ob._y, 100, "sonic", levelmap, 1, -1);
playSound("wave");
createScore(ob._x, ob._y, 90);
break;
case 11 :
castBreak(ob._x, ob._y, breakrad);
if (paused == false) {
clickCount++;
cursor._visible = true;
}
playSound("pickup");
createScore(ob._x, ob._y, 100);
}
ob.removeMovieClip();
};
createPart = function (xx, yy, scale, type, depth, count, info) {
j = 1;
while (j <= count) {
obj = depth.attachMovie(type, "part", depth.getNextHighestDepth() + j);
obj._x = xx;
obj._y = yy;
obj._xscale = (obj._yscale = scale);
obj.info = info;
if (type == "bullet") {
dir = (360 / count) * j;
obj.x = lengthdir_x(12, dir + 90);
obj.y = lengthdir_y(12, dir + 90);
}
j++;
}
};
createGift = function (xx, yy, type) {
giftCount++;
obj = levelmap.attachMovie("gift" + currskin, "gift" + giftCount, levelmap.getNextHighestDepth());
obj._x = xx;
obj._y = yy;
obj.box.gotoAndStop(type);
bankGift.push(obj);
};
createScore = function (xx, yy, type) {
score = score + type;
obj = levelmap.attachMovie("scoreobj", ("score" + xx) + yy, levelmap.getNextHighestDepth());
obj._x = xx;
obj._y = yy;
obj.type = "+" + type;
};
mochipanel = false;
closeMenu = function () {
opt.tar = "exit";
opt.gotoAndStop("exit");
gumtitle.gotoAndStop(1);
mochipanel = false;
mochi.as2.MochiSocial.hideLoginWidget();
};
openMenu = function (info) {
opt.tar = info;
opt.close = true;
if (info == "exit") {
gumtitle.gotoAndStop(1);
mochipanel = false;
mochi.as2.MochiSocial.hideLoginWidget();
} else {
if (gumtitle._currentframe == 1) {
gumtitle.gotoAndPlay(2);
}
if (mochipanel == false) {
mochipanel = true;
mochi.as2.MochiSocial.showLoginWidget({x:225, y:450});
}
}
};
sound_delay = 0;
_global.playSoundLim = function () {
if (sound_delay == 0) {
if (sound == true) {
_root["snd_" + arguments[random(arguments.length)]].start();
sound_delay = 2;
}
}
};
_global.playSound = function () {
if (sound == true) {
_root["snd_" + arguments[random(arguments.length)]].start();
}
};
testUpgr = function () {
i = 1;
while (i < 13) {
if (upgr[0][i] < maxupgr) {
if (Math.round((upgr[i][0] * upgr[0][i]) * (upgr[0][i] / 2)) <= money) {
return(true);
}
}
i++;
}
};
initUpgr = function () {
_root.money = _root.money + 0;
if (vipupgr == true) {
maxupgr = 9;
} else {
maxupgr = 6;
}
i = 1;
while (i < upgr.length) {
z = opt["u" + i];
z.title = upgr[i][1];
z.desc.txt.text = upgr[i][2];
z.desc._visible = false;
z.cost = Math.round((upgr[i][0] * upgr[0][i]) * (upgr[0][i] / 2));
if (upgr[0][i] == maxupgr) {
z.gotoAndStop(4);
}
if (upgrok[i] >= maxlvl) {
z.gotoAndStop(3);
z.unlock = ("BEAT LEVEL " + upgrok[i]) + " TO UNLOCK";
}
if (z._currentframe < 3) {
z.id = i;
if (z.cost > _root.money) {
z.gotoAndStop(2);
} else {
z.gotoAndStop(1);
}
}
if (maxupgr == 6) {
z.star.gotoAndStop(upgr[0][i]);
} else {
z.star.gotoAndStop(10 + upgr[0][i]);
}
z.icon.gotoAndStop(i);
z.icon.img.gotoAndStop(1);
i++;
}
};
doUpgr = function (z) {
playSound("shop");
z.eff.gotoAndPlay(2);
money = Math.round(money - z.cost);
upgr[0][z.id]++;
setStat(4, getUpgrDone());
my_so.data.upgr = upgr[0];
saveStat();
initUpgr();
};
getUpgrDone = function () {
z = 0;
i = 1;
while (i < 13) {
z = z + (upgr[0][i] - 1);
i++;
}
return(z);
};
initAchi = function () {
i = 0;
while (i < _root.gachi.length) {
j = 0;
while (j < _root.gachi[i].length) {
z = opt[("a" + i) + j];
z.desc.text = _root.atxt[i][j];
z.desc._visible = false;
if (_root.gachi[i][j] == -1) {
z.gotoAndStop(j + 1);
z.img.gotoAndStop(i + 1);
} else {
z.gotoAndStop(8);
z.perc = Math.floor((_root.stat[i] / _root.gachi[i][j]) * 100) + "%";
}
j++;
}
i++;
}
};
_global.lengthdir_x = function (len, dir) {
return(Math.cos((dir * Math.PI) / 180) * len);
};
_global.lengthdir_y = function (len, dir) {
return((-Math.sin((dir * Math.PI) / 180)) * len);
};
_global.point_distance = function (x1, y1, x2, y2) {
return(Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)));
};
_global.point_direction = function (x1, y1, x2, y2) {
return((Math.atan2(y2 - y1, x2 - x1) / Math.PI) * 180);
};
_global.choose = function () {
return(arguments[random(arguments.length)]);
};
var snd_achi = new Sound(_root);
snd_achi.attachSound("achi");
var snd_achi2 = new Sound(_root);
snd_achi2.attachSound("achi2");
var snd_bullet = new Sound(_root);
snd_bullet.attachSound("sbullet");
var snd_click = new Sound(_root);
snd_click.attachSound("click");
var snd_coin1 = new Sound(_root);
snd_coin1.attachSound("coin1");
var snd_coin2 = new Sound(_root);
snd_coin2.attachSound("coin2");
var snd_coin3 = new Sound(_root);
snd_coin3.attachSound("coin3");
var snd_coin4 = new Sound(_root);
snd_coin4.attachSound("coin4");
var snd_coin1a = new Sound(_root);
snd_coin1a.attachSound("coin1a");
var snd_coin2a = new Sound(_root);
snd_coin2a.attachSound("coin2a");
var snd_coin3a = new Sound(_root);
snd_coin3a.attachSound("coin3a");
var snd_coin4a = new Sound(_root);
snd_coin4a.attachSound("coin4a");
var snd_dam1 = new Sound(_root);
snd_dam1.attachSound("dam1");
var snd_dam2 = new Sound(_root);
snd_dam2.attachSound("dam2");
var snd_dam3 = new Sound(_root);
snd_dam3.attachSound("dam3");
var snd_die1 = new Sound(_root);
snd_die1.attachSound("die1");
var snd_die2 = new Sound(_root);
snd_die2.attachSound("die2");
var snd_die3 = new Sound(_root);
snd_die3.attachSound("die3");
var snd_holy = new Sound(_root);
snd_holy.attachSound("holy");
var snd_explo = new Sound(_root);
snd_explo.attachSound("sexplo");
var snd_menuon = new Sound(_root);
snd_menuon.attachSound("menuon");
var snd_mouseon = new Sound(_root);
snd_mouseon.attachSound("mouseon");
var snd_pickup = new Sound(_root);
snd_pickup.attachSound("pickup");
var snd_shop = new Sound(_root);
snd_shop.attachSound("shop");
var snd_star = new Sound(_root);
snd_star.attachSound("sstar");
var snd_tesla = new Sound(_root);
snd_tesla.attachSound("tesla");
var snd_toxic = new Sound(_root);
snd_toxic.attachSound("stoxic");
var snd_wave = new Sound(_root);
snd_wave.attachSound("wave");
var snd_music = new Sound(_root);
snd_music.attachSound("smusic");
var snd_music2 = new Sound(_root);
snd_music2.attachSound("smusic2");
var snd_laser = new Sound(_root);
snd_laser.attachSound("slaser");
var snd_portalout = new Sound(_root);
snd_portalout.attachSound("portalout");
var snd_portal = new Sound(_root);
snd_portal.attachSound("sportal");
var snd_pulsehit = new Sound(_root);
snd_pulsehit.attachSound("pulsehit");
var snd_pulse = new Sound(_root);
snd_pulse.attachSound("spulse");
var snd_def = new Sound(_root);
snd_def.attachSound("vdef");
var snd_win = new Sound(_root);
snd_win.attachSound("vwin");
snd_music.onSoundComplete = function () {
if (vipmusic == true) {
snd_music2.start(0, 1);
} else {
snd_music.start(0, 1);
}
};
snd_music2.onSoundComplete = function () {
snd_music.start(0, 1);
};
gotoAndPlay ("controller");
Frame 23
trans.gotoAndPlay(6);
onEnterFrame = function () {
if (sound_delay > 0) {
sound_delay--;
}
if (paused == false) {
mousex = _xmouse * resmulti;
mousey = _ymouse * resmulti;
i = 0;
while (i < bankGift.length) {
zz = bankGift[i];
if (zz.kill == false) {
if (zz.delay == 0) {
if (point_distance(mousex, mousey, zz._x, zz._y) < magnet) {
zz.kill = true;
zz.gotoAndStop(2);
}
}
}
i++;
}
if (combotimer > 0) {
combotimer--;
} else {
setStat(5, combocount);
if (maxcombo < combocount) {
maxcombo = combocount;
}
combocount = 0;
}
if (lvlDelay > 0) {
lvlDelay--;
} else if (clickCount == 0) {
if (unitHave < unitTarget) {
if (generator == true) {
openMenu("def2");
} else {
openMenu("def");
}
paused = true;
cursor._visible = false;
} else {
if (generator == true) {
openMenu("win2");
} else {
openMenu("win");
}
paused = true;
cursor._visible = false;
}
} else if (unitHave == unitNeed) {
if (generator == true) {
openMenu("win2");
} else {
openMenu("win");
}
paused = true;
cursor._visible = false;
}
}
};
onMouseUp = function () {
if (paused == false) {
if (clickCount > 0) {
if (mouseClick == false) {
addDelay();
clickCount--;
addStat(0, 1);
if (clickCount == 0) {
cursor._visible = false;
}
playSound("explo");
castBreak(_xmouse * resmulti, _ymouse * resmulti, explorad);
createPart(_xmouse * resmulti, _ymouse * resmulti, explorad, "boom", levelmap, 1);
}
}
}
mouseClick = false;
};
gotoAndStop ("game");
Frame 33
stop();
openMenu("main");
if (music == true) {
snd_music.start(0, 1);
}
ib1.ico.gotoAndStop(1);
ib2.ico.gotoAndStop(2);
ib1.desc.text = "SOUND";
ib2.desc.text = "MUSIC";
ib1.desc._visible = false;
ib2.desc._visible = false;
ib1.but.onRollOver = function () {
ib1.desc._visible = true;
};
ib1.but.onRollOut = function () {
ib1.desc._visible = false;
};
ib2.but.onRollOver = function () {
ib2.desc._visible = true;
};
ib2.but.onRollOut = function () {
ib2.desc._visible = false;
};
ib1.but.onPress = function () {
playSound("click");
_root.mouseClick = true;
if (_root.sound == true) {
_root.sound = false;
ib1.gotoAndStop(2);
} else {
_root.sound = true;
ib1.gotoAndStop(1);
}
};
ib2.but.onPress = function () {
playSound("click");
_root.mouseClick = true;
if (_root.music == true) {
_root.music = false;
snd_music.stop();
ib2.gotoAndStop(2);
} else {
_root.music = true;
snd_music.start(0, 999);
ib2.gotoAndStop(1);
}
};
mochi.as2.MochiEvents.startPlay();
Symbol 44 MovieClip [toxic] Frame 1
timer = _root.toxiclife;
rad = 80;
_yscale = 20;
_xscale = 20;
if (_root.resmulti > 1.2) {
img.stop();
}
onEnterFrame = function () {
if (_xscale < 100) {
_yscale = (_yscale + 10);
_xscale = (_yscale + 10);
}
if (_root.paused == false) {
if (_root.unitHave != _root.unitNeed) {
_root.addDelay();
}
if (timer == 0) {
this.removeMovieClip();
} else {
timer--;
if (timer < 10) {
_alpha = (timer * 10);
}
if ((timer % 3) == 0) {
i = 0;
while (i < _root.bankUnit.length) {
zz = _root.bankUnit[i];
if ((point_distance(_x, _y, zz._x, zz._y) - zz.rad) < rad) {
if (zz.kill == undefined) {
_root.killUnit(zz);
}
}
i++;
}
}
}
} else {
this.removeMovieClip();
}
};
Symbol 46 MovieClip [star] Frame 1
dir = random(360);
timer = 15;
_rotation = random(360);
onEnterFrame = function () {
_rotation = (_rotation + 10);
if (timer > 0) {
timer--;
if (timer < 10) {
_alpha = (_alpha - 10);
}
} else {
this.removeMovieClip();
}
};
Symbol 49 MovieClip [sonic] Frame 1
_yscale = ((rad = 15));
_xscale = ((rad = 15));
step = 4;
onEnterFrame = function () {
if (_root.paused == false) {
_x = (_x + (info * 15));
_yscale = ((rad = rad + _root.sonicrise));
_xscale = (rad * info);
if (step == 0) {
step = 3;
if (_root.unitHave != _root.unitNeed) {
_root.addDelay();
}
if ((_x > (resx + rad)) or (_x < (-rad))) {
this.removeMovieClip();
}
i = 0;
while (i < _root.bankUnit.length) {
zz = _root.bankUnit[i];
if ((point_distance(_x, _y, zz._x, zz._y) - zz.rad) < rad) {
if (zz.kill == undefined) {
_root.killUnit(zz);
}
}
i++;
}
} else {
step--;
}
} else {
this.removeMovieClip();
}
};
Symbol 55 MovieClip [pulse] Frame 1
x = 60 + random(resx - 120);
y = 60 + random(resy - 120);
dir = point_direction(_x, _y, x, y);
speed = (point_distance(_x, _y, x, y) / 20) + random(10);
img._rotation = dir;
onEnterFrame = function () {
if (_root.paused == false) {
if (_root.unitHave != _root.unitNeed) {
_root.addDelay();
}
dist = point_distance(_x, _y, x, y);
if (dist > speed) {
_x = (_x + lengthdir_x(speed, dir));
_y = (_y - lengthdir_y(speed, dir));
} else {
playSound("pulsehit");
_root.castBreak(x, y, 40);
this.removeMovieClip();
}
} else {
this.removeMovieClip();
}
};
Symbol 61 MovieClip [portal] Frame 1
count = _root.portalcount;
_yscale = 20;
_xscale = 20;
timer = 4;
onEnterFrame = function () {
if (_xscale < 100) {
_yscale = (_yscale + 10);
_xscale = (_yscale + 10);
}
if (_root.paused == false) {
if (count == 0) {
if (timer == 0) {
this.removeMovieClip();
} else {
timer--;
_alpha = (timer * 10);
}
} else if (timer == 0) {
playSound("portalout");
timer = 10;
count--;
_root.objCount++;
obj = _root.levelmap.attachMovie("unit", "unit" + _root.objCount, _root.levelmap.getNextHighestDepth());
obj._x = _x;
obj._y = _y;
obj.killtime = 15 + random(15);
obj.gotoAndStop(1);
obj.type = 1;
_root.bankUnit.push(obj);
} else {
timer--;
}
} else {
this.removeMovieClip();
}
};
Symbol 64 MovieClip [ox] Frame 1
_root.oxcount++;
vspeed = (1 + random(2)) / 2;
_yscale = (80 + random(40));
_xscale = (80 + random(40));
timer = 60 + random(30);
gotoAndPlay(2 + random(36));
_x = (_x + (5 - random(10)));
_y = (_y + (5 - random(10)));
onEnterFrame = function () {
_y = (_y - vspeed);
if (_y < -5) {
this.removeMovieClip();
}
if (timer > 0) {
timer--;
if (timer < 10) {
_alpha = (_alpha - 10);
}
} else {
_root.oxcount--;
this.removeMovieClip();
}
};
Symbol 64 MovieClip [ox] Frame 41
gotoAndPlay (2);
Symbol 71 MovieClip [light2] Frame 10
this.removeMovieClip();
Symbol 77 MovieClip [light] Frame 1
zz = _root.bankUnit[random(_root.bankUnit.length)];
dist = point_distance(_x, _y, zz._x, zz._y);
if (zz.kill == undefined) {
_root.killUnit(zz);
}
onEnterFrame = function () {
_xscale = dist;
_rotation = point_direction(_x, _y, zz._x, zz._y);
};
Symbol 77 MovieClip [light] Frame 11
this.removeMovieClip();
Symbol 82 MovieClip [laser] Frame 1
timer = _root.laserlife;
_yscale = (100 * _root.resmulti);
trace(_yscale);
onEnterFrame = function () {
if (_root.paused == false) {
if (_root.unitHave != _root.unitNeed) {
_root.addDelay();
}
if (timer == 0) {
this.removeMovieClip();
} else {
timer--;
if (timer < 10) {
_alpha = (timer * 10);
}
if ((timer % 3) == 0) {
i = 0;
while (i < _root.bankUnit.length) {
zz = _root.bankUnit[i];
if ((_x < (zz._x + zz.rad)) & (_x > (zz._x - zz.rad))) {
if (zz.kill == undefined) {
_root.killUnit(zz);
}
}
i++;
}
}
}
} else {
this.removeMovieClip();
}
};
Symbol 93 MovieClip [hulk1] Frame 1
_root.oxcount++;
speed = 10 + random(4);
timer = 10 + random(15);
dir = random(360);
gotoAndStop(2 + random(5));
onEnterFrame = function () {
_y = (_y - 1);
if (speed > 2) {
_x = (_x + lengthdir_x(speed, dir));
_y = (_y + lengthdir_y(speed, dir));
speed = speed - 1;
}
if (timer > 0) {
timer--;
if (timer < 10) {
_alpha = (_alpha - 10);
}
} else {
_root.oxcount--;
this.removeMovieClip();
}
};
Symbol 100 MovieClip [explo2] Frame 13
this.removeMovieClip();
Symbol 107 MovieClip [explo] Frame 13
this.removeMovieClip();
Symbol 110 MovieClip [bullet] Frame 1
rad = 15;
step = 4;
onEnterFrame = function () {
if (_root.paused == false) {
_x = (_x + x);
_y = (_y + y);
if (step == 0) {
step = 4;
if (_root.unitHave != _root.unitNeed) {
_root.addDelay();
}
if ((((_x > resx) or (_y > resy)) or (_x < 0)) or (_y < 0)) {
this.removeMovieClip();
}
i = 0;
while (i < _root.bankUnit.length) {
zz = _root.bankUnit[i];
if ((point_distance(_x, _y, zz._x, zz._y) - zz.rad) < rad) {
if (zz.kill == undefined) {
_root.killUnit(zz);
this.removeMovieClip();
}
}
i++;
}
} else {
step--;
}
} else {
this.removeMovieClip();
}
};
Symbol 133 MovieClip [boom] Frame 12
this.removeMovieClip();
Symbol 141 MovieClip Frame 1
if (_parent.life._currentframe < 4) {
stop();
}
Symbol 145 MovieClip Frame 1
stop();
Symbol 160 MovieClip Frame 1
if (_root.opt._currentframe == 12) {
gotoAndStop(_parent._parent._currentframe - 4);
} else {
gotoAndStop(_parent._parent._currentframe - 2);
}
Symbol 164 MovieClip [unit] Frame 1
stop();
cacheAsBitmap = true;
img.gotoAndStop(1);
rad = 20;
x = ((random(3) / 2) + _root.unitspeed) * choose(1, -1);
y = ((random(3) / 2) + _root.unitspeed) * choose(1, -1);
killtime = 15 + random(25);
kill = undefined;
onEnterFrame = function () {
_x = (_x + x);
_y = (_y + y);
if ((_x > (resx - rad)) || (_x < rad)) {
x = x * -1;
}
if ((_y > (resy - rad)) || (_y < rad)) {
y = y * -1;
}
if (kill > 0) {
if (kill == 1) {
_root.addDelay();
_root.dieUnit(this);
} else {
kill--;
}
}
};
Symbol 164 MovieClip [unit] Frame 2
rad = 30;
Symbol 167 MovieClip [scoreobj] Frame 31
this.removeMovieClip();
Symbol 205 MovieClip Frame 1
gotoAndStop(_parent.num);
Symbol 206 MovieClip [gift5] Frame 1
stop();
rad = 15;
vspeed = -3 - random(3);
hspeed = (15 + random(15)) / choose(10, -10);
num = 1 + random(6);
img.gotoAndStop(num);
kill = false;
delay = 10;
speed = 10;
onEnterFrame = function () {
if (kill == false) {
if (delay > 0) {
delay--;
}
_root.addDelay();
_x = (_x + hspeed);
_y = (_y + vspeed);
vspeed = vspeed + 0.2;
if (_y > (resy + rad)) {
_root.dieGift(this);
}
if ((_x > (resx - rad)) || (_x < rad)) {
hspeed = hspeed * -1;
}
} else if (_root.paused == false) {
if (delay == 15) {
playSound("coin1", "coin2", "coin3", "coin4");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
delay++;
}
dist = point_distance(_x, _y, _root.mousex, _root.mousey);
if (dist < rad) {
playSound("coin1", "coin2", "coin3", "coin4");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
dir = point_direction(_root.mousex, _root.mousey, _x, _y);
_x = (_x - lengthdir_x(Math.min(dist, speed), dir));
_y = (_y + lengthdir_y(Math.min(dist, speed), dir));
speed = speed + 5;
}
} else {
_root.giftHave++;
_root.dieGift(this);
}
};
Symbol 206 MovieClip [gift5] Frame 2
img.img.stop();
Symbol 228 MovieClip [gift4] Frame 1
stop();
rad = 15;
vspeed = -3 - random(3);
hspeed = (15 + random(15)) / choose(10, -10);
num = 1 + random(6);
kill = false;
delay = 10;
speed = 10;
if (random(10) < 5) {
_xscale = -100;
}
onEnterFrame = function () {
if (kill == false) {
if (delay > 0) {
delay--;
}
_root.addDelay();
_x = (_x + hspeed);
_y = (_y + vspeed);
vspeed = vspeed + 0.2;
if (_y > (resy + rad)) {
_root.dieGift(this);
}
if ((_x > (resx - rad)) || (_x < rad)) {
hspeed = hspeed * -1;
}
} else if (_root.paused == false) {
if (delay == 15) {
playSound("coin1a", "coin2a", "coin3a", "coin4a");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
delay++;
}
dist = point_distance(_x, _y, _root.mousex, _root.mousey);
if (dist < rad) {
playSound("coin1a", "coin2a", "coin3a", "coin4a");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
dir = point_direction(_root.mousex, _root.mousey, _x, _y);
_x = (_x - lengthdir_x(Math.min(dist, speed), dir));
_y = (_y + lengthdir_y(Math.min(dist, speed), dir));
speed = speed + 5;
}
} else {
_root.giftHave++;
_root.dieGift(this);
}
};
Symbol 228 MovieClip [gift4] Frame 2
img.stop();
Symbol 278 MovieClip Frame 1
gotoAndStop(_parent.num);
Symbol 279 MovieClip [gift3] Frame 1
stop();
rad = 15;
vspeed = -3 - random(3);
hspeed = (15 + random(15)) / choose(10, -10);
num = 1 + random(6);
kill = false;
delay = 10;
speed = 10;
if (random(10) < 5) {
_xscale = -100;
}
onEnterFrame = function () {
if (kill == false) {
if (delay > 0) {
delay--;
}
_root.addDelay();
_x = (_x + hspeed);
_y = (_y + vspeed);
vspeed = vspeed + 0.2;
if (_y > (resy + rad)) {
_root.dieGift(this);
}
if ((_x > (resx - rad)) || (_x < rad)) {
hspeed = hspeed * -1;
}
} else if (_root.paused == false) {
if (delay == 15) {
playSound("coin1a", "coin2a", "coin3a", "coin4a");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
delay++;
}
dist = point_distance(_x, _y, _root.mousex, _root.mousey);
if (dist < rad) {
playSound("coin1a", "coin2a", "coin3a", "coin4a");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
dir = point_direction(_root.mousex, _root.mousey, _x, _y);
_x = (_x - lengthdir_x(Math.min(dist, speed), dir));
_y = (_y + lengthdir_y(Math.min(dist, speed), dir));
speed = speed + 5;
}
} else {
_root.giftHave++;
_root.dieGift(this);
}
};
Symbol 279 MovieClip [gift3] Frame 2
img.stop();
Symbol 297 MovieClip [gift1] Frame 1
stop();
rad = 15;
vspeed = -3 - random(3);
hspeed = (15 + random(15)) / choose(10, -10);
num = 1 + random(6);
kill = false;
delay = 10;
speed = 10;
if (random(10) < 5) {
_xscale = -100;
}
onEnterFrame = function () {
if (kill == false) {
if (delay > 0) {
delay--;
}
_root.addDelay();
_x = (_x + hspeed);
_y = (_y + vspeed);
vspeed = vspeed + 0.2;
if (_y > (resy + rad)) {
_root.dieGift(this);
}
if ((_x > (resx - rad)) || (_x < rad)) {
hspeed = hspeed * -1;
}
} else if (_root.paused == false) {
if (delay == 15) {
playSound("coin1", "coin2", "coin3", "coin4");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
delay++;
}
dist = point_distance(_x, _y, _root.mousex, _root.mousey);
if (dist < rad) {
playSound("coin1", "coin2", "coin3", "coin4");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
dir = point_direction(_root.mousex, _root.mousey, _x, _y);
_x = (_x - lengthdir_x(Math.min(dist, speed), dir));
_y = (_y + lengthdir_y(Math.min(dist, speed), dir));
speed = speed + 5;
}
} else {
_root.giftHave++;
_root.dieGift(this);
}
};
Symbol 297 MovieClip [gift1] Frame 2
img.stop();
Symbol 331 MovieClip Frame 1
gotoAndStop(_parent.num);
Symbol 332 MovieClip [gift2] Frame 1
stop();
rad = 15;
vspeed = -3 - random(3);
hspeed = (15 + random(15)) / choose(10, -10);
num = 1 + random(6);
img.gotoAndStop(num);
kill = false;
delay = 10;
speed = 10;
onEnterFrame = function () {
if (kill == false) {
if (delay > 0) {
delay--;
}
_root.addDelay();
_x = (_x + hspeed);
_y = (_y + vspeed);
vspeed = vspeed + 0.2;
if (_y > (resy + rad)) {
_root.dieGift(this);
}
if ((_x > (resx - rad)) || (_x < rad)) {
hspeed = hspeed * -1;
}
} else if (_root.paused == false) {
if (delay == 15) {
playSound("coin1", "coin2", "coin3", "coin4");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
delay++;
}
dist = point_distance(_x, _y, _root.mousex, _root.mousey);
if (dist < rad) {
playSound("coin1", "coin2", "coin3", "coin4");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
dir = point_direction(_root.mousex, _root.mousey, _x, _y);
_x = (_x - lengthdir_x(Math.min(dist, speed), dir));
_y = (_y + lengthdir_y(Math.min(dist, speed), dir));
speed = speed + 5;
}
} else {
_root.giftHave++;
_root.dieGift(this);
}
};
Symbol 332 MovieClip [gift2] Frame 2
img.img.stop();
Symbol 339 MovieClip Frame 1
gotoAndStop(1 + random(5));
_y = (-random(10));
_xscale = choose(100, -100);
Symbol 343 MovieClip Frame 1
gotoAndStop(_parent.num);
Symbol 344 MovieClip [gift0] Frame 1
stop();
rad = 15;
vspeed = -3 - random(3);
hspeed = (15 + random(15)) / choose(10, -10);
num = 1 + random(6);
img.gotoAndStop(num);
kill = false;
delay = 10;
speed = 10;
if (_root.resmulti > 1.2) {
img.img.stop();
}
onEnterFrame = function () {
if (kill == false) {
if (delay > 0) {
delay--;
}
_root.addDelay();
_x = (_x + hspeed);
_y = (_y + vspeed);
vspeed = vspeed + 0.2;
if (_y > (resy + rad)) {
_root.dieGift(this);
}
if ((_x > (resx - rad)) || (_x < rad)) {
hspeed = hspeed * -1;
}
} else if (_root.paused == false) {
if (delay == 15) {
playSound("coin1a", "coin2a", "coin3a", "coin4a");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
delay++;
}
dist = point_distance(_x, _y, _root.mousex, _root.mousey);
if (dist < rad) {
playSound("coin1a", "coin2a", "coin3a", "coin4a");
addStat(2, 1);
_root.giftHave++;
_root.dieGift(this);
} else {
dir = point_direction(_root.mousex, _root.mousey, _x, _y);
_x = (_x - lengthdir_x(Math.min(dist, speed), dir));
_y = (_y + lengthdir_y(Math.min(dist, speed), dir));
_rotation = dir;
speed = speed + 5;
}
} else {
_root.giftHave++;
_root.dieGift(this);
}
};
Symbol 344 MovieClip [gift0] Frame 2
img.img.stop();
Symbol 353 MovieClip Frame 1
onEnterFrame = function () {
if (_visible) {
_rotation = (_rotation + 30);
} else {
delete onEnterFrame;
}
};
Symbol 355 MovieClip Frame 10
stop();
Symbol 357 MovieClip Frame 37
_parent.setGotoFrame("done");
stop();
Symbol 369 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 1
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay ("closeme");
}
_visible = true;
icon._visible = false;
pop_delay = setInterval(endDelay, 3000);
Symbol 369 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 2
medal.attachIcon(icon);
Symbol 369 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 10
icon._visible = true;
medal_name = medal.getName();
medal_value = medal.getValue() + "pts";
stop();
Symbol 369 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 21
this.removeMovieClip();
_visible = false;
stop();
Symbol 375 MovieClip [NewgroundsAPIAsset_Login_Warning] Frame 1
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay ("closeme");
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
Symbol 375 MovieClip [NewgroundsAPIAsset_Login_Warning] Frame 10
stop();
Symbol 375 MovieClip [NewgroundsAPIAsset_Login_Warning] Frame 21
this.removeMovieClip();
_visible = false;
stop();
Symbol 378 MovieClip [NewgroundsAPIAsset_Connection_Error] Frame 1
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay ("closeme");
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
Symbol 378 MovieClip [NewgroundsAPIAsset_Connection_Error] Frame 10
stop();
Symbol 378 MovieClip [NewgroundsAPIAsset_Connection_Error] Frame 21
this.removeMovieClip();
_visible = false;
stop();
Symbol 399 MovieClip [NewgroundsAPIAsset_big_popup_background] Frame 1
var w = Math.round(this._width);
var h = Math.round(this._height);
if (w < 80) {
w = 80;
}
if (h < 80) {
h = 80;
}
this._width = 350;
this._height = 120;
t._width = w - 2;
t._x = 1;
b._width = w - 2;
b._x = 1;
c._width = w - 2;
c._x = 1;
c._height = h - 2;
c._y = 1;
l._height = h - 2;
l._y = 1;
r._height = h - 2;
r._y = 1;
tr._x = w - 7;
r._x = w - 7;
br._x = w - 7;
b._y = h - 7;
bl._y = h - 7;
br._y = h - 7;
shadow._width = w + 10;
shadow._height = h + 10;
Symbol 403 Button
on (release) {
this._visible = false;
this.removeMovieClip();
}
Symbol 409 Button
on (release) {
getURL (official_version_url, "_blank");
}
Symbol 411 MovieClip [NewgroundsAsset_New_Version_Available] Frame 1
_x = (Stage.width / 2);
_y = (Stage.height / 2);
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
Symbol 412 Button
on (release) {
getURL (official_version_url, "_blank");
}
Symbol 416 MovieClip [NewgroundsAsset_Illegal_Host] Frame 1
_x = (Stage.width / 2);
_y = (Stage.height / 2);
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
Symbol 417 MovieClip [API Connector (NewgroundsAPI)] Frame 1
#initclip 31
Object.registerClass("API Connector (NewgroundsAPI)", com.newgrounds.components.APIConnector);
#endinitclip
Symbol 417 MovieClip [API Connector (NewgroundsAPI)] Frame 20
_visible = false;
Symbol 420 MovieClip [__Packages.com.newgrounds.Bridge] Frame 0
class com.newgrounds.Bridge
{
var widget_id, receiver, transmitter;
function Bridge (id) {
widget_id = id;
receiver = new LocalConnection();
transmitter = new LocalConnection();
receiver.receiveEvent = function (event, params) {
com.newgrounds.API.callListener(event, params.success, params.data);
};
try {
receiver.connect("rec_" + widget_id);
} catch(error:Error) {
}
}
function sendEvent(event, params) {
if (widget_id) {
transmitter.send(widget_id, "sendEvent", event, validateParams(params));
}
}
function sendCommand(command, params) {
if (widget_id) {
transmitter.send(widget_id, "sendCommand", command, validateParams(params));
}
}
function validateParams(params) {
var _local2 = {};
for (var _local3 in params) {
if ((typeof(params[_local3]) == "string") || (typeof(params[_local3]) == "number")) {
_local2[_local3] = params[_local3];
}
}
return(_local2);
}
}
Symbol 418 MovieClip [__Packages.com.newgrounds.APIError] Frame 0
class com.newgrounds.APIError
{
var message, name, alias;
function APIError (error, msg) {
if (Number(error).toString() == String(error)) {
error = Number(error);
} else if (error_codes[String(error)]) {
error = error_codes[String(error)];
} else {
error = 0;
}
code = error;
message = msg;
name = error_names[error];
alias = aliases[error];
}
static function init_codes() {
var _local2 = new Object();
var _local1 = 0;
while (_local1 < aliases.length) {
_local2[aliases[_local1]] = _local1;
_local1++;
}
return(_local2);
}
static function init_names() {
var _local5 = new Array();
var _local3 = 0;
while (_local3 < aliases.length) {
var _local2 = aliases[_local3].toLowerCase().split("_");
var _local1 = 0;
while (_local1 < _local2.length) {
_local2[_local1] = _local2[_local1].substr(0, 1).toUpperCase() + _local2[_local1].substr(1, _local2[_local1].length);
for (var _local4 in always_caps) {
if (_local2[_local1].toUpperCase() == always_caps[_local4]) {
_local2[_local1] = _local2[_local1].toUpperCase();
}
}
_local1++;
}
_local5[_local3] = _local2.join(" ");
_local3++;
}
return(_local5);
}
function isError() {
return(true);
}
static var aliases = new Array("UNKNOWN_ERROR", "INVALID_API_ID", "MISSING_PARAM", "INVALID_STAT_ID", "INVALID_COMMAND_ID", "FLASH_ADS_NOT_APPROVED", "PERMISSION_DENIED", "IDENTIFICATION_REQUIRED", "INVALID_EMAIL_ADDRESS", "BANNED_USER", "SESSION_EXPIRED", "INVALID_SCORE", "INVALID_MEDAL", "INVALID_SAVE_GROUP", "FILE_NOT_FOUND", "SITE_ID_REQUIRED", "UPLOAD_IN_PROGRESS", "USER_CANCELLED", "CONFIRM_REQUEST", "ILLEGAL_REQUEST", "CONNECTION_FAILED", "QUERY_INCOMPLETE", "SAVE_FILE_ERROR", "INVALID_VALUE", "SERVER_ERROR", "INVALID_SCOREBOARD");
static var always_caps = new Array("API", "URL", "ID");
static var error_codes = init_codes();
static var error_names = init_names();
var code = 0;
}
Symbol 419 MovieClip [__Packages.com.newgrounds.API] Frame 0
class com.newgrounds.API
{
static var version, user_email, movie_id, debug, session_id, connected, tracker_id, user_id, user_name, timeout, encryption_key, host, remote_auth, ad_url, eventDispatcher, last_command, ad_swf_url;
function API () {
}
static function setVersion(v) {
version = v;
}
static function setUserEmail(e) {
user_email = e;
}
static function setFakeSession(fake) {
fake_session = fake;
}
static function setPreload(p) {
preload = p;
}
static function getPercentLoaded() {
var _local2;
if (preload && (preload_items > 0)) {
_local2 = 80;
var _local4 = Math.round((preload_items_loaded / preload_items) * 20);
var _local3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * _local2) + _local4;
} else {
_local2 = 100;
var _local3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * _local2);
}
return(_local3);
}
static function reportNewAsset() {
if (preload) {
preload_items++;
}
}
static function reportAssetLoaded() {
if (preload) {
preload_items_loaded++;
}
}
static function populateMedals(medal_list) {
if (medals === null) {
medals = new Array();
var _local2 = 0;
while (_local2 < medal_list.length) {
var _local1 = medal_list[_local2];
medals.push(new com.newgrounds.Medal(_local1.medal_id, _local1.medal_name, _local1.medal_value, _local1.medal_difficulty, _local1.medal_unlocked, _local1.medal_icon));
_local2++;
}
}
}
static function populateSaveGroups(save_group_list, file_path, image_path) {
com.newgrounds.SaveFile.setFilePath(file_path);
com.newgrounds.SaveFile.setImagePath(image_path);
save_groups = new Array();
var _local6 = 0;
while (_local6 < save_group_list.length) {
var _local2 = save_group_list[_local6];
var _local5 = new com.newgrounds.SaveGroup(_local2.group_id, _local2.group_name, _local2.group_type);
var _local4 = 0;
while (_local4 < _local2.keys.length) {
var _local3 = _local2.keys[_local4];
_local5.addKey(_local3.id, _local3.name, _local3.type);
_local4++;
}
_local4 = 0;
while (_local4 < _local2.ratings.length) {
var _local1 = _local2.ratings[_local4];
_local5.addRating(_local1.id, _local1.name, _local1.min, _local1.max, _local1.float);
_local4++;
}
save_groups.push(_local5);
_local6++;
}
}
static function populateScoreBoards(score_boards) {
scoreboards = new Array();
var _local1 = 0;
while (_local1 < score_boards.length) {
scoreboards.push(new com.newgrounds.ScoreBoard(score_boards[_local1].id, score_boards[_local1].name));
_local1++;
}
}
static function getOfficialURL() {
var _local1 = (((GATEWAY_URL + "?tracker_id=") + movie_id) + "&command_id=loadOfficalVersion&seed=") + Math.random();
if (debug) {
_local1 = _local1 + "&debug=1";
}
return(_local1);
}
static function loadOfficialURL() {
getURL (getOfficialURL(), "_blank");
}
static function hasUserSession() {
if (session_id && (publisher_id)) {
return(true);
}
if (_root.NewgroundsAPI_PublisherID && (_root.NewgroundsAPI_SessionID)) {
return(true);
}
return(false);
}
static function hostIsCompatible() {
return(!(_root.NewgroundsAPI_PublisherID === undefined));
}
static function isNewgrounds() {
return((((publisher_id == 1) || (_root.NewgroundsAPI_PublisherID == 1)) || (getHost().toLowerCase().indexOf("ungrounded.net") > -1)) || (getHost().toLowerCase().indexOf("newgrounds.com") > -1));
}
static function hasPublisher() {
return(publisher_id || (_root.NewgroundsAPI_PublisherID));
}
static function hasUserEmail() {
if (user_email) {
return(true);
}
return(false);
}
static function isConnected() {
return(connected);
}
static function getID() {
return(getTrackerID());
}
static function getTrackerID() {
return(tracker_id);
}
static function getUserID() {
return(user_id);
}
static function getUserName() {
return(user_name);
}
static function connectionTimeOut() {
reportAssetLoaded();
clearInterval(timeout);
callListener(com.newgrounds.APIEvent.API_CONNECTED, false, new com.newgrounds.APIError("CONNECTION_FAILED", "Connection to API gateway timed out."));
}
static function connect(m_id, encrypt_key, debug_mode) {
if (connected) {
return(undefined);
}
sendMessage("Connecting to the Newgrounds API Gateway...");
var _local2 = function () {
com.newgrounds.API.connectionTimeOut();
};
timeout = setInterval(_local2, 10000, null);
if (!m_id) {
fatalError("API.connect() - missing required movie_id parameter", "connect");
}
movie_id = String(m_id);
tracker_id = Number(movie_id.substring(0, movie_id.indexOf(":")));
encryption_key = encrypt_key;
debug = debug_mode;
user_id = 0;
user_name = "Guest";
if (_root.NewgroundsAPI_PublisherID) {
publisher_id = _root.NewgroundsAPI_PublisherID;
if (_root.NewgroundsAPI_SessionID) {
session_id = _root.NewgroundsAPI_SessionID;
}
} else if (fake_session) {
publisher_id = 1;
session_id = "D3bu64p1U53R";
user_id = 10;
user_name = "API-Debugger";
} else {
if (debug) {
publisher_id = 1;
}
session_id = null;
}
if (_root.NewgroundsAPI_UserName) {
user_name = _root.NewgroundsAPI_UserName;
}
if (_root.NewgroundsAPI_UserID) {
user_id = _root.NewgroundsAPI_UserID;
}
if (_root.NewgroundsAPI_UserpageFormat) {
userpage_format = _root.NewgroundsAPI_UserpageFormat;
}
reportNewAsset();
connected = true;
sendCommand("connectMovie", {host:getHost(), movie_version:version});
}
static function getHost() {
if (!host) {
var _local1 = _url;
if ((_local1.toLowerCase().indexOf("http://") > -1) or (_local1.toLowerCase().indexOf("https://") > -1)) {
if (_local1.toLowerCase().indexOf(NEWGROUNDS_PREVIEW) > -1) {
host = NEWGROUNDS_PREVIEW;
} else {
host = _local1.split("/")[2].toLowerCase();
}
} else {
host = LOCAL_HOST;
}
}
return(host);
}
static function isPublishedHost() {
for (var _local1 in PREVIEW_HOSTS) {
if (getHost() == PREVIEW_HOSTS[_local1]) {
return(false);
}
}
return(true);
}
static function loadUserPage(u_id, u_name) {
if ((u_id == undefined) && (u_name == undefined)) {
if (hasUserSession()) {
u_id = user_id;
u_name = user_name;
} else {
return(false);
}
}
if (publisher_id == 1) {
var _local1 = ("http://" + user_name.toLowerCase()) + ".newgrounds.com";
getURL (_local1, "_blank");
return(true);
}
if (userpage_format) {
var _local1 = userpage_format;
_local1 = _local1.split(":user_id:").join(u_id.toString());
_local1 = _local1.split(":user_name:").join(escape(u_name));
getURL (_local1, "_blank");
return(true);
}
return(false);
}
static function loadNewgrounds() {
sendCommand("loadNewgrounds", {host:getHost()}, true);
}
static function loadMySite() {
sendCommand("loadMySite", {host:getHost()}, true);
}
static function loadCustomLink(link) {
sendCommand("loadCustomLink", {host:getHost(), link:link}, true);
}
static function logCustomEvent(event) {
sendCommand("logCustomEvent", {host:getHost(), event:event});
}
static function getScoreBoard(board) {
if ((!scoreboards) || (scoreboards.length < 1)) {
sendWarning("You do not have any scoreboards configured in your API setup.");
return(null);
}
for (var _local2 in scoreboards) {
if ((typeof(board) == "string") && (scoreboards[_local2].name == board)) {
return(scoreboards[_local2]);
}
if ((typeof(board) == "number") && (scoreboards[_local2].id == board)) {
return(scoreboards[_local2]);
}
}
sendWarning(("Could not find any scoreboards named '" + board) + "'.");
return(null);
}
static function postScore(board_name, value, tag) {
var _local3 = getScoreBoard(board_name);
if (tag === undefined) {
tag = "";
}
if (!_local3) {
sendError({command_id:"postScore"}, new com.newgrounds.APIError("INVALID_SCOREBOARD", "Failed to post score. Check the spelling of your board name."));
return(undefined);
}
if (value == undefined) {
sendError({command_id:"postScore"}, new com.newgrounds.APIError("MISSING_PARAM", "Missing score value"));
return(undefined);
}
sendSecureCommand("postScore", {user_name:user_name, board:_local3.id, value:value, tag:tag, publisher_id:publisher_id});
}
static function loadScores(board_name, period, tag) {
var _local3 = "loadScores";
var _local2 = getScoreBoard(board_name);
if (!_local2) {
sendError({command_id:_local3}, new com.newgrounds.APIError("INVALID_SCOREBOARD", "Failed to load scores. Check the spelling of your board name."));
return(undefined);
}
var _local1 = {};
_local1.publisher_id = publisher_id;
_local1.board = _local2.id;
_local1.num_results = _local2.num_results;
_local1.page = _local2.page;
if (period === undefined) {
_local1.period = _local2.period;
} else {
_local1.period = period;
}
if (tag === undefined) {
_local1.tag = _local2.tag;
} else {
_local1.tag = tag;
}
sendCommand(_local3, _local1);
}
static function unlockMedal(medal, x, y) {
if (!medal) {
sendError({command_id:"unlockMedal"}, new com.newgrounds.APIError("MISSING_PARAM", "missing required medal name"));
return(undefined);
}
if (typeof(medal) != "object") {
medal = getMedal(medal);
}
if (!medal) {
sendError({command_id:"unlockMedal"}, new com.newgrounds.APIError("INVALID_MEDAL", "medal unlock failed, check your medal name for correct spelling."));
return(undefined);
}
callListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, true, {medal:medal, x:x, y:y});
if (hasUserSession() or debug) {
sendMessage(("Attempting to unlock '" + medal.getName()) + "'");
var _local3 = new Object();
_local3.medal_id = medal.getID();
sendSecureCommand("unlockMedal", _local3);
} else {
sendMessage(("Unlocking '" + medal.getName()) + "'");
medal.setUnlocked(true);
var _local2 = loadLocal("medals_unlocked");
if (!_local2) {
_local2 = new Object();
}
_local2[medal.getID()] = true;
saveLocal("medals_unlocked", _local2);
}
}
static function loadMedals() {
if (medals) {
callListener(com.newgrounds.APIEvent.MEDALS_LOADED, true, {medals:medals});
return(undefined);
}
var _local1 = new Object();
if (hasUserSession()) {
_local1.publisher_id = publisher_id;
_local1.user_id = user_id;
}
sendCommand("getMedals", _local1);
}
static function getMedals() {
return(medals);
}
static function getMedal(identifier) {
if ((!medals) || (medals.length < 1)) {
sendWarning("You do not have any medals configured on your API setup!");
return(false);
}
for (var _local3 in medals) {
var _local1 = medals[_local3];
if ((typeof(identifier) == "string") && (_local1.getName() == identifier)) {
return(_local1);
}
if (_local1.getID() == identifier) {
return(_local1);
}
}
sendWarning(("Could not find any medals named '" + identifier) + "'.");
return(false);
}
static function saveLocal(save_id, save_data, size_allocation) {
if (!sharedObjects[save_id]) {
sharedObjects[save_id] = SharedObject.getLocal((("ng_ap_secure_" + movie_id) + "_") + save_id);
}
sharedObjects[save_id].data[save_id] = encodeData(save_data);
sharedObjects[save_id].flush();
}
static function loadLocal(save_id) {
if (!sharedObjects[save_id]) {
sharedObjects[save_id] = SharedObject.getLocal((("ng_ap_secure_" + movie_id) + "_") + save_id);
}
sharedObjects[save_id].flush();
echo((("sharedobject " + save_id) + " is: ") + sharedObjects[save_id].data[save_id]);
if (sharedObjects[save_id].data[save_id]) {
echo("decoded: " + decodeData(sharedObjects[save_id].data[save_id]));
return(decodeData(sharedObjects[save_id].data[save_id]));
}
return(null);
}
static function encodeData(data) {
return(compressHex(com.newgrounds.encoders.RC4.encrypt(com.newgrounds.encoders.JSON.encode(data), encryption_key)));
}
static function decodeData(base) {
return(com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(uncompressHex(base), encryption_key)));
}
static function compressHex(hex_value) {
var _local6 = hex_value.length % 6;
var _local4 = "";
var _local5 = new com.newgrounds.encoders.BaseN(compression_radix);
var _local1 = 0;
while (_local1 < hex_value.length) {
var _local2 = Number("0x" + hex_value.substr(_local1, 6));
_local4 = _local4 + _local5.encode(_local2, 4);
_local1 = _local1 + 6;
}
return(_local6 + _local4);
}
static function uncompressHex(base_value) {
var _local9 = Number(base_value.charAt(0));
var _local7 = "";
var _local3;
var _local8 = new com.newgrounds.encoders.BaseN(compression_radix);
var _local2 = 1;
while (_local2 < base_value.length) {
var _local6 = base_value.substr(_local2, 4);
var _local5 = _local8.decode(_local6);
var _local1 = dec2hex(_local5);
if ((_local2 + 4) < base_value.length) {
_local3 = 6;
} else {
_local3 = _local9;
}
while (_local1.length < _local3) {
_local1 = "0" + _local1;
}
_local7 = _local7 + _local1;
_local2 = _local2 + 4;
}
return(_local7);
}
static function dec2hex(dec) {
var _local4 = "0123456789ABCDEF";
var _local3 = "";
while (dec > 0) {
var _local2 = dec % 16;
_local3 = _local4.charAt(_local2) + _local3;
dec = (dec - _local2) / 16;
}
return(_local3);
}
static function getSaveGroup(group) {
if ((save_groups == null) || (save_groups.length < 1)) {
sendWarning("You do not have any save groups configured in your API setup!");
return(null);
}
var _local1 = 0;
while (_local1 <= save_groups.length) {
if ((typeof(group) == "number") or (Number(group).toString() == String(group))) {
if (save_groups[_local1].getID() == Number(group)) {
return(save_groups[_local1]);
}
} else if (typeof(group) == "string") {
if (save_groups[_local1].getName().toLowerCase() == group.toLowerCase()) {
return(save_groups[_local1]);
}
}
_local1++;
}
sendWarning(("Could not find any save groups named '" + group) + "'.");
return(null);
}
static function getCurrentSaveFile() {
return(save_file);
}
static function setCurrentSaveFile(current) {
save_file = current;
}
static function loadSaveFile(save_id, get_contents) {
if (get_contents === undefined) {
get_contents = true;
}
var _local1 = "loadSaveFile";
var _local2 = {publisher_id:publisher_id, save_id:save_id, get_contents:get_contents};
save_file = null;
sendCommand(_local1, _local2);
}
static function loadFilesByDate(group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var _local2 = getSaveGroup(group_name);
if (!_local2) {
var _local3 = new com.newgrounds.APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByDate"}, _local3);
return(undefined);
}
var _local1 = new com.newgrounds.SaveGroupQuery(_local2);
if (key_name) {
_local1.addKeyCondition(key_name, "=", key_value);
}
_local1.sortOn("CREATED_ON", (sort_descending ? "DESC" : "ASC"));
_local1.execute();
}
static function loadFilesByViews(group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var _local2 = getSaveGroup(group_name);
if (!_local2) {
var _local3 = new com.newgrounds.APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByViews"}, _local3);
return(undefined);
}
var _local1 = new com.newgrounds.SaveGroupQuery(_local2);
if (key_name) {
_local1.addKeyCondition(key_name, "=", key_value);
}
_local1.sortOn("TOTAL_VIEWS", (sort_descending ? "DESC" : "ASC"));
_local1.execute();
}
static function loadFilesByRating(group_name, rating_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var _local2 = getSaveGroup(group_name);
if (!_local2) {
var _local3 = new com.newgrounds.APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByRating"}, _local3);
return(undefined);
}
var _local1 = new com.newgrounds.SaveGroupQuery(_local2);
if (key_name) {
_local1.addKeyCondition(key_name, "=", key_value);
}
_local1.sortOnRating(rating_name, (sort_descending ? "DESC" : "ASC"), "score");
_local1.execute();
}
static function lookupSaveFiles(save_group) {
var _local1 = "lookupSaveFiles";
var _local2 = {publisher_id:publisher_id, group_id:save_group.getID(), query:com.newgrounds.encoders.JSON.encode(save_group.getQuery(true))};
sendCommand(_local1, _local2);
}
static function newSaveFile(group) {
var _local1 = getSaveGroup(group);
if (_local1) {
return(_local1.newFile());
}
var _local2 = new com.newgrounds.APIError("INVALID_SAVE_GROUP", "You can not create new files in invalid groups.");
sendError({command_id:"newSaveFile"}, _local2);
}
static function newSaveQuery(group) {
var _local1 = getSaveGroup(group);
if (_local1) {
return(_local1.newQuery());
}
var _local2 = new com.newgrounds.APIError("INVALID_SAVE_GROUP", ("'" + group) + "' is not a valid save group.");
sendError({command_id:"newSaveQuery"}, _local2);
}
static function checkFilePrivs(file) {
if (user_id) {
var _local1 = user_id;
} else {
var _local1 = 0;
}
var _local2 = {group:file.getGroup().getID(), filename:file.getName(), user_id:_local1, publisher_id:publisher_id};
sendCommand("checkFilePrivs", _local2);
}
static function saveFile(file, overwrite) {
var _local1;
_local1 = {group:file.getGroup().getID(), filename:file.getName(), description:file.getDescription(), draft:file.__get__draft(), user_name:user_name};
if (overwrite) {
_local1.overwrite = overwrite;
}
if (file.getDuplicateID()) {
_local1.save_id = file.getDuplicateID();
}
if (file.getKeys().length > 0) {
_local1.keys = file.getKeys();
}
var _local3;
_local3 = {file:file.getRawContents()};
if (file.getThumbnailImageScan()) {
_local3.thumbnail = file.getThumbnailImageScan();
}
save_file = file;
sendSecureCommand("saveFile", _local1, null, _local3);
}
static function rateSaveFile(file, rating, vote) {
var _local1 = {group:file.getGroup().getID(), save_id:file.getID(), rating_id:rating.rating_id, vote:vote, user_id:user_id};
sendSecureCommand("rateSaveFile", _local1);
}
static function getConfirmation(command_name, event, msg, target, confirm, cancel) {
var _local1 = new com.newgrounds.APIError("CONFIRM_REQUEST", msg);
_local1.confirm = function () {
target[confirm]();
};
_local1.cancel = function () {
target[cancel]();
};
_local1.command = command_name;
callListener(event, false, _local1);
}
static function onRemoteAuthentication(auth_result) {
var _local1 = com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(auth_result, encryption_key));
delete remote_auth;
user_id = _local1.NewgroundsAPI_UserID;
user_name = _local1.NewgroundsAPI_UserName;
session_id = _local1.NewgroundsAPI_SessionID;
publisher_id = _local1.NewgroundsAPI_PublisherID;
}
static function doEvent(e) {
switch (e.command_id) {
case "connectMovie" :
clearInterval(timeout);
sendMessage("You have successfully connected to the Newgrounds API Gateway");
sendMessage(("Movie identified as \"" + e.movie_name) + "\"");
callListener(com.newgrounds.APIEvent.API_CONNECTED, e.success, {title:e.movie_name});
var _local7 = false;
if (e.ad_status === -1) {
var _local11 = "This movie was not approved to run Flash Ads.";
sendWarning(_local11);
sendWarning(("visit " + AD_TERMS_URL) + " to view our approval guidelines");
if (!e.ad_url) {
callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError("FLASH_ADS_NOT_APPROVED", _local11));
} else {
_local7 = true;
}
} else if (e.ad_status === 0) {
var _local11 = "Flash Ads are currently awaiting approval.";
sendNotice(_local11);
if (!e.ad_url) {
callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError("FLASH_ADS_NOT_APPROVED", _local11));
} else {
_local7 = true;
}
}
if (e.ad_url) {
ad_url = unescape(e.ad_url);
if (!_local7) {
sendMessage("This movie has been approved to run Flash Ads!");
}
callListener(com.newgrounds.APIEvent.ADS_APPROVED, true);
}
if (e.deny_host) {
var _local11 = getHost() + " does not have permission to run this movie!";
sendWarning(_local11);
sendWarning("\tUpdate your API configuration to unblock " + getHost());
callListener(com.newgrounds.APIEvent.HOST_BLOCKED, true, {real_url:unescape(e.movie_url), url:getOfficialURL()});
} else if (e.movie_version) {
sendWarning("According to your API Configuration, this version is out of date.");
if (version) {
sendWarning("\tThe this movie is version " + version);
}
sendWarning("\tThe most current version is " + e.movie_version);
callListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, true, {version:e.movie_version, real_url:unescape(e.movie_url), url:getOfficialURL()});
}
if (e.request_portal_url) {
sendCommand("setPortalID", {portal_url:_url});
}
if (preload) {
reportNewAsset();
var _local8 = {};
if (hasUserSession()) {
_local8.publisher_id = publisher_id;
_local8.user_id = user_id;
}
sendCommand("preloadSettings", _local8);
}
reportAssetLoaded();
break;
case "preloadSettings" :
if (e.medals) {
populateMedals(e.medals);
if ((!hasUserSession()) and (!debug)) {
echo("checking for sharedobject medals...");
var _local4 = loadLocal("medals_unlocked");
if (_local4) {
for (var _local32 in _local4) {
var _local32 = Number(_local32);
if (_local4[_local32]) {
var _local3 = getMedal(_local32);
echo("now unlocking " + _local3.getName());
_local3.setUnlocked(true);
}
}
}
}
}
if (e.save_groups) {
populateSaveGroups(e.save_groups, e.save_file_path);
}
if (e.score_boards) {
populateScoreBoards(e.score_boards);
}
if (_root.NewgroundsAPI_SaveFileID && (_root.NewgroundsAPI_SaveGroupID)) {
callListener(com.newgrounds.APIEvent.FILE_REQUESTED, true, {save_id:_root.NewgroundsAPI_SaveFileID, group:getSaveGroup(_root.NewgroundsAPI_SaveGroupID)});
}
callListener(com.newgrounds.APIEvent.METADATA_LOADED, true);
reportAssetLoaded();
break;
case "logCustomEvent" :
if (e.success) {
sendMessage(("Event '" + e.event) + "' was logged.");
}
callListener(com.newgrounds.APIEvent.EVENT_LOGGED, e.success, {event:e.event});
break;
case "postScore" :
var _local9;
if (e.success) {
var _local5 = "User";
if (user_email) {
_local5 = user_email;
} else if (user_name) {
_local5 = user_name;
}
var _local19 = getScoreBoard(e.board);
sendMessage(((((_local5 + " posted ") + e.value) + " to '") + _local19.name) + "'");
_local9 = {board:_local19, value:e.value, username:_local5};
}
callListener(com.newgrounds.APIEvent.SCORE_POSTED, e.success, _local9);
break;
case "loadScores" :
_local9 = new Object();
var _local19 = getScoreBoard(e.board);
if (_local19.exists()) {
_local19.setScores(e.scores, e.period, e.page, e.num_results);
}
callListener(com.newgrounds.APIEvent.SCORES_LOADED, e.success, {board:_local19});
break;
case "unlockMedal" :
var _local24 = getMedal(e.medal_name);
_local24.setUnlocked(true);
sendMessage(("Successfuly unlocked '" + _local24.getName()) + "'");
callListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, e.success, {medal_id:_local24.id, medal:_local24});
break;
case "getMedals" :
populateMedals(e.medals);
callListener(com.newgrounds.APIEvent.MEDALS_LOADED, e.success, {medals:medals});
break;
case "loadSaveFile" :
var _local16 = getSaveGroup(e.group_id);
var _local14 = new com.newgrounds.SaveFile(_local16);
_local14.id = e.file.save_id;
_local14.name = e.file.filename;
_local14.fileUrl = e.file.file;
_local14.thumbnailUrl = e.file.thumb;
_local14.authorName = e.file.user_name;
_local14.authorId = e.file.user_id;
_local14.description = e.file.description;
_local14.setPermissions(e.file.status, e.file.locked);
for (var _local6 in e.file.keys) {
_local14.setKey(e.file.keys[_local6].id, e.file.keys[_local6].value);
}
for (var _local6 in e.file.ratings) {
_local14.setRating(e.file.ratings[_local6].id, e.file.ratings[_local6].votes, e.file.ratings[_local6].score);
}
if (e.get_contents) {
_local14.loadContents();
}
callListener(com.newgrounds.APIEvent.FILE_INITIALIZED, e.success, {save_id:_local14.id, file:_local14});
save_file = _local14;
break;
case "lookupSaveFiles" :
var _local12 = getSaveGroup(e.group_id).getQuery();
_local12.onExecuted(e.files);
break;
case "rateSaveFile" :
_local16 = getSaveGroup(e.group_id);
_local14 = _local16.getFile(e.save_id);
if (e.already_voted) {
var _local27 = new com.newgrounds.APIError("PERMISSION_DENIED", "You have already voted on this item today");
callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {error:_local27, file:_local14, save_id:_local14.id});
return(undefined);
}
if (e.success) {
var _local10 = _local14.onVoted(e);
callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {rating:_local10, file:_local14, save_id:_local14.id});
} else {
callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {file:_local14, save_id:_local14.id});
sendError("Your vote was not accepted.");
}
break;
case "saveFile" :
if (save_file) {
if (!save_file.exists()) {
save_file.setID(e.save_id, true);
}
save_file.onSaved(e);
callListener(com.newgrounds.APIEvent.FILE_SAVED, e.success, {save_id:save_file.__get__id(), file:save_file});
if (e.success) {
sendMessage(((("You just saved a new file (id #" + e.save_id) + ") to the '") + save_file.__get__group().__get__name()) + "' save group.");
}
}
save_file = null;
break;
case "checkFilePrivs" :
_local9 = {file:save_file, filename:e.filename, group:e.group, exists:e.exists, can_write:e.can_write};
if (e.duplicate_id) {
_local9.duplicate_id = e.duplicate_id;
}
if (!e.success) {
sendWarning("You do not have permission to save this file!");
}
callListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, e.success, _local9);
}
}
static function getDispatcher() {
if (!eventDispatcher) {
eventDispatcher = new com.newgrounds.APIEventDispatcher();
}
return(eventDispatcher);
}
static function hasEventListener(event) {
return(getDispatcher().hasEventListener(event));
}
static function addEventListener(event, listener, target) {
echo(("Adding a listener for '" + event) + "'");
getDispatcher().addEventListener(event, listener, target);
}
static function removeEventListener(event, target) {
getDispatcher().removeEventListener(event, target);
}
static function callListener(event, success, data, target) {
echo("Fired Event: " + event);
var _local2 = new com.newgrounds.APIEvent(event, success, data);
getDispatcher().dispatchEvent(_local2);
if ((event == com.newgrounds.APIEvent.API_CONNECTED) && (!success)) {
connected = false;
}
bridge.sendEvent(event, {success:success, data:data});
}
static function sendError(c, e) {
switch (c.command_id) {
case "connectMovie" :
clearInterval(timeout);
callListener(com.newgrounds.APIEvent.API_CONNECTED, false, {error:e, response:c});
break;
case "saveFile" :
callListener(com.newgrounds.APIEvent.FILE_SAVED, false, {error:e, file:save_file, response:c});
save_file = null;
}
var _local3 = (((((("[Newgrounds API ERROR] :: " + c.command_id) + "() - ") + e.name) + ":") + newline) + "\t\t\t\t") + e.message;
trace(_local3);
bridge.sendEvent("trace", {data:_local3});
}
static function sendWarning(m, c) {
if (c) {
m = m + ((("\r[Newgrounds API WARNING] :: \tSee " + COMMANDS_WIKI_URL) + c.toLowerCase()) + " for additional information.");
}
var _local1 = "[Newgrounds API WARNING] :: " + m;
trace(_local1);
bridge.sendEvent("trace", {data:_local1});
}
static function sendNotice(m, c) {
if (c) {
m = m + ((("\r[Newgrounds API NOTICE] :: \tSee " + COMMANDS_WIKI_URL) + c.toLowerCase()) + " for additional information.");
}
trace("[Newgrounds API NOTICE] :: " + m);
}
static function fatalError(m, c) {
if (c) {
m = m + ((("\r\tSee " + COMMANDS_WIKI_URL) + c.toLowerCase()) + " for additional information.");
}
throw (((("***ERROR*** frame=" + _root._currentframe) + ", class=API") + newline) + newline) + m;
}
static function openLoginPage() {
if (hasUserSession()) {
return(undefined);
}
if (!remote_auth) {
var _local1 = com.newgrounds.encoders.MD5.calculate((Math.random() + "a") + movie_id);
_local1 = "POOPYPANTS";
remote_auth = new com.newgrounds.RemoteAuth(_local1);
}
var _local2 = com.newgrounds.encoders.RC4.encrypt(remote_auth.__get__token(), encryption_key);
trace(_local2);
getURL ((((LOGIN_URL + "?api_auth_id=") + movie_id) + "&api_auth_key=") + _local2, "_blank");
}
static function sendSecureCommand(command, secure_params, unsecure_params, files) {
if (((!debug) && (!hasUserSession())) && (!hasUserEmail())) {
sendError({command_id:command}, new com.newgrounds.APIError("IDENTIFICATION_REQUIRED", ("You must be logged in, or provide an e-mail address using 'API.setUserEmail(\"name@domain.com\");' to use " + command) + "()."));
return(undefined);
}
if (!command) {
fatalError("Missing command", "sendSecureCommand");
}
if (!secure_params) {
fatalError("Missing secure_params", "sendSecureCommand");
}
if (!unsecure_params) {
unsecure_params = new Object();
}
var _local2 = "";
var _local1 = 0;
while (_local1 < 16) {
_local2 = _local2 + compression_radix.charAt(Math.floor(Math.random() * compression_radix.length));
_local1++;
}
if ((debug && (!fake_session)) && (!session_id)) {
secure_params.session_id = "";
} else {
secure_params.session_id = session_id;
}
secure_params.as_version = 2;
secure_params.user_email = user_email;
secure_params.publisher_id = publisher_id;
secure_params.seed = _local2;
secure_params.command_id = command;
var _local6 = com.newgrounds.encoders.JSON.encode(secure_params);
trace(("JSON: " + _local6) + newline);
var _local9 = com.newgrounds.encoders.MD5.calculate(_local2);
var _local7 = com.newgrounds.encoders.RC4.encrypt(_local6, encryption_key);
var _local8 = _local9 + _local7;
unsecure_params.secure = compressHex(_local8);
sendCommand("securePacket", unsecure_params, false, files);
}
static function sendCommand(command, params, open_browser, files) {
if ((!connected) and (command != "connectMovie")) {
var _local12 = (("API." + command) + "() - API.connect() must be called before this command can be called") + newline;
fatalError(_local12, "connect");
}
if (open_browser) {
var _local2 = new Object();
} else {
var _local2 = new LoadVars();
}
_local2.command_id = command;
_local2.tracker_id = movie_id;
if (debug) {
_local2.debug = debug;
}
if (params) {
for (var _local9 in params) {
_local2[_local9] = params[_local9];
}
}
if (files) {
for (var _local9 in files) {
_local2[_local9] = files[_local9];
}
}
if (open_browser) {
var _local6 = (GATEWAY_URL + "?seed=") + Math.random();
for (var _local9 in _local2) {
_local6 = _local6 + ((("&" + escape(_local9)) + "=") + escape(_local2[_local9]));
}
trace("OPENING " + _local6);
getURL (_local6, "_blank");
_local2.removeMovieClip();
} else {
var _local10 = new LoadVars();
_local10.remember_command_id = _local2.command_id;
_local10.onData = function (data) {
com.newgrounds.API.echo(("INPUT: \r" + data) + newline);
if (data) {
var _local2 = com.newgrounds.encoders.JSON.decode(data);
} else {
var _local2 = {success:false};
}
if (!_local2.success) {
if ((!_local2.error_code) && (!_local2.error_msg)) {
_local2.error_code = "CONNECTION_FAILED";
_local2.error_msg = "Could not contact the API Gateway";
_local2.command_id = this.remember_command_id;
}
var _local4 = new com.newgrounds.APIError(_local2.error_code, _local2.error_msg);
com.newgrounds.API.sendError(_local2, _local4);
} else {
com.newgrounds.API.doEvent(_local2);
}
};
var _local7 = new Array();
for (var _local8 in _local2) {
_local7.push((_local8 + "=") + escape(_local2[_local8]));
}
echo((("POST " + GATEWAY_URL) + "?") + _local7.join("&"));
_local2.sendAndLoad((GATEWAY_URL + "?seed=") + Math.random(), _local10, "POST");
last_command = _local2.command_id;
}
}
static function renderAd(target) {
if (ad_swf_url) {
target.background = target.createEmptyMovieClip("background", 100);
target.background.beginFill(0);
target.background.moveTo(0, 0);
target.background.lineTo(300, 0);
target.background.lineTo(300, 250);
target.background.lineTo(0, 250);
target.background.lineTo(0, 0);
target.background.endFill();
target.mask = target.createEmptyMovieClip("mask", 101);
target.mask.beginFill(0);
target.mask.moveTo(0, 0);
target.mask.lineTo(300, 0);
target.mask.lineTo(300, 250);
target.mask.lineTo(0, 250);
target.mask.lineTo(0, 0);
target.mask.endFill();
target.clip = target.createEmptyMovieClip("clip", 102);
target.clip.ad = target.clip.createEmptyMovieClip("ad", 100);
target.clip.setMask(target.mask);
target.clip.ad._lockroot = true;
loadMovie (ad_swf_url, target.clip.ad);
callListener(com.newgrounds.APIEvent.AD_ATTACHED, true, {target:target});
} else {
callListener(com.newgrounds.APIEvent.AD_ATTACHED, false, new com.newgrounds.APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"));
}
}
static function attachFlashAd(target) {
if (checkAdFlood()) {
ad_swf_url = null;
} else if (checkAdCache()) {
reportNewAsset();
var _local1 = new LoadVars();
_local1.onData = function (data) {
if (data) {
com.newgrounds.API.ad_swf_url = data;
} else {
com.newgrounds.API.ad_swf_url = null;
}
com.newgrounds.API.reportAssetLoaded();
com.newgrounds.API.renderAd(target);
};
if (ad_url.indexOf("?") > -1) {
_local1.load((ad_url + "&random=") + Math.random());
} else {
_local1.load((ad_url + "?random=") + Math.random());
}
if (!ad_warning) {
ad_warning = true;
sendMessage("You may get a security sandbox violation from this ad. This is nothing to worry about!");
}
} else if (ad_swf_url) {
renderAd(target);
}
}
static function checkAdFlood() {
if (!ad_url) {
return(false);
}
var _local2 = new Date();
var _local1 = _local2.getTime();
if (_local1 >= ad_flood) {
if ((_local1 - ad_flood) > 1000) {
ad_flood = _local1 + 1000;
} else {
ad_flood = _local1;
sendWarning("This movie is attempting to load multiple ads at too high of a frequency; you may have a bad preloader loop.");
return(true);
}
}
return(false);
}
static function checkAdCache() {
if (!ad_url) {
return(false);
}
var _local2 = new Date();
var _local1 = _local2.getTime();
if (_local1 >= ad_url_cache) {
ad_url_cache = _local1 + 300000;
return(true);
}
return(false);
}
static function sendMessage(m, r) {
var _local1 = "[Newgrounds API] :: " + m;
if (r) {
return(_local1);
}
trace(_local1);
bridge.sendEvent("trace", {data:_local1});
}
static function echo(m) {
if (do_echo) {
trace(m);
}
}
static var LOGIN_URL = "http://ng-local.newgrounds.com/apilogin/";
static var do_echo = true;
static var GATEWAY_URL = "http://www.ngads.com/gateway_v2.php";
static var NEWGROUNDS_PREVIEW = "uploads.ungrounded.net/previews";
static var AD_TERMS_URL = "http://www.newgrounds.com/wiki/using-the-site/terms-of-use/flash-ads/";
static var COMMANDS_WIKI_URL = "http://www.newgrounds.com/wiki/developer-resources/flash-api/commands/";
static var LOCAL_HOST = "localhost";
static var NEWGROUNDS_WWW = "www.newgrounds.com";
static var PREVIEW_HOSTS = new Array(LOCAL_HOST, NEWGROUNDS_PREVIEW);
static var ad_url_cache = 0;
static var ad_flood = 0;
static var ad_warning = false;
static var save_file = null;
static var publisher_id = 1;
static var fake_session = false;
static var medals = null;
static var userpage_format = null;
static var scoreboards = new Array();
static var save_groups = null;
static var compression_radix = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
static var errors = com.newgrounds.APIError.init_codes();
static var sharedObjects = new Object();
static var bridge = new com.newgrounds.Bridge(_root.NewgroundsAPI_SandboxID);
static var preload = true;
static var preload_items = 0;
static var preload_items_loaded = 0;
}
Symbol 421 MovieClip [__Packages.com.newgrounds.SaveFile] Frame 0
class com.newgrounds.SaveFile
{
static var file_path, image_path;
var _group, _filename, _file_id, _contents, _thumbnail, _thumbnail_url, raw, img, _file_url, _description, scanner;
function SaveFile (_group) {
this._group = _group;
_filename = null;
_file_id = null;
_contents = null;
_thumbnail = null;
_thumbnail_url = null;
raw = null;
img = null;
_draft = false;
_keys = new Array();
_ratings = new Array();
_file_url = null;
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, checkPrivs, this);
}
static function setFilePath(path) {
file_path = path + "/";
}
static function setImagePath(path) {
image_path = path + "/";
}
function get name() {
return(_filename);
}
function set name(s) {
_filename = s;
//return(name);
}
function get id() {
return(_file_id);
}
function get description() {
return(_description);
}
function set description(s) {
_description = s;
//return(description);
}
function get contents() {
return(_contents);
}
function set contents(o) {
_contents = o;
//return(contents);
}
function get thumbnailUrl() {
return(image_path + _thumbnail_url);
}
function set thumbnailUrl(s) {
_thumbnail_url = s;
//return(thumbnailUrl);
}
function get fileUrl() {
return(file_path + _file_url);
}
function set fileUrl(s) {
_file_url = s;
//return(fileUrl);
}
function get authorID() {
return(_author_id);
}
function set authorID(i) {
_author_id = i;
//return(authorID);
}
function get authorName() {
return(_author_name);
}
function set authorName(n) {
_author_name = n;
//return(authorName);
}
function get views() {
return(_views);
}
function get draft() {
return(_draft);
}
function set draft(d) {
_draft = d;
//return(draft);
}
function get group() {
return(_group);
}
function get groupId() {
return(_group.getID());
}
function get groupName() {
return(_group.getName());
}
function get groupType() {
return(_group.getType());
}
function get locked() {
return(_locked);
}
function get shared() {
return(_isShared());
}
function get isPrivate() {
return(_isPrivate());
}
function get isPublic() {
return(_isPublic());
}
function get approved() {
return(_isApproved());
}
function get keys() {
return(_keys);
}
function get ratings() {
return(_ratings);
}
function loadAuthorPage() {
com.newgrounds.API.loadUserPage(_author_id, _author_name);
}
function getID() {
return(_file_id);
}
function exists() {
return(!(_file_id === null));
}
function getGroup() {
return(_group);
}
function getName() {
return(_filename);
}
function _isPrivate() {
return(status == STATUS.PRIVATE);
}
function _isShared() {
return(status > STATUS.PRIVATE);
}
function _isApproved() {
return(status > STATUS.UNAPPROVED);
}
function _isPublic() {
if (_isPrivate()) {
return(false);
}
if (_group.isType("SYSTEM") or _group.isType("PRIVATE")) {
return(false);
}
if (_group.isType("PUBLIC")) {
return(true);
}
if (_isApproved()) {
return(true);
}
return(false);
}
function isLocked() {
return(_locked);
}
function getDescription() {
return(_description);
}
function getShared() {
return(_draft);
}
function getThumbnailImageScan() {
return(img);
}
function getRawContents() {
return(raw);
}
function getDuplicateID() {
return(duplicate_id);
}
function getKeys() {
return(_keys);
}
function getKey(key) {
var _local3 = getGroup().getKey(key);
var _local2 = 0;
while (_local2 < _keys.length) {
if (_keys[_local2].id == _local3.key_id) {
return(_keys[_local2].value);
}
_local2++;
}
}
function getRating(rating) {
var _local2 = getGroup().getRating(rating);
if (_ratings[_local2.rating_id]) {
return(_ratings[_local2.rating_id]);
}
return(null);
}
function overwriteAllowed() {
return(overwrite);
}
function getFileURL() {
return(file_path + _file_url);
}
function getThumbnailURL() {
return(image_path + _thumbnail_url);
}
function overwriteExisting() {
overwrite = true;
}
function setID(id, add_to_group) {
_file_id = id;
if (add_to_group) {
getGroup().addFile(this);
}
}
function setName(filename, locked) {
_filename = filename;
_locked = locked;
}
function setDescription(description) {
_description = description;
}
function setDraft(draft) {
_draft = draft;
}
function setContents(_contents) {
this._contents = _contents;
}
function setThumbnail(thumb) {
if (thumb) {
_thumbnail = thumb;
} else {
_thumbnail = null;
}
}
function setThumbnailURL(url) {
_thumbnail_url = url;
}
function setFileURL(url) {
_file_url = url;
}
function setPermissions(status, _locked) {
this._locked = _locked;
this.status = status;
}
function setKey(key, val) {
var _local4 = getGroup().getKeyID(key);
var _local2;
if (!_local4) {
onError(((("'" + key) + "' is not a valid key for the '") + _group.__get__name()) + "' save group", "setKey", "INVALID_VALUE", true);
return(undefined);
}
if ((!_group.keyValueIsValid(key, val)) && (!(val === null))) {
onError((("'" + val) + "' is not a valid ") + _group.getKeyType(key, true), "setKey", "INVALID_VALUE", true);
return(undefined);
}
switch (_group.getKeyType(key, true)) {
case "string" :
if (val) {
val = String(val);
} else {
val = undefined;
}
break;
default :
val = Number(val);
}
var _local5 = {id:_local4, value:val};
for (var _local6 in _keys) {
_local2 = _keys[_local6];
if (_local2.id == _local4) {
_keys[_local6] = _local5;
return(undefined);
}
}
_keys.push(_local5);
}
function setRating(rating, votes, score) {
var _local2 = getGroup().getRating(rating);
if (!votes) {
votes = 0;
}
if (!score) {
score = 0;
}
if (!_local2.is_float) {
score = Math.round(Number(score));
}
_ratings[_local2.rating_id] = {id:Number(_local2.rating_id), name:_local2.rating_name, votes:Number(votes), score:Number(score)};
return(_ratings[_local2.rating_id]);
}
function clearBuffer() {
_contents = null;
raw = null;
img = null;
scanner = null;
overwrite = false;
duplicate_id = null;
}
function onError(msg, funct, code) {
busy = false;
if (!code) {
code = "SAVE_FILE_ERROR";
}
if (!funct) {
funct = "unknown_function";
}
var _local3 = ("getSaveGroup('" + _group.getName()) + "')";
if (exists()) {
funct = (((_local3 + ".getFile('") + getName()) + "').") + funct;
} else {
funct = (_local3 + ".getNewFile().") + funct;
}
var _local5 = new com.newgrounds.APIError(code, msg);
com.newgrounds.API.sendError({command_id:funct}, _local5);
}
function onSaved(p) {
busy = false;
if (!exists()) {
setID(p.save_id, true);
}
setName(p.filename);
setFileURL(p.file_url);
if (p.thumbnail) {
_thumbnail_url = p.thumbnail;
}
}
function onVoted(p) {
trace("ONVOTED WAS CALLED");
return(setRating(p.rating_id, p.votes, p.score));
}
function sendRating(rating, vote) {
var _local6 = null;
if (!com.newgrounds.API.hasUserSession()) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", "You must be logged in to vote on save files");
}
var _local2 = _group.getRating(rating);
if (!_local2) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", ((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' save group");
}
if (voted === true) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", "You have already voted on this item today");
}
if ((vote < _local2.min_value) or (vote > _local2.max_value)) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", (((("'" + rating) + "' votes must be between ") + _local2.min_value) + " and ") + _local2.max_value);
}
if (_local6) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {error:_local6, file:this});
return(undefined);
}
voted = true;
com.newgrounds.API.rateSaveFile(this, _local2, vote);
}
function replace() {
if (busy) {
onError("Another file is currently being saved, please try again later", "replace");
return(undefined);
}
overwriteExisting();
save();
}
function save() {
if ((com.newgrounds.API.hasUserSession() && (!_author_id)) && (!_author_name)) {
_author_id = com.newgrounds.API.getUserID();
_author_name = com.newgrounds.API.getUserName();
}
if (busy) {
onError("Another file is currently being saved, please try again later", "save", "UPLOAD_IN_PROGRESS");
return(undefined);
}
busy = true;
if (isLocked()) {
onError("This file is _locked and cannot be overwritten.", "save", "PERMISSION_DENIED");
return(undefined);
}
if (!_filename) {
onError("Please provide a name for your file.", "save", "MISSING_PARAM");
return(undefined);
}
if (!_contents) {
onError("The file is empty.", "save", "MISSING_PARAM");
return(undefined);
}
img = null;
com.newgrounds.API.checkFilePrivs(this);
}
function checkPrivs(e) {
if (e.data.file.id != id) {
return(undefined);
}
if (e.success) {
if (e.data.can_write) {
can_write = e.data.can_write;
if (e.data.duplicate_id) {
duplicate_id = e.data.duplicate_id;
}
if (e.data.exists && (!overwriteAllowed())) {
onError(("You already have a file named '" + getName()) + "'", "save", "CONFIRM_REQUEST");
} else {
startFile();
}
} else {
onError("This file is _locked and cannot be overwritten", "save", "PERMISSION_DENIED");
}
} else {
onError("There was a problem looking up your file's details. The server may be down.", "save", "UNKNOWN_ERROR");
}
}
function startFile() {
if (can_write) {
if (_thumbnail) {
scanner = new com.newgrounds.encoders.ImageScanner(_thumbnail);
scanner.setCallback(this, "encodeFile");
scanner.startScan(100, 100, true);
} else {
encodeFile();
}
} else {
onError("You do not have permission to save this file.", "save", "PERMISSION_DENIED");
}
}
function encodeFile(img) {
this.img = img;
raw = com.newgrounds.encoders.SerialXML.encode(_contents).toString();
compressFile();
}
function compressFile() {
com.newgrounds.encoders.LZW2.compress(raw, function (s, p) {
p.file.onCompressed(s);
}, {file:this});
}
function onCompressed(compressed) {
raw = escape(compressed);
writeFile();
}
function getProgress() {
}
function writeFile() {
getGroup().getQuery().clearCache();
com.newgrounds.API.saveFile(this);
clearBuffer();
}
function loadContents() {
if (_contents) {
com.newgrounds.API.setCurrentSaveFile(this);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {file:this});
return(undefined);
}
if (!getFileURL()) {
var _local4 = new com.newgrounds.APIError("FILE_NOT_FOUND", "Attempted to load contents of an unsaved file.");
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {file:this, error:_local4});
return(undefined);
}
var _local2 = new LoadVars();
_local2.target = this;
var target = this;
_local2.onData = function (encoded) {
target.onLoaded(encoded);
};
_local2.load(getFileURL());
}
function onLoaded(encoded) {
if (encoded == undefined) {
var _local3 = new com.newgrounds.APIError("FILE_NOT_FOUND", "We could not find the contents for this file. It may have been deleted.");
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {file:this, error:_local3});
return(undefined);
}
com.newgrounds.encoders.LZW.setXMLSafe(true);
_contents = com.newgrounds.encoders.SerialXML.decode(com.newgrounds.encoders.LZW.decompress(encoded));
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {file:this});
}
function setViews(n) {
_views = n;
}
static var busy = false;
var can_write = false;
var _draft = false;
var status = 0;
var voted = false;
var _views = 0;
var _locked = false;
var overwrite = false;
var duplicate_id = null;
var _keys = null;
var _ratings = null;
var _author_id = null;
var _author_name = null;
static var STATUS = {PRIVATE:1, PUBLIC:2, UNAPPROVED:3, APPROVED:4};
}
Symbol 422 MovieClip [__Packages.com.newgrounds.SaveGroup] Frame 0
class com.newgrounds.SaveGroup
{
var group_name, group_id, group_type, query, ratings, keys, files;
function SaveGroup (group_id, group_name, group_type) {
this.group_name = group_name;
this.group_id = group_id;
this.group_type = group_type;
query = new com.newgrounds.SaveGroupQuery(this);
ratings = new Array();
keys = new Array();
files = new Array();
}
function get id() {
return(group_id);
}
function get name() {
return(group_name);
}
function get type() {
return(group_type);
}
function addFile(file) {
var _local2 = 0;
while (_local2 < files.length) {
if (files[_local2].getID() == file.getID()) {
files[_local2] = file;
return(undefined);
}
_local2++;
}
files.push(file);
}
function getFile(file_id) {
trace("getting the file " + file_id);
var _local2 = 0;
while (_local2 < files.length) {
trace((((("Looking up " + file_id) + " :: ") + files[_local2].getID()) + " || ") + files[_local2].getName());
if (isNumeric(file_id) and (files[_local2].getID() == Number(file_id))) {
return(files[_local2]);
}
if (files[_local2].getName() == file_id) {
return(files[_local2]);
}
_local2++;
}
return(null);
}
function addRating(rating_id, rating_name, min_value, max_value, is_float) {
var _local3 = {rating_id:rating_id, rating_name:rating_name, min_value:min_value, max_value:max_value, is_float:is_float};
if (!getRatingID(rating_name)) {
ratings.push(_local3);
}
}
function getRating(rating_id) {
var _local2 = 0;
while (_local2 < ratings.length) {
if (isNumeric(rating_id) and (ratings[_local2].rating_id == rating_id)) {
return(ratings[_local2]);
}
if (ratings[_local2].rating_name == rating_id) {
return(ratings[_local2]);
}
_local2++;
}
return(null);
}
function getRatingID(rating_id) {
var _local2 = getRating(rating_id);
if (_local2) {
return(_local2.rating_id);
}
return(null);
}
function getRatingName(rating_id) {
var _local2 = getRating(rating_id);
if (_local2) {
return(_local2.rating_name);
}
return(null);
}
function addKey(key_id, key_name, key_type) {
trace(((((">>>>>>>>>>> ADDING KEY " + key_id) + " ") + key_name) + " ") + key_type);
var _local2 = {key_id:key_id, key_name:key_name, key_type:key_type};
if (!getKey(key_name)) {
keys.push(_local2);
}
}
function getKey(key_id) {
var _local2 = 0;
while (_local2 < keys.length) {
if (isNumeric(key_id) and (keys[_local2].key_id == key_id)) {
return(keys[_local2]);
}
if (keys[_local2].key_name == key_id) {
return(keys[_local2]);
}
_local2++;
}
return(null);
}
function getKeyType(key_name, as_string) {
var _local2 = getKey(key_name);
if (_local2) {
return((as_string ? (KEY_TYPES[_local2.key_type]) : (_local2.key_type)));
}
return(null);
}
function getKeyID(key_id) {
var _local2 = getKey(key_id);
if (_local2) {
return(_local2.key_id);
}
return(null);
}
function getKeyName(key_id) {
var _local2 = getKey(key_id);
if (_local2) {
return(_local2.key_name);
}
return(null);
}
function keyValueIsValid(key, value) {
var _local4;
var _local7;
if ((typeof(value) == "number") or (Number(value).toString() == String(value))) {
value = Number(value);
_local4 = ((Math.round(value) === value) ? "integer" : "float");
} else {
_local4 = typeof(value);
if (_local4 == "string") {
var _local6 = "01234567890.-";
var _local5 = true;
var _local2 = 0;
while (_local2 < value.length) {
if (_local6.indexOf(value.charAt(_local2)) < 0) {
_local5 = false;
break;
}
_local2++;
}
if (_local5) {
value = Number(value);
_local4 = "float";
}
}
}
switch (getKeyType(key, true)) {
case "integer" :
_local7 = (_local4 == "integer") or (_local4 == "boolean");
break;
case "float" :
_local7 = ((_local4 == "float") or (_local4 == "integer")) or (_local4 == "boolean");
break;
case "string" :
_local7 = (((_local4 == "string") or (_local4 == "float")) or (_local4 == "integer")) or (_local4 == "boolean");
break;
case "boolean" :
_local7 = (((_local4 == "boolean") or (value == 1)) or (value == 0)) or (value == "");
break;
default :
_local7 = false;
}
return(_local7);
}
function isType(type) {
return(group_type == TYPES[type.toUpperCase()]);
}
function getID() {
return(group_id);
}
function getName() {
return(group_name);
}
function getType() {
return(group_type);
}
function isSystem() {
return(undefined);
}
function getQuery(as_object) {
if (as_object) {
return(query.toObject());
}
return(query);
}
function newQuery() {
query.reset();
return(query);
}
function clearQuery() {
query.reset();
}
function newFile() {
var _local2 = new com.newgrounds.SaveFile(this);
return(_local2);
}
static function isNumeric(value) {
return((typeof(value) == "number") or (Number(value).toString() == String(value)));
}
static var KEY_TYPES = [null, "float", "integer", "string", "boolean"];
static var TYPES = {SYSTEM:0, PRIVATE:1, PUBLIC:2, MODERATED:3};
}
Symbol 425 MovieClip [__Packages.com.newgrounds.SaveGroupQuery] Frame 0
class com.newgrounds.SaveGroupQuery
{
var _group, _num_results, _pages, _page, _randomize_results, file_conditions, key_conditions, rating_conditions, sort_conditions, lookup_keys, lookup_ratings, _group_by;
function SaveGroupQuery (_group) {
this._group = _group;
reset();
}
function get group() {
return(_group);
}
function get groupId() {
return(_group.getID());
}
function get resultsPerPage() {
return(_num_results);
}
function set resultsPerPage(n) {
_num_results = n;
//return(resultsPerPage);
}
function get pages() {
return(_pages);
}
function get page() {
return(_page);
}
function set page(n) {
_page = n;
//return(page);
}
function get randomize() {
return(_randomize_results);
}
function set randomize(b) {
_randomize_results = b;
//return(randomize);
}
function get results() {
return(_results);
}
function clearCache() {
_results = [];
}
function reset() {
file_conditions = new Array();
key_conditions = new Array();
rating_conditions = new Array();
sort_conditions = new Array();
lookup_keys = new Object();
lookup_ratings = new Object();
_num_results = 20;
_page = 1;
_randomize_results = false;
_group_by = new Array();
clearCache();
}
function getGroup() {
return(_group);
}
function getGroupID() {
return(_group.getID());
}
function isRandomized() {
return(_randomize_results);
}
function toObject() {
var _local2;
var _local11 = {page:_page, num_results:_num_results};
if (_randomize_results) {
_local11.randomize = 1;
}
if (!com.newgrounds.ValidationTools.isEmpty(file_conditions)) {
var _local12 = [];
_local2 = 0;
while (_local2 < file_conditions.length) {
var _local6 = file_conditions[_local2];
_local12.push({field:file_fields[_local6.field.toUpperCase()].id, operator:_local6.operator, value:_local6.value});
_local2++;
}
_local11.file_conditions = _local12;
}
if (!com.newgrounds.ValidationTools.isEmpty(key_conditions)) {
_local11.key_conditions = key_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(rating_conditions)) {
_local11.rating_conditions = rating_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(sort_conditions)) {
var _local14 = [];
_local2 = 0;
while (_local2 < sort_conditions.length) {
var _local3 = sort_conditions[_local2];
if (_local3.table == TABLE_FILES) {
var _local8 = file_fields[_local3.field.toUpperCase()].id;
} else {
var _local8 = _local3.field;
}
var _local5 = {field:_local8, table:_local3.table};
if (_local3.desc) {
_local5.desc = 1;
}
if (_local3.extra) {
_local5.extra = _local3.extra;
}
_local14.push(_local5);
_local2++;
}
_local11.sort_conditions = _local14;
}
if (!com.newgrounds.ValidationTools.isEmpty(lookup_keys)) {
var _local15 = [];
for (_local2 in lookup_keys) {
_local15.push(_local2);
}
_local11.lookup_keys = _local15;
}
if (!com.newgrounds.ValidationTools.isEmpty(lookup_ratings)) {
var _local13 = [];
for (_local2 in lookup_ratings) {
_local13.push(_local2);
}
_local11.lookup_ratings = _local13;
}
if (!com.newgrounds.ValidationTools.isEmpty(_group_by)) {
var _local16 = [];
_local2 = 0;
while (_local2 < _group_by.length) {
var _local4 = _group_by[_local2];
if (_local4.table == TABLE_FILES) {
var _local8 = file_fields[_local4.field.toUpperCase()].id;
} else {
var _local8 = _local4.field;
}
_local16.push({field:_local8, table:_local4.table});
_local2++;
}
_local11.group_by = _local16;
}
return(_local11);
}
function toString() {
var _local9;
var _local2;
var _local11 = [];
_local9 = "Lookup:\r";
var _local14 = [];
for (var _local6 in file_fields) {
_local14.push(" " + _local6);
_local2 = true;
}
_local9 = _local9 + _local14.join(newline);
_local11.push(_local9);
_local9 = "";
_local2 = false;
var _local16 = [];
for (var _local6 in lookup_keys) {
_local16.push((" KEY '" + _group.getKeyName(_local6)) + "'");
_local2 = true;
}
if (_local2) {
_local9 = _local9 + _local16.join(newline);
_local11.push(_local9);
}
_local9 = "";
_local2 = false;
var _local15 = [];
for (var _local6 in lookup_ratings) {
_local15.push((" RATING '" + _group.getRatingName(_local6)) + "'");
_local2 = true;
}
if (_local2) {
_local9 = _local9 + _local15.join(newline);
_local11.push(_local9);
}
_local9 = "Where:\r";
_local2 = false;
var _local8 = [];
var _local6 = 0;
while (_local6 < file_conditions.length) {
var _local7 = file_conditions[_local6];
var _local10 = ((((" " + _local7.field) + " ") + _local7.operator) + " ") + _local7.value;
_local8.push(_local10);
_local2 = true;
_local6++;
}
_local6 = 0;
while (_local6 < key_conditions.length) {
var _local7 = key_conditions[_local6];
var _local10 = ((((" KEY '" + _group.getKeyName(_local7.key_id)) + "' ") + _local7.operator) + " ") + _local7.value;
_local8.push(_local10);
_local2 = true;
_local6++;
}
_local6 = 0;
while (_local6 < rating_conditions.length) {
var _local7 = rating_conditions[_local6];
var _local10 = ((((" RATING '" + _group.getRatingName(_local7.rating_id)) + "' ") + _local7.operator) + " ") + _local7.value;
_local8.push(_local10);
_local2 = true;
_local6++;
}
if (_local2) {
_local9 = _local9 + _local8.join(newline);
_local11.push(_local9);
}
_local9 = "Group By:\r";
_local2 = false;
var _local13 = [];
_local6 = 0;
while (_local6 < _group_by.length) {
var _local4 = _group_by[_local6];
var _local5;
if (_local4.table == TABLE_KEYS) {
_local5 = (" KEY '" + _group.getKeyName(_local4.field)) + "'";
} else if (_local4.table == TABLE_RATINGS) {
_local5 = (" RATING '" + _group.getRatingName(_local4.field)) + "'";
} else {
_local5 = " " + _local4.field;
}
_local13.push(_local5);
_local2 = true;
_local6++;
}
if (_local2) {
_local9 = _local9 + _local13.join(newline);
_local11.push(_local9);
}
_local9 = "Order By:\r";
_local2 = false;
var _local12 = [];
if (isRandomized()) {
_local12.push(" RANDOM");
_local2 = true;
}
_local6 = 0;
while (_local6 < sort_conditions.length) {
var _local3 = sort_conditions[_local6];
if (_local3.table == TABLE_KEYS) {
var _local5 = (" KEY '" + _group.getKeyName(_local3.field)) + "'";
} else if (_local3.table == TABLE_RATINGS) {
var _local5 = ((" RATING '" + _group.getRatingName(_local3.field)) + "' ") + ((_local3.extra == "votes") ? "VOTES" : "SCORE");
} else {
var _local5 = " " + _local3.field;
}
var _local5 = _local5 + (_local3.desc ? " (DESCENDING)" : "");
_local12.push(_local5);
_local2 = true;
_local6++;
}
if (_local2) {
_local9 = _local9 + _local12.join(newline);
_local11.push(_local9);
}
_local11.push("Page:\r " + _page);
_local11.push("Results Per Page:\r " + _num_results);
return(_local11.join(newline));
}
function setResultsPerPage(r) {
_num_results = r;
clearCache();
}
function setPage(p) {
_page = p;
clearCache();
}
function setRandomize(bool) {
_randomize_results = ((bool === false) ? false : true);
}
function includeKey(key) {
if (!_group.getKeyID(key)) {
trace(((("[SaveGroupQuery Error] :: '" + key) + "' is not a valid key for the '") + _group.__get__name()) + "' group.");
return(undefined);
}
lookup_keys[_group.getKeyID(key)] = 1;
clearCache();
}
function includeRating(rating) {
if (!_group.getRatingID(rating)) {
trace(((("[SaveGroupQuery Error] :: '" + rating) + "' is not a valid rating for the '") + _group.__get__name()) + "' group.");
return(undefined);
}
lookup_ratings[_group.getRatingID(rating)] = 1;
clearCache();
}
function groupBy(field) {
addGroupItem(TABLE_FILES, field);
}
function groupByKey(key) {
if (!_group.getKeyID(key)) {
error(((("'" + key) + "' is not a valid key for the '") + _group.getName()) + "' _group");
return(undefined);
}
addGroupItem(TABLE_KEYS, _group.getKeyID(key));
}
function groupByRating(rating) {
if (!_group.getRatingID(rating)) {
error(((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' _group");
return(undefined);
}
addGroupItem(TABLE_RATINGS, _group.getRatingID(rating));
}
function addGroupItem(table, field) {
_group_by.push({table:table, field:field});
clearCache();
}
function excludeKey(key) {
delete lookup_keys[_group.getKeyID(key)];
clearCache();
}
function excludeRating(rating) {
delete lookup_ratings[_group.getRatingID(rating)];
clearCache();
}
function addCondition(field, operator, value) {
if (((field == "FILE_STATUS") && (typeof(value) == "string")) && (!(com.newgrounds.SaveFile.STATUS[value.toUpperCase()] === undefined))) {
value = com.newgrounds.SaveFile.STATUS[value.toUpperCase()];
}
if (operator == "==") {
operator = "=";
}
if ((!validateOperator(operator)) or (!validateValue(field, value))) {
return(undefined);
}
file_conditions.push({field:field, operator:operator, value:value});
clearCache();
}
function addKeyCondition(key, operator, value) {
if (!_group.getKeyID(key)) {
error(((("'" + key) + "' is not a valid key for the '") + _group.getName()) + "' save _group");
} else if ((!validateOperator(operator)) or (!validateKeyValue(key, value))) {
return(undefined);
}
key_conditions.push({key_id:_group.getKeyID(key), operator:operator, value:value});
clearCache();
}
function addRatingCondition(rating, operator, value, column) {
if (!column) {
column = "SCORE";
}
if (!_group.getRatingID(rating)) {
error(((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' save _group");
} else {
if (!validateOperator(operator)) {
return(undefined);
}
if (!com.newgrounds.ValidationTools.isNumber(value)) {
error(("Expected numeric value for rating '" + rating) + "'");
return(undefined);
}
}
if (!rating_columns[column]) {
var _local2 = [];
for (var _local3 in rating_columns) {
_local2.push(_local3);
}
error((("Invalid rating column '" + column) + "'. Valid columns are ") + _local2.join(", "));
return(undefined);
}
rating_conditions.push({rating_id:_group.getRatingID(rating), operator:operator, value:value, column:rating_columns[column]});
clearCache();
}
function sortOn(field, order) {
if (!file_fields[field]) {
var _local2 = [];
for (var _local3 in file_fields) {
_local2.push(_local3);
}
error((("'" + field) + "' is not a valid sort field. Valid fields are: ") + _local2.join(", "));
return(undefined);
}
addSortCondition(TABLE_FILES, field, order);
}
function sortOnKey(key, order) {
if (!_group.getKeyID(key)) {
error(((("'" + key) + "' is not a valid key for the '") + _group.getName()) + "' _group");
return(undefined);
}
addSortCondition(TABLE_KEYS, _group.getKeyID(key), order);
}
function sortOnRating(rating, order, column) {
if (!_group.getRatingID(rating)) {
error(((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' _group");
return(undefined);
}
if (!column) {
column = "score";
}
addSortCondition(TABLE_RATINGS, _group.getRatingID(rating), order, column);
}
function sortOnRatingScore(rating, order) {
sortOnRating(rating, order, "score");
}
function sortOnRatingVotes(rating, order) {
sortOnRating(rating, order, "votes");
}
function addSortCondition(table, field, order, extra) {
var _local7;
if (((!order) or (order == "")) or (order.toUpperCase() == "ASC")) {
_local7 = false;
} else if (order.toUpperCase() == "DESC") {
_local7 = true;
} else {
error(("'" + order) + "' is not a valid sort order!");
return(undefined);
}
var _local3 = {table:table, field:field, desc:_local7};
if (extra) {
_local3.extra = extra;
}
sort_conditions.push(_local3);
clearCache();
}
function onExecuted(results) {
_results = [];
var _local6 = 0;
while (_local6 < results.length) {
var _local2 = results[_local6];
var _local3 = new com.newgrounds.SaveFile(_group);
_local3.setName(_local2.filename);
_local3.setID(_local2.save_id);
_local3.setDescription(_local2.description);
_local3.setThumbnailURL(_local2.thumb);
_local3.setFileURL(_local2.file);
if (_local2.views) {
_local3.setViews(_local2.views);
}
_local3.setPermissions(_local2.status, _local2.locked);
_local3.authorName = _local2.user_name;
_local3.authorID = _local2.user_id;
var _local5 = 0;
while (_local5 < _local2.keys.length) {
_local3.setKey(_local2.keys[_local5].id, _local2.keys[_local5].value);
_local5++;
}
var _local4 = 0;
while (_local4 < _local2.ratings.length) {
_local3.setRating(_local2.ratings[_local4].id, _local2.ratings[_local4].votes, _local2.ratings[_local4].score);
_local4++;
}
getGroup().addFile(_local3);
_results.push(_local3);
_local6++;
}
callEventDispatcher();
}
function hasResults() {
return(_results && (_results.length > 0));
}
function callEventDispatcher() {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.QUERY_COMPLETE, true, {query:this});
}
function execute() {
if (hasResults() && (!isRandomized())) {
callEventDispatcher();
return(undefined);
}
_group.query = this;
com.newgrounds.API.lookupSaveFiles(_group);
}
function processResults(files) {
return(null);
}
function validateKeyValue(key, value) {
var _local3 = _group.getKeyType(key);
if (_local3) {
var _local2 = com.newgrounds.SaveGroup.KEY_TYPES[_local3];
if ((_local2 == "float") and com.newgrounds.ValidationTools.isFloat(value)) {
return(true);
}
if ((_local2 == "integer") and com.newgrounds.ValidationTools.isInteger(value)) {
return(true);
}
if ((_local2 == "string") and com.newgrounds.ValidationTools.isString(value)) {
return(true);
}
error(((("Expected type " + _local2) + " for key '") + key) + "'");
}
return(false);
}
function validateValue(field, value) {
if (file_fields[field]) {
if ((file_fields[field].type == "integer") and com.newgrounds.ValidationTools.isInteger(value)) {
return(true);
}
if ((file_fields[field].type == "float") and com.newgrounds.ValidationTools.isFloat(value)) {
return(true);
}
if ((file_fields[field].type == "string") and com.newgrounds.ValidationTools.isString(value)) {
return(true);
}
error(((("Expecting " + file_fields[field].type) + " value on '") + field) + "' condition");
} else {
var _local2 = [];
for (var _local4 in file_fields) {
_local2.push(_local4);
}
error((("'" + field) + "' is not a searchable field. Valid fields are: ") + _local2.join(", "));
}
return(false);
}
function validateOperator(operator) {
var _local2 = 0;
while (_local2 < valid_operators.length) {
if (operator == valid_operators[_local2]) {
return(true);
}
_local2++;
}
error((("'" + operator) + "' is not a valid lookup operation. Valid operations are: ") + valid_operators.join(", "));
return(false);
}
function error(msg) {
trace("[QUERY ERROR] :: " + msg);
}
static var TABLE_FILES = 1;
static var TABLE_KEYS = 2;
static var TABLE_RATINGS = 3;
var _results = [];
static var file_fields = {FILE_ID:{id:0, field:"file_id", type:"integer"}, AUTHOR_ID:{id:1, field:"user_id", type:"integer"}, AUTHOR_NAME:{id:2, field:"user_name", type:"string"}, FILE_NAME:{id:3, field:"file_name", type:"string"}, CREATED_ON:{id:4, field:"created", type:"string"}, UPDATED_ON:{id:5, field:"last_update", type:"string"}, TOTAL_VIEWS:{id:6, field:"views", type:"integer"}, FILE_STATUS:{id:7, field:"status", type:"integer"}};
static var rating_columns = {TOTAL_VOTES:"votes", SCORE:"score"};
static var valid_operators = ["=", "<", ">", "!=", "<>", "<=", ">=", "*", "!*", "!*=", "!=*", "*=", "=*"];
}
Symbol 427 MovieClip [__Packages.com.newgrounds.encoders.ImageScanner] Frame 0
class com.newgrounds.encoders.ImageScanner
{
var image_source, source_width, source_height, sourceBitmap, callback_target, callback_function, hash, cube, basen, xpos, ypos, pixels, busy, canvas_width, canvas_height, resizedBitmap, copyBitmap, output, draw_interval, callback_interval;
function ImageScanner (the_source) {
if (the_source) {
image_source = the_source;
} else {
image_source = _root;
}
reset();
if (typeof(image_source) == "movieclip") {
if (image_source == _root) {
source_width = Stage.width;
source_height = Stage.height;
} else {
source_width = Math.floor(image_source._width);
source_height = Math.floor(image_source._height);
}
sourceBitmap = new flash.display.BitmapData(source_width, source_height, false, 4294967295);
sourceBitmap.draw(_root);
} else if (image_source.width) {
source_width = image_source.width;
source_height = image_source.height;
sourceBitmap = image_source;
} else {
error("You can only use BitMaptData and MovieClip objects to create images");
}
}
function setCallback(target, funct) {
if (target && (funct)) {
callback_target = target;
callback_function = funct;
}
}
function reset() {
callback_target = null;
callback_function = null;
debug.bad_pixels = 0;
hash = "0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&";
var _local3 = Math.pow(hash.length, 2);
trace("MAX COLORS: " + _local3);
var _local2 = Math.floor(Math.pow(_local3, 0.333333333333333)) - 1;
var _local4 = Math.pow(_local2, 3);
cube = _local2;
basen = new com.newgrounds.encoders.BaseN(hash);
xpos = 0;
ypos = 0;
pixels = 0;
busy = false;
}
function startScan(w, h, s) {
if (w) {
image_width = w;
}
if (h) {
image_height = h;
}
if (s != undefined) {
crop = s;
}
var _local7 = _root.getNextHighestDepth();
var _local6 = _root.createEmptyMovieClip("API_image_container_" + _local7, _local7);
var _local5 = _local6.createEmptyMovieClip("canvas", 100);
_local5.attachBitmap(sourceBitmap, 100);
if (crop) {
if ((image_width / source_width) > (image_height / source_height)) {
canvas_width = image_width;
canvas_height = Math.ceil(source_height * (image_width / source_width));
} else {
canvas_height = image_height;
canvas_width = Math.ceil(source_width * (image_height / source_height));
}
} else {
canvas_width = image_width;
canvas_height = image_height;
}
_local5._x = Math.round((image_width - canvas_width) / 2);
_local5._width = canvas_width;
_local5._height = canvas_height;
resizedBitmap = new flash.display.BitmapData(image_width, image_height, false, 4294967295);
resizedBitmap.draw(_local6);
_local6.removeMovieClip();
copyBitmap = new flash.display.BitmapData(image_width, image_height, false, 4294967295);
var _local3 = "" + image_width;
while (_local3.length < 3) {
_local3 = "0" + _local3;
}
var _local4 = "" + image_height;
while (_local4.length < 3) {
_local4 = "0" + _local4;
}
output = _local3 + _local4;
draw_interval = setInterval(this, "drawChunk", 10);
busy = false;
return(resizedBitmap);
}
function getBitmapData() {
return(copyBitmap);
}
function getBytesTotal() {
return((image_width * image_height) * 2);
}
function getBytesScanned() {
return(pixels * 2);
}
function getProgress() {
return(Math.round((getBytesScanned() / getBytesTotal()) * 100));
}
function drawChunk() {
if (!busy) {
busy = true;
var _local2 = 0;
while (_local2 < pixels_per_chunk) {
if (!nextPixel()) {
clearInterval(draw_interval);
callback_interval = setInterval(this, "doCallback", 25);
busy = true;
break;
}
_local2++;
}
busy = false;
}
}
function doCallback() {
busy = false;
clearInterval(callback_interval);
if (callback_target and callback_function) {
callback_target[callback_function](output);
} else {
onScanComplete(output);
}
}
function onScanComplete(packet) {
sendMessage(("packet size: " + output.length) + " bytes", "onScanComplete");
}
function nextPixel() {
var _local15 = xpos;
var _local14 = ypos;
var _local7 = resizedBitmap.getPixel(_local15, _local14);
var _local17 = (_local7 >> 16) & 255;
var _local20 = (_local7 >> 8) & 255;
var _local16 = (_local7 >> 0) & 255;
var _local11 = Math.round(((_local17 + 1) / 256) * cube);
var _local10 = Math.round(((_local20 + 1) / 256) * cube);
var _local13 = Math.round(((_local16 + 1) / 256) * cube);
var _local12 = (((_local11 * (cube + 1)) * (cube + 1)) + (_local10 * (cube + 1))) + _local13;
var _local6 = basen.encode(_local12, 2);
output = output + _local6;
if (_local6.length != 2) {
trace("bad pixel " + _local6);
}
var _local5 = basen.decode(_local6);
var _local18 = _local5;
var _local8 = _local5 % (cube + 1);
_local5 = (_local5 - _local8) / (cube + 1);
var _local9 = _local5 % (cube + 1);
var _local19 = (_local5 - _local9) / (cube + 1);
if (((_local13 != _local8) and (_local10 != _local9)) and (_local11 != _local10)) {
debug.bad_pixels++;
trace((((((("BAD PIXEL " + debug.bad_pixels) + ") ") + _local12) + " != ") + _local18) + " ") + _local6);
trace(basen.debug.lastencode);
}
var _local2 = Math.round((_local19 / cube) * 255).toString(16);
var _local4 = Math.round((_local9 / cube) * 255).toString(16);
var _local3 = Math.round((_local8 / cube) * 255).toString(16);
while (_local2.length < 2) {
_local2 = "0" + _local2;
}
while (_local4.length < 2) {
_local4 = "0" + _local4;
}
while (_local3.length < 2) {
_local3 = "0" + _local3;
}
copyBitmap.setPixel(_local15, _local14, Number((("0x" + _local2) + _local4) + _local3));
pixels++;
if (pixels >= (image_width * image_height)) {
return(false);
}
xpos++;
if (xpos >= image_width) {
xpos = 0;
ypos++;
}
return(true);
}
function error(e, f) {
sendMessage(e, f, "ERROR");
}
function sendMessage(msg, func, type) {
var _local1 = "ImageScanner";
if (func) {
_local1 = _local1 + (("." + func) + "()");
}
if (type) {
_local1 = (type + " in ") + _local1;
}
_local1 = _local1 + (" :: " + msg);
trace(_local1);
}
var image_width = 100;
var image_height = 100;
var crop = true;
var pixels_per_chunk = 500;
var debug = new Object();
}
Symbol 426 MovieClip [__Packages.com.newgrounds.encoders.BaseN] Frame 0
class com.newgrounds.encoders.BaseN
{
var ceiling, hashIndex, bitSize, hashVal, i;
function BaseN (hash) {
ceiling = 100000000000000;
if (hash) {
hashIndex = hash;
} else {
hashIndex = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/";
}
bitSize = hashIndex.length;
hashVal = new Object();
i = 0;
while (i < bitSize) {
hashVal[hashIndex.charAt(i)] = i;
i++;
}
}
function verify(s) {
if (hashVal[s] != undefined) {
return(true);
}
return(false);
}
function encode(n, minchars) {
debug.lastencode = "";
if (typeof(i) != "string") {
n = n.toString();
}
if (n.charAt(0) == "-") {
var _local3 = "-";
n = n.substring(1);
} else {
var _local3 = "";
}
if (String(n).indexOf(".") > -1) {
var _local4 = String(n).split(".", 2);
return(((_local3 + baseNEncoder(_local4[0], minchars)) + ".") + baseNEncoder(_local4[1]));
}
debug.lastencode = debug.lastencode + "\tNo decimal\r";
return(_local3 + baseNEncoder(n, minchars));
}
function decode(s) {
var _local4 = 1;
if (s.charAt(0) == "-") {
_local4 = -1;
s = s.substring(1, s.length);
}
var _local3 = s.indexOf(".");
if (_local3 > -1) {
var _local5 = Math.pow(10, baseNDecoder(s.substring(_local3 + 1, s.length)));
return((baseNDecoder(s.substring(0, _local3)) / _local5) * _local4);
}
return(baseNDecoder(s) * _local4);
}
function baseNEncoder(n, minchars) {
if (!minchars) {
minchars = 1;
}
var _local4 = "";
while (n != 0) {
n = Math.round(n);
var _local3 = n % bitSize;
if (Math.round(_local3) != _local3) {
trace((((((((("BaseN failed on " + n) + "%") + bitSize) + " = ") + _local3) + " ") + int(n)) + " ") + int(bitSize));
}
_local4 = hashIndex.charAt(_local3) + _local4;
debug.lastencode = debug.lastencode + (((((((("\t-> n:" + n) + " % bitSize:") + bitSize) + " = ") + _local3) + ", final char=") + _local4) + newline);
n = n - _local3;
n = n / bitSize;
}
if (minchars) {
while (_local4.length < minchars) {
_local4 = hashIndex.charAt(0) + _local4;
}
}
return(_local4);
}
function baseNDecoder(s) {
var _local2 = 0;
var _local6 = 0;
i = 0;
while (i < s.length) {
var _local3 = s.charAt((s.length - i) - 1);
if (_local3 == hashIndex.charAt(0)) {
var _local5 = 0;
} else {
var _local5 = hashVal[_local3] * Math.pow(bitSize, i);
}
_local2 = _local2 + _local5;
if (_local2 >= ceiling) {
_local6 = _local6 + ((_local2 - (_local2 % ceiling)) / ceiling);
_local2 = _local2 % ceiling;
}
i++;
}
if (_local6 > 0) {
_local2 = "" + _local2;
while (_local2.length < (ceiling.toString().length - 1)) {
_local2 = "0" + _local2;
}
_local2 = ("" + _local6) + _local2;
}
return(_local2);
}
var debug = new Object();
}
Symbol 437 MovieClip [__Packages.com.newgrounds.APIEventDispatcher] Frame 0
class com.newgrounds.APIEventDispatcher
{
function APIEventDispatcher () {
}
function addEventListener(event, callback, target) {
if (!target) {
throw "Attempted to create a listener without providing a target object.";
}
if (!listeners[event]) {
listeners[event] = [];
} else {
removeEventListener(event, target);
}
listeners[event].push({target:target, callback:callback});
}
function removeEventListener(event, target) {
if (!target) {
throw "Attempted to remove a listener without providing a target object.";
}
if ((!listeners[event]) || (listeners[event].length < 1)) {
return(undefined);
}
var _local4 = [];
var _local2 = 0;
while (_local2 < listeners[event].length) {
if (listeners[event][_local2].target != target) {
_local4.push(listeners[event][_local2]);
}
_local2++;
}
listeners[event] = _local4;
}
function dispatchEvent(event) {
if (!hasEventListener(event.__get__type())) {
return(false);
}
collectGarbage(event.__get__type());
var _local2 = 0;
while (_local2 < listeners[event.__get__type()].length) {
var _local4 = listeners[event.__get__type()][_local2].callback;
if (listeners[event.__get__type()][_local2].target) {
var _local5 = listeners[event.__get__type()][_local2].target;
_local4.call(_local5, event);
} else {
_local4(event);
}
_local2++;
}
return(true);
}
function hasEventListener(event) {
return((listeners[event] != undefined) && (listeners[event].length > 0));
}
function collectGarbage(event) {
var _local5 = [];
if (!hasEventListener) {
return(undefined);
}
var _local2 = 0;
while (_local2 < listeners[event].length) {
var _local4 = listeners[event][_local2].target;
if (_local4) {
_local5.push(listeners[event][_local2]);
}
_local2++;
}
listeners[event] = _local5;
}
var listeners = {};
}
Symbol 424 MovieClip [__Packages.com.newgrounds.APIEvent] Frame 0
class com.newgrounds.APIEvent
{
var _type, _success, _error, data;
function APIEvent (type, success, data) {
_type = type;
_success = success;
if (data.isError()) {
_error = data;
this.data = null;
} else if (data.error && (data.error.isError())) {
_error = data.error;
this.data = data;
} else {
this.data = data;
_error = null;
}
}
function get error() {
return(_error);
}
function get type() {
return(_type);
}
function get success() {
return(_success);
}
static var API_CONNECTED = "apiConnected";
static var ADS_APPROVED = "adsApproved";
static var AD_ATTACHED = "adAttached";
static var HOST_BLOCKED = "hostBlocked";
static var NEW_VERSION_AVAILABLE = "newVersionAvailable";
static var EVENT_LOGGED = "eventLogged";
static var SCORE_POSTED = "scorePosted";
static var SCORES_LOADED = "scoresLoaded";
static var UNLOCK_MEDAL = "unlockMedal";
static var MEDAL_UNLOCKED = "medalUnlocked";
static var MEDALS_LOADED = "medalsLoaded";
static var METADATA_LOADED = "metadataLoaded";
static var FILE_PRIVS_LOADED = "filePrivsLoaded";
static var FILE_SAVED = "fileSaved";
static var FILE_LOADED = "fileLoaded";
static var FILE_INITIALIZED = "fileInitialized";
static var FILE_REQUESTED = "fileRequested";
static var QUERY_COMPLETE = "queryComplete";
static var VOTE_COMPLETE = "voteComplete";
static var API_ERROR = "apiError";
static var UNCAUGHT_EVENT = "uncaughtEvent";
}
Symbol 431 MovieClip [__Packages.com.newgrounds.RemoteAuth] Frame 0
class com.newgrounds.RemoteAuth
{
var auth_token, receiver;
function RemoteAuth (id) {
auth_token = id;
System.security.allowDomain("*");
receiver = new LocalConnection();
receiver.allowDomain = function () {
return(true);
};
receiver.onAuth = function (auth_result) {
trace("remote login is a success! " + auth_result);
com.newgrounds.API.onRemoteAuthentication(auth_result);
};
receiver.connect("_" + auth_token);
}
function get token() {
return(auth_token);
}
}
Symbol 774 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 _local27 = {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, _local27);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def") {
options.ad_started();
options.ad_finished();
return(undefined);
}
var clip = options.clip;
var _local24 = 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 _local15 = _getRes(options);
var _local5 = _local15[0];
var _local14 = _local15[1];
mc._x = _local5 * 0.5;
mc._y = _local14 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local5 * -0.5;
chk._y = _local14 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
if (options.no_progress_bar) {
_local7._visible = false;
delete options.no_progress_bar;
} else {
_local7._x = 10;
_local7._y = _local14 - 20;
}
var _local23 = options.color;
delete options.color;
var _local21 = options.background;
delete options.background;
var _local25 = options.outline;
delete options.outline;
var _local6 = _local7.createEmptyMovieClip("_outline", 1);
_local6.beginFill(_local21);
_local6.moveTo(0, 0);
_local6.lineTo(_local5 - 20, 0);
_local6.lineTo(_local5 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
_local6.endFill();
var _local4 = _local7.createEmptyMovieClip("_inside", 2);
_local4.beginFill(_local23);
_local4.moveTo(0, 0);
_local4.lineTo(_local5 - 20, 0);
_local4.lineTo(_local5 - 20, 10);
_local4.lineTo(0, 10);
_local4.lineTo(0, 0);
_local4.endFill();
_local4._xscale = 0;
var _local8 = _local7.createEmptyMovieClip("_outline", 3);
_local8.lineStyle(0, _local25, 100);
_local8.moveTo(0, 0);
_local8.lineTo(_local5 - 20, 0);
_local8.lineTo(_local5 - 20, 10);
_local8.lineTo(0, 10);
_local8.lineTo(0, 0);
chk.ad_msec = _local24;
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;
}
};
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 _local10 = this._parent._parent;
var _local3 = _local10;
while ((!_local3.getBytesTotal()) && (_local3)) {
_local3 = _local3._parent;
}
if (!_local3) {
_local3 = _root;
}
var _local13 = this._parent._mochiad_ctr;
var _local7 = getTimer() - this.started;
var _local5 = false;
var _local6 = _local3.getBytesTotal();
var _local9 = _local3.getBytesLoaded();
var _local4 = (100 * _local9) / _local6;
var _local12 = (100 * _local7) / chk.ad_msec;
var _local11 = this._mochiad_bar._inside;
var _local15 = Math.min(100, Math.min(_local4 || 0, _local12));
_local15 = Math.max(this.last_pcnt, _local15);
this.last_pcnt = _local15;
_local11._xscale = _local15;
options.ad_progress(_local15);
if (sendHostProgress) {
mochi.as2.MochiAd.containerNotify(clip, {id:"hostLoadPcnt", pcnt:_local4}, clip._mochiad._containerLCName);
if (_local4 == 100) {
sendHostProgress = false;
}
}
if (!chk.showing) {
var _local8 = _local13.getBytesTotal();
if ((_local8 > 0) || (typeof(_local8) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if ((_local7 > chk.ad_timeout) && (_local4 == 100)) {
options.ad_failed();
_local5 = true;
}
}
if (_local7 > chk.ad_msec) {
_local5 = true;
}
if (((_local6 > 0) && (_local9 >= _local6)) && (_local5)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showClickAwayAd(options) {
var _local10 = {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, _local10);
var clip = options.clip;
var _local9 = options.ad_timeout;
delete options.ad_timeout;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var _local3 = clip._mochiad;
_local3.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local11 = _local5[0];
var _local8 = _local5[1];
_local3._x = _local11 * 0.5;
_local3._y = _local8 * 0.5;
var chk = _local3.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_timeout = _local9;
chk.started = getTimer();
chk.showing = false;
_local3.lc.adLoaded = options.ad_loaded;
_local3.lc.adSkipped = options.ad_skipped;
_local3.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
_local3.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
var _local21 = false;
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 _local12 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local12);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local6 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local6._mochiad_loaded) {
return(null);
}
var _local11 = options.depth;
delete options.depth;
var mc = _local6.createEmptyMovieClip("_mochiad", _local11);
var _local10 = _getRes(options);
options.res = (_local10[0] + "x") + _local10[1];
options.server = options.server + options.id;
delete options.id;
_local6._mochiad_loaded = true;
if (_local6._url.indexOf("http") != 0) {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
}
var _local4 = mc.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local9 = _local4.server;
delete _local4.server;
var _local13 = _allowDomains(_local9);
mc.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 _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = mc;
_local5.name = _local8;
_local5.hostname = _local13;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
mc.lc = _local5;
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
_local4.lc = _local8;
_local4.st = getTimer();
if (!options.skip) {
_local4.loadMovie(_local9 + ".swf", "POST");
}
return(mc);
}
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 775 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 776 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.2 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 777 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 778 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 779 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 432 MovieClip [__Packages.com.newgrounds.Medal] Frame 0
class com.newgrounds.Medal
{
var _medal_id, _medal_name, _medal_value, _medal_difficulty;
function Medal (id, name, value, difficulty, unlocked, _icon_url) {
if ((((id == undefined) || (name == undefined)) || (value == undefined)) || (difficulty == undefined)) {
com.newgrounds.API.fatalError("Medal instances require an id, name, value and difficulty");
}
_medal_id = id;
_medal_name = name;
_medal_value = value;
_medal_difficulty = difficulty;
if (unlocked) {
_medal_unlocked = true;
}
if (_icon_url) {
this._icon_url = _icon_url;
}
}
function get difficulty() {
return(difficulty_names[_medal_difficulty]);
}
function get difficultyId() {
return(_medal_difficulty);
}
function get icon_url() {
return(_icon_url);
}
function get id() {
return(_medal_id);
}
function get name() {
return(_medal_name);
}
function get unlocked() {
return(_medal_unlocked);
}
function get value() {
return(_medal_value);
}
function isUnlocked() {
return(_medal_unlocked);
}
function unlock() {
if (!isUnlocked()) {
com.newgrounds.API.unlockMedal(this);
}
}
function setUnlocked(u) {
_medal_unlocked = u;
}
function attachIcon(target, depth) {
if (!depth) {
depth = target.getNextHighestDepth();
}
var _local3 = target.createEmptyMovieClip("Asset_Medal_Icon_" + getID(), depth);
if (_icon_url) {
_local3.loadMovie(_icon_url);
} else {
var _local4 = flash.display.BitmapData.loadBitmap("Asset_default_medal_icon_" + getDifficulty(), depth);
_local3.attachBitmap(_local4, depth, true);
}
}
function getID() {
return(_medal_id);
}
function getName() {
return(_medal_name);
}
function getValue() {
return(_medal_value);
}
function getDifficulty(as_string) {
if (as_string) {
return(difficulty_names[_medal_difficulty]);
}
return(_medal_difficulty);
}
var _medal_unlocked = false;
var _icon_loaded = false;
var _icon_width = 50;
var _icon_height = 50;
var _icon_url = null;
static var difficulty_names = new Array(null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal");
}
Symbol 780 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 781 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 345 MovieClip [__Packages.com.newgrounds.components.APIConnector] Frame 0
class com.newgrounds.components.APIConnector extends MovieClip
{
var _x, _y, fake_session, api_id, nextFrame, _visible, error_screens, medal_popups, debug, version, local_data, encryption_key, stop, gotoframe_interval, _totalframes, _framesloaded, gotoAndStop;
function APIConnector () {
super();
_x = Math.round(_x);
_y = Math.round(_y);
if (fake_session and (com.newgrounds.API.getHost() == "localhost")) {
com.newgrounds.API.setFakeSession(true);
}
if (api_id && (!com.newgrounds.API.isConnected())) {
nextFrame();
_visible = false;
setGotoFrame("connecting");
if (error_screens) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, onNewVersion, this);
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.HOST_BLOCKED, onBadHost, this);
}
if (medal_popups) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, doUnlock, this);
}
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.API_CONNECTED, onConnected, this);
if (com.newgrounds.API.isPublishedHost()) {
debug = false;
}
if (version) {
com.newgrounds.API.setVersion(version);
}
if (!com.newgrounds.API.hasUserSession()) {
var _local3 = com.newgrounds.API.loadLocal("api_connector_data");
if (_local3) {
local_data = _local3;
} else {
local_data = {medals_unlocked:new Array()};
}
}
com.newgrounds.API.setPreload(true);
com.newgrounds.API.connect(api_id, encryption_key, debug);
} else if (api_id && (com.newgrounds.API.isConnected())) {
_visible = false;
setGotoFrame("done");
}
stop();
}
function doUnlock(e) {
var _local5 = _root.attachMovie("NewgroundsAPIAsset_Medal_Popup", "medal_pop_" + e.data.medal.getID(), _root.getNextHighestDepth());
if (e.data.x != undefined) {
_local5._x = e.data.x + 254;
} else {
_local5._x = Stage.width;
}
if (e.data.x != undefined) {
_local5._y = e.data.y + 73;
} else {
_local5._y = Stage.height;
}
_local5.medal = e.data.medal;
var _local3 = com.newgrounds.API.getMedals();
var _local2 = 0;
while (_local2 < _local3.length) {
if ((_local3[_local2].getID() != e.data.medal.getID()) && (_root["medal_pop_" + _local3[_local2].getID()])) {
_root["medal_pop_" + _local3[_local2].getID()]._y = _root["medal_pop_" + _local3[_local2].getID()]._y - 70;
}
_local2++;
}
}
function onLoginError() {
var _local2 = _root.attachMovie("Asset_Login_Warning", "Asset_Login_Warning", _root.getNextHighestDepth());
}
function onConnectionError() {
var _local3 = _root.attachMovie("Asset_Connection_Error", "Asset_Connection_Error", _root.getNextHighestDepth());
setGotoFrame("done");
}
function onConnected(event, params) {
if (event.success) {
setGotoFrame("connected");
if (((error_screens && (com.newgrounds.API.isPublishedHost())) && (com.newgrounds.API.hasPublisher())) && (!com.newgrounds.API.hasUserSession())) {
onLoginError();
}
} else if (error_screens) {
onConnectionError();
}
}
function onNewVersion() {
var _local2 = _root.attachMovie("NewgroundsAsset_New_Version_Available", "NewgroundsAsset_New_Version_Available", _root.getNextHighestDepth());
_local2.official_version_url = com.newgrounds.API.getOfficialURL();
}
function onBadHost() {
var _local2 = _root.attachMovie("NewgroundsAsset_Illegal_Host", "NewgroundsAsset_Illegal_Host", _root.getNextHighestDepth());
_local2.official_version_url = com.newgrounds.API.getOfficialURL();
}
function setGotoFrame(frame) {
if (goto_frame == null) {
goto_frame = frame;
gotoframe_interval = setInterval(this, "gotoFrameIfLoaded", 50);
}
}
function gotoFrameIfLoaded() {
if ((goto_frame != null) && (_framesloaded == _totalframes)) {
_visible = true;
gotoAndStop(goto_frame);
goto_frame = null;
clearInterval(gotoframe_interval);
}
}
var goto_frame = null;
}
Symbol 423 MovieClip [__Packages.com.newgrounds.ValidationTools] Frame 0
class com.newgrounds.ValidationTools
{
function ValidationTools () {
}
static function isNumber(v) {
if (typeof(v) == "number") {
return(true);
}
if ((typeof(v) == "string") and (Number(v).toString() == v)) {
return(true);
}
return(false);
}
static function isInteger(v) {
if (isNumber(v)) {
v = Number(v);
return(Math.floor(v) == v);
}
return(false);
}
static function isFloat(v) {
return(isNumber(v));
}
static function isString(v) {
if ((typeof(v) == "string") or (typeof(v) == "number")) {
return(true);
}
return(false);
}
static function isEmpty(o) {
for (var _local2 in o) {
return(false);
}
return(true);
}
}
Symbol 428 MovieClip [__Packages.com.newgrounds.encoders.SerialXML] Frame 0
class com.newgrounds.encoders.SerialXML
{
function SerialXML () {
}
static function decode(xml) {
if (!(xml instanceof XML)) {
xml = new XML(xml);
}
var _local2 = populateObject(xml.firstChild, {});
return(_local2.DATA);
}
static function encode(obj) {
var _local1 = new XML();
populateXML(_local1, obj, "DATA");
return(_local1);
}
static function populateObject(child, object) {
var _local6 = child.nodeName;
var _local5 = getValue(_local6, child.attributes.v);
var _local4 = child.attributes.n;
if (object instanceof Array) {
_local4 = object.length;
object.push(_local5);
} else {
object[_local4] = _local5;
}
if (child.hasChildNodes()) {
var _local1 = 0;
while (_local1 < child.childNodes.length) {
populateObject(child.childNodes[_local1], object[_local4]);
_local1++;
}
}
return(object);
}
static function populateXML(child, obj, name) {
if (obj === undefined) {
return(undefined);
}
var _local5 = new XML();
var _local2;
if (obj instanceof Array) {
_local2 = _local5.createElement(getType(obj));
if (name) {
_local2.attributes.n = name;
}
child.appendChild(_local2);
var _local4 = 0;
while (_local4 < obj.length) {
populateXML(_local2, obj[_local4]);
_local4++;
}
} else if (typeof(obj) == "object") {
_local2 = _local5.createElement(getType(obj));
if (name) {
_local2.attributes.n = name;
}
child.appendChild(_local2);
for (var _local4 in obj) {
populateXML(_local2, obj[_local4], _local4);
}
} else {
_local2 = _local5.createElement(getType(obj));
if (name) {
_local2.attributes.n = name;
}
if (getType(obj).length == 1) {
_local2.attributes.v = obj;
}
child.appendChild(_local2);
}
}
static function getValue(type, stringval) {
switch (type.toUpperCase()) {
case "O" :
return(new Object());
case "A" :
return(new Array());
case "N" :
return(Number(stringval));
case "S" :
return(String(stringval));
case "TRUE" :
return(true);
case "FALSE" :
return(false);
}
return(null);
}
static function getType(obj) {
switch (((obj instanceof Array) ? "array" : (typeof(obj)))) {
case "array" :
return("A");
case "object" :
return("O");
case "string" :
return("S");
case "number" :
return("N");
case "boolean" :
return(((obj === true) ? "TRUE" : "FALSE"));
}
return("NULL");
}
}
Symbol 429 MovieClip [__Packages.com.newgrounds.encoders.LZW2] Frame 0
class com.newgrounds.encoders.LZW2
{
static var comp_dict, pos, result, buffer, nbChar, splitStr, len, local, interval;
function LZW2 () {
}
static function doCompressorConfig() {
comp_dict = [];
var _local1 = 0;
while (_local1 < 256) {
comp_dict[String.fromCharCode(_local1)] = _local1;
_local1++;
}
comp_dict["<"] = 256;
comp_dict[">"] = 257;
comp_dict["&"] = 258;
comp_dict["\""] = 259;
comp_dict["'"] = 260;
pos = 0;
result = "";
buffer = "";
nbChar = 256 + skipnum;
}
static function compress(string, callback, callback_params) {
doCompressorConfig();
if (busy) {
trace("[LZW COMPRESSOR] :: Compression can not begin until previous compression or decompression is complete!");
return(undefined);
}
splitStr = string.split("");
string = "";
len = splitStr.length;
local = {delay:30, callback:callback, callback_params:callback_params, compress_chunk:function () {
com.newgrounds.encoders.LZW2.compress_chunk();
}, busy:false, complete:false};
interval = setInterval(local, "compress_chunk", 5);
}
static function getProgress() {
return(Math.round((pos / len) * 100));
}
static function compress_chunk() {
if (local.delay > 0) {
local.delay--;
} else if (!local.busy) {
local.busy = true;
var _local1 = 0;
while (_local1 < max_chunk_length) {
encode_next();
if (local.complete) {
break;
}
_local1++;
}
local.busy = false;
}
if (local.complete) {
trace((((((((("LZW2 complete " + nbChar) + " ") + comp_dict.length) + " ") + len) + " ") + pos) + " ") + skipnum);
clearInterval(interval);
local.callback(result, local.callback_params);
result = "";
buffer = "";
}
}
static function encode_next() {
if (pos <= len) {
var _local1 = splitStr[pos];
if (!(comp_dict[buffer + _local1] === undefined)) {
buffer = buffer + _local1;
} else {
result = result + String.fromCharCode(comp_dict[buffer]);
comp_dict[buffer + _local1] = nbChar;
nbChar++;
buffer = _local1;
}
pos++;
} else {
local.complete = true;
return(undefined);
}
}
static var comp_config = false;
static var skipnum = 5;
static var busy = false;
static var max_chunk_length = 12000;
}
Symbol 430 MovieClip [__Packages.com.newgrounds.encoders.LZW] Frame 0
class com.newgrounds.encoders.LZW
{
function LZW () {
}
static function setXMLSafe(x) {
xmlsafe = x;
}
static function compress(str, escape_chars) {
var _local2 = new Array();
var _local11 = (xmlsafe ? 5 : 0);
var _local5 = 0;
while (_local5 < 256) {
_local2[String.fromCharCode(_local5)] = _local5;
_local5++;
}
if (xmlsafe) {
_local2["<"] = 256;
_local2[">"] = 257;
_local2["&"] = 258;
_local2["\""] = 259;
_local2["'"] = 260;
}
var _local7 = "";
var _local8 = str.split("");
var _local9 = _local8.length;
var _local6 = 256 + _local11;
var _local1 = "";
var _local4;
_local5 = 0;
while (_local5 <= _local9) {
var _local3 = _local8[_local5];
if (!(_local2[_local1 + _local3] === undefined)) {
_local1 = _local1 + _local3;
} else {
_local4 = String.fromCharCode(_local2[_local1]);
if (escape_chars and (((_local2[_local1] < 33) or (_local2[_local1] > 126)) or (_local4 == "%"))) {
_local4 = escape(_local4);
}
_local7 = _local7 + _local4;
_local2[_local1 + _local3] = _local6;
_local6++;
_local1 = _local3;
}
_local5++;
}
return(_local7);
}
static function decompress(str) {
var _local4 = new Array();
var _local10 = (xmlsafe ? 5 : 0);
var _local6 = 0;
while (_local6 < 256) {
var _local9 = String.fromCharCode(_local6);
_local4[_local6] = _local9;
_local6++;
}
if (xmlsafe) {
_local4[256] = "<";
_local4[257] = ">";
_local4[258] = "&";
_local4[259] = "\"";
_local4[260] = "'";
}
var _local11 = str;
var _local13 = _local11.split("");
var _local12 = _local13.length;
var _local7 = 256 + _local10;
var _local1 = "";
var _local2 = "";
var _local8 = "";
_local6 = 0;
while (_local6 < _local12) {
var _local5 = _local11.charCodeAt(_local6);
var _local3 = _local4[_local5];
if (_local1 == "") {
_local1 = _local3;
_local8 = _local8 + _local3;
} else if (_local5 <= (255 + _local10)) {
_local8 = _local8 + _local3;
_local2 = _local1 + _local3;
_local4[_local7] = _local2;
_local7++;
_local1 = _local3;
} else {
_local2 = _local4[_local5];
if (_local2 == undefined) {
_local2 = _local1 + _local1.slice(0, 1);
}
_local8 = _local8 + _local2;
_local4[_local7] = _local1 + _local2.slice(0, 1);
_local7++;
_local1 = _local2;
}
_local6++;
}
return(_local8);
}
static function compress_fp6(str) {
var _local3 = new Array();
var _local10 = (xmlsafe ? 5 : 0);
var _local4 = 0;
while (_local4 < 256) {
_local3[String(_local4)] = _local4;
_local4++;
}
if (xmlsafe) {
var _local14 = String(new String("<").charCodeAt(0));
var _local11 = String(new String(">").charCodeAt(0));
var _local13 = String(new String("&").charCodeAt(0));
var _local15 = String(new String("\"").charCodeAt(0));
var _local12 = String(new String("'").charCodeAt(0));
_local3[_local14] = 256;
_local3[_local11] = 257;
_local3[_local13] = 258;
_local3[_local15] = 259;
_local3[_local12] = 260;
}
var _local7 = "";
var _local16 = str;
var _local8 = _local16.split("");
var _local9 = _local8.length;
var _local6 = 256 + _local10;
var _local1 = new Array();
_local4 = 0;
while (_local4 <= _local9) {
var _local2 = _local8[_local4];
if (_local1.length == 0) {
var _local5 = String(_local2.charCodeAt(0));
} else {
var _local5 = (_local1.join("-") + "-") + String(_local2.charCodeAt(0));
}
if (!(_local3[_local5] === undefined)) {
_local1.push(_local2.charCodeAt(0));
} else {
_local7 = _local7 + String.fromCharCode(_local3[_local1.join("-")]);
_local3[_local5] = _local6;
_local6++;
_local1 = new Array();
_local1.push(_local2.charCodeAt(0));
}
_local4++;
}
return(_local7);
}
static var xmlsafe = false;
}
Symbol 433 MovieClip [__Packages.com.newgrounds.ScoreBoard] Frame 0
class com.newgrounds.ScoreBoard
{
var _name, _id, _scores;
function ScoreBoard (id, name, tag) {
_name = name;
_id = id;
if (!(tag === undefined)) {
_tag = tag;
}
}
function exists() {
return(Number(_id) > 0);
}
function get id() {
return(_id);
}
function get name() {
return(_name);
}
function get period() {
return(_period);
}
function get tag() {
return(_tag);
}
function get page() {
return(_page);
}
function get num_results() {
return(_num_results);
}
function get scores() {
return(_scores);
}
function postScore(value, tag) {
if (!(tag === undefined)) {
_tag = tag;
}
com.newgrounds.API.postScore(_name, value, _tag);
}
function loadScores(period, page, num_results, tag) {
if (period) {
_period = period;
}
if (page) {
_page = page;
}
if (num_results) {
_num_results = num_results;
}
_scores = [];
com.newgrounds.API.loadScores(_name, _period, tag);
}
function setScores(scores, period, page, num_results) {
if (period) {
_period = period;
}
if (page) {
_page = page;
}
if (num_results) {
_num_results = num_results;
}
_scores = [];
var _local2 = 0;
while (_local2 < scores.length) {
var _local4 = ((_num_results * (_page - 1)) + 1) + _local2;
_scores.push(new com.newgrounds.Score(this, _local4, scores[_local2].username, scores[_local2].value, scores[_local2].numeric_value));
_local2++;
}
}
var _period = "Today";
var _num_results = 10;
var _page = 1;
var _tag = "";
}
Symbol 434 MovieClip [__Packages.com.newgrounds.Score] Frame 0
class com.newgrounds.Score
{
var _board, _position, _username, _value, _numeric_value;
function Score (board, position, username, value, numeric_value) {
_board = board;
_position = position;
_username = username;
_value = value;
_numeric_value = numeric_value;
}
function get board() {
return(_board);
}
function get position() {
return(_position);
}
function get username() {
return(_username);
}
function get value() {
return(_value);
}
function get numeric_value() {
return(_numeric_value);
}
static function fromTime(time) {
var _local1 = time.split(":");
var _local2 = Math.round(Number(_local1.pop()) * 1000);
if (_local1.length > 0) {
_local2 = _local2 + (Number(_local1.pop()) * 60);
}
if (_local1.length > 0) {
_local2 = _local2 + (Number(_local1.pop()) * 3600);
}
return(_local2);
}
static function fromDistance(distance) {
var _local1 = distance.indexOf("'");
var _local5 = distance.indexOf("\"", _local1);
var _local3 = Number(distance.substr(0, _local1));
var _local4 = Number(distance.substring(_local1 + 1, _local5));
return(Math.round((_local3 * 12) + _local4));
}
}
Symbol 435 MovieClip [__Packages.com.newgrounds.encoders.RC4] Frame 0
class com.newgrounds.encoders.RC4
{
function RC4 () {
}
static function encrypt(src, key) {
var _local3 = strToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(charsToHex(_local2));
}
static function encryptbin(src, key) {
var _local3 = strToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(_local2);
}
static function decrypt(src, key) {
var _local3 = hexToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(charsToStr(_local2));
}
static function initialize(pwd) {
var _local2 = 0;
var _local3;
var _local4 = pwd.length;
var _local1 = 0;
while (_local1 <= 255) {
mykey[_local1] = pwd[_local1 % _local4];
sbox[_local1] = _local1;
_local1++;
}
_local1 = 0;
while (_local1 <= 255) {
_local2 = ((_local2 + sbox[_local1]) + mykey[_local1]) % 256;
_local3 = sbox[_local1];
sbox[_local1] = sbox[_local2];
sbox[_local2] = _local3;
_local1++;
}
}
static function calculate(plaintxt, psw) {
initialize(psw);
var _local1 = 0;
var _local2 = 0;
var _local9 = new Array();
var _local7;
var _local5;
var _local6;
var _local3 = 0;
while (_local3 < plaintxt.length) {
_local1 = (_local1 + 1) % 256;
_local2 = (_local2 + sbox[_local1]) % 256;
_local5 = sbox[_local1];
sbox[_local1] = sbox[_local2];
sbox[_local2] = _local5;
var _local4 = (sbox[_local1] + sbox[_local2]) % 256;
_local7 = sbox[_local4];
_local6 = plaintxt[_local3] ^ _local7;
_local9.push(_local6);
_local3++;
}
return(_local9);
}
static function charsToHex(chars) {
var _local4 = new String("");
var _local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
var _local1 = 0;
while (_local1 < chars.length) {
_local4 = _local4 + (_local3[chars[_local1] >> 4] + _local3[chars[_local1] & 15]);
_local1++;
}
return(_local4);
}
static function hexToChars(hex) {
var _local3 = new Array();
var _local1 = ((hex.substr(0, 2) == "0x") ? 2 : 0);
while (_local1 < hex.length) {
_local3.push(parseInt(hex.substr(_local1, 2), 16));
_local1 = _local1 + 2;
}
return(_local3);
}
static function charsToStr(chars) {
var _local3 = new String("");
var _local1 = 0;
while (_local1 < chars.length) {
_local3 = _local3 + String.fromCharCode(chars[_local1]);
_local1++;
}
return(_local3);
}
static function strToChars(str) {
var _local3 = new Array();
var _local1 = 0;
while (_local1 < str.length) {
_local3.push(str.charCodeAt(_local1));
_local1++;
}
return(_local3);
}
static var sbox = new Array(255);
static var mykey = new Array(255);
}
Symbol 436 MovieClip [__Packages.com.newgrounds.encoders.JSON] Frame 0
class com.newgrounds.encoders.JSON
{
static var start, cache, interval;
function JSON () {
}
static function encode(arg, noquotes) {
var _local3;
var _local2;
var _local6;
var _local1 = "";
var _local4;
if (arg.isSServerVar()) {
var _local8 = "sservervariable";
} else {
var _local8 = typeof(arg);
}
switch (_local8) {
case "sservervariable" :
return("?" + arg.getEncodedValue());
case "object" :
if (arg) {
if (arg instanceof Array) {
_local2 = 0;
while (_local2 < arg.length) {
_local4 = encode(arg[_local2]);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + _local4;
_local2++;
}
return(("[" + _local1) + "]");
}
if (typeof(arg.toString) != "undefined") {
for (_local2 in arg) {
_local4 = arg[_local2];
if ((typeof(_local4) != "undefined") && (typeof(_local4) != "function")) {
_local4 = encode(_local4);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + ((encode(_local2) + ":") + _local4);
}
}
return(("{" + _local1) + "}");
}
}
return("null");
case "number" :
return((isFinite(arg) ? (String(arg)) : "null"));
case "string" :
_local6 = arg.length;
if (noquotes) {
var _local7 = "";
} else {
var _local7 = "\"";
}
_local1 = _local7;
_local2 = 0;
while (_local2 < _local6) {
_local3 = arg.charAt(_local2);
if (_local3 >= " ") {
if ((_local3 == "\\") || (_local3 == "\"")) {
_local1 = _local1 + "\\";
}
_local1 = _local1 + _local3;
} else {
switch (_local3) {
case "\b" :
_local1 = _local1 + "\\b";
break;
case "\f" :
_local1 = _local1 + "\\f";
break;
case newline :
_local1 = _local1 + "\\n";
break;
case "\r" :
_local1 = _local1 + "\\r";
break;
case "\t" :
_local1 = _local1 + "\\t";
break;
default :
_local3 = _local3.charCodeAt();
_local1 = _local1 + (("\\u00" + Math.floor(_local3 / 16).toString(16)) + (_local3 % 16).toString(16));
}
}
_local2 = _local2 + 1;
}
return(_local1 + _local7);
case "boolean" :
return(String(arg));
}
return("null");
}
static function background_encode(arg, callback) {
if (busy) {
trace("[Newgrounds Encoder] :: Cannot encode a new file until the previous file is completed");
return(false);
}
if (!callback) {
trace("[Newgrounds Encoder] :: Missing a callback function, skipping encode");
return(false);
}
busy = true;
var _local2 = new Date();
start = _local2.getTime();
cache = {busy:false, complete:false, arg:arg, target:arg, parents:[], encoded:"", callback:callback, encode_chunk:function () {
com.newgrounds.encoders.JSON.encode_chunk();
}};
if (getType(arg) == "object") {
cache.encoded = "{";
} else if (getType(arg) == "array") {
cache.encoded = "[";
}
interval = setInterval(cache, "encode_chunk", 25);
return(true);
}
static function background_decode(arg, callback) {
if (busy) {
trace("[Newgrounds Encoder] :: Cannot decode a new file until the previous file is completed");
return(false);
}
if (!callback) {
trace("[Newgrounds Encoder] :: Missing a callback function, skipping decode");
return(false);
}
busy = true;
var _local1 = new Date();
start = _local1.getTime();
cache = {busy:false, callback:callback, complete:false, arg:arg, pos:0, parents:["root"], target:null, scratch:"", decode_chunk:function () {
com.newgrounds.encoders.JSON.decode_chunk();
}};
interval = setInterval(cache, "decode_chunk", 25);
return(true);
}
static function decode(text) {
var at = 0;
var ch = " ";
var _value;
var _error = function (m) {
throw {name:"JSONError", message:m, at:at - 1, text:text};
};
var _next = function () {
ch = text.charAt(at);
at = at + 1;
return(ch);
};
var _white = function () {
while (ch) {
if (ch <= " ") {
_next();
} else if (ch == "/") {
switch (_next()) {
case "/" :
while ((_next() && (ch != newline)) && (ch != "\r")) {
}
break;
case "*" :
_next();
for(;;){
if (ch) {
if (ch == "*") {
if (_next() == "/") {
_next();
// unexpected jump
}
} else {
_next();
}
} else {
_error("Unterminated comment");
}
};
break;
default :
_error("Syntax error");
}
} else {
return;
}
}
};
var _string = function () {
var _local4;
var _local1 = "";
var _local3;
var _local2;
var _local5 = false;
if (ch == "\"") {
while (_next()) {
if (ch == "\"") {
_next();
return(_local1);
}
if (ch == "\\") {
switch (_next()) {
case "b" :
_local1 = _local1 + "\b";
break;
case "f" :
_local1 = _local1 + "\f";
break;
case "n" :
_local1 = _local1 + newline;
break;
case "r" :
_local1 = _local1 + "\r";
break;
case "t" :
_local1 = _local1 + "\t";
break;
case "u" :
_local2 = 0;
_local4 = 0;
while (_local4 < 4) {
_local3 = parseInt(_next(), 16);
if (!isFinite(_local3)) {
_local5 = true;
break;
}
_local2 = (_local2 * 16) + _local3;
_local4 = _local4 + 1;
}
if (_local5) {
_local5 = false;
break;
}
_local1 = _local1 + String.fromCharCode(_local2);
break;
default :
_local1 = _local1 + ch;
}
} else {
_local1 = _local1 + ch;
}
}
}
_error("Bad string");
};
var _array = function () {
var _local1 = [];
if (ch == "[") {
_next();
_white();
if (ch == "]") {
_next();
return(_local1);
}
while (ch) {
_local1.push(_value());
_white();
if (ch == "]") {
_next();
return(_local1);
}
if (ch != ",") {
break;
}
_next();
_white();
}
}
_error("Bad array");
};
var _object = function () {
var _local2;
var _local1 = {};
if (ch == "{") {
_next();
_white();
if (ch == "}") {
_next();
return(_local1);
}
while (ch) {
_local2 = _string();
_white();
if (ch != ":") {
break;
}
_next();
_local1[_local2] = _value();
_white();
if (ch == "}") {
_next();
return(_local1);
}
if (ch != ",") {
break;
}
_next();
_white();
}
}
_error("Bad object");
};
var _number = function () {
var _local1 = "";
var _local2;
if (ch == "-") {
_local1 = "-";
_next();
}
while ((ch >= "0") && (ch <= "9")) {
_local1 = _local1 + ch;
_next();
}
if (ch == ".") {
_local1 = _local1 + ".";
while ((_next() && (ch >= "0")) && (ch <= "9")) {
_local1 = _local1 + ch;
}
}
_local2 = 1 * _local1;
if (!isFinite(_local2)) {
_error("Bad number");
} else {
return(_local2);
}
};
var _word = function () {
switch (ch) {
case "t" :
if (((_next() == "r") && (_next() == "u")) && (_next() == "e")) {
_next();
return(true);
}
break;
case "f" :
if ((((_next() == "a") && (_next() == "l")) && (_next() == "s")) && (_next() == "e")) {
_next();
return(false);
}
break;
case "n" :
if (!(((_next() == "u") && (_next() == "l")) && (_next() == "l"))) {
break;
}
_next();
return(null);
}
_error("Syntax error");
};
_value = function () {
_white();
switch (ch) {
case "{" :
return(_object());
case "[" :
return(_array());
case "\"" :
return(_string());
case "-" :
return(_number());
}
return((((ch >= "0") && (ch <= "9")) ? (_number()) : (_word())));
};
return(_value());
}
static function getType(v) {
if (v instanceof Array) {
return("array");
}
return(typeof(v));
}
static function decode_chunk() {
if ((!cache.busy) && (!cache.complete)) {
cache.busy = true;
var _local1 = 0;
while (_local1 < decode_chunks) {
chunk_decoder();
if (cache.complete) {
break;
}
_local1++;
}
trace(Math.round((cache.pos / cache.arg.length) * 100) + "% decoded");
cache.busy = false;
}
if (cache.complete) {
var _local2 = new Date();
busy = false;
clearInterval(interval);
cache.callback(cache.root, _local2.getTime() - start);
cache.arg = "";
}
}
static function encode_chunk() {
if ((!cache.busy) && (!cache.complete)) {
cache.busy = true;
var _local1 = 0;
while (_local1 < encode_chunks) {
chunk_encoder();
if (cache.complete) {
break;
}
_local1++;
}
cache.busy = false;
}
if (cache.complete) {
var _local3 = new Date();
var _local2 = _local3.getTime();
busy = false;
clearInterval(interval);
cache.callback(cache.encoded, _local2 - start);
cache.encoded = "";
}
}
static function chunk_decoder() {
function _object() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = "object";
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 != "\"") {
throw "Malformed object key in encoded string. Keys must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.JSON.cache.scratch = "";
_setTargetValue({});
} else if (_local1 == ",") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 != "\"") {
throw "Malformed object key in encoded string. Keys must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.JSON.cache.scratch = "";
} else if (_local1 == "}") {
_useParent();
} else if (_local1 == "\"") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 != ":") {
throw "Malformed object notation. Object keys and values must be separated by colons(:)";
}
_addParent(com.newgrounds.encoders.JSON.cache.scratch);
com.newgrounds.encoders.JSON.cache.mode = null;
} else {
if (_local1 == "\\") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
}
com.newgrounds.encoders.JSON.cache.scratch = com.newgrounds.encoders.JSON.cache.scratch + _local1;
}
com.newgrounds.encoders.JSON.cache.pos++;
}
function _array() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = "array";
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
_setTargetValue([]);
if (_local1 != "]") {
_addArrayKey();
} else {
_useParent();
}
return(undefined);
}
if (_local1 == ",") {
_addArrayKey();
} else if (_local1 == "]") {
_useParent();
}
com.newgrounds.encoders.JSON.cache.pos++;
}
function _boolean() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 == "t") {
_setTargetValue(true);
com.newgrounds.encoders.JSON.cache.pos = com.newgrounds.encoders.JSON.cache.pos + 3;
} else if (_local1 == "f") {
_setTargetValue(false);
com.newgrounds.encoders.JSON.cache.pos = com.newgrounds.encoders.JSON.cache.pos + 4;
} else {
throw "Bool values must be true or false";
}
_useParent();
}
function _null() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 == "n") {
_setTargetValue(null);
com.newgrounds.encoders.JSON.cache.pos = com.newgrounds.encoders.JSON.cache.pos + 2;
} else {
throw "Null values must be null";
}
_useParent();
}
function _string() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
if (_local1 != "\"") {
throw "Strings must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.JSON.cache.scratch = "";
com.newgrounds.encoders.JSON.cache.mode = "string";
} else if (_local1 == "\"") {
_setTargetValue(com.newgrounds.encoders.JSON.cache.scratch);
_useParent();
} else {
if (_local1 == "\\") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
switch (_local1) {
case "n" :
_local1 = newline;
break;
case "r" :
_local1 = newline;
break;
case "t" :
_local1 = "\t";
break;
case "u" :
_local1 = "\\" + _local1;
}
}
com.newgrounds.encoders.JSON.cache.scratch = com.newgrounds.encoders.JSON.cache.scratch + _local1;
}
com.newgrounds.encoders.JSON.cache.pos++;
}
function _number() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
var _local2 = "01234567890.-";
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = "number";
com.newgrounds.encoders.JSON.cache.scratch = "";
}
if (_local2.indexOf(_local1) < 0) {
_setTargetValue(Number(com.newgrounds.encoders.JSON.cache.scratch));
_useParent();
} else {
com.newgrounds.encoders.JSON.cache.scratch = com.newgrounds.encoders.JSON.cache.scratch + _local1;
com.newgrounds.encoders.JSON.cache.pos++;
}
}
function _setTargetValue(newval) {
var _local2 = _getParent().obj;
var _local1 = com.newgrounds.encoders.JSON.cache.parents[com.newgrounds.encoders.JSON.cache.parents.length - 1];
_local2[_local1] = newval;
}
function _useParent() {
com.newgrounds.encoders.JSON.cache.mode = com.newgrounds.encoders.JSON.getType(_getParent().obj);
com.newgrounds.encoders.JSON.cache.parents.pop();
}
function _getParent() {
var _local2 = com.newgrounds.encoders.JSON.cache;
var _local1 = 0;
while (_local1 < (com.newgrounds.encoders.JSON.cache.parents.length - 1)) {
_local2 = _local2[com.newgrounds.encoders.JSON.cache.parents[_local1]];
_local1++;
}
return({obj:_local2, name:com.newgrounds.encoders.JSON.cache.parents[_local1]});
}
function _getCurrent() {
var _local2 = com.newgrounds.encoders.JSON.cache;
var _local1 = 0;
while (_local1 < com.newgrounds.encoders.JSON.cache.parents.length) {
_local2 = _local2[com.newgrounds.encoders.JSON.cache.parents[_local1]];
_local1++;
}
return({obj:_local2, name:com.newgrounds.encoders.JSON.cache.parents[_local1]});
}
function _addParent(child) {
com.newgrounds.encoders.JSON.cache.parents.push(child);
}
function _addArrayKey() {
var _local1 = _getCurrent().obj.length;
com.newgrounds.encoders.JSON.cache.parents.push(_local1);
com.newgrounds.encoders.JSON.cache.mode = null;
}
if (cache.pos >= cache.arg.length) {
cache.complete = true;
return(undefined);
}
if (cache.mode) {
eval ("_" + cache.mode)();
} else {
var char = cache.arg.charAt(cache.pos);
switch (char) {
case "{" :
_object();
return;
case "[" :
_array();
return;
case "\"" :
_string();
return;
case "n" :
_null();
return;
case "t" :
_boolean();
return;
case "f" :
_boolean();
return;
default :
_number();
}
}
}
static function chunk_encoder() {
if (cache.complete) {
return(undefined);
}
var _local2 = getType(cache.target);
switch (_local2) {
case "number" :
cache.encoded = cache.encoded + cache.target;
getParent();
break;
case "string" :
cache.encoded = cache.encoded + (("\"" + cache.target.split("\"").join("\\\"")) + "\"");
getParent();
break;
case "boolean" :
cache.encoded = cache.encoded + ((cache.target == true) ? "true" : "false");
getParent();
break;
case "null" :
cache.encoded = cache.encoded + "null";
getParent();
break;
case "array" :
if (cache.target.length < 1) {
cache.encoded = cache.encoded + "]";
getParent();
} else {
cache.parents.push(cache.target);
cache.target = cache.target[0];
if (getType(cache.target) == "array") {
cache.encoded = cache.encoded + "[";
} else if (getType(cache.target) == "object") {
cache.encoded = cache.encoded + "{";
}
}
break;
case "object" :
for (var _local1 in cache.target) {
break;
}
if (_local1 === undefined) {
cache.encoded = cache.encoded + "}";
getParent();
} else {
cache.parents.push(cache.target);
cache.target = cache.target[_local1];
cache.encoded = cache.encoded + (("\"" + _local1.split("\"").join("\\\"")) + "\":");
if (getType(cache.target) == "array") {
cache.encoded = cache.encoded + "[";
} else if (getType(cache.target) == "object") {
cache.encoded = cache.encoded + "{";
}
}
break;
default :
cache.encoded = cache.encoded + "null";
getParent();
}
}
static function getParent() {
if (cache.parents.length > 0) {
var _local1 = cache.parents.pop();
if (getType(_local1) == "array") {
_local1.shift();
} else {
for (var _local3 in _local1) {
delete _local1[_local3];
break;
}
}
if ((getType(_local1) == "object") or (getType(_local1) == "array")) {
for (var _local2 in _local1) {
break;
}
if (!(_local2 === undefined)) {
cache.encoded = cache.encoded + ",";
}
}
cache.target = _local1;
} else {
cache.complete = true;
}
}
static var encode_chunks = 20000;
static var decode_chunks = 20000;
static var busy = false;
}
Symbol 438 MovieClip [__Packages.com.newgrounds.encoders.MD5] Frame 0
class com.newgrounds.encoders.MD5
{
function MD5 () {
}
static function calculate(src) {
return(hex_md5(src));
}
static function hex_md5(src) {
return(binl2hex(core_md5(str2binl(src), src.length * 8)));
}
static function core_md5(x, len) {
x[len >> 5] = x[len >> 5] | (128 << (len % 32));
x[(((len + 64) >>> 9) << 4) + 14] = len;
var _local4 = 1732584193 /* 0x67452301 */;
var _local3 = -271733879;
var _local2 = -1732584194;
var _local1 = 271733878 /* 0x10325476 */;
var _local5 = 0;
while (_local5 < x.length) {
var _local10 = _local4;
var _local9 = _local3;
var _local8 = _local2;
var _local7 = _local1;
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 0], 7, -680876936);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 1], 12, -389564586);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 2], 17, 606105819);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 3], 22, -1044525330);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 4], 7, -176418897);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 5], 12, 1200080426);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 6], 17, -1473231341);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 7], 22, -45705983);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 8], 7, 1770035416);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 9], 12, -1958414417);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 10], 17, -42063);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 11], 22, -1990404162);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 12], 7, 1804603682);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 13], 12, -40341101);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 14], 17, -1502002290);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 15], 22, 1236535329);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 1], 5, -165796510);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 6], 9, -1069501632);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 11], 14, 643717713);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 0], 20, -373897302);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 5], 5, -701558691);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 10], 9, 38016083);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 15], 14, -660478335);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 4], 20, -405537848);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 9], 5, 568446438);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 14], 9, -1019803690);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 3], 14, -187363961);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 8], 20, 1163531501);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 13], 5, -1444681467);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 2], 9, -51403784);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 7], 14, 1735328473);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 12], 20, -1926607734);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 5], 4, -378558);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 8], 11, -2022574463);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 11], 16, 1839030562);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 14], 23, -35309556);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 1], 4, -1530992060);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 4], 11, 1272893353);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 7], 16, -155497632);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 10], 23, -1094730640);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 13], 4, 681279174);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 0], 11, -358537222);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 3], 16, -722521979);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 6], 23, 76029189);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 9], 4, -640364487);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 12], 11, -421815835);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 15], 16, 530742520);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 2], 23, -995338651);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 0], 6, -198630844);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 7], 10, 1126891415);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 14], 15, -1416354905);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 5], 21, -57434055);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 12], 6, 1700485571);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 3], 10, -1894986606);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 10], 15, -1051523);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 1], 21, -2054922799);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 8], 6, 1873313359);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 15], 10, -30611744);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 6], 15, -1560198380);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 13], 21, 1309151649);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 4], 6, -145523070);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 11], 10, -1120210379);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 2], 15, 718787259);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 9], 21, -343485551);
_local4 = safe_add(_local4, _local10);
_local3 = safe_add(_local3, _local9);
_local2 = safe_add(_local2, _local8);
_local1 = safe_add(_local1, _local7);
_local5 = _local5 + 16;
}
return(new Array(_local4, _local3, _local2, _local1));
}
static function md5_cmn(q, a, b, x, s, t) {
return(safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b));
}
static function md5_ff(a, b, c, d, x, s, t) {
return(md5_cmn((b & c) | ((~b) & d), a, b, x, s, t));
}
static function md5_gg(a, b, c, d, x, s, t) {
return(md5_cmn((b & d) | (c & (~d)), a, b, x, s, t));
}
static function md5_hh(a, b, c, d, x, s, t) {
return(md5_cmn((b ^ c) ^ d, a, b, x, s, t));
}
static function md5_ii(a, b, c, d, x, s, t) {
return(md5_cmn(c ^ (b | (~d)), a, b, x, s, t));
}
static function bit_rol(num, cnt) {
return((num << cnt) | (num >>> (32 - cnt)));
}
static function safe_add(x, y) {
var _local1 = (x & 65535) + (y & 65535);
var _local2 = ((x >> 16) + (y >> 16)) + (_local1 >> 16);
return((_local2 << 16) | (_local1 & 65535));
}
static function str2binl(str) {
var _local3 = new Array();
var _local4 = 255;
var _local1 = 0;
while (_local1 < (str.length * 8)) {
_local3[_local1 >> 5] = _local3[_local1 >> 5] | ((str.charCodeAt(_local1 / 8) & _local4) << (_local1 % 32));
_local1 = _local1 + 8;
}
return(_local3);
}
static function binl2hex(binarray) {
var _local4 = new String("");
var _local3 = new String("0123456789abcdef");
var _local1 = 0;
while (_local1 < (binarray.length * 4)) {
_local4 = _local4 + (_local3.charAt((binarray[_local1 >> 2] >> (((_local1 % 4) * 8) + 4)) & 15) + _local3.charAt((binarray[_local1 >> 2] >> ((_local1 % 4) * 8)) & 15));
_local1++;
}
return(_local4);
}
}
Symbol 443 Button
on (release) {
getURL ("http://www.mochigames.com/?utm_source=sponsored_game&utm_medium=splash&utm_content=flying-candy&utm_campaign=sponsored_game", "_blank");
}
Symbol 445 MovieClip Frame 97
_root.gotoAndStop("init");
Symbol 455 MovieClip Frame 1
stop();
Symbol 464 MovieClip Frame 1
stop();
Symbol 472 MovieClip Frame 1
stop();
Symbol 481 MovieClip Frame 1
x1 = _x;
y1 = _y;
onEnterFrame = function () {
dist = point_distance(_x, _y, _root._xmouse - _parent._x, _root._ymouse - 480);
eyedist = dist / 20;
dir = point_direction(_root._xmouse - _parent._x, _root._ymouse - 480, _x, _y);
x2 = lengthdir_x(Math.min(10, eyedist), dir);
y2 = lengthdir_y(Math.min(10, eyedist), dir);
_x = (x1 - x2);
_y = (y1 + y2);
};
Symbol 486 MovieClip Frame 1
stop();
Symbol 486 MovieClip Frame 16
playSound("portalout");
Symbol 486 MovieClip Frame 24
stop();
Symbol 492 MovieClip Frame 1
xx = txt._x;
yy = txt._y;
onEnterFrame = function () {
if (_root.combocount < 2) {
if (_alpha > 0) {
_alpha = (_alpha - 10);
} else {
_visible = false;
}
}
if (txt._xscale > 100) {
_visible = true;
_alpha = 100;
txt._xscale = (txt._yscale = txt._yscale - 2);
txt._x = ((100 - txt._xscale) / 6) + xx;
txt._y = ((100 - txt._xscale) / 8) + yy;
}
};
Symbol 496 MovieClip Frame 1
onEnterFrame = function () {
if (_xscale > 100) {
_yscale = (_yscale - 2);
_xscale = (_yscale - 2);
}
};
Symbol 500 Button
on (rollOver) {
playSound("mouseon");
}
Symbol 508 MovieClip Frame 1
stop();
Symbol 520 MovieClip Frame 1
stop();
onEnterFrame = function () {
gotoAndStop(Math.floor(_root.unitHave / (_root.unitNeed / 4)) + 1);
msk._xscale = (_root.unitHave / _root.unitNeed) * 100;
};
Symbol 522 MovieClip Frame 1
onEnterFrame = function () {
if (_root.paused == true) {
if (_alpha > 0) {
_alpha = (_alpha - 15);
} else {
_visible = false;
}
}
};
ib3.ico.gotoAndStop(3);
ib4.ico.gotoAndStop(4);
ib3.desc.text = "REPLAY";
ib4.desc.text = "QUIT";
ib3.desc._visible = false;
ib4.desc._visible = false;
ib3.but.onRollOver = function () {
ib3.desc._visible = true;
};
ib3.but.onRollOut = function () {
ib3.desc._visible = false;
};
ib4.but.onRollOver = function () {
ib4.desc._visible = true;
};
ib4.but.onRollOut = function () {
ib4.desc._visible = false;
};
ib3.but.onPress = function () {
playSound("click");
_root.mouseClick = true;
if (_root.trans._currentframe == 1) {
_root.paused = true;
_root.trans.play();
}
};
ib4.but.onPress = function () {
playSound("click");
_root.mouseClick = true;
if (_root.trans._currentframe == 1) {
_root.paused = true;
_root.cursor._visible = false;
_root.openMenu("select");
}
};
Symbol 525 MovieClip Frame 1
stop();
Symbol 525 MovieClip Frame 2
playSound("star");
Symbol 532 Button
on (rollOver) {
playSound("mouseon");
}
on (release) {
playSound("click");
getURL (walkurl, "_blank");
}
Symbol 540 Button
on (rollOver) {
playSound("mouseon");
rec._visible = true;
}
on (rollOut) {
rec._visible = false;
}
on (press) {
playSound("click");
_root.lvl = id;
if (id == 1) {
_root.openMenu("hint");
} else if (_root.trans._currentframe == 1) {
_root.trans.gotoAndPlay(2);
_root.generator = false;
_root.mouseClick = true;
}
}
Symbol 555 Button
on (rollOver) {
playSound("mouseon");
rec._visible = true;
}
on (rollOut) {
rec._visible = false;
}
on (press) {
playSound("click");
_root.lvl = id;
trace(id);
if (_root.trans._currentframe == 1) {
_root.trans.gotoAndPlay(2);
_root.generator = false;
_root.mouseClick = true;
}
}
Symbol 559 Button
on (rollOver) {
playSound("mouseon");
rec._visible = true;
}
on (rollOut) {
rec._visible = false;
}
on (press) {
playSound("click");
_root.lvl = id;
trace(id);
if (_root.trans._currentframe == 1) {
_root.trans.gotoAndPlay(2);
_root.generator = false;
_root.mouseClick = true;
}
}
Symbol 567 Button
on (rollOver) {
playSound("mouseon");
}
on (release) {
playSound("click");
}
Symbol 590 MovieClip Frame 1
eff1._y = (eff2._y = 45 * _root.currskin);
if (_root.vipskin2 == true) {
lock1._visible = false;
lock2._visible = false;
lock3._visible = false;
lock4._visible = false;
lock5._visible = false;
} else {
lock1._visible = true;
lock2._visible = true;
lock3._visible = true;
lock4._visible = true;
lock5._visible = true;
}
if (_root.vipskin1 == true) {
lock1._visible = false;
} else {
lock1._visible = true;
}
s0.onRelease = function () {
_root.currskin = 0;
eff1._y = (eff2._y = 0);
playSound("click");
};
s1.onRelease = function () {
playSound("click");
if ((_root.vipskin1 == true) || (_root.vipskin2 == true)) {
_root.currskin = 1;
eff1._y = (eff2._y = 45);
} else {
mochi.as2.MochiCoins.showStore({tags:["skin"]});
}
};
s2.onRelease = function () {
playSound("click");
if (_root.vipskin2 == true) {
_root.currskin = 2;
eff1._y = (eff2._y = 90);
} else {
mochi.as2.MochiCoins.showStore({tags:["skin"]});
}
};
s3.onRelease = function () {
playSound("click");
if (_root.vipskin2 == true) {
_root.currskin = 3;
eff1._y = (eff2._y = 135);
} else {
mochi.as2.MochiCoins.showStore({tags:["skin"]});
}
};
s4.onRelease = function () {
playSound("click");
if (_root.vipskin2 == true) {
_root.currskin = 4;
eff1._y = (eff2._y = 180);
} else {
mochi.as2.MochiCoins.showStore({tags:["skin"]});
}
};
s5.onRelease = function () {
playSound("click");
if (_root.vipskin2 == true) {
_root.currskin = 5;
eff1._y = (eff2._y = 225);
} else {
mochi.as2.MochiCoins.showStore({tags:["skin"]});
}
};
Symbol 592 MovieClip Frame 1
stop();
b1.title = "Level Generator";
b1.but.onRelease = function () {
playSound("click");
mochi.as2.MochiCoins.showItem({item:"f179093d098e1a25"});
};
Symbol 592 MovieClip Frame 2
b1.title = "Level Generator";
b1.but.onRelease = function () {
_root.openMenu("diff");
};
Symbol 626 Button
on (rollOut) {
desc._visible = false;
}
on (rollOver) {
desc._visible = true;
playSound("mouseon");
}
on (press) {
_root.doUpgr(this);
}
Symbol 631 MovieClip Frame 1
stop();
Symbol 642 MovieClip Frame 2
_alpha = 50;
Symbol 647 Button
on (rollOut) {
desc._visible = false;
}
on (rollOver) {
desc._visible = true;
playSound("mouseon");
}
on (press) {
_root.doUpgr(this);
}
Symbol 654 MovieClip Frame 2
_alpha = 50;
Symbol 670 Button
on (rollOver) {
desc._visible = true;
}
on (rollOut) {
desc._visible = false;
}
Symbol 690 MovieClip Frame 1
stop();
onEnterFrame = function () {
if (timer > 0) {
timer--;
if (timer == 1) {
gotoAndPlay (3);
playSound("star");
if (_name == "s3") {
playSound("holy");
}
}
}
};
Symbol 690 MovieClip Frame 13
gotoAndStop (2);
Symbol 728 Button
on (rollOver) {
_root.play_on.start();
}
on (release) {
getURL ("http://www.silengames.com", "_blank");
_root.play_pre.start();
}
Symbol 748 MovieClip Frame 1
stop();
timer = 0;
close = true;
tar = "exit";
gotoAndStop ("exit");
onEnterFrame = function () {
if (close == false) {
if (_xscale != 100) {
if (_xscale < 100) {
_yscale = (_yscale + 30);
_xscale = (_yscale + 30);
} else {
_yscale = (_yscale - 10);
_xscale = (_yscale - 10);
}
}
} else if (_xscale > 30) {
_yscale = (_yscale - 40);
_xscale = (_yscale - 40);
} else if (_currentframe != tar) {
close = false;
gotoAndStop(tar);
}
if (_currentframe == 72) {
if (timer == 0) {
timer = 50 + random(40);
_root.createPart(124, -140, 100, "star", this, 1);
} else {
timer--;
if (timer == 10) {
_root.createPart(-123, -200, 100, "star", this, 1);
}
}
}
};
Instance of Symbol 528 MovieClip in Symbol 748 MovieClip Frame 1
on (release) {
playSound("click");
getURL (sponsorurl, "_blank");
}
Symbol 748 MovieClip Frame 2
totalscore.text = _root.totalscore;
if (_root.vipgenerator == true) {
butgen.gotoAndStop(2);
} else {
butgen.gotoAndStop(1);
}
b1.title = "Upgrade Shop";
b2.title = "Achievements";
b3.title = "Submit Score";
b4.title = "Main Menu";
b5.title = "Premium Shop";
b1.but.onRelease = function () {
menuback = "select";
_root.openMenu("upgr");
};
b2.but.onRelease = function () {
menuback = "select";
_root.openMenu("achi");
};
b3.but.onRelease = function () {
var _local3 = {n:[4, 4, 15, 15, 13, 10, 13, 4, 5, 11, 2, 3, 9, 14, 11, 9], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var _local4 = _local3.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:_local4, score:_root.totalscore});
};
b4.but.onRelease = function () {
_root.openMenu("main");
};
b5.but.onRelease = function () {
mochi.as2.MochiCoins.showStore();
};
stat_star = 0;
stat_lvl = 0;
i = 1;
while (i < 41) {
this["l" + i].id = i;
if (_root.lvlmedal[i] == undefined) {
this["l" + i].gotoAndStop(4);
} else if (_root.lvlmedal[i] < 3) {
if (_root.lvlmedal[i] == 0) {
this["l" + i].gotoAndStop(1);
} else {
this["l" + i].gotoAndStop(2);
}
} else {
this["l" + i].gotoAndStop(3);
}
this["l" + i].star.gotoAndStop(_root.lvlmedal[i] + 1);
if (_root.lvlmedal[i] > 0) {
stat_star = stat_star + _root.lvlmedal[i];
stat_lvl++;
}
if (_root.lvlrec[i] != undefined) {
this["l" + i].rec.txt.text = _root.lvlrec[i];
this["l" + i].rec._visible = false;
}
i++;
}
gachis = 0;
i = 0;
while (i < _root.gachi.length) {
j = 0;
while (j < _root.gachi[i].length) {
if (_root.gachi[i][j] == -1) {
gachis++;
}
j++;
}
i++;
}
if (_root.kongapi == true) {
i = 0;
while (i < 8) {
_root.kongsend("stat" + i, _root.stat[i]);
i++;
}
}
Symbol 748 MovieClip Frame 12
_root.initUpgr();
playSound("menuon");
switch (menuback) {
case "exit" :
b1.title = "NEXT LEVEL";
break;
case "main" :
b1.title = "Main Menu";
break;
case "select" :
b1.title = "Level Select";
}
b2.title = "Premium Shop";
b1.but.onRelease = function () {
if (menuback == "exit") {
_root.lvl++;
_root.trans.gotoAndPlay(2);
} else {
_root.openMenu(menuback);
}
};
b2.but.onRelease = function () {
mochi.as2.MochiCoins.showStore();
};
Symbol 748 MovieClip Frame 22
_root.initAchi();
playSound("menuon");
switch (menuback) {
case "exit" :
b1.title = "NEXT LEVEL";
break;
case "main" :
b1.title = "Main Menu";
break;
case "select" :
b1.title = "Level Select";
}
b1.but.onRelease = function () {
if (menuback == "exit") {
_root.lvl++;
_root.trans.gotoAndPlay(2);
} else {
_root.openMenu(menuback);
}
};
Symbol 748 MovieClip Frame 32
leveltxt.text = ("Level " + _root.lvl) + " Passed!";
unitNeed.text = "/" + _root.unitNeed;
giftNeed.text = "/" + _root.giftNeed;
unitHave.text = _root.unitHave;
giftHave.text = _root.giftHave;
bonus1 = _root.clickCount * 500;
bonus2 = _root.maxcombo * 5;
_root.score = _root.score + (bonus1 + bonus2);
clickleft.text = bonus1;
maxcombo.text = bonus2;
levelscore.text = _root.score;
playSound("win");
b11.title = "CONTINUE";
b2.title = "Submit Score";
b3.title = "More Games";
b4.title = "Replay";
b5.title = "Level Select";
b6.title = "Achievements";
b11.but.onRelease = function () {
if (_root.testUpgr() == true) {
menuback = "exit";
_root.openMenu("upgr");
} else {
_root.lvl++;
_root.trans.gotoAndPlay(2);
}
};
b2.but.onRelease = function () {
var _local3 = {n:[4, 4, 15, 15, 13, 10, 13, 4, 5, 11, 2, 3, 9, 14, 11, 9], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var _local4 = _local3.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:_local4, score:_root.totalscore});
};
b3.but.onRelease = function () {
getURL (sponsorurl, "_blank");
};
b4.but.onRelease = function () {
_root.trans.gotoAndPlay(2);
};
b5.but.onRelease = function () {
_root.openMenu("select");
};
b6.but.onRelease = function () {
menuback = "select";
_root.openMenu("achi");
};
rectxt._visible = false;
addtxt._visible = false;
totaladd = 0;
if (_root.lvlrec[_root.lvl] == undefined) {
totaladd = _root.score;
} else if (_root.score > _root.lvlrec[_root.lvl]) {
totaladd = _root.score - _root.lvlrec[_root.lvl];
}
if (totaladd > 0) {
_root.lvlrec[_root.lvl] = _root.score;
_root.my_so.data.lvlrec[_root.lvl] = _root.score;
rectxt._visible = true;
addtxt._visible = true;
addtxt.text = "+" + totaladd;
}
_root.totalscore = _root.totalscore + totaladd;
totalscore.text = _root.totalscore;
setStat(8, _root.totalscore);
stars = 0;
perc = _root.unitHave / _root.unitNeed;
if (perc < 0.75) {
stars = 1;
} else if (perc < 1) {
stars = 2;
} else {
stars = 3;
}
i = 1;
while (i < 4) {
zz = this["s" + i];
if (i > _root.lvlmedal[_root.lvl]) {
zz.gotoAndStop(1);
} else {
zz.gotoAndStop(2);
}
if (i <= stars) {
zz.timer = 12 * i;
} else {
zz.timer = 0;
}
i++;
}
if (_root.lvlmedal[_root.lvl] < stars) {
_root.lvlmedal[_root.lvl] = stars;
_root.my_so.data.lvlmedal[_root.lvl] = stars;
}
if (_root.lvlmedal[_root.lvl + 1] == undefined) {
_root.lvlmedal[_root.lvl + 1] = 0;
_root.my_so.data.lvlmedal[_root.lvl + 1] = 0;
}
stat_star = 0;
i = 1;
while (i < 41) {
if (_root.lvlmedal[i] != undefined) {
stat_star = stat_star + _root.lvlmedal[i];
_root.maxlvl = i;
_root.my_so.data.maxlvl = _root.maxlvl;
}
i++;
}
setStat(6, _root.lvl);
setStat(7, stat_star);
_root.money = _root.money + _root.giftHave;
saveStat();
if (_root.ngapi == true) {
_root.ngupgr();
_root.ngscore();
_root.ngclick();
_root.ngstar(5);
_root.ngstar(15);
_root.ngstar(30);
_root.ngstar(50);
_root.ngstar(70);
_root.ngstar(90);
_root.ngstar(120);
}
if (_root.kongapi == true) {
i = 0;
while (i < 9) {
_root.kongsend("stat" + i, _root.stat[i]);
i++;
}
}
if (_root.lvl == 40) {
b11._visible = false;
} else {
b11._visible = true;
}
mochi.as2.MochiEvents.trackEvent("Level", _root.lvl);
Symbol 748 MovieClip Frame 42
leveltxt.text = ("Level " + _root.lvl) + " Passed!";
unitNeed.text = "/" + _root.unitNeed;
giftNeed.text = "/" + _root.giftNeed;
unitHave.text = _root.unitHave;
giftHave.text = _root.giftHave;
bonus1 = _root.clickCount * 500;
bonus2 = _root.maxcombo * 5;
_root.score = _root.score + (bonus1 + bonus2);
clickleft.text = bonus1;
maxcombo.text = bonus2;
levelscore.text = _root.score;
playSound("win");
b11.title = "CONTINUE";
b2.title = "Submit Score";
b3.title = "More Games";
b4.title = "Main Menu";
b11.but.onRelease = function () {
_root.newgen = true;
if (_root.testUpgr() == true) {
menuback = "exit";
_root.openMenu("upgr");
} else {
_root.lvl++;
_root.trans.gotoAndPlay(2);
}
};
b2.but.onRelease = function () {
var _local3 = {n:[7, 8, 1, 11, 3, 3, 2, 1, 0, 12, 12, 1, 13, 4, 14, 0], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var _local4 = _local3.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:_local4, score:_root.genscore});
};
b3.but.onRelease = function () {
getURL (sponsorurl, "_blank");
};
b4.but.onRelease = function () {
_root.openMenu("main");
};
_root.genscore = _root.genscore + _root.score;
genscore.text = _root.genscore;
_root.money = _root.money + _root.giftHave;
saveStat();
mochi.as2.MochiEvents.trackEvent("Generator", _root.lvl);
Symbol 748 MovieClip Frame 52
playSound("def");
leveltxt.text = ("Level " + _root.lvl) + " FAILED!";
b1.title = "TRY AGAIN";
b2.title = "Level Select";
b3.title = "More Games";
b4.title = "Upgrade Shop";
b5.title = "Achievements";
b1.but.onRelease = function () {
_root.trans.gotoAndPlay(2);
};
b2.but.onRelease = function () {
_root.openMenu("select");
};
b3.but.onRelease = function () {
getURL (sponsorurl, "_blank");
};
b4.but.onRelease = function () {
menuback = "select";
_root.openMenu("upgr");
};
b5.but.onRelease = function () {
menuback = "select";
_root.openMenu("achi");
};
saveStat();
Symbol 748 MovieClip Frame 62
playSound("def");
genscore.text = _root.genscore;
b1.title = "SUBMIT SCORE";
b2.title = "More Games";
b3.title = "Main Menu";
b1.but.onRelease = function () {
var _local3 = {n:[7, 8, 1, 11, 3, 3, 2, 1, 0, 12, 12, 1, 13, 4, 14, 0], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var _local4 = _local3.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:_local4, score:_root.genscore});
_root.openMenu("select");
};
b2.but.onRelease = function () {
getURL (sponsorurl, "_blank");
};
b3.but.onRelease = function () {
_root.openMenu("main");
};
Symbol 748 MovieClip Frame 72
playSound("menuon");
b1.title = "START GAME";
b2.title = "Achievements";
b3.title = "Credits";
b4.title = "More Games";
b5.title = "Reset Game";
b1.but.onRelease = function () {
_root.openMenu("select");
};
b2.but.onRelease = function () {
menuback = "main";
_root.openMenu("achi");
};
b3.but.onRelease = function () {
_root.openMenu("credit");
};
b4.but.onRelease = function () {
getURL (sponsorurl, "_blank");
};
b5.but.onRelease = function () {
_root.openMenu("clear");
};
Symbol 748 MovieClip Frame 82
playSound("menuon");
b1.title = "BACK TO MENU";
b1.but.onRelease = function () {
_root.openMenu("main");
};
Symbol 748 MovieClip Frame 92
playSound("menuon");
b1.title = "CONTINUE";
b1.but.onRelease = function () {
_root.openMenu("exit");
if (_root.trans._currentframe == 1) {
_root.trans.gotoAndPlay(2);
}
};
Symbol 748 MovieClip Frame 102
b1.title = "YES!";
b2.title = "No";
b1.but.onRelease = function () {
_root.maxlvl = 1;
_root.upgr[0] = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
_root.money = 0;
_root.totalscore = 0;
_root.my_so.data.maxlvl = 1;
_root.my_so.data.upgr = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
_root.my_so.data.money = 0;
i = 1;
while (i < 41) {
_root.lvlmedal[i] = undefined;
_root.my_so.data.lvlmedal[i] = undefined;
_root.lvlrec[i] = 0;
_root.my_so.data.lvlrec[i] = 0;
i++;
}
_root.my_so.data.lvlmedal[0] = (_root.lvlmedal[0] = 0);
_root.my_so.data.lvlmedal[1] = (_root.lvlmedal[1] = 0);
i = 0;
while (i < 9) {
_root.stat[i] = 0;
i++;
}
_root.setGachi();
saveStat();
_root.openMenu("main");
};
b2.but.onRelease = function () {
_root.openMenu("main");
};
Symbol 748 MovieClip Frame 112
playSound("menuon");
b1.title = "Easy";
b2.title = "Meduim";
b3.title = "Hard";
b4.title = "Back";
b1.but.onRelease = function () {
_root.lvl = 1;
_root.diff = 1;
_root.genscore = 0;
_root.generator = (_root.newgen = true);
if (_root.trans._currentframe == 1) {
_root.trans.gotoAndPlay(2);
}
};
b2.but.onRelease = function () {
_root.lvl = 1;
_root.diff = 1.5;
_root.genscore = 0;
_root.generator = (_root.newgen = true);
if (_root.trans._currentframe == 1) {
_root.trans.gotoAndPlay(2);
}
};
b3.but.onRelease = function () {
_root.lvl = 1;
_root.diff = 2;
_root.genscore = 0;
_root.generator = (_root.newgen = true);
if (_root.trans._currentframe == 1) {
_root.trans.gotoAndPlay(2);
}
};
b4.but.onRelease = function () {
_root.openMenu("select");
};
Symbol 758 MovieClip Frame 1
stop();
Symbol 758 MovieClip Frame 5
_root.paused = true;
Symbol 758 MovieClip Frame 6
_root.createLevel();
_root.ib1.desc._visible = false;
_root.ib2.desc._visible = false;
_root.ib3.desc._visible = false;
_root.ib4.desc._visible = false;
Symbol 762 MovieClip Frame 1
stop();
Symbol 767 MovieClip Frame 1
stop();
_visible = false;
Symbol 767 MovieClip Frame 2
_visible = true;
playSound("achi2");
Symbol 767 MovieClip Frame 11
playSound("holy");
Symbol 771 MovieClip Frame 1
onEnterFrame = function () {
_x = _root._xmouse;
_y = _root._ymouse;
_root.hint._visible = _visible;
};