Frame 1
MochiAd.showPreGameAd({id:"5873561327de4aa6", res:"650x500"});
Frame 3
if (getBytesLoaded() == getBytesTotal()) {
gotoAndStop ("4");
} else {
gotoAndPlay (2);
}
Frame 4
stop();
_root.kongregateServices.connect();
replay.onRelease = function () {
gotoAndStop (5);
};
Frame 5
function onEnterFrame() {
if (level == 10) {
gameOver();
}
hD = "Health: " + hero.health;
sD = "Score: " + score;
lD = "Level: " + level;
if (numAsteroids == 0) {
level++;
setLevel(level);
}
}
function createExplosion(x, y, max, sameColor) {
var _local2;
if ((numParticles + max) >= maxP) {
max = maxP - numParticles;
}
if (sameColor) {
_local2 = colors[int(Math.random() * colors.length)];
}
var _local1 = 0;
while (_local1 < max) {
if (!sameColor) {
_local2 = colors[int(Math.random() * colors.length)];
}
attachMovie("Particle", "P" + currentParticle, getNextHighestDepth(), {_x:x, _y:y, rgbValue:_local2});
currentParticle++;
numParticles++;
_local1++;
}
}
function gameOver() {
this.gotoAndStop(6);
}
function setLevel(lvl) {
currentLaser = 0;
currentAsteroid = 0;
numAsteroids = 0;
currentParticle = 0;
numParticles = 0;
currentBadLaser = 0;
if (levels[lvl - 1] == "b1") {
attachMovie("Boss1", "b1", getNextHighestDepth(), {speed:1500, health:100});
numAsteroids++;
b1.gotoAndStop(1);
} else if (levels[lvl - 1] == "b2") {
attachMovie("Boss1", "b1", getNextHighestDepth(), {speed:1000, health:100});
numAsteroids++;
b1.gotoAndStop(2);
} else if (levels[lvl - 1] == "b3") {
attachMovie("Boss1", "b1", getNextHighestDepth(), {speed:500, health:150});
numAsteroids++;
b1.gotoAndStop(3);
} else if (levels[lvl - 1] == "b4") {
attachMovie("Boss1", "b1", getNextHighestDepth(), {speed:400, health:200});
numAsteroids++;
b1.gotoAndStop(4);
} else {
var _local1 = 0;
while (_local1 < levels[lvl - 1]) {
attachMovie("Asteroid", "asteroid" + currentAsteroid, getNextHighestDepth(), {_x:Math.random() * 650, _y:Math.random() * 500, mass:(Math.random() * 50) + 50, id:currentAsteroid});
currentAsteroid++;
numAsteroids++;
_local1++;
}
if (lvl == 1) {
attachMovie("Hero", "hero", getNextHighestDepth(), {_x:325, _y:225});
}
}
hero.vx = hero.vx / 5;
hero.vy = hero.vy / 5;
hero.startTimer();
}
var currentLaser = 0;
var currentBadLaser = 0;
var currentAsteroid = 0;
var numAsteroids = 0;
var currentParticle = 0;
var numParticles = 0;
var colors = new Array("0xFF0000", "0x00FF00", "0x0000FF", "0xFFFF00", "0xFF00FF", "0x00FFFF");
var score = 0;
var level = 1;
var levels = Array(2, 4, "b1", 7, 9, "b2", 10, "b3", "b4");
var maxP = 400;
var asKilled = 0;
setLevel(1);
msg._x = -1000;
msg._y = -1000;
stop();
Frame 6
Mouse.show();
removeMovieClip(_root.hero);
i = 0;
while (i < currentAsteroid) {
removeMovieClip(_root["asteroid" + i]);
i++;
}
i = 0;
while (i < currentBadLaser) {
removeMovieClip(_root["lbad" + i]);
i++;
}
removeMovieClip(_root.b1);
if (level == 11) {
display = "OMG!!! You finished the game. Nice work, have a cookie.";
} else {
display = ("You ended up on level " + level) + ".";
}
sD = "SCORE: " + score;
replay.onPress = function () {
gotoAndPlay (5);
};
_root.kongregateStats.submit("Exploding Asteroids", asKilled);
Symbol 12 MovieClip [Hero] Frame 1
#initclip 13
Object.registerClass("Hero", Hero);
#endinitclip
Symbol 14 MovieClip [Laser] Frame 1
#initclip 8
Object.registerClass("Laser", Laser);
#endinitclip
Symbol 21 MovieClip [Asteroid] Frame 1
#initclip 9
Object.registerClass("Asteroid", Asteroid);
#endinitclip
stop();
Symbol 23 MovieClip [Particle] Frame 1
#initclip 10
Object.registerClass("Particle", Particle);
#endinitclip
Symbol 28 MovieClip [Boss1] Frame 1
#initclip 11
Object.registerClass("Boss1", Boss1);
#endinitclip
stop();
Symbol 30 MovieClip [BadLaser] Frame 1
#initclip 12
Object.registerClass("BadLaser", BadLaser);
#endinitclip
Symbol 47 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.1");
}
static function showPreGameAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
showInterLevelAd(options);
}
static function showPreloaderAd(options) {
showPreGameAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local26 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local26);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local25 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local25);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb_arg) {
var _local8 = parseInt(cb_arg);
var _local4 = this._callbacks[_local8];
if (!_local4) {
return(undefined);
}
delete this._callbacks[_local8];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}
}
Symbol 48 MovieClip [__Packages.Laser] Frame 0
class Laser extends MovieClip
{
var bad, _x, vx, _y, vy, hitTest, removeMovieClip;
function Laser () {
super();
}
function onLoad() {
if (bad) {
var _local2 = new Color(this);
_local2.setRGB(16711680);
}
}
function onEnterFrame() {
_x = _x + vx;
_y = _y + vy;
var _local3 = 0;
while (_local3 < _root.currentAsteroid) {
if (hitTest(_root["asteroid" + _local3])) {
_root["asteroid" + _local3].Damage(_x, _y, vx, vy, 5, 10);
removeMovieClip();
}
_local3++;
}
if (((_x > 700) || ((_x < (-200 >> _y)) > 600)) || (_y < -200)) {
removeMovieClip();
}
if (hitTest(_root.b1)) {
_root.b1.Damage();
removeMovieClip();
}
}
}
Symbol 49 MovieClip [__Packages.Asteroid] Frame 0
class Asteroid extends MovieClip
{
var vx, vy, vr, health, mass, _xscale, _yscale, gotoAndStop, myColor, _x, _y, _rotation, hitArea, removeMovieClip;
function Asteroid () {
super();
}
function onLoad() {
var _local2 = ((Math.random() * 360) * 180) / Math.PI;
vx = Math.cos(_local2);
vy = Math.sin(_local2);
vr = Math.random() * 2;
health = mass;
_xscale = mass;
_yscale = mass;
gotoAndStop(Math.round(Math.random() * 4));
myColor = new Color(this);
}
function onEnterFrame() {
_x = _x + vx;
_y = _y + vy;
_rotation = _rotation + vr;
if (_x < 0) {
_x = 0;
vx = vx * -1;
}
if (_x > 650) {
_x = 650;
vx = vx * -1;
}
if (_y < 0) {
_y = 0;
vy = vy * -1;
}
if (_y > 500) {
_y = 500;
vy = vy * -1;
}
if (hitArea.hitTest(_root.hero)) {
_root.hero.Damage();
}
}
function Damage(x2, y2, vx2, vy2, mass2, damage) {
var _local10 = x2 - _x;
var _local9 = y2 - _y;
var _local13 = Math.atan2(_local9, _local10);
var _local4 = Math.sin(_local13);
var _local3 = Math.cos(_local13);
var _local8 = 0;
var _local12 = 0;
var _local7 = (_local10 * _local3) + (_local9 * _local4);
var _local11 = (_local9 * _local3) - (_local10 * _local4);
var _local5 = (vx * _local3) + (vy * _local4);
var _local15 = (vy * _local3) - (vx * _local4);
var _local6 = (vx2 * _local3) + (vy2 * _local4);
var _local14 = (vy2 * _local3) - (vx2 * _local4);
var _local16 = _local5 - _local6;
_local5 = (((mass - mass2) * _local5) + ((2 * mass2) * _local6)) / (mass + mass2);
_local6 = _local16 + _local5;
_local8 = _local8 + _local5;
_local7 = _local7 + _local6;
var _local17 = (_local8 * _local3) - (_local12 * _local4);
var _local18 = (_local12 * _local3) + (_local8 * _local4);
var _local19 = (_local7 * _local3) - (_local11 * _local4);
var _local20 = (_local11 * _local3) + (_local7 * _local4);
x2 = _x + _local19;
y2 = _y + _local20;
_x = _x + _local17;
_y = _y + _local18;
vx = (_local5 * _local3) - (_local15 * _local4);
vy = (_local15 * _local3) + (_local5 * _local4);
vx2 = (_local6 * _local3) - (_local14 * _local4);
vy2 = (_local14 * _local3) + (_local6 * _local4);
_root.createExplosion(_x, _y, 200, false);
health = health - damage;
_xscale = _xscale - 2;
_yscale = _yscale - 2;
if (health <= 0) {
_root.numAsteroids--;
_root.score = _root.score + 100;
_root.createExplosion(_x, _y, 300, false);
_root.hero.health++;
_root.asKilled++;
removeMovieClip();
}
}
}
Symbol 50 MovieClip [__Packages.Particle] Frame 0
class Particle extends MovieClip
{
var vx, vy, timeToLast, startTimer, myColor, rgbValue, _x, _y, _alpha, removeMovieClip;
function Particle () {
super();
}
function onLoad() {
var _local2 = ((Math.random() * 360) * 180) / Math.PI;
vx = ((Math.cos(_local2) * Math.random()) * 20) + 5;
vy = ((Math.sin(_local2) * Math.random()) * 20) + 5;
timeToLast = (Math.random() * 500) + 1000;
startTimer = getTimer();
myColor = new Color(this);
myColor.setRGB(rgbValue);
}
function onEnterFrame() {
_x = _x + vx;
_y = _y + vy;
_alpha = _alpha - 2;
if (((getTimer() - startTimer) >= timeToLast) || (_alpha == 0)) {
_root.numParticles--;
removeMovieClip();
}
}
}
Symbol 51 MovieClip [__Packages.Boss1] Frame 0
class Boss1 extends MovieClip
{
var startTimer, _x, _y, speed, health, removeMovieClip;
function Boss1 () {
super();
}
function onLoad() {
startTimer = getTimer();
_x = 325;
_y = 250;
}
function onEnterFrame() {
if ((getTimer() - startTimer) >= speed) {
var _local5 = _root.hero._x - _x;
var _local4 = _root.hero._y - _y;
var _local3 = Math.atan2(_local4, _local5);
var _local6 = (_local3 * 180) / Math.PI;
_root.attachMovie("BadLaser", "lbad" + _root.currentBadLaser, _root.getNextHighestDepth(), {vx:Math.cos(_local3) * 30, vy:Math.sin(_local3) * 30, _rotation:_local6, _x:_x, _y:_y, bad:true});
_root.currentBadLaser++;
startTimer = getTimer();
}
}
function Damage() {
health = health - 5;
if (health <= 0) {
_root.createExplosion(_x, _y, 100, false);
_root.numAsteroids--;
_root.hero.health = _root.hero.health + 20;
removeMovieClip();
}
}
}
Symbol 52 MovieClip [__Packages.BadLaser] Frame 0
class BadLaser extends MovieClip
{
var _x, vx, _y, vy, removeMovieClip, hitTest;
function BadLaser () {
super();
}
function onEnterFrame() {
_x = _x + vx;
_y = _y + vy;
if (((_x > 700) || ((_x < (-200 >> _y)) > 600)) || (_y < -200)) {
removeMovieClip();
}
if (hitTest(_root.hero)) {
_root.hero.Damage();
removeMovieClip();
}
}
}
Symbol 53 MovieClip [__Packages.Hero] Frame 0
class Hero extends MovieClip
{
var myColor, _x, _y, radians, degrees, _rotation, startTime, removeMovieClip;
function Hero () {
super();
}
function onLoad() {
startTimer();
myColor = new Color(this);
}
function onEnterFrame() {
checkTimer();
if (!canGetHurt) {
myColor.setRGB(11184810);
} else {
myColor.setRGB(16777215);
}
_x = _x + vx;
_y = _y + vy;
if (_x < 0) {
_x = 0;
vx = vx * -0.95;
}
if (_x > 650) {
_x = 650;
vx = vx * -0.95;
}
if (_y < 0) {
_y = 0;
vy = vy * -0.95;
}
if (_y > 500) {
_y = 500;
vy = vy * -0.95;
}
var _local4 = _root._xmouse - _x;
var _local3 = _root._ymouse - _y;
radians = Math.atan2(_local3, _local4);
degrees = (radians * 180) / Math.PI;
_rotation = degrees;
}
function onMouseDown() {
_root.attachMovie("Laser", "l" + _root.currentLaser, _root.getNextHighestDepth(), {vx:Math.cos(radians) * 30, vy:Math.sin(radians) * 30, _rotation:degrees, _x:_x, _y:_y});
_root.currentLaser++;
if ((vx < 20) || (vx > -20)) {
vx = vx + (((Math.cos(radians) * mass) / LaserSpeed) * -1);
}
if ((vy < 20) || (vy > -20)) {
vy = vy + (((Math.sin(radians) * mass) / LaserSpeed) * -1);
}
if (vx > 20) {
vx = 20;
}
if (vx < -20) {
vx = -20;
}
if (vy > 20) {
vy = 20;
}
if (vy < -20) {
vy = -20;
}
_rotation = degrees;
Mouse.hide();
}
function onMouseUp() {
Mouse.show();
}
function throwSpanner() {
trace("Spanner thrown");
_root.attachMovie("spanner", "s" + _root.currentSpanner, _root.getNextHighestDepth(), {vx:(Math.cos(radians) * 20) * -1, vy:(Math.sin(radians) * 20) * -1, _rotation:degrees, _x:_x, _y:_y});
if (vx != 0) {
vx = vx + ((Math.cos(radians) * mass) / LaserSpeed);
}
if (vy != 0) {
vy = vy + ((Math.sin(radians) * mass) / LaserSpeed);
}
}
function startTimer() {
startTime = getTimer();
canGetHurt = false;
}
function checkTimer() {
if ((getTimer() - startTime) > timeToLast) {
canGetHurt = true;
}
}
function Damage() {
if (canGetHurt) {
health = health - 10;
startTimer();
_root.createExplosion(_x, _y, 10, false);
}
if (health <= 0) {
_root.createExplosion(_x, _y, 100, false);
_root.gameOver();
removeMovieClip();
}
}
var mass = 65;
var LaserSpeed = 50;
var vx = 0;
var vy = 0;
var canGetHurt = false;
var timeToLast = 1000;
var health = 100;
}