Frame 1
mochi.as2.MochiAd.showPreGameAd({id:"a871f8205ad02f51", res:"720x400", background:16777215, color:2293504, outline:16777215, no_bg:true});
mochi.as2.MochiServices.connect("a871f8205ad02f51");
Frame 2
function rotPoint(xPoint1, yPoint1, xPoint2, yPoint2) {
degrees = Math.atan(Math.abs(yPoint1 - yPoint2) / Math.abs(xPoint1 - xPoint2)) * 57.2957795130823;
if (xPoint1 < xPoint2) {
if (yPoint1 < yPoint2) {
return(0 + degrees);
}
if (yPoint1 > yPoint2) {
return(-degrees);
}
} else if (xPoint1 > xPoint2) {
if (yPoint1 < yPoint2) {
return(180 - degrees);
}
if (yPoint1 > yPoint2) {
return(180 + degrees);
}
}
}
function rotMC(mc1, mc2) {
rotPoint(mc1._x, mc1._y, mc2._x, mc2._y);
}
function distPoint(x1, y1, x2, y2) {
return(Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)));
}
function distMC(mc1, mc2) {
distPoint(mc1._x, mc1._y, mc2._x, mc2._y);
}
function ease(str, mov, num, drift) {
switch (str) {
case "x" :
mov._x = mov._x - (drift * ((mov._x - num) / 2));
break;
case "y" :
mov._y = mov._y - (drift * ((mov._y - num) / 2));
break;
case "xscale" :
mov._xscale = mov._xscale - (drift * ((mov._xscale - num) / 2));
break;
case "yscale" :
mov._yscale = mov._yscale - (drift * ((mov._yscale - num) / 2));
break;
case "width" :
mov._width = mov._width - (drift * ((mov._width - num) / 2));
break;
case "height" :
mov._height = mov._height - (drift * ((mov._height - num) / 2));
break;
case "alpha" :
mov._alpha = mov._alpha - (drift * ((mov._alpha - num) / 2));
break;
case "rotation" :
mov._rotation = mov._rotation - (drift * ((mov._rotation - num) / 2));
}
}
function elasticRotation(mc, targt, accel, friction) {
if (mc.qrScale == undefined) {
mc.qrScale = 0;
}
mc.qrScale = mc.qrScale + ((targt - mc._rotation) * accel);
mc.qrScale = mc.qrScale * friction;
mc._rotation = mc._rotation + mc.qrScale;
}
function elasticScale(mc, targt, accel, friction) {
if (mc.qxScale == undefined) {
mc.qxScale = 0;
}
mc.qxScale = mc.qxScale + ((targt - mc._xscale) * accel);
mc.qxScale = mc.qxScale * friction;
mc._xscale = (mc._yscale = mc._yscale + mc.qxScale);
}
function elasticX(mc, targt, accel, friction) {
if (mc.qxSpeed == undefined) {
mc.qxSpeed = 0;
}
mc.qxSpeed = mc.qxSpeed + ((targt - mc._x) * accel);
mc.qxSpeed = mc.qxSpeed * friction;
mc._x = mc._x + mc.qxSpeed;
}
function elasticY(mc, targt, accel, friction) {
if (mc.qySpeed == undefined) {
mc.qySpeed = 0;
}
mc.qySpeed = mc.qySpeed + ((targt - mc._y) * accel);
mc.qySpeed = mc.qySpeed * friction;
mc._y = mc._y + mc.qySpeed;
}
function elasticH(mc, targt, accel, friction) {
if (mc.qhSpeed == undefined) {
mc.qhSpeed = 0;
}
mc.qhSpeed = mc.qhSpeed + ((targt - mc._height) * accel);
mc.qhSpeed = mc.qhSpeed * friction;
mc._height = mc._height + mc.qhSpeed;
}
function elasticW(mc, targt, accel, friction) {
if (mc.qwSpeed == undefined) {
mc.qwSpeed = 0;
}
mc.qwSpeed = mc.qwSpeed + ((targt - mc._width) * accel);
mc.qwSpeed = mc.qwSpeed * friction;
mc._width = mc._width + mc.qwSpeed;
}
function moveAchs() {
i = 0;
while (i < visibleAchs.length) {
curAch = _root["ach" + visibleAchs[i]];
lesserAch = _root["ach" + visibleAchs[i - 1]];
if (i == 0) {
tempNum = 380;
} else {
tempNum = (380 - (i * 21)) - (21 - lesserAch._height);
}
ease("y", curAch, tempNum, 0.7);
ease("x", curAch, 0, 1);
i++;
}
}
function addAch(num) {
if (gotAch[num] == false) {
achievementsDone++;
selfScroll = false;
gotAch[num] = true;
visibleAchs.push(num);
shel = attachMovie("achievement", "ach" + num, k++);
shel._x = 600;
shel._y = 300 - (i * visibleAchs.length);
shel.num = num;
shel.ach.achName.text = achievements[num][0];
shel.ach.achDesc.text = achievements[num][1];
easePoint = num;
}
}
function achStuff() {
if (achScrolling) {
achList._y = 10 - ((slider.sliderButton._y / slideHeight) * (achList._height - 200));
} else if (!selfScroll) {
ease("y", achList, 10 - (easePoint * 23), 0.7);
slider.sliderButton._y = ((-(achList._y - 10)) * slideHeight) / (achList._height - 200);
}
i = 0;
while (i < 100) {
shel = achList["achBox" + i];
if (gotAch[i]) {
shel.checkBox.gotoAndStop(2);
shel.achDesc.text = achievements[i][1];
} else {
shel.achDesc.text = " ";
}
i++;
}
}
function removeAch(mov) {
r = 0;
while (r < visibleAchs.length) {
if (visibleAchs[r] == mov.num) {
visibleAchs.splice(r, 1);
mov.removeMovieClip();
break;
}
r++;
}
}
var k = 0;
var gotAch = new Array();
i = 0;
while (i < 100) {
gotAch.push(false);
i++;
}
var achievements = new Array();
var deadElephantCounter = 0;
var achievementsDone = 0;
var pitCounter = 0;
var miniSeconds = 0;
var seconds = 0;
var globalSound = new Sound(this);
var muted = false;
achievements.push(["Don't Move a Muscle", "Keep the elephant from moving"]);
achievements.push(["It's a Jump to the Left", "Find a way to move westward"]);
achievements.push(["And it's a step to the Ri-i-ight!", "Strain yourself to move right"]);
achievements.push(["Fight Gravity", "Figure out how to jump upwards"]);
achievements.push(["Elephant Skewers", "Hit a spike strip"]);
achievements.push(["Ascension", "Be lifted into the sky"]);
achievements.push(["Lefty", "Show love to the left wall."]);
achievements.push(["Righty", "Show love to the right wall."]);
achievements.push(["Purple Ceiling", "Hit the top of the hardest level"]);
achievements.push(["Rock Bottom", "Find the bottom of the easiest level"]);
achievements.push(["Speedy Downfall", "Fall from the top to bottom without stopping"]);
achievements.push(["Escape Velocity", "Go from bottom to top without stopping"]);
achievements.push(["Stalactite", "Skewer yourself at high speed on downward facing spikes"]);
achievements.push(["Stalagmite", "Skewer yourself at high speed on upward facing spikes"]);
achievements.push(["Found Point 0", "Uncovered secret point 0"]);
achievements.push(["Found Point 1", "Claimed secret point 1"]);
achievements.push(["Found Point 2", "Excavated secret point 2"]);
achievements.push(["Found Point 3", "Popped open secret point 3"]);
achievements.push(["Found Point 4", "Tripped over secret point 4"]);
achievements.push(["Found Point 5", "Visited secret point 5"]);
achievements.push(["Bloodhound", "Uncovered all points on level"]);
achievements.push(["Floating Corpse", "Get a skeleton stuck in a launcher"]);
achievements.push(["I Can Count to 5!", "Visit each point in order"]);
achievements.push(["We Have Liftoff", "Visit each point in reverse order"]);
achievements.push(["Airwalking", "Stay off the ground for 10 seconds"]);
achievements.push(["Hellbound", "Launch corpse to bottom"]);
achievements.push(["Heavenbound", "Launch corpse to ceiling"]);
achievements.push(["Secret Alcove", "Get surrounded by three sides (1)"]);
achievements.push(["Secret Cave", "Get surrounded by three sides (2)"]);
achievements.push(["Secret Hideout", "Get surrounded by three sides (3)"]);
achievements.push(["Death at 0", "Fire a corpse at Point 0"]);
achievements.push(["1 o'clock murder", "Fire a corpse at Point 1"]);
achievements.push(["Get Off Your Seats", "Jump for 10 seconds nonstop"]);
achievements.push(["Cemetary", "Have 5 live corpses on the screen"]);
achievements.push(["Graveyard", "Have 7 live corpses on the screen"]);
achievements.push(["Half-Century", "Reach 50 elephant deaths"]);
achievements.push(["Century", "Reach 100 elephant deaths"]);
achievements.push(["And One More...", "Hit 101 elephant deaths"]);
achievements.push(["Stayin' Alive", "Stay alive for 15 seconds"]);
achievements.push(["Longevity", "Stay alive for 30 seconds"]);
achievements.push(["Gone in a Flash", "Die in less 0.23 seconds"]);
achievements.push(["Wrecking Ball", "Hit the center spiked platform"]);
achievements.push(["In the Pit", "Land a corpse in the pit"]);
achievements.push(["Pit Hat Trick", "Land 3 corpses in the pit"]);
achievements.push(["10 Pin Pit", "Land 10 corpses in the pit"]);
achievements.push(["Double Play Pit", "Have two corpses in the pit at once"]);
achievements.push(["Triple Play Pit", "Have three corpses in the pit at once"]);
achievements.push(["Horizontal Confusion", "Hold both the left and right keys"]);
achievements.push(["Vertical Confusion", "Hold both the up and down keys"]);
achievements.push(["Total Confusion", "Space bar has no purpose, dummy"]);
achievements.push(["My Favourite Spot", "Find the developer's favourite spot"]);
achievements.push(["10 Seconds", "Play for 10 seconds"]);
achievements.push(["30 Seconds", "Play for 30 seconds"]);
achievements.push(["60 Seconds", "Play for 1 minute"]);
achievements.push(["Pi", "Hit points 3-1-4 in that order"]);
achievements.push(["THIS IS SPARTA", "Hit 3-0-0 in that order"]);
achievements.push(["Meaning of Life", "Hit 4-2 in that order"]);
achievements.push(["(2*125)+3", "Hit 2-5-3 in that order"]);
achievements.push(["3*(30/(15-13))", "Hit 4-5 in that order"]);
achievements.push(["Paint 10", "Touch 10 blocks"]);
achievements.push(["Paint 25", "Touch 25 blocks"]);
achievements.push(["Paint 50", "Touch 50 blocks"]);
achievements.push(["Paint 75", "Touch 75 blocks"]);
achievements.push(["Paint 100", "Touch 100 blocks"]);
achievements.push(["Masterpiece", "Touch every touchable block"]);
achievements.push(["Jet 5", "Hit 5 launchers"]);
achievements.push(["Jet 10", "Hit 10 launchers"]);
achievements.push(["Master Jetter", "Hit every launcher"]);
achievements.push(["3 Spikes", "Hit 3 stationary spikes"]);
achievements.push(["7 Spikes", "Hit 7 stationary spikes"]);
achievements.push(["Spikeful", "Hit all stationary spikes"]);
achievements.push(["Extreme Makeover", "Recolour all areas"]);
achievements.push(["True Blue", "Turn your elephant blue"]);
achievements.push(["Shocking Pink", "Turn your elephant Pink"]);
achievements.push(["Sweet Orange", "Turn your elephant orange"]);
achievements.push(["Stealth Black", "Turn your elephant black"]);
achievements.push(["Cheater", "Ask for a Hint"]);
achievements.push(["Programmers Credit", "Enter jmtb02 into level"]);
achievements.push(["Too Much Contra", "Enter Contra level select code"]);
achievements.push(["No Cheese for You", "Click the level area"]);
achievements.push(["Bandwidth Exploiter", "Preload the game"]);
achievements.push(["You Are El", "Click the Armor Games link"]);
achievements.push(["Menu Explorer", "Find the main menu"]);
achievements.push(["Quality Snob", "Adjust the quality"]);
achievements.push(["Scrolliastic", "Scroll the achievements section"]);
achievements.push(["Play the Game", "Start the game"]);
achievements.push(["Get to Level 1", "Play Level 1"]);
achievements.push(["Not Listening", "Mute the sound"]);
achievements.push(["Clink Clash Clink", "Found the sponsor screen"]);
achievements.push(["Best Player Ever", "Earned an achievement"]);
achievements.push(["10 Percent Done", "Earn 10 achievements"]);
achievements.push(["20 Percent Done", "Earn 20 achievements"]);
achievements.push(["30 Percent Done", "Earn 30 achievements"]);
achievements.push(["40 Percent Done", "Earn 40 achievements"]);
achievements.push(["50 Percent Done", "Earn 50 achievements"]);
achievements.push(["60 Percent Done", "Earn 60 achievements"]);
achievements.push(["70 Percent Done", "Earn 70 achievements"]);
achievements.push(["80 Percent Done", "Earn 80 achievements"]);
achievements.push(["90 Percent Done", "Earn 90 achievements"]);
achievements.push(["Too Much Free Time", "Earn 99 achievements"]);
var visibleAchs = new Array();
var achScrolling = false;
onEnterFrame = function () {
achStuff();
moveAchs();
};
stop();
stop();
var myMenu = new ContextMenu();
myMenu.hideBuiltInItems();
_root.menu = myMenu;
Instance of Symbol 72 MovieClip in Frame 2
onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
total = _root.getBytesTotal();
framesLoaded = Math.ceil((loaded / total) * 100);
gotoAndStop(framesLoaded);
status.text = framesLoaded + " % completed";
}
Frame 3
stop();
Frame 4
_root.addAch(82);
stop();
Frame 5
function sniffEnding() {
if (achievementsDone >= 100) {
loadEnding();
}
}
function loadEnding() {
clearScreen.removeMovieClip();
shel = attachMovie("clearScreen", "clearScreen", k++);
shel._x = 20;
shel._y = 20;
cStatus = 0;
}
function colorKeys() {
if (Key.isDown(49)) {
myColor = 1;
addAch(72);
}
if (Key.isDown(50)) {
myColor = 2;
addAch(73);
}
if (Key.isDown(51)) {
myColor = 3;
addAch(74);
}
if (Key.isDown(52)) {
myColor = 4;
addAch(75);
}
}
function myTime() {
miniSeconds++;
if (miniSeconds == 30) {
seconds++;
totalTime = seconds + " Seconds";
miniSeconds = 0;
}
mySeconds = (seconds + ":") + Math.floor((miniSeconds / 30) * 100);
if (seconds >= 10) {
addAch(51);
}
if (seconds >= 30) {
addAch(52);
}
if (seconds >= 60) {
addAch(53);
}
}
function contra() {
if ((contraStage == 0) || (contraStage == 1)) {
if (Key.isDown(38)) {
contraStage++;
}
}
if ((contraStage == 2) || (contraStage == 3)) {
if (Key.isDown(40)) {
contraStage++;
}
}
if ((contraStage == 4) || (contraStage == 6)) {
if (Key.isDown(37)) {
contraStage++;
}
}
if ((contraStage == 5) || (contraStage == 7)) {
if (Key.isDown(39)) {
contraStage++;
}
}
if (contraStage == 8) {
if (Key.isDown(66)) {
contraStage++;
}
}
if (contraStage == 9) {
if (Key.isDown(65)) {
addAch(78);
contraStage++;
}
}
if (jmStage == 0) {
if (Key.isDown(74)) {
jmStage++;
}
}
if (jmStage == 1) {
if (Key.isDown(77)) {
jmStage++;
}
}
if (jmStage == 2) {
if (Key.isDown(84)) {
jmStage++;
}
}
if (jmStage == 3) {
if (Key.isDown(66)) {
jmStage++;
}
}
if (jmStage == 4) {
if (Key.isDown(48)) {
jmStage++;
}
}
if (jmStage == 5) {
if (Key.isDown(50)) {
addAch(77);
jmStage++;
}
}
}
function findPoints() {
i = 0;
while (i < 6) {
if (player.hitTest(_root["point" + i])) {
if (_root["fP" + i] == false) {
_root["fP" + i] = true;
addAch(14 + i);
_root["point" + i].gotoAndStop(2);
} else if (_root["fP" + i] == true) {
_root["point" + i].gotoAndStop(3);
}
if (lastPoints[5] != i) {
lastPoints.push(i);
if (lastPoints.length > 6) {
lastPoints.splice(0, 1);
}
}
} else if (_root["fP" + i] == false) {
_root["point" + i].gotoAndStop(1);
} else if (_root["fP" + i] == true) {
_root["point" + i].gotoAndStop(2);
}
i++;
}
if (((((fP0 && (fP1)) && (fP2)) && (fP3)) && (fP4)) && (fP5)) {
addAch(20);
}
if (player.hitTest(alcove.hitA)) {
addAch(27);
}
if (player.hitTest(alcove2.hitA)) {
addAch(28);
}
if (player.hitTest(alcove3.hitA)) {
addAch(29);
}
if ((((((lastPoints[0] == 0) && (lastPoints[1] == 1)) && (lastPoints[2] == 2)) && (lastPoints[3] == 3)) && (lastPoints[4] == 4)) && (lastPoints[5] == 5)) {
addAch(22);
}
if ((((((lastPoints[5] == 0) && (lastPoints[4] == 1)) && (lastPoints[3] == 2)) && (lastPoints[2] == 3)) && (lastPoints[1] == 4)) && (lastPoints[0] == 5)) {
addAch(23);
}
if (((lastPoints[5] == 4) && (lastPoints[4] == 1)) && (lastPoints[3] == 3)) {
addAch(54);
}
if ((lastPoints[5] == 0) && (lastPoints[4] == 3)) {
addAch(55);
}
if ((lastPoints[5] == 2) && (lastPoints[4] == 4)) {
addAch(56);
}
if (((lastPoints[5] == 3) && (lastPoints[4] == 5)) && (lastPoints[3] == 2)) {
addAch(57);
}
if ((lastPoints[5] == 5) && (lastPoints[4] == 4)) {
addAch(58);
}
}
function launchaphant() {
i = 0;
while (i < launchers.length) {
curLauncher = _root["launcher" + launchers[i]];
if (curLauncher.hitTest(player)) {
player.yVel--;
addAch(5);
pass2(curLauncher);
}
j = 0;
while (j < deadElephants.length) {
curDead = _root["ele" + deadElephants[j]];
if (curLauncher.hitTest(curDead)) {
curDead.yVel--;
addAch(21);
}
if (deadElephants.length == 5) {
addAch(33);
}
if (deadElephants.length == 7) {
addAch(34);
}
j++;
}
i++;
}
}
function checkValues() {
if ((gotAch[64] && (gotAch[67])) && (gotAch[70])) {
addAch(71);
}
if (player.yVel > 19) {
addAch(10);
}
if (player.yVel < -19) {
addAch(11);
}
if (deadElephantCounter >= 50) {
addAch(35);
}
if (deadElephantCounter >= 100) {
addAch(36);
}
if (deadElephantCounter >= 101) {
addAch(37);
}
if (achievementsDone >= 1) {
addAch(89);
}
if (achievementsDone >= 10) {
addAch(90);
}
if (achievementsDone >= 20) {
addAch(91);
}
if (achievementsDone >= 30) {
addAch(92);
}
if (achievementsDone >= 40) {
addAch(93);
}
if (achievementsDone >= 50) {
addAch(94);
}
if (achievementsDone >= 60) {
addAch(95);
}
if (achievementsDone >= 70) {
addAch(96);
}
if (achievementsDone >= 80) {
addAch(97);
}
if (achievementsDone >= 90) {
addAch(98);
}
if (achievementsDone >= 99) {
addAch(99);
}
if (lifeCounter > 900) {
addAch(39);
}
if (lifeCounter > 450) {
addAch(38);
}
}
function addSpikes(mov) {
spikeCounter++;
spikes.push(spikeCounter);
mov._name = "spike" + spikeCounter;
mov.touched = false;
}
function watchSpikes() {
i = 0;
while (i < spikes.length) {
curSpike = _root["spike" + spikes[i]];
if (curSpike.hitTest(player)) {
addAch(4);
pass3(curSpike);
if (player.yVel < -16) {
addAch(12);
}
if (player.yVel > 18) {
addAch(13);
}
if (curSpike.type == 2) {
addAch(41);
}
addDeadElephant();
break;
}
i++;
}
}
function addDeadElephant() {
deadElephantCounter++;
deadElephants.push(deadElephantCounter);
shel = attachMovie("deadElephant", "ele" + deadElephantCounter, k++);
if (lifeCounter < 7) {
addAch(40);
}
lifeCounter = 0;
shel.pitBound = false;
shel._x = elephant._x;
shel._y = elephant._y;
shel.xVel = player.xVel;
shel.yVel = player.yVel;
shel.xMax = 100;
shel.yMax = 100;
shel.counter = 100;
player.xVel = 0;
player.yVel = 0;
player._x = home._x;
player._y = home._y;
home.gotoAndPlay(2);
}
function deadElephantDealings() {
inPit = 0;
i = 0;
while (i < deadElephants.length) {
curDead = _root["ele" + deadElephants[i]];
normalVertical(curDead);
bounding(curDead);
curDead.counter--;
if (curDead.counter < 10) {
curDead._alpha = curDead.counter * 10;
}
if (curDead.hitTest(point0)) {
addAch(30);
}
if (curDead.hitTest(point1)) {
addAch(31);
}
if (curDead.hitTest(pit)) {
inPit++;
if (!curDead.pitBound) {
pitCounter++;
curDead.pitBound = true;
}
if (pitCounter == 1) {
addAch(42);
}
if (pitCounter == 3) {
addAch(43);
}
if (pitCounter == 10) {
addAch(44);
}
}
if (curDead.counter == 0) {
deadElephants.splice(i, 1);
curDead.removeMovieClip();
}
i++;
}
if (inPit == 2) {
addAch(45);
}
if (inPit == 3) {
addAch(46);
}
}
function normalVertical(mc) {
mc.yVel = mc.yVel + yGrav;
if (mc.yLove == 1) {
if (!holdUp) {
mc.yVel++;
}
if (mc.yVel >= 0) {
mc.yLove = 2;
mc.yVel = 0;
}
}
if ((mc.yLove == 2) || (mc.yLove == 3)) {
if (mc.yVel > 0) {
mc.yLove = 3;
}
}
if (((mc.yLove == 3) && (mc.yVel == 0)) && (!holdUp)) {
mc.yLove = 0;
holdCounter = 0;
}
if ((mc.yLove == 0) && (mc.yVel > 1.5)) {
mc.yLove = 3;
}
if (mc.yLove == 0) {
playerJump = false;
}
}
function skinning() {
elephant._x = Math.floor(player._x);
elephant._y = Math.floor(player._y);
if (Key.isDown(37)) {
elephant.gotoAndStop(2);
elephant._xscale = 100;
addAch(1);
} else if (Key.isDown(39)) {
elephant.gotoAndStop(2);
elephant._xscale = -100;
addAch(2);
} else {
elephant.gotoAndStop(1);
if (!Key.isDown(38)) {
addAch(0);
}
}
if (Key.isDown(37) && (Key.isDown(39))) {
addAch(47);
}
if (Key.isDown(38) && (Key.isDown(40))) {
addAch(48);
}
if (Key.isDown(32)) {
addAch(49);
}
if (player.hitTest(spot)) {
addAch(50);
}
}
function movePlayer() {
if (Key.isDown(37)) {
player.xVel = -7;
} else if (Key.isDown(39)) {
player.xVel = 7;
} else {
player.xVel = 0;
}
if (Key.isDown(38)) {
addAch(3);
jumpCounter++;
if (jumpCounter > 300) {
addAch(32);
}
holdUp = true;
if ((player.yLove == 0) && (jumpLevel)) {
playerJump = true;
jumpLevel = false;
player.yVel = hops;
player.yLove = 1;
bounceSound.start(0, 1);
}
} else {
holdUp = false;
jumpCounter = 0;
}
}
function addLauncher(mov) {
launcherCounter++;
mov._name = "launcher" + launcherCounter;
mov.touched = false;
launchers.push(launcherCounter);
}
function naming(mov) {
mov._x = Math.round(mov._x);
mov._y = Math.round(mov._y);
mov.posX = Math.floor(mov._x / _root.tileSize);
mov.posY = Math.floor(mov._y / _root.tileSize);
mov.touched = false;
if (!(mov.type === 1)) {
} else {
mov._name = (("tile" + mov.posX) + "x") + mov.posY;
}
}
function bounding(mc) {
tt = 0;
while (tt < spikes.length) {
curSpike = _root["spike" + spikes[tt]];
if (curSpike.hitTest(mc)) {
pass3(curSpike);
}
tt++;
}
if ((mc.xVel * 0) != 0) {
mc.xVel = 0;
}
if ((mc.yVel * 0) != 0) {
mc.yVel = 0;
}
curLevelNum = Math.floor(mc._y / 900) + 1;
tempCurLevel = _root;
if (mc.yVel < 0) {
if (checkCoords(mc, mc._x, mc._y + mc.yVel, 0, tempCurLevel)) {
mc._y = mc._y + mc.yVel;
} else {
mc.xVel = mc.xVel * xF;
mc.yVel = mc.yVel * bounce;
mc.rotSpeed = mc.rotSpeed * -1;
mc._y = ((mc.tr._y + tileSize) + mc._height) + ((curLevelNum - 1) * 900);
if (((mc.yVel < thudTresh) && (mc.yVel > (-thudTresh))) && ((xGrav != 0) || (yGrav != 0))) {
mc.yVel = 0;
}
}
} else if (mc.yVel > 0) {
if (checkCoords(mc, mc._x, mc._y + mc.yVel, 1, tempCurLevel)) {
mc._y = mc._y + mc.yVel;
} else {
if ((mc._name == "player") && (mc.yVel > bounceTolerance)) {
bounceSound.start(0, 1);
} else if (mc.yVel > bounceTolerance) {
bulletDropSound.start(0, 1);
}
mc.xVel = mc.xVel * xF;
mc.yVel = mc.yVel * bounce;
jumping = false;
mc._y = mc.br._y + ((curLevelNum - 1) * 900);
if (((mc.yVel < thudTresh) && (mc.yVel > (-thudTresh))) && ((xGrav != 0) || (yGrav != 0))) {
mc.yVel = 0;
}
if (Math.abs(mc.yVel) > 6) {
mc.rotSpeed = mc.rotSpeed * (random(8) - 4);
} else {
mc.rotSpeed = mc.rotSpeed * 0.5;
}
}
}
if (mc.xVel < 0) {
if (checkCoords(mc, mc._x + mc.xVel, mc._y, 3, tempCurLevel)) {
mc._x = mc._x + mc.xVel;
} else {
mc.yVel = mc.yVel * yF;
mc.xVel = mc.xVel * bounce;
if ((mc._name == "player") && (mc.xVel < bounceTolerance)) {
bounceSound.start(0, 1);
}
mc._x = (mc.bl._x + (mc._width / 2)) + tileSize;
if (((mc.xVel < thudTresh) && (mc.xVel > (-thudTresh))) && ((xGrav != 0) || (yGrav != 0))) {
mc.xVel = 0;
}
}
} else if (mc.xVel > 0) {
if (checkCoords(mc, mc._x + mc.xVel, mc._y, 2, tempCurLevel)) {
mc._x = mc._x + mc.xVel;
} else {
mc.yVel = mc.yVel * yF;
mc.xVel = mc.xVel * bounce;
if ((mc._name == "player") && (mc.xVel > bounceTolerance)) {
bounceSound.start(0, 1);
}
mc._x = mc.br._x - (mc._width / 2);
if (((mc.xVel < thudTresh) && (mc.xVel > (-thudTresh))) && ((xGrav != 0) || (yGrav != 0))) {
mc.xVel = 0;
}
}
}
if (mc.xVel > mc.xMax) {
mc.xVel = mc.xMax;
}
if (mc.xVel < (-mc.xMax)) {
mc.xVel = -mc.xMax;
}
if (mc.yVel > mc.yMax) {
mc.yVel = mc.yMax;
}
if (mc.yVel < (-mc.yMax)) {
mc.yVel = -mc.yMax;
}
}
function checkCoords(mc, x, y, direction, holder) {
mc.ctlx = (x - (mc._width / 2)) + 1;
mc.ctly = (y - mc._height) + 1;
mc.ctrx = (x + (mc._width / 2)) - 1;
mc.ctry = (y - mc._height) + 1;
mc.cbrx = (x + (mc._width / 2)) - 1;
mc.cbry = (y + (mc._height * 0)) - 1;
mc.cblx = (x - (mc._width / 2)) + 1;
mc.cbly = (y + (mc._height * 0)) - 1;
mc.clmx = (x - (mc._width / 2)) + 1;
mc.clmy = (y - (mc._height / 2)) + 1;
mc.ctmx = x + 1;
mc.ctmy = (y - mc._height) + 1;
mc.crmx = (x + (mc._width / 2)) - 1;
mc.crmy = (y - (mc._height / 2)) + 1;
mc.cbmx = x + 1;
mc.cbmy = (y + (mc._height * 0)) - 1;
mc.cbmx = x + 1;
mc.cmx = x + 1;
mc.cmy = (y - (mc._height / 2)) + 1;
mc.tl = holder[(("tile" + Math.floor(mc.ctlx / tileSize)) + "x") + Math.floor(mc.ctly / tileSize)];
mc.tr = holder[(("tile" + Math.floor(mc.ctrx / tileSize)) + "x") + Math.floor(mc.ctry / tileSize)];
mc.br = holder[(("tile" + Math.floor(mc.cbrx / tileSize)) + "x") + Math.floor(mc.cbry / tileSize)];
mc.bl = holder[(("tile" + Math.floor(mc.cblx / tileSize)) + "x") + Math.floor(mc.cbly / tileSize)];
mc.tm = holder[(("tile" + Math.floor(mc.ctmx / tileSize)) + "x") + Math.floor(mc.ctmy / tileSize)];
mc.lm = holder[(("tile" + Math.floor(mc.clmx / tileSize)) + "x") + Math.floor(mc.clmy / tileSize)];
mc.bm = holder[(("tile" + Math.floor(mc.cbmx / tileSize)) + "x") + Math.floor(mc.cbmy / tileSize)];
mc.rm = holder[(("tile" + Math.floor(mc.crmx / tileSize)) + "x") + Math.floor(mc.crmy / tileSize)];
mc.mb = holder[(("tile" + Math.floor(mc.cbmx / tileSize)) + "x") + Math.floor(mc.cbly / tileSize)];
if ((mc.ctlx == 21) && (mc == player)) {
addAch(6);
}
if ((mc.ctrx == 519) && (mc == player)) {
addAch(7);
}
if ((mc.ctly < 22) && (mc == player)) {
addAch(8);
} else if ((mc.ctly < 22) && (mc != player)) {
addAch(26);
}
if ((mc.ctly > 366) && (mc == player)) {
addAch(9);
} else if ((mc.ctly > 366) && (mc != player)) {
addAch(25);
}
if (mc.tl.type == 1) {
guyTL = true;
foundWhat = mc.tl;
pass(mc.tl);
} else {
guyTL = false;
}
if (mc.tr.type == 1) {
guyTR = true;
foundWhat = mc.tr;
pass(mc.tr);
} else {
guyTR = false;
}
if (mc.br.type == 1) {
guyBR = true;
foundWhat = mc.br;
pass(mc.br);
} else if ((mc.br.type == 2) && (mc.yVel > 0)) {
guyBR = true;
foundWhat = mc.br;
} else {
guyBR = false;
}
if (mc.bl.type == 1) {
guyBL = true;
foundWhat = mc.bl;
pass(mc.bl);
} else if ((mc.bl.type == 2) && (mc.yVel > 0)) {
guyBL = true;
foundWhat = mc.bl;
} else {
guyBL = false;
}
if (mc.tm.type == 1) {
guyTM = true;
foundWhat = mc.tm;
pass(mc.tm);
} else {
guyTM = false;
}
if (mc.bm.type == 1) {
guyBM = true;
foundWhat = mc.bm;
pass(mc.bm);
} else {
guyBM = false;
}
if (mc.lm.type == 1) {
guyLM = true;
foundWhat = mc.lm;
pass(mc.lm);
} else {
guyLM = false;
}
if (mc.rm.type == 1) {
guyRM = true;
foundWhat = mc.rm;
pass(mc.rm);
} else {
guyRM = false;
}
if ((((player == mc) && (guyBM)) || (guyBL)) || (guyBR)) {
mc.yLove = 0;
holdCounter = 0;
}
if ((player == mc) && ((guyBM && (guyBL)) || (guyBM && (guyBR)))) {
jumpLevel = true;
}
if ((guyBL || (guyBR)) || (guyBM && (mc == player))) {
} else {
airCounter++;
if (airCounter >= 300) {
addAch(24);
}
}
switch (direction) {
case 0 :
if (guyTL || (guyTR)) {
return(false);
}
case 1 :
if (guyBR || (guyBL)) {
return(false);
}
case 2 :
if (guyTR || (guyBR)) {
return(false);
}
case 3 :
if (!(guyTL || (guyBL))) {
break;
}
return(false);
}
return(true);
}
function pass(re) {
if (re.touched == false) {
re.touched = true;
touchedCounter++;
if (touchedCounter >= 10) {
addAch(59);
}
if (touchedCounter >= 25) {
addAch(60);
}
if (touchedCounter >= 50) {
addAch(61);
}
if (touchedCounter >= 75) {
addAch(62);
}
if (touchedCounter >= 100) {
addAch(63);
}
if (touchedCounter >= 132) {
addAch(64);
}
re.gotoAndStop(2);
}
}
function pass2(re) {
if (re.touched == false) {
re.touched = true;
touched2Counter++;
if (touched2Counter >= 5) {
addAch(65);
}
if (touched2Counter >= 10) {
addAch(66);
}
if (touched2Counter >= 15) {
addAch(67);
}
re.gotoAndStop(2);
}
}
function pass3(re) {
if ((re.touched == false) && (re.type != 2)) {
re.touched = true;
touched3Counter++;
if (touched3Counter >= 3) {
addAch(68);
}
if (touched3Counter >= 7) {
addAch(69);
}
if (touched3Counter >= 11) {
addAch(70);
}
re.gotoAndStop(2);
}
}
stop();
var yGrav = 0.6;
var xGrav = 0;
player.xVel = 0;
var tileSize = 20;
var bounceSound = new Sound(this);
bounceSound.attachSound("jumpSound");
var bounce = -0.3;
var thudTresh = 2;
var xF = 0.5;
var yF = 1;
var hops = -10;
var cStatus = 1;
var launchers = new Array();
var launcherCounter = 0;
var spikeCounter = 0;
var spikes = new Array();
var deadElephants = new Array();
var easePoint = 0;
var airCounter = 0;
var jumpCounter = 0;
var touchedCounter = 0;
var touched2Counter = 0;
var touched3Counter = 0;
var myColor = 1;
i = 0;
while (i < 6) {
_root["fP" + i] = false;
i++;
}
var lifeCounter = 0;
var showingScores = false;
onEnterFrame = function () {
if (cStatus == 1) {
movePlayer();
normalVertical(player);
bounding(player);
skinning();
launchaphant();
watchSpikes();
deadElephantDealings();
checkValues();
findPoints();
contra();
myTime();
colorKeys();
sniffEnding();
lifeCounter++;
completed = Math.floor((achievementsDone / 100) * 100) + "% Completed";
}
moveAchs();
achStuff();
};
onMouseDown = function () {
if (_xmouse < 500) {
addAch(79);
}
if (slider.sliderButton.hitTest(_xmouse, _ymouse)) {
addAch(84);
slider.sliderButton.startDrag(true, slider.sliderButton._x, 0, slider.sliderButton._x, slideHeight);
achScrolling = true;
selfScroll = true;
} else {
achScrolling = false;
}
};
var selfScroll = false;
var slideHeight = (slider._height - slider.sliderButton._height);
onMouseUp = function () {
slider.sliderButton.stopDrag();
achScrolling = false;
};
var lastPoints = new Array(8, 8, 8, 8, 8, 8);
var contraStage = 0;
var jmStage = 0;
var totalTime;
var mySeconds;
player.yVel = 0;
player.xVel = 0;
player.xMax = 30;
player.yMax = 20;
player._visible = false;
player.yLove = 0;
holdUp = false;
playerJump = false;
jumpLevel = false;
i = 0;
while (i < 100) {
shel = achList.attachMovie("achievementBox", "achBox" + i, _root.k++);
shel._x = 0;
shel._y = 24 * i;
if (i < 10) {
shel.num.text = "00" + i;
} else if (i < 100) {
shel.num.text = "0" + i;
} else if (i >= 100) {
shel.num.text = i;
}
shel.achName.text = achievements[i][0];
if (gotAch[i]) {
shel.checkBox.gotoAndStop(2);
shel.achDesc.text = achievements[i][1];
} else {
shel.achDesc.text = " ";
}
i++;
}
addAch(85);
addAch(86);
Symbol 5 MovieClip Frame 20
stop();
Symbol 6 MovieClip Frame 1
stop();
Symbol 21 MovieClip Frame 1
function changeColor() {
if (_root.myColor == 1) {
gotoAndStop (1);
}
if (_root.myColor == 2) {
gotoAndStop (2);
}
if (_root.myColor == 3) {
gotoAndStop (3);
}
if (_root.myColor == 4) {
gotoAndStop (4);
}
}
changeColor();
onEnterFrame = function () {
changeColor();
};
Symbol 30 MovieClip [achievement] Frame 100
_root.removeAch(this);
Symbol 41 Button
on (release) {
getURL ("http://armorgames.com/", "_blank");
}
Symbol 44 Button
on (release) {
stopAllSounds();
mochi.as2.MochiScores.showLeaderboard({boardID:"550ed1656432c19c", score:_root.seconds * 1000, onClose:function () {
_root.onEnterFrame = null;
_root.gotoAndStop(2);
_parent._parent.removeMovieClip();
}, score:seconds});
}
Symbol 54 Button
on (release) {
getURL ("http://armorgames.com/", "_blank");
}
Symbol 57 MovieClip [clearScreen] Frame 75
stop();
Symbol 172 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 173 MovieClip [__Packages.mochi.as2.MochiSync] Frame 0
class mochi.as2.MochiSync
{
var _syncContainer;
function MochiSync () {
_syncContainer = {};
}
function getProp(name) {
return(_syncContainer[name]);
}
function setProp(name, value) {
if (_syncContainer[name] == value) {
return(undefined);
}
_syncContainer[name] = value;
mochi.as2.MochiServices.send("sync_propUpdate", {name:name, value:value});
}
function triggerEvent(eventType, args) {
switch (eventType) {
case SYNC_REQUEST :
mochi.as2.MochiServices.send("sync_syncronize", _syncContainer);
break;
case SYNC_PROPERTY :
_syncContainer[args.name] = args.value;
}
}
static var SYNC_REQUEST = "SyncRequest";
static var SYNC_PROPERTY = "UpdateProperty";
}
Symbol 174 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.8 as2");
}
static function allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function get isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function set comChannelName(val) {
if (val != undefined) {
if (val.length > 3) {
_sendChannelName = val + "_fromgame";
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
warnID(id, false);
if ((!_connected) && (_clip == undefined)) {
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.as2.MochiServices.onError = onError;
} else if (mochi.as2.MochiServices.onError == undefined) {
mochi.as2.MochiServices.onError = function (errorCode) {
trace(errorCode);
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.close();
}
}
static function init(id, clip) {
_id = id;
if (clip != undefined) {
_container = clip;
} else {
_container = _root;
}
loadCommunicator(id, _container);
}
static function loadCommunicator(id, clip) {
var _local6 = "_mochiservices_com_" + id;
var _local5 = new MovieClipLoader();
var _local3 = {};
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
if (urlOptions().servURL) {
_servURL = urlOptions().servURL;
}
var _local4 = _servURL + _services;
if (urlOptions().servicesURL) {
_local4 = urlOptions().servicesURL;
}
allowDomains(_local4);
_clip = clip.createEmptyMovieClip(_local6, 10336, false);
_listenChannelName = _listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor(Math.random() * 99999));
listen();
if (_local3.waitInterval != null) {
clearInterval(_local3.waitInterval);
}
_local3.onLoadError = loadError;
_local3.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_local3.onLoadComplete = function (target_mc) {
target_mc.MochiServices = mochi.as2.MochiServices;
};
_local3.startTime = getTimer();
_local3.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.as2.MochiServices.disconnect();
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_local3.waitInterval = setInterval(_local3, "wait", 1000);
_local5.addListener(_local3);
_local5.loadClip((((((_local4 + "?listenLC=") + _listenChannelName) + "&mochiad_options=") + escape(_root.mochiad_options)) + "&api_version=") + getVersion(), _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
return(_clip);
}
static function loadError(target_mc, errorCode, httpStatus) {
trace("MochiServices could not load.");
disconnect();
onError.apply(null, [errorCode]);
}
static function onStatus(infoObject) {
if (!(infoObject.level === "error")) {
} else {
_connected = false;
_listenChannel.connect(_listenChannelName);
}
}
static function listen() {
_listenChannel = new LocalConnection();
_listenChannel.handshake = function (args) {
mochi.as2.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel._nextcallbackID = 0;
_listenChannel._callbacks = {};
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, version:getVersion()});
_listenChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_listenChannel.onReceive = function (pkg) {
var _local5 = pkg.callbackID;
var _local4 = this._callbacks[_local5];
if (!_local4) {
return(undefined);
}
var _local2 = _local4.callbackMethod;
var _local3 = _local4.callbackObject;
if (_local3 && (typeof(_local2) == "string")) {
_local2 = _local3[_local2];
}
if (_local2 != undefined) {
_local2.apply(_local3, pkg.args);
}
delete this._callbacks[_local5];
};
_listenChannel.onEvent = function (pkg) {
switch (pkg.target) {
case "events" :
mochi.as2.MochiEvents.triggerEvent(pkg.event, pkg.args);
break;
case "coins" :
mochi.as2.MochiSocial.triggerEvent(pkg.event, pkg.args);
break;
case "sync" :
mochi.as2.MochiServices.servicesSync.triggerEvent(pkg.event, pkg.args);
}
};
_listenChannel.onError = function () {
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
};
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function updateCopy(args) {
send("coins_updateCopy", args, null, null);
}
static function flush(error) {
var _local1;
var _local2;
while (_sendChannel._queue.length > 0) {
_local1 = _sendChannel._queue.shift();
if (_local1.callbackID != null) {
_local2 = _listenChannel._callbacks[_local1.callbackID];
}
delete _listenChannel._callbacks[_local1.callbackID];
if (error) {
handleError(_local1.args, _local2.callbackObject, _local2.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
if ((args.options != null) && (args.options.onError != null)) {
args.options.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
trace("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
}
_listenChannel._callbacks[_listenChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_listenChannel._nextcallbackID++;
}
static function urlOptions() {
var _local5 = {};
var _local6;
if (_root._url.indexOf("mochiad_options") != -1) {
var _local2 = (_root._url.indexOf("mochiad_options") + "mochiad_options".length) + 1;
_local6 = _root._url.substr(_local2, _root._url.length);
} else if (_root.mochiad_options) {
_local6 = _root.mochiad_options;
}
if (_local6) {
var _local4 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2].split("=");
_local5[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local5);
}
static function warnID(bid, leaderboard) {
bid = bid.toLowerCase();
if (bid.length != 16) {
trace(("WARNING: " + (leaderboard ? "board" : "game")) + " ID is not the appropriate length");
return(undefined);
}
if (bid == "1e113c7239048b3f") {
if (leaderboard) {
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
}
return(undefined);
}
if (bid == "84993a1de4031cd8") {
if (leaderboard) {
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
}
return(undefined);
}
var _local1 = 0;
while (_local1 < bid.length) {
switch (bid.charAt(_local1)) {
case "0" :
case "1" :
case "2" :
case "3" :
case "4" :
case "5" :
case "6" :
case "7" :
case "8" :
case "9" :
case "a" :
case "b" :
case "c" :
case "d" :
case "e" :
case "f" :
break;
default :
trace("WARNING: Board ID contains illegal characters: " + bid);
return(undefined);
}
_local1++;
}
}
static function addLinkEvent(url, burl, btn, onClick) {
var timeout = 1500;
var t0 = getTimer();
var _local2 = new Object();
_local2.mav = getVersion();
_local2.swfv = btn.getSWFVersion() || 6;
_local2.swfurl = btn._url;
_local2.fv = System.capabilities.version;
_local2.os = System.capabilities.os;
_local2.lang = System.capabilities.language;
_local2.scres = (System.capabilities.screenResolutionX + "x") + System.capabilities.screenResolutionY;
var s = "?";
var _local3 = 0;
for (var _local6 in _local2) {
if (_local3 != 0) {
s = s + "&";
}
_local3++;
s = ((s + _local6) + "=") + escape(_local2[_local6]);
}
if (!(netupAttempted || (_connected))) {
var ping = btn.createEmptyMovieClip("ping", 777);
var _local7 = btn.createEmptyMovieClip("nettest", 778);
netupAttempted = true;
ping.loadMovie("http://x.mochiads.com/linkping.swf?t=" + getTimer());
_local7.onEnterFrame = function () {
if ((ping._totalframes > 0) && (ping._totalframes == ping._framesloaded)) {
delete this.onEnterFrame;
} else if ((getTimer() - t0) > timeout) {
delete this.onEnterFrame;
mochi.as2.MochiServices.netup = false;
}
};
}
var _local4 = btn.createEmptyMovieClip("clk", 1001);
_local4._alpha = 0;
_local4.beginFill(1044735);
_local4.moveTo(0, 0);
_local4.lineTo(0, btn._height);
_local4.lineTo(btn._width, btn._height);
_local4.lineTo(btn._width, 0);
_local4.lineTo(0, 0);
_local4.endFill();
_local4.onRelease = function () {
if (mochi.as2.MochiServices.netup) {
getURL (url + s, "_blank");
} else {
getURL (burl, "_blank");
}
if (onClick != undefined) {
onClick();
}
};
}
static function setContainer(clip) {
}
static function stayOnTop(clip) {
}
static var _servURL = "http://www.mochiads.com/static/lib/services/";
static var _services = "services.swf";
static var _mochiLC = "MochiLC.swf";
static var _listenChannelName = "__ms_";
static var _connecting = false;
static var _connected = false;
static var netup = true;
static var netupAttempted = false;
static var servicesSync = new mochi.as2.MochiSync();
}
Symbol 175 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 176 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 177 MovieClip [__Packages.mochi.as2.MochiSocial] Frame 0
class mochi.as2.MochiSocial
{
function MochiSocial () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showLoginWidget(options) {
mochi.as2.MochiServices.setContainer();
mochi.as2.MochiServices.stayOnTop();
mochi.as2.MochiServices.send("coins_showLoginWidget", {options:options});
}
static function hideLoginWidget() {
mochi.as2.MochiServices.send("coins_hideLoginWidget");
}
static function requestLogin() {
mochi.as2.MochiServices.send("coins_requestLogin");
}
static function getUserInfo() {
mochi.as2.MochiServices.send("coins_getUserInfo");
}
static function saveUserProperties(properties) {
mochi.as2.MochiServices.send("coins_saveUserProperties", properties);
}
static function addEventListener(eventType, delegate) {
_dispatcher.addEventListener(eventType, delegate);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, delegate) {
_dispatcher.removeEventListener(eventType, delegate);
}
static var LOGGED_IN = "LoggedIn";
static var LOGGED_OUT = "LoggedOut";
static var LOGIN_SHOW = "LoginShow";
static var LOGIN_HIDE = "LoginHide";
static var LOGIN_SHOWN = "LoginShown";
static var PROFILE_SHOW = "ProfileShow";
static var PROFILE_HIDE = "ProfileHide";
static var PROPERTIES_SAVED = "PropertySaved";
static var WIDGET_LOADED = "WidgetLoaded";
static var USER_INFO = "UserInfo";
static var ERROR = "Error";
static var IO_ERROR = "IOError";
static var NO_USER = "NoUser";
static var PROPERTIES_SIZE = "PropertiesSize";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 178 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 179 MovieClip [__Packages.mochi.as2.MochiAd] Frame 0
class mochi.as2.MochiAd
{
function MochiAd () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showPreGameAd(options) {
var _local26 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}, ad_progress:function (percent) {
}};
options = _parseOptions(options, _local26);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def") {
options.ad_started();
options.ad_finished();
return(undefined);
}
var clip = options.clip;
var _local23 = 11000;
var _local19 = options.ad_timeout;
if (options.skip) {
_local19 = 0;
}
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local6 = chk.createEmptyMovieClip("_mochiad_bar", 4);
if (options.no_progress_bar) {
_local6._visible = false;
delete options.no_progress_bar;
} else {
_local6._x = 10;
_local6._y = _local13 - 20;
}
var _local22 = options.color;
delete options.color;
var _local20 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local6.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local20);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local6.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local7 = _local6.createEmptyMovieClip("_outline", 3);
_local7.lineStyle(0, _local24, 100);
_local7.moveTo(0, 0);
_local7.lineTo(_local4 - 20, 0);
_local7.lineTo(_local4 - 20, 10);
_local7.lineTo(0, 10);
_local7.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local19;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
mochi.as2.MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
var sendHostProgress = false;
mc.lc.sendHostLoadProgress = function (lc_name) {
sendHostProgress = true;
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local11 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local2 = (100 * _local8) / _local4;
var _local10 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local13 = Math.min(100, Math.min(_local2 || 0, _local10));
_local13 = Math.max(this.last_pcnt, _local13);
this.last_pcnt = _local13;
_local9._xscale = _local13;
options.ad_progress(_local13);
if (sendHostProgress) {
mochi.as2.MochiAd.containerNotify(clip, {id:"hostLoadPcnt", pcnt:_local2}, clip._mochiad._containerLCName);
if (_local2 == 100) {
sendHostProgress = false;
}
}
if (!chk.showing) {
var _local7 = _local11.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if ((_local5 > chk.ad_timeout) && (_local2 == 100)) {
options.ad_failed();
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showClickAwayAd(options) {
var _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 71 Button
on (release) {
_root.play();
}
Symbol 72 MovieClip Frame 100
stop();
_root.addAch(80);
Symbol 81 Button
on (press) {
getURL ("http://www.armorgames.com", "_blank");
}
Symbol 83 MovieClip Frame 91
_root.addAch(88);
Symbol 83 MovieClip Frame 217
_root.play();
Symbol 87 Button
on (release) {
stopAllSounds();
gotoAndStop ("game");
}
Symbol 90 Button
on (release) {
addAch(81);
getURL ("http://armorgames.com/", "_blank");
}
Symbol 95 Button
on (release) {
stopAllSounds();
mochi.as2.MochiScores.showLeaderboard({boardID:"550ed1656432c19c", onClose:function () {
}});
}
Symbol 105 MovieClip Frame 1
type = 1;
_root.naming(this);
stop();
Symbol 108 MovieClip Frame 1
_root.addSpikes(this);
stop();
Symbol 112 MovieClip Frame 1
stop();
Symbol 120 MovieClip Frame 1
_root.addLauncher(this);
stop();
Symbol 120 MovieClip Frame 2
stop();
Symbol 126 MovieClip Frame 1
_root.addSpikes(this);
type = 2;
Symbol 131 MovieClip Frame 1
stop();
Symbol 134 MovieClip Frame 1
stop();
Symbol 137 MovieClip Frame 1
stop();
Symbol 140 MovieClip Frame 1
stop();
Symbol 143 MovieClip Frame 1
stop();
Symbol 146 MovieClip Frame 1
stop();
Symbol 151 MovieClip Frame 1
stop();
Symbol 152 MovieClip Frame 1
this._visible = false;
Symbol 154 Button
on (release) {
addAch(81);
getURL ("http://armorgames.com/", "_blank");
}
Symbol 158 Button
on (release) {
addAch(83);
if (_quality == "HIGH") {
_quality = "MEDIUM";
} else if (_quality == "MEDIUM") {
_quality = "LOW";
} else if (_quality == "LOW") {
_quality = "HIGH";
}
}
Symbol 166 Button
on (release) {
addAch(87);
if (!muted) {
globalSound.setVolume(0);
muted = true;
} else {
globalSound.setVolume(100);
muted = false;
}
}
Symbol 169 Button
on (release) {
addAch(81);
addAch(76);
getURL ("http://armorgames.com/page/Achievement-Guide", "_blank");
}