Frame 1
onEnterFrame = function () {
loadprogress = (this.getBytesLoaded() / this.getBytesTotal()) * 100;
if (loadprogress >= 100) {
delete this.onEnterFrame;
}
loader.gotoAndStop(Math.ceil(loadprogress / 10));
};
Stage.showMenu = false;
globalSound = new Sound();
shared = SharedObject.getLocal("pb2data");
mostplanetsbashed = 0;
besthangtime = 0;
moststarscollected = 0;
mostdustcollected = 0;
i = 1;
while (i <= 16) {
if (shared.data["gotaward" + i] == true) {
_root["gotaward" + i] = true;
} else {
_root["gotaward" + i] = false;
}
i++;
}
colour = 20;
var _mochiads_game_id = "cc64ae0d48a4d131";
mochi.as2.MochiAd.showPreGameAd({id:"cc64ae0d48a4d131", res:"500x600", background:0, color:1313942, outline:6217, no_bg:true});
loader.onRelease = function () {
getURL ("http://www.badviking.com/", "_blank");
};
mochi.as2.MochiServices.connect("cc64ae0d48a4d131", this);
Frame 9
_root.createEmptyMovieClip("music", _root.getNextHighestDepth());
musicSound = new Sound(music);
musicSound.attachSound("menumusic");
musicSound.start(0, 100000);
Frame 10
stop();
cheat = false;
_root.musicSound.setVolume(100);
_root.attachMovie("trailsprite", "trailmc", 8000);
trailbitmap = new flash.display.BitmapData(500, 600, true, 0);
_root.createEmptyMovieClip("trail", 1);
trail.attachBitmap(trailbitmap, 0);
trailmc._visible = false;
strengthdisplay = 0;
totalplanets = 0;
rocketsleft = 5;
masterhealth = 5;
masterfuel = 0;
roundno = 0;
masterrocketsleft = 5;
mastergravity = 0.6;
masterstrength = 300;
stardust = 500;
plantbought = false;
magnetbought = false;
gravitybought = false;
plantbought = false;
showerbought = false;
showerunlimited = false;
showerstarted = false;
magnetprice = 300;
strengthprice = 200;
fuelprice = 200;
gravityprice = 300;
armourprice = 300;
showerprice = 1000;
rocketprice = 1000;
plantprice = 2000;
maxedno = 0;
gamewon = false;
playbtn.onRelease = function () {
transition.play();
launchSound = new Sound(transition);
launchSound.attachSound("launchsound");
launchSound.start(0, 1);
};
badviking.onRelease = function () {
getURL ("http://www.badviking.com/", "_blank");
};
getthis.onRelease = function () {
getURL ("http://www.badviking.com/portfolio/", "_blank");
};
mochi.as2.MochiServices.addLinkEvent("http://x.mochiads.com/link/0c1cdee7f34f1c23", "www.badviking.com", badviking);
onEnterFrame = function () {
if (muted == true) {
mutebutton.gotoAndStop(2);
panel.mutebutton.gotoAndStop(2);
}
if (muted == false) {
mutebutton.gotoAndStop(1);
panel.mutebutton.gotoAndStop(1);
}
_root.mutebutton.mute1.onRelease = function () {
muted = true;
_root.globalSound.setVolume(0);
_root.mutebutton.nextFrame();
};
_root.mutebutton.mute2.onRelease = function () {
muted = false;
_root.globalSound.setVolume(100);
_root.mutebutton.prevFrame();
};
_root.panel.mutebutton.mute1.onRelease = function () {
muted = true;
_root.globalSound.setVolume(0);
_root.panel.mutebutton.nextFrame();
};
_root.panel.mutebutton.mute2.onRelease = function () {
muted = false;
_root.globalSound.setVolume(100);
_root.panel.mutebutton.prevFrame();
};
};
Frame 20
cont.onRelease = function () {
transition.play();
launchSound = new Sound(transition);
launchSound.attachSound("launchsound");
launchSound.start(0, 1);
};
Frame 30
stop();
slider._x = slide._x + (colour * 2);
slider.onEnterFrame = function () {
colour = Math.ceil((slider._x - slide._x) / 2);
rocket.rocket.gotoAndStop(colour);
if (sliderhit == true) {
if (colour > 100) {
colour = 100;
slider._x = slide._x + 200;
} else if (colour < 0) {
colour = 0;
slider._x = slide._x;
} else if ((_xmouse > slide._x) && (_xmouse < (slide._x + 200))) {
slider._x = _xmouse;
}
}
};
onMouseDown = function () {
if (paintbought == true) {
if (slider.hitTest(_xmouse, _ymouse, true) or slide.hitTest(_xmouse, _ymouse, true)) {
sliderhit = true;
}
}
};
onMouseUp = function () {
sliderhit = false;
};
shopdescription = "Welcome to the upgrade shop. Hover over an item to see what it does and how much it costs. Click to buy (if you have enough stardust).";
shopdesc = "";
cost = "";
if (magnetbought == true) {
buymagnet._alpha = 50;
}
if (plantbought == true) {
buyplant._alpha = 50;
}
if (paintbought == true) {
buypaint._alpha = 50;
slide._alpha = 100;
} else {
slide._alpha = 50;
}
if (mastergravity <= 0.3) {
buygravity._alpha = 50;
}
if (masterrocketsleft == 6) {
buyrocket._alpha = 50;
}
if (masterhealth == 50) {
buyarmour._alpha = 50;
}
if (masterfuel == 500) {
buyfuel._alpha = 50;
}
if (masterstrength > 5000) {
buystrength._alpha = 50;
}
if (showerunlimited == true) {
buyshower._alpha = 50;
}
main.onRelease = function () {
i = 1;
while (i <= totalplanets) {
_root["planet" + i].removeMovieClip();
i++;
}
j = lowerlimit;
while (j <= (totalgoals + 1)) {
_root["goal" + j].removeMovieClip();
j++;
}
gotoAndStop ("main");
};
done.onRelease = function () {
i = 1;
while (i <= totalplanets) {
_root["planet" + i]._visible = true;
i++;
}
gotoAndStop ("game");
};
buymagnet.onRollOver = function () {
price = magnetprice;
cost = ("Cost: " + price) + " SD";
shopdescription = "Star Magnet - Activate by clicking and holding the mouse or by using the space bar.";
shopdesc = "";
if (magnetbought == true) {
cost = "MAXED";
buymagnet._alpha = 50;
}
};
buystrength.onRollOver = function () {
price = strengthprice;
cost = ("Cost: " + price) + " SD";
shopdescription = "Magnet Strength - Increase your star magnet power.";
shopdesc = "Current Strength: " + strengthdisplay;
if (masterstrength > 5000) {
cost = "MAXED";
buystrength._alpha = 50;
}
};
buyfuel.onRollOver = function () {
price = fuelprice;
cost = ("Cost: " + price) + " SD";
shopdescription = "Magnet Fuel - Increase the amount of time you can use your magnet for. Replenishes after each round.";
shopdesc = "Current Fuel: " + masterfuel;
if (masterfuel == 500) {
cost = "MAXED";
buyfuel._alpha = 50;
}
};
buyshower.onRollOver = function () {
price = showerprice;
cost = ("Cost: " + price) + " SD";
if (showerbought != true) {
shopdescription = "Star Shower - Click the Star Shower icon in-game (or use 'S' on the keyboard) to send down a flurry of stars. Can be used only once per round.";
} else {
shopdescription = "Unlimited Star Shower - Click the Star Shower icon in-game to send down a flurry of stars. Can be used as many times as you want.";
}
shopdesc = "";
if (showerunlimited == true) {
cost = "MAXED";
buyshower._alpha = 50;
}
};
buyarmour.onRollOver = function () {
price = armourprice;
cost = ("Cost: " + price) + " SD";
shopdescription = "Hull Upgrade - Strengthen your ship so that it can give those planets more of a bashing.";
shopdesc = "Current Armour: " + masterhealth;
if (masterhealth == 50) {
cost = "MAXED";
buyarmour._alpha = 50;
}
};
buygravity.onRollOver = function () {
price = gravityprice;
cost = ("Cost: " + price) + " SD";
shopdescription = "Lower Gravity - Keep your ship in space for longer by reducing the inevitable pull of gravity.";
shopdesc = "";
if (mastergravity <= 0.3) {
cost = "MAXED";
buygravity._alpha = 50;
}
};
buyrocket.onRollOver = function () {
price = rocketprice;
cost = ("Cost: " + price) + " SD";
shopdescription = "Extra Rocket - Fire an extra rocket each round.";
shopdesc = "Current Rockets: " + masterrocketsleft;
if (masterrocketsleft == 6) {
cost = "MAXED";
buyrocket._alpha = 50;
}
};
buyplant.onRollOver = function () {
price = plantprice;
cost = ("Cost: " + price) + " SD";
shopdescription = "Processing Plant - get twice the juice from your stardust.";
shopdesc = "";
if (plantbought == true) {
cost = "MAXED";
buyplant._alpha = 50;
}
};
buypaint.onRollOver = function () {
price = 300;
cost = ("Cost: " + price) + " SD";
shopdescription = "Paint - Allows you to change the colour of your rocket. Ok so it doesn't help you collect stars any better but you wanna look good right?";
shopdesc = "";
if (paintbought == true) {
cost = "MAXED";
buypaint._alpha = 50;
}
};
buyarmour.onRelease = function () {
if (masterhealth < 50) {
if (stardust >= price) {
stardust = stardust - price;
masterhealth = masterhealth + 5;
shopdesc = "Current Armour: " + masterhealth;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
armourprice = armourprice + 100;
price = armourprice;
cost = ("Cost: " + price) + " SD";
if (masterhealth == 50) {
cost = "MAXED";
maxedno++;
buyarmour._alpha = 50;
}
}
}
};
buyrocket.onRelease = function () {
if (masterrocketsleft < 6) {
if (stardust >= price) {
stardust = stardust - price;
masterrocketsleft = masterrocketsleft + 1;
shopdesc = "Current Rockets: " + masterrocketsleft;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
if (masterrocketsleft == 6) {
cost = "MAXED";
maxedno++;
buyrocket._alpha = 50;
}
}
}
};
buygravity.onRelease = function () {
if (mastergravity > 0.3) {
if (stardust >= price) {
gravitybought = true;
stardust = stardust - price;
mastergravity = mastergravity - 0.3;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
if (mastergravity <= 0.3) {
cost = "MAXED";
maxedno++;
buygravity._alpha = 50;
}
}
}
};
buyplant.onRelease = function () {
if (plantbought != true) {
if (stardust >= price) {
stardust = stardust - price;
plantbought = true;
buyplant._alpha = 50;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
cost = "MAXED";
maxedno++;
}
}
};
buypaint.onRelease = function () {
if (paintbought != true) {
if (stardust >= price) {
stardust = stardust - price;
paintbought = true;
buypaint._alpha = 50;
slide._alpha = 100;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
cost = "MAXED";
maxedno++;
}
}
};
buymagnet.onRelease = function () {
if (magnetbought != true) {
if (stardust >= price) {
magjustbought = true;
strengthdisplay++;
masterstrength = 300;
masterfuel = 100;
stardust = stardust - price;
magnetbought = true;
buymagnet._alpha = 50;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
cost = "MAXED";
maxedno++;
}
}
};
buyfuel.onRelease = function () {
if (magnetbought == true) {
if ((stardust >= price) && (masterfuel < 500)) {
masterfuel = masterfuel + 100;
stardust = stardust - price;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
shopdesc = "Current Fuel: " + masterfuel;
fuelprice = fuelprice + 100;
price = fuelprice;
cost = ("Cost: " + price) + " SD";
if (masterfuel == 500) {
cost = "MAXED";
maxedno++;
buyfuel._alpha = 50;
}
}
}
};
buystrength.onRelease = function () {
if (magnetbought == true) {
if ((stardust >= price) && (masterstrength < 5000)) {
masterstrength = masterstrength * 2;
strengthdisplay++;
stardust = stardust - price;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
shopdesc = "Current Strength: " + strengthdisplay;
strengthprice = strengthprice + 100;
price = strengthprice;
cost = ("Cost: " + price) + " SD";
if (masterstrength > 5000) {
cost = "MAXED";
maxedno++;
buystrength._alpha = 50;
}
}
}
};
buyshower.onRelease = function () {
if ((stardust >= price) && (showerunlimited != true)) {
if (showerbought == true) {
showerunlimited = true;
} else {
showerjustbought = true;
}
showerbought = true;
stardust = stardust - price;
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
if (showerunlimited != true) {
showerprice = showerprice + 4000;
price = showerprice;
cost = ("Cost: " + price) + " SD";
} else {
cost = "MAXED";
maxedno++;
buyshower._alpha = 50;
}
shopdescription = "Unlimited Star Shower - Click the Star Shower icon in-game to send down a flurry of stars. Can be used as many times as you want.";
}
};
rocket.onEnterFrame = function () {
if (stardust < magnetprice) {
buymagnet._alpha = 50;
} else if (magnetbought != true) {
buymagnet._alpha = 100;
}
if ((stardust < strengthprice) or (magnetbought != true)) {
buystrength._alpha = 50;
} else if (masterstrength <= 5000) {
buystrength._alpha = 100;
}
if ((stardust < fuelprice) or (magnetbought != true)) {
buyfuel._alpha = 50;
} else if (masterfuel < 500) {
buyfuel._alpha = 100;
}
if (stardust < gravityprice) {
buygravity._alpha = 50;
} else if (gravitybought != true) {
buygravity._alpha = 100;
}
if ((stardust < plantprice) or (plantbought == true)) {
buyplant._alpha = 50;
} else if (plantbought != true) {
buyplant._alpha = 100;
}
if ((stardust < 300) or (paintbought == true)) {
buypaint._alpha = 50;
} else if (paintbought != true) {
buypaint._alpha = 100;
slide._alpha = 50;
}
if (stardust < armourprice) {
buyarmour._alpha = 50;
} else if (masterhealth < 50) {
buyarmour._alpha = 100;
}
if (stardust < rocketprice) {
buyrocket._alpha = 50;
} else if (masterrocketsleft < 6) {
buyrocket._alpha = 100;
}
if ((stardust < showerprice) or (showerunlimited == true)) {
buyshower._alpha = 50;
} else if (showerunlimited != true) {
buyshower._alpha = 100;
}
if ((maxedno == 9) && (gotaward4 != true)) {
newaward = true;
gotaward4 = true;
shared.data.gotaward4 = true;
}
};
Frame 40
function onMouseDown() {
panel.launchpopup.gotoAndStop(1);
if ((((started == true) && (magnetbought == true)) && (fuel > 0)) && (rocketonscreen == true)) {
magneton = true;
}
if ((((canshoot == true) && (panelhit != true)) && (started == true)) && (!rocketpopupvisible)) {
fire();
}
if (rocketpopupshown) {
rocketpopupvisible = false;
panel.rocketpopup._visible = false;
}
if (planetpopupshowing) {
planetpopupshowing = false;
panel.planetpopup._visible = false;
}
if (planetpopup2showing) {
planetpopup2showing = false;
panel.planetpopup2._visible = false;
}
if (magnetpopupshowing) {
magnetpopupshowing = false;
panel.magnetpopup._visible = false;
}
if (showerpopupshowing) {
showerpopupshowing = false;
panel.showerpopup._visible = false;
}
}
function onMouseUp() {
magneton = false;
if (dragging == true) {
if (tutorial) {
tutorial = false;
planetpopup2showing = true;
panel.planetpopup2.play();
}
dragging = false;
_root["planet" + planetid].stopDrag();
}
if (growdragging == true) {
i = 1;
while (i <= totalplanets) {
trace(_root["planet" + i].radius);
if (grow.hitTest(_root["planet" + i]) && (_root["planet" + i].radius < 70)) {
grow.removeMovieClip();
growdragging = false;
_root["planet" + i]._xscale = _root["planet" + i]._xscale + 60;
_root["planet" + i]._yscale = _root["planet" + i]._yscale + 60;
_root["planet" + i].radius = _root["planet" + i].radius + 12;
}
i++;
}
}
}
function explode() {
i = 0;
while (i <= 50) {
particle = _root.attachMovie("particle", "particle" + i, _root.getNextHighestDepth(), {_x:explodex, _y:explodey});
particle.xdir = random(2);
if (particle.xdir == 1) {
particle.xdir = -1;
} else {
particle.xdir = 1;
}
particle.ydir = random(2);
if (particle.ydir == 1) {
particle.ydir = -1;
} else {
particle.ydir = 1;
}
particle.xspeed = (Math.random() * particle.xdir) - (rocketdirx / 6);
particle.yspeed = ((particle.xspeed * Math.random()) * particle.ydir) - (rocketdiry / 6);
particle._xscale = (particle._yscale = random(100));
particle.onEnterFrame = function () {
this._x = this._x + this.xspeed;
this._y = this._y + this.yspeed;
this.yspeed = this.yspeed + (gravity / 4);
};
i++;
}
}
function explode2() {
i = 0;
while (i <= 10) {
particle = _root.attachMovie("particle", "particle" + i, _root.getNextHighestDepth(), {_x:explodex, _y:explodey});
particle.xdir = random(2);
if (particle.xdir == 1) {
particle.xdir = -1;
} else {
particle.xdir = 1;
}
particle.ydir = random(2);
if (particle.ydir == 1) {
particle.ydir = -1;
} else {
particle.ydir = 1;
}
particle.xspeed = (Math.random() * particle.xdir) + (rocketdirx / 6);
particle.yspeed = ((particle.xspeed * Math.random()) * particle.ydir) + (rocketdiry / 6);
particle._xscale = (particle._yscale = random(100));
particle.onEnterFrame = function () {
this._x = this._x + this.xspeed;
this._y = this._y + this.yspeed;
this.yspeed = this.yspeed + (gravity / 4);
};
i++;
}
}
function collide(R, P) {
planetsbashed++;
rocketplanetsbashed++;
stardust = stardust + 5;
roundstardust = roundstardust + 5;
rocketdust = rocketdust + 5;
health = health - 1;
if (health == 0) {
rocketcrash = true;
}
bounceSound = new Sound(cannon);
bounceSound.attachSound("bounce");
bounceSound.start(0, 1);
_root.attachMovie("score2", "score2", _root.getNextHighestDepth(), {_x:R._x, _y:R._y});
P.play();
var _local5 = R._x;
var _local4 = R._y;
var _local7 = P._x - _local5;
var _local6 = P._y - _local4;
var _local8 = Math.sqrt((_local7 * _local7) + (_local6 * _local6));
dforce = _local8 - (radius + 15);
normx = _local7 / _local8;
normy = _local6 / _local8;
dx1 = normx * dforce;
dy1 = normy * dforce;
explodex = _local5 - dx1;
explodey = _local4 - dy1;
rocketdirx = rocket.xspeed;
rocketdiry = rocket.yspeed;
explode2();
R._x = _local5 + dx1;
R._y = _local4 + dy1;
dvector = ((R.xspeed * normx) + (R.yspeed * normy)) * bounce;
dvx = dvector * normx;
dvy = dvector * normy;
R.xspeed = R.xspeed - dvx;
R.yspeed = R.yspeed - dvy;
if (R.xspeed > maxspeed) {
R.xspeed = maxspeed;
}
if (R.yspeed > maxspeed) {
R.yspeed = maxspeed;
}
if (R.xspeed < (-maxspeed)) {
R.xspeed = -maxspeed;
}
if (R.yspeed < (-maxspeed)) {
R.yspeed = -maxspeed;
}
if (P.moved != true) {
P.moved = true;
P.radiuschange = 1;
P.radius = P.radius - P.radiuschange;
} else {
P.moved = false;
P.radius = P.radius + P.radiuschange;
}
}
stop();
mochi.as2.MochiServices.addLinkEvent("http://x.mochiads.com/link/8b730ac3815963af", "www.badviking.com", panel.badviking);
tutmouse._visible = false;
started = false;
canshoot = true;
rocketonscreen = false;
cannonoriginaly = cannon._y;
health = masterhealth;
fuel = masterfuel;
rockettime = 0;
roundtime = 0;
maxspeed = 20;
friction = 0.99;
gravity = mastergravity;
rocketsleft = masterrocketsleft;
parttime = 0;
starrate = 18;
totalgoals = 0;
lowerlimit = 0;
starspeed = 1;
starsgot = 0;
roundstardust = 0;
bounce = 2.5;
planetsbashed = 0;
_root.attachMovie("panel", "panel", _root.getNextHighestDepth(), {_x:-1.3, _y:-24.7});
panel.shower._alpha = 50;
panel.rockethealth._height = (health / masterhealth) * 80;
if (masterfuel > 0) {
panel.magnetfuel._height = (fuel / masterfuel) * 80;
} else {
panel.magnetfuel._height = 0;
}
if (!planettutshown) {
panel.planetpopup._visible = true;
planetpopupshowing = true;
planettutshown = true;
tutorial = true;
} else {
panel.planetpopup._visible = false;
}
if (magjustbought) {
magjustbought = false;
magnetpopupshowing = true;
panel.magnetpopup._visible = true;
} else {
panel.magnetpopup._visible = false;
}
if (showerjustbought && (!magnetjustbought)) {
showerjustbought = false;
showerpopupshowing = true;
panel.showerpopup._visible = true;
} else {
panel.showerpopup._visible = false;
}
panel.main.onRelease = function () {
if ((dragging != true) && (growdragging != true)) {
i = 1;
while (i <= totalplanets) {
_root["planet" + i].removeMovieClip();
i++;
}
j = lowerlimit;
while (j <= (totalgoals + 1)) {
_root["goal" + j].removeMovieClip();
j++;
}
roundover.removeMovieClip();
roundoveronscreen = false;
panel.removeMovieClip();
musicSound.setVolume(100);
gameSound.stop();
gotoAndStop ("main");
}
};
panel.buyplanet.onRollOver = function () {
price = 300;
cost2 = ("Cost: " + price) + " SD";
shopdescription = "Planet - Place these strategically onto the playing area to try and stop your rocket falling.";
};
panel.buygrow.onRollOver = function () {
price = 200;
cost2 = ("Cost: " + price) + " SD";
shopdescription = "Planet Grow - Make planets bigger.";
};
panel.achievements.onRollOver = function () {
cost2 = "Achievements";
};
panel.buyplanet.onRelease = function () {
if ((growdragging != true) && (roundoveronscreen != true)) {
if ((stardust >= price) && (totalplanets < 10)) {
stardust = stardust - price;
totalplanets++;
_root.attachMovie("planet", "planet" + totalplanets, _root.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse});
_root["planet" + totalplanets].radius = 20;
dragging = true;
planetid = totalplanets;
_root["planet" + totalplanets].startDrag();
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
}
}
};
panel.buygrow.onRelease = function () {
if ((growdragging != true) && (roundoveronscreen != true)) {
if (((stardust >= price) && (totalplanets > 0)) && (planetsbig != true)) {
stardust = stardust - price;
_root.attachMovie("grow", "grow", _root.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse});
growdragging = true;
_root.grow.startDrag();
cashSound = new Sound(cannon);
cashSound.attachSound("cash");
cashSound.start(0, 1);
}
}
};
panel.shower.onRelease = function () {
if (((showerbought == true) && (showerstarted != true)) && (gamepaused != true)) {
panel.shower._alpha = 50;
showerstarted = true;
showertime = getTimer();
starspeed = 5;
starrate = 3;
}
};
panel.upgrade.onRelease = function () {
if (((dragging != true) && (growdragging != true)) && (roundoveronscreen != true)) {
i = 1;
while (i <= totalplanets) {
_root["planet" + i]._visible = false;
i++;
}
panel.removeMovieClip();
gotoAndStop ("shop");
}
};
panel.achievements.onRelease = function () {
if (((dragging != true) && (growdragging != true)) && (roundoveronscreen != true)) {
i = 1;
while (i <= totalplanets) {
_root["planet" + i]._visible = false;
i++;
}
panel.removeMovieClip();
gotoAndStop ("achievements");
}
};
panel.launch.onRelease = function () {
planetsmissed = 0;
i = 1;
while (i <= totalplanets) {
if (_root["planet" + i]._alpha == 100) {
planetsmissed++;
}
i++;
}
if (planetsmissed != totalplanets) {
planethit = true;
panel.launchpopup.play();
}
if (((((started != true) && (dragging != true)) && (growdragging != true)) && (roundoveronscreen != true)) && (planethit != true)) {
if (showerbought == true) {
panel.shower._alpha = 100;
}
if (!knowhow) {
tutmouse._visible = true;
knowhow = true;
}
newaward = false;
panel.achievements._alpha = 100;
roundtime = 0;
roundno++;
planetsbashed = 0;
roundstardust = 0;
starrate = 18;
starsgot = 0;
totalgoals = 0;
lowerlimit = 0;
initiate = true;
starspeed = 1;
started = true;
panelmove = true;
_root.musicSound.setVolume(0);
_root.createEmptyMovieClip("music3", _root.getNextHighestDepth());
gameSound = new Sound(music3);
gameSound.attachSound("gamemusic");
gameSound.start(0, 1000);
round.play();
}
planethit = false;
};
fire = function () {
tutmouse._visible = false;
rocketplanetsbashed = 0;
rocketstars = 0;
rocketdust = 0;
_root.attachMovie("trailsprite", "trailmc", 8000);
trailbitmap = new flash.display.BitmapData(500, 600, true, 0);
_root.createEmptyMovieClip("trail", 1);
trail.attachBitmap(trailbitmap, 0);
trailmc._visible = false;
starttime = getTimer();
health = masterhealth;
rocketsleft--;
canshoot = false;
angle = cannon.gun._rotation;
ballstartx = cannon._x + (90 * Math.cos((angle * Math.PI) / 180));
ballstarty = cannon._y + (90 * Math.sin((angle * Math.PI) / 180));
rocket = _root.attachMovie("rocket", "rocket", _root.getNextHighestDepth(), {_x:ballstartx, _y:ballstarty});
rocket.rocket.gotoAndStop(colour);
panel.swapDepths(_root.getNextHighestDepth());
rocketonscreen = true;
rocket.xspeed = (-Math.cos((angle * Math.PI) / 180)) * 10;
rocket.yspeed = (-Math.sin((angle * Math.PI) / 180)) * 10;
rocket.onEnterFrame = function () {
this._x = this._x - this.xspeed;
this._y = this._y - this.yspeed;
this.xspeed = this.xspeed * friction;
this.yspeed = (this.yspeed * friction) - gravity;
if (this._y < 120) {
this._y = 120;
this.yspeed = (-this.yspeed) - gravity;
}
if (this._x < 10) {
this._x = 10;
this.xspeed = -this.xspeed;
}
if (this._y > 620) {
rocketdown();
}
if (this._x > 490) {
this._x = 490;
this.xspeed = -this.xspeed;
}
if ((this.xspeed >= 0) && (rocketcrash != true)) {
this._rotation = 57.2957795130823 * Math.atan(this.yspeed / this.xspeed);
} else if (rocketcrash != true) {
this._rotation = 180 + (57.2957795130823 * Math.atan(this.yspeed / this.xspeed));
}
if ((getTimer() > parttime) && (rocketonscreen == true)) {
parttime = getTimer() + random(50);
parts++;
part = _root.attachMovie("moontrail", "p" + parts, _root.getNextHighestDepth(), {_x:rocket._x + (rocket.xspeed * 2.5), _y:rocket._y + (rocket.yspeed * 2.5)});
panel.swapDepths(_root.getNextHighestDepth());
part._xscale = (part._yscale = random(60) + 20);
part._rotation = rocket._rotation;
}
};
};
rocketdown = function () {
rockettime2 = rockettime;
hangtime = Math.ceil(rockettime2 / 1000);
roundtime = roundtime + hangtime;
rocketcrash = false;
canshoot = true;
rocketonscreen = false;
rocket.removeMovieClip();
health = masterhealth;
if (rocketplanetsbashed > mostplanetsbashed) {
mostbashed.swapDepths(_root.getNextHighestDepth());
mostbashed.play();
mostplanetsbashed = rocketplanetsbashed;
shared.data.mostplanetsbashed = mostplanetsbashed;
}
if (hangtime > besthangtime) {
besthang.swapDepths(_root.getNextHighestDepth());
besthang.play();
besthangtime = hangtime;
shared.data.besthangtime = besthangtime;
}
if (rocketstars > moststarscollected) {
moststars.swapDepths(_root.getNextHighestDepth());
moststars.play();
moststarscollected = rocketstars;
shared.data.moststarscollected = moststarscollected;
}
if (rocketdust > mostdustcollected) {
moststardust.swapDepths(_root.getNextHighestDepth());
moststardust.play();
mostdustcollected = rocketdust;
shared.data.mostdustcollected = mostdustcollected;
}
if ((rocketplanetsbashed >= 10) && (gotaward5 != true)) {
newaward = true;
gotaward5 = true;
shared.data.gotaward5 = true;
}
if ((rocketplanetsbashed >= 25) && (gotaward6 != true)) {
newaward = true;
gotaward6 = true;
shared.data.gotaward6 = true;
}
if ((rocketplanetsbashed >= 40) && (gotaward7 != true)) {
newaward = true;
gotaward7 = true;
shared.data.gotaward7 = true;
}
if ((hangtime >= 10) && (gotaward9 != true)) {
newaward = true;
gotaward9 = true;
shared.data.gotaward9 = true;
}
if ((hangtime >= 30) && (gotaward10 != true)) {
newaward = true;
gotaward10 = true;
shared.data.gotaward10 = true;
}
if ((rocketstars >= 10) && (gotaward11 != true)) {
newaward = true;
gotaward11 = true;
shared.data.gotaward11 = true;
}
if ((rocketstars >= 30) && (gotaward12 != true)) {
newaward = true;
gotaward12 = true;
shared.data.gotaward12 = true;
}
if ((rocketstars >= 100) && (gotaward13 != true)) {
newaward = true;
gotaward13 = true;
shared.data.gotaward13 = true;
}
if (rocketsleft == 0) {
_root.attachMovie("trailsprite", "trailmc", 8000);
trailbitmap = new flash.display.BitmapData(500, 600, true, 0);
_root.createEmptyMovieClip("trail", 1);
trail.attachBitmap(trailbitmap, 0);
trailmc._visible = false;
showerstarted = false;
panel.shower._alpha = 50;
roundtime = roundtime + "s";
starspeed = 30;
started = false;
rocketsleft = masterrocketsleft;
panelmovedown = true;
fuel = masterfuel;
_root.attachMovie("roundover", "roundover", _root.getNextHighestDepth(), {_x:37.5, _y:83.9});
roundoveronscreen = true;
if ((starsgot >= 200) && (gotaward1 != true)) {
newaward = true;
gotaward1 = true;
shared.data.gotaward1 = true;
}
if ((starsgot >= 300) && (gotaward2 != true)) {
newaward = true;
gotaward2 = true;
shared.data.gotaward2 = true;
}
if ((starsgot >= 400) && (gotaward3 != true)) {
newaward = true;
gotaward3 = true;
shared.data.gotaward3 = true;
}
if ((roundstardust >= 5000) && (gotaward8 != true)) {
newaward = true;
gotaward8 = true;
shared.data.gotaward8 = true;
}
if (plantbought == true) {
roundover.plantbought._visible = true;
stardust = stardust + roundstardust;
roundstardust = roundstardust * 2;
} else {
roundover.plantbought._visible = false;
}
if (newaward == true) {
roundover.newawardgot._visible = true;
} else {
roundover.newawardgot._visible = false;
}
_root.musicSound.setVolume(100);
gameSound.stop();
gongSound = new Sound(cannon);
gongSound.attachSound("gong");
gongSound.start(0, 1);
roundover.cont.onRelease = function () {
roundoveronscreen = false;
roundover.removeMovieClip();
};
roundover.upgrade.onRelease = function () {
roundoveronscreen = false;
roundover.removeMovieClip();
i = 1;
while (i <= totalplanets) {
_root["planet" + i]._visible = false;
i++;
}
panel.removeMovieClip();
gotoAndStop ("shop");
};
}
};
cannon.onEnterFrame = function () {
if (newaward == true) {
if (awardalphaup == true) {
panel.achievements._alpha = panel.achievements._alpha + 2;
if (panel.achievements._alpha >= 100) {
awardalphaup = false;
}
} else {
panel.achievements._alpha = panel.achievements._alpha - 2;
if (panel.achievements._alpha <= 20) {
awardalphaup = true;
}
}
}
bigplanets = 0;
i = 1;
while (i <= totalplanets) {
if (_root["planet" + i].radius > 70) {
bigplanets++;
}
i++;
}
if (bigplanets == totalplanets) {
planetsbig = true;
panel.buygrow._alpha = 50;
} else {
planetsbig = false;
}
i = 1;
while (i <= totalplanets) {
j = 1;
while (j <= totalplanets) {
if (started != true) {
c = _root["planet" + j];
d = _root["planet" + i];
var _local4 = d._x - c._x;
var _local3 = d._y - c._y;
var _local6 = Math.sqrt((_local4 * _local4) + (_local3 * _local3));
if ((_local6 <= ((d.radius + c.radius) + 50)) && (c != d)) {
c.hit = true;
} else if (c.hit != true) {
c.hit = false;
}
}
j++;
}
i++;
}
i = 1;
while (i <= totalplanets) {
if (planetjustbought != true) {
if (((_root["planet" + i].hit == false) && ((_root["planet" + i]._y - _root["planet" + i].radius) > 250)) && (roundover != true)) {
_root["planet" + i]._alpha = 100;
} else {
_root["planet" + i]._alpha = 50;
}
_root["planet" + i].hit = false;
} else if (i != totalplanets) {
if (((_root["planet" + i].hit == false) && ((_root["planet" + i]._y - _root["planet" + i].radius) > 250)) && (roundover != true)) {
_root["planet" + i]._alpha = 100;
} else {
_root["planet" + i]._alpha = 50;
}
_root["planet" + i].hit = false;
}
i++;
}
if (((getTimer() > (showertime + 10000)) && (showerstarted == true)) && (started == true)) {
starrate = 18;
starspeed = 1;
if (showerunlimited == true) {
panel.shower._alpha = 100;
showerstarted = false;
}
}
if ((stardust < 300) or (totalplanets >= 10)) {
panel.buyplanet._alpha = 50;
} else if (totalplanets < 10) {
panel.buyplanet._alpha = 100;
}
if (((stardust < 200) or (totalplanets == 0)) or (planetsbig == true)) {
panel.buygrow._alpha = 50;
} else {
panel.buygrow._alpha = 100;
}
if (rocketonscreen == true) {
_root.trailmc.trailsprite._x = rocket._x;
_root.trailmc.trailsprite._y = rocket._y;
_root.trailbitmap.draw(_root.trailmc);
}
trailrectangle = new flash.geom.Rectangle(0, 0, 500, 600);
trailblur = new flash.filters.BlurFilter(1, 1, 3);
_root.trailbitmap.applyFilter(_root.trailbitmap, trailrectangle, new Point(0, 0), trailblur);
if (starsfast == true) {
if (getTimer() > (starsfaststart + 1000)) {
starsfast = false;
starrate = 18;
starspeed = 1;
}
}
rockettime = getTimer() - starttime;
if (Key.isDown(32)) {
if (((canshoot != true) && (started == true)) && (fuel > 0)) {
if (magnetbought == true) {
spacemag = true;
magneton = true;
}
}
} else if (spacemag == true) {
spacemag = false;
magneton = false;
}
if (Key.isDown(83)) {
if (((showerbought == true) && (showerstarted != true)) && (gamepaused != true)) {
panel.shower._alpha = 50;
showerstarted = true;
showertime = getTimer();
starspeed = 5;
starrate = 3;
}
}
if (magneton == true) {
fuel = fuel - 2;
if (fuel < 0) {
fuel = 0;
magneton = false;
}
if (rocketonscreen == false) {
magneton = false;
}
j = lowerlimit;
while (j <= (totalgoals + 1)) {
endX = rocket._x;
endY = rocket._y;
_root["goal" + j].xdistance = _root["goal" + j]._x - endX;
_root["goal" + j].ydistance = _root["goal" + j]._y - endY;
_root["goal" + j].speed = Math.sqrt((_root["goal" + j].xdistance * _root["goal" + j].xdistance) + (_root["goal" + j].ydistance * _root["goal" + j].ydistance));
if (_root["goal" + j].ydistance > 0) {
_root["goal" + j].ymult = -1;
_root["goal" + j].xmult = -1;
} else {
_root["goal" + j].ymult = 1;
_root["goal" + j].xmult = 1;
}
_root["goal" + j].starangle = Math.atan(_root["goal" + j].xdistance / _root["goal" + j].ydistance);
_root["goal" + j].xmove = Math.sin(_root["goal" + j].starangle);
_root["goal" + j].ymove = Math.cos(_root["goal" + j].starangle);
_root["goal" + j]._x = _root["goal" + j]._x + (((_root["goal" + j].xmove * _root["goal" + j].xmult) * masterstrength) / _root["goal" + j].speed);
_root["goal" + j]._y = _root["goal" + j]._y + (((_root["goal" + j].ymove * _root["goal" + j].ymult) * masterstrength) / _root["goal" + j].speed);
j++;
}
}
panel.rockethealth._height = (health / masterhealth) * 80;
if (masterfuel > 0) {
panel.magnetfuel._height = (fuel / masterfuel) * 80;
} else {
panel.magnetfuel._height = 0;
}
if (rocketcrash == true) {
rocket._rotation = rocket._rotation + 10;
rocket._xscale = rocket._xscale - 5;
rocket._yscale = rocket._yscale - 5;
if (rocket._yscale < 5) {
if (!rocketpopupshown) {
rocketpopupvisible = true;
panel.rocketpopup.play();
rocketpopupshown = true;
}
rocketcrash = false;
rocketdown();
}
}
if (panelmove == true) {
cannon._y = cannon._y + 5;
panel.buyplanet._y = panel.buyplanet._y - 8;
panel.buygrow._y = panel.buygrow._y - 8;
panel.launch._y = panel.launch._y - 8;
panel.upgrade._y = panel.upgrade._y - 8;
panel.price2._y = panel.price2._y - 8;
panel.line._y = panel.line._y - 8;
panel.achievements._y = panel.achievements._y - 8;
if (cannon._y > 120) {
panelmove = false;
}
}
if (panelmovedown == true) {
cannon._y = cannon._y - 5;
panel.buyplanet._y = panel.buyplanet._y + 8;
panel.buygrow._y = panel.buygrow._y + 8;
panel.launch._y = panel.launch._y + 8;
panel.upgrade._y = panel.upgrade._y + 8;
panel.price2._y = panel.price2._y + 8;
panel.line._y = panel.line._y + 8;
panel.achievements._y = panel.achievements._y + 8;
if (cannon._y <= cannonoriginaly) {
panelmovedown = false;
}
}
i = 1;
while (i <= totalplanets) {
_root["planet" + i].onPress = function () {
if (((started != true) && (growdragging != true)) && (roundoveronscreen != true)) {
startx = this._x;
starty = this._y;
dragging = true;
this.startDrag();
this.swapDepths(_root.getNextHighestDepth());
var _local3 = new Array();
_local3 = [this];
tempstring2 = _local3.toString();
templength = length(tempstring2);
tempstring3 = tempstring2.slice(14, templength);
tempstring4 = parseInt(tempstring3);
planetid = tempstring4;
}
};
i++;
}
if ((((((panel.hitTest(_xmouse, _ymouse, true) && (!panel.planetpopup.hitTest(_xmouse, _ymouse, true))) && (!panel.planetpopup2.hitTest(_xmouse, _ymouse, true))) && (!panel.rocketpopup.hitTest(_xmouse, _ymouse, true))) && (!panel.magnetpopup.hitTest(_xmouse, _ymouse, true))) && (!panel.showerpopup.hitTest(_xmouse, _ymouse, true))) && (!panel.launchpopup.hitTest(_xmouse, _ymouse, true))) {
panelhit = true;
} else {
panelhit = false;
}
if (cannon._x > (_xmouse + 5)) {
cannon._x = cannon._x - 8;
}
if (cannon._x < (_xmouse - 5)) {
cannon._x = cannon._x + 8;
}
if (cannon.gun._rotation < 10) {
rot = false;
}
if (rot != true) {
cannon.gun._rotation = cannon.gun._rotation + 2.5;
}
if (cannon.gun._rotation > 170) {
rot = true;
}
if (rot == true) {
cannon.gun._rotation = cannon.gun._rotation - 2.5;
}
if (((random(2) == 0) && (initiate != false)) && (started == true)) {
_root.attachMovie("goal", "goal" + totalgoals, _root.getNextHighestDepth(), {_x:random(400) + 50, _y:random(400) + 110});
_root["goal" + totalgoals]._rotation = random(360);
_root["goal" + totalgoals]._xscale = (_root["goal" + totalgoals]._yscale = random(50) + 50);
totalgoals++;
if (totalgoals >= 25) {
initiate = false;
}
}
if ((random(starrate) == 0) && (started == true)) {
_root.attachMovie("goal", "goal" + totalgoals, _root.getNextHighestDepth(), {_x:random(400) + 50, _y:110});
panel.swapDepths(_root.getNextHighestDepth());
_root["goal" + totalgoals]._rotation = random(360);
_root["goal" + totalgoals]._xscale = (_root["goal" + totalgoals]._yscale = random(50) + 50);
totalgoals++;
}
j = lowerlimit;
while (j <= (totalgoals + 1)) {
_root["goal" + j]._rotation = _root["goal" + j]._rotation + Math.random();
_root["goal" + j]._y = _root["goal" + j]._y + starspeed;
if (_root["goal" + j]._y > 600) {
i = lowerlimit;
while (i <= (totalgoals + 1)) {
if (_root["goal" + i] != undefined) {
if (checked != true) {
checked = true;
lowerlimit = i;
}
}
i++;
}
checked = false;
_root["goal" + j].removeMovieClip();
}
j++;
}
a = rocket;
j = lowerlimit;
while (j <= (totalgoals + 1)) {
c = _root["goal" + j];
if (c.hitTest(a) && (c.collected != true)) {
starsgot++;
rocketstars++;
winSound = new Sound(cannon);
winSound.attachSound("pop");
winSound.start(0, 1);
explodex = _root["goal" + j]._x;
explodey = _root["goal" + j]._y;
rocketdirx = rocket.xspeed;
rocketdiry = rocket.yspeed;
stardust = stardust + 10;
roundstardust = roundstardust + 10;
rocketdust = rocketdust + 10;
explode();
c.collected = true;
i = lowerlimit;
while (i <= (totalgoals + 1)) {
if (_root["goal" + i] != undefined) {
if (checked != true) {
checked = true;
lowerlimit = i;
}
}
i++;
}
checked = false;
_root.attachMovie("score", "score", _root.getNextHighestDepth(), {_x:c._x, _y:c._y});
c.removeMovieClip();
}
j++;
}
a = rocket;
i = 1;
while (i <= totalplanets) {
b = _root["planet" + i];
var _local4 = b._x - a._x;
var _local3 = b._y - a._y;
var _local6 = Math.sqrt((_local4 * _local4) + (_local3 * _local3));
if ((_local6 <= (b.radius + 15)) && (rocketonscreen == true)) {
radius = b.radius;
collide(a, b);
}
i++;
}
if ((starsgot >= 300) && (!gamewon)) {
rockettime2 = rockettime;
hangtime = Math.ceil(rockettime2 / 1000);
roundtime = roundtime + hangtime;
health = masterhealth;
if (rocketplanetsbashed > mostplanetsbashed) {
mostbashed.swapDepths(_root.getNextHighestDepth());
mostbashed.play();
mostplanetsbashed = rocketplanetsbashed;
shared.data.mostplanetsbashed = mostplanetsbashed;
}
if (hangtime > besthangtime) {
besthang.swapDepths(_root.getNextHighestDepth());
besthang.play();
besthangtime = hangtime;
shared.data.besthangtime = besthangtime;
}
if (rocketstars > moststarscollected) {
moststars.swapDepths(_root.getNextHighestDepth());
moststars.play();
moststarscollected = rocketstars;
shared.data.moststarscollected = moststarscollected;
}
if (rocketdust > mostdustcollected) {
moststardust.swapDepths(_root.getNextHighestDepth());
moststardust.play();
mostdustcollected = rocketdust;
shared.data.mostdustcollected = mostdustcollected;
}
if ((rocketplanetsbashed >= 10) && (gotaward5 != true)) {
newaward = true;
gotaward5 = true;
shared.data.gotaward5 = true;
}
if ((rocketplanetsbashed >= 25) && (gotaward6 != true)) {
newaward = true;
gotaward6 = true;
shared.data.gotaward6 = true;
}
if ((rocketplanetsbashed >= 40) && (gotaward7 != true)) {
newaward = true;
gotaward7 = true;
shared.data.gotaward7 = true;
}
if ((hangtime >= 10) && (gotaward9 != true)) {
newaward = true;
gotaward9 = true;
shared.data.gotaward9 = true;
}
if ((hangtime >= 30) && (gotaward10 != true)) {
newaward = true;
gotaward10 = true;
shared.data.gotaward10 = true;
}
if ((rocketstars >= 10) && (gotaward11 != true)) {
newaward = true;
gotaward11 = true;
shared.data.gotaward11 = true;
}
if ((rocketstars >= 30) && (gotaward12 != true)) {
newaward = true;
gotaward12 = true;
shared.data.gotaward12 = true;
}
if ((rocketstars >= 100) && (gotaward13 != true)) {
newaward = true;
gotaward13 = true;
shared.data.gotaward13 = true;
}
if ((roundno <= 20) && (gotaward14 != true)) {
newaward = true;
gotaward14 = true;
shared.data.gotaward14 = true;
}
if ((roundno <= 15) && (gotaward15 != true)) {
newaward = true;
gotaward15 = true;
shared.data.gotaward15 = true;
}
if ((roundno <= 10) && (gotaward16 != true)) {
newaward = true;
gotaward16 = true;
shared.data.gotaward16 = true;
}
if ((starsgot >= 200) && (gotaward1 != true)) {
newaward = true;
gotaward1 = true;
shared.data.gotaward1 = true;
}
if ((starsgot >= 300) && (gotaward2 != true)) {
newaward = true;
gotaward2 = true;
shared.data.gotaward2 = true;
}
if ((starsgot >= 400) && (gotaward3 != true)) {
newaward = true;
gotaward3 = true;
shared.data.gotaward3 = true;
}
if ((roundstardust >= 5000) && (gotaward8 != true)) {
newaward = true;
gotaward8 = true;
shared.data.gotaward8 = true;
}
gamewon = true;
trail.removeMovieClip();
rocket.removeMovieClip();
rocketonscreen = false;
i = 1;
while (i <= totalplanets) {
_root["planet" + i]._alpha = 10;
i++;
}
j = lowerlimit;
while (j <= (totalgoals + 1)) {
_root["goal" + j].removeMovieClip();
j++;
}
roundover.removeMovieClip();
roundoveronscreen = false;
panel.removeMovieClip();
gotoAndStop ("over");
}
};
Frame 50
newaward = false;
i = 1;
while (i <= 16) {
if (_root["gotaward" + i] == true) {
_root.achievements["award" + i].gotoAndStop(1);
_root.achievements["noaward" + i]._visible = false;
} else {
_root.achievements["noaward" + i]._visible = true;
_root.achievements["award" + i].gotoAndStop(2);
}
i++;
}
achievements.onEnterFrame = function () {
i = 1;
while (i <= 16) {
if (_root.achievements["noaward" + i].hitTest(_xmouse, _ymouse)) {
awardtext2.awardtext.gotoAndStop(i + 1);
}
if (_root.achievements["award" + i].hitTest(_xmouse, _ymouse)) {
awardtext2.awardtext.gotoAndStop(i + 1);
_root.achievements["award" + i].rotating = true;
_root.achievements["award" + i].rotno = 20;
_root.achievements["award" + i].scaleno = 150;
}
i++;
}
i = 1;
while (i <= 16) {
if (_root.achievements["award" + i].rotating == true) {
_root.achievements["award" + i]._rotation = _root.achievements["award" + i]._rotation + _root.achievements["award" + i].rotno;
_root.achievements["award" + i]._xscale = (_root.achievements["award" + i]._yscale = _root.achievements["award" + i].scaleno);
_root.achievements["award" + i].rotno = _root.achievements["award" + i].rotno - 0.1;
_root.achievements["award" + i].scaleno = _root.achievements["award" + i].scaleno - 0.25;
if (_root.achievements["award" + i].rotno <= 0) {
_root.achievements["award" + i].rotating = false;
}
}
i++;
}
};
back.onRelease = function () {
i = 1;
while (i <= totalplanets) {
_root["planet" + i]._visible = true;
i++;
}
gotoAndStop ("game");
};
Frame 60
stars = 0;
playinggame = false;
musicSound.setVolume(0);
gameSound.stop();
_root.createEmptyMovieClip("music4", _root.getNextHighestDepth());
rockSound = new Sound(music4);
rockSound.attachSound("rock");
rockSound.start(0, 999);
origdepth = buttonanim.getDepth();
buttonanim.swapDepths(_root.getNextHighestDepth());
launch = function () {
amountrocket = random(3) + 1;
i = 1;
while (i <= amountrocket) {
rocket = _root.attachMovie("rocket", "rocket" + i, _root.getNextHighestDepth(), {_x:random(500), _y:600});
rocket.parttime = 0;
if (rocket._x < 250) {
rocket.xspeed = random(5) + 5;
} else {
rocket.xspeed = -(random(5) + 5);
}
rocket.yspeed = random(10) + 25;
rocket.onEnterFrame = function () {
this.yspeed = this.yspeed - 1;
this._x = this._x + this.xspeed;
this._y = this._y - this.yspeed;
if (this.xspeed > 0) {
this._rotation = (-57.2957795130823 * Math.atan(this.yspeed / this.xspeed)) + 180;
} else {
this._rotation = -57.2957795130823 * Math.atan(this.yspeed / this.xspeed);
}
if (getTimer() > this.parttime) {
this.parttime = getTimer() + random(50);
this.parts++;
this.part = _root.attachMovie("moontrail", "p" + this.parts, _root.getNextHighestDepth(), {_x:this._x, _y:this._y});
this.swapDepths(_root.getNextHighestDepth());
this.part._xscale = (this.part._yscale = random(60) + 20);
this.part._rotation = this._rotation;
}
if (this.yspeed < 1) {
rocket = this;
starcolour = random(4) + 1;
explode();
}
};
i++;
}
};
explode = function () {
i = 1;
while (i <= 100) {
star = _root.attachMovie("star", "star" + i, _root.getNextHighestDepth(), {_x:rocket._x, _y:rocket._y});
stars++;
star.gotoAndStop(starcolour);
xdir = random(2);
if (xdir == 1) {
star.xdir = 1;
} else {
star.xdir = -1;
}
ydir = random(2);
if (ydir == 1) {
star.ydir = 1;
} else {
star.ydir = -1;
}
star._alpha = random(50) + 50;
star.xspeed = random(20) * star.xdir;
star.yspeed = random(20) * star.ydir;
speed = Math.sqrt((star.xspeed * star.xspeed) + (star.yspeed * star.yspeed));
if (speed > 20) {
star.xspeed = random(10) * star.xdir;
star.yspeed = random(10) * star.ydir;
}
star._rotation = random(360);
star._xscale = (star._yscale = random(100) + 5);
star.onEnterFrame = function () {
this.yspeed = this.yspeed + 0.5;
this.xspeed = this.xspeed * 0.99;
this._x = this._x + this.xspeed;
this._y = this._y + this.yspeed;
this._alpha = this._alpha - 2;
if (this._alpha <= 0) {
this.removeMovieClip();
stars--;
if ((stars <= 0) && (!playinggame)) {
launch();
}
}
};
i++;
}
bangSound = new Sound(buttonanim);
bangSound.attachSound("firework");
bangSound.start(0, 1);
rocket.removeMovieClip();
};
launch();
buttonanim.keepplaying.onRelease = function () {
musicSound.setVolume(100);
rockSound.stop();
buttonanim.swapDepths(origdepth);
playinggame = true;
i = 1;
while (i <= amountrocket) {
_root["rocket" + i].removeMovieClip();
i++;
}
gotoAndStop ("game");
};
buttonanim.moregames.onRelease = function () {
getURL ("http://www.badviking.com/", "_blank");
};
mochi.as2.MochiServices.addLinkEvent("http://x.mochiads.com/link/254737e092cc8b47", "www.badviking.com", buttonanim.moregames);
buttonanim.mainmenu.onRelease = function () {
musicSound.setVolume(100);
rockSound.stop();
buttonanim.swapDepths(origdepth);
playinggame = true;
i = 1;
while (i <= amountrocket) {
_root["rocket" + i].removeMovieClip();
i++;
}
i = 1;
while (i <= totalplanets) {
_root["planet" + i].removeMovieClip();
i++;
}
j = lowerlimit;
while (j <= (totalgoals + 1)) {
_root["goal" + j].removeMovieClip();
j++;
}
roundover.removeMovieClip();
roundoveronscreen = false;
panel.removeMovieClip();
buttonanim.swapDepths(origdepth);
playinggame = true;
gotoAndStop ("main");
};
if (cheat) {
buttonanim.submit._visible = false;
} else {
buttonanim.submit._visible = true;
buttonanim.submit.onRelease = function () {
var _local2 = {n:[7, 11, 14, 14, 4, 8, 10, 0, 14, 11, 0, 15, 10, 3, 12, 1], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var _local3 = _local2.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:_local3, score:roundno, onClose:function () {
stop();
}});
};
}
Symbol 7 MovieClip [slash] Frame 1
this.onEnterFrame = function () {
this._alpha = this._alpha - 10;
};
Symbol 7 MovieClip [slash] Frame 7
stop();
Symbol 11 MovieClip [score2] Frame 19
this.removeMovieClip();
Symbol 14 MovieClip [score] Frame 20
this.removeMovieClip();
Symbol 16 MovieClip [particle] Frame 25
this.removeMovieClip();
Symbol 18 MovieClip [moontrail] Frame 30
this.removeMovieClip();
Symbol 51 MovieClip Frame 1
stop();
Symbol 61 MovieClip Frame 11
stop();
Symbol 66 MovieClip Frame 11
stop();
Symbol 71 MovieClip Frame 1
stop();
Symbol 71 MovieClip Frame 11
stop();
Symbol 74 MovieClip Frame 1
this.gotoAndStop(_root.colour);
Symbol 91 MovieClip [mute] Frame 1
stop();
Symbol 91 MovieClip [mute] Frame 2
stop();
Symbol 99 MovieClip Frame 1
stop();
wait = (getTimer() + random(10000)) + 2000;
this.onEnterFrame = function () {
if (getTimer() > wait) {
play();
}
};
Symbol 120 MovieClip [dagger] Frame 1
stop();
Symbol 136 MovieClip Frame 1
stop();
wait = (getTimer() + random(5000)) + 2000;
this.onEnterFrame = function () {
if (getTimer() > wait) {
this.play();
}
};
Symbol 136 MovieClip Frame 22
Symbol 139 MovieClip [pom] Frame 1
stop();
wait = (getTimer() + random(10000)) + 5000;
this.onEnterFrame = function () {
if (getTimer() > wait) {
this.play();
}
};
Symbol 142 MovieClip [hitter] Frame 1
this._alpha = 0;
Symbol 147 MovieClip [weapon] Frame 1
stop();
_root.weapon = "hammer";
Symbol 147 MovieClip [weapon] Frame 2
stop();
_root.weapon = "sword";
Symbol 147 MovieClip [weapon] Frame 3
stop();
_root.weapon = "axe";
Symbol 147 MovieClip [weapon] Frame 4
stop();
_root.weapon = "dagger";
Symbol 153 MovieClip [slash2] Frame 1
this.onEnterFrame = function () {
this._alpha = this._alpha - 10;
};
Symbol 153 MovieClip [slash2] Frame 7
stop();
Symbol 155 MovieClip Frame 1
stop();
if (_root.mousedown == true) {
_root.swinging = true;
play();
}
Symbol 155 MovieClip Frame 10
_root.attacking = true;
Symbol 155 MovieClip Frame 15
bomb2Sound = new Sound(this);
bomb2Sound.attachSound("bomb2");
bomb2Sound.start(0, 1);
Symbol 155 MovieClip Frame 31
gotoAndStop ("hammer");
_root.swinging = false;
Symbol 161 MovieClip Frame 9
this.gotoAndPlay("idle");
Symbol 172 MovieClip Frame 1
stop();
Symbol 172 MovieClip Frame 11
stop();
Symbol 181 MovieClip Frame 11
stop();
Symbol 185 MovieClip Frame 1
stop();
Symbol 185 MovieClip Frame 11
stop();
Symbol 186 MovieClip [panel] Frame 1
badviking.onRelease = function () {
getURL ("http://www.badviking.com/", "_blank");
};
Symbol 218 MovieClip [star] Frame 1
stop();
Symbol 225 MovieClip [round] Frame 1
stop();
Symbol 227 MovieClip [gun] Frame 1
stop();
Symbol 244 MovieClip Frame 1
stop();
planettype = random(5);
if (planettype == 1) {
gotoAndStop (2);
}
if (planettype == 2) {
gotoAndStop (3);
}
if (planettype == 3) {
gotoAndStop (4);
}
if (planettype == 4) {
gotoAndStop (5);
}
Symbol 244 MovieClip Frame 2
stop();
Symbol 246 MovieClip [planet] Frame 1
stop();
Symbol 247 MovieClip [goal] Frame 1
stop();
Symbol 250 MovieClip Frame 1
function waitshake() {
if (shaking == true) {
shaking = false;
clearInterval(shakeTimer);
}
}
xspeed = 4;
walking = false;
shaking = false;
dwarf.onEnterFrame = function () {
if (shaking == true) {
_x = (Math.random() * 5);
_y = (Math.random() * 5);
} else {
_x = 0;
_y = 0;
}
walking = false;
if (Key.isDown(37)) {
walking = true;
left = true;
this.gotoAndStop("walk2");
this._x = this._x - xspeed;
}
if (Key.isDown(39)) {
walking = true;
left = false;
this.gotoAndStop("walk");
this._x = this._x + xspeed;
}
if (Key.isDown(32)) {
this.dwarf.arm.play();
}
if (walking == false) {
if (left == true) {
this.gotoAndStop("idle2");
} else {
this.gotoAndStop("idle");
}
}
};
Symbol 250 MovieClip Frame 97
dwarf.gotoAndStop("walkright");
Symbol 250 MovieClip Frame 122
dwarf.gotoAndStop("idle");
Symbol 250 MovieClip Frame 128
dwarf.dwarf.arm.play();
dwarf.dwarf.arm2._visible = false;
Symbol 250 MovieClip Frame 158
dwarf.dwarf.arm2._visible = true;
Symbol 250 MovieClip Frame 178
stop();
Symbol 251 MovieClip [splash2] Frame 1
this._parent.stop();
this._alpha = 0;
this.tel = 0;
this.onEnterFrame = function () {
if (this._alpha < 100) {
this._alpha = this._alpha + 4;
} else {
this.tel++;
}
if (this.tel > 160) {
this._alpha = this._alpha - 20;
if (this._alpha <= 0) {
this._parent.play();
delete this.onEnterFrame;
}
}
};
this.onRelease = function () {
getURL ("http://www.badviking.com/", "_blank");
};
mochi.as2.MochiServices.addLinkEvent("http://x.mochiads.com/link/e5beefd2ee1a5f71", "www.badviking.com", this);
Symbol 255 MovieClip Frame 1
if (!started) {
gotoAndPlay(random(40));
started = true;
}
Symbol 399 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 400 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.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.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, clip:_clip, 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.MochiCoins.triggerEvent(pkg.event, pkg.args);
break;
case "sync" :
mochi.as2.MochiServices.servicesSync.triggerEvent(pkg.event, pkg.args);
}
};
_listenChannel.onError = function () {
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
};
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function flush(error) {
var _local1;
var _local2;
while (_sendChannel._queue.length > 0) {
_local1 = _sendChannel._queue.shift();
if (_local1.callbackID != null) {
_local2 = _listenChannel._callbacks[_local1.callbackID];
}
delete _listenChannel._callbacks[_local1.callbackID];
if (error) {
handleError(_local1.args, _local2.callbackObject, _local2.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
if ((args.options != null) && (args.options.onError != null)) {
args.options.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
trace("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
}
_listenChannel._callbacks[_listenChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_listenChannel._nextcallbackID++;
}
static function urlOptions() {
var _local5 = {};
if (_root.mochiad_options) {
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 401 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 402 MovieClip [__Packages.mochi.as2.MochiEvents] Frame 0
class mochi.as2.MochiEvents
{
static var gameStart, levelStart;
function MochiEvents () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function startSession(achievementID) {
mochi.as2.MochiServices.send("events_beginSession", {achievementID:achievementID}, null, null);
}
static function trigger(kind, obj) {
if (obj == undefined) {
obj = {};
} else if (obj.kind != undefined) {
trace("WARNING: optional arguements package contains key 'id', it will be overwritten");
obj.kind = kind;
}
mochi.as2.MochiServices.send("events_triggerEvent", {eventObject:obj}, null, null);
}
static function setNotifications(clip, style) {
var _local2 = {};
for (var _local3 in style) {
_local2[_local3] = style[_local3];
}
_local2.clip = clip;
mochi.as2.MochiServices.send("events_setNotifications", _local2, null, null);
}
static function addEventListener(eventType, thisObject, thatObject) {
_dispatcher.addEventListener(eventType, thisObject, thatObject);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, thisObject, thatObject) {
_dispatcher.removeEventListener(eventType, thisObject, thatObject);
}
static function startGame() {
gameStart = new Date().getTime();
trigger("start_game");
}
static function endGame() {
var _local1 = new Date().getTime() - gameStart;
trigger("end_game", {time:_local1});
}
static function startLevel() {
levelStart = new Date().getTime();
trigger("start_level");
}
static function endLevel() {
var _local1 = new Date().getTime() - levelStart;
trigger("end_level", {time:_local1});
}
static var ACHIEVEMENT_RECEIVED = "AchievementReceived";
static var ALIGN_TOP_LEFT = "ALIGN_TL";
static var ALIGN_TOP = "ALIGN_T";
static var ALIGN_TOP_RIGHT = "ALIGN_TR";
static var ALIGN_LEFT = "ALIGN_L";
static var ALIGN_CENTER = "ALIGN_C";
static var ALIGN_RIGHT = "ALIGN_R";
static var ALIGN_BOTTOM_LEFT = "ALIGN_BL";
static var ALIGN_BOTTOM = "ALIGN_B";
static var ALIGN_BOTTOM_RIGHT = "ALIGN_BR";
static var FORMAT_SHORT = "ShortForm";
static var FORMAT_LONG = "LongForm";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 403 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 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 getStoreItems() {
mochi.as2.MochiServices.send("coins_getStoreItems");
}
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 STORE_SHOW = "StoreShow";
static var STORE_HIDE = "StoreHide";
static var PROFILE_SHOW = "ProfileShow";
static var PROFILE_HIDE = "ProfileHide";
static var PROPERTIES_SAVED = "PropertySaved";
static var WIDGET_LOADED = "WidgetLoaded";
static var ITEM_OWNED = "ItemOwned";
static var ITEM_NEW = "ItemNew";
static var STORE_ITEMS = "StoreItems";
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 404 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 _local22 = 11000;
var _local25 = 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 _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 _local21 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local23 = options.outline;
delete options.outline;
var _local5 = _local6.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local6.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local21);
_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, _local23, 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 = _local22;
chk.ad_timeout = _local25;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
mochi.as2.MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
var sendHostProgress = false;
mc.lc.sendHostLoadProgress = function (lc_name) {
sendHostProgress = true;
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local11 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local2 = (100 * _local8) / _local4;
var _local10 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local13 = Math.min(100, Math.min(_local2 || 0, _local10));
_local13 = Math.max(this.last_pcnt, _local13);
this.last_pcnt = _local13;
_local9._xscale = _local13;
options.ad_progress(_local13);
if (sendHostProgress) {
mochi.as2.MochiAd.containerNotify(clip, {id:"hostLoadPcnt", pcnt:_local2}, clip._mochiad._containerLCName);
if (_local2 == 100) {
sendHostProgress = false;
}
}
if (!chk.showing) {
var _local7 = _local11.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if ((_local5 > chk.ad_timeout) && (_local2 == 100)) {
options.ad_failed();
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showClickAwayAd(options) {
var _local9 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function () {
}, ad_finished:function () {
}, ad_loaded:function (width, height) {
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function () {
}};
options = _parseOptions(options, _local9);
var clip = options.clip;
var _local8 = options.ad_timeout;
delete options.ad_timeout;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local4 = _getRes(options);
var _local10 = _local4[0];
var _local7 = _local4[1];
mc._x = _local10 * 0.5;
mc._y = _local7 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_timeout = _local8;
chk.started = getTimer();
chk.showing = false;
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
var _local20 = false;
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
_local2 = true;
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
options.ad_failed();
_local2 = true;
}
}
if (_local2) {
delete this.onEnterFrame;
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
mochi.as2.MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
options.ad_failed();
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showPreloaderAd(options) {
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
showPreGameAd(options);
}
static function showTimedAd(options) {
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
showInterLevelAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local7 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local7._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local7.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local7._mochiad_loaded = true;
if (_local7._url.indexOf("http") != 0) {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
}
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
mochi.as2.MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new Object();
var _local9 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local9;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local9);
_local6.lc = _local5;
_local4.lc = _local9;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
containerNotify(clip, {id:"unload"}, clip._mochiad._containerLCName);
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
if (_local4.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(_local4);
}
static function rpc(clip, callbackID, arg) {
switch (arg.id) {
case "setValue" :
setValue(clip, arg.objectName, arg.value);
break;
case "getValue" :
var _local4 = getValue(clip, arg.objectName);
containerRpcResult(clip, callbackID, _local4, clip._mochiad._containerLCName);
break;
case "runMethod" :
var _local3 = runMethod(clip, arg.method, arg.args);
containerRpcResult(clip, callbackID, _local3, clip._mochiad._containerLCName);
break;
default :
trace("[mochiads rpc] unknown rpc id: " + arg.id);
}
}
static function setValue(base, objectName, value) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
base[_local2[_local1]] = value;
}
static function getValue(base, objectName) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
return(base[_local2[_local1]]);
}
static function runMethod(base, methodName, argsArray) {
var _local2 = methodName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
if (typeof(base[_local2[_local1]]) == "function") {
return(base[_local2[_local1]].apply(base, argsArray));
}
return(undefined);
}
static function containerNotify(clip, args, lcName) {
var _local1 = clip._mochiad._mochiad_ctr.ad.app;
if (_local1.notify) {
_local1.notify(args);
} else {
new LocalConnection().send(lcName, "notify", args);
}
}
static function containerRpcResult(clip, callbackID, val, lcName) {
var _local1 = clip._mochiad._mochiad_ctr.ad.app;
if (_local1.rpcResult) {
_local1.rpcResult(callbackID, val);
} else {
new LocalConnection().send(lcName, "rpcResult", callbackID, val);
}
}
}
Symbol 405 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 406 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 266 MovieClip Frame 1
stop();
Symbol 270 MovieClip Frame 1
stop();
Symbol 277 MovieClip Frame 80
stop();
Symbol 286 MovieClip Frame 90
launchSound = new Sound(this);
launchSound.attachSound("launchsound");
launchSound.start(0, 1);
Symbol 286 MovieClip Frame 105
stop();
Symbol 295 MovieClip Frame 80
this.unloadMovie();
Symbol 297 MovieClip Frame 1
stop();
Symbol 297 MovieClip Frame 8
_root.gotoAndStop("story");
Symbol 297 MovieClip Frame 20
stop();
Symbol 297 MovieClip Frame 28
_root.gotoAndStop("game");
Symbol 343 MovieClip Frame 1
stop();
Symbol 345 MovieClip Frame 1
stop();
Symbol 347 MovieClip Frame 1
stop();
Symbol 349 MovieClip Frame 1
stop();
Symbol 375 MovieClip Frame 1
stop();
Symbol 389 MovieClip Frame 30
overtext = ("You did it! 300 stars in " + _root.roundno) + " rounds without breaking a sweat. Nice work! The president himself is on the way to congratulate you. You might want to get changed out of your pyjamas...";
Symbol 389 MovieClip Frame 60
stop();
Symbol 396 MovieClip Frame 79
stop();
Symbol 398 MovieClip Frame 40
stop();