Frame 1
var MochiAd = {showPreloaderAd:function (options) {
var _local29 = {clip:_root, ad_msec:11000, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812};
options = MochiAd._parseOptions(options, _local29);
var _local15 = options.clip;
var _local25 = options.ad_msec;
delete options.ad_msec;
var _local28 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)) {
return(null);
}
_local15.stop();
var mc = _local15._mochiad;
mc.onUnload = function () {
this._parent.play();
};
var _local16 = MochiAd._getRes(options);
var _local5 = _local16[0];
var _local14 = _local16[1];
mc._x = _local5 * 0.5;
mc._y = _local14 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local5 * -0.5;
chk._y = _local14 * -0.5;
var _local8 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local8._x = 10;
_local8._y = _local14 - 20;
var _local24 = options.color;
delete options.color;
var _local21 = options.background;
delete options.background;
var _local26 = options.outline;
delete options.outline;
var _local6 = _local8.createEmptyMovieClip("_outline", 1);
_local6.beginFill(_local21);
_local6.moveTo(0, 0);
_local6.lineTo(_local5 - 20, 0);
_local6.lineTo(_local5 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
_local6.endFill();
var _local4 = _local8.createEmptyMovieClip("_inside", 2);
_local4.beginFill(_local24);
_local4.moveTo(0, 0);
_local4.lineTo(_local5 - 20, 0);
_local4.lineTo(_local5 - 20, 10);
_local4.lineTo(0, 10);
_local4.lineTo(0, 0);
_local4.endFill();
_local4._xscale = 0;
var _local7 = _local8.createEmptyMovieClip("_outline", 3);
_local7.lineStyle(0, _local26, 100);
_local7.moveTo(0, 0);
_local7.lineTo(_local5 - 20, 0);
_local7.lineTo(_local5 - 20, 10);
_local7.lineTo(0, 10);
_local7.lineTo(0, 0);
chk.ad_msec = _local25;
chk.ad_timeout = _local28;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}, showTimedAd:function (options) {
var _local15 = {clip:_root, ad_msec:11000, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd"};
options = MochiAd._parseOptions(options, _local15);
var _local6 = options.clip;
var _local12 = options.ad_msec;
delete options.ad_msec;
var _local14 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)) {
return(null);
}
_local6.stop();
var mc = _local6._mochiad;
mc.onUnload = function () {
this._parent.play();
};
var _local7 = MochiAd._getRes(options);
var _local16 = _local7[0];
var _local13 = _local7[1];
mc._x = _local16 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local12;
chk.ad_timeout = _local14;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}, load:function (options) {
var _local14 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, _local14);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = "1.3";
var _local7 = options.clip;
if (!MochiAd._isNetworkAvailable()) {
return(false);
}
if (_local7._mochiad_loaded) {
return(false);
}
var _local13 = options.depth;
delete options.depth;
var _local6 = _local7.createEmptyMovieClip("_mochiad", _local13);
var _local12 = MochiAd._getRes(options);
options.res = (_local12[0] + "x") + _local12[1];
options.server = options.server + options.id;
delete options.id;
_local7._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
if (_local7._url.indexOf("http") != 0) {
options.no_page = true;
}
var _local11 = _local4.server;
delete _local4.server;
var _local10 = _local11.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local10);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local10);
}
}
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local9 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local9;
_local5.hostname = _local10;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local9);
_local6.lc = _local5;
_local4.lc = _local9;
_local4.st = getTimer();
_local4.loadMovie(_local11 + ".swf", "POST");
return(_local6);
}, unload:function (clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}, _isNetworkAvailable:function () {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}, _getRes:function (options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}, _parseOptions:function (options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}};
MochiAd.showPreloaderAd({id:"2f4be8321e710af9", res:"399x488"});
Frame 2
function loadFin() {
gotoAndStop ("game");
}
loaderLights.onEnterFrame = function () {
var _local3 = this._parent.getBytesLoaded();
var _local2 = this._parent.getBytesTotal();
this.gotoAndStop(Math.ceil((11 / _local2) * _local3));
if ((_local2 > 0) && (_local2 == _local3)) {
this._parent.loadFin();
}
};
Stage.showMenu = false;
Stage.scaleMode = "noScale";
loadFin();
Frame 3
stop();
Frame 5
gotoAndStop (1);
Frame 34
function Point(x, y) {
this.x = x;
this.y = y;
}
function beginWipe() {
wipeOver._visible = true;
wipeOver.func = showStart;
wipeOver.gotoAndPlay(2);
delete startScreen.backButton.onRelease;
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lwhoosh");
_local1.start();
}
}
function firstThingWipe() {
wipeOver._visible = true;
wipeOver.func = firstThing;
wipeOver.gotoAndPlay(2);
delete startScreen.backButton.onRelease;
delete charStats.cont.onRelease;
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lwhoosh");
_local1.start();
}
}
function firstThing() {
showStart();
soundMC = this.createEmptyMovieClip("sMC", soundMCDepth);
if (musicOn) {
opening = new Sound(soundMC);
opening.attachSound("_startSound");
opening.start(0, 9999);
}
}
function showStart() {
startScreen.gotoAndStop("startScreen");
startScreen._visible = true;
charStats._visible = false;
shop._visible = false;
options._visible = false;
gameover._visible = false;
wipeOver._visible = false;
pnflashSplash._visible = false;
startScreen.startButton.onRelease = startWipe;
startScreen.controls.onRelease = controlsWipe;
startScreen.credits.onRelease = creditsWipe;
startScreen.options.onRelease = optionsWipe;
}
function startWipe() {
wipeOver._visible = true;
wipeOver.func = startGame;
wipeOver.gotoAndPlay(2);
delete startScreen.startButton.onRelease;
delete startScreen.controls.onRelease;
delete startScreen.credits.onRelease;
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lwhoosh");
_local1.start();
}
}
function creditsWipe() {
wipeOver._visible = true;
wipeOver.func = showCredits;
wipeOver.gotoAndPlay(2);
delete startScreen.startButton.onRelease;
delete startScreen.controls.onRelease;
delete startScreen.credits.onRelease;
delete startScreen.options.onRelease;
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lwhoosh");
_local1.start();
}
}
function showCredits() {
startScreen.gotoAndStop("creditsScreen");
startScreen.backButton.onRelease = beginWipe;
}
function controlsWipe() {
wipeOver._visible = true;
wipeOver.func = showControls;
wipeOver.gotoAndPlay(2);
delete startScreen.startButton.onRelease;
delete startScreen.controls.onRelease;
delete startScreen.credits.onRelease;
delete startScreen.options.onRelease;
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lwhoosh");
_local1.start();
}
}
function showControls() {
startScreen.gotoAndStop("controlsScreen");
startScreen.backButton.onRelease = beginWipe;
}
function optionsWipe() {
wipeOver._visible = true;
wipeOver.func = showOptions;
wipeOver.gotoAndPlay(2);
delete startScreen.startButton.onRelease;
delete startScreen.controls.onRelease;
delete startScreen.credits.onRelease;
delete startScreen.options.onRelease;
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lwhoosh");
_local1.start();
}
}
function showOptions() {
startScreen.gotoAndStop("optionsScreen");
startScreen.backButton.onRelease = beginWipe;
}
function pnflashWipe() {
wipeOver._visible = true;
wipeOver.func = showPnflash;
wipeOver.gotoAndPlay(2);
delete startScreen.backButton.onRelease;
delete charStats.cont.onRelease;
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lwhoosh");
_local1.start();
}
}
function showPnflash() {
charStats._visible = false;
pnflashSplash._visible = true;
pnflashSplash.cont.onRelease = firstThingWipe;
}
function startGame() {
opening.stop();
startScreen._visible = false;
crossHair._visible = true;
level = 1;
makeLevel(level);
row = Math.floor(Math.random() * sSize);
collumn = Math.floor(Math.random() * sSize);
inGame = true;
p = new Player();
var _local1 = {num:4};
var _local3 = new Room(level, row, collumn, true, _local1);
gui.options.onRelease = pauseGame;
canPause = true;
paused = false;
buildUpgradeBase();
}
function gameOver() {
pnconnector.storeScore(score);
crossHair._visible = false;
inGame = false;
delete theScreen.onEnterFrame;
gameover._visible = true;
gameover.gotoAndPlay(2);
var _local1 = 0;
while (_local1 < 5) {
delete gui["weaponButton" + _local1].onRelease;
_local1++;
}
delete gui.options.onRelease;
themeSounds[0].stop();
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound("_lgameover");
_local2.start();
}
}
function quitGame() {
options._visible = false;
gameOver();
}
function makeLevel(lev) {
roomsDone = 0;
sNum = 0;
sSize = 10;
mapRow = new Array();
var _local1 = 0;
while (_local1 < sSize) {
mapRow[_local1] = new Array();
_local1++;
}
maxSMobs = 3 + level;
maxMobs = 5 + level;
if (maxMobs > 10) {
maxMobs = 10;
}
soundSetup();
}
function pauseGame() {
if (canPause && (inGame)) {
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound("_lclick1");
_local2.start();
}
if (!paused) {
delete theScreen.onEnterFrame;
theScreen._visible = false;
paused = true;
options._visible = true;
var _local1 = 0;
while (_local1 < 5) {
delete gui["weaponButton" + _local1].onRelease;
_local1++;
}
Mouse.show();
} else {
removeMap();
paused = false;
options._visible = false;
charStats._visible = false;
theScreen._visible = true;
theScreen.onEnterFrame = detectKeys;
p.changeAmmo();
}
}
}
function finishExit() {
theScreen.removeMovieClip();
showShop();
}
function nextLevel() {
level++;
makeLevel(level);
var _local1 = {num:4};
row = Math.floor(Math.random() * sSize);
collumn = Math.floor(Math.random() * sSize);
var _local3 = new Room(level, row, collumn, true, _local1);
}
function populateStats() {
options._visible = false;
charStats.back._visible = true;
charStats.cont._visible = false;
charStats._visible = true;
var _local2 = 0;
while (score > pointsSpace[_local2]) {
_local2++;
}
if (_local2 >= names.length) {
_local2 = names.length - 1;
}
charStats.title.text = names[_local2];
charStats.lev.text = "Level - " + level;
charStats.mon.text = "Money - " + money;
charStats.points.text = "Points - " + score;
charStats.health.text = (("Health - " + p.hp) + "/") + p.maxhp;
charStats.arm.text = (("Armour - " + p.armour) + "/") + p.maxArmour;
charStats.speed.text = "Speed - " + (p.speedLevel + 1);
var _local1 = 0;
while (_local1 < 5) {
charStats["wLev" + _local1].text = p.weapons[_local1] + 1;
charStats["wAmmo" + _local1].text = p.ammo[_local1];
_local1++;
}
}
function Enemy() {
this.init(arguments);
}
function Zombie() {
this.hitSound = "_lhitSound1";
this.clipName = "Zombie";
this.givePowerUp = false;
this.rad = 11;
this.myFunction = headTowards;
this.hpFactor = 1;
this.hpBase = 8;
this.score = 10;
this.speed = 3;
this.stayDist = this.speed;
this.hitDamage = 5;
this.wussiness = 10;
this.shootTime = 99;
this.init(arguments[0], arguments[1], arguments[2], arguments[3]);
}
function Soldier() {
this.hitSound = "_lsoldierHit";
this.clipName = "Soldier";
this.givePowerUp = false;
this.rad = 11;
this.myFunction = headTowardsAndShoot;
this.hpFactor = 1;
this.hpBase = 5;
this.score = 12;
this.speed = 2;
this.stayDist = 60;
this.hitDamage = 4;
this.wussiness = 5;
this.shotType = [0];
this.shotPower = [5];
this.shootTime = 30;
this.shotFunc = singleAtPlayer;
this.init(arguments[0], arguments[1], arguments[2], arguments[3]);
}
function Demon() {
this.hitSound = "_lhitSound1";
this.clipName = "Zombie";
this.givePowerUp = false;
this.rad = 11;
this.myFunction = headTowardsAndShoot;
this.hpFactor = 2;
this.hpBase = 10;
this.score = 24;
this.speed = 2;
this.stayDist = this.speed;
this.hitDamage = 5;
this.wussiness = 10;
this.shotType = [0];
this.shotPower = [8];
this.shootTime = 60;
this.shotFunc = singleAtPlayer;
this.init(arguments[0], arguments[1], arguments[2], arguments[3]);
}
function Sludgeman() {
this.hitSound = "_lhitSound1";
this.clipName = "Sludgeman";
this.givePowerUp = false;
this.rad = 11;
this.myFunction = headTowardsAndShoot;
this.hpFactor = 3;
this.hpBase = 12;
this.score = 24;
this.speed = 1.5;
this.stayDist = this.speed;
this.hitDamage = 5;
this.wussiness = 10;
this.shotType = [2];
this.shotPower = [4];
this.shootTime = 50;
this.shotFunc = singleAtPlayer;
this.init(arguments[0], arguments[1], arguments[2], arguments[3]);
}
function Boss0() {
this.moveUp = true;
this.moveCount = 0;
this.hitSound = "_lclick1";
this.clipName = "Boss0";
this.givePowerUp = true;
this.rad = 25;
this.myFunction = boss0Move;
this.hpFactor = 20;
this.hpBase = 100;
this.score = 120;
this.speed = 2;
this.hitDamage = 8;
this.wussiness = 10;
this.shotType = [0, 3];
this.shotPower = [10, 40];
this.shootTime = 30;
this.shotFunc = [singleAtPlayer, rocketShot];
this.isBoss = true;
this.init(arguments[0], arguments[1], arguments[2], arguments[3]);
}
function Boss1() {
this.moveUp = true;
this.moveCount = 0;
this.hitSound = "_lhitSound1";
this.clipName = "Boss1";
this.givePowerUp = true;
this.rad = 25;
this.myFunction = boss1Move;
this.hpFactor = 20;
this.hpBase = 100;
this.score = 120;
this.speed = 2;
this.hitDamage = 8;
this.wussiness = 10;
this.shotType = [0, 3];
this.shotPower = [10, 40];
this.shootTime = 30;
this.shotFunc = [singleAtPlayer, rocketShot];
this.isBoss = true;
this.init(arguments[0], arguments[1], arguments[2], arguments[3]);
}
function walkTile(slow) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = slow;
this.initFunc = null;
this.freeTile = true;
}
function permWall(shootThrough) {
this.walkable = false;
this.shootThrough = shootThrough;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 0;
this.initFunc = null;
}
function walkDamageTile(dam, slow) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = null;
this.damage = dam;
this.shootFunction = null;
this.hp = 0;
this.efFunction = damagePlayer;
this.speedFactor = slow;
this.initFunc = null;
}
function destroyableTile(hp, destroyFunction, destroyedTile) {
this.walkable = false;
this.shootThrough = false;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = destroyable;
this.hp = hp;
this.efFunction = null;
this.speedFactor = 0;
this.destroyFunction = changeTile;
this.destroyedTile = destroyedTile;
this.initFunc = destructableSUp;
}
function laserFence(tileNum) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = null;
this.damage = 50;
this.shootFunction = null;
this.hp = 0;
this.efFunction = damagePlayer;
this.speedFactor = 0.5;
this.laserFence = true;
this.initFunc = null;
this.destroyedTile = tileNum;
this.destroyFunction = changeTile;
}
function laserFenceGenerator(destroyedTile) {
this.walkable = false;
this.shootThrough = false;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = destroyable;
this.hp = 10;
this.efFunction = null;
this.speedFactor = 0;
this.destroyFunction = destroyLaserFence;
this.destroyedTile = destroyedTile;
this.initFunc = laserFenceGenSetUp;
this.num = null;
}
function walkSwitch(num) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = toggleTiles;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 1;
this.destroyFunction = null;
this.initFunc = associateTiles;
this.num = num;
}
function switchTile(num, onTile, offTile) {
this.num = num;
this.onTile = onTile;
this.offTile = offTile;
this.state = "on";
var _local2 = tileDesc[onTile];
this.walkable = _local2.walkable;
this.shootThrough = _local2.shootThrough;
this.walkFunction = _local2.walkFunction;
this.damage = _local2.damage;
this.shootFunction = _local2.shootFunction;
this.hp = _local2.hp;
this.efFunction = _local2.efFunction;
this.speedFactor = _local2.speedFactor;
this.destroyFunction = null;
this.initFunc = switchedTiles;
}
function switchTile(num, onTile, offTile) {
this.num = num;
this.onTile = onTile;
this.offTile = offTile;
this.state = "on";
var _local2 = tileDesc[onTile];
this.walkable = _local2.walkable;
this.shootThrough = _local2.shootThrough;
this.walkFunction = _local2.walkFunction;
this.damage = _local2.damage;
this.shootFunction = _local2.shootFunction;
this.hp = _local2.hp;
this.efFunction = _local2.efFunction;
this.speedFactor = _local2.speedFactor;
this.destroyFunction = null;
this.initFunc = switchedTiles;
}
function monsterSpawners(monsterType, hp) {
this.walkable = false;
this.shootThrough = false;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = destroyable;
this.hp = hp;
this.efFunction = spawnMonsters;
this.speedFactor = 0;
this.destroyFunction = null;
this.initFunc = monsterSpawn;
this.num = monsterType;
this.monsterType = monsterTypes[monsterType];
this.spawnInterval = 60;
if (hp == 20) {
this.destroyedTile = 152;
} else {
this.destroyedTile = 143;
}
this.destroyFunction = destroyMonsterSpawner;
}
function tileWalkFunction(walkFunction, initFunction) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = walkFunction;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 1;
this.initFunc = initFunction;
}
function doorTile(walkFunction, num) {
this.onTile = num;
this.offTile = num + 10;
this.walkable = true;
this.shootThrough = true;
this.walkFunction = walkFunction;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 1;
this.initFunc = null;
}
function ccTile(num, statesArray, compFunction) {
this.num = num;
this.statesArray = statesArray;
this.walkable = true;
this.shootThrough = true;
this.walkFunction = cChange;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 1;
this.initFunc = cChangeInit;
this.compFunction = compFunction;
}
function specialSpawner(num) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 1;
this.destroyFunction = null;
this.destroyedTile = null;
this.initFunc = makeSpecial;
this.num = num;
}
function rBarrierTile(onTile, offTile) {
this.onTile = onTile;
this.offTile = offTile;
this.state = "on";
var _local2 = tileDesc[onTile];
this.walkable = _local2.walkable;
this.shootThrough = _local2.shootThrough;
this.walkFunction = _local2.walkFunction;
this.damage = _local2.damage;
this.shootFunction = _local2.shootFunction;
this.hp = _local2.hp;
this.efFunction = _local2.efFunction;
this.speedFactor = _local2.speedFactor;
this.destroyFunction = null;
this.initFunc = barrierAssoc;
}
function specialSpawner(num) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 1;
this.destroyFunction = null;
this.destroyedTile = null;
this.initFunc = makeSpecial;
this.num = num;
}
function bossSpawner(num) {
this.walkable = true;
this.shootThrough = true;
this.walkFunction = null;
this.damage = 0;
this.shootFunction = null;
this.hp = 0;
this.efFunction = null;
this.speedFactor = 1;
this.destroyFunction = null;
this.destroyedTile = null;
this.initFunc = spawnBoss;
this.num = num;
}
function Sprite() {
}
function getAngle(x1, y1, x2, y2) {
return(Math.atan2(y2 - y1, x2 - x1) / PiRads);
}
function getMyCorners(x, y, ob) {
downY = Math.floor(((y + ob.rad) - 1) / tileH);
upY = Math.floor((y - ob.rad) / tileH);
leftX = Math.floor((x - ob.rad) / tileW);
rightX = Math.floor(((x + ob.rad) - 1) / tileW);
ob.upleft = currentRoom.tiles[upY][leftX].walkable;
ob.downleft = currentRoom.tiles[downY][leftX].walkable;
ob.upright = currentRoom.tiles[upY][rightX].walkable;
ob.downright = currentRoom.tiles[downY][rightX].walkable;
}
function enemyBrain() {
if (count > 15) {
for (var _local1 in currentRoom.currentEnemies) {
currentRoom.currentEnemies[_local1].myFunction();
}
}
}
function moveBullets() {
for (var _local8 in currentRoom.bullets) {
var _local1 = currentRoom.bullets[_local8];
var _local5 = _local1.getTile();
if (_local5.shootThrough) {
_local1.mc._x = (_local1.x = _local1.x + _local1.dirx);
_local1.mc._y = (_local1.y = _local1.y + _local1.diry);
if (_local1.pShot) {
for (var _local7 in currentRoom.currentEnemies) {
var _local2 = currentRoom.currentEnemies[_local7];
var _local4 = _local1.x - _local2.x;
var _local3 = _local1.y - _local2.y;
if (Math.sqrt((_local4 * _local4) + (_local3 * _local3)) < _local2.rad) {
_local2.hurtMe(_local1.power);
if (!_local1.shootThrough) {
_local1.mc.gotoAndPlay("explode");
if (_local1.splashDamage) {
_local1.doSplashDamge();
}
if (sfxOn) {
var _local6 = new Sound();
_local6.attachSound(_local1.explodeSound);
_local6.start();
}
delete currentRoom.bullets[_local8];
}
}
}
} else {
var _local4 = _local1.x - p.x;
var _local3 = _local1.y - p.y;
if (Math.sqrt((_local4 * _local4) + (_local3 * _local3)) < p.rad) {
_local1.mc.gotoAndPlay("explode");
if (_local1.splashDamage) {
_local1.doSplashDamge();
}
p.hurtMe(_local1.power);
_local1.mc.gotoAndPlay("explode");
delete currentRoom.bullets[_local8];
}
}
} else {
_local1.mc.gotoAndPlay("explode");
if (_local1.splashDamage) {
_local1.doSplashDamge();
}
if (_local5.shootFunction != null) {
_local5.shootFunction(_local1.power);
}
if (sfxOn) {
var _local6 = new Sound();
_local6.attachSound(_local1.explodeSound);
_local6.start();
}
delete currentRoom.bullets[_local8];
}
}
for (var _local8 in currentRoom.mines) {
var _local1 = currentRoom.mines[_local8];
for (var _local7 in currentRoom.currentEnemies) {
var _local2 = currentRoom.currentEnemies[_local7];
var _local4 = _local1.x - _local2.x;
var _local3 = _local1.y - _local2.y;
if (Math.sqrt((_local4 * _local4) + (_local3 * _local3)) < (5 + _local2.rad)) {
_local1.mc.gotoAndPlay("explode");
if (_local1.splashDamage) {
_local1.doSplashDamge();
}
_local2.hurtMe(_local1.power);
_local1.mc.gotoAndPlay("explode");
delete currentRoom.mines[_local8];
}
}
}
}
function tileFunction() {
for (var _local1 in currentRoom.efTiles) {
currentRoom.efTiles[_local1].efFunction();
}
}
function detectKeys() {
var _local6 = p;
var _local5 = false;
var _local4 = p.getAngle(_xmouse - roomX, _ymouse - roomY);
p.mc._rotation = (p.angle = _local4 - 90);
var _local3 = 0;
var _local2 = 0;
if (Key.isDown(39) || (Key.isDown(68))) {
_local3++;
}
if (Key.isDown(37) || (Key.isDown(65))) {
_local3--;
}
if (Key.isDown(38) || (Key.isDown(87))) {
_local2--;
}
if (Key.isDown(40) || (Key.isDown(83))) {
_local2++;
}
if ((_local3 != 0) || (_local2 != 0)) {
p.moveChar(_local3, _local2);
p.mc.mc.walk.play();
_local5 = true;
} else {
p.mc.mc.walk.stop();
}
if ((_xmouse < (roomX + 375)) && (_ymouse < (roomY + 375))) {
Mouse.hide();
crossHair._x = _xmouse;
crossHair._y = _ymouse;
} else {
Mouse.show();
}
_root.enemyBrain();
_root.moveBullets();
_root.tileFunction();
count++;
}
function headTowards() {
if (this.free) {
var _local3 = 0;
var _local4 = 0;
var _local2 = this.speed;
if (this.gotoP) {
this.xTo = p.x;
this.yTo = p.y;
}
if (this.x < (this.xTo - _local2)) {
_local3 = 1;
} else if (this.x > (this.xTo + _local2)) {
_local3 = -1;
}
if (this.y < (this.yTo - _local2)) {
_local4 = 1;
} else if (this.y > (this.yTo + _local2)) {
_local4 = -1;
}
this.mc._rotation = this.moveChar(_local3, _local4);
if ((!this.moving) && (this.gotoP)) {
this.budgetPF(_local3, _local4);
}
if (!this.gotoP) {
if (((this.gotoCount++) > 20) || (this.currentTile == this.gotoTile)) {
this.gotoP = true;
}
}
}
}
function headTowardsAndShoot() {
if (this.free) {
if (!this.shooting) {
var _local3 = 0;
var _local4 = 0;
var _local2 = this.stayDist;
if (this.gotoP) {
this.xTo = p.x;
this.yTo = p.y;
}
if (this.x < (this.xTo - _local2)) {
_local3 = 1;
} else if (this.x > (this.xTo + _local2)) {
_local3 = -1;
}
if (this.y < (this.yTo - _local2)) {
_local4 = 1;
} else if (this.y > (this.yTo + _local2)) {
_local4 = -1;
}
this.mc._rotation = this.moveChar(_local3, _local4);
if ((!this.moving) && (this.gotoP)) {
this.budgetPF(_local3, _local4);
}
if (!this.gotoP) {
if (((this.gotoCount++) > 20) || (this.currentTile == this.gotoTile)) {
this.gotoP = true;
}
}
if ((this.shootCounter++) > this.shootTime) {
this.shootCounter = Math.floor(Math.random() * this.shootTime);
this.shotFunc();
this.mc._rotation = this.getAngle(p.x, p.y) + 90;
this.shooting = true;
this.shootWait = 0;
}
} else if ((this.shootWait++) > 10) {
this.shooting = false;
}
}
}
function boss0Move() {
if (this.free) {
if (!this.shooting) {
var _local3 = 0;
var _local2 = 0;
if (!this.moveUp) {
if (((this.moveCount--) < 0) || (this.y < (this.rad + 35))) {
this.moveUp = true;
this.moveCount = Math.random() * 40;
} else {
_local2 = -1;
}
} else if (((this.moveCount--) < 0) || (this.y > (340 - this.rad))) {
this.moveUp = false;
this.moveCount = Math.random() * 40;
} else {
_local2 = 1;
}
this.moveChar(_local3, _local2);
this.mc.mc.turret._rotation = this.getAngle(p.x, p.y) - 90;
if ((this.shootCounter++) > this.shootTime) {
this.mc.mc.turret.gotoAndPlay("shoot");
this.shootCounter = Math.floor(Math.random() * this.shootTime);
if (Math.random() > 0.2) {
this.doShot("atPlayer", 0);
} else {
this.doShot("atPlayer", 1);
}
this.shooting = true;
this.shootWait = 0;
}
} else if ((this.shootWait++) > 10) {
this.shooting = false;
}
}
}
function boss1Move() {
if (this.free) {
if (!this.shooting) {
var _local3 = 0;
var _local2 = 0;
if (!this.moveUp) {
if (((this.moveCount--) < 0) || (this.x < (this.rad + 35))) {
this.moveUp = true;
this.moveCount = Math.random() * 40;
} else {
_local3 = -1;
}
} else if (((this.moveCount--) < 0) || (this.x > (340 - this.rad))) {
this.moveUp = false;
this.moveCount = Math.random() * 40;
} else {
_local3 = 1;
}
this.moveChar(_local3, _local2);
this.mc.mc.turret._rotation = this.getAngle(p.x, p.y) - 90;
if ((this.shootCounter++) > this.shootTime) {
this.mc.mc.turret.gotoAndPlay("shoot");
this.shootCounter = Math.floor(Math.random() * this.shootTime);
if (Math.random() > 0.2) {
this.doShot("atPlayer", 0);
} else {
this.doShot("atPlayer", 1);
}
this.shooting = true;
this.shootWait = 0;
}
} else if ((this.shootWait++) > 10) {
this.shooting = false;
}
}
}
function specialEF() {
var _local7 = this.x - p.x;
var _local6 = this.y - p.y;
if (Math.sqrt((_local7 * _local7) + (_local6 * _local6)) < ((p.rad + this.rad) + 5)) {
if (this.deSpawned) {
currentRoom.spawnPU = false;
}
currentRoom.specialGot = true;
if (sfxOn) {
var _local4 = new Sound();
_local4.attachSound("_lscale");
_local4.start();
}
this.mc.gotoAndPlay("got");
var _local2 = theScreen.attachMovie("_linfo", "inf" + exNum, explosionsDepth + exNum);
_local2._x = this.x;
_local2._y = this.y;
if ((++exNum) > 50) {
exNum = 0;
}
switch (this.pType) {
case 0 :
var _local5 = 100 * level;
_local2.txt.txt0.htmlText = (_local2.txt.txt1.htmlText = "POINTS\n+" + _local5);
score = score + _local5;
break;
case 1 :
_local5 = 100 * level;
_local2.txt.txt0.htmlText = (_local2.txt.txt1.htmlText = "MONEY\n+$" + _local5);
money = money + _local5;
break;
case 2 :
_local2.txt.txt0.htmlText = (_local2.txt.txt1.htmlText = "HEALTH\nBONUS");
p.maxhp = p.maxhp + upgrades[0].increment;
if (p.maxhp > 99999) {
p.maxhp = 99999 /* 0x01869F */;
}
p.hp = p.maxhp;
upgrades[0].timesBought++;
p.doHealth();
break;
case 3 :
_local2.txt.txt0.htmlText = (_local2.txt.txt1.htmlText = "ARMOUR\nBONUS");
p.maxArmour = p.maxArmour + upgrades[1].increment;
if (p.maxArmour > 99999) {
p.maxArmour = 99999 /* 0x01869F */;
}
p.armour = p.maxArmour;
upgrades[1].timesBought++;
p.doArmour();
break;
case 4 :
_local2.txt.txt0.htmlText = (_local2.txt.txt1.htmlText = "SPEED\nUPGRADE");
if (upgrades[2].timesBought < 20) {
p.speedLevel = p.speedLevel + upgrades[2].increment;
p.speed = p.speed + p.speedInc;
upgrades[2].timesBought++;
}
break;
case 5 :
_local2.txt.txt0.htmlText = (_local2.txt.txt1.htmlText = "AMMO\nBONUS");
p.ammo[1] = p.ammo[1] + 200;
p.ammo[2] = p.ammo[2] + 200;
p.ammo[3] = p.ammo[3] + 85;
p.ammo[4] = p.ammo[4] + 50;
p.changeAmmo();
}
var _local3 = _local2.txt.txt0.textWidth / 2;
if ((_local2._x + _local3) > 370) {
_local2._x = 370 - _local3;
} else if ((_local2._x - _local3) < 5) {
_local2._x = 5 + _local3;
}
delete currentRoom.currentEnemies[this.num];
}
}
function rocketShot() {
this.doShot("atPlayer", 1);
}
function singleAtPlayer() {
this.doShot("atPlayer", 0);
}
function Shot(shotType, x, y, power, angle, pShot) {
var _local2 = shotBehaviours[shotType];
if (pShot) {
this.mc = theScreen.attachMovie("_l" + _local2.clipName, "shot" + n, shotDepth + n);
} else {
this.mc = theScreen.attachMovie("_l" + _local2.clipName, "shot" + n, shotDepth + n);
}
this.pShot = pShot;
this.id = "shot" + n;
n++;
currentRoom.bullets[this.id] = this;
this.shotType = shotType;
this.hittable = true;
this.mc._rotation = angle;
this.mc.myObject = this;
this.shootThrough = _local2.shootThrough;
this.splashDamage = _local2.splashDamage;
this.splashRadius = _local2.splashRadius;
this.explodeSound = _local2.explodeSound;
var _local3 = _local2.speed;
this.power = power;
this.dirx = _local3 * Math.cos(angle * PiRads);
this.diry = _local3 * Math.sin(angle * PiRads);
this.mc._x = (this.x = x + (_local2.startDist * this.dirx));
this.mc._y = (this.y = y + (_local2.startDist * this.diry));
if (shotType == 4) {
this.mc.swapDepths(minesDepth + (minesD++));
this.mc._rotation = 0;
if (minesD > 299) {
minesD = 0;
}
currentRoom.mines[this.id] = this;
} else {
currentRoom.bullets[this.id] = this;
}
}
function playerShoot() {
if ((count - p.lastShot) > p.cooldown) {
p.lastShot = count;
p.doShot();
}
}
function shotDescObj(power, angle) {
this.power = power;
this.angle = angle;
}
function sqrShotObj() {
this.soundN = "_lshotSound0";
this.explodeSound = "_lexplosion1";
this.startDist = 2;
this.cost = 100;
this.ammoCost = 10;
this.shootThrough = false;
this.coolDown = 1;
this.speed = 7;
this.clipName = "bullet";
this.splashDamage = false;
this.levels = new Array();
var _local2 = 0;
while (_local2 < 9) {
this.levels[_local2] = new Array();
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, -2));
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, 2));
_local2++;
}
_local2 = 9;
while (_local2 < 18) {
this.levels[_local2] = new Array();
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, -3));
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, 3));
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, 0));
_local2++;
}
_local2 = 18;
while (_local2 < 20) {
this.levels[_local2] = new Array();
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, -3));
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, 1));
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, -1));
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 9, 3));
_local2++;
}
}
function defShotObj() {
this.soundN = "_lshotSound0";
this.explodeSound = "_lexplosion1";
this.startDist = 2;
this.cost = 50;
this.shootThrough = false;
this.coolDown = 1;
this.speed = 8;
this.clipName = "bullet";
this.splashDamage = false;
this.levels = new Array();
var _local2 = 0;
while (_local2 < 20) {
this.levels[_local2] = new Array();
this.levels[_local2].push(new shotDescObj((_local2 * 5) + 9, 0));
_local2++;
}
}
function plasmaObj() {
this.soundN = "_lplasmaEx";
this.explodeSound = "_lphaser";
this.startDist = 2;
this.cost = 50;
this.shootThrough = true;
this.coolDown = 1;
this.speed = 7;
this.clipName = "plasma";
this.splashDamage = false;
this.levels = new Array();
var _local2 = 0;
while (_local2 < 20) {
this.levels[_local2] = new Array();
this.levels[_local2].push(new shotDescObj((_local2 * 4) + 6, 0));
_local2++;
}
}
function mineObj() {
this.soundN = "_lclick";
this.explodeSound = "_lexplosion0";
this.startDist = 2;
this.cost = 50;
this.ammoCost = 50;
this.shootThrough = false;
this.coolDown = 3;
this.speed = 0;
this.clipName = "mine";
this.splashDamage = true;
this.splashRadius = 65;
this.levels = new Array();
var _local2 = 0;
while (_local2 < 20) {
this.levels[_local2] = new Array();
this.levels[_local2].push(new shotDescObj((_local2 * 15) + 30, 0));
_local2++;
}
}
function missileObj() {
this.soundN = "_lshotSound3";
this.explodeSound = "_lexplosion0";
this.startDist = 5;
this.cost = 50;
this.ammoCost = 100;
this.shootThrough = false;
this.coolDown = 3;
this.speed = 7;
this.clipName = "missile";
this.splashDamage = true;
this.splashRadius = 40;
this.levels = new Array();
var _local2 = 0;
while (_local2 < 20) {
this.levels[_local2] = new Array();
this.levels[_local2].push(new shotDescObj((_local2 * 12) + 20, 0));
_local2++;
}
}
function nextWeapon() {
if (inGame && (canPause)) {
p.shotType++;
if (p.shotType > 4) {
p.shotType = 0;
}
while (p.ammo[p.shotType] <= 0) {
p.shotType++;
if (p.shotType > 4) {
p.shotType = 0;
}
}
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_lchangeWeapon");
_local1.start();
}
p.changeAmmo();
}
}
function chooseWeapon() {
p.shotType = this.num;
p.changeAmmo();
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound("_lchangeWeapon");
_local2.start();
}
}
function Player() {
this.width = 8;
this.height = 8;
this.rad = 9;
this.speed = 4;
this.speedLevel = 0;
this.speedInc = 0.1;
this.shotType = 0;
this.weaponLevel = 0;
this.cooldown = 1;
this.xDispl = 5;
this.yDispl = 8;
this.maxArmour = 89000 /* 0x015BA8 */;
this.armour = this.maxArmour;
this.maxhp = 89000 /* 0x015BA8 */;
this.hp = this.maxhp;
this.weapons = [0, 0, 0, 0, 0, 0, 0];
this.ammo = [999, 300, 300, 200, 500, 0, 0];
score = 15000;
money = 98000;
}
function Powerup(x, y, type) {
this.num = enemyD++;
currentRoom.currentEnemies[this.num] = this;
this.mc = theScreen.attachMovie("_lpowerup", "enemy" + num, enemyDepth + this.num);
this.mc.mc.gotoAndStop(type + 1);
this.pType = type;
this.mc.myObject = this;
this.xTile = x;
this.yTile = y;
this.powerup = true;
this.currentTile = currentRoom.tiles[y][x];
this.x = (this.xTile * tileW) + (tileW / 2);
this.y = (this.yTile * tileH) + (tileH / 2);
this.mc._x = this.x;
this.mc._y = this.y;
this.hittable = true;
this.rad = 3;
this.myFunction = specialEF;
}
function Room(lev, row, collumn, exitRoute, entryPoint) {
currentRoom = this;
this.init();
this.done = false;
this.specialGot = false;
this.barrierDone = false;
this.collumn = collumn;
this.row = row;
this.spawnDestroyed = [];
this.laserFencesDestroyed = [];
this.destroyablesStates = [];
this.enemiesKilled = [];
this.spawnedEnemies = [];
if (exitRoute) {
this.exitRoute = true;
}
this.mc.tc._visible = false;
mapRow[row][collumn] = this;
this.doors = [null, null, null, null, null];
var _local8 = level * 0.05;
if (_local8 > 0.2) {
_local8 = 0.2;
}
var _local7 = new Array();
if (this.exitRoute) {
var _local12 = 0.65 - _local8;
var _local13 = 0.85 - _local8;
var _local14 = 0.7 + _local8;
} else {
var _local12 = 0.85 - _local8;
var _local13 = 0.95 - _local8;
}
var _local6 = [false, false, false, false, false];
if (roomsDone == 0) {
var _local9 = [0, 4, 8, 12, 16, 20];
var _local2 = 0;
while ((level > _local9[_local2]) && (_local2 < 5)) {
_local2++;
}
_local2 = Math.ceil(Math.random() * _local2);
var _local3 = 0;
while (_local3 <= _local2) {
_local6[Math.floor(Math.random() * 5)] = true;
_local3++;
}
}
if (entryPoint.isTeleporter) {
this.doors[4] = new Teleport(this, entryPoint);
this.teleport = true;
if (entryPoint.exitRoute && (!exitFound)) {
this.exitRoute = true;
}
var _local11 = 4;
} else {
var _local11 = entryPoint.num;
if (((Math.random() > _local13) || (_local6[4])) || (roomsDone == 0)) {
_local7.push(4);
this.doors[4] = new Teleport(this, entryPoint);
this.teleport = true;
}
}
if (mapRow[row - 1][collumn] != undefined) {
if (mapRow[row - 1][collumn].doors[3] != undefined) {
this.doors[0] = new Door(0, this);
if (mapRow[row - 1][collumn].doors[3].exitRoute && (!exitFound)) {
this.exitRoute = true;
}
}
} else if (((Math.random() > _local12) || (_local6[0])) && (row > 0)) {
_local7.push(0);
this.doors[0] = new Door(0, this);
}
if (mapRow[row + 1][collumn] != undefined) {
if (mapRow[row + 1][collumn].doors[0] != undefined) {
this.doors[3] = new Door(3, this);
if (mapRow[row + 1][collumn].doors[0].exitRoute && (!exitFound)) {
this.exitRoute = true;
}
}
} else if (((Math.random() > _local12) || (_local6[3])) && (row < (sSize - 1))) {
_local7.push(3);
this.doors[3] = new Door(3, this);
}
if (mapRow[row][collumn - 1] != undefined) {
if (mapRow[row][collumn - 1].doors[2] != undefined) {
this.doors[1] = new Door(1, this);
if (mapRow[row][collumn - 1].doors[2].exitRoute && (!exitFound)) {
this.exitRoute = true;
}
}
} else if (((Math.random() > _local12) || (_local6[1])) && (collumn > 0)) {
_local7.push(1);
this.doors[1] = new Door(1, this);
}
if (mapRow[row][collumn + 1] != undefined) {
if (mapRow[row][collumn + 1].doors[1] != undefined) {
this.doors[2] = new Door(2, this);
if (mapRow[row][collumn + 1].doors[1].exitRoute && (!exitFound)) {
this.exitRoute = true;
}
}
} else if (((Math.random() > _local12) || (_local6[2])) && (collumn < (sSize - 1))) {
_local7.push(2);
this.doors[2] = new Door(2, this);
}
if (this.exitRoute) {
if (((Math.random() > _local14) && (roomsDone > level)) || (_local7.length == 0)) {
this.isExit = true;
} else {
this.isExit = false;
this.doors[_local7[Math.floor(Math.random() * _local7.length)]].exitRoute = true;
}
}
if ((roomsDone == 0) && (level == 1)) {
this.map = firstMap;
} else if (this.isExit) {
if (level == 1) {
this.map = exitMaps[6][Math.floor(Math.random() * exitMaps[6].length)];
} else if (Math.random() > 0.3) {
this.map = exitMaps[_local11][Math.floor(Math.random() * exitMaps[_local11].length)];
} else {
this.map = exitMaps[5][Math.floor(Math.random() * exitMaps[5].length)];
}
} else {
if ((_local7.length == 0) && (Math.random() > 0.4)) {
this.spawnPU = true;
this.powerUpS = Math.floor(Math.random() * 5);
}
if ((Math.random() > 0.8) && (level > 1)) {
this.map = levelMaps[_local11][Math.floor(Math.random() * exitMaps[_local11].length)];
} else {
this.map = levelMaps[5][Math.floor(Math.random() * levelMaps[5].length)];
}
}
roomsDone++;
this.makeRoom(entryPoint);
}
function Tile(tType, y, x) {
this.walkedOn = false;
this.id = (("tile" + y) + "_") + x;
this.mc = theScreen.attachMovie("_ltile", this.id, tileDepth + (tileD++));
this.mc._x = x * tileW;
this.mc._y = y * tileH;
this.mc.myObject = this;
this.x = x;
this.y = y;
this.mc.gotoAndStop(tType + 1);
this.tType = tType;
var _local2 = tileDesc[tType];
this.walkable = _local2.walkable;
this.shootThrough = _local2.shootThrough;
this.walkFunction = _local2.walkFunction;
this.damage = _local2.damage;
this.shootFunction = _local2.shootFunction;
this.hp = level * _local2.hp;
this.destroyFunction = _local2.destroyFunction;
this.destroyedTile = _local2.destroyedTile;
this.monsterType = _local2.monsterType;
this.num = _local2.num;
this.freeTile = _local2.freeTile == true;
this.onTile = _local2.onTile;
this.offTile = _local2.offTile;
this.state = _local2.state;
this.initFunc = _local2.initFunc;
if (_local2.statesArray != undefined) {
this.compFunction = _local2.compFunction;
this.statesArray = _local2.statesArray;
}
this.efFunction = _local2.efFunction;
if (this.efFunction != null) {
currentRoom.efTiles[this.id] = this;
this.dCount = 0;
}
if (_local2.laserFence) {
this.laserFence = true;
this.generators = 0;
}
this.speedFactor = _local2.speedFactor;
}
function Door(num, room) {
this.exitRoute = false;
this.num = num;
}
function Teleport(theRoom, entryPoint) {
this.exitRoute = false;
this.dest = entryPoint;
this.myRoom = theRoom;
this.isTeleporter = true;
this.num = 4;
}
function openDoors() {
var _local2 = currentRoom.doorTiles;
if (currentRoom.doorsLocked) {
var _local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3].changeTileTo(_local2[_local3].onTile);
_local3++;
}
}
_local2 = currentRoom.entryTiles;
var _local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3].changeTileTo(_local2[_local3].onTile);
_local3++;
}
currentRoom.done = true;
if (currentRoom.barrierA.length > 0) {
for (_local3 in currentRoom.barrierA) {
currentRoom.barrierA[_local3].changeTileTo(currentRoom.barrierA[_local3].offTile);
if (sfxOn) {
var _local1 = new Sound();
_local1.attachSound("_ldoorClose");
_local1.start();
}
}
currentRoom.barrierDone = true;
delete currentRoom.barrierA;
}
}
function openEntryDoor() {
var _local3 = currentRoom.entryTiles;
var _local2 = 0;
while (_local2 < _local3.length) {
_local3[_local2].changeTileTo(_local3[_local2].onTile);
_local2++;
}
if (this._parent.sfxOn) {
var _local4 = new Sound();
_local4.attachSound("_ldoorClose");
_local4.start();
}
}
function lockDoors() {
theScreen.tNum = 0;
currentRoom.doorsLocked = true;
theScreen.onEnterFrame = function () {
var _local3 = currentRoom.doorTiles;
if ((this.tNum % 4) == 0) {
var _local2 = this.tNum / 4;
if (_local2 < _local3.length) {
_local3[_local2].changeTileTo(_local3[_local2].offTile);
if (this._parent.sfxOn) {
var _local4 = new Sound();
_local4.attachSound("_ldoorClose");
_local4.start();
}
} else {
delete this.tNum;
canPause = true;
this.onEnterFrame = detectKeys;
}
}
this.tNum++;
};
}
function lockEntryDoor() {
theScreen.tNum = 0;
theScreen.onEnterFrame = function () {
var _local3 = currentRoom.entryTiles;
if ((this.tNum % 4) == 0) {
var _local2 = this.tNum / 4;
if (_local2 < _local3.length) {
_local3[_local2].changeTileTo(_local3[_local2].offTile);
if (this._parent.sfxOn) {
var _local4 = new Sound();
_local4.attachSound("_ldoorClose");
_local4.start();
}
} else {
delete this.tNum;
canPause = true;
this.onEnterFrame = detectKeys;
}
}
this.tNum++;
};
}
function removeMap() {
sMap.removeMovieClip();
mapLines.removeMovieClip();
mapBack._visible = false;
options._visible = true;
}
function showMap() {
options._visible = false;
mapBack._visible = true;
sMap = this._parent._parent.createEmptyMovieClip("mapBG", mapDepth);
mapLines = this._parent._parent.createEmptyMovieClip("mapBGLines", mapLinesDepth);
sMap._x = (mapLines._x = roomX);
sMap._y = (mapLines._y = roomY);
var _local2 = (375 - (2 * sSize)) / sSize;
var _local11 = (_local2 + 2) * sSize;
sMap.beginFill(2236962, 100);
sMap.lineStyle(0, 0, 0);
sMap.moveTo(-2, -2);
sMap.lineTo(_local11 + 2, -2);
sMap.lineTo(_local11 + 2, _local11 + 2);
sMap.lineTo(-2, _local11 + 2);
sMap.lineTo(-2, -2);
sMap.endFill();
var _local10 = 0;
while (_local10 < sSize) {
var _local8 = 0;
while (_local8 < sSize) {
var _local3 = mapRow[_local10][_local8];
var _local5 = 1 + ((_local2 + 2) * _local8);
var _local4 = 1 + ((_local2 + 2) * _local10);
sMap.lineStyle(0, 0, 50);
if (_local3 == undefined) {
sMap.beginFill(1118481, 0);
} else if (_local3 != undefined) {
if (_local3.isExit) {
sMap.beginFill(14540066, 100);
} else {
sMap.beginFill(14540253, 100);
}
if (_local3 == currentRoom) {
ch = sMap.attachMovie("pMarker", "px", 0);
ch._x = _local5 + (_local2 / 2);
ch._y = _local4 + (_local2 / 2);
}
}
sMap.moveTo(_local5, _local4);
sMap.lineTo(_local5 + _local2, _local4);
sMap.lineTo(_local5 + _local2, _local4 + _local2);
sMap.lineTo(_local5, _local4 + _local2);
sMap.lineTo(_local5, _local4);
sMap.endFill();
if (_local3 != undefined) {
if (_local3.doors[4] != null) {
var _local7 = _local5 + (_local2 / 2);
var _local6 = _local4 + (_local2 / 2);
sMap.lineStyle(0, 255, 100);
sMap.beginFill(6711039);
sMap.moveTo(_local7, _local6 - 3);
sMap.lineTo(_local7 + 3, _local6);
sMap.lineTo(_local7 - 3, _local6);
sMap.lineTo(_local7, _local6 - 3);
sMap.endFill();
sMap.beginFill(85);
sMap.moveTo(_local7 - 3, _local6);
sMap.lineTo(_local7 + 3, _local6);
sMap.lineTo(_local7, _local6 + 3);
sMap.lineTo(_local7 - 3, _local6);
sMap.endFill();
var _local9 = _local3.doors[4].dest;
if (_local9.isTeleporter) {
mapLines.lineStyle(1, 13421823, 70);
mapLines.moveTo(_local7, _local6);
mapLines.lineTo(((_local2 + 2) * _local9.myRoom.collumn) + (_local2 / 2), ((_local2 + 2) * _local9.myRoom.row) + (_local2 / 2));
}
}
if (_local3.doors[0] != null) {
drapMapSquare((_local5 + (_local2 / 2)) - 1, _local4 - 2);
}
if (_local3.doors[1] != null) {
drapMapSquare(_local5 - 2, (_local4 + (_local2 / 2)) - 1);
}
if (_local3.doors[2] != null) {
drapMapSquare(_local5 + _local2, (_local4 + (_local2 / 2)) - 1);
}
if (_local3.doors[3] != null) {
drapMapSquare((_local5 + (_local2 / 2)) - 1, _local4 + _local2);
}
}
_local8++;
}
_local10++;
}
}
function drapMapSquare(x, y) {
sMap.lineStyle(2, 16777215, 100);
sMap.beginFill(85);
sMap.moveTo(x, y);
sMap.lineTo(x + 2, y);
sMap.lineTo(x + 2, y + 2);
sMap.lineTo(x, y + 2);
sMap.lineTo(x, y);
sMap.endFill();
}
function toggleSFX() {
if (sfxOn) {
sfxOn = false;
options.sfxTickbox.gotoAndStop(2);
startScreen.sfxTickbox.gotoAndStop(2);
} else {
sfxOn = true;
options.sfxTickbox.gotoAndStop(1);
startScreen.sfxTickbox.gotoAndStop(1);
}
}
function toggleMusic() {
if (musicOn) {
musicOn = false;
options.musicTickbox.gotoAndStop(2);
startScreen.musicTickbox.gotoAndStop(2);
opening.stop();
} else {
musicOn = true;
options.musicTickbox.gotoAndStop(1);
startScreen.musicTickbox.gotoAndStop(1);
if (inGame) {
soundSetup();
} else {
opening.start(0, 99999);
}
}
}
function setMusicVolume(vol) {
musicVol = vol;
opening.setVolume(musicVol);
options.musicBar.slideButton._x = -75 + (1.5 * vol);
}
function soundSetup() {
if (musicOn) {
themeSounds = [];
maxReps = [0, 2, 2, 2, 2, 2, 2, 2, 2];
clips = [0, 1, 4, 5, 6, 8];
var _local1 = 0;
while (_local1 < 9) {
themeSounds[_local1] = new Sound(soundMC);
themeSounds[_local1].attachSound("music" + _local1);
themeSounds[_local1].onSoundComplete = doNextSound;
_local1++;
}
themeSounds[0].setVolume(musicVol);
themeSounds[0].start();
themeSounds[0].onSoundComplete = doNextSound;
soundNum = 1;
}
}
function doNextSound() {
var _local1 = Math.ceil(Math.random() * 2) * 2;
while (_local1 == cSound) {
_local1 = Math.ceil(Math.random() * 2) * 2;
}
cSound = _local1;
var _local2 = clips[Math.ceil(Math.random() * 5)];
clipNum.text = _local2;
themeSounds[_local2].start(0, cSound);
}
function showShop() {
canPause = false;
delete gui.options.onRelease;
populateUpgrades();
shop._visible = true;
shop.contButton.onRelease = removeShop;
var _local1 = 0;
while (_local1 < 5) {
delete gui["weaponButton" + _local1].onRelease;
_local1++;
}
shop.onEnterFrame = function () {
Mouse.show();
};
themeSounds[0].stop();
if (musicOn) {
shopSound = new Sound(soundMC);
shopSound.attachSound("_lshop");
shopSound.start(0, 9999);
}
}
function removeShop() {
delete shop.onEnterFrame;
shop._visible = false;
shopSound.stop();
nextLevel();
}
function populateUpgrades() {
if (sfxOn) {
var _local7 = new Sound();
_local7.attachSound("_lclick");
_local7.start();
}
shop.gotoAndStop("upgrades");
shop.points.text = score;
shop.mon.text = money;
delete shop.upgrades.onRelease;
shop.supplies.onRelease = populateSupplies;
shop.specials.onRelease = populateSpecials;
var _local2 = 0;
while (_local2 < 8) {
switch (_local2) {
case 0 :
var _local4 = p.maxhp;
break;
case 1 :
_local4 = p.maxArmour;
break;
case 2 :
_local4 = p.speedLevel + 1;
break;
case 3 :
_local4 = p.weapons[0] + 1;
break;
case 4 :
_local4 = p.weapons[1] + 1;
break;
case 5 :
_local4 = p.weapons[2] + 1;
break;
case 6 :
_local4 = p.weapons[3] + 1;
break;
case 7 :
_local4 = p.weapons[4] + 1;
}
var _local3 = upgrades[_local2];
var _local6 = _local4 + _local3.increment;
var _local5 = _local3.cost + (_local3.cost * _local3.timesBought);
if (_local3.timesBought < _local3.maxLevel) {
shop["effect" + _local2].text = (_local4 + "->") + _local6;
shop["cost" + _local2].text = _local5;
} else {
shop["effect" + _local2].text = _local4;
shop["cost" + _local2].text = "-";
}
if ((money < _local5) || (shop["cost" + _local2].text == "-")) {
shop["buyButton" + _local2]._visible = false;
} else {
shop["buyButton" + _local2]._visible = true;
shop["buyButton" + _local2].num = _local2;
shop["buyButton" + _local2].onRelease = function () {
this._parent._parent.buyUpgrade(this.num);
};
}
_local2++;
}
}
function buyUpgrade(num) {
switch (num) {
case 0 :
p.maxhp = p.maxhp + upgrades[num].increment;
p.hp = p.hp + upgrades[num].increment;
break;
case 1 :
p.maxArmour = p.maxArmour + upgrades[num].increment;
p.armour = p.armour + upgrades[num].increment;
break;
case 2 :
p.speedLevel = p.speedLevel + upgrades[num].increment;
p.speed = p.speed + p.speedInc;
break;
case 3 :
p.weapons[0] = p.weapons[0] + upgrades[num].increment;
break;
case 4 :
p.weapons[1] = p.weapons[1] + upgrades[num].increment;
break;
case 5 :
p.weapons[2] = p.weapons[2] + upgrades[num].increment;
break;
case 6 :
p.weapons[3] = p.weapons[3] + upgrades[num].increment;
break;
case 7 :
p.weapons[4] = p.weapons[4] + upgrades[num].increment;
}
var _local2 = upgrades[num];
money = money - (_local2.cost + (_local2.cost * _local2.timesBought));
_local2.timesBought++;
p.doHealth();
p.doArmour();
populateUpgrades();
}
function Upgrade(increment, cost, costIncrease, maxLevel) {
this.increment = increment;
this.cost = cost;
this.costIncrease = costIncrease;
this.maxLevel = maxLevel - 1;
this.timesBought = 0;
}
function buildUpgradeBase() {
upgrades = [];
upgrades.push(new Upgrade(25, 50, 25, 999));
upgrades.push(new Upgrade(25, 50, 25, 999));
upgrades.push(new Upgrade(1, 50, 25, 20));
upgrades.push(new Upgrade(1, 100, 50, 20));
upgrades.push(new Upgrade(1, 100, 50, 20));
upgrades.push(new Upgrade(1, 100, 50, 20));
upgrades.push(new Upgrade(1, 100, 50, 20));
upgrades.push(new Upgrade(1, 100, 50, 20));
}
function populateSupplies() {
if (sfxOn) {
var _local7 = new Sound();
_local7.attachSound("_lclick");
_local7.start();
}
shop.gotoAndStop("supplies");
shop.points.text = score;
shop.mon.text = money;
shop.upgrades.onRelease = populateUpgrades;
delete shop.supplies.onRelease;
shop.specials.onRelease = populateSpecials;
var _local2 = 0;
while (_local2 < 6) {
switch (_local2) {
case 0 :
var _local4 = p.hp;
if (p.maxhp < 9999) {
var _local5 = p.maxhp;
} else {
var _local5 = 9999;
}
break;
case 1 :
_local4 = p.armour;
if (p.maxArmour < 9999) {
var _local5 = p.maxArmour;
} else {
var _local5 = 9999;
}
break;
case 2 :
_local4 = p.ammo[1];
var _local5 = 999;
break;
case 3 :
_local4 = p.ammo[2];
_local5 = 999;
break;
case 4 :
_local4 = p.ammo[3];
_local5 = 999;
break;
case 5 :
_local4 = p.ammo[4];
_local5 = 999;
}
var _local3 = supplies[_local2];
var _local6 = _local3.cost + (_local3.costIncrease * upgrades[_local3.ugNum].timesBought);
var nextVal = (_local4 + _local3.amount);
if (nextVal > _local5) {
nextVal = _local5;
}
shop["effect" + _local2].text = (_local4 + "->") + nextVal;
shop["cost" + _local2].text = _local6;
if ((money < _local6) || (nextVal == _local4)) {
shop["buyButton" + _local2]._visible = false;
} else {
shop["buyButton" + _local2]._visible = true;
shop["buyButton" + _local2].num = _local2;
shop["buyButton" + _local2].nextVal = nextVal;
shop["buyButton" + _local2].onRelease = function () {
this._parent._parent.buySupply(this.num, this.nextVal);
};
}
_local2++;
}
}
function buySupply(num, newVal) {
switch (num) {
case 0 :
p.hp = newVal;
break;
case 1 :
p.armour = newVal;
break;
case 2 :
p.ammo[1] = newVal;
break;
case 3 :
p.ammo[2] = newVal;
break;
case 4 :
p.ammo[3] = newVal;
break;
case 5 :
p.ammo[4] = newVal;
}
var _local2 = supplies[num];
money = money - (_local2.cost + (_local2.costIncrease * upgrades[_local2.ugNum].timesBought));
p.doHealth();
p.doArmour();
populateSupplies();
}
function Supply(amount, cost, costIncrease, ugNum) {
this.amount = amount;
this.cost = cost;
this.costIncrease = costIncrease;
this.ugNum = ugNum;
}
function buildSupplyBase() {
supplies = [];
supplies.push(new Supply(50, 50, 0, 0));
supplies.push(new Supply(50, 50, 0, 1));
supplies.push(new Supply(20, 100, 10, 4));
supplies.push(new Supply(20, 100, 10, 5));
supplies.push(new Supply(2, 100, 20, 6));
supplies.push(new Supply(2, 50, 10, 7));
}
function populateSpecials() {
if (sfxOn) {
var _local4 = new Sound();
_local4.attachSound("_lclick");
_local4.start();
}
shop.gotoAndStop("specials");
shop.points.text = score;
shop.mon.text = money;
shop.upgrades.onRelease = populateUpgrades;
shop.supplies.onRelease = populateSupplies;
delete shop.specials.onRelease;
var _local2 = 0;
while (_local2 < 6) {
var _local3 = specials[_local2];
shop["effect" + _local2].text = _local3.amount;
shop["cost" + _local2].text = _local3.cost;
if (money < _local3.cost) {
shop["buyButton" + _local2]._visible = false;
} else {
shop["buyButton" + _local2]._visible = true;
shop["buyButton" + _local2].num = _local2;
shop["buyButton" + _local2].onRelease = function () {
this._parent._parent.buySpecial(this.num);
};
}
_local2++;
}
}
function buySpecial(num) {
sp = specials[num];
if (num < 4) {
score = score + sp.amount;
} else {
level = level + sp.amount;
}
money = money - sp.cost;
populateSpecials();
}
function Special(amount, cost) {
this.amount = amount;
this.cost = cost;
}
function buildSpecialBase() {
specials = [];
specials.push(new Special(10, 10));
specials.push(new Special(100, 100));
specials.push(new Special(1000, 1000));
specials.push(new Special(9999, 9999));
specials.push(new Special(1, 500));
specials.push(new Special(10, 2000));
}
function monsterSpawn() {
this.sNum = currentRoom.spawnersMade++;
if (currentRoom.spawnDestroyed[this.sNum]) {
this.changeTileTo(this.destroyedTile);
} else {
this.count = Math.floor(Math.random() * 170);
this.spawnInterval = 260;
this.spawnTiles = [];
this.hp = (this.hp / 2) * level;
this.score = (this.hp / 2) * level;
currentRoom.possibleEnemies++;
var _local4 = this.y - 1;
while (_local4 < (this.y + 2)) {
var _local3 = this.x - 1;
while (_local3 < (this.x + 2)) {
var _local2 = currentRoom.tiles[_local4][_local3];
if ((_local2.walkable && (_local2.damage == 0)) && (_local2 != this)) {
this.spawnTiles.push(_local2);
}
_local3++;
}
_local4++;
}
}
}
function destructableSUp() {
this.dNum = currentRoom.destroyablesMade++;
if (currentRoom.destroyablesStates[this.dNum] == undefined) {
currentRoom.destroyablesStates[this.dNum] = 0;
} else if (currentRoom.destroyablesStates[this.dNum] == 1) {
this.changeTileTo(this.destroyedTile);
} else if (currentRoom.destroyablesStates[this.dNum] == 2) {
this.changeTileTo(this.destroyedTile);
this.changeTileTo(this.destroyedTile);
}
}
function associateTiles() {
}
function switchedTiles() {
if (currentRoom.switchT[this.num] == undefined) {
currentRoom.switchT[this.num] = [];
}
currentRoom.switchT[this.num].push(this);
this.mc.gotoAndStop(this.onTile + 1);
}
function laserFenceGenSetUp() {
this.fenceTiles = [];
var _local3 = this.x + 1;
var _local2 = this.y;
while (currentRoom.tiles[_local2][_local3].laserFence) {
this.fenceTiles.push(currentRoom.tiles[_local2][_local3]);
currentRoom.tiles[_local2][_local3].generators++;
_local3++;
}
_local3 = this.x - 1;
_local2 = this.y;
while (currentRoom.tiles[_local2][_local3].laserFence) {
this.fenceTiles.push(currentRoom.tiles[_local2][_local3]);
currentRoom.tiles[_local2][_local3].generators++;
_local3--;
}
_local3 = this.x;
_local2 = this.y + 1;
while (currentRoom.tiles[_local2][_local3].laserFence) {
this.fenceTiles.push(currentRoom.tiles[_local2][_local3]);
currentRoom.tiles[_local2][_local3].generators++;
_local2++;
}
_local3 = this.x;
_local2 = this.y - 1;
while (currentRoom.tiles[_local2][_local3].laserFence) {
this.fenceTiles.push(currentRoom.tiles[_local2][_local3]);
currentRoom.tiles[_local2][_local3].generators++;
_local2--;
}
this.lfNum = currentRoom.laserFencesMade++;
currentRoom.laserFences[this.lfNum] = this;
}
function cChangeInit() {
if (currentRoom.colourUnlock || (!currentRoom.barrierDone)) {
if (currentRoom.ccT[this.num] == undefined) {
currentRoom.ccT[this.num] = [];
}
this.state = 0;
this.numStates = this.statesArray.length;
currentRoom.ccT[this.num].push(this);
this.mc.gotoAndStop(this.statesArray[this.state] + 1);
}
}
function makeSpecial() {
if (!currentRoom.specialGot) {
var _local2 = this.num;
if (_local2 > 5) {
_local2 = Math.floor(Math.random() * 6);
}
var _local3 = new Powerup(this.x, this.y, _local2);
}
}
function barrierAssoc() {
if (!currentRoom.barrierDone) {
currentRoom.barrierA.push(this);
this.mc.gotoAndStop(this.onTile + 1);
} else {
this.changeTileTo(this.offTile);
}
}
function spawnBoss() {
if (!currentRoom.done) {
var _local2 = new bosses[this.num](enemyD++, this.x, this.y);
}
}
function destroyable(power) {
this.hp = this.hp - power;
if (this.hp <= 0) {
this.destroyFunction();
}
}
function changeTile() {
if (this.dNum != undefined) {
currentRoom.destroyablesStates[this.dNum]++;
}
delete currentRoom.efTiles[this.id];
this.tType = this.destroyedTile;
var _local2 = tileDesc[this.tType];
this.walkable = _local2.walkable;
this.shootThrough = _local2.shootThrough;
this.walkFunction = _local2.walkFunction;
this.damage = _local2.damage;
this.shootFunction = _local2.shootFunction;
this.hp = _local2.hp;
this.efFunction = _local2.efFunction;
this.speedFactor = _local2.speedFactor;
this.efFunction = _local2.efFunction;
this.destroyedTile = _local2.destroyedTile;
if (this.efFunction != null) {
currentRoom.efTiles[this.id] = this;
}
this.mc.gotoAndStop(this.tType + 1);
}
function destroyMonsterSpawner() {
if ((--currentRoom.possibleEnemies) == 0) {
currentRoom.allKilledFunc();
}
delete currentRoom.efTiles[this.id];
this.tType = this.destroyedTile;
var _local2 = tileDesc[this.tType];
this.walkable = _local2.walkable;
this.shootThrough = _local2.shootThrough;
this.walkFunction = _local2.walkFunction;
this.damage = _local2.damage;
this.shootFunction = _local2.shootFunction;
this.hp = _local2.hp;
this.efFunction = _local2.efFunction;
this.speedFactor = _local2.speedFactor;
this.efFunction = _local2.efFunction;
this.destroyedTile = _local2.destroyedTile;
if (this.efFunction != null) {
currentRoom.efTiles[this.id] = this;
}
money = money + this.score;
score = score + this.score;
this.mc.gotoAndStop(this.tType + 1);
currentRoom.spawnDestroyed[this.sNum] = true;
this.makeExplosion();
}
function destroyLaserFence() {
currentRoom.laserFencesDestroyed[this.lfNum] = true;
currentRoom.destroyablesStates[this.dNum] = 1;
this.deactivateLF();
this.makeExplosion();
money = money + (4 * level);
score = score + (5 + (5 * level));
}
function damagePlayer() {
if ((this.dCount++) > 4) {
this.dCount = 0;
if (p.currentTile == this) {
p.hurtMe(this.damage);
}
for (var _local3 in currentRoom.currentEnemies) {
var _local2 = currentRoom.currentEnemies[_local3];
if ((_local2.currentTile == this) && (this.damage >= _local2.wussiness)) {
_local2.hurtMe(this.damage);
}
}
}
}
function spawnMonsters() {
if (((this.count++) > this.spawnInterval) && (currentRoom.possibleEnemies < maxMobs)) {
this.count = Math.floor(Math.random() * this.spawnInterval) - 20;
var _local5 = this.spawnTiles;
var _local2 = _local5[Math.floor(Math.random() * _local5.length)];
var _local3 = true;
for (var _local4 in currentRoom.currentEnemies) {
if (currentRoom.currentEnemies[_local4].currentTile == _local2) {
_local3 = false;
}
}
if (p.currentTile == _local2) {
_local3 = false;
}
if (_local3) {
if (sfxOn) {
var _local6 = new Sound();
_local6.attachSound("_lspawn");
_local6.start();
}
var _local8 = new this.monsterType(enemyD++, _local2.x, _local2.y);
_local8.isSpawned = true;
currentRoom.spawnedEnemies[_local8.num] = this.monsterType;
var _local7 = theScreen.attachMovie("_lteleportInStuff", "ex" + exNum, explosionsDepth + exNum);
_local7._x = (_local2.x * tileW) + (tileW / 2);
_local7._y = (_local2.y * tileW) + (tileW / 2);
if ((++exNum) > 50) {
exNum = 0;
}
_local7 = theScreen.attachMovie("_lspawnlight", "ex" + exNum, explosionsDepth + exNum);
_local7._x = (this.x * tileW) + (tileW / 2);
_local7._y = (this.y * tileW) + (tileW / 2);
if ((++exNum) > 50) {
exNum = 0;
}
}
}
}
function toggleTiles() {
var _local2 = currentRoom.switchT[this.num];
for (var _local3 in _local2) {
toggleTile(_local2[_local3]);
}
if (sfxOn) {
var _local4 = new Sound();
_local4.attachSound("_ldoorClose");
_local4.start();
}
}
function cChange() {
this.state++;
if (this.state == this.numStates) {
this.state = 0;
}
this.mc.gotoAndStop(this.statesArray[this.state] + 1);
var _local2 = true;
var _local3 = this.statesArray.length - 1;
for (var _local4 in currentRoom.ccT[this.num]) {
if (currentRoom.ccT[this.num][_local4].state != _local3) {
_local2 = false;
}
}
if (_local2) {
this.compFunction();
for (var _local4 in currentRoom.ccT[this.num]) {
currentRoom.ccT[this.num][_local4].walkFunction = null;
}
}
}
function doorWalk() {
delete theScreen.onEnterFrame;
theScreen.removeMovieClip();
switch (this.num) {
case 0 :
row--;
break;
case 1 :
collumn--;
break;
case 2 :
collumn++;
break;
case 3 :
row++;
}
if (mapRow[row][collumn] == undefined) {
var _local3 = new Room(1, row, collumn, this.exitRoute, currentRoom.doors[this.num]);
} else {
var _local2 = currentRoom.doors[this.num];
currentRoom = mapRow[row][collumn];
mapRow[row][collumn].makeRoom(_local2);
}
}
function doTeleport() {
delete theScreen.onEnterFrame;
canPause = false;
this.mc.mc.gotoAndPlay(2);
this.mc.countDown = 30;
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound("_lteleport");
_local2.start();
}
var _local3 = theScreen.attachMovie("_lteleportStuff", "tel", playerDepth - 1);
_local3._x = (this.x * tileW) + (tileW / 2);
_local3._y = (this.y * tileW) + (tileW / 2);
this.mc.onEnterFrame = function () {
if ((this.countDown--) > 0) {
p.mc._rotation = p.mc._rotation + 20;
p.mc._alpha = p.mc._alpha - 4;
} else {
this.myObject.finishTeleport();
}
};
}
function exitLevel() {
delete theScreen.onEnterFrame;
canPause = false;
delete gui.options.onRelease;
var _local2 = 0;
while (_local2 < 5) {
delete gui["weaponButton" + _local2].onRelease;
_local2++;
}
p.mc._x = (this.x * tileW) + (tileW / 2);
p.mc._y = (this.y * tileH) + (tileH / 2);
if (sfxOn) {
var _local5 = new Sound();
_local5.attachSound("_lexit");
_local5.start();
}
var _local3 = theScreen.attachMovie("_linfo", "inf" + exNum, explosionsDepth + exNum);
_local3._x = (this.x * tileW) + (tileW / 2);
_local3._y = (this.y * tileH) + (tileH / 2);
if ((++exNum) > 50) {
exNum = 0;
}
var _local6 = 100 * level;
_local3.txt.txt0.htmlText = (_local3.txt.txt1.htmlText = "LEVEL BONUS\n$" + _local6);
p.mc.gotoAndPlay("exit");
money = money + _local6;
var _local4 = _local3.txt.txt0.textWidth / 2;
if ((_local3._x + _local4) > 370) {
_local3._x = 370 - _local4;
} else if ((_local3._x - _local4) < 5) {
_local3._x = 5 + _local4;
}
}
function toggleTile(t) {
if (t.state == "on") {
var _local2 = tileDesc[t.offTile];
t.state = "off";
t.mc.gotoAndStop(t.offTile + 1);
} else {
var _local2 = tileDesc[t.onTile];
t.state = "on";
t.mc.gotoAndStop(t.onTile + 1);
}
delete currentRoom.efTiles[t.id];
t.walkable = _local2.walkable;
t.efFunction = _local2.efFunction;
t.shootThrough = _local2.shootThrough;
t.walkFunction = _local2.walkFunction;
t.hp = _local2.hp;
t.damage = _local2.damage;
t.efFunction = _local2.efFunction;
t.speedFactor = _local2.speedFactor;
t.dCount = 0;
if (t.efFunction != null) {
currentRoom.efTiles[t.id] = t;
} else {
delete currentRoom.efTiles[t.id];
}
}
function traceYay() {
if (currentRoom.colourUnlock) {
var _local3 = currentRoom.doorTiles;
var _local1 = 0;
while (_local1 < _local3.length) {
_local3[_local1].changeTileTo(_local3[_local1].onTile);
_local1++;
}
_local3 = currentRoom.entryTiles;
_local1 = 0;
while (_local1 < _local3.length) {
_local3[_local1].changeTileTo(_local3[_local1].onTile);
_local1++;
}
currentRoom.done = true;
} else if (currentRoom.barrierA.length > 0) {
for (var _local1 in currentRoom.barrierA) {
currentRoom.barrierA[_local1].changeTileTo(currentRoom.barrierA[_local1].offTile);
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound("_ldoorClose");
_local2.start();
}
}
currentRoom.barrierDone = true;
delete currentRoom.barrierA;
}
}
function colourchangeKill() {
}
function endPopulate() {
populateStats();
charStats.back._visible = false;
charStats.cont._visible = true;
charStats.cont.onRelease = pnflashWipe;
theScreen.removeMovieClip();
Mouse.show();
}
function __com_mochibot__(swfid, mc, lv, trk) {
var x;
var g;
var s;
var fv;
var sb;
var u;
var res;
var mb;
var mbc;
mb = "__mochibot__";
mbc = "mochibot.com";
g = (_global ? (_global) : (_level0._root));
if (g[mb + swfid]) {
return(g[mb + swfid]);
}
s = System.security;
x = mc._root.getSWFVersion;
fv = (x ? (mc.getSWFVersion()) : ((_global ? 6 : 5)));
if (!s) {
s = {};
}
sb = s.sandboxType;
if (sb == "localWithFile") {
return(null);
}
x = s.allowDomain;
if (x) {
s.allowDomain(mbc);
}
x = s.allowInsecureDomain;
if (x) {
s.allowInsecureDomain(mbc);
}
u = (((((((((((("http://" + mbc) + "/my/core.swf?mv=7&fv=") + fv) + "&v=") + escape(getVersion())) + "&swfid=") + escape(swfid)) + "&l=") + lv) + "&f=") + mc) + (sb ? ("&sb=" + sb) : "")) + (trk ? "&t=1" : "");
lv = ((fv > 6) ? (mc.getNextHighestDepth()) : ((g[mb + "level"] ? (g[mb + "level"] + 1) : (lv))));
g[mb + "level"] = lv;
if (fv == 5) {
res = "_level" + lv;
if (!eval (res)) {
loadMovieNum (u, lv);
}
} else {
res = mc.createEmptyMovieClip(mb + swfid, lv);
res.loadMovie(u);
}
return(res);
}
Function.prototype.extend = function (superClass) {
this.prototype.__proto__ = superClass.prototype;
this.prototype.__constructor__ = superClass;
ASSetPropFlags(this.prototype, ["__constructor__"], 1);
};
ASSetPropFlags(Function.prototype, ["extend"], 1);
MovieClip.prototype.mcExtends = function (superClass) {
if (typeof(superClass) == "function") {
this.__proto__ = superClass.prototype;
if (typeof(this.attachMovie) == "undefined") {
var _local4 = this.__proto__;
var _local3 = _local4.__proto__.__proto__;
while (_local3 != null) {
_local3 = _local3.__proto__;
_local4 = _local4.__proto__;
}
_local4.__proto__ = MovieClip.prototype;
}
arguments.splice(0, 1);
superClass.apply(this, arguments);
} else {
trace("mcExtends: Incorrect superClass type or path - " + typeof(superClass));
}
};
ASSetPropFlags(MovieClip.prototype, ["mcExtends"], 1);
num = 0;
PiRads = (Math.PI/180);
roomX = 12;
roomY = 12;
tileW = 25;
tileH = 25;
mapWidth = 15;
mapHeight = 15;
var midTile = Math.floor(mapWidth / 2);
startX0 = [midTile, mapWidth - 1, 0, midTile, midTile];
startY0 = [mapHeight - 1, midTile, midTile, 0, midTile];
startX1 = [midTile, mapWidth - 2, 1, midTile, midTile];
startY1 = [mapHeight - 2, midTile, midTile, 1, midTile];
doorPos = [];
doorPos[0] = [new Point(midTile - 1, 0), new Point(midTile, 0), new Point(midTile + 1, 0)];
doorPos[1] = [new Point(0, midTile - 1), new Point(0, midTile), new Point(0, midTile + 1)];
doorPos[2] = [new Point(mapWidth - 1, midTile - 1), new Point(mapWidth - 1, midTile), new Point(mapWidth - 1, midTile + 1)];
doorPos[3] = [new Point(midTile - 1, mapHeight - 1), new Point(midTile, mapHeight - 1), new Point(midTile + 1, mapHeight - 1)];
telePortPos = [new Point(midTile, midTile), new Point(3, 3), new Point(11, 3), new Point(11, 3), new Point(11, 11)];
soundMCDepth = 0;
screenDepth = 1;
crossHairsDepth = 2;
optionsDepth = 3;
mapDepth = 4;
mapLinesDepth = 5;
mapBackDepth = 6;
charStatsDepth = 7;
shopDepth = 8;
gameoverDepth = 9;
startScreenDepth = 10;
pnflashSplashDepth = 11;
wipeOverDepth = 20;
guiDepth = 12343455 /* 0xBC589F */;
tileDepth = 0;
deadDepth = 1000;
minesDepth = 1200;
playerDepth = 1500;
enemyDepth = 2000;
shotDepth = 3000;
explosionsDepth = 4000;
musicVol = 50;
names = ["FLUFFY", "WIMP", "FRIENDLY", "INTERN", "PRIVATE", "PAINMERCHANT", "KILLERNATOR", "TRIGGERFIEND", "FRAGMEISTER", "BLOODDRINKER", "HURTMAKER", "DESTROYER", "GOON", "FK'ER", "BERSERKER"];
pointsSpace = [0];
var i = 1;
while (i < names.length) {
pointsSpace[i] = pointsSpace[i - 1] + (500 * i);
i++;
}
crossHair.swapDepths(crossHairsDepth);
mapBack.swapDepths(mapBackDepth);
charStats.swapDepths(charStatsDepth);
shop.swapDepths(shopDepth);
gui.swapDepths(guiDepth);
options.swapDepths(optionsDepth);
gameover.swapDepths(gameoverDepth);
startScreen.swapDepths(startScreenDepth);
wipeOver.swapDepths(wipeOverDepth);
pnflashSplash.swapDepths(pnflashSplashDepth);
myListener = new Object();
myListener.lastHit = 0;
myListener.onKeyDown = function () {
if ((((count - this.lastHit) > 1) && (canPause)) && (inGame)) {
this.lastHit = count;
var _local2 = Key.getCode();
switch (_local2) {
case 32 :
pauseGame();
break;
case 13 :
pauseGame();
break;
case 16 :
nextWeapon();
break;
case 69 :
nextWeapon();
break;
case 80 :
pauseGame();
}
if ((_local2 > 48) && (_local2 < 54)) {
if (p.ammo[_local2 - 49] > 0) {
p.shotType = _local2 - 49;
if (sfxOn) {
var _local3 = new Sound();
_local3.attachSound("_lchangeWeapon");
_local3.start();
}
p.changeAmmo();
}
}
}
};
Key.addListener(myListener);
Enemy.extend(Sprite);
Enemy.prototype.init = function (num, x, y) {
this.level = level;
this.num = num;
this.hp = this.hpBase + (this.hpFactor * level);
this.hitDamage = this.hitDamage * level;
var _local2 = 0;
while (_local2 < this.shotPower.length) {
this.shotPower[_local2] = this.shotPower[_local2] * level;
_local2++;
}
currentRoom.currentEnemies[this.num] = this;
this.mc = theScreen.attachMovie("_l" + this.clipName, "enemy" + num, enemyDepth + num);
this.mc.myObject = this;
this.xTile = x;
this.yTile = y;
this.currentTile = currentRoom.tiles[y][x];
this.x = (this.xTile * tileW) + (tileW / 2);
this.y = (this.yTile * tileH) + (tileH / 2);
this.mc._x = this.x;
this.mc._y = this.y;
this.gotoP = Math.random() * 60;
this.hittable = true;
this.free = true;
this.shootCounter = Math.floor(Math.random() * this.shootTime);
this.gotoP = true;
currentRoom.possibleEnemies++;
};
Zombie.extend(Enemy);
Soldier.extend(Enemy);
Demon.extend(Enemy);
Sludgeman.extend(Enemy);
Boss0.extend(Enemy);
Boss1.extend(Enemy);
Enemy.prototype.hurtMe = function (damage) {
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound(this.hitSound);
_local2.start();
}
this.hp = this.hp - damage;
if (this.hp <= 0) {
score = score + this.score;
money = money + this.score;
this.hittable = false;
this.mc.gotoAndPlay("destroy");
this.mc.swapDepths(deadDepth + (deadD++));
if (deadD > 199) {
deadD = 0;
}
if ((--currentRoom.possibleEnemies) == 0) {
currentRoom.allKilledFunc();
}
if (this.givePowerUp) {
var _local3 = new Powerup(this.currentTile.x, this.currentTile.y, Math.floor(Math.random() * 6));
}
if (this.isBoss) {
if (currentRoom.barrierA.length > 0) {
for (i in currentRoom.barrierA) {
currentRoom.barrierA[i].changeTileTo(currentRoom.barrierA[i].offTile);
}
currentRoom.barrierDone = true;
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound("_ldoorClose");
_local2.start();
}
delete currentRoom.barrierA;
}
}
if (this.isSpawned) {
delete currentRoom.spawnedEnemies[this.num];
} else {
currentRoom.enemiesKilled[this.rNum] = true;
}
delete currentRoom.currentEnemies[this.num];
} else {
this.mc.gotoAndPlay("hurt");
}
};
Enemy.prototype.checkCols = function (x, y) {
var _local6 = (y + this.rad) - 1;
var _local5 = (y - this.rad) + 1;
var _local7 = (x - this.rad) + 1;
var _local8 = (x + this.rad) - 1;
for (var _local11 in currentRoom.currentEnemies) {
var _local2 = currentRoom.currentEnemies[_local11];
if (_local2 != this) {
var _local3 = x - _local2.x;
var _local4 = y - _local2.y;
if (Math.sqrt((_local3 * _local3) + (_local4 * _local4)) < ((_local2.rad + this.rad) - 1)) {
_local3 = _local7 - _local2.x;
_local4 = _local5 - _local2.y;
this.upleft = Math.sqrt((_local3 * _local3) + (_local4 * _local4)) < (_local2.rad - 1);
_local4 = _local6 - _local2.y;
this.downleft = Math.sqrt((_local3 * _local3) + (_local4 * _local4)) < (_local2.rad - 1);
_local3 = _local8 - _local2.x;
_local4 = _local5 - _local2.y;
this.upright = Math.sqrt((_local3 * _local3) + (_local4 * _local4)) < (_local2.rad - 1);
_local4 = _local6 - _local2.y;
this.downright = Math.sqrt((_local3 * _local3) + (_local4 * _local4)) < (_local2.rad - 1);
}
}
}
};
Enemy.prototype.getCorners = function (x, y) {
downY = Math.floor(((y + this.rad) - 1) / tileH);
upY = Math.floor((y - this.rad) / tileH);
leftX = Math.floor((x - this.rad) / tileW);
rightX = Math.floor(((x + this.rad) - 1) / tileW);
this.upleft = currentRoom.tiles[upY][leftX].walkable && (currentRoom.tiles[upY][leftX].damage < this.wussiness);
this.downleft = currentRoom.tiles[downY][leftX].walkable && (currentRoom.tiles[downY][leftX].damage < this.wussiness);
this.upright = currentRoom.tiles[upY][rightX].walkable && (currentRoom.tiles[upY][rightX].damage < this.wussiness);
this.downright = currentRoom.tiles[downY][rightX].walkable && (currentRoom.tiles[downY][rightX].damage < this.wussiness);
};
Enemy.prototype.budgetPF = function (dirx, diry) {
var _local2 = 0;
var _local3 = 0;
var _local4 = this.currentTile.y;
var _local5 = this.currentTile.x;
var _local13 = currentRoom.tiles[_local4 - 1][_local5].walkable && (currentRoom.tiles[_local4 - 1][_local5].damage < this.wussiness);
var _local14 = currentRoom.tiles[_local4 + 1][_local5].walkable && (currentRoom.tiles[_local4 + 1][_local5].damage < this.wussiness);
var _local12 = currentRoom.tiles[_local4][_local5 - 1].walkable && (currentRoom.tiles[_local4][_local5 - 1].damage < this.wussiness);
var _local15 = currentRoom.tiles[_local4][_local5 + 1].walkable && (currentRoom.tiles[_local4][_local5 + 1].damage < this.wussiness);
var _local9 = ((_local13 && (_local12)) && (currentRoom.tiles[_local4 - 1][_local5 - 1].walkable)) && (currentRoom.tiles[_local4 - 1][_local5 - 1].damage < this.wussiness);
var _local6 = ((_local14 && (_local12)) && (currentRoom.tiles[_local4 + 1][_local5 - 1].walkable)) && (currentRoom.tiles[_local4 + 1][_local5 - 1].damage < this.wussiness);
var _local7 = ((_local13 && (_local12)) && (currentRoom.tiles[_local4 - 1][_local5 + 1].walkable)) && (currentRoom.tiles[_local4 - 1][_local5 + 1].damage < this.wussiness);
var _local8 = ((_local14 && (_local15)) && (currentRoom.tiles[_local4 + 1][_local5 + 1].walkable)) && (currentRoom.tiles[_local4 + 1][_local5 + 1].damage < this.wussiness);
if (diry == 1) {
if ((dirx == 1) && (_local6)) {
_local2 = -1;
_local3 = 1;
} else if ((dirx == -1) && (_local8)) {
_local2 = 1;
_local3 = 1;
} else if (_local6 && (!_local8)) {
_local2 = -1;
_local3 = 1;
} else if ((!_local6) && (_local8)) {
_local2 = 1;
_local3 = 1;
} else if (Math.random() > 0.5) {
_local2 = 1;
_local3 = 1;
} else {
_local2 = -1;
_local3 = 1;
}
} else if (diry == -1) {
if ((dirx == 1) && (_local9)) {
_local2 = -1;
_local3 = -1;
} else if ((dirx == -1) && (_local7)) {
_local2 = 1;
_local3 = -1;
} else if (_local6 && (!_local7)) {
_local2 = -1;
_local3 = -1;
} else if ((!_local6) && (_local7)) {
_local2 = 1;
_local3 = -1;
} else if (Math.random() > 0.5) {
_local2 = 1;
_local3 = -1;
} else {
_local2 = -1;
_local3 = -1;
}
} else if (dirx == 1) {
if ((diry == 1) && (_local7)) {
_local2 = 1;
_local3 = -1;
} else if ((diry == -1) && (_local8)) {
_local2 = 1;
_local3 = 1;
} else if (_local7 && (!_local8)) {
_local2 = 1;
_local3 = -1;
} else if ((!_local7) && (_local8)) {
_local2 = 1;
_local3 = 1;
} else if (Math.random() > 0.5) {
_local2 = 1;
_local3 = 1;
} else {
_local2 = 1;
_local3 = -1;
}
} else if (dirx == -1) {
if ((diry == 1) && (_local9)) {
_local2 = -1;
_local3 = -1;
} else if ((diry == -1) && (_local6)) {
_local2 = -1;
_local3 = 1;
} else if (_local9 && (!_local6)) {
_local2 = -1;
_local3 = -1;
} else if ((!_local9) && (_local6)) {
_local2 = -1;
_local3 = 1;
} else if (Math.random() > 0.5) {
_local2 = -1;
_local3 = 1;
} else {
_local2 = -1;
_local3 = -1;
}
}
this.xTo = (currentRoom.tiles[_local4 + _local3][_local5 + _local2].x * tileW) + (tileW / 2);
this.yTo = (currentRoom.tiles[_local4 + _local3][_local5 + _local2].y * tileH) + (tileH / 2);
this.gotoTile = currentRoom.tiles[_local4 + _local3][_local5 + _local2];
this.gotoP = false;
this.gotoCount = 0;
};
enemiesDef = [];
enemiesDef[0] = [];
enemiesDef[1] = [Zombie, Zombie];
enemiesDef[2] = [Soldier, Soldier];
enemiesDef[3] = [Demon, Demon];
enemiesDef[4] = [Sludgeman, Sludgeman];
monsterTypes = [Zombie, Soldier, Demon, Sludgeman];
tileDesc = [];
var i = 0;
while (i < 20) {
tileDesc[i] = new walkTile(1);
i++;
}
var i = 20;
while (i < 40) {
tileDesc[i] = new permWall(false);
i++;
}
tileDesc[28] = new permWall(true);
tileDesc[40] = new walkDamageTile(10, 1);
tileDesc[41] = new walkDamageTile(5, 0.6);
tileDesc[42] = new walkTile(0.6);
tileDesc[43] = new permWall(true);
var i = 44;
while (i < 56) {
tileDesc[i] = new walkTile(0.6);
i++;
}
var i = 55;
while (i < 65) {
tileDesc[i] = new walkTile(0.8);
i++;
}
tileDesc[65] = new laserFenceGenerator(67);
tileDesc[66] = new laserFenceGenerator(142);
tileDesc[67] = new permWall(false);
tileDesc[142] = new permWall(false);
var i = 68;
while (i < 74) {
tileDesc[i] = new laserFence(i - 68);
i++;
}
var i = 74;
while (i < 80) {
tileDesc[i] = new laserFence(i - 74);
i++;
}
var i = 80;
while (i < 86) {
tileDesc[i] = new laserFence(i - 80);
i++;
}
var i = 86;
while (i < 92) {
tileDesc[i] = new laserFence(i - 86);
i++;
}
var i = 92;
while (i < 102) {
tileDesc[i] = new destroyableTile(10, changeTile, i + 10);
i++;
}
tileDesc[92] = new destroyableTile(10, changeTile, 102);
tileDesc[93] = new destroyableTile(15, changeTile, 103);
tileDesc[94] = new destroyableTile(5, changeTile, 104);
tileDesc[95] = new destroyableTile(25, changeTile, 105);
var i = 102;
while (i < 112) {
tileDesc[i] = new destroyableTile(10, changeTile, i - 102);
i++;
}
var i = 112;
while (i < 122) {
tileDesc[i] = new walkSwitch(i - 112);
i++;
}
var i = 122;
while (i < 132) {
tileDesc[i] = new switchTile(i - 122, i - 122, i - 82);
i++;
}
var i = 132;
while (i < 142) {
tileDesc[i] = new switchTile(i - 132, i - 92, i - 132);
i++;
}
tileDesc[122] = new switchTile(0, 0, 40);
tileDesc[132] = new switchTile(0, 40, 0);
tileDesc[123] = new switchTile(1, 0, 41);
tileDesc[133] = new switchTile(1, 41, 0);
tileDesc[124] = new switchTile(2, 0, 40);
tileDesc[134] = new switchTile(2, 40, 0);
tileDesc[125] = new switchTile(3, 0, 41);
tileDesc[135] = new switchTile(3, 41, 0);
var i = 144;
while (i < 158) {
tileDesc[i] = new monsterSpawners(i - 144, 20);
i++;
}
var i = 148;
while (i < 152) {
tileDesc[i] = new monsterSpawners(i - 148, 40);
i++;
}
tileDesc[152] = new permWall(true);
tileDesc[143] = new permWall(true);
var i = 161;
while (i < 165) {
tileDesc[i] = new doorTile(doorWalk, i);
i++;
}
var i = 165;
while (i < 171) {
var a = [165, 166];
tileDesc[i] = new ccTile(i - 165, a, traceYay);
i++;
}
var a = [165, 166];
tileDesc[165] = new ccTile(0, a, traceYay);
var a = [166, 165];
tileDesc[166] = new ccTile(1, a, traceYay);
var a = [167, 165];
tileDesc[167] = new ccTile(2, a, traceYay);
var a = [167, 166];
tileDesc[168] = new ccTile(3, a, traceYay);
var i = 171;
while (i < 175) {
tileDesc[i] = new permWall(false);
i++;
}
tileDesc[175] = new doorTile(doTeleport, 175);
tileDesc[176] = new doorTile(null, 176);
tileDesc[217] = new tileWalkFunction(exitLevel, null);
var i = 153;
while (i < 161) {
tileDesc[i] = new walkTile(1);
i++;
}
tileDesc[185] = new walkTile(1);
tileDesc[186] = new walkTile(1);
var i = 187;
while (i < 197) {
tileDesc[i] = new specialSpawner(i - 187);
i++;
}
var i = 197;
while (i < 207) {
tileDesc[i] = new rBarrierTile(28 + i, 0);
i++;
}
tileDesc[197] = new rBarrierTile(29, 0);
tileDesc[198] = new rBarrierTile(30, 0);
tileDesc[199] = new rBarrierTile(31, 0);
tileDesc[200] = new rBarrierTile(28, 0);
tileDesc[201] = new rBarrierTile(40, 0);
var i = 207;
while (i < 217) {
tileDesc[i] = new bossSpawner(i - 207);
i++;
}
firstMap = [[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 1]];
levelMaps = [];
var i = 0;
while (i < 6) {
levelMaps[i] = [];
i++;
}
levelMaps[0].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 20], [22, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 20], [22, 0, 93, 166, 166, 166, 166, 166, 166, 166, 166, 166, 93, 0, 20], [22, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 20], [22, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 20], [22, 0, 41, 166, 0, 0, 0, 0, 0, 0, 0, 166, 41, 0, 20], [22, 0, 41, 166, 0, 0, 0, 0, 0, 0, 0, 166, 41, 0, 20], [22, 0, 41, 166, 0, 0, 0, 0, 0, 0, 0, 166, 41, 0, 20], [22, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 20], [22, 0, 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, 0, 0, 20], [22, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 20], [22, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 20], [22, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 2, 1, 1]]);
levelMaps[0].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 94, 0, 0, 0, 94, 0, 0, 0, 0, 20], [22, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 147, 94, 0, 0, 0, 94, 147, 0, 0, 0, 20], [22, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 20], [22, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 94, 94, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 94, 0, 0, 0, 94, 0, 5, 0, 94, 0, 0, 0, 94, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 0, 0, 0, 20], [22, 0, 0, 94, 0, 94, 0, 0, 0, 94, 0, 94, 0, 0, 20], [22, 0, 94, 0, 0, 94, 10, 0, 0, 94, 0, 0, 94, 0, 20], [22, 145, 0, 0, 0, 94, 4, 0, 10, 94, 0, 0, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 4, 3]]);
levelMaps[1].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 149, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 65, 68, 69, 68, 65, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 83, 135, 135, 135, 80, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 80, 135, 193, 135, 80, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 80, 135, 135, 135, 84, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 65, 68, 68, 68, 65, 0, 20], [22, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 93, 93, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 115, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [1, 0, 1, 2]]);
levelMaps[1].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 148, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 151, 20], [22, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 123, 123, 123, 123, 123, 123, 123, 123, 0, 0, 0, 0, 20], [22, 0, 123, 123, 123, 123, 123, 123, 123, 123, 0, 0, 0, 0, 20], [22, 0, 123, 133, 133, 133, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 113, 133, 193, 133, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 123, 133, 133, 133, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 123, 123, 123, 123, 123, 123, 123, 123, 0, 0, 0, 0, 20], [22, 0, 123, 123, 123, 123, 123, 123, 123, 123, 0, 0, 0, 0, 20], [22, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 148, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 151, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 1, 2]]);
levelMaps[1].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 20], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [4, 1, 0]]);
levelMaps[2].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 40, 40, 0, 0, 0, 0, 16, 0, 0, 0, 0, 20], [22, 0, 0, 40, 40, 0, 0, 0, 0, 16, 0, 0, 0, 0, 20], [22, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 2, 2, 2]]);
levelMaps[2].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 150, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 148, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 94, 165, 165, 165, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 94, 165, 165, 165, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 94, 165, 165, 165, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 148, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 150, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [4, 2, 2, 2]]);
levelMaps[3].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 134, 134, 134, 134, 0, 0, 0, 134, 134, 134, 134, 0, 20], [22, 0, 134, 134, 134, 134, 134, 0, 134, 134, 134, 134, 134, 0, 20], [22, 0, 134, 134, 134, 134, 134, 0, 134, 134, 134, 134, 134, 0, 20], [22, 0, 134, 134, 124, 124, 124, 124, 124, 124, 124, 134, 134, 0, 20], [22, 0, 134, 134, 124, 124, 124, 124, 124, 124, 124, 134, 134, 0, 20], [22, 134, 134, 134, 124, 124, 0, 0, 0, 124, 124, 134, 134, 134, 20], [22, 0, 134, 134, 134, 134, 0, 0, 0, 134, 134, 134, 134, 0, 20], [22, 0, 134, 134, 124, 124, 0, 114, 0, 124, 124, 134, 134, 0, 20], [22, 0, 134, 134, 124, 124, 124, 124, 124, 124, 124, 134, 134, 0, 20], [22, 0, 134, 134, 124, 124, 124, 124, 124, 124, 124, 134, 134, 0, 20], [22, 0, 134, 134, 134, 134, 134, 0, 134, 134, 134, 134, 134, 0, 20], [22, 0, 0, 134, 134, 134, 134, 0, 134, 134, 134, 134, 0, 0, 20], [22, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 3, 2]]);
levelMaps[3].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 41, 41, 41, 41, 41, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 41, 41, 41, 41, 41, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 147, 0, 0, 0, 0, 0, 147, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 95, 95, 95, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 95, 193, 95, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 95, 95, 95, 0, 0, 0, 0, 0, 20], [22, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 3, 2]]);
levelMaps[4].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 0, 56, 56, 56, 56, 56, 0, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 1, 1, 3]]);
levelMaps[4].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 61, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 11, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 134, 124, 134, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 0, 0, 0, 0, 0, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 0, 0, 0, 1, 0, 134, 0, 0, 0, 20], [22, 0, 0, 0, 124, 0, 0, 0, 0, 0, 124, 0, 0, 0, 20], [22, 0, 0, 0, 134, 0, 0, 114, 0, 0, 134, 0, 0, 0, 20], [22, 0, 0, 0, 1, 134, 134, 124, 134, 134, 0, 0, 0, 0, 20], [22, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 3, 4]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 144, 0, 20], [22, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 20], [22, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 65, 68, 68, 68, 65, 72, 68, 68, 68, 65, 0, 20], [22, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 20], [22, 122, 122, 122, 0, 0, 0, 80, 0, 132, 132, 132, 0, 0, 20], [22, 122, 122, 122, 0, 5, 0, 80, 0, 41, 41, 41, 5, 0, 20], [22, 112, 122, 122, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 20], [22, 132, 122, 122, 0, 0, 0, 80, 0, 92, 92, 92, 0, 0, 20], [22, 122, 122, 122, 0, 4, 0, 65, 0, 92, 92, 92, 0, 0, 20], [22, 0, 0, 0, 3, 0, 0, 0, 0, 92, 92, 92, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [1, 0, 2, 3]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 92, 92, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 144, 0, 1, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 92, 92, 92, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 20], [22, 0, 0, 92, 92, 92, 1, 0, 3, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 1, 146, 0, 0, 0, 0, 0, 20], [22, 92, 92, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 20], [22, 0, 0, 0, 145, 0, 0, 0, 5, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [4, 0, 1, 2]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 0, 56, 56, 56, 56, 56, 0, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 56, 56, 56, 56, 56, 40, 0, 0, 0, 20], [22, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 1, 1, 3]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 20], [22, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 65, 68, 68, 68, 68, 68, 68, 68, 65, 0, 0, 20], [22, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 20], [22, 0, 0, 80, 0, 124, 124, 124, 124, 124, 0, 80, 0, 3, 20], [22, 0, 0, 80, 0, 124, 145, 0, 124, 124, 0, 84, 0, 0, 20], [22, 0, 0, 80, 0, 124, 124, 0, 124, 124, 0, 80, 0, 0, 20], [22, 0, 0, 80, 0, 124, 124, 0, 146, 124, 0, 80, 0, 0, 20], [22, 0, 0, 80, 0, 124, 124, 124, 124, 124, 0, 80, 0, 0, 20], [22, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 20], [22, 0, 3, 65, 68, 68, 68, 68, 68, 78, 68, 65, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 1, 3]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 144, 20], [22, 56, 56, 62, 56, 56, 56, 62, 56, 56, 60, 56, 59, 56, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 56, 62, 45, 48, 48, 48, 48, 48, 47, 56, 56, 56, 20], [22, 56, 56, 62, 51, 42, 42, 42, 42, 42, 49, 61, 56, 56, 20], [22, 56, 56, 56, 51, 42, 42, 42, 42, 42, 49, 56, 56, 56, 20], [22, 56, 58, 56, 51, 42, 42, 42, 42, 42, 49, 56, 56, 56, 20], [22, 56, 56, 62, 51, 42, 42, 42, 42, 42, 49, 56, 56, 56, 20], [22, 56, 56, 62, 51, 42, 42, 42, 42, 42, 49, 56, 56, 56, 20], [22, 56, 56, 62, 46, 50, 50, 50, 50, 50, 44, 56, 56, 56, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 144, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 1, 2]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 20], [22, 0, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 0, 20], [22, 0, 165, 28, 28, 28, 28, 0, 28, 28, 28, 28, 165, 0, 20], [22, 0, 165, 28, 145, 0, 0, 0, 0, 0, 1, 28, 165, 0, 20], [22, 0, 165, 28, 0, 0, 0, 0, 0, 0, 0, 28, 165, 3, 20], [22, 0, 165, 28, 0, 0, 0, 0, 0, 0, 0, 28, 165, 0, 20], [22, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 20], [22, 0, 165, 28, 197, 199, 197, 0, 0, 0, 0, 28, 165, 0, 20], [22, 0, 165, 28, 198, 187, 198, 0, 0, 0, 0, 28, 165, 0, 20], [22, 0, 165, 28, 197, 199, 197, 0, 0, 0, 145, 28, 165, 0, 20], [22, 0, 165, 28, 28, 28, 28, 0, 28, 28, 28, 28, 165, 0, 20], [22, 0, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 0, 20], [22, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 2, 3]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 197, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 193, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [2, 1, 1, 3, 2, 2, 1]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 149, 92, 0, 0, 0, 0, 0, 92, 148, 0, 0, 20], [22, 0, 0, 92, 92, 0, 0, 0, 0, 0, 92, 92, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 92, 92, 0, 0, 0, 0, 0, 92, 92, 0, 0, 20], [22, 0, 0, 148, 92, 0, 0, 0, 0, 0, 92, 149, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 2, 3]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 145, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 65, 68, 68, 71, 68, 68, 68, 68, 68, 72, 68, 68, 65, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 65, 68, 68, 68, 69, 68, 68, 68, 68, 70, 68, 73, 65, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 20], [22, 145, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 4, 2]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 20], [22, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 20], [22, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 20], [22, 40, 40, 40, 146, 0, 0, 0, 0, 0, 147, 40, 40, 40, 20], [22, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 20], [22, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 40, 40, 40, 1, 0, 0, 0, 0, 0, 0, 40, 40, 40, 20], [22, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 20], [22, 40, 40, 40, 144, 0, 0, 0, 0, 0, 145, 40, 40, 40, 20], [22, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 20], [22, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 20], [22, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 1, 4]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 94, 94, 0, 0, 0, 0, 0, 94, 94, 0, 0, 20], [22, 0, 0, 149, 94, 0, 0, 0, 0, 0, 149, 94, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 166, 166, 0, 0, 0, 0, 0, 166, 166, 0, 0, 20], [22, 0, 0, 94, 166, 166, 0, 0, 0, 166, 166, 94, 0, 0, 20], [22, 0, 0, 94, 94, 166, 0, 0, 0, 166, 94, 94, 0, 0, 20], [22, 0, 0, 145, 94, 94, 1, 1, 1, 94, 94, 145, 0, 0, 20], [22, 199, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 193, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 4, 1]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 144, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 41, 0, 0, 0, 94, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 20], [22, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [2, 0, 4, 1]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 201, 201, 201, 201, 201, 201, 201, 201, 0, 0, 20], [22, 0, 0, 0, 201, 167, 167, 167, 167, 167, 167, 201, 0, 0, 20], [22, 0, 0, 0, 201, 167, 201, 201, 201, 201, 167, 201, 0, 0, 20], [22, 0, 0, 0, 201, 167, 201, 167, 167, 201, 167, 201, 0, 0, 20], [22, 0, 0, 0, 201, 167, 201, 201, 167, 201, 167, 201, 0, 0, 20], [22, 0, 0, 0, 201, 167, 167, 167, 167, 201, 167, 201, 0, 0, 20], [22, 0, 0, 0, 201, 201, 201, 201, 201, 201, 167, 201, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 200, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 193, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [1, 0, 2, 4]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 94, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 11, 1, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 94, 0, 0, 10, 0, 0, 0, 0, 94, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 94, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 94, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 3, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 94, 0, 0, 94, 0, 0, 0, 0, 94, 0, 0, 20], [22, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 2, 4, 2, 3, 4]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 94, 94, 94, 61, 0, 61, 94, 94, 94, 0, 145, 20], [22, 0, 0, 94, 94, 94, 61, 0, 57, 94, 94, 94, 0, 0, 20], [22, 94, 94, 94, 94, 94, 61, 0, 61, 94, 94, 94, 94, 94, 20], [22, 94, 94, 94, 94, 94, 61, 0, 61, 94, 94, 94, 94, 94, 20], [22, 94, 94, 94, 94, 61, 61, 0, 61, 61, 94, 94, 94, 94, 20], [22, 61, 59, 61, 61, 58, 0, 0, 0, 61, 62, 61, 61, 62, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 20], [22, 61, 61, 61, 61, 61, 0, 0, 0, 61, 62, 61, 59, 61, 20], [22, 94, 94, 94, 94, 61, 61, 0, 61, 61, 94, 94, 94, 94, 20], [22, 94, 94, 94, 94, 94, 61, 0, 64, 94, 94, 94, 94, 94, 20], [22, 94, 94, 94, 94, 94, 61, 0, 61, 94, 94, 94, 94, 94, 20], [22, 0, 0, 94, 94, 94, 61, 0, 61, 94, 94, 94, 0, 0, 20], [22, 145, 0, 94, 94, 94, 61, 0, 61, 94, 94, 94, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 2, 4, 1]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 193, 10, 0, 0, 0, 0, 0, 20], [22, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [2, 0, 4]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 0, 0, 0, 41, 41, 41, 41, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 41, 41, 41, 41, 0, 0, 0, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 2, 2]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 115, 0, 0, 0, 0, 0, 0, 133, 133, 133, 133, 133, 114, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 133, 133, 133, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 133, 133, 133, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 133, 133, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 133, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 20], [22, 123, 123, 123, 123, 123, 0, 0, 0, 0, 0, 134, 134, 134, 20], [22, 123, 123, 123, 123, 123, 0, 0, 0, 0, 134, 134, 134, 134, 20], [22, 123, 123, 123, 123, 123, 0, 0, 0, 134, 134, 134, 134, 134, 20], [22, 123, 113, 123, 123, 123, 0, 0, 0, 134, 134, 134, 134, 134, 20], [22, 135, 133, 135, 135, 135, 0, 0, 134, 134, 134, 134, 134, 193, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 0]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 1, 2, 3, 4]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 122, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 122, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 201, 201, 201, 167, 201, 201, 201, 0, 0, 0, 20], [22, 0, 0, 0, 201, 0, 167, 0, 167, 0, 201, 0, 0, 0, 20], [22, 0, 0, 0, 201, 167, 201, 167, 201, 167, 201, 0, 0, 0, 20], [22, 0, 0, 0, 167, 4, 167, 7, 167, 1, 167, 0, 0, 0, 20], [22, 0, 0, 0, 201, 167, 201, 167, 201, 167, 201, 0, 0, 0, 20], [22, 0, 0, 0, 201, 0, 167, 0, 167, 1, 201, 0, 0, 0, 20], [22, 0, 0, 0, 201, 201, 201, 167, 201, 201, 201, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 20], [22, 199, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 122, 20], [22, 193, 198, 0, 0, 0, 0, 0, 0, 0, 0, 94, 122, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [3, 0, 1]]);
levelMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 94, 94, 0, 94, 94, 0, 94, 94, 0, 145, 94, 0, 20], [22, 0, 146, 94, 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, 20], [22, 0, 0, 94, 94, 0, 94, 94, 94, 94, 94, 0, 0, 0, 20], [22, 0, 94, 94, 94, 0, 0, 0, 0, 0, 0, 0, 94, 94, 20], [22, 0, 94, 0, 94, 0, 0, 0, 0, 0, 94, 0, 94, 0, 20], [22, 0, 0, 0, 94, 0, 0, 0, 0, 0, 94, 0, 0, 0, 20], [22, 0, 94, 0, 94, 0, 0, 0, 0, 0, 94, 0, 94, 0, 20], [22, 94, 94, 0, 0, 10, 0, 0, 0, 0, 94, 94, 94, 1, 20], [22, 0, 0, 0, 94, 94, 94, 94, 94, 0, 94, 94, 0, 0, 20], [22, 0, 94, 94, 94, 94, 0, 0, 0, 0, 0, 94, 144, 0, 20], [22, 0, 94, 147, 0, 94, 94, 0, 94, 94, 0, 94, 94, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0, 2, 2, 4]]);
var i = 0;
while (i < 8) {
var tm = [[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 1, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 0]];
var mons = Math.ceil(Math.random() * 6);
var j = 0;
while (j < mons) {
tm[tm.length - 1].push(Math.floor(Math.random() * 5));
j++;
}
levelMaps[5].push(tm);
i++;
}
exitMaps = [];
var i = 0;
while (i < 7) {
exitMaps[i] = [];
i++;
}
exitMaps[4].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 20], [22, 0, 0, 0, 0, 165, 165, 165, 165, 165, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 165, 0, 0, 145, 165, 0, 0, 0, 0, 20], [22, 0, 1, 0, 0, 165, 0, 0, 0, 165, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 165, 0, 0, 0, 165, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 165, 145, 0, 0, 165, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 165, 165, 165, 165, 165, 0, 0, 0, 0, 20], [22, 199, 199, 199, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 153, 154, 155, 198, 0, 5, 0, 0, 0, 1, 0, 0, 0, 20], [22, 156, 217, 157, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 158, 159, 160, 198, 0, 0, 0, 0, 0, 0, 6, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [1, 1, 1]]);
exitMaps[4].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 20], [22, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 146, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 199, 199, 199, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 153, 154, 155, 198, 93, 93, 93, 0, 0, 1, 0, 0, 0, 20], [22, 156, 217, 157, 198, 0, 0, 93, 0, 0, 0, 0, 0, 0, 20], [22, 158, 159, 160, 198, 147, 0, 93, 0, 0, 0, 6, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [0, 1, 1]]);
exitMaps[2].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 93, 92, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 93, 92, 0, 0, 0, 0, 0, 0, 20], [22, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 93, 92, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 93, 92, 0, 0, 0, 0, 0, 0, 20], [22, 199, 199, 199, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 153, 154, 155, 198, 0, 5, 0, 0, 0, 1, 0, 0, 0, 20], [22, 156, 217, 157, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 158, 159, 160, 198, 0, 0, 0, 0, 0, 0, 6, 0, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [4, 1, 2]]);
exitMaps[2].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 197, 199, 199, 199, 197, 148, 0, 0, 0, 20], [22, 0, 1, 0, 0, 198, 153, 154, 155, 198, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 198, 156, 217, 157, 198, 0, 0, 207, 0, 20], [22, 0, 0, 0, 0, 198, 158, 159, 160, 198, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 197, 199, 199, 199, 197, 148, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 149, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [3, 1, 4, 2]]);
exitMaps[0].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 4, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 92, 92, 0, 0, 0, 92, 92, 0, 0, 0, 20], [22, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 20], [22, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 20], [22, 199, 199, 199, 197, 42, 42, 42, 42, 42, 42, 42, 42, 42, 20], [22, 153, 154, 155, 198, 62, 60, 62, 62, 60, 60, 60, 56, 56, 20], [22, 156, 217, 157, 198, 56, 56, 56, 56, 56, 61, 57, 56, 56, 20], [22, 158, 159, 160, 198, 62, 56, 56, 58, 56, 57, 6, 57, 145, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [2, 1, 1]]);
exitMaps[0].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 144, 0, 94, 0, 0, 0, 112, 0, 0, 0, 94, 0, 145, 20], [22, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 20], [22, 94, 94, 4, 0, 0, 0, 208, 0, 0, 0, 0, 94, 94, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 1, 0, 0, 94, 94, 94, 94, 94, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 153, 154, 155, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 156, 217, 157, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 20], [22, 158, 159, 160, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [4, 1, 1]]);
exitMaps[1].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 122, 56, 56, 56, 56, 56, 56, 56, 56, 56, 122, 144, 20], [22, 122, 122, 56, 56, 56, 56, 56, 56, 56, 56, 56, 122, 122, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 6, 0, 1, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 0, 207, 0, 56, 112, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 0, 6, 3, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 197, 199, 199, 199, 20], [22, 56, 56, 56, 56, 56, 56, 56, 56, 56, 198, 153, 154, 155, 20], [22, 122, 122, 56, 56, 56, 56, 56, 56, 56, 198, 156, 217, 157, 20], [22, 145, 122, 56, 56, 56, 56, 56, 56, 56, 198, 158, 159, 160, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [2, 1, 1]]);
exitMaps[1].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 145, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 10, 0, 0, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 20], [22, 145, 0, 207, 0, 0, 201, 201, 11, 0, 0, 0, 0, 0, 20], [22, 0, 0, 7, 3, 0, 40, 40, 11, 0, 0, 0, 4, 0, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 197, 199, 199, 199, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 198, 153, 154, 155, 20], [22, 0, 0, 0, 0, 0, 40, 40, 0, 0, 198, 156, 217, 157, 20], [22, 145, 0, 0, 0, 0, 40, 40, 0, 0, 198, 158, 159, 160, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [2, 1, 1, 2]]);
exitMaps[3].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 20], [22, 0, 92, 92, 0, 0, 0, 0, 0, 92, 92, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 20], [22, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 1, 0, 3, 0, 0, 0, 197, 199, 199, 199, 20], [22, 0, 0, 92, 92, 0, 0, 92, 92, 0, 198, 153, 154, 155, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 156, 217, 157, 20], [22, 145, 0, 0, 0, 0, 0, 0, 0, 145, 198, 158, 159, 160, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [3, 1, 1]]);
exitMaps[3].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 20], [22, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 92, 92, 92, 92, 92, 92, 92, 92, 92, 197, 199, 199, 199, 20], [22, 92, 92, 92, 92, 92, 92, 92, 92, 92, 198, 153, 154, 155, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 156, 217, 157, 20], [22, 145, 0, 0, 0, 0, 0, 0, 0, 147, 198, 158, 159, 160, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [2, 1, 1, 4]]);
exitMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 4, 0, 0, 95, 40, 95, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 95, 95, 40, 95, 95, 7, 0, 0, 0, 20], [22, 0, 0, 0, 95, 95, 95, 40, 95, 95, 95, 0, 0, 0, 20], [22, 0, 1, 95, 95, 95, 153, 154, 155, 95, 95, 95, 0, 0, 20], [22, 0, 0, 40, 40, 40, 156, 217, 157, 40, 40, 40, 0, 0, 20], [22, 0, 0, 95, 95, 95, 158, 159, 160, 95, 95, 95, 0, 0, 20], [22, 0, 0, 0, 95, 95, 95, 40, 95, 95, 95, 0, 0, 0, 20], [22, 0, 0, 0, 2, 95, 95, 40, 95, 95, 1, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 95, 40, 95, 0, 1, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 150, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [1, 1, 1, 4, 2]]);
exitMaps[5].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 134, 134, 134, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 134, 134, 134, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 153, 154, 155, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 156, 217, 157, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 158, 159, 160, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 134, 134, 134, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 134, 134, 134, 134, 134, 134, 134, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 114, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [1, 1, 1, 4, 2]]);
exitMaps[6].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 20], [22, 0, 146, 93, 0, 0, 0, 0, 0, 0, 0, 93, 147, 0, 20], [22, 0, 93, 4, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 65, 68, 68, 69, 65, 0, 0, 0, 0, 20], [22, 0, 1, 0, 0, 80, 153, 154, 155, 80, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 81, 156, 217, 157, 80, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 80, 158, 159, 160, 84, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 65, 73, 68, 68, 65, 0, 0, 0, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 20], [22, 0, 145, 93, 0, 0, 0, 0, 0, 0, 0, 93, 144, 0, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [1, 1, 4, 2]]);
exitMaps[6].push([[24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25], [22, 112, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 20], [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 146, 122, 122, 20], [22, 0, 10, 0, 0, 0, 0, 0, 0, 0, 122, 122, 145, 122, 20], [22, 0, 0, 0, 0, 132, 132, 132, 132, 132, 122, 122, 122, 122, 20], [22, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 20], [22, 0, 1, 0, 132, 132, 153, 154, 155, 132, 132, 0, 0, 0, 20], [22, 0, 0, 0, 132, 132, 156, 217, 157, 132, 132, 0, 0, 0, 20], [22, 0, 0, 0, 132, 132, 158, 159, 160, 132, 132, 0, 0, 0, 20], [22, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 20], [22, 122, 122, 122, 122, 132, 132, 132, 132, 132, 0, 0, 0, 0, 20], [22, 122, 145, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 122, 122, 144, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20], [22, 122, 122, 122, 122, 0, 0, 0, 0, 0, 7, 0, 0, 0, 20], [26, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 27], [4, 1, 3, 2]]);
Sprite.prototype.getAngle = function (x, y) {
return(Math.atan2(y - this.y, x - this.x) / PiRads);
};
Sprite.prototype.getTile = function () {
return(currentRoom.tiles[Math.floor(this.y / tileH)][Math.floor(this.x / tileW)]);
};
Sprite.prototype.hurtMe = function (damage) {
var _local3 = 0;
while ((this.armour > 0) && (damage > 0)) {
this.armour = this.armour - 2;
damage = damage - 2;
_local3++;
}
damage = damage + _local3;
this.hp = this.hp - damage;
if (this.hp <= 0) {
this.hittable = false;
this.mc.gotoAndPlay("destroy");
this.mc.swapDepths(deadDepth + (deadD++));
if (deadD > 199) {
deadD = 0;
}
if (this != p) {
if ((--currentRoom.possibleEnemies) == 0) {
currentRoom.allKilledFunc();
}
delete currentRoom.currentEnemies[this.num];
}
} else {
this.mc.gotoAndPlay("hurt");
}
p.doHealth();
p.doArmour();
};
Sprite.prototype.moveChar = function (dirx, diry) {
var _local12 = null;
this.dirx = dirx;
this.diry = diry;
var _local6 = this.getTile();
var _local5 = _local6.speedFactor * this.speed;
if (diry != 0) {
this.getCorners(this.x, this.y + (_local5 * diry));
var _local3 = 0;
if (diry == -1) {
if (this.upleft and this.upright) {
_local3 = _local5 * diry;
this.y = this.y + _local3;
} else {
this.y = (this.yTile * tileH) + this.rad;
}
}
if (diry == 1) {
if (this.downleft and this.downright) {
_local3 = _local5 * diry;
this.y = this.y + _local3;
} else {
this.y = ((this.yTile + 1) * tileH) - this.rad;
}
}
}
if (dirx != 0) {
this.getCorners(this.x + (_local5 * dirx), this.y);
var _local4 = 0;
if (dirx == -1) {
if (this.downleft and this.upleft) {
_local4 = _local5 * dirx;
this.x = this.x + _local4;
} else {
this.x = (this.xTile * tileW) + this.rad;
}
}
if (dirx == 1) {
if (this.upright and this.downright) {
_local4 = _local5 * dirx;
this.x = this.x + _local4;
} else {
this.x = ((this.xTile + 1) * tileW) - this.rad;
}
}
}
for (var _local9 in currentRoom.currentEnemies) {
var _local2 = currentRoom.currentEnemies[_local9];
if (_local2 != this) {
var _local11 = this.x - _local2.x;
var _local10 = this.y - _local2.y;
if (Math.sqrt((_local11 * _local11) + (_local10 * _local10)) < ((_local2.rad + this.rad) - 1)) {
if ((_local4 > 0) && (this.x < _local2.x)) {
this.x = this.x - _local4;
} else if ((_local4 < 0) && (this.x > _local2.x)) {
this.x = this.x - _local4;
}
if ((_local3 > 0) && (this.y < _local2.y)) {
this.y = this.y - _local3;
} else if ((_local3 < 0) && (this.y > _local2.y)) {
this.y = this.y - _local3;
}
}
}
}
if (this == p) {
if (_local6 != this.currentTile) {
this.currentTile = _local6;
_local6.walkFunction(this);
}
} else {
if (_local6 != this.currentTile) {
this.currentTile = _local6;
}
var _local11 = this.x - p.x;
var _local10 = this.y - p.y;
if (Math.sqrt((_local11 * _local11) + (_local10 * _local10)) < ((p.rad + this.rad) - 1)) {
this.mc.mc.gotoAndPlay("hittingPlayer");
p.hurtMe(this.hitDamage);
this.free = false;
_local12 = this.getAngle(p.x, p.y) + 90;
if ((_local4 > 0) && (this.x < p.x)) {
this.x = this.x - _local4;
} else if ((_local4 < 0) && (this.x > p.x)) {
this.x = this.x - _local4;
}
if ((_local3 > 0) && (this.y < p.y)) {
this.y = this.y - _local3;
} else if ((_local3 < 0) && (this.y > p.y)) {
this.y = this.y - _local3;
}
} else if ((Math.abs(this.mc._x - this.x) + Math.abs(this.mc._y - this.y)) > 0.2) {
_local12 = this.getAngle(this.mc._x, this.mc._y) - 90;
this.mc.mc.walk.play();
this.moving = true;
} else {
this.mc.mc.walk.stop();
this.moving = false;
}
}
this.mc._x = this.x;
this.mc._y = this.y;
this.xTile = Math.floor(this.mc._x / tileW);
this.yTile = Math.floor(this.mc._y / tileH);
return(_local12);
};
Shot.extend(Sprite);
Shot.prototype.doSplashDamge = function () {
for (var _local5 in currentRoom.currentEnemies) {
var _local2 = currentRoom.currentEnemies[_local5];
var _local7 = this.x - _local2.x;
var _local6 = this.y - _local2.y;
if (Math.sqrt((_local7 * _local7) + (_local6 * _local6)) < (_local2.rad + this.splashRadius)) {
_local2.hurtMe(this.power);
}
}
var _local7 = this.x - p.x;
var _local6 = this.y - p.y;
if (Math.sqrt((_local7 * _local7) + (_local6 * _local6)) < (p.rad + this.power)) {
p.hurtMe(this.power);
}
var _local3 = this.getTile();
var _local4 = currentRoom.tiles;
_local3.shootFunction(this.power);
_local4[_local3.y - 1][_local3.x].shootFunction(this.power);
_local4[_local3.y][_local3.x - 1].shootFunction(this.power);
_local4[_local3.y][_local3.x + 1].shootFunction(this.power);
_local4[_local3.y][_local3.x - 1].shootFunction(this.power);
_local4[_local3.y][_local3.x + 1].shootFunction(this.power);
_local4[_local3.y + 1][_local3.x - 1].shootFunction(this.power);
_local4[_local3.y + 1][_local3.x].shootFunction(this.power);
_local4[_local3.y + 1][_local3.x + 1].shootFunction(this.power);
};
Enemy.prototype.doShot = function (direction, i) {
this.mc.mc.gotoAndPlay("shooting");
if (direction == "atPlayer") {
var _local2 = this.getAngle(p.x, p.y);
} else {
var _local2 = direction;
}
var _local3 = new Shot(this.shotType[i], this.x, this.y, this.shotPower[i], _local2, false);
};
Player.prototype.doShot = function () {
var _local9 = shotBehaviours[this.shotType];
var _local3 = _local9.levels[this.weapons[this.shotType]];
var _local5 = getAngle(this.x, this.y, _xmouse - roomX, _ymouse - roomY) - 90;
var _local7 = this.xDispl * Math.cos((_local5 - 180) * PiRads);
var _local6 = this.yDispl * Math.sin((_local5 - 180) * PiRads);
_local5 = _local5 + (2 - (Math.random() * 4));
var _local2 = 0;
while (_local2 < _local3.length) {
var _local4 = new Shot(this.shotType, this.x + _local7, this.y + _local6, _local3[_local2].power, (_local3[_local2].angle + _local5) + 90, true);
_local2++;
}
if (sfxOn) {
var _local8 = new Sound();
_local8.attachSound(_local9.soundN);
_local8.start();
}
if (this.shotType > 0) {
this.ammo[this.shotType]--;
while ((this.ammo[this.shotType] <= 0) && (this.shotType > 0)) {
this.shotType--;
}
this.changeAmmo();
}
this.mc.mc.gotoAndPlay("shooting" + this.shotType);
};
Player.prototype.changeAmmo = function () {
if (this.shotType == 0) {
gui.weaponButton0.light.gotoAndStop("inUse");
gui.ammo = "999";
} else {
gui.weaponButton0.light.gotoAndStop("available");
}
gui.weaponButton0.gotoAndStop(1);
gui.weaponButton0.onRelease = chooseWeapon;
var _local2 = 1;
while (_local2 < 5) {
gui["weaponButton" + _local2].gotoAndStop(1);
if (this.ammo[_local2] > 0) {
if (this.shotType == _local2) {
gui["weaponButton" + _local2].light.gotoAndStop("inUse");
gui.ammo = this.ammo[_local2];
} else {
gui["weaponButton" + _local2].light.gotoAndStop("available");
}
gui["weaponButton" + _local2].onRelease = chooseWeapon;
} else {
gui["weaponButton" + _local2].light.gotoAndStop("unavailable");
delete gui["weaponButton" + _local2].onRelease;
}
_local2++;
}
};
var i = 0;
while (i < 5) {
gui["weaponButton" + i].num = i;
i++;
}
shotBehaviours = [];
shotBehaviours[0] = new defShotObj();
shotBehaviours[1] = new sqrShotObj();
shotBehaviours[2] = new plasmaObj();
shotBehaviours[3] = new missileObj();
shotBehaviours[4] = new mineObj();
Player.extend(Sprite);
Player.prototype.addMC = function (entryPoint) {
this.mc = theScreen.attachMovie("_lchar", "char", playerDepth);
if ((entryPoint.num == 4) || (roomsDone == 1)) {
var _local4 = currentRoom.map[currentRoom.map.length - 1][0];
this.xTile = telePortPos[_local4].x;
this.yTile = telePortPos[_local4].y - 1;
var _local3 = theScreen.attachMovie("_lteleportInStuff", "ex" + exNum, explosionsDepth + exNum);
_local3._x = (this.xTile * tileW) + (tileW / 2);
_local3._y = (this.yTile * tileW) + (tileW / 2);
if ((++exNum) > 50) {
exNum = 0;
}
theScreen.countDown = 5;
theScreen.onEnterFrame = function () {
if ((this.countDown--) == 0) {
delete this.countDown;
currentRoom.startLevel();
}
};
} else {
this.xTile = startX0[entryPoint.num];
this.yTile = startY0[entryPoint.num];
this.sDir = entryPoint.num;
theScreen.countDown = 10;
theScreen.yDest = (startY1[entryPoint.num] * tileH) + (tileH / 2);
theScreen.xDest = (startX1[entryPoint.num] * tileW) + (tileW / 2);
theScreen.onEnterFrame = function () {
if ((this.countDown--) <= 0) {
delete this.countDown;
currentRoom.startLevel();
} else {
switch (p.sDir) {
case 0 :
if (p.y > this.yDest) {
p.moveChar(0, -1);
p.mc._rotation = 180;
}
break;
case 1 :
if (p.x > this.xDest) {
p.moveChar(-1, 0);
p.mc._rotation = 90;
}
break;
case 2 :
if (p.x < this.xDest) {
p.moveChar(1, 0);
p.mc._rotation = -90;
}
break;
case 3 :
if (p.y >= this.yDest) {
break;
}
p.moveChar(0, 1);
p.mc._rotation = 0;
}
}
};
}
this.x = (this.xTile * tileW) + (tileW / 2);
this.y = (this.yTile * tileH) + (tileH / 2);
this.currentTile = this.getTile();
this.mc._x = this.x;
this.mc._y = this.y;
this.mc.myObject = this;
this.hittable = true;
this.mc.gotoAndStop(this.frame);
this.changeAmmo();
this.doArmour();
this.doHealth();
};
Player.prototype.hurtMe = function (damage) {
if (sfxOn) {
var _local4 = new Sound();
_local4.attachSound("_lhitSound0");
_local4.start();
}
var _local3 = 0;
while ((this.armour > 0) && (damage > 0)) {
this.armour = this.armour - 2;
damage = damage - 2;
_local3++;
}
if (this.armour < 0) {
this.armour = 0;
}
damage = damage + _local3;
this.hp = this.hp - damage;
if (this.hp <= 0) {
this.hp = 0;
this.hittable = false;
this.mc.gotoAndPlay("destroy");
this.mc.swapDepths(deadDepth + (deadD++));
if (deadD > 199) {
deadD = 0;
}
gameOver();
} else {
this.mc.gotoAndPlay("hurt");
}
this.doHealth();
this.doArmour();
};
Player.prototype.doHealth = function () {
if (this.hp > 0) {
gui.health.gotoAndStop(100 - Math.floor((99 / this.maxhp) * this.hp));
} else {
gui.health.gotoAndStop(100);
}
};
Player.prototype.doArmour = function () {
if (this.armour > 0) {
gui.armour.gotoAndStop(100 - Math.floor((99 / this.maxArmour) * this.armour));
} else {
gui.armour.gotoAndStop(100);
}
};
Player.prototype.getCorners = function (x, y) {
downY = Math.floor(((y + this.rad) - 1) / tileH);
upY = Math.floor((y - this.rad) / tileH);
leftX = Math.floor((x - this.rad) / tileW);
rightX = Math.floor(((x + this.rad) - 1) / tileW);
this.upleft = currentRoom.tiles[upY][leftX].walkable;
this.downleft = currentRoom.tiles[downY][leftX].walkable;
this.upright = currentRoom.tiles[upY][rightX].walkable;
this.downright = currentRoom.tiles[downY][rightX].walkable;
};
Room.prototype.makeRoom = function (entryPoint) {
theScreen = _root.createEmptyMovieClip("screen", screenDepth);
theScreen._x = roomX;
theScreen._y = roomY;
theScreen.onPress = playerShoot;
count = 0;
myListener.lastHit = 0;
p.lastShot = 0;
n = 0;
exNum = 0;
var _local10 = this.map;
this.condition = _local10[_local10.length - 1][1];
this.tiles = [];
this.bullets = [];
this.mines = [];
this.efTiles = [];
this.doorTiles = [];
this.entryTiles = [];
this.switchT = [];
this.ccT = [];
this.barrierA = [];
this.possibleEnemies = 0;
this.allKilledFunc = null;
this.spawnersMade = 0;
this.laserFencesMade = 0;
this.destroyablesMade = 0;
this.laserFences = [];
tileD = 0;
enemyD = 0;
deadD = 0;
minesD = 0;
var _local3 = [];
if ((entryPoint.num == 4) || (roomsDone == 1)) {
var _local19 = _local10[_local10.length - 1][0];
var _local13 = telePortPos[_local19].x;
var _local14 = telePortPos[_local19].y - 1;
} else {
var _local13 = startX1[entryPoint.num];
var _local14 = startY1[entryPoint.num];
}
var _local16 = 0;
while (_local16 < mapHeight) {
this.tiles[_local16] = [];
var _local4 = 0;
while (_local4 < mapWidth) {
var _local8 = _local10[_local16][_local4];
this.tiles[_local16][_local4] = new Tile(_local8, _local16, _local4);
if (this.tiles[_local16][_local4].freeTile) {
if ((Math.abs(_local13 - _local4) + Math.abs(_local14 - _local16)) > 5) {
_local3.push(this.tiles[_local16][_local4]);
}
}
_local4++;
}
_local16++;
}
_local16 = 0;
while (_local16 < 4) {
if (this.doors[_local16] != null) {
var _local4 = 0;
while (_local4 < doorPos[_local16].length) {
var _local17 = this.tiles[doorPos[_local16][_local4].y][doorPos[_local16][_local4].x];
_local17.changeTileTo(161 + _local16);
_local17.num = _local16;
_local17.onTile = tileDesc[161 + _local16].onTile;
_local17.offTile = tileDesc[161 + _local16].offTile;
this.doorTiles.push(_local17);
_local4++;
}
}
_local16++;
}
switch (entryPoint.num) {
case 0 :
var _local12 = 3;
break;
case 1 :
_local12 = 2;
break;
case 2 :
_local12 = 1;
break;
case 3 :
_local12 = 0;
break;
case 4 :
_local12 = 4;
}
if (_local12 < 4) {
var _local4 = 0;
while (_local4 < doorPos[_local12].length) {
this.entryTiles.push(this.tiles[doorPos[_local12][_local4].y][doorPos[_local12][_local4].x]);
_local4++;
}
} else {
var _local19 = _local10[_local10.length - 1][0];
this.entryTiles.push(this.tiles[telePortPos[_local19].y][telePortPos[_local19].x]);
this.entryTiles.push(this.tiles[telePortPos[_local19].y - 1][telePortPos[_local19].x]);
}
if (this.doors[4] != null) {
var _local19 = _local10[_local10.length - 1][0];
var _local17 = this.tiles[telePortPos[_local19].y][telePortPos[_local19].x];
_local17.changeTileTo(175);
_local17.onTile = tileDesc[175].onTile;
_local17.offTile = tileDesc[175].offTile;
_local17.num = 4;
this.doorTiles.push(_local17);
_local19 = _local10[_local10.length - 1][0];
_local17 = this.tiles[telePortPos[_local19].y - 1][telePortPos[_local19].x];
_local17.changeTileTo(176);
_local17.onTile = tileDesc[176].onTile;
_local17.offTile = tileDesc[176].offTile;
this.doorTiles.push(_local17);
}
var _local22 = _local10[_local10.length];
this.currentEnemies = [];
var _local15 = _local10[_local10.length - 1];
var _local5 = 0;
_local16 = 2;
while (_local16 < _local15.length) {
var _local9 = enemiesDef[_local15[_local16]];
var _local4 = 0;
while (_local4 < _local9.length) {
if (_local5 < maxSMobs) {
var _local6 = Math.floor(Math.random() * _local3.length);
while (_local3[_local6] == "used") {
_local6 = Math.floor(Math.random() * _local3.length);
}
if (!this.enemiesKilled[_local5]) {
var _local11 = new _local9[_local4](enemyD++, _local3[_local6].x, _local3[_local6].y);
_local11.rNum = _local5;
_local3[_local6] = "used";
}
}
_local5++;
_local4++;
}
_local16++;
}
var _local21 = [];
for (_local16 in this.spawnedEnemies) {
var _local6 = Math.floor(Math.random() * _local3.length);
while (_local3[_local6] == "used") {
_local6 = Math.floor(Math.random() * _local3.length);
}
var _local11 = new this.spawnedEnemies[_local16](enemyD++, _local3[_local6].x, _local3[_local6].y);
_local11.isSpawned = true;
this.newSpawnedEnemies[_local11.num] = this.spawnedEnemies[_local16];
}
this.spawnedEnemies = _local21;
_local16 = 0;
while (_local16 < mapHeight) {
var _local4 = 0;
while (_local4 < mapWidth) {
var _local7 = this.tiles[_local16][_local4];
if (_local7.initFunc != null) {
_local7.initFunc();
}
_local4++;
}
_local16++;
}
for (_local16 in this.laserFences) {
if (this.laserFencesDestroyed[this.laserFences[_local16].lfNum]) {
this.laserFences[_local16].deactivateLF();
}
}
if (this.spawnPU) {
if (this.sUP == undefined) {
this.sUP = Math.floor(Math.random() * _local3.length);
}
var _local20 = new Powerup(_local3[this.sUP].x, _local3[this.sUP].y, this.powerUpS);
_local20.deSpawned = true;
}
p.addMC(entryPoint);
};
Room.prototype.startLevel = function () {
gui.options.onRelease = pauseGame;
if (currentRoom.possibleEnemies > 0) {
if ((this.condition > 0) && (!this.done)) {
switch (this.condition) {
case 1 :
if ((level > 1) || (this.isExit)) {
lockDoors();
} else {
lockEntryDoor();
}
this.allKilledFunc = openDoors;
this.colourUnlock = false;
break;
case 2 :
if ((level > 1) || (this.isExit)) {
lockDoors();
} else {
lockEntryDoor();
this.allKilledFunc = openEntryDoor;
}
this.colourUnlock = true;
}
} else {
this.colourUnlock = false;
this.allKilledFunc = openEntryDoor;
lockEntryDoor();
}
} else {
canPause = true;
theScreen.onEnterFrame = detectKeys;
this.colourUnlock = false;
}
};
mapBack._visible = false;
mapBack.onRelease = removeMap;
sfxOn = true;
musicOn = true;
setMusicVolume(50);
buildSupplyBase();
buildSpecialBase();
bosses = [Boss0, Boss1];
Tile.prototype.deactivateLF = function () {
this.destroyed = true;
for (var _local2 in this.fenceTiles) {
if ((--this.fenceTiles[_local2].generators) == 0) {
this.fenceTiles[_local2].destroyFunction();
}
}
this.mc.gotoAndStop(this.destroyedTile + 1);
this.shootFunction = null;
};
Tile.prototype.changeTileTo = function (tNum) {
delete currentRoom.efTiles[this.id];
this.tType = tNum;
var _local2 = tileDesc[this.tType];
this.walkable = _local2.walkable;
this.shootThrough = _local2.shootThrough;
this.walkFunction = _local2.walkFunction;
this.damage = _local2.damage;
this.shootFunction = _local2.shootFunction;
this.hp = _local2.hp;
this.efFunction = _local2.efFunction;
this.speedFactor = _local2.speedFactor;
this.efFunction = _local2.efFunction;
this.destroyedTile = _local2.destroyedTile;
if (this.efFunction != null) {
currentRoom.efTiles[this.id] = this;
}
this.mc.gotoAndStop(this.tType + 1);
};
Tile.prototype.makeExplosion = function () {
var _local3 = theScreen.attachMovie("_lexplosion", "ex" + exNum, explosionsDepth + exNum);
_local3._x = (this.x * tileW) + (tileW / 2);
_local3._y = (this.y * tileW) + (tileW / 2);
if ((++exNum) > 50) {
exNum = 0;
}
if (sfxOn) {
var _local2 = new Sound();
_local2.attachSound("_lexplosion0");
_local2.start();
}
};
Tile.prototype.finishTeleport = function () {
theScreen.removeMovieClip();
var _local4 = currentRoom.doors[4];
if (_local4.dest.isTeleporter) {
currentRoom = _local4.dest.myRoom;
row = currentRoom.row;
collumn = currentRoom.collumn;
mapRow[row][collumn].makeRoom(_local4);
} else {
var _local2 = Math.floor(Math.random() * sSize);
var _local3 = Math.floor(Math.random() * sSize);
while (mapRow[_local3][_local2] != undefined) {
_local2 = Math.floor(Math.random() * sSize);
_local3 = Math.floor(Math.random() * sSize);
}
row = _local3;
collumn = _local2;
var _local5 = new Room(1, row, collumn, this.exitRoute, _local4);
_local4.dest = _local5.doors[4];
}
};
__com_mochibot__("71bb3a29", this, 10301, true);
firstThing();
stop();
Symbol 3 MovieClip [pnFlashGames] Frame 1
#initclip 1
function bitOR(a, b) {
var _local1 = (a & 1) | (b & 1);
var _local2 = (a >>> 1) | (b >>> 1);
return((_local2 << 1) | _local1);
}
function bitXOR(a, b) {
var _local1 = (a & 1) ^ (b & 1);
var _local2 = (a >>> 1) ^ (b >>> 1);
return((_local2 << 1) | _local1);
}
function bitAND(a, b) {
var _local1 = (a & 1) & (b & 1);
var _local2 = (a >>> 1) & (b >>> 1);
return((_local2 << 1) | _local1);
}
function addme(x, y) {
var _local1 = (x & 65535) + (y & 65535);
var _local2 = ((x >> 16) + (y >> 16)) + (_local1 >> 16);
return((_local2 << 16) | (_local1 & 65535));
}
function rhex(num) {
str = "";
j = 0;
while (j <= 3) {
str = str + (hex_chr.charAt((num >> ((j * 8) + 4)) & 15) + hex_chr.charAt((num >> (j * 8)) & 15));
j++;
}
return(str);
}
function str2blks_MD5(str) {
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16);
i = 0;
while (i < (nblk * 16)) {
blks[i] = 0;
i++;
}
i = 0;
while (i < str.length) {
blks[i >> 2] = blks[i >> 2] | (str.charCodeAt(i) << ((((str.length * 8) + i) % 4) * 8));
i++;
}
blks[i >> 2] = blks[i >> 2] | (128 << ((((str.length * 8) + i) % 4) * 8));
var _local2 = str.length * 8;
blks[(nblk * 16) - 2] = _local2 & 255;
blks[(nblk * 16) - 2] = blks[(nblk * 16) - 2] | (((_local2 >>> 8) & 255) << 8);
blks[(nblk * 16) - 2] = blks[(nblk * 16) - 2] | (((_local2 >>> 16) & 255) << 16);
blks[(nblk * 16) - 2] = blks[(nblk * 16) - 2] | (((_local2 >>> 24) & 255) << 24);
return(blks);
}
function rol(num, cnt) {
return((num << cnt) | (num >>> (32 - cnt)));
}
function cmn(q, a, b, x, s, t) {
return(addme(rol(addme(addme(a, q), addme(x, t)), s), b));
}
function ff(a, b, c, d, x, s, t) {
return(cmn(bitOR(bitAND(b, c), bitAND(~b, d)), a, b, x, s, t));
}
function gg(a, b, c, d, x, s, t) {
return(cmn(bitOR(bitAND(b, d), bitAND(c, ~d)), a, b, x, s, t));
}
function hh(a, b, c, d, x, s, t) {
return(cmn(bitXOR(bitXOR(b, c), d), a, b, x, s, t));
}
function ii(a, b, c, d, x, s, t) {
return(cmn(bitXOR(c, bitOR(b, ~d)), a, b, x, s, t));
}
function calcMD5(str) {
x = str2blks_MD5(str);
a = 1732584193 /* 0x67452301 */;
b = -271733879;
c = -1732584194;
d = 271733878 /* 0x10325476 */;
var _local1;
i = 0;
while (i < x.length) {
olda = a;
oldb = b;
oldc = c;
oldd = d;
_local1 = 0;
a = ff(a, b, c, d, x[i + 0], 7, -680876936);
d = ff(d, a, b, c, x[i + 1], 12, -389564586);
c = ff(c, d, a, b, x[i + 2], 17, 606105819);
b = ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = ff(a, b, c, d, x[i + 4], 7, -176418897);
d = ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = ff(b, c, d, a, x[i + 7], 22, -45705983);
a = ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = ff(c, d, a, b, x[i + 10], 17, -42063);
b = ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = ff(d, a, b, c, x[i + 13], 12, -40341101);
c = ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = gg(a, b, c, d, x[i + 1], 5, -165796510);
d = gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = gg(c, d, a, b, x[i + 11], 14, 643717713);
b = gg(b, c, d, a, x[i + 0], 20, -373897302);
a = gg(a, b, c, d, x[i + 5], 5, -701558691);
d = gg(d, a, b, c, x[i + 10], 9, 38016083);
c = gg(c, d, a, b, x[i + 15], 14, -660478335);
b = gg(b, c, d, a, x[i + 4], 20, -405537848);
a = gg(a, b, c, d, x[i + 9], 5, 568446438);
d = gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = gg(c, d, a, b, x[i + 3], 14, -187363961);
b = gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = gg(d, a, b, c, x[i + 2], 9, -51403784);
c = gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = hh(a, b, c, d, x[i + 5], 4, -378558);
d = hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = hh(b, c, d, a, x[i + 14], 23, -35309556);
a = hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = hh(c, d, a, b, x[i + 7], 16, -155497632);
b = hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = hh(a, b, c, d, x[i + 13], 4, 681279174);
d = hh(d, a, b, c, x[i + 0], 11, -358537222);
c = hh(c, d, a, b, x[i + 3], 16, -722521979);
b = hh(b, c, d, a, x[i + 6], 23, 76029189);
a = hh(a, b, c, d, x[i + 9], 4, -640364487);
d = hh(d, a, b, c, x[i + 12], 11, -421815835);
c = hh(c, d, a, b, x[i + 15], 16, 530742520);
b = hh(b, c, d, a, x[i + 2], 23, -995338651);
a = ii(a, b, c, d, x[i + 0], 6, -198630844);
d = ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = ii(b, c, d, a, x[i + 5], 21, -57434055);
a = ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = ii(c, d, a, b, x[i + 10], 15, -1051523);
b = ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = ii(d, a, b, c, x[i + 15], 10, -30611744);
c = ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = ii(a, b, c, d, x[i + 4], 6, -145523070);
d = ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = ii(c, d, a, b, x[i + 2], 15, 718787259);
b = ii(b, c, d, a, x[i + 9], 21, -343485551);
a = addme(a, olda);
b = addme(b, oldb);
c = addme(c, oldc);
d = addme(d, oldd);
i = i + 16;
}
return(((rhex(a) + rhex(b)) + rhex(c)) + rhex(d));
}
var hex_chr = "0123456789abcdef";
pnFlashGames = function () {
this.gid = _root.pn_gid;
this.uname = _root.pn_uname;
this.License = _root.pn_license;
this.CheckSum = _root.pn_checksum;
this.Domain = _root.pn_domain;
this._modvalue = "pnFlashGames";
this._modvar = "module";
this._script = "index.php";
if (_root.pn_modvalue != null) {
this._modvalue = _root.pn_modvalue;
}
if (_root.pn_modvar != null) {
this._modvar = _root.pn_modvar;
}
if (_root.pn_script != null) {
this._script = _root.pn_script;
}
this._autoupdate = false;
if (_root.pn_autoupdate == "true") {
this._autoupdate = true;
}
if (_root.pn_extravars != null) {
this._extravars = new Array();
temppairs = _root.pn_extravars.split("|");
x = 0;
while (x < temppairs.length) {
tempset = temppairs[x].split("~");
this._extravars.push(tempset);
x++;
}
} else {
this._extravars = null;
}
this.busy = false;
this.gameSaved = null;
this.gameLoaded = null;
this.gameScoresLoaded = null;
this.gameScores = null;
this.scoreStored = null;
this.gameData = "";
this.buildKey();
this.confirmKey();
};
pnFlashGames.prototype = new MovieClip();
pnFlashGames.prototype.saveGame = function (gameData) {
this.busy = true;
varsObj = new LoadVars();
varsObj.func = "saveGame";
varsObj.gid = this.gid;
varsObj.gameData = gameData;
varsObj.type = "user";
varsObj[this._modvar] = this._modvalue;
varsObj.parent = this;
varsObj.onLoad = this.saveGame_Result;
if (this._extravars != null) {
x = 0;
while (x < this._extravars.length) {
varsObj[this._extravars[x][0]] = this._extravars[x][1];
x++;
}
}
if (this.debugMode) {
this.debugOutput(varsObj);
} else {
varsObj.sendAndLoad(this._script, varsObj, "POST");
}
};
pnFlashGames.prototype.saveGame_Result = function (success) {
this.parent._parent.incoming = this.opSuccess;
if (this.opSuccess == "true") {
this.parent.gameSaved = true;
} else {
this.parent.gameSaved = false;
}
this.parent.busy = false;
};
pnFlashGames.prototype.loadGame = function () {
this.busy = true;
varsObj = new LoadVars();
varsObj.func = "loadGame";
varsObj.gid = this.gid;
varsObj.type = "user";
varsObj[this._modvar] = this._modvalue;
varsObj.parent = this;
varsObj.onLoad = this.loadGame_Result;
if (this._extravars != null) {
x = 0;
while (x < this._extravars.length) {
varsObj[this._extravars[x][0]] = this._extravars[x][1];
x++;
}
}
if (this.debugMode) {
this.debugOutput(varsObj);
} else {
varsObj.sendAndLoad(this._script, varsObj, "POST");
}
};
pnFlashGames.prototype.loadGame_Result = function (success) {
if (this.opSuccess == "true") {
this.parent.gameLoaded = true;
this.parent.gameData = gameData;
} else {
this.parent.gameLoaded = false;
}
if (this.parent.onLoadGame != null) {
this.parent.onLoadGame(this.gameData);
}
this.parent.busy = false;
};
pnFlashGames.prototype.storeScore = function (score) {
this.busy = true;
varsObj = new LoadVars();
varsObj.score = score;
varsObj.func = "storeScore";
varsObj.gid = this.gid;
varsObj.type = "user";
varsObj[this._modvar] = this._modvalue;
varsObj.parent = this;
varsObj.onLoad = this.storeScore_Result;
if (this._extravars != null) {
x = 0;
while (x < this._extravars.length) {
varsObj[this._extravars[x][0]] = this._extravars[x][1];
x++;
}
}
if (this.debugMode) {
this.debugOutput(varsObj);
} else {
varsObj.sendAndLoad(this._script, varsObj, "POST");
}
};
pnFlashGames.prototype.storeScore_Result = function (success) {
if (this.opSuccess == "true") {
this.parent.scoreStored = true;
if (this.parent._autoupdate) {
_root.getURL("javascript:refreshScores();");
}
} else {
this.parent.scoreStored = false;
}
this.parent.busy = false;
};
pnFlashGames.prototype.loadGameScores = function () {
this.busy = true;
varsObj = new LoadVars();
varsObj.func = "loadGameScores";
varsObj.gid = this.gid;
varsObj.type = "user";
varsObj[this._modvar] = this._modvalue;
varsObj.parent = this;
varsObj.onLoad = this.loadGameScores_Result;
if (this._extravars != null) {
x = 0;
while (x < this._extravars.length) {
varsObj[this._extravars[x][0]] = this._extravars[x][1];
x++;
}
}
if (this.debugMode) {
this.debugOutput(varsObj);
} else {
varsObj.sendAndLoad(this._script, varsObj, "POST");
}
};
pnFlashGames.prototype.loadGameScores_Result = function (success) {
if (this.opSuccess == "true") {
this.parent.gameScoresLoaded = true;
this.parent.gameScores = new XML(this.gameScores);
} else {
this.parent.gameScoresLoaded = false;
}
if (this.parent.onLoadGameScores != null) {
this.parent.onLoadGameScores(this.gameScores);
}
this.parent.busy = false;
};
pnFlashGames.prototype.debugOutput = function (vars) {
debug = "";
debug = debug + (("Function: " + vars.func) + newline);
switch (vars.func) {
case "storeScore" :
debug = debug + ("Score: " + vars.score);
break;
case "saveGame" :
debug = debug + ("Saving: " + vars.gameData);
break;
case "loadGame" :
debug = debug + "Loading data....";
break;
case "getGameScores" :
debug = debug + "Getting scores for this game....";
}
trace(debug);
};
pnFlashGames.prototype.buildKey = function () {
domainparts = this.Domain.split(".");
tempkey = (((domainparts[1] + "*") + this.CheckSum) + "*") + domainparts[0];
this.CheckKey = calcMD5(tempkey);
tempkey = "";
return(undefined);
};
pnFlashGames.prototype.confirmKey = function () {
if (!this.debugMode) {
if (this.License == this.CheckKey) {
return(true);
}
this.swapDepths(999999);
stopAllSounds();
_root.getURL("http://pnflashgames.com/licensefail.php", "_blank", "POST");
this.gotoAndStop("error");
} else {
return(true);
}
};
Object.registerClass("pnFlashGames", pnFlashGames);
#endinitclip
stop();
Symbol 3 MovieClip [pnFlashGames] Frame 5
stop();
stopAllSounds();
_root.gotoAndStop(1);
delete _root.enterFrame;
for (i in _root) {
if (i != _name) {
_root[i].removeMovieClip();
_root[i].unloadMovie();
}
}
blocker.useHandCursor = false;
_root.createEmptyMovieClip("errScreen", 5000000);
_root.errScreen.createTextField("message", 1, 0, 0, 300, 500);
_root.errScreen.message.type = "dynamic";
_root.errScreen.message.autoSize = "center";
_root.errScreen.message.textColor = 6710886 /* 0x666666 */;
_root.errScreen.message.html = true;
_root.errScreen.message.wordWrap = true;
_root.errScreen.message._width = Stage.width - 10;
_root.errScreen.message.htmlText = ("<b>This game is released under the Common Game License (CGL). Altering of its source code and distribution of this .swf file is strictly forbidden. Please review the requirements on the page that just loaded. If you suspect software piracy, please report it by email: <font color='#0000FF'><u><a href='mailto:piracy@pnflashgames.com?subject=Possible%20piracy%20on%20" + this.Domain) + "'>piracy@pnflashgames.com</a></u></font></b>";
_root.errScreen.message._x = (Stage.width / 2) - (_root.errScreen.message._width / 2);
_root.errScreen.message._y = (Stage.height / 2) - (_root.errScreen.message._height / 2);
Sound.setVolume(0);
Symbol 18 MovieClip Frame 1
stop();
Symbol 18 MovieClip Frame 2
play();
Symbol 18 MovieClip Frame 11
this._parent.myObject.free = true;
Symbol 18 MovieClip Frame 12
play();
Symbol 18 MovieClip Frame 18
this._parent.myObject.free = true;
Symbol 25 MovieClip [_lSludgeman] Frame 1
stop();
Symbol 25 MovieClip [_lSludgeman] Frame 9
if (this.myObject.hittable) {
gotoAndStop (1);
}
Symbol 25 MovieClip [_lSludgeman] Frame 10
play();
Symbol 25 MovieClip [_lSludgeman] Frame 30
this.removeMovieClip();
Symbol 36 MovieClip [_lexplosion] Frame 1
ex0._x = (Math.random() * 12) - 6;
ex0._y = (Math.random() * 12) - 6;
Symbol 36 MovieClip [_lexplosion] Frame 5
ex1._x = (Math.random() * 12) - 6;
ex1._y = (Math.random() * 12) - 6;
Symbol 36 MovieClip [_lexplosion] Frame 8
ex2._x = (Math.random() * 12) - 6;
ex2._y = (Math.random() * 12) - 6;
Symbol 36 MovieClip [_lexplosion] Frame 18
this.removeMovieClip();
Symbol 43 MovieClip Frame 1
stop();
Symbol 50 MovieClip Frame 1
stop();
Symbol 50 MovieClip Frame 2
stop();
Symbol 50 MovieClip Frame 3
stop();
Symbol 56 MovieClip Frame 1
stop();
Symbol 56 MovieClip Frame 2
stop();
Symbol 61 MovieClip Frame 1
stop();
Symbol 61 MovieClip Frame 2
stop();
Symbol 66 MovieClip Frame 1
stop();
Symbol 66 MovieClip Frame 2
stop();
Symbol 71 MovieClip Frame 1
stop();
Symbol 71 MovieClip Frame 2
stop();
Symbol 76 MovieClip Frame 1
stop();
Symbol 76 MovieClip Frame 2
stop();
Symbol 79 MovieClip Frame 1
stop();
Symbol 79 MovieClip Frame 2
stop();
Symbol 88 MovieClip Frame 1
stop();
Symbol 101 MovieClip [_lbullet] Frame 1
stop();
Symbol 101 MovieClip [_lbullet] Frame 2
play();
Symbol 101 MovieClip [_lbullet] Frame 6
this.removeMovieClip();
Symbol 102 MovieClip [_linfo] Frame 28
this.removeMovieClip();
Symbol 113 MovieClip [_lmine] Frame 1
stop();
Symbol 113 MovieClip [_lmine] Frame 2
play();
Symbol 113 MovieClip [_lmine] Frame 10
this.removeMovieClip();
Symbol 123 MovieClip Frame 11
gotoAndPlay ("loop");
Symbol 128 MovieClip [_lmissile] Frame 1
stop();
Symbol 128 MovieClip [_lmissile] Frame 2
play();
Symbol 128 MovieClip [_lmissile] Frame 11
this.removeMovieClip();
Symbol 139 MovieClip [_lplasma] Frame 1
stop();
Symbol 139 MovieClip [_lplasma] Frame 2
play();
Symbol 139 MovieClip [_lplasma] Frame 7
this.removeMovieClip();
Symbol 156 MovieClip Frame 1
stop();
Symbol 157 MovieClip [_lpowerup] Frame 12
stop();
Symbol 157 MovieClip [_lpowerup] Frame 13
play();
Symbol 157 MovieClip [_lpowerup] Frame 23
this.removeMovieClip();
Symbol 160 MovieClip [_lspawnlight] Frame 7
this.removeMovieClip();
Symbol 167 MovieClip [_lteleportInStuff] Frame 7
stop();
this.removeMovieClip();
Symbol 173 MovieClip Frame 1
this._rotation = Math.random() * 360;
this._xscale = (this._yscale = 80 + (Math.random() * 40));
gotoAndPlay(Math.ceil(Math.random() * 8));
Symbol 331 MovieClip Frame 1
stop();
Symbol 331 MovieClip Frame 2
stop();
Symbol 394 MovieClip [_ltile] Frame 1
stop();
Symbol 400 MovieClip Frame 1
Symbol 423 MovieClip Frame 1
stop();
Symbol 423 MovieClip Frame 2
play();
Symbol 423 MovieClip Frame 5
this._parent.myObject.free = true;
if (this._parent.myObject.hittable) {
gotoAndStop (1);
}
Symbol 423 MovieClip Frame 6
play();
Symbol 423 MovieClip Frame 9
this._parent.myObject.free = true;
if (this._parent.myObject.hittable) {
gotoAndStop (1);
}
Symbol 423 MovieClip Frame 10
play();
Symbol 423 MovieClip Frame 22
this._parent.myObject.free = true;
if (this._parent.myObject.hittable) {
gotoAndStop (1);
}
Symbol 424 MovieClip [_lchar] Frame 1
stop();
Symbol 424 MovieClip [_lchar] Frame 3
play();
Symbol 424 MovieClip [_lchar] Frame 6
if (this.myObject.hittable) {
gotoAndStop (1);
}
Symbol 424 MovieClip [_lchar] Frame 10
play();
Symbol 424 MovieClip [_lchar] Frame 20
this.removeMovieClip();
Symbol 424 MovieClip [_lchar] Frame 53
stop();
this._parent._parent.finishExit();
Symbol 448 MovieClip Frame 1
stop();
Symbol 448 MovieClip Frame 2
play();
Symbol 448 MovieClip Frame 17
this._parent.myObject.free = true;
Symbol 448 MovieClip Frame 18
play();
Symbol 448 MovieClip Frame 26
this._parent.myObject.free = true;
Symbol 457 MovieClip [_lZombie] Frame 1
stop();
Symbol 457 MovieClip [_lZombie] Frame 9
if (this.myObject.hittable) {
gotoAndStop (1);
}
Symbol 457 MovieClip [_lZombie] Frame 10
play();
Symbol 457 MovieClip [_lZombie] Frame 31
this.removeMovieClip();
Symbol 464 MovieClip Frame 1
stop();
Symbol 464 MovieClip Frame 2
play();
Symbol 464 MovieClip Frame 10
this._parent.myObject.free = true;
Symbol 464 MovieClip Frame 11
play();
Symbol 464 MovieClip Frame 13
this._parent.myObject.free = true;
Symbol 472 MovieClip [_lSoldier] Frame 1
stop();
Symbol 472 MovieClip [_lSoldier] Frame 9
if (this.myObject.hittable) {
gotoAndStop (1);
}
Symbol 472 MovieClip [_lSoldier] Frame 10
play();
Symbol 472 MovieClip [_lSoldier] Frame 33
this.removeMovieClip();
Symbol 481 MovieClip Frame 1
stop();
Symbol 481 MovieClip Frame 2
play();
Symbol 482 MovieClip Frame 1
play();
Symbol 482 MovieClip Frame 3
this._parent.myObject.free = true;
Symbol 485 MovieClip [_lBoss0] Frame 1
stop();
Symbol 485 MovieClip [_lBoss0] Frame 6
play();
Symbol 485 MovieClip [_lBoss0] Frame 9
if (this.myObject.hittable) {
gotoAndStop (1);
}
Symbol 485 MovieClip [_lBoss0] Frame 10
play();
Symbol 485 MovieClip [_lBoss0] Frame 45
this.removeMovieClip();
Symbol 487 MovieClip Frame 1
play();
Symbol 487 MovieClip Frame 3
this._parent.myObject.free = true;
Symbol 488 MovieClip [_lBoss1] Frame 1
stop();
Symbol 488 MovieClip [_lBoss1] Frame 6
play();
Symbol 488 MovieClip [_lBoss1] Frame 9
if (this.myObject.hittable) {
gotoAndStop (1);
}
Symbol 488 MovieClip [_lBoss1] Frame 10
play();
Symbol 488 MovieClip [_lBoss1] Frame 45
this.removeMovieClip();
Symbol 519 MovieClip Frame 1
stop();
Symbol 519 MovieClip Frame 2
stop();
Symbol 519 MovieClip Frame 3
stop();
Symbol 523 MovieClip Frame 1
stop();
Symbol 523 MovieClip Frame 2
stop();
Symbol 523 MovieClip Frame 3
stop();
Symbol 525 MovieClip Frame 1
stop();
Symbol 525 MovieClip Frame 2
stop();
Symbol 525 MovieClip Frame 3
stop();
Symbol 528 MovieClip Frame 1
stop();
Symbol 528 MovieClip Frame 2
stop();
Symbol 534 MovieClip Frame 1
stop();
Symbol 534 MovieClip Frame 2
stop();
Symbol 534 MovieClip Frame 3
stop();
Symbol 535 MovieClip Frame 1
slideConstr = 75;
slideButton.onPress = function () {
this.startDrag(false, -slideConstr, 0, slideConstr, 0);
this.gotoAndStop(2);
};
slideButton.onRelease = (slideButton.onReleaseOutside = function () {
this.stopDrag();
this.gotoAndStop(1);
var _local2 = Math.ceil((100 / (slideConstr * 2)) * (this._x + slideConstr));
this._parent._parent._parent.setMusicVolume(_local2);
});
slideButton.onRollOver = function () {
this.gotoAndStop(3);
};
slideButton.onRollOut = function () {
this.gotoAndStop(1);
};
bg.onRelease = function () {
var _local2 = Math.ceil((100 / (slideConstr * 2)) * (this._xmouse + slideConstr));
slideButton._x = this._xmouse;
this._parent._parent._parent.setMusicVolume(_local2);
};
slideButton._x = -75 + (1.5 * this._parent._parent.musicVol);
Symbol 537 MovieClip Frame 1
stop();
Symbol 537 MovieClip Frame 2
stop();
Symbol 537 MovieClip Frame 3
stop();
Symbol 539 MovieClip Frame 1
stop();
Symbol 539 MovieClip Frame 2
stop();
Symbol 539 MovieClip Frame 3
stop();
Symbol 542 MovieClip Frame 1
stop();
Symbol 542 MovieClip Frame 2
stop();
Symbol 542 MovieClip Frame 3
stop();
Symbol 543 MovieClip Frame 1
returnToGame.onRelease = this._parent.pauseGame;
viewMap.onRelease = this._parent.showMap;
sfxButton.onRelease = this._parent.toggleSFX;
musicButton.onRelease = this._parent.toggleMusic;
viewChar.onRelease = this._parent.populateStats;
quitButton.onRelease = this._parent.quitGame;
Symbol 548 MovieClip Frame 1
stop();
Symbol 548 MovieClip Frame 2
stop();
Symbol 548 MovieClip Frame 3
stop();
Symbol 557 MovieClip Frame 1
stop();
Symbol 557 MovieClip Frame 2
stop();
Symbol 562 MovieClip Frame 1
stop();
Symbol 562 MovieClip Frame 2
stop();
Symbol 567 MovieClip Frame 1
stop();
Symbol 567 MovieClip Frame 2
stop();
Symbol 572 MovieClip Frame 1
stop();
Symbol 572 MovieClip Frame 2
stop();
Symbol 580 MovieClip Frame 1
stop();
Symbol 580 MovieClip Frame 2
stop();
Symbol 580 MovieClip Frame 3
stop();
Symbol 583 MovieClip Frame 1
stop();
Symbol 583 MovieClip Frame 2
stop();
Symbol 583 MovieClip Frame 3
stop();
Symbol 586 MovieClip Frame 1
stop();
Symbol 586 MovieClip Frame 2
stop();
Symbol 586 MovieClip Frame 3
stop();
Symbol 590 MovieClip Frame 1
stop();
Symbol 590 MovieClip Frame 2
stop();
me.onRelease = function () {
getURL ("http://www.utterlysuperb.com", "_blank");
};
pnflash.onRelease = function () {
getURL ("http://www.pnflashgames.com", "_blank");
};
tonypa.onRelease = function () {
getURL ("http://www.tonypa.pri.ee/tbw/", "_blank");
};
Symbol 590 MovieClip Frame 3
stop();
Symbol 590 MovieClip Frame 4
stop();
sfxButton.onRelease = this._parent.toggleSFX;
musicButton.onRelease = this._parent.toggleMusic;
if (!this._parent.sfxOn) {
sfxTickbox.gotoAndStop(2);
}
if (!this._parent.musicOn) {
musicTickbox.gotoAndStop(2);
}
Symbol 601 MovieClip Frame 1
stop();
Symbol 601 MovieClip Frame 2
stop();
Symbol 601 MovieClip Frame 3
stop();
Symbol 615 MovieClip Frame 1
stop();
Symbol 615 MovieClip Frame 2
stop();
Symbol 677 MovieClip Frame 1
stop();
Symbol 677 MovieClip Frame 2
stop();
Symbol 677 MovieClip Frame 3
stop();
Symbol 699 MovieClip Frame 1
back.onRelease = function () {
this._parent._visible = false;
this._parent._parent.options._visible = true;
};
Symbol 710 MovieClip Frame 1
stop();
Symbol 710 MovieClip Frame 2
play();
Symbol 710 MovieClip Frame 57
this._parent.endPopulate();
Symbol 710 MovieClip Frame 72
this._visible = false;
Symbol 716 Button
on (release) {
getURL ("http://www.pnflashgames.com", "_blank");
}
Symbol 717 MovieClip Frame 1
back.onRelease = function () {
this._parent._visible = false;
this._parent._parent.options._visible = true;
};
Symbol 720 MovieClip Frame 1
stop();
Symbol 720 MovieClip Frame 2
play();
Symbol 720 MovieClip Frame 6
this.func();
Symbol 720 MovieClip Frame 10
this._visible = false;