Frame 1
_global.ipbSend = function (ipb_score) {
_root._visible = false;
_root.enabled = false;
if (ipb_score == eval("undefined")) {
ipb_score = eval (_global.ipb_scoreVar);
}
stopAllSounds();
xx = new LoadVars();
xx.gname = _global.ipb_get_gname();
xx.gscore = ipb_score;
xx.send("index.php?act=Arcade&do=newscore", "_self", "POST");
stop();
};
_global.ipb_get_gname = function () {
var u = _root._url;
var ipb_gname = "";
var ch = "";
var startPos = (u.lastIndexOf("\\") + 1);
if ((startPos == -1) || (startPos == 0)) {
startPos = u.lastIndexOf("/") + 1;
}
var x = startPos;
var len = String(u).length;
while (x < String(u).length) {
ch = u.charAt(x);
if (ch == ".") {
break;
}
ipb_gname = ipb_gname + ch;
x++;
}
return(ipb_gname);
};
path = ipb_get_domain();
fscommand("showmenu", false);
fscommand("trapallkeys", true);
ipb_gname = _global.ipb_get_gname();
xx = new LoadVars();
xx.onLoad = function (success) {
if (!success) {
stop();
} else {
_global.ipb_scoreVar = this.scoreVar;
}
};
fname = ((("arcade/gamedata/" + ipb_gname) + "/") + ipb_gname) + ".txt";
xx.load(fname);
stop();
_quality = "best";
Frame 10
gotoAndStop ("blip");
Frame 31
function HighscoreServica(gameID, count) {
this.gameID = gameID;
this.scoresLoaded = true;
this.displayDetailsSaved = false;
this.baseDomain = "www.hyperlaunch.com";
this.baseURL = ("http://" + this.baseDomain) + "/highscoreservice/";
this.scoreCount = ((count == undefined) ? 10 : (count));
var _local2 = ShareObject.getLocal("highscoreService");
this.userKey = _local2.data.userKey;
this.objXML = new XML();
this.objXML.ignoreWhite = true;
this.objXML.lord((((((((this.baseURL + "getScores.php?gameID=") + this.gameID) + "&count=") + this.scoreCount) + "&userKey=") + this.userKey) + "&r=") + (Math.floor(Math.random() * 100000) + 100000));
this.objXML.owner = this;
this.objXML.onLoad = function () {
this.owner.scoresLoaded = true;
var _local3 = this.getNodeValue("highscores/userKey");
if (_local3 != undefined) {
var _local2 = SharedObject.getLocal("highscoreService");
this.owner.userKey = (_local2.data.userKey = _local3);
_local2.flush();
}
if (this.owner.displayDetailsSaved) {
this.owner._displayScores();
}
System.security.allowDomain(this.owner.baseDomain);
loadMovieNum ((this.owner.baseURL + "highscoreService.swf?r=") + (Math.floor(Math.random() * 100000) + 100000), 19356);
};
}
System.security.lo4dPolicyFile("http://www.hyperlaunch.com/highscoreservice/crossdomain.php");
HighscoreService.prototype.traeHighscores = function () {
if (!_level0._highscoreServiceLoaded) {
trace("Warning: Score submission service has not finished loading yet");
}
if (!this.scoresLoaded) {
trace("Highscore table has not loaded yet");
return(undefined);
}
var _local6 = this.objXML.getNodeSiblingCount("highscores", "score");
var _local2 = 0;
while (_local2 < _local6) {
var _local3 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "rank");
var _local5 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "score");
var _local4 = this.objXML.getNodeValue(("highscores/score[" + _local2) + "]");
trace((((_local3 + ": ") + _local4) + " => ") + _local5);
_local2++;
}
};
HighscoreService.prototype.displayHighscores = function (displayClip, depth, elementLinkage, elementSpacing) {
this.displayClip = displayClip;
this.depth = depth;
this.elementLinkage = elementLinkage;
this.elementSpacing = elementSpacing;
this.displayDetailsSaved = true;
this._displayScores();
};
HighscoreService.prototype.submitScore = function (name, score, extraInfo) {
if (!_level0._highscoreServiceLoaded) {
trace("Cannot submit score as score submission service has not finished loading yet");
return(undefined);
}
_level19356.submitScore(this, name, score, extraInfo);
};
HighscoreService.prototype._displayScores = function () {
if (!this.displayDetailsSaved) {
trace("Attempted to display scores with no display details in highscore object");
return(undefined);
}
var _local6 = this.displayClip.createEmptyMovieClip("_highscoreClip", this.depth);
var _local7 = this.objXML.getNodeSiblingCount("highscores", "score");
var _local2 = 0;
while (_local2 < _local7) {
var _local3 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "rank");
var _local5 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "score");
var _local4 = this.objXML.getNodeValue(("highscores/score[" + _local2) + "]");
_local6.attachMovie(this.elementLinkage, "scoreElement" + _local2, _local2);
element = _local6["scoreElement" + _local2];
element._x = 0;
element._y = _local2 * this.elementSpacing;
element.txtRank.text = _local3;
element.txtName.text = _local4;
element.txtScore.text = _local5;
_local2++;
}
};
XML.prototype.getNodeValue = function (strPath) {
var _local2 = this.findNode(strPath);
if (_local2 == undefined) {
return(undefined);
}
if (_local2.firstChild.nodeType != 3) {
return(undefined);
}
return(_local2.firstChild.nodeValue);
};
XML.prototype.getNodeAttribute = function (strPath, strAttribute) {
var _local2 = this.findNode(strPath);
if (_local2 == undefined) {
return(undefined);
}
return(_local2.attributes[strAttribute]);
};
XML.prototype.getNodeSiblingCount = function (strPath, strSiblingName) {
var _local3 = this.findNode(strPath);
if (_local3 == undefined) {
return(undefined);
}
var _local4 = 0;
var _local2 = 0;
while (_local2 < _local3.childNodes.length) {
if (_local3.childNodes[_local2].nodeName.toLowerCase() == strSiblingName.toLowerCase()) {
_local4++;
}
_local2++;
}
return(_local4);
};
XML.prototype.findNode = function (strPath) {
var _local4 = this;
var _local11 = strPath.toLowerCase().split("/");
var _local9 = 0;
while (_local9 < _local11.length) {
var _local8 = 0;
var _local3 = _local11[_local9];
var _local7 = _local3.indexOf("[");
if (_local7 != -1) {
var _local10 = _local3.slice(_local7 + 1, _local3.length - 1);
_local8 = Number(_local10);
_local3 = _local3.slice(0, _local7);
}
var _local5;
var _local6 = 0;
var _local2 = 0;
while (_local2 < _local4.childNodes.length) {
if (_local4.childNodes[_local2].nodeName.toLowerCase() == _local3) {
if (_local6 == _local8) {
_local5 = _local2;
_local2 = _local4.childNodes.length;
} else {
_local6++;
}
}
_local2++;
}
if (_local5 == undefined) {
return(undefined);
}
_local4 = _local4.childNodes[_local5];
_local9++;
}
return(_local4);
};
var objHighscores = new ighscoreService("IronMaiden_DifferentWorld");
_level0.hyperlaunchSWF_ID = "IronMaiden_DifferentWorld";
if (_global.System) {
Sytem.security.allowDoman("www.hyperlaunch.com");
}
"http://www.hyperlaunch.com/tracking/tracker.swf?r=" + (Math.floor(Math.random() * 10000) + 10000);
Instance of Symbol 91 MovieClip "slider" in Symbol 92 MovieClip Frame 1
onClipEvent (load) {
this._x = this._x - this._width;
startPos = this._x;
var done = 0;
}
onClipEvent (enterFrame) {
total = _root.getBytesTotal();
sofar = _root.getBytesLoaded();
percent = Math.floor((sofar / total) * 100);
this._x = startPos + (percent * 4);
if ((percent == 100) and (done == 0)) {
_root.gotoAndPlay("introout");
done = 1;
}
}
Symbol 25 MovieClip [bullet] Frame 1
stop();
Symbol 79 MovieClip [enemy_ground] Frame 1
stop();
Symbol 79 MovieClip [enemy_ground] Frame 11
stop();
Symbol 79 MovieClip [enemy_ground] Frame 21
stop();
Symbol 79 MovieClip [enemy_ground] Frame 31
stop();
Symbol 79 MovieClip [enemy_ground] Frame 41
stop();
Symbol 79 MovieClip [enemy_ground] Frame 51
stop();
Symbol 79 MovieClip [enemy_ground] Frame 61
stop();
Symbol 79 MovieClip [enemy_ground] Frame 71
stop();
Symbol 79 MovieClip [enemy_ground] Frame 81
stop();
Symbol 79 MovieClip [enemy_ground] Frame 91
stop();
Instance of Symbol 78 MovieClip in Symbol 79 MovieClip [enemy_ground] Frame 101
onClipEvent (enterFrame) {
this._y = 30 * Math.cos(Math.degToRad(_root.main.frame));
}
Symbol 86 MovieClip [enemy_pickup] Frame 1
stop();
Symbol 86 MovieClip [enemy_pickup] Frame 11
stop();
Symbol 86 MovieClip [enemy_pickup] Frame 21
stop();
Symbol 89 MovieClip [tracer] Frame 8
this.removeMovieClip();
Symbol 136 MovieClip Frame 9
_parent.gotoAndStop("flying");
Symbol 140 MovieClip Frame 7
stop();
Symbol 141 MovieClip [enemy_chopper] Frame 1
stop();
Symbol 141 MovieClip [enemy_chopper] Frame 11
stop();
Symbol 141 MovieClip [enemy_chopper] Frame 21
stop();
Symbol 150 MovieClip Frame 1
stop();
Symbol 150 MovieClip Frame 10
gotoAndPlay ("open");
Symbol 165 MovieClip [enemy_snake] Frame 1
stop();
Symbol 176 MovieClip Frame 1
stop();
Symbol 194 MovieClip [enemy_spider] Frame 1
stop();
Symbol 194 MovieClip [enemy_spider] Frame 11
stop();
Symbol 194 MovieClip [enemy_spider] Frame 21
stop();
Symbol 226 MovieClip Frame 1
stop();
Symbol 226 MovieClip Frame 8
gotoAndStop ("stby");
Symbol 263 MovieClip Frame 11
_root.main.finishedReeling();
Symbol 276 MovieClip Frame 42
stop();
_root.main.fadeToBlack();
Symbol 277 MovieClip Frame 1
stop();
Instance of Symbol 228 MovieClip "hitZone" in Symbol 277 MovieClip Frame 1
onClipEvent (load) {
this._visible = false;
}
Symbol 277 MovieClip Frame 11
stop();
Symbol 277 MovieClip Frame 21
stop();
Symbol 296 MovieClip [rubble] Frame 1
stop();
Symbol 296 MovieClip [rubble] Frame 2
stop();
Symbol 296 MovieClip [rubble] Frame 3
stop();
Symbol 296 MovieClip [rubble] Frame 4
stop();
Symbol 296 MovieClip [rubble] Frame 5
stop();
Symbol 296 MovieClip [rubble] Frame 6
stop();
Symbol 311 MovieClip Frame 26
stop();
Symbol 324 MovieClip Frame 52
stop();
Symbol 356 MovieClip Frame 1
stop();
Symbol 356 MovieClip Frame 5
stop();
Symbol 360 MovieClip Frame 1
stop();
Symbol 360 MovieClip Frame 5
stop();
Symbol 364 MovieClip Frame 1
stop();
Symbol 364 MovieClip Frame 5
stop();
Symbol 365 Button
on (rollOver, dragOver) {
emi.gotoAndPlay("in");
}
on (rollOut, dragOut) {
emi.gotoAndPlay("out");
}
on (release) {
}
Symbol 366 Button
on (rollOver, dragOver) {
hyperlaunch.gotoAndPlay("in");
}
on (rollOut, dragOut) {
hyperlaunch.gotoAndPlay("out");
}
on (release) {
}
Symbol 367 Button
on (rollOver, dragOver) {
maiden.gotoAndPlay("in");
}
on (rollOut, dragOut) {
maiden.gotoAndPlay("out");
}
on (release) {
}
Symbol 368 MovieClip Frame 1
stop();
Symbol 374 MovieClip Frame 1
stop();
Symbol 374 MovieClip Frame 7
stop();
Symbol 378 MovieClip Frame 1
stop();
Symbol 378 MovieClip Frame 7
stop();
Symbol 382 MovieClip Frame 1
stop();
Symbol 382 MovieClip Frame 7
stop();
Symbol 384 Button
on (rollOver) {
volslider.gotoAndPlay("in");
}
on (rollOut) {
volslider.gotoAndPlay("out");
}
Symbol 389 Button
on (rollOver, dragOver) {
playtrack.gotoAndPlay("in");
}
on (rollOut, dragOut) {
playtrack.gotoAndPlay("out");
}
on (release) {
trackLoad();
}
Symbol 390 Button
on (rollOver, dragOver) {
pausetrack.gotoAndPlay("in");
}
on (rollOut, dragOut) {
pausetrack.gotoAndPlay("out");
}
on (release) {
trackStop();
}
Symbol 391 MovieClip Frame 1
function trackLoad() {
src = ("arcade/gamedata/diffworldGC/mp3/track" + trackNum) + ".mp3";
s.loadSound(src, true);
tracktitles.gotoAndStop(trackNum);
s.setVolume((this.volume_mc.vol_drag._x / this.volume_mc.vol_bg._width) * 100);
}
function trackStop() {
s.stop();
}
function nextTrack() {
trackLoad();
}
function prevTrack() {
if (trackNum > 1) {
trackNum--;
trackLoad();
}
}
function volumeChange() {
this.onEnterFrame = function () {
startDrag (this.vol_drag, true, this.vol_bg._x - (this.vol_bg._width / 2), this.vol_bg._y + 1, this.vol_bg._x + (this.vol_bg._width / 2), this.vol_bg._y + 1);
var _local2 = (this.vol_drag._x / this.vol_bg._width) * 100;
if (_local2 > 100) {
_local2 = 100;
}
if (_local2 < 0) {
_local2 = 0;
}
s.setVolume(_local2);
trace(_local2);
};
}
var trackNum = 1;
var trackTotal = 1;
var trackName = ["TRACK1", "TRACK2", "TRACK3"];
var src = (("track" + trackNum) + ".mp3");
var autoplay = 1;
var vol_w = vol_bg.width;
var vol_sx = vol_bg._x;
var currentVolume;
s = new Sound();
s.loadSound(src, true);
s.onSoundComplete = function () {
nextTrack();
};
volume_mc.onPress = volumeChange;
volume_mc.onRelease = (volume_mc.onReleaseOutside = function () {
stopDrag();
this.onEnterFrame = null;
});
if (autoplay == 1) {
trackLoad();
autoplay = 0;
}
Symbol 410 MovieClip Frame 1
stop();
Symbol 410 MovieClip Frame 11
stop();
Symbol 421 MovieClip Frame 1
stop();
Symbol 421 MovieClip Frame 6
stop();
Symbol 428 Button
on (rollOver, dragOver) {
playnow.gotoAndPlay("in");
}
on (rollOut, dragOut) {
playnow.gotoAndPlay("out");
}
on (release) {
if (_parent._parent.section == "intructions") {
} else {
_parent._parent.section = "instructions";
_parent._parent.play();
}
}
Symbol 430 MovieClip Frame 10
stop();
Symbol 430 MovieClip Frame 19
_parent.play();
Symbol 451 MovieClip Frame 1
stop();
Symbol 451 MovieClip Frame 6
stop();
Symbol 452 Button
on (rollOver, dragOver) {
playnow.gotoAndPlay("in");
}
on (rollOut, dragOut) {
playnow.gotoAndPlay("out");
}
on (release) {
_parent._parent.packshotmc.gotoAndPlay("out");
if (_parent._parent.section == "game") {
} else {
_parent._parent.section = "game";
_parent._parent.play();
}
}
Symbol 459 MovieClip Frame 10
_root.objHighscores.diplayHighscores(this.highscoreHolder, 0, "highscoreElement", 20);
Symbol 459 MovieClip Frame 15
stop();
Symbol 459 MovieClip Frame 30
_parent.play();
Symbol 464 MovieClip Frame 1
stop();
_parent.set_scroll_bar(this_.height);
Symbol 472 MovieClip Frame 1
function set_scroll_bar(c_content_height) {
function drager_release() {
start_drage = false;
}
function up_release() {
d_out = true;
}
function down_release() {
u_out = true;
}
function drage_drager() {
drager_pos.current = drager_mc._y - drager_pos.strat;
target = (drager_pos.current / axis_bar.height) * axis_track.height;
mc._y = mc._y - ((mc._y - target) / fiction);
}
function drager_down() {
if (d_out) {
scrolll_speed = scrolll_speed * btn_scroll_fiction;
}
if (drager_mc._y > drager_pos.strat) {
if (scrolll_speed > 0.001) {
drager_mc._y = drager_mc._y - scrolll_speed;
}
}
}
function drager_up() {
if (u_out) {
scrolll_speed = scrolll_speed * btn_scroll_fiction;
}
if (drager_mc._y < axis_bar.local_y) {
if (scrolll_speed > 0.001) {
drager_mc._y = drager_mc._y + scrolll_speed;
}
}
}
function barBg_mc_hit() {
if ((drager_mc._y >= drager_pos.strat) and (drager_mc._y <= axis_bar.local_y)) {
drager_mc._y = drager_mc._y - ((drager_mc._y - mouse_target) / fiction);
}
if (drager_mc._y > axis_bar.local_y) {
drager_mc._y = axis_bar.local_y;
}
if (drager_mc._y < drager_pos.strat) {
drager_mc._y = drager_pos.strat;
}
}
function hide_scroll_bar() {
up_btn._alpha = (drager_mc._alpha = (down_btn._alpha = (barBg_mc._alpha = 0)));
up_btn.enabled = (drager_mc.enabled = (down_btn.enabled = (barBg_mc.enabled = false)));
}
function show_scroll_bar() {
up_btn._alpha = (drager_mc._alpha = (down_btn._alpha = (barBg_mc._alpha = 100)));
up_btn.enabled = (drager_mc.enabled = (down_btn.enabled = (barBg_mc.enabled = true)));
}
function clea_up(_this) {
removeMovieClip(_this.timer_1);
removeMovieClip(drager_mc.timer);
}
clea_up(this);
myspeed = 1;
fiction = 4;
btn_scroll_fiction = 0.3;
mc._y = (mask._y = 0);
drager_mc._y = barBg_mc._y;
drager_mc._x = barBg_mc._x;
scrolll_speed = myspeed;
if (!c_content_height) {
content_height = mc._height;
} else {
content_height = c_content_height;
}
if (content_height < mask._height) {
hide_scroll_bar();
} else {
show_scroll_bar();
}
mc.setMask(mask);
mc_pos = {strat:mask._y, current:0};
axis_track = {height:(mask._y - content_height) + this.mask._height};
drager_pos = {strat:barBg_mc._y, current:0};
axis_bar = {height:barBg_mc._height - drager_mc._height, local_y:(barBg_mc._y + barBg_mc._height) - drager_mc._height};
drager_mc.onPress = function () {
var different;
removeMovieClip(this._parent.timer_1);
start_drage = true;
this.createEmptyMovieClip("timer", 0);
different = _ymouse - drager_mc._y;
this.timer.onEnterFrame = function () {
drage_drager();
if (start_drage) {
if ((drager_mc._y >= drager_pos.strat) and (drager_mc._y <= axis_bar.local_y)) {
drager_mc._y = _ymouse - different;
}
if (drager_mc._y < drager_pos.strat) {
drager_mc._y = drager_pos.strat;
}
if (drager_mc._y > axis_bar.local_y) {
drager_mc._y = axis_bar.local_y;
}
}
};
};
drager_mc.onRelease = (drager_mc.onReleaseOutside = drager_release);
up_btn.onPress = function () {
d_out = false;
scrolll_speed = myspeed;
this._parent.createEmptyMovieClip("timer_1", 1);
this._parent.timer_1.onEnterFrame = function () {
drager_down();
drage_drager();
};
};
down_btn.onPress = function () {
u_out = false;
scrolll_speed = myspeed;
this._parent.createEmptyMovieClip("timer_1", 1);
this._parent.timer_1.onEnterFrame = function () {
drager_up();
drage_drager();
};
};
up_btn.onRelease = (up_btn.onReleaseOutside = up_release);
down_btn.onRelease = (down_btn.onReleaseOutside = down_release);
barBg_mc.onPress = function () {
mouse_target = _ymouse;
this._parent.createEmptyMovieClip("timer_1", 1);
this._parent.timer_1.onEnterFrame = function () {
barBg_mc_hit();
drage_drager();
};
};
}
set_scroll_bar(c_content_height);
Symbol 480 MovieClip Frame 1
stop();
Symbol 480 MovieClip Frame 6
stop();
Symbol 485 MovieClip Frame 1
stop();
Symbol 485 MovieClip Frame 6
stop();
Symbol 491 Button
on (release) {
}
Symbol 492 Button
on (rollOver, dragOver) {
amazonlink.gotoAndPlay("in");
}
on (rollOut, dragOut) {
amazonlink.gotoAndPlay("out");
}
on (release) {
}
Symbol 493 Button
on (rollOver, dragOver) {
itunesmc.gotoAndPlay("in");
}
on (rollOut, dragOut) {
itunesmc.gotoAndPlay("out");
}
on (release) {
}
Symbol 494 MovieClip Frame 15
stop();
Symbol 494 MovieClip Frame 29
_parent.play();
Symbol 506 Button
on (release) {
if (optin2 == "0") {
optin2 = "1";
} else {
optin2 = "0";
}
opt2.nextFrame();
}
Symbol 517 MovieClip Frame 1
stop();
Symbol 523 MovieClip Frame 1
stop();
Symbol 523 MovieClip Frame 6
stop();
Symbol 524 Button
on (rollOver, dragOver) {
sendbt.gotoAndPlay("in");
}
on (rollOut, dragOut) {
sendbt.gotoAndPlay("out");
}
on (release) {
btn_submit();
}
Symbol 527 MovieClip Frame 1
function checkEmailFormat(email) {
var _local1 = email;
if (((((_local1.indexOf(" ") != -1) || (_local1.indexOf("@") == -1)) || (_local1.indexOf(".") == -1)) || (_local1.length < 6)) || (_local1.lastIndexOf(".") < _local1.indexOf("@"))) {
return(false);
}
return(true);
}
function clearform() {
message = "";
name = "";
email = "";
fname = "";
femail = "";
optin1 = "0";
optin2 = "0";
opt1.gotoAndStop(1);
opt2.gotoAndStop(1);
opt3.gotoAndStop(1);
}
function btn_submit() {
_level0.trackPoint("stf_submitted");
var i = 1;
while (i < 3) {
eval ("alert" + i).gotoAndStop(1);
i++;
}
if (name == "") {
alert1.gotoAndStop("in");
} else if (!checkEmailFormat(email)) {
alert2.gotoAndStop("in");
} else if (fname == "") {
alert3.gotoAndStop("in");
} else if (!checkEmailFormat(femail)) {
alert4.gotoAndStop("in");
} else {
submitURL = "http://www.hyperlaunch.com/ironmaiden/differentworld/regdetails.php";
formData = new LodVars();
formData.email = email;
formData.femail1 = femail;
formData.name = name;
formData.fname = fname;
formData.message = message;
formData.opt1 = opt1;
formData.opt2 = opt2;
replyData = new LodVars();
formData.sendAndLord(submitURL, replyData, "get");
_level0.trackPoint("STF_Sent");
play();
}
}
stop();
clearform();
Symbol 530 MovieClip Frame 10
stop();
Symbol 530 MovieClip Frame 19
_parent.play();
Symbol 583 MovieClip Frame 38
_root.main.makeRubble();
Symbol 583 MovieClip Frame 44
_root.main.makeRubble();
Symbol 583 MovieClip Frame 50
_root.main.makeRubble();
Symbol 583 MovieClip Frame 55
_root.main.makeRubble();
Symbol 583 MovieClip Frame 57
_parent.gotoAndStop("standby");
Symbol 600 MovieClip Frame 37
_parent.gotoAndStop("standby");
Symbol 609 MovieClip Frame 36
_parent.gotoAndStop("standby");
Symbol 617 MovieClip Frame 7
_root.main.makeRubble();
Symbol 617 MovieClip Frame 13
_root.main.makeRubble();
Symbol 617 MovieClip Frame 16
_root.main.makeRubble();
Symbol 617 MovieClip Frame 51
_parent.gotoAndStop("standby");
Symbol 618 MovieClip Frame 1
stop();
this.frame = "intro";
Symbol 618 MovieClip Frame 10
stop();
this.frame = "standby";
Symbol 618 MovieClip Frame 19
stop();
this.frame = "left";
Symbol 618 MovieClip Frame 28
stop();
this.frame = "right";
Symbol 618 MovieClip Frame 37
stop();
this.frame = "rage";
Symbol 619 MovieClip Frame 1
stop();
Symbol 643 MovieClip Frame 1
stop();
Symbol 643 MovieClip Frame 6
stop();
Symbol 643 MovieClip Frame 11
gotoAndStop (1);
Symbol 657 Button
on (rollOver, dragOver) {
submitbt.gotoAndPlay("in");
}
on (rollOut, dragOut) {
submitbt.gotoAndPlay("out");
}
on (release) {
errName._visible = false;
errEmail._visible = false;
valid = true;
if ((txtName.text == "") || (txtName.text == undefined)) {
errName._visible = true;
valid = false;
}
if ((txtEmail.text == "") || (txtEmail.text == undefined)) {
errEmail._visible = true;
valid = false;
}
if (valid) {
_root.objHighscores.submitScore(txtName.text, _root.numericScore, {email:txtEmail.text});
gotoAndStop ("off");
_level0.trackPoint("Highscore_Submitted");
}
}
Symbol 660 MovieClip Frame 1
stop();
errName._visible = false;
errEmail._visible = false;
Symbol 660 MovieClip Frame 2
stop();
submitbt.gotoAndStop("off");
arrowflash.gotoAndStop(1);
Symbol 661 MovieClip Frame 10
_root.objHighscores.displayHighscores(this.highscoreHolder, 0, "highscoreElement", 20);
Symbol 661 MovieClip Frame 15
stop();
Symbol 661 MovieClip Frame 28
_parent.play();
Symbol 673 MovieClip Frame 1
stop();
Symbol 673 MovieClip Frame 6
stop();
Symbol 674 Button
on (rollOver, dragOver) {
playnow.gotoAndPlay("in");
}
on (rollOut, dragOut) {
playnow.gotoAndPlay("out");
}
on (release) {
_global.ipbSend();
stop();
}
Symbol 675 MovieClip Frame 21
stop();
Symbol 675 MovieClip Frame 47
_parent.gotoAndPlay(_parent.section);
Symbol 692 Button
on (release) {
}
Symbol 696 Button
on (release) {
gotoAndStop ("highscores");
}
Symbol 705 MovieClip Frame 1
stop();
Symbol 705 MovieClip Frame 8
stop();
Symbol 709 Button
on (rollOver, dragOver) {
playnow.gotoAndPlay("in");
}
on (rollOut, dragOut) {
playnow.gotoAndPlay("out");
}
on (release) {
_global.ipbSend();
stop();
}
Symbol 718 Button
on (release) {
gotoAndStop ("enterscore");
}
Symbol 720 MovieClip Frame 1
stop();
score.text = _root.score;
_root.enteredScore = false;
Symbol 720 MovieClip Frame 50
stop();
if (_root.enteredScore) {
btnEnterScore._visible = false;
}
var sendLV = new LodVars();
var receiveLV = new LodVars();
highScores.text = "Loading highscores...";
this.receiveLV.onLoad = function () {
highScores.text = this.highScoresText;
};
strURL = _root.baseURL + "/getscores.pl";
sendLV.sendAndLord(strURL, this.receiveLV, "POST");
_level0.trackPoint("Game_viewedHighscores");
Symbol 726 MovieClip Frame 1
stop();
Symbol 726 MovieClip Frame 8
stop();
Symbol 727 Button
on (rollOver, dragOver) {
playnow.gotoAndPlay("in");
}
on (rollOut, dragOut) {
playnow.gotoAndPlay("out");
}
on (release) {
_parent.section = "game";
gotoAndPlay ("out");
_level0.trackPoint("Game_won_playagain");
}
Symbol 728 MovieClip Frame 21
stop();
Symbol 728 MovieClip Frame 47
_parent.gotoAndPlay(_parent.section);
Symbol 729 MovieClip Frame 1
section = home;
Symbol 729 MovieClip Frame 81
stop();
_quality = "best";
if (packshotmc._currentframe != 11) {
packshotmc.gotoAndPlay("in");
}
Symbol 729 MovieClip Frame 82
stop();
homemc.gotoAndPlay("out");
Symbol 729 MovieClip Frame 86
gotoAndPlay(section);
Symbol 729 MovieClip Frame 91
stop();
_quality = "best";
if (packshotmc._currentframe != 11) {
packshotmc.gotoAndPlay("in");
}
Symbol 729 MovieClip Frame 92
stop();
instructionsmc.gotoAndPlay("out");
Symbol 729 MovieClip Frame 96
gotoAndPlay(section);
Symbol 729 MovieClip Frame 101
stop();
_quality = "best";
if (packshotmc._currentframe != 11) {
packshotmc.gotoAndPlay("in");
}
_level0.trackPoint("InfoScreen_Displayed");
Symbol 729 MovieClip Frame 102
stop();
infomc.gotoAndPlay("out");
Symbol 729 MovieClip Frame 106
gotoAndPlay(section);
Symbol 729 MovieClip Frame 111
stop();
_quality = "best";
if (packshotmc._currentframe != 11) {
packshotmc.gotoAndPlay("in");
}
_level0.trackPoint("STF_Displayed");
Symbol 729 MovieClip Frame 112
stop();
challengemc.gotoAndPlay("out");
Symbol 729 MovieClip Frame 116
gotoAndPlay(section);
Symbol 729 MovieClip Frame 125
function NPCSystem(clip) {
if (!clip) {
clip = _root;
}
clip.createEmptyMovieClip("NPC_WorkerClip", 95732);
this.garbageCollectEvery = 60;
this.NPC_WorkerClip = clip.NPC_WorkerClip;
this.NPC_WorkerClip.owner = this;
this.frame = 0;
this.showMetrics = false;
this.hitZones = [];
this.NPCs = [];
this.NPC_WorkerClip.onEnterFrame = function () {
this.owner.frame++;
if ((this.owner.frame % this.owner.garbageCollectEvery) == 0) {
this.owner.garbageCollect();
}
};
}
function ProjectileSystem(clip, objNPC, gravity) {
if (!clip) {
clip = _root;
}
clip.createEmptyMovieClip("projectile_WorkerClip", 95733);
this.garbageCollectEvery = 60;
this.projectile_WorkerClip = clip.projectile_WorkerClip;
this.projectile_WorkerClip.owner = this;
this.frame = 0;
this.showMetrics = false;
this.projectiles = [];
this.gravity = (gravity ? (gravity) : 1);
this.objNPC = objNPC;
this.screenExcess = 50;
this.projectile_WorkerClip.onEnterFrame = function () {
this.owner.frame++;
this.owner.frameLoop();
if ((this.owner.frame % this.owner.garbageCollectEvery) == 0) {
this.owner.garbageCollect();
}
};
}
function pathPosition(arrPath, pixels) {
var _local1 = 0;
var _local5 = 0;
var _local4 = pixels;
var _local2 = pathLength(arrPath, _local1);
while (_local4 > _local2) {
if (_local1 >= (arrPath.length - 2)) {
return(undefined);
}
_local4 = _local4 - _local2;
_local1++;
_local2 = pathLength(arrPath, _local1);
_local5 = 0;
}
_local5 = _local5 + _local4;
var _local9 = arrPath[_local1].x;
var _local8 = arrPath[_local1].y;
var _local11 = arrPath[_local1 + 1].x;
var _local10 = arrPath[_local1 + 1].y;
var _local6 = {x:0, y:0, r:0, seg:_local1};
var _local7 = _local5 / pathLength(arrPath, _local1);
_local6.x = _local9 + ((_local11 - _local9) * _local7);
_local6.y = _local8 + ((_local10 - _local8) * _local7);
_local6.r = pathRotation(arrPath, _local1);
return(_local6);
}
function pathRotation(arrPath, segmentNum) {
var _local6 = arrPath[segmentNum].x;
var _local5 = arrPath[segmentNum].y;
var _local4 = arrPath[segmentNum + 1].x;
var _local3 = arrPath[segmentNum + 1].y;
return(Math.atan2(_local3 - _local5, _local4 - _local6));
}
function pathLength(arrPath, segmentNum) {
var _local6 = arrPath[segmentNum].x;
var _local5 = arrPath[segmentNum].y;
var _local4 = arrPath[segmentNum + 1].x;
var _local3 = arrPath[segmentNum + 1].y;
return(Math.distance(_local6, _local5, _local4, _local3));
}
function pathNormalFraction(arrPath, p, segmentNum) {
var _local3 = arrPath[segmentNum].x;
var _local2 = arrPath[segmentNum].y;
var _local11 = arrPath[segmentNum + 1].x;
var _local10 = arrPath[segmentNum + 1].y;
var _local7 = Math.abs(pathDistToSegment(arrPath, p, segmentNum));
var _local8 = Math.sqrt(((p.x - _local3) * (p.x - _local3)) + ((p.y - _local2) * (p.y - _local2)));
var _local14 = Math.sqrt(Math.abs((_local8 * _local8) - (_local7 * _local7)));
var _local5 = _local14 / pathLength(arrPath, segmentNum);
var _local13 = _local3 + (_local5 * (_local11 - _local3));
var _local12 = _local2 + (_local5 * (_local10 - _local2));
var _local9 = Math.distance(p.x, p.y, _local13, _local12);
if (_local9 > (1.001 * _local7)) {
_local5 = _local5 * -1;
}
return(_local5);
}
function pathDistToSegment(arrPath, p, segmentNum) {
var _local8 = p.x;
var _local7 = p.y;
var _local2 = arrPath[segmentNum].x;
var _local1 = arrPath[segmentNum].y;
var _local4 = arrPath[segmentNum + 1].x;
var _local3 = arrPath[segmentNum + 1].y;
var _local9 = -(((_local4 - _local2) * (_local1 - _local7)) - ((_local2 - _local8) * (_local3 - _local1)));
var _local10 = Math.sqrt(((_local4 - _local2) * (_local4 - _local2)) + ((_local3 - _local1) * (_local3 - _local1)));
return(_local9 / _local10);
}
function drawPath(arrPath, clip, colour) {
clip.clear();
clip.lineStyle(1, colour, 100);
clip.moveTo(arrPath[0].x, arrPath[0].y);
var _local1 = 0;
while (_local1 < arrPath.length) {
clip.lineTo(arrPath[_local1].x, arrPath[_local1].y);
_local1++;
}
}
function startPathEditor(arrPath, clip) {
trace("Started path editor on " + clip);
trace("Click to place lines");
trace("Press t to trace array");
trace("Press d to delete last segment");
var _local2 = clip.createEmptyMovieClip("pathEditor", 0);
_local2._arrPath = [];
if (arrPath != undefined) {
_local2._arrPath = arrPath;
}
_local2.onMouseDown = function () {
this._arrPath.push({x:this._xmouse, y:this._ymouse});
drawPath(this._arrPath, this, 16711935);
};
var _local3 = new Object();
_local3.clip = _local2;
_local3.onKeyUp = function () {
var _local2 = Key.getCode();
if (_local2 == 84) {
tracePath(this.clip._arrPath);
}
if (_local2 == 68) {
this.clip._arrPath = this.clip._arrPath.slice(0, -1);
drawPath(this.clip._arrPath, this.clip, 16711935);
}
};
Key.addListener(_local3);
}
function tracePath(arrPath) {
var _local4 = "";
var _local3 = "";
var _local1 = 0;
while (_local1 < arrPath.length) {
_local4 = _local4 + (((((_local3 + "{x:") + arrPath[_local1].x) + ",y:") + arrPath[_local1].y) + "}");
_local3 = ", ";
_local1++;
}
trace(("[" + _local4) + "]");
}
function HighscoreServica(gameID, count) {
this.gameID = gameID;
this.scoresLoaded = true;
this.displayDetailsSaved = false;
this.baseDomain = "www.hyperlaunch.com";
this.baseURL = ("http://" + this.baseDomain) + "/highscoreservice/";
this.scoreCount = ((count == undefined) ? 10 : (count));
var _local2 = SaredObject.getLocal("highscoreService");
this.userKey = _local2.data.userKey;
this.objXML = new XML();
this.objXML.ignoreWhite = true;
this.objXML.lord((((((((this.baseURL + "getScores.php?gameID=") + this.gameID) + "&count=") + this.scoreCount) + "&userKey=") + this.userKey) + "&r=") + (Math.floor(Math.random() * 100000) + 100000));
this.objXML.owner = this;
this.objXML.onLoad = function () {
this.owner.scoresLoaded = true;
var _local3 = this.getNodeValue("highscores/userKey");
if (_local3 != undefined) {
var _local2 = ShredObject.getLocal("highscoreService");
this.owner.userKey = (_local2.data.userKey = _local3);
_local2.flush();
}
if (this.owner.displayDetailsSaved) {
this.owner._displayScores();
}
System.security.allowDomain(this.owner.baseDomain);
loadMovieNum ((this.owner.baseURL + "highscoreService.swf?r=") + (Math.floor(Math.random() * 100000) + 100000), 19356);
};
}
function gunFiring() {
var _local9 = mainGunSlowDutyCycle;
var _local11 = diagonalGunSlowDutyCycle;
var _local15 = upDownGunSlowDutyCycle;
var _local17 = behindGunSlowDutyCycle;
var _local20 = rocketGunSlowDutyCycle;
var _local6 = "herobullet";
var _local4 = "herobullet";
var _local12 = "herobullet";
var _local8 = 10;
var _local7 = 10;
var _local16 = 10;
var _local18 = 30;
var _local2 = {x:0, y:0};
player.gun.barrel.localToGlobal(_local2);
baseClip.ordinanceHolder.globalToLocal(_local2);
var _local13 = {x:0, y:0};
player.gun.localToGlobal(_local13);
baseClip.ordinanceHolder.globalToLocal(_local13);
var _local21 = Math.atan2(baseClip.ordinanceHolder._ymouse - _local13.y, baseClip.ordinanceHolder._xmouse - _local13.x);
var _local22 = Math.radToDeg(_local21);
var _local5 = _local22;
if (_local5 > maxArmAngle) {
_local5 = maxArmAngle;
}
if (_local5 < minArmAngle) {
_local5 = minArmAngle;
}
var _local10 = Math.degToRad(_local5);
var _local19 = player.gunPower;
if (superFrames > 0) {
_local19 = maxGunPower + 1;
}
switch (_local19) {
case 16 :
_local9 = mainGunUltraDutyCycle;
_local18 = 100;
_local8 = 60;
_local7 = 60;
_local16 = 100;
_local12 = "herobullethuge";
_local11 = 3;
_local15 = 4;
_local17 = 3;
_local20 = 3;
case 15 :
if (_local4 == "herobullet") {
_local4 = "herobullethuge";
_local8 = 30;
}
case 14 :
if (_local6 == "herobullet") {
_local6 = "herobullethuge";
_local7 = 30;
}
case 13 :
if (_local12 == "herobullet") {
_local12 = "herobulletlarge";
_local16 = 20;
}
case 12 :
if (frame > player.rocketNextFireFrame) {
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "bullet" + depth, depth);
var _local3 = baseClip.ordinanceHolder["bullet" + depth];
_local3.gotoAndStop("herorocket");
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = 20;
_local3._x = _local2.x;
_local3._y = _local2.y;
_local3.vx = 0;
_local3.vy = 8;
_local3.hitClips = [_local3.h1];
_local3.onStep = function () {
this.vx = this.vx + 1;
};
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.removeMovieClip();
};
_local3.offScreenCallback = function () {
};
objProjectiles.registerProjectile(_local3);
}
case 11 :
if (frame > player.rocketNextFireFrame) {
player.rocketNextFireFrame = frame + _local20;
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "bullet" + depth, depth);
var _local3 = baseClip.ordinanceHolder["bullet" + depth];
_local3.gotoAndStop("herorocket");
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = 20;
_local3._x = _local2.x;
_local3._y = _local2.y;
_local3.vx = 0;
_local3.vy = -8;
_local3.hitClips = [_local3.h1];
_local3.onStep = function () {
this.vx = this.vx + 1;
};
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.removeMovieClip();
};
_local3.offScreenCallback = function () {
};
objProjectiles.registerProjectile(_local3);
}
case 10 :
if (_local4 == "herobullet") {
_local4 = "herobulletlarge";
_local8 = 20;
}
case 9 :
if (frame > player.behindNextFireFrame) {
player.behindNextFireFrame = frame + _local17;
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "bullet" + depth, depth);
var _local3 = baseClip.ordinanceHolder["bullet" + depth];
_local3.gotoAndStop(_local12);
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = _local16;
_local3._x = _local2.x;
_local3._y = _local2.y + 30;
_local3.vx = -10;
_local3.vy = 0;
_local3.hitClips = [_local3.h1];
_local3.onStep = function () {
};
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.removeMovieClip();
};
_local3.offScreenCallback = function () {
};
objProjectiles.registerProjectile(_local3);
}
case 8 :
if (_local6 == "herobullet") {
_local6 = "herobulletlarge";
_local7 = 20;
}
case 7 :
if (_local15 == upDownGunSlowDutyCycle) {
_local15 = upDownGunFastDutyCycle;
}
case 6 :
if (frame > player.upDownNextFireFrame) {
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "bullet" + depth, depth);
var _local3 = baseClip.ordinanceHolder["bullet" + depth];
_local3.gotoAndStop(_local4);
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = _local8;
_local3._x = _local2.x;
_local3._y = _local2.y;
_local3.vx = 0;
_local3.vy = 10;
_local3.hitClips = [_local3.h1];
_local3.onStep = function () {
};
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.removeMovieClip();
};
_local3.offScreenCallback = function () {
};
objProjectiles.registerProjectile(_local3);
}
case 5 :
if (frame > player.upDownNextFireFrame) {
player.upDownNextFireFrame = frame + _local15;
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "bullet" + depth, depth);
var _local3 = baseClip.ordinanceHolder["bullet" + depth];
_local3.gotoAndStop(_local4);
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = _local8;
_local3._x = _local2.x;
_local3._y = _local2.y;
_local3.vx = 0;
_local3.vy = -10;
_local3.hitClips = [_local3.h1];
_local3.onStep = function () {
};
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.removeMovieClip();
};
_local3.offScreenCallback = function () {
};
objProjectiles.registerProjectile(_local3);
}
case 4 :
if (_local11 == diagonalGunSlowDutyCycle) {
_local11 = diagonalGunFastDutyCycle;
}
case 3 :
if (frame > player.diagonalNextFireFrame) {
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "bullet" + depth, depth);
var _local3 = baseClip.ordinanceHolder["bullet" + depth];
_local3.gotoAndStop(_local6);
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = _local7;
_local3._x = _local2.x;
_local3._y = _local2.y;
_local3.vx = 10 * Math.cos(_local10 + 0.2);
_local3.vy = 10 * Math.sin(_local10 + 0.2);
_local3.hitClips = [_local3.h1];
_local3.onStep = function () {
};
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.removeMovieClip();
};
_local3.offScreenCallback = function () {
};
objProjectiles.registerProjectile(_local3);
}
case 2 :
if (frame > player.diagonalNextFireFrame) {
player.diagonalNextFireFrame = frame + _local11;
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "bullet" + depth, depth);
var _local3 = baseClip.ordinanceHolder["bullet" + depth];
_local3.gotoAndStop(_local6);
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = _local7;
_local3._x = _local2.x;
_local3._y = _local2.y;
_local3.vx = 10 * Math.cos(_local10 - 0.2);
_local3.vy = 10 * Math.sin(_local10 - 0.2);
_local3.hitClips = [_local3.h1];
_local3.onStep = function () {
};
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.removeMovieClip();
};
_local3.offScreenCallback = function () {
};
objProjectiles.registerProjectile(_local3);
}
case 1 :
if (_local9 == mainGunSlowDutyCycle) {
_local9 = mainGunFastDutyCycle;
}
case 0 :
if (frame >= player.mainGunNextFireFrame) {
player.gun.play();
player.mainGunNextFireFrame = frame + _local9;
player.ammo--;
displayAmmo();
depth++;
baseClip.ordinanceHolder.attachMovie("tracer", "tracer" + depth, depth);
var _local3 = baseClip.ordinanceHolder["tracer" + depth];
_local3._rotation = _local5 + Math.randomNum(-2, 2);
_local3.isAffectedByGravity = false;
_local3.isFromPlayer = true;
_local3.doesDamage = true;
_local3.force = _local18;
_local3._x = _local2.x + Math.randomNum(-2, 2);
_local3._y = _local2.y + Math.randomNum(-2, 2);
_local3.vx = player.vx / 5;
_local3.vy = player.vy / 5;
_local3.hitClips = [_local3.h1, _local3.h2, _local3.h3, _local3.h4, _local3.h5, _local3.h6, _local3.h7, _local3.h8, _local3.h9, _local3.h10, _local3.h11, _local3.h12, _local3.h13, _local3.h14];
_local3.hitCallback = function (p) {
placeHitMarker(p);
this.hitClips = undefined;
};
objProjectiles.registerProjectile(_local3);
var _local14 = {x:0, y:0};
player.gun.chamber.localToGlobal(_local14);
baseClip.ordinanceHolder.globalToLocal(_local14);
depth++;
baseClip.ordinanceHolder.attachMovie("cartridge", "cartridge" + depth, depth);
_local3 = baseClip.ordinanceHolder["cartridge" + depth];
_local3.isAffectedByGravity = true;
_local3.isFromPlayer = true;
_local3.doesDamage = false;
_local3._x = _local14.x;
_local3._y = _local14.y;
_local3.vx = (player.vx - 5) + Math.randomNum(-1, 1);
_local3.vy = (player.vy - 8) + Math.randomNum(-1, 1);
_local3.vr = Math.randomNum(-5, -3);
_local3.onStep = function () {
this._rotation = this._rotation + this.vr;
};
objProjectiles.registerProjectile(_local3);
}
break;
default :
trace(("Gun power level " + player.gunPower) + " not implimented");
}
}
function placeHitMarker(p) {
baseClip.ordinanceHolder.globalToLocal(p);
var _local4 = 0;
while (_local4 < 2) {
depth++;
var _local2 = baseClip.ordinanceHolder.createEmptyMovieClip("spark" + depth, depth);
_local2.vx = Math.randomNum(-20, 20);
_local2.vy = Math.randomNum(-20, 20);
_local2.cx = p.x;
_local2.cy = p.y;
_local2.px = p.x;
_local2.py = p.y;
_local2._alpha = 100;
_local2.onEnterFrame = function () {
this._alpha = this._alpha - 4;
if (this._alpha <= 5) {
this.removeMovieClip();
}
this.cx = this.cx + this.vx;
this.cy = this.cy + this.vy;
this.vx = this.vx * 0.9;
this.vy = this.vy * 0.9;
var _local3 = this.cx - this.px;
var _local2 = this.cy - this.py;
this.clear();
this.lineStyle(1, 16777215, 100);
this.moveTo(this.px, this.py);
this.lineTo(this.cx + _local3, this.cy + _local2);
this.px = this.cx;
this.py = this.cy;
};
_local4++;
}
}
function displayAmmo() {
var _local2 = 1 - (player.ammo / ammoPerClip);
_root.main.ammo.bullets._y = _root.main.ammo.bullets.origY - Math.floor(_root.main.ammo.bullets._height * _local2);
}
function generateEnemy(type, holder, x, y, scale, properties) {
holder.depth++;
holder.attachMovie("enemy_" + type, ("enemy_" + type) + holder.depth, holder.depth);
var _local1 = holder[("enemy_" + type) + holder.depth];
_local1._x = x;
_local1._y = y;
_local1._xscale = (_local1._yscale = ((scale == undefined) ? 100 : (scale)));
_local1.frame = 0;
objNPC.registerNPC(_local1);
_local1.properties = properties;
switch (type) {
case "chopper" :
chopperInitialise(_local1);
break;
case "pickup" :
pickupInitialise(_local1);
break;
case "ground" :
groundInitialise(_local1);
break;
case "snake" :
snakeInitialise(_local1);
break;
case "spider" :
spiderInitialise(_local1);
break;
default :
trace("Unknown baddie type " + type);
}
}
function chopperInitialise(clip) {
clip.state = "flying";
clip.health = 200;
clip.offsetX = clip._x - clip.properties.path[0].x;
clip.offsetY = clip._y - clip.properties.path[0].y;
clip.pathPos = 0;
objNPC.registerHitZone(clip, clip.hitBody, chopperHitBody);
clip.hurtPoints = [clip.hurt1, clip.hurt2, clip.hurt3, clip.hurt4, clip.hurt5, clip.hurt6, clip.hurt7, clip.hurt8];
clip.onEnterFrame = chopperFrameLoop;
baseClip.sChopper.start(0, 3);
}
function chopperFrameLoop() {
this.frame++;
switch (this.state) {
case "flying" :
if (Math.randomInt(1, 100) < 3) {
this.gotoAndStop("firing");
var _local2 = {x:0, y:0};
this.gunBarrel.localToGlobal(_local2);
baseClip.ordinanceHolder.globalToLocal(_local2);
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "enemybullet" + depth, depth);
var _local4 = baseClip.ordinanceHolder["enemybullet" + depth];
_local4.gotoAndStop("enemybullet");
_local4.isAffectedByGravity = false;
_local4.isFromPlayer = false;
_local4.doesDamage = true;
_local4.force = 10;
_local4._x = _local2.x;
_local4._y = _local2.y;
_local4.vx = -6;
_local4.vy = 3;
_local4.onStep = function () {
var _local2 = {x:0, y:0};
this.h1.localToGlobal(_local2);
if (player.hitZone.hitTest(_local2.x, _local2.y, true)) {
this.removeMovieClip();
playerHit();
}
};
objBaddieProjectiles.registerProjectile(_local4);
}
this.pathPos = this.pathPos + this.properties.speed;
var _local2 = pathPosition(this.properties.path, this.pathPos);
if (_local2 == undefined) {
this.removeMovieClip();
} else {
this._x = _local2.x + this.offsetX;
this._y = _local2.y + this.offsetY;
}
var _local3 = 0;
while (_local3 < this.hurtPoints.length) {
_local2 = {x:0, y:0};
this.hurtPoints[_local3].localToGlobal(_local2);
if (player.hitZone.hitTest(_local2.x, _local2.y, true)) {
playerHit(_local2);
}
_local3++;
}
break;
case "destroyed" :
break;
default :
trace(("Chopper state " + this.state) + " not implimented");
}
}
function chopperHitBody(objHitZone, hitPoint, bulletForce) {
baseClip.sExplosion1.start();
objHitZone.owner.health = objHitZone.owner.health - bulletForce;
addToScore(3);
if (objHitZone.owner.health < 0) {
baseClip.sExplosion2.start();
addToScore(50);
objHitZone.owner.gotoAndStop("dead");
objHitZone.owner.state = "destroyed";
generateEnemy("pickup", baseClip.enemyHolderPickup, objHitZone.owner._x, objHitZone.owner._y, 100, undefined);
var _local5 = ["rotor", "tail", "tailblade", "engine", "midblade", "topblade", "nose", "body", "bodytop"];
var _local3 = 0;
while (_local3 < _local5.length) {
var _local2 = objHitZone.owner[_local5[_local3]];
_local2.isAffectedByGravity = true;
_local2.isFromPlayer = false;
_local2.doesDamage = false;
_local2.vx = Math.randomNum(-10, 10);
_local2.vy = Math.randomNum(-8, 1);
_local2.vr = Math.randomNum(-3, 3);
_local2.hitClips = [];
_local2.onStep = function () {
this._rotation = this._rotation + this.vr;
};
_local2.hitCallback = undefined;
objProjectiles.registerProjectile(_local2);
_local3++;
}
objHitZone.owner.frame = 0;
objHitZone.owner.colourTrans = new Color(objHitZone.owner);
objHitZone.owner.onEnterFrame = function () {
var _local2 = 200 - (this.frame * 8);
var _local3 = {ra:100, ga:100, ba:100, rb:_local2, gb:_local2, bb:_local2, aa:100, ab:0};
this.colourTrans.setTransform(_local3);
this.frame++;
if (this.frame > 100) {
this.removeMovieClip();
}
};
}
}
function pickupInitialise(clip) {
clip.state = "floating";
clip.vx = -1;
clip.origY = clip._y;
clip.waveSize = Math.randomNum(10, 20);
if (player.gunPower < 3) {
clip.powerUpType = "weapon";
} else {
var _local2 = Math.randomInt(0, 99);
if (_local2 < 100) {
clip.powerUpType = "super";
}
if (_local2 < 95) {
clip.powerUpType = "health";
}
if (_local2 < ((health <= 25) ? 25 : 85)) {
clip.powerUpType = "weapon";
}
}
clip.gotoAndStop(clip.powerUpType);
clip.onEnterFrame = pickupFrameLoop;
}
function pickupFrameLoop() {
this.frame++;
switch (this.state) {
case "floating" :
this._x = this._x + this.vx;
this._y = this.origY + (this.waveSize * Math.cos(this.frame / 10));
if (this._x < -20) {
this.removeMovieClip();
}
var _local2 = {x:0, y:0};
this.localToGlobal(_local2);
if (player.hitZone.hitTest(_local2.x, _local2.y, true)) {
switch (this.powerUpType) {
case "health" :
causeHarm(-100);
baseClip.sHealthUp.start();
break;
case "weapon" :
player.gunPower++;
if (player.gunPower > maxGunPower) {
player.gunPower = maxGunPower;
}
baseClip.sPowerUp.start();
break;
case "super" :
superFrames = maxSuperFrames;
baseClip.sCrazy.start();
}
addToScore(10);
this.removeMovieClip();
}
break;
default :
trace(("Pickup state " + this.state) + " not implimented");
}
}
function groundInitialise(clip) {
clip.state = "solid";
clip.vx = -2;
if (clip._parent == baseClip.enemyHolderGround) {
clip.gotoAndStop("gfx_" + clip.properties.gfxFrame);
generateEnemy("ground", baseClip.enemyHolderGroundHit, clip._x, clip._y, clip._xscale, {gfxFrame:clip.properties.gfxFrame});
} else {
clip.gotoAndStop("hit_" + clip.properties.gfxFrame);
clip._visible = false;
}
clip.onEnterFrame = groundFrameLoop;
}
function groundFrameLoop() {
this.frame++;
switch (this.state) {
case "solid" :
this._x = this._x + this.vx;
if (this._x < -20) {
this.removeMovieClip();
}
break;
default :
trace(("Ground state " + this.state) + " not implimented");
}
}
function snakeInitialise(clip) {
clip.state = "flying";
clip.health = 100;
clip.vx = clip.properties.vx;
clip.vy = clip.properties.vy;
clip._rotation = Math.radToDeg(Math.atan2(clip.vy, clip.vx));
objNPC.registerHitZone(clip, clip.hitBody, snakeHitBody);
clip.hurtPoints = [clip.mouth.hurt1, clip.mouth.hurt2];
clip.onEnterFrame = snakeFrameLoop;
}
function snakeFrameLoop() {
this.frame++;
switch (this.state) {
case "flying" :
this._x = this._x + (this.vx - 2);
this._y = this._y + this.vy;
var _local5 = Math.distance(player._x, player._y, this._x, this._y);
if (_local5 < 100) {
this.mouth.play();
} else {
this.mouth.gotoAndStop("closed");
}
var _local2 = 0;
while (_local2 < this.hurtPoints.length) {
p = {x:0, y:0};
this.hurtPoints[_local2].localToGlobal(p);
if (player.hitZone.hitTest(p.x, p.y, true)) {
playerHit(p);
}
_local2++;
}
if ((((this._x < -400) || (this._x > (Stage.width + 400))) || (this._y < -400)) || (this._y > (Stage.height + 400))) {
this.removeMovieClip();
}
break;
case "destroyed" :
break;
default :
trace(("Snake state " + this.state) + " not implimented");
}
}
function snakeHitBody(objHitZone, hitPoint, bulletForce) {
baseClip.sExplosion1.start();
objHitZone.owner.health = objHitZone.owner.health - bulletForce;
addToScore(5);
if (objHitZone.owner.health < 0) {
baseClip.sExplosion2.start();
addToScore(30);
objHitZone.owner.gotoAndStop("death");
objHitZone.owner.mouth.gotoAndStop("closed");
objHitZone.owner.state = "destroyed";
generateEnemy("pickup", baseClip.enemyHolderPickup, objHitZone.owner._x, objHitZone.owner._y, 100, undefined);
var _local5 = ["mouth", "headA", "headB", "headC", "tail"];
var _local3 = 0;
while (_local3 < _local5.length) {
var _local2 = objHitZone.owner[_local5[_local3]];
_local2.isAffectedByGravity = false;
_local2.isFromPlayer = false;
_local2.doesDamage = false;
_local2.vx = Math.randomNum(-4, 4);
_local2.vy = Math.randomNum(-4, 4);
_local2.vr = Math.randomNum(-3, 3);
_local2.hitClips = [];
_local2.onStep = function () {
this._rotation = this._rotation + this.vr;
};
_local2.hitCallback = undefined;
objProjectiles.registerProjectile(_local2);
_local3++;
}
objHitZone.owner.frame = 0;
objHitZone.owner.colourTrans = new Color(objHitZone.owner);
objHitZone.owner.onEnterFrame = function () {
this._x = this._x + this.vx;
this._y = this._y + this.vy;
this.vy = this.vy + 1;
var _local2 = 200 - (this.frame * 8);
var _local3 = {ra:100, ga:100, ba:100, rb:_local2, gb:_local2, bb:_local2, aa:100, ab:0};
this.colourTrans.setTransform(_local3);
this.frame++;
if (this.frame > 100) {
this.removeMovieClip();
}
};
}
}
function spiderInitialise(clip) {
clip.state = "falling";
clip.health = 200;
clip.vx = clip.properties.vx;
clip.vy = 0;
if (clip.vx < 0) {
clip._xscale = -clip._xscale;
}
objNPC.registerHitZone(clip, clip.hitBody, spiderHitBody);
clip.hurtPoints = [clip.hurt1, clip.hurt2];
clip.onEnterFrame = spiderFrameLoop;
}
function spiderFrameLoop() {
this.frame++;
if ((this.frame % this.properties.gunDutyCycle) == 0) {
var _local2 = {x:0, y:0};
this.gunBarrel.localToGlobal(_local2);
baseClip.ordinanceHolder.globalToLocal(_local2);
var _local8 = {x:0, y:0};
player.localToGlobal(_local8);
baseClip.ordinanceHolder.globalToLocal(_local8);
depth++;
baseClip.ordinanceHolder.attachMovie("bullet", "enemybullet" + depth, depth);
var _local4 = baseClip.ordinanceHolder["enemybullet" + depth];
_local4.gotoAndStop("enemybullet");
_local4.isAffectedByGravity = false;
_local4.isFromPlayer = false;
_local4.doesDamage = true;
_local4.force = 10;
_local4._x = _local2.x;
_local4._y = _local2.y;
_local4.vx = _local8.x - _local2.x;
_local4.vy = _local8.y - _local2.y;
var _local9 = Math.vectorLength(_local4.vx, _local4.vy);
_local4.vx = _local4.vx * (this.properties.bulletSpeed / _local9);
_local4.vy = _local4.vy * (this.properties.bulletSpeed / _local9);
_local4.onStep = function () {
var _local2 = {x:0, y:0};
this.h1.localToGlobal(_local2);
if (player.hitZone.hitTest(_local2.x, _local2.y, true)) {
this.removeMovieClip();
playerHit();
}
};
objBaddieProjectiles.registerProjectile(_local4);
}
switch (this.state) {
case "falling" :
this.vy = this.vy + 1;
this._x = this._x + this.vx;
this._y = this._y + this.vy;
break;
case "walking" :
this._x = this._x + (this.vx - 2);
var _local10 = Math.distance(player._x, player._y, this._x, this._y);
if (_local10 < 150) {
this.laser.play();
}
break;
case "destroyed" :
break;
default :
trace(("Spider state " + this.state) + " not implimented");
}
var _local2 = {x:0, y:0};
this.foot.localToGlobal(_local2);
if (baseClip.enemyHolderGroundHit.hitTest(_local2.x, _local2.y, true)) {
var _local5 = 0;
while (baseClip.enemyHolderGroundHit.hitTest(_local2.x, (_local2.y - _local5) - 1, true)) {
_local5++;
}
this._y = this._y - _local5;
this.vy = 0;
this.state = "walking";
} else {
this.state = "falling";
}
var _local3 = 0;
while (_local3 < this.hurtPoints.length) {
_local2 = {x:0, y:0};
this.hurtPoints[_local3].localToGlobal(_local2);
if (player.hitZone.hitTest(_local2.x, _local2.y, true)) {
playerHit(_local2);
}
_local3++;
}
if ((((this._x < -200) || (this._x > (Stage.width + 200))) || (this._y < -200)) || (this._y > (Stage.height + 200))) {
this.removeMovieClip();
}
}
function spiderHitBody(objHitZone, hitPoint, bulletForce) {
baseClip.sExplosion1.start();
objHitZone.owner.health = objHitZone.owner.health - bulletForce;
addToScore(5);
if (objHitZone.owner.health < 0) {
baseClip.sExplosion2.start();
addToScore(40);
objHitZone.owner.gotoAndStop("death");
objHitZone.owner.state = "destroyed";
generateEnemy("pickup", baseClip.enemyHolderPickup, objHitZone.owner._x, objHitZone.owner._y, 100, undefined);
var _local5 = ["body", "leg_r1", "leg_r2", "leg_f1", "leg_f2"];
var _local3 = 0;
while (_local3 < _local5.length) {
var _local2 = objHitZone.owner[_local5[_local3]];
_local2.isAffectedByGravity = true;
_local2.isFromPlayer = false;
_local2.doesDamage = false;
_local2.vx = Math.randomNum(-12, 12);
_local2.vy = Math.randomNum(-10, 1);
_local2.vr = Math.randomNum(-3, 3);
_local2.hitClips = [];
_local2.onStep = function () {
this._rotation = this._rotation + this.vr;
};
_local2.hitCallback = undefined;
objProjectiles.registerProjectile(_local2);
_local3++;
}
objHitZone.owner.frame = 0;
objHitZone.owner.colourTrans = new Color(objHitZone.owner);
objHitZone.owner.onEnterFrame = function () {
var _local2 = 200 - (this.frame * 8);
var _local3 = {ra:100, ga:100, ba:100, rb:_local2, gb:_local2, bb:_local2, aa:100, ab:0};
this.colourTrans.setTransform(_local3);
this.frame++;
if (this.frame > 100) {
this.removeMovieClip();
}
};
}
}
function initGame() {
baseClip = _root.main.gamemain;
scoreClip = _root.main.scoreDisplay.score;
trace(scoreClip);
scoreClip.topOffset = scoreClip.s1._y;
_root.textScore = "00000";
rubbleDepth = 0;
depth = 0;
baseClip.objColour = new Color(baseClip);
baseClip.normalColour = {ra:100, ga:100, ba:100, rb:0, gb:0, bb:0, aa:100, ab:0};
baseClip.objColour.setTransform(baseClip.normalColour);
objNPC = new NPCSystem(baseClip);
nextTimelineElement = 0;
baseClip.enemyHolderFront.depth = 0;
baseClip.enemyHolderPickup.depth = 0;
baseClip.enemyHolderGround.depth = 0;
baseClip.enemyHolderGroundHit.depth = 0;
_root.sAmbience = _root.makeSound("winda", 10009);
baseClip.sPowerUp = baseClip.makeSound("powerup_c", ++depth);
baseClip.sHealthUp = baseClip.makeSound("powerup_b", ++depth);
baseClip.sCrazy = baseClip.makeSound("crazy_b", ++depth);
baseClip.sExplosion1 = baseClip.makeSound("explosion", ++depth);
baseClip.sExplosion2 = baseClip.makeSound("explosiona", ++depth);
baseClip.sGunEmpty = baseClip.makeSound("gunReload", ++depth);
baseClip.sGunReload = baseClip.makeSound("gunReloada", ++depth);
baseClip.sOrb = baseClip.makeSound("orb_final", ++depth);
baseClip.sChopper = baseClip.makeSound("chopper", ++depth);
baseClip.sGunReload.setVolume(60);
player = baseClip.gunman;
player.prevX = player._x;
player.prevY = player._y;
player.vx = 0;
player.vy = 0;
player.state = "falling";
player.inPain = false;
player.isAlive = true;
player.secondJumpAvailable = true;
player.hitZone._visible = false;
player.gotoAndStop("running");
score = 0;
health = maxHealth;
_root.main.healthMeter.healthMask.origY = _root.main.healthMeter.healthMask._y;
causeHarm(0);
gameEndingFrames = 0;
player.gunPower = 0;
player.ammo = ammoPerClip;
player.mainGunNextFireFrame = 0;
player.diagonalNextFireFrame = 0;
player.upDownNextFireFrame = 0;
player.behindNextFireFrame = 0;
player.rocketNextFireFrame = 0;
_root.main.ammo.bullets.origY = _root.main.ammo.bullets._y;
player.isReloading = 0;
displayAmmo();
frame = 0;
objProjectiles = new ProjectileSystem(baseClip.ordinanceHolder, objNPC, 1);
objProjectiles.showMetrics = false;
objBaddieProjectiles = new ProjectileSystem(baseClip.enemyHolderFront, undefined, 1);
baseClip.eddie.onEaseComplete = eddieMoveAbout;
baseClip.eddie.easeProperty(Math.easeInOutExpo, ["_y"], [260], 30);
baseClip.airship.easeProperty(Math.linearTween, ["_x"], [-300], 1300);
baseClip.onEnterFrame = frameLoop;
_root.sAmbience.start(0, 9999);
}
function frameLoop() {
frame++;
if (frame == level.maxFrames) {
fadeToBlack();
player.vx = 17;
player.vy = -22;
player.gotoAndStop("running");
player.body.gotoAndStop("jump");
}
if (gameEndingFrames > 0) {
gameEndingFrames++;
if (health > 0) {
if (gameEndingFrames == 15) {
baseClip.sOrb.start();
}
var _local7 = {ra:100, ga:100, ba:100, rb:2.5 * gameEndingFrames, gb:2.5 * gameEndingFrames, bb:2.5 * gameEndingFrames, aa:100, ab:0};
} else {
var _local7 = {ra:100 - gameEndingFrames, ga:100 - gameEndingFrames, ba:100 - gameEndingFrames, rb:0, gb:0, bb:0, aa:100, ab:0};
}
baseClip.objColour.setTransform(_local7);
if (gameEndingFrames >= 100) {
if (health <= 0) {
gotoAndStop ("gamelost");
} else {
gotoAndStop ("gamewon");
}
}
}
if ((superFrames > 0) && (gameEndingFrames == 0)) {
superFrames--;
var _local5 = 1 - (superFrames / maxSuperFrames);
var _local7 = {ra:150 - (50 * _local5), ga:30 + (70 * _local5), ba:30 + (70 * _local5), rb:0, gb:0, bb:0, aa:100, ab:0};
baseClip.objColour.setTransform(_local7);
if (superFrames == 0) {
baseClip.objColour.setTransform(baseClip.normalColour);
}
}
if (Math.randomInt(0, 99) < 2) {
if (baseClip.eddie.frame == "standby") {
switch (Math.randomInt(0, 3)) {
case 0 :
baseClip.eddie.gotoAndStop("left");
break;
case 1 :
baseClip.eddie.gotoAndStop("right");
break;
case 2 :
baseClip.eddie.gotoAndStop("rage");
break;
case 3 :
baseClip.eddie.gotoAndStop("intro");
}
}
}
if (gameEndingFrames == 0) {
if (Key.isDown(Key.CursorLeft) && (player.isAlive)) {
player.vx = player.vx - playerSpeed;
}
if (Key.isDown(Key.CursorRight) && (player.isAlive)) {
player.vx = player.vx + playerSpeed;
}
player.vx = player.vx * 0.71;
}
if (player.isAlive && (gameEndingFrames == 0)) {
if (player._x < playerMinX) {
player._x = playerMinX;
}
if (player._x > playerMaxX) {
player._x = playerMaxX;
}
if (player._y > (Stage.height + 50)) {
causeHarm(5);
}
}
if (Key.isDown(Key.CursorUp) && (player.isAlive)) {
var _local6 = false;
if (player.state == "standing") {
_local6 = true;
player.upReleased = false;
} else if (((player.state == "falling") && (player.secondJumpAvailable)) && (player.upReleased)) {
_local6 = true;
player.secondJumpAvailable = false;
}
if (_local6) {
player.vy = -15;
player.state = "falling";
if (player.inPain == false) {
player.gotoAndStop("running");
player.body.gotoAndStop("jump");
}
}
} else {
player.upReleased = true;
}
if (Key.isDown(Key.CursorDown) && (player.isAlive)) {
if (player.ammo < ammoPerClip) {
reloadAmmo();
}
}
if (player.isReloading > 0) {
player.isReloading--;
if (player.isReloading == 0) {
player.ammo = ammoPerClip;
}
displayAmmo();
}
if ((player.isAlive == false) && ((player._y > (Stage.height + 50)) || (player.state == "standing"))) {
player.gotoAndStop("death");
player.state = "dying";
}
switch (player.state) {
case "falling" :
aimArmAtMouse();
player.vy = player.vy + objProjectiles.gravity;
break;
case "standing" :
aimArmAtMouse();
break;
case "dying" :
player.vx = -2;
break;
default :
trace(("State '" + player.state) + "' not implimented");
}
player._y = player._y + player.vy;
player._x = player._x + player.vx;
var _local3 = {x:0, y:0};
player.foot.localToGlobal(_local3);
if (player.state != "dying") {
if (baseClip.enemyHolderGroundHit.hitTest(_local3.x, _local3.y, true)) {
var _local4 = 0;
while (baseClip.enemyHolderGroundHit.hitTest(_local3.x, (_local3.y - _local4) - 1, true)) {
_local4++;
}
player._y = player._y - _local4;
player.vy = 0;
player.state = "standing";
if (player.inPain == false) {
player.gotoAndStop("running");
player.body.play();
}
player.secondJumpAvailable = true;
} else {
player.state = "falling";
if (player.inPain == false) {
player.gotoAndStop("running");
player.body.gotoAndStop("jump");
}
}
}
if ((Mouse.isDown() && (!player.inPain)) && (player.isAlive)) {
if ((player.ammo > 0) && (player.isReloading == 0)) {
gunFiring();
player.firing = true;
} else if (player.firing == true) {
baseClip.sGunEmpty.start();
player.firing = false;
}
} else {
if (player.ammo == 0) {
reloadAmmo();
}
player.firing = false;
}
if (frame == level.timeline[nextTimelineElement].frame) {
var _local2 = level.timeline[nextTimelineElement].enemies;
var _local1 = 0;
while (_local1 < _local2.length) {
generateEnemy(_local2[_local1].type, baseClip["enemyHolder" + _local2[_local1].holder], _local2[_local1].x, _local2[_local1].y, _local2[_local1].scale, _local2[_local1].properties);
_local1++;
}
nextTimelineElement++;
if (level.timeline[nextTimelineElement] == undefined) {
trace("No more enemies");
levelEnding = true;
return(undefined);
}
}
}
function aimArmAtMouse() {
if ((player.inPain == false) && (player.isAlive)) {
var _local4 = {x:0, y:0};
player.gun.localToGlobal(_local4);
var _local6 = Math.atan2(_root._ymouse - _local4.y, _root._xmouse - _local4.x);
var _local7 = Math.radToDeg(_local6);
var _local2 = _local7;
if (_local2 > maxArmAngle) {
_local2 = maxArmAngle;
}
if (_local2 < minArmAngle) {
_local2 = minArmAngle;
}
var _local8 = Math.degToRad(_local2);
player.gun._rotation = _local2;
var _local5 = {x:0, y:0};
player.body.head.localToGlobal(_local5);
_local6 = Math.atan2(_root._ymouse - _local5.y, _root._xmouse - _local5.x);
_local7 = Math.radToDeg(_local6);
var _local3 = _local7 / 2;
if (_local3 > maxHeadAngle) {
_local3 = maxHeadAngle;
}
if (_local3 < minHeadAngle) {
_local3 = minHeadAngle;
}
var _local9 = Math.degToRad(_local3);
player.body.head._rotation = _local3;
}
}
function reloadAmmo() {
if (player.isReloading > 0) {
return(undefined);
}
baseClip.sGunReload.start();
player.isReloading = 15;
}
function playerHit(p) {
if (player.inPain == false) {
placeHitMarker(p);
causeHarm(5);
if (player.isAlive) {
player.inPain = true;
player.gotoAndStop("hurt");
}
}
}
function causeHarm(painLevel) {
health = health - painLevel;
if (health <= 0) {
health = 0;
player.isAlive = false;
}
if (health > 100) {
addToScore(health - 100);
health = 100;
}
_root.main.healthMeter.healthMask._y = _root.main.healthMeter.healthMask.origY + ((1 - (health / maxHealth)) * _root.main.healthMeter.healthMask._height);
}
function finishedReeling() {
player.inPain = false;
switch (player.state) {
case "falling" :
player.gotoAndStop("running");
player.body.gotoAndStop("jump");
return;
case "standing" :
player.gotoAndStop("running");
}
}
function updateScoreDisplay() {
var _local2 = Math.floor((score % 10) / 1);
var _local5 = Math.floor((score % 100) / 10);
var _local3 = Math.floor((score % 1000) / 100);
var _local6 = Math.floor((score % 10000) / 1000);
var _local4 = Math.floor((score % 100000) / 10000);
scoreAdjust(scoreClip.s1, _local2);
scoreAdjust(scoreClip.s10, _local5);
scoreAdjust(scoreClip.s100, _local3);
scoreAdjust(scoreClip.s1000, _local6);
scoreAdjust(scoreClip.s10000, _local4);
_root.textScore = (((("" + _local4) + _local6) + _local3) + _local5) + _local2;
_root.numericScore = score;
}
function scoreAdjust(clip, units) {
var _local1 = 28;
var _local2 = _local1 * 10;
if (clip._y >= _local2) {
clip._y = clip._y - _local2;
}
clip.easeProperty(Math.easeInOutSine, ["_y"], [scoreClip.topOffset - (_local1 * units)], 5);
}
function addToScore(points) {
score = score + points;
updateScoreDisplay();
}
function fadeToBlack() {
if (gameEndingFrames == 0) {
gameEndingFrames = 1;
}
}
function eddieMoveAbout() {
this.dontKillEase = true;
switch (Math.randomInt(0, 3)) {
case 0 :
this.easeProperty(Math.linearTween, [], [], Math.randomInt(20, 90));
break;
case 1 :
this.easeProperty(Math.easeInOutExpo, ["_y"], [260 + Math.randomNum(-20, 10)], 30);
break;
case 2 :
this.easeProperty(Math.easeInOutExpo, ["_rotation"], [Math.randomNum(-15, 5)], 40);
break;
case 3 :
var _local2 = Math.randomInt(300, 650);
this.easeProperty(Math.easeInOutExpo, ["_x"], [_local2], Math.max(10, Math.ceil(Math.abs(_local2 - this._x) / 3)));
}
this.onEaseComplete = eddieMoveAbout;
}
function makeRubble() {
var _local3 = 0;
while (_local3 < 3) {
rubbleDepth++;
baseClip.rubbleHolder.attachMovie("rubble", "rubble" + rubbleDepth, rubbleDepth);
var _local2 = baseClip.rubbleHolder["rubble" + rubbleDepth];
_local2.vx = Math.randomNum(-6, 6);
_local2.vy = Math.randomNum(-5, -1);
_local2._x = baseClip.eddie._x + (_local2.vx * 5);
_local2._y = baseClip.eddie._y + (_local2.vy * 5);
_local2.vr = Math.randomNum(-3, 3);
_local2.gotoAndStop(Math.randomInt(1, 6));
_local2._xscale = (_local2._yscale = Math.randomNum(100, 300));
_local2._alpha = Math.randomNum(60, 80);
_local2.onEnterFrame = function () {
this._x = this._x + this.vx;
this._y = this._y + this.vy;
this._rotation = this._rotation + this.vr;
this.vy = this.vy + 0.2;
if (this._y > 700) {
this.removeMovieClip();
}
};
_local3++;
}
}
stop();
MovieClip.prototype.curvedRectangle = function (p_nX1, p_nY1, p_nX2, p_nY2, p_nR) {
var _local2 = ((p_nR == undefined) ? 0 : (p_nR));
var _local7 = _local2 * 2;
var _local10 = Math.abs(p_nX2 - p_nX1) - _local7;
var _local8 = Math.abs(p_nY2 - p_nY1) - _local7;
this.moveTo(p_nX1 + _local2, p_nY1);
this.lineTo(p_nX2 - _local2, p_nY1);
this.curveTo(p_nX2, p_nY1, p_nX2, p_nY1 + _local2);
this.lineTo(p_nX2, p_nY2 - _local2);
this.curveTo(p_nX2, p_nY2, p_nX2 - _local2, p_nY2);
this.lineTo(p_nX1 + _local2, p_nY2);
this.curveTo(p_nX1, p_nY2, p_nX1, p_nY2 - _local2);
this.lineTo(p_nX1, p_nY1 + _local2);
this.curveTo(p_nX1, p_nY1, p_nX1 + _local2, p_nY1);
};
MovieClip.prototype.drawSquare = function (x, y, w, h) {
this.moveTo(x, y);
this.lineTo(x + w, y);
this.lineTo(x + w, y + h);
this.lineTo(x, y + h);
this.lineTo(x, y);
};
MovieClip.prototype.drawFilledSquare = function (x, y, w, h, colour, alpha) {
this.beginFill(colour, alpha);
this.drawSquare(x, y, w, h);
this.endFill();
};
MovieClip.prototype.drawCircle = function (x, y, r) {
var _local6 = r * 0.414213562373095;
var _local5 = (r * 1.41421356237309) / 2;
this.moveTo(x + r, y);
this.curveTo(x + r, y + _local6, x + _local5, y + _local5);
this.curveTo(x + _local6, y + r, x, y + r);
this.curveTo(x - _local6, y + r, x - _local5, y + _local5);
this.curveTo(x - r, y + _local6, x - r, y);
this.curveTo(x - r, y - _local6, x - _local5, y - _local5);
this.curveTo(x - _local6, y - r, x, y - r);
this.curveTo(x + _local6, y - r, x + _local5, y - _local5);
this.curveTo(x + r, y - _local6, x + r, y);
};
MovieClip.prototype.drawFilledCircle = function (x, y, r, colour, alpha) {
this.beginFill(colour, alpha);
this.drawCircle(x, y, r);
this.endFill();
};
MovieClip.prototype.drawCircleSegment = function (x, y, r, startAngle, endAngle, stepAngle) {
degToRad = 0.0174532925199433 /* Math.PI/180 */;
while (endAngle < startAngle) {
endAngle = endAngle + 360;
}
this.moveTo(x, y);
this.lineTo(x + (r * Math.cos(startAngle * degToRad)), x + (r * Math.sin(startAngle * degToRad)));
var _local2 = startAngle + stepAngle;
while (_local2 < (endAngle - stepAngle)) {
var _local3 = _local2 * degToRad;
this.lineTo(x + (r * Math.cos(_local3)), x + (r * Math.sin(_local3)));
_local2 = _local2 + stepAngle;
}
this.lineTo(x + (r * Math.cos(endAngle * degToRad)), x + (r * Math.sin(endAngle * degToRad)));
this.lineTo(x, y);
};
MovieClip.prototype.drawFilledCircleSegment = function (x, y, r, startAngle, endAngle, stepAngle, colour, alpha) {
this.beginFill(colour, alpha);
this.drawCircleSegment(x, y, r, startAngle, endAngle, stepAngle);
this.endFill();
};
MovieClip.prototype.drawSmoothCurveThroughPoints = function (wibbleFactor, startAngle, points) {
this.moveTo(points[0].x, points[0].y);
var _local13 = points[0].x - Math.cos((Math.PI * startAngle) / 180);
var _local12 = points[0].y - Math.sin((Math.PI * startAngle) / 180);
var _local2 = 1;
while (_local2 < points.length) {
var _local5 = points[_local2 - 1].x - _local13;
var _local4 = points[_local2 - 1].y - _local12;
var _local8 = Math.vectorLength(_local5, _local4);
var _local10 = points[_local2 - 1].x - points[_local2].x;
var _local9 = points[_local2 - 1].y - points[_local2].y;
var _local11 = Math.vectorLength(_local10, _local9);
cScale = 0;
if (_local8 != 0) {
cScale = ((0.5 + wibbleFactor) * _local11) / _local8;
}
var _local7 = points[_local2 - 1].x + (_local5 * cScale);
var _local6 = points[_local2 - 1].y + (_local4 * cScale);
this.curveTo(_local7, _local6, points[_local2].x, points[_local2].y);
_local13 = _local7;
_local12 = _local6;
_local2++;
}
};
MovieClip.prototype.makeSound = function (soundLinkage, depth) {
var _local2 = this.createEmptyMovieClip((((("soundClip_" + soundLinkage) + "_") + depth) + "_") + Math.floor(Math.randomNum(1000000, 9000000)), depth);
_local2.sound = new Sound(_local2);
_local2.sound.attachSound(soundLinkage);
_local2.sound.sourceClip = _local2;
return(_local2.sound);
};
Key.LeftMouse = 1;
Key.CursorLeft = 37;
Key.CursorRight = 39;
Key.CursorUp = 38;
Key.CursorDown = 40;
Key.Backspace = 8;
Key.Tab = 9;
Key.Enter = 13;
Key.Shift = 16;
Key.Control = 17;
Key.Alt = 18;
Key.CapsLock = 20;
Key.Spacebar = 32;
Key.PageUp = 33;
Key.PageDown = 34;
Key.End = 35;
Key.Home = 36;
Key.PrintScr = 44;
Key.ScrollLock = 145;
Key.Pause = 19;
Key.Insert = 45;
Key.Delete = 46;
Key.NumLock = 144;
Key.Semicolon = 186;
Key.Equals = 187;
Key.Minus = 189;
Key.Slash = 191;
Key.Apostrophe = 192;
Key.BackTick = 223;
Key.BackSlash = 220;
Key.Hash = 222;
Key.Comma = 188;
Key.Period = 190;
Key.SquareOpen = 219;
Key.SquareClose = 221;
Key.F1 = 112;
Key.F2 = 113;
Key.F3 = 114;
Key.F4 = 115;
Key.F5 = 116;
Key.F6 = 117;
Key.F7 = 118;
Key.F8 = 119;
Key.F9 = 120;
Key.F10 = undefined;
Key.F11 = 122;
Key.F12 = 123;
Key.Num0 = 96;
Key.Num1 = 97;
Key.Num2 = 98;
Key.Num3 = 99;
Key.Num4 = 100;
Key.Num5 = 101;
Key.Num6 = 102;
Key.Num7 = 103;
Key.Num8 = 104;
Key.Num9 = 105;
Key.NumMultiply = 106;
Key.NumAdd = 107;
Key.NumEnter = 13;
Key.NumMinus = 109;
Key.NumPeriod = 110;
Key.NumDivide = 111;
Key.A = 65;
Key.B = 66;
Key.C = 67;
Key.D = 68;
Key.E = 69;
Key.F = 70;
Key.G = 71;
Key.H = 72;
Key.I = 73;
Key.J = 74;
Key.K = 75;
Key.L = 76;
Key.M = 77;
Key.N = 78;
Key.O = 79;
Key.P = 80;
Key.Q = 81;
Key.R = 82;
Key.S = 83;
Key.T = 84;
Key.U = 85;
Key.V = 86;
Key.W = 87;
Key.X = 88;
Key.Y = 89;
Key.Z = 90;
Key.Key0 = 48;
Key.Key1 = 49;
Key.Key2 = 50;
Key.Key3 = 51;
Key.Key4 = 52;
Key.Key5 = 53;
Key.Key6 = 54;
Key.Key7 = 55;
Key.Key8 = 56;
Key.Key9 = 57;
Math.randomNum = function (minNum, maxNum) {
return((Math.random() * (maxNum - minNum)) + minNum);
};
Math.randomInt = function (minNum, maxNum) {
return(Math.round((Math.random() * (maxNum - minNum)) + minNum));
};
Math.vectorLength = function (dx, dy) {
return(Math.sqrt((dx * dx) + (dy * dy)));
};
Math.distance = function (x1, y1, x2, y2) {
var _local2 = x1 - x2;
var _local1 = y1 - y2;
return(Math.vectorLength(_local2, _local1));
};
Math.angleBetween = function (x1, y1, x2, y2) {
var _local2 = (x1 * x2) + (y1 * y2);
var _local1 = Math.vectorLength(x1, y1) * Math.vectorLength(x2, y2);
return(Math.acos(_local2 / _local1));
};
Math.formatNum = function (num, leadingDigits, decimalDigits) {
var _local2 = "" + Math.floor(num);
while (_local2.length < leadingDigits) {
_local2 = "0" + _local2;
}
if (decimalDigits != undefined) {
var _local1 = Math.abs(num) - Math.floor(Math.abs(num));
_local1 = _local1 * (10 ^ decimalDigits);
_local1 = Math.floor(_local1);
_local1 = "" + _local1;
while (_local1.length < decimalDigits) {
_local1 = _local1 + "0";
}
_local2 = (_local2 + ".") + _local1;
}
return(_local2);
};
Math.degToRad = function (degs) {
return(degs * 0.0174532925);
};
Math.radToDeg = function (rads) {
return(rads * 57.2957795);
};
Mouse._down = false;
_root.createEmptyMovieClip("mouseListenerClip", 14873);
_root.mouseListenerClip.onMouseDown = function () {
Mouse._down = true;
};
_root.mouseListenerClip.onMouseUp = function () {
Mouse._down = false;
};
Mouse.isDown = function () {
return(this._down);
};
NPCSystem.prototype.stopSystem();
this.NPC_WorkerClip.removeMovieClip();
this.garbageCollect();
var j = 0;
while (j < this.hitZones.length) {
this.hitZones[j].owner.removeMovieClip();
j++;
}
this.garbageCollect();
NPCSystem.prototype.garbageCollect = function () {
var _local3 = this.hitZones.length;
var _local4 = this.NPCs.length;
var _local2 = 0;
while (_local2 < this.hitZones.length) {
if (!this.hitZones[_local2].owner._framesloaded) {
this.hitZones.splice(_local2, 1);
_local2--;
}
_local2++;
}
_local2 = 0;
while (_local2 < this.NPCs.length) {
if (!this.NPCs[_local2]._framesloaded) {
this.NPCs.splice(_local2, 1);
_local2--;
}
_local2++;
}
if (this.showMetrics) {
trace("Garbage collection report:");
trace(((" NPCs from " + _local4) + " to ") + this.NPCs.length);
trace(((" hitZones from " + _local3) + " to ") + this.hitZones.length);
trace("");
}
};
NPCSystem.prototype.registerHitZone = function (npcClip, hitClip, callback) {
var _local2 = {};
_local2.owner = npcClip;
_local2.hit = hitClip;
_local2.callback = callback;
_local2.objNPC = this;
_local2.hit._visible = false;
this.hitZones.push(_local2);
};
NPCSystem.prototype.registerNPC = function (npcClip) {
this.NPCs.push(npcClip);
npcClip.objNPC = this;
};
NPCSystem.prototype.testHit = function (x, y, bulletForce) {
var _local2 = 0;
while (_local2 < this.hitZones.length) {
if (this.hitZones[_local2].hit.hitTest(x, y, true)) {
this.hitZones[_local2].callback(this.hitZones[_local2], {x:x, y:y}, bulletForce);
return(true);
}
_local2++;
}
return(false);
};
ProjectileSystem.prototype.stopSystem();
this.Projectile_WorkerClip.removeMovieClip();
this.garbageCollect();
var j = 0;
while (j < this.projectiles.length) {
this.projectiles[j].removeMovieClip();
j++;
}
this.garbageCollect();
ProjectileSystem.prototype.garbageCollect = function () {
var _local3 = this.projectiles.length;
var _local2 = 0;
while (_local2 < this.projectiles.length) {
if (!this.projectiles[_local2]._framesloaded) {
this.projectiles.splice(_local2, 1);
_local2--;
}
_local2++;
}
if (this.showMetrics) {
trace("Projectile garbage collection report:");
trace(((" Projectiles from " + _local3) + " to ") + this.projectiles.length);
trace("");
}
};
ProjectileSystem.prototype.registerProjectile = function (projectileClip) {
this.projectiles.push(projectileClip);
projectileClip.prevX = projectileClip._x;
projectileClip.prevY = projectileClip._y;
if (projectileClip.force == undefined) {
projectileClip.force = 10;
}
};
ProjectileSystem.prototype.frameLoop = function () {
var _local4 = 0;
while (_local4 < this.projectiles.length) {
var _local2 = this.projectiles[_local4];
_local2.onStep();
if (_local2.isAffectedByGravity) {
_local2.vy = _local2.vy + this.gravity;
}
_local2._x = _local2._x + _local2.vx;
_local2._y = _local2._y + _local2.vy;
_local2.prevX = _local2._x;
_local2.prevY = _local2._y;
p = {x:0, y:0};
_local2.localToGlobal(p);
if ((((_local2._x > (Stage.width + this.screenExcess)) || (_local2._y > (Stage.height + this.screenExcess))) || (_local2._y < (-this.screenExcess))) || (_local2._x < (-this.screenExcess))) {
_local2.offScreenCallback();
_local2.removeMovieClip();
}
_local4++;
}
if (this.objNPC != undefined) {
_local4 = 0;
while (_local4 < this.projectiles.length) {
var _local2 = this.projectiles[_local4];
if (_local2.doesDamage) {
var _local3 = 0;
while (_local3 < _local2.hitClips.length) {
var p = {x:0, y:0};
_local2.hitClips[_local3].localToGlobal(p);
_local2.hitSomething = this.objNPC.testHit(p.x, p.y, _local2.force);
if (_local2.hitSomething) {
_local2.hitCallback(p);
}
_local3++;
}
}
_local4++;
}
}
};
System.security.lordPolicyFile("http://www.hyperlaunch.com/highscoreservice/crossdomain.php");
HighscoreService.prototype.traceHighscores = function () {
if (!_level0._highscoreServiceLoaded) {
trace("Warning: Score submission service has not finished loading yet");
}
if (!this.scoresLoaded) {
trace("Highscore table has not loaded yet");
return(undefined);
}
var _local6 = this.objXML.getNodeSiblingCount("highscores", "score");
var _local2 = 0;
while (_local2 < _local6) {
var _local3 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "rank");
var _local5 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "score");
var _local4 = this.objXML.getNodeValue(("highscores/score[" + _local2) + "]");
trace((((_local3 + ": ") + _local4) + " => ") + _local5);
_local2++;
}
};
HighscoreService.prototype.displayHighscores = function (displayClip, depth, elementLinkage, elementSpacing) {
this.displayClip = displayClip;
this.depth = depth;
this.elementLinkage = elementLinkage;
this.elementSpacing = elementSpacing;
this.displayDetailsSaved = true;
this._displayScores();
};
HighscoreService.prototype.submitScore = function (name, score, extraInfo) {
if (!_level0._highscoreServiceLoaded) {
trace("Cannot submit score as score submission service has not finished loading yet");
return(undefined);
}
_level19356.submitScore(this, name, score, extraInfo);
};
HighscoreService.prototype._displayScores = function () {
if (!this.displayDetailsSaved) {
trace("Attempted to display scores with no display details in highscore object");
return(undefined);
}
var _local6 = this.displayClip.createEmptyMovieClip("_highscoreClip", this.depth);
var _local7 = this.objXML.getNodeSiblingCount("highscores", "score");
var _local2 = 0;
while (_local2 < _local7) {
var _local3 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "rank");
var _local5 = this.objXML.getNodeAttribute(("highscores/score[" + _local2) + "]", "score");
var _local4 = this.objXML.getNodeValue(("highscores/score[" + _local2) + "]");
_local6.attachMovie(this.elementLinkage, "scoreElement" + _local2, _local2);
element = _local6["scoreElement" + _local2];
element._x = 0;
element._y = _local2 * this.elementSpacing;
element.txtRank.text = _local3;
element.txtName.text = _local4;
element.txtScore.text = _local5;
_local2++;
}
};
XML.prototype.getNodeValue = function (strPath) {
var _local2 = this.findNode(strPath);
if (_local2 == undefined) {
return(undefined);
}
if (_local2.firstChild.nodeType != 3) {
return(undefined);
}
return(_local2.firstChild.nodeValue);
};
XML.prototype.getNodeAttribute = function (strPath, strAttribute) {
var _local2 = this.findNode(strPath);
if (_local2 == undefined) {
return(undefined);
}
return(_local2.attributes[strAttribute]);
};
XML.prototype.getNodeSiblingCount = function (strPath, strSiblingName) {
var _local3 = this.findNode(strPath);
if (_local3 == undefined) {
return(undefined);
}
var _local4 = 0;
var _local2 = 0;
while (_local2 < _local3.childNodes.length) {
if (_local3.childNodes[_local2].nodeName.toLowerCase() == strSiblingName.toLowerCase()) {
_local4++;
}
_local2++;
}
return(_local4);
};
XML.prototype.findNode = function (strPath) {
var _local4 = this;
var _local11 = strPath.toLowerCase().split("/");
var _local9 = 0;
while (_local9 < _local11.length) {
var _local8 = 0;
var _local3 = _local11[_local9];
var _local7 = _local3.indexOf("[");
if (_local7 != -1) {
var _local10 = _local3.slice(_local7 + 1, _local3.length - 1);
_local8 = Number(_local10);
_local3 = _local3.slice(0, _local7);
}
var _local5;
var _local6 = 0;
var _local2 = 0;
while (_local2 < _local4.childNodes.length) {
if (_local4.childNodes[_local2].nodeName.toLowerCase() == _local3) {
if (_local6 == _local8) {
_local5 = _local2;
_local2 = _local4.childNodes.length;
} else {
_local6++;
}
}
_local2++;
}
if (_local5 == undefined) {
return(undefined);
}
_local4 = _local4.childNodes[_local5];
_local9++;
}
return(_local4);
};
MovieClip.prototype.easeProperty = function (p_oEaseFunc, p_oProperties, p_oDestinations, p_nFrames, p_nTweak1, p_nTweak2) {
var m_nFrames = ((p_nFrames != undefined) ? (p_nFrames) : 30);
var m_nDelay = ((p_nDelay != undefined) ? (p_nDelay) : 0);
if (this._easePropertyObj) {
this._easePropertyObj.removeMovieClip();
}
var _local6 = this.createEmptyMovieClip("_easePropertyObj", this.getNextHighestDepth());
if (typeof(p_oProperties) == "string") {
if (p_oProperties.indexOf(",") != -1) {
p_oProperties = p_oProperties.split(",");
} else {
p_oProperties = [p_oProperties];
}
}
if (typeof(p_oDestinations) == "string") {
if (p_oProperties.indexOf(",") != -1) {
p_oProperties = p_oProperties.split(",");
} else {
p_oProperties = [p_oProperties];
}
} else if (typeof(p_oDestinations) == "number") {
p_oDestinations = [p_oDestinations];
}
var _local5 = p_oProperties;
var _local8 = p_oDestinations;
var m_oSelf = this;
_local6.oEaseFunc = ((typeof(p_oEaseFunc) == "string") ? (Math[p_oEaseFunc]) : (p_oEaseFunc));
_local6.nFrame = 0;
_local6.aProps = new Array();
_local6.nDelay = p_nDelay;
var _local3 = 0;
while (_local3 < _local5.length) {
var _local2 = new Object();
_local2.tag = _local5[_local3];
_local2.startVal = this[_local2.tag];
_local2.endVal = _local8[_local3];
_local2.distance = _local2.endVal - _local2.startVal;
_local6.aProps[_local3] = _local2;
_local3++;
}
_local6.onEnterFrame = function () {
if (m_nDelay != 0) {
m_nDelay--;
} else {
var _local2 = 0;
while (_local2 < this.aProps.length) {
var _local3 = this.aProps[_local2];
m_oSelf[_local3.tag] = p_oEaseFunc(this.nFrame, _local3.startVal, _local3.distance, m_nFrames, p_nTweak1, p_nTweak2);
_local2++;
}
this.nFrame++;
if (this.nFrame == m_nFrames) {
_local2 = 0;
while (_local2 < this.aProps.length) {
var _local3 = this.aProps[_local2];
m_oSelf[_local3.tag] = _local3.endVal;
_local2++;
}
if (m_oSelf.onEaseComplete) {
m_oSelf.onEaseComplete();
}
if (m_oSelf.dontKillEase != true) {
this.removeMovieClip();
}
} else if (m_oSelf.onEaseStep) {
m_oSelf.onEaseStep(this.nFrame);
}
}
};
};
MovieClip.prototype.easeToPoint = function (easeFunc, destX, destY, frames, delay) {
if (!frames) {
frames = 30;
}
if (!delay) {
delay = 0;
}
this.startX = this._x;
this.startY = this._y;
this.destX = destX;
this.destY = destY;
this.dx = this.destX - this.startX;
this.dy = this.destY - this.startY;
this.delay = delay;
this.frames = frames;
this.easeFunc = easeFunc;
this.frame = 0;
this.onEnterFrame = function () {
if (this.delay != 0) {
this.delay--;
} else {
this._x = this.easeFunc(this.frame, this.startX, this.dx, this.frames);
this._y = this.easeFunc(this.frame, this.startY, this.dy, this.frames);
this.frame++;
if (this.frame == this.frames) {
this._x = this.destX;
this._y = this.destY;
this.onEnterFrame = undefined;
}
}
};
};
Math.linearTween = function (t, b, c, d) {
return(((c * t) / d) + b);
};
Math.easeInQuad = function (t, b, c, d) {
return((((c * t) * t) / (d * d)) + b);
};
Math.easeOutQuad = function (t, b, c, d) {
return((((((-c) * t) * t) / (d * d)) + (((2 * c) * t) / d)) + b);
};
Math.easeInOutQuad = function (t, b, c, d) {
if (t < (d / 2)) {
return(((((2 * c) * t) * t) / (d * d)) + b);
}
var _local2 = t - (d / 2);
return(((((((-2 * c) * _local2) * _local2) / (d * d)) + (((2 * c) * _local2) / d)) + (c / 2)) + b);
};
Math.easeInSine = function (t, b, c, d) {
return((((-c) * Math.cos(((t / d) * Math.PI) / 2)) + c) + b);
};
Math.easeOutSine = function (t, b, c, d) {
return((c * Math.sin(((t / d) * Math.PI) / 2)) + b);
};
Math.easeInOutSine = function (t, b, c, d) {
return((((-c) / 2) * (Math.cos((Math.PI * t) / d) - 1)) + b);
};
Math.easeInExpo = function (t, b, c, d) {
var _local1 = 1;
if (c < 0) {
_local1 = _local1 * -1;
c = c * -1;
}
return((_local1 * Math.exp((Math.log(c) / d) * t)) + b);
};
Math.easeOutExpo = function (t, b, c, d) {
var _local2 = 1;
if (c < 0) {
_local2 = _local2 * -1;
c = c * -1;
}
return((_local2 * (((-Math.exp(((-Math.log(c)) / d) * (t - d))) + c) + 1)) + b);
};
Math.easeInOutExpo = function (t, b, c, d) {
var _local2 = 1;
if (c < 0) {
_local2 = _local2 * -1;
c = c * -1;
}
if (t < (d / 2)) {
return((_local2 * Math.exp((Math.log(c / 2) / (d / 2)) * t)) + b);
}
return((_local2 * (((-Math.exp(((-2 * Math.log(c / 2)) / d) * (t - d))) + c) + 1)) + b);
};
Math.easeInElastic = function (t, b, c, d, a, p) {
a = ((a == undefined) ? 0.5 : (a));
p = ((p == undefined) ? 20 : (p));
if (t == 0) {
return(b);
}
t = t / d;
if (t == 1) {
return(b + c);
}
if (!p) {
p = d * 0.3;
}
if (a < Math.abs(c)) {
a = c;
var _local7 = p / 4;
} else {
var _local7 = (p / (Math.PI*2)) * Math.asin(c / a);
}
t = t - 1;
return((-((a * Math.pow(2, 10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p))) + b);
};
Math.easeOutElastic = function (t, b, c, d, a, p) {
a = ((a == undefined) ? 0.5 : (a));
p = ((p == undefined) ? 20 : (p));
if (t == 0) {
return(b);
}
t = t / d;
if (t == 1) {
return(b + c);
}
if (!p) {
p = d * 0.3;
}
if (a < Math.abs(c)) {
a = c;
var _local7 = p / 4;
} else {
var _local7 = (p / (Math.PI*2)) * Math.asin(c / a);
}
return((((a * Math.pow(2, -10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p)) + c) + b);
};
Math.easeInOutElastic = function (t, b, c, d, a, p) {
a = ((a == undefined) ? 0.5 : (a));
p = ((p == undefined) ? 20 : (p));
if (t == 0) {
return(b);
}
t = t / (d / 2);
if (t == 2) {
return(b + c);
}
if (!p) {
p = d * 0.45;
}
if (a < Math.abs(c)) {
a = c;
var _local7 = p / 4;
} else {
var _local7 = (p / (Math.PI*2)) * Math.asin(c / a);
}
if (t < 1) {
t = t - 1;
return((-0.5 * ((a * Math.pow(2, 10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p))) + b);
}
t = t - 1;
return(((((a * Math.pow(2, -10 * t)) * Math.sin((((t * d) - _local7) * (Math.PI*2)) / p)) * 0.5) + c) + b);
};
Math.easeInBack = function (t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
t = t / d;
return((((c * t) * t) * (((s + 1) * t) - s)) + b);
};
Math.easeOutBack = function (t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
t = (t / d) - 1;
return((c * (((t * t) * (((s + 1) * t) + s)) + 1)) + b);
};
Math.easeInOutBack = function (t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
t = t / (d / 2);
if (t < 1) {
s = s * 1.525;
return(((c / 2) * ((t * t) * (((s + 1) * t) - s))) + b);
}
t = t - 2;
s = s * 1.525;
return(((c / 2) * (((t * t) * (((s + 1) * t) + s)) + 2)) + b);
};
Math.easeInBounce = function (t, b, c, d) {
return((c - Math.easeOutBounce(d - t, 0, c, d)) + b);
};
Math.easeOutBounce = function (t, b, c, d) {
t = t / d;
if (t < 0.363636363636364) {
return((c * ((7.5625 * t) * t)) + b);
}
if (t < 0.727272727272727) {
t = t - 0.545454545454545;
return((c * (((7.5625 * t) * t) + 0.75)) + b);
}
if (t < 0.909090909090909) {
t = t - 0.818181818181818;
return((c * (((7.5625 * t) * t) + 0.9375)) + b);
}
t = t - 0.954545454545455;
return((c * (((7.5625 * t) * t) + 0.984375)) + b);
};
Math.easeInOutBounce = function (t, b, c, d) {
if (t < (d / 2)) {
return((Math.easeInBounce(t * 2, 0, c, d) * 0.5) + b);
}
return(((Math.easeOutBounce((t * 2) - d, 0, c, d) * 0.5) + (c * 0.5)) + b);
};
var pathSmoothWave = [{x:875.2, y:286.05}, {x:845.2, y:272.05}, {x:809.2, y:261.05}, {x:767.2, y:254.05}, {x:712.15, y:254.05}, {x:652.15, y:256.05}, {x:594.15, y:259.05}, {x:550.15, y:267.05}, {x:499.1, y:277.05}, {x:445.1, y:282.05}, {x:397.1, y:282.05}, {x:347.1, y:283.05}, {x:275.05, y:276.05}, {x:221.05, y:272.05}, {x:183.05, y:260.05}, {x:138.05, y:246.05}, {x:94, y:233.05}, {x:44, y:224.05}, {x:8, y:222.05}];
var pathDoubleBack = [{x:868.95, y:293}, {x:800.95, y:293}, {x:737.95, y:292}, {x:679.95, y:290}, {x:622.95, y:287}, {x:570.95, y:287}, {x:533.95, y:287}, {x:494.95, y:290}, {x:467.95, y:285}, {x:456.95, y:275}, {x:454.95, y:262}, {x:459.95, y:252}, {x:477.95, y:238}, {x:502.95, y:226}, {x:541.95, y:216}, {x:569.95, y:205}, {x:595.95, y:197}, {x:630.95, y:184}, {x:652.95, y:177}, {x:668.95, y:167}, {x:671.95, y:158}, {x:669.95, y:150}, {x:658.95, y:140}, {x:641.95, y:136}, {x:622.95, y:136}, {x:602.95, y:136}, {x:578.95, y:140}, {x:543.95, y:151}, {x:514.95, y:164}, {x:481.95, y:175}, {x:422.95, y:191}, {x:383, y:197}, {x:331, y:203}, {x:280, y:203}, {x:217, y:196}, {x:170, y:180}, {x:127, y:163}, {x:83, y:145}, {x:43, y:128}, {x:9, y:105}];
var pathDropIn = [{x:845.2, y:46}, {x:771.2, y:142.05}, {x:727.2, y:177.05}, {x:653.15, y:214.05}, {x:583.15, y:234.05}, {x:500.1, y:237.05}, {x:416.1, y:220.05}, {x:328.1, y:196.05}, {x:250.05, y:189.05}, {x:183.05, y:195.05}, {x:87, y:220.05}, {x:11, y:253.05}];
var pathDownCircle = [{x:662.15, y:96}, {x:662.15, y:138.05}, {x:662.15, y:181.05}, {x:661.15, y:228.05}, {x:655.15, y:251.05}, {x:650.15, y:269.05}, {x:656.15, y:281.05}, {x:667.15, y:283.05}, {x:679.15, y:283.05}, {x:688.15, y:277.05}, {x:694.15, y:264.05}, {x:698.15, y:249.05}, {x:693.15, y:241.05}, {x:681.15, y:239.05}, {x:665.15, y:240.05}, {x:653.15, y:247.05}, {x:645.15, y:259.05}, {x:644.15, y:269.05}, {x:646.15, y:277.05}, {x:655.15, y:281.05}, {x:669.15, y:283.05}, {x:686.15, y:284.05}, {x:694.15, y:275.05}, {x:701.15, y:262.05}, {x:702.15, y:249.05}, {x:698.15, y:239.05}, {x:683.15, y:236.05}, {x:669.15, y:236.05}, {x:654.15, y:237.05}, {x:646.15, y:244.05}, {x:640.15, y:254.05}, {x:640.15, y:265.05}, {x:640.15, y:272.05}, {x:649.15, y:282.05}, {x:659.15, y:283.05}, {x:674.15, y:283.05}, {x:684.15, y:279.05}, {x:691.15, y:268.05}, {x:697.15, y:253.05}, {x:697.15, y:243.05}, {x:688.15, y:235.05}, {x:679.15, y:234.05}, {x:667.15, y:234.05}, {x:655.15, y:234.05}, {x:647.15, y:236.05}, {x:629.15, y:236.05}, {x:612.15, y:228.05}, {x:596.15, y:212.05}, {x:582.15, y:198.05}, {x:560.15, y:177.05}, {x:534.15, y:153.05}, {x:503.1, y:127.05}, {x:472.1, y:106.05}, {x:419.1, y:78}, {x:348.1, y:54}, {x:273.05, y:30}];
var pathCircleRD = [{x:14, y:110.05}, {x:64, y:135.05}, {x:112.05, y:154.05}, {x:198.05, y:177.05}, {x:303.05, y:179.05}, {x:371.1, y:179.05}, {x:437.1, y:179.05}, {x:501.1, y:182.05}, {x:572.15, y:201.05}, {x:637.15, y:251.05}, {x:684.15, y:315.1}, {x:704.15, y:381.1}, {x:709.15, y:443.1}, {x:709.15, y:517.15}, {x:709.15, y:548.15}, {x:709.15, y:599.15}];
var pathCircleDL = [{x:741.2, y:46}, {x:744.2, y:96}, {x:744.2, y:161.05}, {x:746.2, y:224.05}, {x:735.2, y:278.05}, {x:709.15, y:331.1}, {x:669.15, y:371.1}, {x:614.15, y:424.1}, {x:558.15, y:454.1}, {x:462.1, y:470.1}, {x:386.1, y:474.1}, {x:328.1, y:474.1}, {x:258.05, y:459.1}, {x:204.05, y:447.1}, {x:134.05, y:440.1}, {x:53, y:433.1}, {x:23, y:433.1}];
var pathCircleLU = [{x:884.2, y:470.1}, {x:797.2, y:471.1}, {x:698.15, y:473.1}, {x:589.15, y:473.1}, {x:502.1, y:473.1}, {x:421.1, y:469.1}, {x:337.1, y:441.1}, {x:281.05, y:406.1}, {x:242.05, y:365.1}, {x:195.05, y:303.05}, {x:160.05, y:227.05}, {x:130.05, y:165.05}, {x:118.05, y:112.05}, {x:106.05, y:51}, {x:106.05, y:25}];
var pathCircleUR = [{x:172.05, y:594.15}, {x:172.05, y:536.15}, {x:167.05, y:471.1}, {x:166.05, y:409.1}, {x:166.05, y:343.1}, {x:184.05, y:292.05}, {x:223.05, y:247.05}, {x:278.05, y:207.05}, {x:337.1, y:180.05}, {x:407.1, y:170.05}, {x:483.1, y:166.05}, {x:555.15, y:166.05}, {x:644.15, y:167.05}, {x:717.2, y:167.05}, {x:802.2, y:168.05}, {x:880.2, y:164.05}];
var level = {maxFrames:4500, timeline:[{frame:1, enemies:[{type:"ground", x:800, y:350, properties:{gfxFrame:"vlong"}, holder:"Ground"}, {type:"ground", x:1666, y:350, properties:{gfxFrame:"vlong"}, holder:"Ground"}]}, {frame:30, enemies:[{type:"chopper", x:900, y:140, holder:"Front", properties:{speed:4, path:pathSmoothWave}}]}, {frame:180, enemies:[{type:"chopper", x:900, y:140, holder:"Front", properties:{speed:5, path:pathDoubleBack}}, {type:"spider", x:850, y:100, holder:"Front", properties:{vx:-3, gunDutyCycle:60, bulletSpeed:6}}]}, {frame:390, enemies:[{type:"chopper", x:700, y:0, holder:"Front", properties:{speed:3, path:pathDropIn}}, {type:"chopper", x:600, y:0, holder:"Front", properties:{speed:3.2, path:pathDropIn}}, {type:"chopper", x:500, y:0, holder:"Front", properties:{speed:3.4, path:pathDropIn}}]}, {frame:420, enemies:[{type:"ground", x:979, y:349, properties:{gfxFrame:"stepsUp"}, holder:"Ground"}, {type:"ground", x:1278, y:307, properties:{gfxFrame:"long"}, holder:"Ground"}, {type:"ground", x:2236, y:370, properties:{gfxFrame:"vlong"}, holder:"Ground"}, {type:"ground", x:2236, y:370, properties:{gfxFrame:"vlong"}, holder:"Ground"}]}, {frame:510, enemies:[{type:"spider", x:-30, y:150, holder:"Front", properties:{vx:4, gunDutyCycle:60, bulletSpeed:6}}]}, {frame:720, enemies:[{type:"chopper", x:700, y:-30, holder:"Front", properties:{speed:3.2, path:pathDownCircle}}, {type:"chopper", x:550, y:-20, holder:"Front", properties:{speed:3.4, path:pathDownCircle}}, {type:"chopper", x:400, y:-10, holder:"Front", properties:{speed:3.6, path:pathDownCircle}}]}, {frame:780, enemies:[{type:"spider", x:-30, y:150, holder:"Front", properties:{vx:4, gunDutyCycle:30, bulletSpeed:7}}, {type:"spider", x:850, y:100, holder:"Front", properties:{vx:-2, gunDutyCycle:35, bulletSpeed:7}}, {type:"snake", x:420, y:600, holder:"Front", properties:{vx:3, vy:-5}}]}, {frame:930, enemies:[{type:"snake", x:850, y:100, holder:"Front", properties:{vx:-7, vy:0.2}}, {type:"snake", x:850, y:150, holder:"Front", properties:{vx:-7.5, vy:0.6}}, {type:"snake", x:850, y:200, holder:"Front", properties:{vx:-8, vy:1}}]}, {frame:1050, enemies:[{type:"spider", x:200, y:-30, holder:"Front", properties:{vx:-2, gunDutyCycle:30, bulletSpeed:8}}, {type:"spider", x:350, y:-30, holder:"Front", properties:{vx:-2, gunDutyCycle:30, bulletSpeed:8}}, {type:"spider", x:500, y:-30, holder:"Front", properties:{vx:-2, gunDutyCycle:30, bulletSpeed:8}}, {type:"spider", x:650, y:-30, holder:"Front", properties:{vx:-2, gunDutyCycle:30, bulletSpeed:8}}, {type:"spider", x:800, y:-30, holder:"Front", properties:{vx:-2, gunDutyCycle:30, bulletSpeed:8}}]}, {frame:1110, enemies:[{type:"ground", x:1077, y:369, properties:{gfxFrame:"trapdoor"}, holder:"Ground"}, {type:"ground", x:1220, y:369, properties:{gfxFrame:"stepsUp"}, holder:"Ground"}, {type:"ground", x:1363, y:317, properties:{gfxFrame:"stepsUp"}, holder:"Ground"}, {type:"ground", x:1577, y:272, properties:{gfxFrame:"trapdoor"}, holder:"Ground"}, {type:"ground", x:1801, y:272, properties:{gfxFrame:"trapdoor"}, holder:"Ground"}, {type:"ground", x:2025, y:272, properties:{gfxFrame:"trapdoor"}, holder:"Ground"}, {type:"ground", x:2249, y:272, properties:{gfxFrame:"trapdoor"}, holder:"Ground"}]}, {frame:1140, enemies:[{type:"chopper", x:850, y:200, holder:"Front", properties:{speed:5, path:pathSmoothWave}}]}, {frame:1170, enemies:[{type:"chopper", x:850, y:200, holder:"Front", properties:{speed:5, path:pathSmoothWave}}]}, {frame:1200, enemies:[{type:"chopper", x:850, y:200, holder:"Front", properties:{speed:5, path:pathSmoothWave}}]}, {frame:1230, enemies:[{type:"chopper", x:850, y:200, holder:"Front", properties:{speed:5, path:pathSmoothWave}}]}, {frame:1260, enemies:[{type:"snake", x:-30, y:60, holder:"Front", properties:{vx:5, vy:0.2}}]}, {frame:1290, enemies:[{type:"snake", x:530, y:-30, holder:"Front", properties:{vx:-3, vy:6}}, {type:"snake", x:630, y:-30, holder:"Front", properties:{vx:-2, vy:6.5}}]}, {frame:1470, enemies:[{type:"snake", x:400, y:600, holder:"Front", properties:{vx:-0.3, vy:-6}}, {type:"snake", x:600, y:600, holder:"Front", properties:{vx:-0.3, vy:-5.5}}, {type:"snake", x:800, y:600, holder:"Front", properties:{vx:-0.3, vy:-5}}]}, {frame:1650, enemies:[{type:"snake", x:400, y:600, holder:"Front", properties:{vx:-0.3, vy:-6}}, {type:"snake", x:600, y:600, holder:"Front", properties:{vx:-0.3, vy:-5.5}}, {type:"snake", x:800, y:600, holder:"Front", properties:{vx:-0.3, vy:-5}}, {type:"spider", x:850, y:100, holder:"Front", properties:{vx:-1, gunDutyCycle:25, bulletSpeed:10}}, {type:"spider", x:-30, y:100, holder:"Front", properties:{vx:3, gunDutyCycle:26, bulletSpeed:10}}]}, {frame:1860, enemies:[{type:"snake", x:400, y:-20, holder:"Front", properties:{vx:-0.3, vy:6}}, {type:"snake", x:600, y:-20, holder:"Front", properties:{vx:-0.3, vy:5.5}}, {type:"snake", x:800, y:-20, holder:"Front", properties:{vx:-0.3, vy:5}}, {type:"spider", x:850, y:100, holder:"Front", properties:{vx:-1, gunDutyCycle:45, bulletSpeed:10}}, {type:"spider", x:-30, y:100, holder:"Front", properties:{vx:3, gunDutyCycle:46, bulletSpeed:10}}]}, {frame:1890, enemies:[{type:"ground", x:1100, y:370, properties:{gfxFrame:"short"}, holder:"Ground"}, {type:"ground", x:1300, y:300, properties:{gfxFrame:"short"}, holder:"Ground"}, {type:"ground", x:1500, y:230, properties:{gfxFrame:"short"}, holder:"Ground"}, {type:"ground", x:1700, y:160, properties:{gfxFrame:"short"}, holder:"Ground"}, {type:"ground", x:3000, y:360, properties:{gfxFrame:"vlong"}, holder:"Ground"}, {type:"ground", x:3950, y:320, properties:{gfxFrame:"vlong"}, holder:"Ground"}, {type:"ground", x:4900, y:370, properties:{gfxFrame:"vlong"}, holder:"Ground"}, {type:"ground", x:4200, y:150, properties:{gfxFrame:"short"}, holder:"Ground"}, {type:"ground", x:4450, y:150, properties:{gfxFrame:"short"}, holder:"Ground"}, {type:"ground", x:4700, y:150, properties:{gfxFrame:"short"}, holder:"Ground"}, {type:"ground", x:5950, y:370, properties:{gfxFrame:"vlong"}, holder:"Ground"}, {type:"ground", x:6816, y:370, properties:{gfxFrame:"vlong"}, holder:"Ground"}, {type:"ground", x:7850, y:370, properties:{gfxFrame:"vlong"}, holder:"Ground"}]}, {frame:2220, enemies:[{type:"chopper", x:-40, y:70, holder:"Front", properties:{speed:5, path:pathCircleRD}}, {type:"chopper", x:700, y:-30, holder:"Front", properties:{speed:5, path:pathCircleDL}}, {type:"chopper", x:850, y:400, holder:"Front", properties:{speed:5, path:pathCircleLU}}, {type:"chopper", x:150, y:600, holder:"Front", properties:{speed:5, path:pathCircleUR}}]}, {frame:2490, enemies:[{type:"snake", x:100, y:600, holder:"Front", properties:{vx:5, vy:-5}}, {type:"snake", x:100, y:600, holder:"Front", properties:{vx:7, vy:-4}}, {type:"snake", x:100, y:600, holder:"Front", properties:{vx:9, vy:-3}}]}, {frame:2850, enemies:[{type:"spider", x:350, y:-30, holder:"Front", properties:{vx:-3, gunDutyCycle:15, bulletSpeed:8}}, {type:"spider", x:400, y:-30, holder:"Front", properties:{vx:4, gunDutyCycle:15, bulletSpeed:8}}]}, {frame:2970, enemies:[{type:"spider", x:350, y:-30, holder:"Front", properties:{vx:-3, gunDutyCycle:15, bulletSpeed:8}}, {type:"spider", x:400, y:-30, holder:"Front", properties:{vx:4, gunDutyCycle:15, bulletSpeed:8}}]}, {frame:3090, enemies:[{type:"spider", x:350, y:-30, holder:"Front", properties:{vx:-3, gunDutyCycle:15, bulletSpeed:8}}, {type:"spider", x:400, y:-30, holder:"Front", properties:{vx:4, gunDutyCycle:15, bulletSpeed:8}}]}, {frame:3150, enemies:[{type:"chopper", x:700, y:0, holder:"Front", properties:{speed:3, path:pathDropIn}}, {type:"chopper", x:600, y:0, holder:"Front", properties:{speed:3.2, path:pathDropIn}}, {type:"chopper", x:500, y:0, holder:"Front", properties:{speed:3.4, path:pathDropIn}}]}, {frame:3300, enemies:[{type:"chopper", x:700, y:0, holder:"Front", properties:{speed:3, path:pathDropIn}}, {type:"chopper", x:600, y:0, holder:"Front", properties:{speed:3.2, path:pathDropIn}}, {type:"chopper", x:500, y:0, holder:"Front", properties:{speed:3.4, path:pathDropIn}}]}, {frame:3450, enemies:[{type:"chopper", x:700, y:0, holder:"Front", properties:{speed:3, path:pathDropIn}}, {type:"chopper", x:600, y:0, holder:"Front", properties:{speed:3.2, path:pathDropIn}}, {type:"chopper", x:500, y:0, holder:"Front", properties:{speed:3.4, path:pathDropIn}}]}, {frame:3750, enemies:[{type:"spider", x:200, y:-30, holder:"Front", properties:{vx:3, gunDutyCycle:60, bulletSpeed:8}}, {type:"spider", x:350, y:-30, holder:"Front", properties:{vx:-2, gunDutyCycle:65, bulletSpeed:8}}, {type:"spider", x:500, y:-30, holder:"Front", properties:{vx:4, gunDutyCycle:55, bulletSpeed:8}}, {type:"spider", x:650, y:-30, holder:"Front", properties:{vx:-3, gunDutyCycle:50, bulletSpeed:8}}, {type:"spider", x:800, y:-30, holder:"Front", properties:{vx:5, gunDutyCycle:70, bulletSpeed:8}}]}, {frame:3870, enemies:[{type:"spider", x:200, y:-30, holder:"Front", properties:{vx:-3, gunDutyCycle:60, bulletSpeed:8}}, {type:"spider", x:350, y:-30, holder:"Front", properties:{vx:2, gunDutyCycle:65, bulletSpeed:8}}, {type:"spider", x:500, y:-30, holder:"Front", properties:{vx:-4, gunDutyCycle:55, bulletSpeed:8}}, {type:"spider", x:650, y:-30, holder:"Front", properties:{vx:3, gunDutyCycle:50, bulletSpeed:8}}, {type:"spider", x:800, y:-30, holder:"Front", properties:{vx:-5, gunDutyCycle:70, bulletSpeed:8}}]}, {frame:4020, enemies:[{type:"chopper", x:700, y:0, holder:"Front", properties:{speed:3, path:pathDropIn}}, {type:"chopper", x:600, y:0, holder:"Front", properties:{speed:3.2, path:pathDropIn}}, {type:"chopper", x:500, y:0, holder:"Front", properties:{speed:3.4, path:pathDropIn}}]}, {frame:4170, enemies:[{type:"chopper", x:700, y:0, holder:"Front", properties:{speed:3, path:pathDropIn}}, {type:"chopper", x:600, y:0, holder:"Front", properties:{speed:3.2, path:pathDropIn}}, {type:"chopper", x:500, y:0, holder:"Front", properties:{speed:3.4, path:pathDropIn}}]}, {frame:4290, enemies:[{type:"spider", x:350, y:-30, holder:"Front", properties:{vx:4, gunDutyCycle:45, bulletSpeed:12}}, {type:"spider", x:650, y:-30, holder:"Front", properties:{vx:-3, gunDutyCycle:45, bulletSpeed:12}}]}, {frame:4350, enemies:[{type:"ground", x:1100, y:170, properties:{gfxFrame:"orb"}, holder:"Ground"}]}]};
_quality = "low";
var baseClip;
var objNPC;
var objProjectile;
var objBaddieProjectiles;
var depth;
var player;
var frame;
var nextTimelineElement;
var score;
var health;
var scoreClip;
var gameEndingFrames;
var rubbleDepth;
var playerSpeed = 4;
var playerMinX = 60;
var playerMaxX = 700;
var ammoPerClip = 30;
var groundHeight = 257;
var minArmAngle = -80;
var maxArmAngle = 80;
var minHeadAngle = -40;
var maxHeadAngle = 40;
var maxHealth = 100;
var superFrames = 0;
var mainGunSlowDutyCycle = 12;
var mainGunFastDutyCycle = 4;
var mainGunUltraDutyCycle = 2;
var diagonalGunSlowDutyCycle = 14;
var diagonalGunFastDutyCycle = 6;
var upDownGunSlowDutyCycle = 16;
var upDownGunFastDutyCycle = 8;
var behindGunSlowDutyCycle = 5;
var rocketGunSlowDutyCycle = 12;
var maxSuperFrames = 300;
var maxGunPower = 15;
initGame();
_level0.trackPoint("Game_Started");
Symbol 729 MovieClip Frame 132
gotoAndPlay(section);
Symbol 729 MovieClip Frame 137
stop();
_quality = "best";
if (packshotmc._currentframe != 11) {
packshotmc.gotoAndPlay("in");
}
_level0.trackPoint("Game_Won");
Symbol 729 MovieClip Frame 138
stop();
gamewon.gotoAndPlay("out");
Symbol 729 MovieClip Frame 142
gotoAndPlay(section);
Symbol 729 MovieClip Frame 146
stop();
_quality = "best";
_level0.trackPoint("Game_lost");
_root.sAmbience.stop();
Symbol 729 MovieClip Frame 147
stop();
gamelost.gotoAndPlay("out");
_level0.trackPoint("Game_Lost");
Symbol 729 MovieClip Frame 151
gotoAndPlay(section);