Section 1
//ag_intro_mc_1 (galaxydefender_fla.ag_intro_mc_1)
package galaxydefender_fla {
import flash.display.*;
public dynamic class ag_intro_mc_1 extends MovieClip {
public function ag_intro_mc_1(){
addFrameScript(217, frame218);
}
function frame218(){
MovieClip(parent).nextFrame();
}
}
}//package galaxydefender_fla
Section 2
//andromedusIntro_mc_4 (galaxydefender_fla.andromedusIntro_mc_4)
package galaxydefender_fla {
import flash.display.*;
public dynamic class andromedusIntro_mc_4 extends MovieClip {
public function andromedusIntro_mc_4(){
addFrameScript(150, frame151);
}
function frame151(){
MovieClip(parent).nextFrame();
}
}
}//package galaxydefender_fla
Section 3
//getReady_mc_70 (galaxydefender_fla.getReady_mc_70)
package galaxydefender_fla {
import flash.display.*;
import flash.text.*;
public dynamic class getReady_mc_70 extends MovieClip {
public var level:TextField;
}
}//package galaxydefender_fla
Section 4
//levelButtonHolder_mc_96 (galaxydefender_fla.levelButtonHolder_mc_96)
package galaxydefender_fla {
import flash.display.*;
public dynamic class levelButtonHolder_mc_96 extends MovieClip {
public var level1:levelThumb;
public var level2:levelThumb;
public var level3:levelThumb;
}
}//package galaxydefender_fla
Section 5
//levelUp_mc_68 (galaxydefender_fla.levelUp_mc_68)
package galaxydefender_fla {
import flash.display.*;
import flash.text.*;
public dynamic class levelUp_mc_68 extends MovieClip {
public var shieldBonus:TextField;
public var livesBonus:TextField;
public var continueButton:SimpleButton;
public var ammoBonus:TextField;
}
}//package galaxydefender_fla
Section 6
//MainTimeline (galaxydefender_fla.MainTimeline)
package galaxydefender_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.net.*;
import flash.filters.*;
import flash.utils.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.geom.*;
import flash.printing.*;
import flash.system.*;
import flash.ui.*;
import flash.xml.*;
import fl.transitions.easing.*;
public dynamic class MainTimeline extends MovieClip {
public var buttonDistToTarget:Number;
public var menuMusic:gdMenu;
public var drawing:Graphics;
public var stageAssets:MovieClip;
public var gameWonSound:gameComplete;
public var greenValue:Number;
public var bonusSound:bonus;
public var buttonSpeed:Number;
public var shootSound:shoot;
public var vpxTheta:Number;
public var highscores:highscores_mc;
public var speed:Number;
public var vpSpeedY:Number;
public var vpSpeedX:Number;
public var SF_numberOfStars:uint;
public var bm:Bitmap;
public var preventQuit:Boolean;
public var bulletSpeed:Number;
public var sfxTransform:SoundTransform;
public var preloader:preloader_mc;
public var tickerSection:uint;
public var writeScoresURL:String;
public var deltaWC:Number;
public var finished:Boolean;
public var numberOfLevels;
public var bulletEArray:Array;
public var readScoresURL:String;
public var shipAcc:Number;
public var widthCurvature:Number;
public var SF_star:Array;
public var firingProbability:Number;
public var SF_canvas:Sprite;
public var sfxChannel:SoundChannel;
public var gameOverSound:gameEnded;
public var submitSuccess:Boolean;
public var vpH:Number;
public var minVPHeight:Number;
public var fpsCounter:Number;
public var wcSpeed:Number;
public var levelComplete:Boolean;
public var vpX:Number;
public var vpY:Number;
public var numberOfTriggers:uint;
public var vpyTheta:Number;
public var SF_vpY:Number;
public var fps:Number;
public var SF_vpX:Number;
public var gameWidth:uint;
public var enemyHitSound:enemyHit;
public var hsLoader:URLLoader;
public var numberOfFragments:uint;
public var lives:int;
public var playerDeadSound:playerDead;
public var background:background_mc;
public var confirmQuit:confirmQuit_mc;
public var vpCentre:Boolean;
public var gui:gui_mc;
public var lastCollision:Object;
public var currentURL:String;
public var blueValue:Number;
public var securityOn:Boolean;
public var soundToggle:soundToggle_mc;
public var highestLevel:uint;
public var armorButton:MovieClip;
public var gameMusic:gdGame;
public var menu:menu_mc;
public var shipVMax:Number;
public var preventFiring:Boolean;
public var particlesOn:Boolean;
public var gameRunning:Boolean;
public var tickerArray:Array;
public var objectCanvas:Sprite;
public var bmd:BitmapData;
public var currentLevel:uint;
public var lastButtonPressed:String;
public var musicVolume:Number;
public var levelSelect:levelSelect_mc;
public var leftKeyDown:Boolean;
public var instructions:instructions_mc;
public var levelDataArray:Array;
public var fpsElapsedTime:Number;
public var startLives:uint;
public var projectCanvas:Sprite;
public var musicToggle:musicToggle_mc;
public var rightKeyDown:Boolean;
public var fragmentArray:Array;
public var maxVPHeight:Number;
public var numberOfObjects:uint;
public var adjusting:Boolean;
public var shipVDamping:Number;
public var weapon:int;
public var finishLineSound:finishLine;
public var levelButtonStart:Number;
public var ship:ship_mc;
public var flareX:Number;
public var flareY:Number;
public var levelInfo:levelInfo_mc;
public var debug:debug_mc;
public var bulletXSpeed:Number;
public var SF_length:Number;
public var so:SharedObject;
public var objectArray:Array;
public var health:int;
public var flares:flares_mc;
public var newShipSound:newShip;
public var bulletArray:Array;
public var fade:ColorMatrixFilter;
public var bulletESpeed:Number;
public var roadWidth:Number;
public var score:uint;
public var unlimitedAmmoSet:Boolean;
public var explosionOrigin:Number;
public var allowedLocal:String;
public var gameY:uint;
public var allowedURL:String;
public var shipCanvas:Sprite;
public var explodeShip:Boolean;
public var flareCanvas:Sprite;
public var bossStrength:int;
public var ammo:int;
public var musicOn:Boolean;
public var mouseDown:Boolean;
public var musicTransform:SoundTransform;
public var bulletYSpeed:Number;
public var vpVY:Number;
public var vpVX:Number;
public var oldL:Number;
public var SF_graphics:Graphics;
public var oldR:Number;
public var arrowLeftDownFlag:Boolean;
public var ticker:ticker_mc;
public var oldY:Number;
public var drawingCanvas:Sprite;
public var musicChannel:SoundChannel;
public var segment:Array;
public var playerHitSound:playerHit;
public var gameWon:Boolean;
public var soundOn:Boolean;
public var unlimitedAmmo:Boolean;
public var vpTriggerArray:Array;
public var redValue:Number;
public var SF_speed:Number;
public var fpsNewTime:Number;
public var fpsStartTime:Number;
public var distanceCurvature:Number;
public var bmAdded:Boolean;
public var tickerStart:Number;
public var shipInvincible:Boolean;
public var level:uint;
public var SF_sizeX:Number;
public var SF_sizeY:Number;
public var segments:uint;
public var gameHeight:uint;
public var arrowRightDownFlag:Boolean;
public var gameOver:Boolean;
public var gameCanvas:Sprite;
public var gameOverScreen:gameOverScreen_mc;
public var numberOfBosses:int;
public var sfxVolume:Number;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
}
public function removeMenu():void{
menu.playButton.removeEventListener(MouseEvent.MOUSE_DOWN, showLevelSelect);
menu.instructionsButton.removeEventListener(MouseEvent.MOUSE_DOWN, showInstructions);
menu.andromedusButton.removeEventListener(MouseEvent.MOUSE_DOWN, gotoAndromedus);
menu.armorButton.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArmor);
menu.moreGames.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArmor);
projectCanvas.removeChild(menu);
}
public function soundUp(_arg1:MouseEvent):void{
if (soundOn == true){
soundToggle.gotoAndStop("onUp");
} else {
soundToggle.gotoAndStop("offUp");
};
}
public function moveObjects():void{
var _local1:uint;
_local1 = 1;
while (_local1 <= numberOfObjects) {
if ((((objectArray[_local1].variety == "static")) || ((objectArray[_local1].variety == "background")))){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
draw3d(objectArray[_local1], false);
_local1++;
};
}
public function loader(_arg1:Event){
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = stage.loaderInfo.bytesTotal;
_local3 = stage.loaderInfo.bytesLoaded;
_local4 = Math.round(((_local3 * 100) / _local2));
preloader.loadingBar.width = (250 * (_local4 / 100));
preloader.loadingText.text = (String(_local4) + "%");
if ((((_local3 >= _local2)) && ((finished == false)))){
preloader.loadingText.text = "100%";
setTimeout(end_preload, 2000);
finished = true;
};
}
public function createSpecial(_arg1:uint, _arg2:String):void{
var _local3:Object;
if (_arg2 == "br"){
numberOfObjects++;
_local3 = new bridge_mc();
objectArray[numberOfObjects] = _local3;
objectCanvas.addChildAt(objectArray[numberOfObjects], 0);
objectArray[numberOfObjects].z = _arg1;
objectArray[numberOfObjects].sizeX = 800;
objectArray[numberOfObjects].sizeY = 500;
objectArray[numberOfObjects].width = objectArray[numberOfObjects].sizeX;
objectArray[numberOfObjects].height = objectArray[numberOfObjects].sizeY;
objectArray[numberOfObjects].offsetX = 0;
objectArray[numberOfObjects].offsetY = 0;
objectArray[numberOfObjects].visible = false;
objectArray[numberOfObjects].variety = "background";
objectArray[numberOfObjects].subVariety = "bridge";
objectArray[numberOfObjects].active = true;
};
if (_arg2 == "f"){
numberOfObjects++;
_local3 = new finish_mc();
objectArray[numberOfObjects] = _local3;
objectCanvas.addChildAt(objectArray[numberOfObjects], 0);
objectArray[numberOfObjects].z = _arg1;
objectArray[numberOfObjects].sizeX = 600;
objectArray[numberOfObjects].sizeY = 400;
objectArray[numberOfObjects].width = objectArray[numberOfObjects].sizeX;
objectArray[numberOfObjects].height = objectArray[numberOfObjects].sizeY;
objectArray[numberOfObjects].offsetX = 0;
objectArray[numberOfObjects].offsetY = 0;
objectArray[numberOfObjects].visible = false;
objectArray[numberOfObjects].variety = "background";
objectArray[numberOfObjects].subVariety = "finish";
objectArray[numberOfObjects].active = true;
};
if ((((((((((_arg2 == "l")) || ((_arg2 == "r")))) || ((_arg2 == "u")))) || ((_arg2 == "d")))) || ((_arg2 == "c")))){
numberOfTriggers++;
_local3 = new Object();
vpTriggerArray[numberOfTriggers] = _local3;
vpTriggerArray[numberOfTriggers].variety = "trigger";
vpTriggerArray[numberOfTriggers].subVariety = _arg2;
vpTriggerArray[numberOfTriggers].z = _arg1;
vpTriggerArray[numberOfTriggers].active = true;
};
}
public function resume():void{
gameRunning = true;
}
public function displayGameOverMessages():void{
if (gameWon == false){
gameOverScreen.message1.text = "Game Over";
} else {
gameOverScreen.message1.text = "Congratulations";
};
if (gameWon == false){
gameOverScreen.message2.text = (("Final Score: " + String(score)) + ". Try again!");
} else {
gameOverScreen.message2.text = (("You cleared all levels and scored " + String(score)) + ". The Galaxy is safe !");
};
}
public function scrollTicker(_arg1:Event):void{
var _local2:Number;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:ColorTransform;
ticker.mc.textField.x = (ticker.mc.textField.x - 3);
if (ticker.mc.textField.x < (tickerStart - ticker.mc.textField.width)){
ticker.mc.textField.x = (tickerStart + 587);
tickerSection++;
if (tickerSection >= tickerArray.length){
tickerSection = 0;
};
ticker.mc.textField.text = tickerArray[tickerSection];
ticker.mc.textField.autoSize = TextFieldAutoSize.LEFT;
};
_local2 = 0.05;
redValue = (redValue + _local2);
greenValue = (greenValue + _local2);
blueValue = (blueValue + _local2);
_local3 = (127 + (127 * Math.sin(redValue)));
_local4 = (127 + (127 * Math.sin((greenValue + ((2 * Math.PI) / 3)))));
_local5 = (127 + (127 * Math.sin((blueValue + ((4 * Math.PI) / 3)))));
_local6 = new ColorTransform();
_local6.blueOffset = _local5;
_local6.redOffset = _local3;
_local6.greenOffset = _local4;
ticker.mc.textField.transform.colorTransform = _local6;
}
public function removeInstructions(_arg1:MouseEvent):void{
projectCanvas.removeChild(instructions);
instructions.menuButton.removeEventListener(MouseEvent.MOUSE_DOWN, removeInstructions);
showMenu();
}
public function nextLevel(_arg1:MouseEvent):void{
gameRunning = false;
cleanUp();
currentLevel++;
score = (score + (health * 10));
score = (score + (ammo * 10));
if (currentLevel <= numberOfLevels){
initialiseGame();
} else {
score = (score + (lives * 1000));
gameWon = true;
showGameOverScreen();
};
}
public function initRoad():void{
var _local1:uint;
_local1 = 1;
while (_local1 <= segments) {
segment[_local1] = new Object();
segment[_local1].z = _local1;
_local1++;
};
}
function frame1(){
stage.frameRate = 45;
armorButton.addEventListener(MouseEvent.MOUSE_DOWN, gotoArmorGames);
stop();
}
function frame3(){
stage.frameRate = 30;
stop();
finished = false;
preloader = new preloader_mc();
stage.addChild(preloader);
stage.addEventListener(Event.ENTER_FRAME, loader);
}
function frame5(){
stop();
so = SharedObject.getLocal("gdData");
highestLevel = 1;
if (((!((so.data.highestLevel == undefined))) && (!((so.data.highestLevel == null))))){
highestLevel = so.data.highestLevel;
};
if (highestLevel < 1){
highestLevel = 1;
};
numberOfLevels = 3;
gameWidth = 600;
gameHeight = 300;
gameY = 100;
currentLevel = 1;
numberOfBosses = 0;
bossStrength = 20;
score = 0;
segments = 20;
numberOfObjects = 0;
numberOfTriggers = 0;
health = 0;
ammo = 0;
weapon = 0;
startLives = 4;
lives = 0;
numberOfFragments = 100;
redValue = 0;
greenValue = 0;
blueValue = 0;
speed = 0.15;
shipVDamping = 0.8;
shipAcc = (speed * 30);
shipVMax = (speed * 120);
vpX = 0;
vpY = 0;
vpH = 0;
widthCurvature = 12;
deltaWC = 0;
wcSpeed = speed;
distanceCurvature = 12;
roadWidth = gameWidth;
vpxTheta = 0;
vpyTheta = 0;
oldL = 0;
oldR = 0;
oldY = 0;
vpVX = 0;
vpVY = 0;
vpSpeedX = (speed * 100);
vpSpeedY = (speed * 10);
minVPHeight = (gameY + (0.25 * gameHeight));
maxVPHeight = (gameY + (0.75 * gameHeight));
bulletSpeed = (speed * 2);
bulletXSpeed = (speed * 100);
bulletYSpeed = (speed * 100);
bulletESpeed = (speed * 1.2);
firingProbability = 0;
explosionOrigin = 0;
fps = 0;
fpsStartTime = 0;
fpsNewTime = 0;
fpsElapsedTime = 0;
fpsCounter = 0;
levelButtonStart = 0;
buttonSpeed = 0;
buttonDistToTarget = 0;
lastButtonPressed = "";
gameRunning = false;
gameOver = false;
gameWon = false;
submitSuccess = false;
arrowLeftDownFlag = false;
arrowRightDownFlag = false;
adjusting = false;
leftKeyDown = false;
rightKeyDown = false;
vpCentre = false;
mouseDown = false;
preventFiring = false;
shipInvincible = false;
explodeShip = false;
preventQuit = false;
levelComplete = false;
particlesOn = false;
bmAdded = false;
unlimitedAmmo = false;
unlimitedAmmoSet = false;
segment = new Array();
objectArray = new Array();
levelDataArray = new Array();
vpTriggerArray = new Array();
bulletArray = new Array();
bulletEArray = new Array();
fragmentArray = new Array();
SF_sizeX = stage.stageWidth;
SF_sizeY = stage.stageHeight;
SF_vpX = (stage.stageWidth / 2);
SF_vpY = (stage.stageHeight / 2);
SF_speed = (speed * 0.7);
SF_length = 0.005;
SF_star = new Array();
SF_numberOfStars = 100;
tickerSection = 0;
tickerStart = 0;
tickerArray = new Array();
fade = new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0.7, 0]);
soundOn = true;
musicOn = true;
musicChannel = new SoundChannel();
musicVolume = 1;
musicTransform = new SoundTransform(musicVolume, 0);
musicChannel.soundTransform = musicTransform;
menuMusic = new gdMenu();
gameMusic = new gdGame();
sfxChannel = new SoundChannel();
sfxVolume = 1;
sfxTransform = new SoundTransform(sfxVolume, 0);
sfxChannel.soundTransform = sfxTransform;
bonusSound = new bonus();
enemyHitSound = new enemyHit();
finishLineSound = new finishLine();
gameOverSound = new gameEnded();
gameWonSound = new gameComplete();
newShipSound = new newShip();
playerDeadSound = new playerDead();
playerHitSound = new playerHit();
shootSound = new shoot();
readScoresURL = ("http://www.andromedus.com/scripts/lynx_read_scores.php?" + String(Math.random()));
writeScoresURL = "http://www.andromedus.com/scripts/lynx_insert_score.php";
securityOn = false;
currentURL = stage.loaderInfo.url;
allowedURL = "andromedus.com";
allowedLocal = "Richard/Documents/";
level = 1;
levelDataArray[level] = new Array();
levelDataArray[level][400] = ["0", "0", "0", "0", "0", "0", "0", "0", "f"];
levelDataArray[level][395] = ["0", "0", "b1", "b1", "b1", "b1", "b1", "0", "0"];
levelDataArray[level][390] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1", "br"];
levelDataArray[level][336] = ["e4", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][334] = ["e4", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][332] = ["e4", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][330] = ["e4", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][328] = ["e5", "0", "0", "0", "0", "0", "0", "e5"];
levelDataArray[level][326] = ["e5", "0", "0", "0", "0", "0", "0", "e5"];
levelDataArray[level][324] = ["e5", "0", "0", "0", "0", "0", "0", "e5"];
levelDataArray[level][322] = ["e5", "0", "0", "0", "0", "0", "0", "e5"];
levelDataArray[level][320] = ["0", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][313] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][312] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][311] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][310] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][309] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][308] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][307] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][306] = ["e4", "0", "0", "0", "0", "0", "0", "am", "l"];
levelDataArray[level][305] = ["0", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][304] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][303] = ["0", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][302] = ["0", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][301] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][300] = ["0", "0", "0", "0", "0", "0", "b1", "0"];
levelDataArray[level][299] = ["0", "0", "0", "0", "0", "0", "0", "b1"];
levelDataArray[level][297] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][296] = ["b1", "b1", "b1", "b1", "b1", "b1", "0", "0", "d"];
levelDataArray[level][280] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][278] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][276] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][274] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][272] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][270] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][261] = ["e4", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][260] = ["e4", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][259] = ["e4", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][258] = ["e4", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][0x0101] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][0x0100] = ["0", "b1", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][0xFF] = ["b1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][249] = ["0", "0", "b1", "0", "0", "b1", "0", "0", "c"];
levelDataArray[level][239] = ["0", "0", "b1", "0", "0", "b1", "0", "0", "r"];
levelDataArray[level][229] = ["0", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][228] = ["0", "0", "0", "e4", "0", "0", "0", "0"];
levelDataArray[level][227] = ["0", "e5", "0", "0", "0", "0", "e5", "0"];
levelDataArray[level][226] = ["e5", "0", "0", "0", "0", "0", "0", "e5", "u"];
levelDataArray[level][213] = ["0", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][212] = ["0", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][211] = ["0", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][210] = ["0", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][209] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][208] = ["e2", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][207] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][206] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][204] = ["he", "0", "0", "0", "0", "0", "0", "am"];
levelDataArray[level][200] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1", "br"];
levelDataArray[level][190] = ["0", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][199] = ["0", "0", "0", "e4", "0", "0", "0", "0"];
levelDataArray[level][188] = ["0", "0", "0", "0", "e4", "0", "0", "w"];
levelDataArray[level][187] = ["0", "0", "0", "e4", "0", "0", "0", "0"];
levelDataArray[level][186] = ["0", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][185] = ["0", "0", "0", "e4", "0", "0", "0", "0", "d"];
levelDataArray[level][180] = ["b1", "b1", "0", "0", "b1", "b1", "b1", "b1", "c"];
levelDataArray[level][176] = ["b1", "b1", "b1", "b1", "0", "0", "b1", "b1"];
levelDataArray[level][174] = ["e5", "e5", "0", "0", "0", "0", "e5", "e5"];
levelDataArray[level][170] = ["e5", "e5", "0", "0", "0", "0", "e5", "e5"];
levelDataArray[level][166] = ["0", "0", "0", "0", "0", "0", "e2", "e2", "br"];
levelDataArray[level][163] = ["0", "0", "0", "e2", "e2", "0", "0", "0"];
levelDataArray[level][160] = ["e2", "e2", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][159] = ["0", "0", "0", "0", "0", "0", "0", "0", "r"];
levelDataArray[level][158] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][157] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][156] = ["he", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][155] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][154] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][153] = ["0", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][152] = ["e4", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][151] = ["e4", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][150] = ["e4", "0", "0", "0", "0", "0", "b1", "0"];
levelDataArray[level][149] = ["e4", "0", "0", "0", "0", "0", "0", "b1"];
levelDataArray[level][146] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][145] = ["e4", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][144] = ["e4", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][143] = ["e4", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][142] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][141] = ["0", "b1", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][140] = ["b1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][130] = ["e4", "0", "0", "0", "b1", "0", "0", "am"];
levelDataArray[level][126] = ["e4", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][122] = ["e4", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][118] = ["e4", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][114] = ["e4", "0", "0", "0", "b1", "0", "0", "0", "c"];
levelDataArray[level][110] = ["e4", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][107] = ["e2", "0", "0", "0", "e2", "0", "0", "0"];
levelDataArray[level][106] = ["e2", "0", "0", "0", "e2", "0", "0", "0"];
levelDataArray[level][105] = ["e2", "0", "0", "0", "e2", "0", "0", "0"];
levelDataArray[level][104] = ["e2", "0", "0", "0", "e2", "0", "0", "0"];
levelDataArray[level][103] = ["e2", "0", "0", "0", "e2", "0", "0", "0"];
levelDataArray[level][102] = ["0", "0", "0", "b1", "b1", "0", "0", "0", "r"];
levelDataArray[level][109] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][96] = ["0", "b1", "b1", "0", "0", "b1", "b1", "0"];
levelDataArray[level][93] = ["b1", "b1", "0", "0", "0", "0", "b1", "b1"];
levelDataArray[level][90] = ["e4", "0", "0", "0", "0", "0", "0", "0", "d"];
levelDataArray[level][89] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][88] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][88] = ["e4", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][86] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][85] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][84] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][83] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][72] = ["0", "0", "0", "0", "0", "0", "0", "w"];
levelDataArray[level][71] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][70] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][65] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][60] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][45] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1"];
levelDataArray[level][43] = ["0", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][38] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][37] = ["0", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][36] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][35] = ["0", "0", "0", "0", "0", "0", "0", "e2"];
levelDataArray[level][34] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][33] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][32] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][31] = ["e2", "0", "0", "0", "0", "0", "0", "0", "d"];
levelDataArray[level][30] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][29] = ["0", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][28] = ["0", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][27] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][26] = ["0", "b1", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][25] = ["b1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][24] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][23] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][22] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][21] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][20] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][19] = ["0", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][18] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][17] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][16] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][15] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][14] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][13] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][12] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][11] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][10] = ["0", "0", "0", "0", "0", "0", "0", "0"];
level = 2;
levelDataArray[level] = new Array();
levelDataArray[level][480] = ["0", "0", "0", "0", "0", "0", "0", "0", "f"];
levelDataArray[level][470] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1", "br"];
levelDataArray[level][460] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1", "br"];
levelDataArray[level][450] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1", "br"];
levelDataArray[level][440] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1", "br"];
levelDataArray[level][430] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1", "br"];
levelDataArray[level][404] = ["e5", "0", "e2", "e5", "e5", "e2", "0", "e5"];
levelDataArray[level][400] = ["e5", "0", "e2", "0", "0", "e2", "0", "e5"];
levelDataArray[level][396] = ["e5", "0", "e2", "0", "0", "e2", "0", "e5"];
levelDataArray[level][394] = ["0", "0", "e2", "0", "0", "e2", "0", "0"];
levelDataArray[level][392] = ["0", "0", "e2", "0", "0", "e2", "0", "0"];
levelDataArray[level][390] = ["0", "0", "e2", "0", "0", "e2", "0", "0"];
levelDataArray[level][388] = ["b1", "b1", "b1", "b1", "am", "0", "b1", "b1", "br"];
levelDataArray[level][384] = ["b1", "b1", "0", "0", "b1", "b1", "b1", "b1", "br"];
levelDataArray[level][380] = ["b1", "b1", "b1", "b1", "0", "0", "b1", "b1", "br"];
levelDataArray[level][370] = ["b1", "b1", "0", "0", "0", "0", "b1", "b1", "c"];
levelDataArray[level][357] = ["e5", "0", "0", "0", "0", "0", "0", "0", "d"];
levelDataArray[level][356] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][355] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][354] = ["e2", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][353] = ["e5", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][352] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][351] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][350] = ["e2", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][340] = ["he", "0", "0", "0", "0", "0", "0", "w"];
levelDataArray[level][332] = ["0", "b1", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][329] = ["b1", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][326] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][323] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][319] = ["b1", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][316] = ["0", "b1", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][313] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][310] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1"];
levelDataArray[level][300] = ["e3", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][299] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][298] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][297] = ["e4", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][296] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][295] = ["e2", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][294] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][293] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][290] = ["e4", "0", "0", "0", "0", "0", "0", "0", "d"];
levelDataArray[level][289] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][288] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][287] = ["e4", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][286] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][285] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][284] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][283] = ["e4", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][280] = ["0", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][270] = ["e2", "0", "b1", "0", "0", "b1", "0", "e2", "r"];
levelDataArray[level][266] = ["0", "0", "0", "0", "0", "0", "0", "w"];
levelDataArray[level][263] = ["0", "0", "0", "he", "0", "0", "0", "0"];
levelDataArray[level][260] = ["am", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][240] = ["0", "0", "e5", "0", "0", "e5", "0", "0", "br"];
levelDataArray[level][230] = ["b1", "0", "b1", "0", "0", "b1", "0", "b1", "c"];
levelDataArray[level][228] = ["0", "0", "e5", "0", "0", "e5", "0", "0"];
levelDataArray[level][226] = ["0", "0", "e5", "0", "0", "e5", "0", "0"];
levelDataArray[level][224] = ["0", "0", "e5", "0", "0", "e5", "0", "0"];
levelDataArray[level][222] = ["0", "0", "e5", "0", "0", "e5", "0", "0"];
levelDataArray[level][220] = ["0", "0", "e5", "0", "0", "e5", "0", "0"];
levelDataArray[level][218] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][217] = ["0", "0", "0", "0", "0", "0", "0", "0", "d"];
levelDataArray[level][216] = ["0", "0", "0", "0", "0", "0", "0", "0", "l"];
levelDataArray[level][214] = ["e3", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][212] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][210] = ["e3", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][208] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][206] = ["e3", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][204] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][203] = ["e3", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][202] = ["0", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][201] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][200] = ["0", "0", "0", "0", "0", "0", "b1", "0"];
levelDataArray[level][199] = ["0", "0", "0", "0", "0", "0", "0", "b1"];
levelDataArray[level][198] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][196] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][194] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][192] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][190] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][188] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][186] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][185] = ["0", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][184] = ["0", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][183] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][182] = ["0", "b1", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][181] = ["b1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][180] = ["0", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][150] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][149] = ["0", "0", "0", "0", "b1", "b1", "b1", "b1"];
levelDataArray[level][140] = ["b1", "b1", "b1", "b1", "0", "0", "0", "0"];
levelDataArray[level][130] = ["e3", "0", "0", "0", "0", "0", "0", "am"];
levelDataArray[level][129] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][128] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][127] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][126] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][125] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][124] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][123] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][122] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][121] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][120] = ["e3", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][116] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][115] = ["0", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][100] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][99] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][98] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][97] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][96] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][95] = ["e2", "0", "0", "e2", "0", "0", "0", "0"];
levelDataArray[level][94] = ["e2", "0", "0", "e2", "0", "0", "0", "0"];
levelDataArray[level][93] = ["e2", "0", "0", "e2", "0", "0", "0", "0"];
levelDataArray[level][92] = ["e2", "0", "0", "e2", "0", "0", "0", "0"];
levelDataArray[level][91] = ["e2", "0", "0", "e2", "0", "0", "0", "0"];
levelDataArray[level][90] = ["e2", "0", "0", "e2", "0", "0", "0", "0"];
levelDataArray[level][89] = ["0", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][88] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][87] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][86] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][85] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][84] = ["0", "0", "0", "0", "0", "0", "0", "w"];
levelDataArray[level][83] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][82] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][81] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][80] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][79] = ["0", "0", "0", "0", "0", "0", "0", "0", "l"];
levelDataArray[level][78] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][77] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][76] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][55] = ["0", "0", "0", "0", "0", "0", "0", "e3", "r"];
levelDataArray[level][54] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][53] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][52] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][51] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][50] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][49] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][48] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][47] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][46] = ["0", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][45] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][44] = ["0", "0", "0", "0", "0", "0", "b1", "0"];
levelDataArray[level][43] = ["0", "0", "0", "0", "0", "0", "0", "b1", "d"];
levelDataArray[level][42] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][41] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][40] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][30] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][36] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][35] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][34] = ["0", "0", "0", "e5", "e5", "0", "0", "0"];
levelDataArray[level][33] = ["0", "0", "e5", "0", "0", "e5", "0", "0"];
levelDataArray[level][32] = ["0", "e5", "0", "0", "0", "0", "e5", "0"];
levelDataArray[level][31] = ["e5", "0", "0", "0", "0", "0", "0", "e5"];
levelDataArray[level][30] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1"];
levelDataArray[level][26] = ["b1", "b1", "b1", "b1", "b1", "b1", "0", "0"];
levelDataArray[level][23] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][22] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1"];
levelDataArray[level][21] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][20] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][19] = ["0", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][18] = ["0", "0", "b1", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][17] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][16] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][15] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][14] = ["b1", "b1", "b1", "0", "0", "b1", "b1", "b1"];
levelDataArray[level][13] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][12] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][11] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][10] = ["b1", "0", "0", "b1", "b1", "0", "0", "b1", "br"];
level = 3;
levelDataArray[level] = new Array();
levelDataArray[level][515] = ["boss", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][505] = ["boss", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][500] = ["boss", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][490] = ["boss", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][480] = ["boss", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][450] = ["he", "0", "0", "0", "0", "0", "0", "w", "br"];
levelDataArray[level][440] = ["w", "0", "0", "0", "0", "0", "0", "he", "c"];
levelDataArray[level][427] = ["0", "0", "b1", "0", "0", "b1", "0", "he", "c"];
levelDataArray[level][426] = ["0", "0", "b1", "0", "0", "b1", "0", "0", "br"];
levelDataArray[level][425] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][424] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][423] = ["0", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][422] = ["0", "0", "b1", "0", "0", "b1", "0", "0", "c"];
levelDataArray[level][407] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][406] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][405] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][404] = ["0", "0", "e5", "0", "0", "e5", "0", "0"];
levelDataArray[level][403] = ["0", "e5", "0", "0", "0", "0", "e5", "0"];
levelDataArray[level][402] = ["e5", "0", "0", "0", "0", "0", "0", "e5", "l"];
levelDataArray[level][377] = ["e1", "0", "0", "am", "0", "0", "0", "0", "br"];
levelDataArray[level][376] = ["e1", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][375] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][374] = ["e1", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][373] = ["e1", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][372] = ["0", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][371] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][370] = ["e1", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][357] = ["0", "0", "0", "0", "0", "0", "0", "he", "c"];
levelDataArray[level][356] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][355] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][354] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][353] = ["e1", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][352] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][351] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][350] = ["0", "0", "0", "e5", "e5", "0", "0", "e3", "r"];
levelDataArray[level][345] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][340] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][335] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][330] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][325] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][320] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][315] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][310] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][305] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][300] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][295] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1"];
levelDataArray[level][290] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][280] = ["b1", "0", "0", "b1", "0", "0", "0", "0", "c"];
levelDataArray[level][267] = ["am", "0", "0", "e5", "0", "b1", "0", "0"];
levelDataArray[level][266] = ["0", "0", "0", "e4", "0", "b1", "0", "0"];
levelDataArray[level][265] = ["0", "0", "0", "e3", "0", "b1", "0", "0"];
levelDataArray[level][264] = ["0", "0", "0", "e2", "0", "b1", "0", "0"];
levelDataArray[level][263] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][262] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][261] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][260] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][259] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][258] = ["e2", "0", "0", "0", "0", "b1", "0", "0", "u"];
levelDataArray[level][0x0101] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][0x0100] = ["e1", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][0xFF] = ["e1", "0", "0", "0", "b1", "0", "0", "b1"];
levelDataArray[level][254] = ["e3", "0", "0", "b1", "0", "0", "b1", "0"];
levelDataArray[level][253] = ["e3", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][252] = ["e3", "b1", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][251] = ["b1", "0", "0", "b1", "0", "0", "0", "0", "br"];
levelDataArray[level][225] = ["b1", "he", "0", "b1", "b1", "0", "am", "b1", "c"];
levelDataArray[level][203] = ["e2", "e2", "b1", "0", "0", "0", "e2", "e2", "l"];
levelDataArray[level][202] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][201] = ["0", "0", "b1", "0", "0", "0", "0", "e5"];
levelDataArray[level][200] = ["0", "0", "b1", "0", "0", "0", "0", "e5"];
levelDataArray[level][199] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][198] = ["0", "0", "b1", "b1", "b1", "b1", "0", "0"];
levelDataArray[level][197] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][196] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][195] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][194] = ["e5", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][193] = ["e5", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][192] = ["e5", "0", "0", "0", "0", "b1", "b1", "b1"];
levelDataArray[level][178] = ["w", "0", "0", "0", "0", "b1", "0", "0", "c"];
levelDataArray[level][176] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][174] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][172] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][170] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][168] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][167] = ["0", "0", "0", "e5", "0", "b1", "0", "0"];
levelDataArray[level][166] = ["0", "0", "0", "e4", "0", "b1", "0", "0"];
levelDataArray[level][165] = ["0", "0", "0", "e3", "0", "b1", "0", "0"];
levelDataArray[level][164] = ["0", "0", "0", "e2", "0", "b1", "0", "0"];
levelDataArray[level][163] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][162] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][161] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][160] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][159] = ["e1", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][158] = ["e1", "0", "0", "0", "0", "b1", "0", "0", "u"];
levelDataArray[level][157] = ["0", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][156] = ["e1", "0", "0", "0", "0", "b1", "0", "0"];
levelDataArray[level][155] = ["e1", "0", "0", "0", "b1", "0", "0", "b1"];
levelDataArray[level][154] = ["0", "0", "0", "b1", "0", "0", "b1", "0"];
levelDataArray[level][153] = ["e1", "0", "b1", "0", "0", "b1", "0", "0"];
levelDataArray[level][152] = ["e1", "b1", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][151] = ["b1", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][148] = ["am", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][147] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][146] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][145] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][144] = ["0", "0", "b1", "0", "0", "0", "0", "0"];
levelDataArray[level][143] = ["0", "0", "0", "b1", "0", "0", "0", "0"];
levelDataArray[level][142] = ["0", "0", "0", "0", "b1", "0", "0", "0"];
levelDataArray[level][141] = ["0", "0", "0", "0", "0", "b1", "b1", "b1", "c"];
levelDataArray[level][121] = ["0", "0", "0", "0", "0", "0", "0", "0", "br"];
levelDataArray[level][118] = ["e1", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][115] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][112] = ["e1", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][109] = ["0", "0", "0", "0", "0", "0", "0", "0", "u"];
levelDataArray[level][106] = ["e1", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][103] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][101] = ["e1", "0", "0", "0", "e4", "0", "0", "0"];
levelDataArray[level][98] = ["e1", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][97] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][96] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][95] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][94] = ["e1", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][93] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][92] = ["0", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][91] = ["0", "0", "0", "e5", "e5", "0", "0", "e3"];
levelDataArray[level][87] = ["b1", "0", "0", "e5", "e5", "0", "0", "b1", "br"];
levelDataArray[level][85] = ["0", "0", "b1", "b1", "b1", "b1", "0", "0", "r"];
levelDataArray[level][78] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][77] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][76] = ["e1", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][75] = ["0", "0", "0", "0", "0", "0", "0", "w"];
levelDataArray[level][74] = ["0", "0", "e4", "0", "e2", "0", "0", "0"];
levelDataArray[level][73] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][72] = ["e1", "0", "0", "0", "0", "0", "0", "e3"];
levelDataArray[level][71] = ["0", "0", "e4", "0", "0", "0", "0", "0"];
levelDataArray[level][70] = ["0", "0", "0", "b1", "b1", "b1", "b1", "b1", "u"];
levelDataArray[level][65] = ["b1", "b1", "b1", "b1", "b1", "0", "0", "0"];
levelDataArray[level][58] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][57] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][56] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][55] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][54] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][53] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][52] = ["e1", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][51] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][50] = ["0", "0", "0", "0", "0", "0", "0", "0", "c"];
levelDataArray[level][48] = ["0", "e5", "0", "e5", "0", "e5", "0", "0"];
levelDataArray[level][45] = ["0", "0", "e5", "0", "e5", "0", "e5", "0"];
levelDataArray[level][40] = ["0", "e2", "0", "0", "0", "0", "0", "e2", "u"];
levelDataArray[level][30] = ["0", "0", "0", "0", "b1", "b1", "0", "0", "l"];
levelDataArray[level][29] = ["e5", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][28] = ["e5", "0", "b1", "b1", "0", "0", "0", "0"];
levelDataArray[level][27] = ["e5", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][26] = ["e5", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][25] = ["b1", "b1", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][24] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][23] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][22] = ["0", "0", "0", "0", "b1", "b1", "0", "0"];
levelDataArray[level][21] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][20] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][19] = ["0", "0", "b1", "b1", "0", "0", "0", "0"];
levelDataArray[level][18] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][17] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][16] = ["0", "0", "0", "0", "0", "0", "b1", "b1"];
levelDataArray[level][15] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][14] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][13] = ["w", "0", "0", "b1", "b1", "0", "0", "0"];
levelDataArray[level][12] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][11] = ["0", "0", "0", "0", "0", "0", "0", "0"];
levelDataArray[level][10] = ["b1", "b1", "0", "0", "0", "0", "0", "0", "br"];
initialise();
}
public function keyDownHandler(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == Keyboard.LEFT)) || ((_arg1.keyCode == 65)))){
leftKeyDown = true;
};
if ((((_arg1.keyCode == Keyboard.RIGHT)) || ((_arg1.keyCode == 68)))){
rightKeyDown = true;
};
if (_arg1.keyCode == Keyboard.SPACE){
mouseDown = true;
};
}
function frame2(){
stop();
}
function frame4(){
stageAssets.visible = false;
}
public function showGameOverScreen():void{
if (soundOn == true){
if (gameWon == false){
gameOverSound.play();
} else {
gameWonSound.play();
};
};
preventQuit = false;
if (bmAdded == true){
stage.removeChild(bm);
bmAdded = false;
};
gameOverScreen = new gameOverScreen_mc();
projectCanvas.addChild(gameOverScreen);
displayGameOverMessages();
gameOverScreen.continueButton.addEventListener(MouseEvent.MOUSE_DOWN, removeGameOverScreen);
}
public function keyUpHandler(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == Keyboard.LEFT)) || ((_arg1.keyCode == 65)))){
leftKeyDown = false;
};
if ((((_arg1.keyCode == Keyboard.RIGHT)) || ((_arg1.keyCode == 68)))){
rightKeyDown = false;
};
if (_arg1.keyCode == Keyboard.SPACE){
mouseDown = false;
preventFiring = false;
};
}
public function musicOver(_arg1:MouseEvent):void{
if (musicOn == true){
musicToggle.gotoAndStop("onOver");
} else {
musicToggle.gotoAndStop("offOver");
};
}
public function removeTicker():void{
ticker.removeEventListener(Event.ENTER_FRAME, scrollTicker);
stage.removeChild(ticker);
}
public function checkLevelComplete():void{
var _local1:uint;
var _local2:Boolean;
if ((((levelComplete == false)) && ((gameOver == false)))){
_local1 = 1;
while (_local1 <= numberOfObjects) {
if (objectArray[_local1].subVariety == "finish"){
if ((((objectArray[_local1].z < (speed * 2))) && ((objectArray[_local1].z > -(speed))))){
_local2 = ship.hitTestObject(objectArray[_local1]);
if (_local2 == true){
endLevel();
};
};
};
_local1++;
};
};
if (levelComplete == true){
gui.levelUp.alpha = (gui.levelUp.alpha + 0.01);
if (gui.levelUp.alpha >= 1){
gui.levelUp.alpha = 1;
levelComplete = false;
if (highestLevel < (currentLevel + 1)){
highestLevel = (currentLevel + 1);
so.data.highestLevel = highestLevel;
};
gui.levelUp.continueButton.addEventListener(MouseEvent.MOUSE_DOWN, nextLevel);
};
};
}
public function runExplosion():void{
var _local1:uint;
_local1 = 0;
while (_local1 <= numberOfFragments) {
fragmentArray[_local1].x = (explosionOrigin + ((fragmentArray[_local1].x - explosionOrigin) * (1 + fragmentArray[_local1].speed)));
fragmentArray[_local1].y = (ship.y + ((fragmentArray[_local1].y - ship.y) * (1 + fragmentArray[_local1].speed)));
fragmentArray[_local1].width = (fragmentArray[_local1].width * (1 + (fragmentArray[_local1].speed / 3)));
fragmentArray[_local1].height = (fragmentArray[_local1].height * (1 + (fragmentArray[_local1].speed / 3)));
fragmentArray[_local1].rotation = (fragmentArray[_local1].rotation + (fragmentArray[_local1].speed * 200));
fragmentArray[_local1].alpha = (fragmentArray[_local1].alpha - 0.005);
_local1++;
};
}
public function drawStarfield():void{
var _local1:uint;
SF_vpX = ((gameWidth / 2) + (vpX / 4));
SF_vpY = vpY;
SF_graphics.clear();
if (currentLevel == 1){
SF_graphics.lineStyle(1, 0xDDDDDD);
};
if (currentLevel == 2){
SF_graphics.lineStyle(1, 0xDD00DD);
};
if (currentLevel == 3){
SF_graphics.lineStyle(1, 0xDDDD);
};
_local1 = 0;
while (_local1 < SF_numberOfStars) {
if ((((((((((SF_star[_local1].y < SF_vpY)) && ((SF_star[_local1].x < stage.stageWidth)))) && ((SF_star[_local1].x > 0)))) && ((SF_star[_local1].y < SF_vpY)))) && ((SF_star[_local1].y > 0)))){
SF_graphics.moveTo(SF_star[_local1].x, SF_star[_local1].y);
SF_graphics.lineTo((SF_vpX + ((SF_star[_local1].x - SF_vpX) * (1 + (SF_length * 10)))), (SF_vpY + ((SF_star[_local1].y - SF_vpY) * (1 + (SF_length * 10)))));
};
SF_star[_local1].x = (SF_vpX + ((SF_star[_local1].x - SF_vpX) * (1 + SF_speed)));
SF_star[_local1].y = (SF_vpY + ((SF_star[_local1].y - SF_vpY) * (1 + SF_speed)));
if ((((((((SF_star[_local1].x > (stage.stageWidth * 2))) || ((SF_star[_local1].x < -(stage.stageWidth))))) || ((SF_star[_local1].y > (SF_vpY * 2))))) || ((SF_star[_local1].y < -(SF_vpY))))){
SF_star[_local1].x = ((SF_vpX + (Math.random() * (SF_sizeX / 5))) - (SF_sizeX / 10));
SF_star[_local1].y = (SF_vpY - (Math.random() * (SF_sizeY / 10)));
};
_local1++;
};
}
public function checkGameOver():void{
if (lives <= 0){
gameOver = true;
preventQuit = true;
gui.blackout.visible = true;
gui.blackout.alpha = (gui.blackout.alpha + 0.01);
if (gui.blackout.alpha >= 1){
gui.blackout.alpha = 1;
gameRunning = false;
showGameOverScreen();
};
};
}
public function mouseUpHandler(_arg1:MouseEvent):void{
mouseDown = false;
preventFiring = false;
}
public function moveEnemies():void{
var _local1:uint;
var _local2:Number;
_local1 = 1;
while (_local1 <= numberOfObjects) {
if (objectArray[_local1].variety == "enemy"){
if (objectArray[_local1].subVariety == "e4"){
if (objectArray[_local1].z > 10){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
if (objectArray[_local1].z <= 10){
objectArray[_local1].z = (objectArray[_local1].z - (speed / 4));
objectArray[_local1].offsetX = ((roadWidth / 2) * Math.sin((objectArray[_local1].z * 2)));
};
};
if (objectArray[_local1].subVariety == "e2"){
if (objectArray[_local1].z > 10){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
if (objectArray[_local1].z <= 10){
objectArray[_local1].z = (objectArray[_local1].z - (speed / 4));
objectArray[_local1].offsetX = (objectArray[_local1].offsetX + objectArray[_local1].speedX);
if (objectArray[_local1].offsetX > (roadWidth / 2)){
objectArray[_local1].speedX = (objectArray[_local1].speedX * -1);
objectArray[_local1].offsetX = (roadWidth / 2);
};
if (objectArray[_local1].offsetX < (-(roadWidth) / 2)){
objectArray[_local1].speedX = (objectArray[_local1].speedX * -1);
objectArray[_local1].offsetX = (-(roadWidth) / 2);
};
};
};
if (objectArray[_local1].subVariety == "e3"){
if (objectArray[_local1].z > 10){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
if (objectArray[_local1].z <= 10){
objectArray[_local1].z = (objectArray[_local1].z - (speed / 8));
objectArray[_local1].offsetX = ((roadWidth / 2) * Math.sin((objectArray[_local1].z * 2)));
objectArray[_local1].offsetY = -(Math.abs(((roadWidth / 2) * Math.sin((objectArray[_local1].z * 2)))));
};
};
if (objectArray[_local1].subVariety == "e1"){
if (objectArray[_local1].z > 10){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
if ((((((objectArray[_local1].z <= 10)) && ((objectArray[_local1].z > 3)))) && ((objectArray[_local1].theta == 0)))){
objectArray[_local1].z = (objectArray[_local1].z - (speed / 4));
objectArray[_local1].offsetZ = objectArray[_local1].z;
};
if (objectArray[_local1].z <= 3){
objectArray[_local1].z = (objectArray[_local1].offsetZ + (0.3 * Math.cos((objectArray[_local1].theta + (Math.PI * 1.5)))));
objectArray[_local1].offsetZ = (objectArray[_local1].offsetZ - (speed / 12));
objectArray[_local1].offsetX = ((roadWidth / 2) * Math.sin((objectArray[_local1].theta + (Math.PI * 1.5))));
objectArray[_local1].offsetY = -(Math.abs(((roadWidth / 8) * Math.sin(objectArray[_local1].theta))));
objectArray[_local1].theta = (objectArray[_local1].theta - 0.05);
};
};
if (objectArray[_local1].subVariety == "e5"){
if (objectArray[_local1].z > 10){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
if (objectArray[_local1].z <= 10){
objectArray[_local1].z = (objectArray[_local1].z - (speed / 8));
objectArray[_local1].offsetY = (-((roadWidth / 8)) + ((roadWidth / 8) * Math.sin(objectArray[_local1].theta)));
objectArray[_local1].theta = (objectArray[_local1].theta - 0.1);
};
};
if (objectArray[_local1].subVariety == "boss"){
if (objectArray[_local1].z > 10){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
if ((((objectArray[_local1].z < 10)) && ((unlimitedAmmoSet == false)))){
unlimitedAmmoSet = true;
unlimitedAmmo = true;
gui.unlimitedAmmo.visible = true;
gui.unlimitedAmmo.play();
setTimeout(removeAmmoText, 3000);
};
if ((((objectArray[_local1].z <= 10)) && ((objectArray[_local1].theta == 0)))){
objectArray[_local1].z = (objectArray[_local1].z - (speed / 4));
objectArray[_local1].offsetZ = objectArray[_local1].z;
};
if ((((objectArray[_local1].z <= 2)) || (!((objectArray[_local1].theta == 0))))){
objectArray[_local1].z = (objectArray[_local1].offsetZ + (0.6 * Math.sin(objectArray[_local1].theta)));
objectArray[_local1].offsetX = ((roadWidth / 2) * Math.sin((objectArray[_local1].theta * 1.37)));
objectArray[_local1].offsetY = -(Math.abs(((roadWidth / 8) * Math.sin((objectArray[_local1].theta * 1.17)))));
objectArray[_local1].theta = (objectArray[_local1].theta + 0.05);
};
if (objectArray[_local1].z < 0){
};
};
draw3d(objectArray[_local1], true);
if ((((objectArray[_local1].z < 5)) && ((objectArray[_local1].active == true)))){
_local2 = Math.random();
if (objectArray[_local1].subVariety == "e3"){
_local2 = (Math.random() / 2);
};
if (objectArray[_local1].subVariety == "boss"){
_local2 = (Math.random() / 4);
};
if (_local2 < firingProbability){
fireEnemyBullet(objectArray[_local1]);
};
};
};
_local1++;
};
}
public function controlShip():void{
if (leftKeyDown == true){
ship.v = (ship.v - shipAcc);
};
if (rightKeyDown == true){
ship.v = (ship.v + shipAcc);
};
if (ship.v > shipVMax){
ship.v = shipVMax;
};
if (ship.v < -(shipVMax)){
ship.v = -(shipVMax);
};
if ((((leftKeyDown == false)) && ((rightKeyDown == false)))){
ship.v = (ship.v * shipVDamping);
if ((((ship.v > -0.1)) && ((ship.v < 0.1)))){
ship.v = 0;
};
};
ship.x = (ship.x + ship.v);
if (ship.x < (((gameWidth / 2) - (roadWidth / 2)) + (ship.width / 2))){
ship.x = (((gameWidth / 2) - (roadWidth / 2)) + (ship.width / 2));
};
if (ship.x > (((gameWidth / 2) + (roadWidth / 2)) - (ship.width / 2))){
ship.x = (((gameWidth / 2) + (roadWidth / 2)) - (ship.width / 2));
};
if (ship.x < (gameWidth / 5)){
ship.gotoAndStop(1);
};
if ((((ship.x >= (gameWidth / 5))) && ((ship.x < ((2 * gameWidth) / 5))))){
ship.gotoAndStop(2);
};
if ((((ship.x >= ((2 * gameWidth) / 5))) && ((ship.x < ((3 * gameWidth) / 5))))){
ship.gotoAndStop(3);
};
if ((((ship.x >= ((3 * gameWidth) / 5))) && ((ship.x < ((4 * gameWidth) / 5))))){
ship.gotoAndStop(4);
};
if (ship.x >= ((4 * gameWidth) / 5)){
ship.gotoAndStop(5);
};
}
public function showInstructions(_arg1:MouseEvent):void{
removeMenu();
instructions = new instructions_mc();
projectCanvas.addChild(instructions);
instructions.menuButton.addEventListener(MouseEvent.MOUSE_DOWN, removeInstructions);
}
public function motionBlur(){
bmd.draw(SF_canvas);
bmd.draw(objectCanvas);
bmd.applyFilter(bmd, bmd.rect, new Point(0, 0), fade);
}
public function updateVP():void{
vpX = (vpX + vpVX);
vpY = (vpY + vpVY);
widthCurvature = (widthCurvature + deltaWC);
if (widthCurvature < 8){
widthCurvature = 8;
};
if (widthCurvature > 16){
widthCurvature = 16;
};
if (vpCentre == true){
if (vpX < 0){
vpVX = vpSpeedX;
};
if (vpX > 0){
vpVX = -(vpSpeedX);
};
if (vpY < (gameY + (gameHeight / 2))){
vpVY = vpSpeedY;
};
if (vpY > (gameY + (gameHeight / 2))){
vpVY = -(vpSpeedY);
};
if ((((vpX > -4)) && ((vpX < 4)))){
vpX = 0;
vpVX = 0;
};
if (widthCurvature < 12){
deltaWC = wcSpeed;
};
if (widthCurvature > 12){
deltaWC = -(wcSpeed);
};
if ((((widthCurvature < 13)) && ((widthCurvature > 11)))){
widthCurvature = 12;
deltaWC = 0;
};
if ((((vpY > ((gameY + (gameHeight / 2)) - 4))) && ((vpY < ((gameY + (gameHeight / 2)) + 4))))){
vpY = (gameY + (gameHeight / 2));
vpVY = 0;
};
if ((((((((((vpX > -4)) && ((vpX < 4)))) && ((vpY > ((gameY + (gameHeight / 2)) - 4))))) && ((vpY < ((gameY + (gameHeight / 2)) + 4))))) && ((widthCurvature == 12)))){
vpCentre = false;
};
};
if (vpX < -(gameWidth)){
vpX = -(gameWidth);
vpVX = 0;
};
if (vpX > gameWidth){
vpX = gameWidth;
vpVX = 0;
};
if (vpY < minVPHeight){
vpY = minVPHeight;
vpVY = 0;
};
if (vpY > maxVPHeight){
vpY = maxVPHeight;
vpVY = 0;
};
vpH = ((gameY + gameHeight) - vpY);
background.y = vpY;
}
public function gotoAndromedus(_arg1:MouseEvent):void{
var _local2:String;
var _local3:URLRequest;
_local2 = "http://www.andromedus.com";
_local3 = new URLRequest(_local2);
navigateToURL(_local3);
}
public function moveEnemyBullets():void{
var _local1:uint;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = 0;
while (_local1 < bulletEArray.length) {
bulletEArray[_local1].z = (bulletEArray[_local1].z - bulletESpeed);
_local2 = Math.pow(((segments - bulletEArray[_local1].z) / segments), widthCurvature);
bulletEArray[_local1].width = (bulletEArray[_local1].sizeX * _local2);
bulletEArray[_local1].height = (bulletEArray[_local1].sizeY * _local2);
_local3 = Math.pow(((segments - bulletEArray[_local1].z) / segments), distanceCurvature);
bulletEArray[_local1].y = (((bulletEArray[_local1].offsetY * _local2) + vpY) + (vpH * _local3));
_local4 = (1 - ((segments - bulletEArray[_local1].z) / segments));
bulletEArray[_local1].x = (((gameWidth / 2) + (bulletEArray[_local1].offsetX * _local2)) + (vpX * _local4));
if (bulletEArray[_local1].z < 0){
objectCanvas.removeChild(bulletEArray[_local1]);
bulletEArray.splice(_local1, 1);
};
_local1++;
};
}
public function randomExplosion():void{
var _local1:explosion2_mc;
if (soundOn == true){
playerDeadSound.play();
};
if (SuperGlobals.numberOfExplosions < 8){
_local1 = new explosion2_mc();
SuperGlobals.numberOfExplosions = (SuperGlobals.numberOfExplosions + 1);
objectCanvas.addChild(_local1);
_local1.x = (Math.random() * stage.stageWidth);
_local1.y = (Math.random() * stage.stageWidth);
};
}
public function removeGameOverScreen(_arg1:MouseEvent):void{
submitSuccess = false;
gameOverScreen.continueButton.removeEventListener(MouseEvent.MOUSE_DOWN, removeGameOverScreen);
projectCanvas.removeChild(gameOverScreen);
showHighscores();
exitGame();
}
public function updateTriggers():void{
var _local1:uint;
_local1 = 1;
while (_local1 <= numberOfTriggers) {
vpTriggerArray[_local1].z = (vpTriggerArray[_local1].z - speed);
if ((((vpTriggerArray[_local1].z < 0)) && ((vpTriggerArray[_local1].active == true)))){
vpTriggerArray[_local1].active = false;
if (vpTriggerArray[_local1].subVariety == "l"){
vpVX = -(vpSpeedX);
};
if (vpTriggerArray[_local1].subVariety == "r"){
vpVX = vpSpeedX;
};
if (vpTriggerArray[_local1].subVariety == "u"){
vpVY = -(vpSpeedY);
deltaWC = wcSpeed;
};
if (vpTriggerArray[_local1].subVariety == "d"){
vpVY = vpSpeedY;
deltaWC = -(wcSpeed);
};
if (vpTriggerArray[_local1].subVariety == "c"){
vpCentre = true;
};
};
_local1++;
};
}
public function checkHealth():void{
if (health < 0){
health = 0;
lives--;
weapon = 1;
ammo = 100;
shipInvincible = true;
ship.alpha = 0;
if (lives == 1){
gui.ship1.visible = false;
gui.ship2.visible = false;
gui.ship3.visible = false;
};
if (lives == 2){
gui.ship1.visible = true;
gui.ship2.visible = false;
gui.ship3.visible = false;
};
if (lives == 3){
gui.ship1.visible = true;
gui.ship2.visible = true;
gui.ship3.visible = false;
};
initExplosion();
};
if (shipInvincible == true){
health++;
if (gameOver == false){
ship.alpha = (ship.alpha + 0.01);
};
if (health == 80){
if (soundOn == true){
newShipSound.play();
};
};
if (health >= 100){
health = 100;
shipInvincible = false;
if (gameOver == false){
ship.alpha = 1;
};
if (explodeShip == true){
removeExplosion();
};
};
if (explodeShip == true){
runExplosion();
};
};
}
public function gotoArmor(_arg1:MouseEvent):void{
var _local2:String;
var _local3:URLRequest;
_local2 = "http://www.armorgames.com";
_local3 = new URLRequest(_local2);
navigateToURL(_local3);
}
public function resumeGame(_arg1:MouseEvent):void{
stage.removeChild(confirmQuit);
confirmQuit.yesButton.removeEventListener(MouseEvent.MOUSE_DOWN, quitGame);
confirmQuit.noButton.removeEventListener(MouseEvent.MOUSE_DOWN, resumeGame);
gui.quitButton.addEventListener(MouseEvent.MOUSE_DOWN, showConfirmQuit);
gameRunning = true;
}
public function initSound():void{
soundToggle = new soundToggle_mc();
stage.addChild(soundToggle);
musicToggle = new musicToggle_mc();
stage.addChild(musicToggle);
initialiseSoundToggle();
initialiseMusicToggle();
musicChannel = menuMusic.play(0, 100);
}
public function removeAmmoText():void{
if (gameRunning == true){
gui.unlimitedAmmo.stop();
gui.unlimitedAmmo.visible = false;
};
}
public function gameLoop(_arg1:Event):void{
if (gameRunning == true){
updateTriggers();
updateVP();
drawStarfield();
scrollRoad();
drawRoad();
moveObjects();
moveBonuses();
moveEnemies();
moveBullets();
moveEnemyBullets();
checkHealth();
updateGUI();
checkGameOver();
if (gameOver == false){
controlShip();
fireBullet();
checkBulletCollisions();
checkCollisions();
checkLevelComplete();
};
motionBlur();
updateFPS();
};
}
public function showConfirmQuit(_arg1:MouseEvent):void{
if (preventQuit == false){
gameRunning = false;
gui.quitButton.removeEventListener(MouseEvent.MOUSE_DOWN, showConfirmQuit);
confirmQuit = new confirmQuit_mc();
stage.addChild(confirmQuit);
confirmQuit.yesButton.addEventListener(MouseEvent.MOUSE_DOWN, quitGame);
confirmQuit.noButton.addEventListener(MouseEvent.MOUSE_DOWN, resumeGame);
};
}
public function showMenu():void{
soundToggle.x = 533;
soundToggle.y = 433;
musicToggle.x = 563;
musicToggle.y = 429;
menu = new menu_mc();
projectCanvas.addChild(menu);
if (securityOn == true){
if (((!((currentURL.indexOf(allowedURL, 0) == -1))) || (!((currentURL.indexOf(allowedLocal, 0) == -1))))){
menu.playButton.addEventListener(MouseEvent.MOUSE_DOWN, showLevelSelect);
};
} else {
menu.playButton.addEventListener(MouseEvent.MOUSE_DOWN, showLevelSelect);
};
menu.instructionsButton.addEventListener(MouseEvent.MOUSE_DOWN, showInstructions);
menu.andromedusButton.addEventListener(MouseEvent.MOUSE_DOWN, gotoAndromedus);
menu.armorButton.addEventListener(MouseEvent.MOUSE_DOWN, gotoArmor);
menu.moreGames.addEventListener(MouseEvent.MOUSE_DOWN, gotoArmor);
}
public function initialiseSoundToggle():void{
soundToggle.addEventListener(MouseEvent.MOUSE_OVER, soundOver);
soundToggle.addEventListener(MouseEvent.MOUSE_OUT, soundUp);
soundToggle.addEventListener(MouseEvent.MOUSE_DOWN, toggleSound);
}
public function setupArrays(){
tickerArray[0] = "*** GALAXY DEFENDER !!! THE GALAXY IS UNDER THREAT FROM ALIEN INVADERS - ONLY YOU CAN STOP THE ATTACK !! BEWARE >>>>>>>> THIS GAME IS ROCK HARD !!! IF YOU WANT SOMETHING EASIER TO DO ....... GO AND STUDY NUCLEAR PHYSICS INSTEAD !!!!! ***";
tickerArray[1] = "*** ANOTHER GREAT GAME DEVELOPED BY -ANDROMEDUS SOFTWARE- ***";
tickerArray[2] = "*** SPONSORED BY ARMOR GAMES ***";
tickerArray[3] = "*** CODING BY -RIC- ***";
tickerArray[4] = "*** MUSIC BY -BISHOP ODO- ***";
tickerArray[5] = "*** ARTWORK BY -HOD- ***";
tickerArray[6] = "*** PLAY MORE SUPERB GAMES AT ARMORGAMES.COM ***";
tickerArray[7] = "*** GREETINGS TO ALL FLASH GAMERS - KEEP PLAYING !!!!! ***";
}
public function toggleSound(_arg1:MouseEvent):void{
if (soundOn == true){
soundOn = false;
soundToggle.gotoAndStop("offOver");
sfxTransform.volume = 0;
sfxChannel.soundTransform = sfxTransform;
} else {
soundOn = true;
soundToggle.gotoAndStop("onOver");
sfxTransform.volume = 1;
sfxChannel.soundTransform = sfxTransform;
};
}
public function exitGame():void{
gameRunning = false;
cleanUp();
showMenu();
particlesOn = true;
addParticles();
addTicker();
musicChannel.stop();
musicChannel = menuMusic.play(0, 100);
musicChannel.soundTransform = musicTransform;
}
public function showLevelSelect(_arg1:MouseEvent):void{
removeMenu();
levelSelect = new levelSelect_mc();
projectCanvas.addChild(levelSelect);
levelSelect.menuButton.addEventListener(MouseEvent.MOUSE_DOWN, returnToMenu);
levelSelect.levelButtonHolder.addEventListener(MouseEvent.MOUSE_DOWN, selectLevel);
levelSelect.pl2.visible = true;
levelSelect.pl3.visible = true;
levelSelect.pl2.mouseEnabled = false;
levelSelect.pl3.mouseEnabled = false;
levelSelect.numbers.mouseEnabled = false;
if (highestLevel > 1){
levelSelect.pl2.visible = false;
};
if (highestLevel > 2){
levelSelect.pl3.visible = false;
};
}
public function removeLevelSelect():void{
projectCanvas.removeChild(levelSelect);
levelSelect.menuButton.removeEventListener(MouseEvent.MOUSE_DOWN, removeLevelSelect);
}
public function gotoArmorGames(_arg1:MouseEvent):void{
var _local2:String;
var _local3:URLRequest;
_local2 = "http://www.armorgames.com";
_local3 = new URLRequest(_local2);
navigateToURL(_local3);
}
public function soundOver(_arg1:MouseEvent):void{
if (soundOn == true){
soundToggle.gotoAndStop("onOver");
} else {
soundToggle.gotoAndStop("offOver");
};
}
public function mouseDownHandler(_arg1:MouseEvent):void{
mouseDown = true;
}
public function fireEnemyBullet(_arg1:MovieClip):void{
var _local2:bulletE_mc;
var _local3:uint;
_local2 = new bulletE_mc();
objectCanvas.addChild(_local2);
bulletEArray.push(_local2);
_local3 = (bulletEArray.length - 1);
bulletEArray[_local3].offsetX = _arg1.offsetX;
bulletEArray[_local3].offsetY = _arg1.offsetY;
bulletEArray[_local3].z = _arg1.z;
bulletEArray[_local3].sizeX = (ship.width / 2);
bulletEArray[_local3].sizeY = (ship.width / 2);
}
public function moveBullets():void{
var _local1:uint;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = 0;
while (_local1 < bulletArray.length) {
bulletArray[_local1].visible = true;
bulletArray[_local1].z = (bulletArray[_local1].z + bulletSpeed);
bulletArray[_local1].offsetX = (bulletArray[_local1].offsetX + ((bulletArray[_local1].vX * 5) * Math.pow(bulletArray[_local1].z, 1.5)));
bulletArray[_local1].offsetY = (bulletArray[_local1].offsetY - ((bulletArray[_local1].vY * 5) * Math.pow(bulletArray[_local1].z, 1.5)));
_local2 = Math.pow(((segments - bulletArray[_local1].z) / segments), widthCurvature);
bulletArray[_local1].width = (bulletArray[_local1].sizeX * _local2);
bulletArray[_local1].height = (bulletArray[_local1].sizeY * _local2);
_local3 = Math.pow(((segments - bulletArray[_local1].z) / segments), distanceCurvature);
bulletArray[_local1].y = (((bulletArray[_local1].offsetY * _local2) + vpY) + (vpH * _local3));
_local4 = (1 - ((segments - bulletArray[_local1].z) / segments));
bulletArray[_local1].x = (((gameWidth / 2) + (bulletArray[_local1].offsetX * _local2)) + (vpX * _local4));
if (bulletArray[_local1].z > 3.5){
objectCanvas.removeChild(bulletArray[_local1]);
bulletArray.splice(_local1, 1);
};
_local1++;
};
}
public function end_preload():void{
stage.removeChild(preloader);
stage.removeEventListener(Event.ENTER_FRAME, loader);
gotoAndPlay(4);
}
public function initialiseMusicToggle():void{
musicToggle.addEventListener(MouseEvent.MOUSE_OVER, musicOver);
musicToggle.addEventListener(MouseEvent.MOUSE_OUT, musicUp);
musicToggle.addEventListener(MouseEvent.MOUSE_DOWN, toggleMusic);
}
public function checkCollisions():void{
var _local1:uint;
var _local2:uint;
var _local3:Boolean;
var _local4:explosion_mc;
var _local5:explosion_mc;
if (shipInvincible == false){
_local1 = 1;
while (_local1 <= numberOfObjects) {
if (((((((!((objectArray[_local1] == lastCollision))) && (!((objectArray[_local1].variety == "background"))))) && ((objectArray[_local1].visible == true)))) && ((objectArray[_local1].active == true)))){
if ((((objectArray[_local1].z < (speed * 2))) && ((objectArray[_local1].z > -(speed))))){
_local3 = ship.hitTestObject(objectArray[_local1]);
if (_local3 == true){
lastCollision = objectArray[_local1];
if (objectArray[_local1].subVariety == "health"){
if (soundOn == true){
bonusSound.play();
};
health = (health + 50);
if (health > 100){
health = 100;
};
objectArray[_local1].shadow.visible = false;
objectArray[_local1].active = false;
objectArray[_local1].captured = true;
} else {
if (objectArray[_local1].subVariety == "ammo"){
if (soundOn == true){
bonusSound.play();
};
ammo = (ammo + 50);
if (ammo > 100){
ammo = 100;
};
objectArray[_local1].shadow.visible = false;
objectArray[_local1].active = false;
objectArray[_local1].captured = true;
} else {
if (objectArray[_local1].subVariety == "weapon"){
if (soundOn == true){
bonusSound.play();
};
weapon = (weapon + 1);
if (weapon > 4){
weapon = 4;
};
objectArray[_local1].shadow.visible = false;
objectArray[_local1].active = false;
objectArray[_local1].captured = true;
} else {
if (soundOn == true){
playerHitSound.play();
};
health = (health - 15);
_local4 = new explosion_mc();
shipCanvas.addChild(_local4);
SuperGlobals.numberOfExplosions = (SuperGlobals.numberOfExplosions + 1);
objectArray[_local1].visible = false;
if (objectArray[_local1].variety == "enemy"){
objectArray[_local1].shadow.visible = false;
};
objectArray[_local1].active = false;
_local4.x = ship.x;
_local4.y = ship.y;
};
};
};
};
};
};
_local1++;
};
_local2 = 0;
while (_local2 < bulletEArray.length) {
if ((((bulletEArray[_local2].z < bulletESpeed)) && ((bulletEArray[_local2].z > -(bulletESpeed))))){
if (ship.hitTestObject(bulletEArray[_local2]) == true){
if (soundOn == true){
playerHitSound.play();
};
objectCanvas.removeChild(bulletEArray[_local2]);
bulletEArray.splice(_local2, 1);
health = (health - 5);
_local5 = new explosion_mc();
shipCanvas.addChild(_local5);
SuperGlobals.numberOfExplosions = (SuperGlobals.numberOfExplosions + 1);
_local5.x = ship.x;
_local5.y = ship.y;
};
};
_local2++;
};
};
}
public function drawRoad():void{
var _local1:Number;
var _local2:uint;
var _local3:Number;
var _local4:Number;
var _local5:Number;
drawing.clear();
oldY = (vpY + (vpH * Math.pow(((segments - segment[segments].z) / segments), distanceCurvature)));
_local1 = ((gameWidth / 2) + (vpX * (1 - ((segments - segment[segments].z) / segments))));
oldL = (_local1 - ((roadWidth / 2) * Math.pow(((segments - segment[segments].z) / segments), widthCurvature)));
oldR = (_local1 + ((roadWidth / 2) * Math.pow(((segments - segment[segments].z) / segments), widthCurvature)));
_local2 = 1;
while (_local2 <= segments) {
_local3 = Math.pow(((segments - segment[_local2].z) / segments), distanceCurvature);
segment[_local2].y = (vpY + (vpH * _local3));
_local4 = (1 - ((segments - segment[_local2].z) / segments));
segment[_local2].x = ((gameWidth / 2) + (vpX * _local4));
_local5 = Math.pow(((segments - segment[_local2].z) / segments), widthCurvature);
segment[_local2].l = (segment[_local2].x - ((roadWidth / 2) * _local5));
segment[_local2].r = (segment[_local2].x + ((roadWidth / 2) * _local5));
if (oldY < (segment[_local2].y - 20)){
oldY = (gameY + gameHeight);
oldL = 0;
oldR = gameWidth;
};
if (oldY != 0){
if (segment[_local2].z < 15){
drawing.lineStyle(undefined, 1);
if ((_local2 / 2) == int((_local2 / 2))){
if (currentLevel == 1){
drawing.beginFill(136, 1);
};
if (currentLevel == 2){
drawing.beginFill(0x8800, 1);
};
if (currentLevel == 3){
drawing.beginFill(0x880000, 1);
};
} else {
if (currentLevel == 1){
drawing.beginFill(85, 1);
};
if (currentLevel == 2){
drawing.beginFill(0x5500, 1);
};
if (currentLevel == 3){
drawing.beginFill(0x550000, 1);
};
};
drawing.moveTo(0, segment[_local2].y);
drawing.lineTo(gameWidth, segment[_local2].y);
drawing.lineTo(gameWidth, oldY);
drawing.lineTo(0, oldY);
drawing.endFill();
drawing.lineStyle(1, 6014661);
if ((_local2 / 2) == int((_local2 / 2))){
drawing.beginFill(7829401, 1);
} else {
drawing.beginFill(5592439, 1);
};
drawing.moveTo(segment[_local2].l, segment[_local2].y);
drawing.lineTo(segment[_local2].r, segment[_local2].y);
drawing.lineTo(oldR, oldY);
drawing.lineTo(oldL, oldY);
drawing.endFill();
};
};
oldL = segment[_local2].l;
oldR = segment[_local2].r;
oldY = segment[_local2].y;
_local2++;
};
}
public function initialise():void{
projectCanvas = new Sprite();
stage.addChild(projectCanvas);
initSound();
setupArrays();
addTicker();
particlesOn = true;
addParticles();
showMenu();
}
public function initStarfield():void{
var _local1:uint;
var _local2:Object;
SF_canvas = new Sprite();
SF_graphics = SF_canvas.graphics;
projectCanvas.addChild(SF_canvas);
_local1 = 0;
while (_local1 < SF_numberOfStars) {
_local2 = new Object();
SF_star[_local1] = _local2;
SF_star[_local1].x = (Math.random() * SF_sizeX);
SF_star[_local1].y = ((Math.random() * SF_sizeY) / 2);
_local1++;
};
}
public function cleanUp():void{
if (gameWon == false){
numberOfObjects = 0;
vpVX = 0;
vpVY = 0;
vpCentre = false;
deltaWC = 0;
widthCurvature = 12;
lastCollision = new Object();
mouseDown = false;
preventFiring = false;
numberOfTriggers = 0;
explodeShip = false;
preventQuit = false;
gameOver = false;
numberOfBosses = 0;
segment = new Array();
objectArray = new Array();
vpTriggerArray = new Array();
bulletArray = new Array();
bulletEArray = new Array();
fragmentArray = new Array();
stage.removeEventListener(Event.ENTER_FRAME, gameLoop);
if (bmAdded == true){
stage.removeChild(bm);
bmAdded = false;
};
stage.removeChild(projectCanvas);
stage.removeChild(debug);
projectCanvas = new Sprite();
stage.addChildAt(projectCanvas, 0);
};
}
public function quitGame(_arg1:MouseEvent):void{
stage.removeChild(confirmQuit);
confirmQuit.yesButton.removeEventListener(MouseEvent.MOUSE_DOWN, quitGame);
confirmQuit.noButton.removeEventListener(MouseEvent.MOUSE_DOWN, resumeGame);
exitGame();
}
public function draw3d(_arg1, _arg2:Boolean):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
if ((((_arg1.z < segments)) && ((_arg1.active == true)))){
_arg1.visible = true;
_local3 = Math.pow(((segments - _arg1.z) / segments), widthCurvature);
_arg1.width = (_arg1.sizeX * _local3);
_arg1.height = (_arg1.sizeY * _local3);
_local4 = Math.pow(((segments - _arg1.z) / segments), distanceCurvature);
_arg1.y = (((_arg1.offsetY * _local3) + vpY) + (vpH * _local4));
_local5 = (1 - ((segments - _arg1.z) / segments));
_arg1.x = (((gameWidth / 2) + (_arg1.offsetX * _local3)) + (vpX * _local5));
if (_arg2 == true){
_arg1.shadow.visible = true;
_arg1.shadow.x = _arg1.x;
_arg1.shadow.width = _arg1.width;
_arg1.shadow.height = (_arg1.height / 6);
_arg1.shadow.y = (vpY + (vpH * _local4));
};
};
if ((((_arg1.z < 0)) && ((_arg1.active == true)))){
_arg1.visible = false;
_arg1.active = false;
if (_arg2 == true){
_arg1.shadow.visible = false;
};
};
}
public function removeExplosion():void{
var _local1:uint;
explodeShip = false;
_local1 = 0;
while (_local1 <= numberOfFragments) {
shipCanvas.removeChild(fragmentArray[_local1]);
_local1++;
};
}
public function addParticles():void{
var _local1:MovieClip;
if (particlesOn == true){
if (Math.random() > 0.5){
_local1 = new menuExplosion_mc();
} else {
_local1 = new menuExplosion2_mc();
};
stage.addChild(_local1);
_local1.alpha = 0.5;
_local1.x = (Math.random() * stage.stageWidth);
_local1.y = (Math.random() * stage.stageHeight);
_local1.mouseEnabled = false;
_local1.mouseChildren = false;
setTimeout(addParticles, 500);
};
}
public function addTicker():void{
tickerSection = 0;
ticker = new ticker_mc();
stage.addChild(ticker);
ticker.x = 6;
ticker.y = 471;
tickerStart = ticker.mc.textField.x;
ticker.mc.textField.x = (tickerStart + 587);
ticker.mc.textField.text = tickerArray[tickerSection];
ticker.mc.textField.autoSize = TextFieldAutoSize.LEFT;
ticker.addEventListener(Event.ENTER_FRAME, scrollTicker);
}
public function showHighscores(){
}
public function fireBullet():void{
var _local1:MovieClip;
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:uint;
if ((((((mouseDown == true)) && ((preventFiring == false)))) && ((gameOver == false)))){
if ((((ammo > 0)) || ((unlimitedAmmo == true)))){
preventFiring = true;
if (soundOn == true){
shootSound.play();
};
if (unlimitedAmmo == false){
ammo = (ammo - 1);
};
if (ammo < 0){
ammo = 0;
};
if (weapon == 1){
_local1 = new bullet1_mc();
objectCanvas.addChild(_local1);
bulletArray.push(_local1);
_local2 = (bulletArray.length - 1);
bulletArray[_local2].offsetX = (ship.x - (gameWidth / 2));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 0;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0;
bulletArray[_local2].visible = false;
};
if (weapon == 2){
_local3 = 1;
while (_local3 <= 2) {
_local1 = new bullet1_mc();
objectCanvas.addChild(_local1);
bulletArray.push(_local1);
_local3++;
};
_local2 = (bulletArray.length - 1);
bulletArray[_local2].offsetX = ((ship.x - (gameWidth / 2)) - (ship.width / 3));
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 0;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
_local2 = (bulletArray.length - 2);
bulletArray[_local2].offsetX = ((ship.x - (gameWidth / 2)) + (ship.width / 3));
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 0;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
};
if (weapon == 3){
_local4 = 1;
while (_local4 <= 3) {
_local1 = new bullet1_mc();
objectCanvas.addChild(_local1);
bulletArray.push(_local1);
_local4++;
};
_local2 = (bulletArray.length - 1);
bulletArray[_local2].offsetX = ((ship.x - (gameWidth / 2)) - (ship.width / 3));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = -1;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
_local2 = (bulletArray.length - 2);
bulletArray[_local2].offsetX = (ship.x - (gameWidth / 2));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 0;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
_local2 = (bulletArray.length - 3);
bulletArray[_local2].offsetX = ((ship.x - (gameWidth / 2)) + (ship.width / 3));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 1;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
};
if (weapon == 4){
_local5 = 1;
while (_local5 <= 5) {
_local1 = new bullet1_mc();
objectCanvas.addChild(_local1);
bulletArray.push(_local1);
_local5++;
};
_local2 = (bulletArray.length - 1);
bulletArray[_local2].offsetX = ((ship.x - (gameWidth / 2)) - (ship.width / 3));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = -1;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
_local2 = (bulletArray.length - 2);
bulletArray[_local2].offsetX = (ship.x - (gameWidth / 2));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 0;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
_local2 = (bulletArray.length - 3);
bulletArray[_local2].offsetX = ((ship.x - (gameWidth / 2)) + (ship.width / 3));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 1;
bulletArray[_local2].vY = 0;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
_local2 = (bulletArray.length - 4);
bulletArray[_local2].offsetX = (ship.x - (gameWidth / 2));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = 1;
bulletArray[_local2].vY = 1;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
_local2 = (bulletArray.length - 5);
bulletArray[_local2].offsetX = (ship.x - (gameWidth / 2));
bulletArray[_local2].offsetY = 0;
bulletArray[_local2].vX = -1;
bulletArray[_local2].vY = 1;
bulletArray[_local2].sizeX = (ship.width / 2);
bulletArray[_local2].sizeY = (ship.width / 2);
bulletArray[_local2].x = (bulletArray[_local2].offsetX + (gameWidth / 2));
bulletArray[_local2].y = ship.y;
bulletArray[_local2].z = 0.2;
bulletArray[_local2].visible = false;
};
};
};
}
public function toggleMusic(_arg1:MouseEvent):void{
if (musicOn == true){
musicOn = false;
musicToggle.gotoAndStop("offOver");
musicTransform.volume = 0;
musicChannel.soundTransform = musicTransform;
} else {
musicOn = true;
musicToggle.gotoAndStop("onOver");
musicTransform.volume = 1;
musicChannel.soundTransform = musicTransform;
};
}
public function initialiseGame():void{
numberOfBosses = 0;
soundToggle.x = 544;
soundToggle.y = 17;
musicToggle.x = 570;
musicToggle.y = 32;
background = new background_mc();
projectCanvas.addChild(background);
initStarfield();
drawingCanvas = new Sprite();
projectCanvas.addChild(drawingCanvas);
drawing = drawingCanvas.graphics;
objectCanvas = new Sprite();
projectCanvas.addChild(objectCanvas);
shipCanvas = new Sprite();
projectCanvas.addChild(shipCanvas);
debug = new debug_mc();
stage.addChild(debug);
debug.visible = false;
debug.x = 237;
debug.y = 50;
stage.addEventListener(Event.ENTER_FRAME, gameLoop);
initRoad();
createLevel(currentLevel);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
gui = new gui_mc();
projectCanvas.addChild(gui);
gui.quitButton.addEventListener(MouseEvent.MOUSE_DOWN, showConfirmQuit);
if (lives == 1){
gui.ship1.visible = false;
gui.ship2.visible = false;
gui.ship3.visible = false;
};
if (lives == 2){
gui.ship1.visible = true;
gui.ship2.visible = false;
gui.ship3.visible = false;
};
if (lives == 3){
gui.ship1.visible = true;
gui.ship2.visible = true;
gui.ship3.visible = false;
};
gui.levelUp.visible = false;
gui.blackout.visible = false;
gui.blackout.alpha = 0;
gui.score.text = String(score);
gui.unlimitedAmmo.stop();
gui.unlimitedAmmo.visible = false;
if (currentLevel > 1){
trace(currentLevel);
gui.getReadyControls.visible = false;
gui.getReady.level.text = ("Level " + String(currentLevel));
};
preventFiring = true;
if (currentLevel == 1){
firingProbability = 0.01;
};
if (currentLevel == 2){
firingProbability = 0.017;
};
if (currentLevel == 3){
firingProbability = 0.024;
};
shipInvincible = true;
health = 0;
ammo = 100;
unlimitedAmmo = false;
unlimitedAmmoSet = false;
weapon = 1;
bmd = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0);
bm = new Bitmap(bmd);
stage.addChild(bm);
bmAdded = true;
stage.focus = stage;
preventQuit = true;
particlesOn = false;
if (currentLevel == 1){
setTimeout(startGame, 5000);
} else {
setTimeout(startGame, 2500);
};
vpY = (gameY + (gameHeight / 2));
vpX = 0;
}
public function checkBulletCollisions():void{
var _local1:uint;
var _local2:uint;
var _local3:explosion2_mc;
_local1 = 1;
while (_local1 <= numberOfObjects) {
if ((((objectArray[_local1].variety == "enemy")) && ((objectArray[_local1].active == true)))){
_local2 = 0;
while (_local2 < bulletArray.length) {
if (bulletArray[_local2].z < 3.5){
if ((((bulletArray[_local2].z < (objectArray[_local1].z + bulletSpeed))) && ((bulletArray[_local2].z > (objectArray[_local1].z - bulletSpeed))))){
if (bulletArray[_local2].hitTestObject(objectArray[_local1]) == true){
if (((!((objectArray[_local1].subVariety == "boss"))) && ((objectArray[_local1].active == true)))){
if (soundOn == true){
enemyHitSound.play();
};
objectArray[_local1].visible = false;
objectArray[_local1].shadow.visible = false;
objectArray[_local1].active = false;
objectCanvas.removeChild(bulletArray[_local2]);
bulletArray.splice(_local2, 1);
score = (score + 100);
if (SuperGlobals.numberOfExplosions < 6){
_local3 = new explosion2_mc();
SuperGlobals.numberOfExplosions = (SuperGlobals.numberOfExplosions + 1);
objectCanvas.addChild(_local3);
_local3.x = objectArray[_local1].x;
_local3.y = objectArray[_local1].y;
_local3.width = (objectArray[_local1].width / 5);
_local3.height = (objectArray[_local1].width / 5);
};
};
if ((((objectArray[_local1].subVariety == "boss")) && ((objectArray[_local1].active == true)))){
if (soundOn == true){
enemyHitSound.play();
};
objectArray[_local1].health = (objectArray[_local1].health - 1);
objectArray[_local1].healthBar.width = ((objectArray[_local1].health / bossStrength) * 192);
objectCanvas.removeChild(bulletArray[_local2]);
bulletArray.splice(_local2, 1);
score = (score + 100);
if (SuperGlobals.numberOfExplosions < 8){
_local3 = new explosion2_mc();
SuperGlobals.numberOfExplosions = (SuperGlobals.numberOfExplosions + 1);
objectCanvas.addChild(_local3);
_local3.x = objectArray[_local1].x;
_local3.y = objectArray[_local1].y;
_local3.width = (objectArray[_local1].width / 5);
_local3.height = (objectArray[_local1].width / 5);
};
if (objectArray[_local1].health <= 0){
numberOfBosses--;
trace(numberOfBosses);
objectArray[_local1].visible = false;
objectArray[_local1].shadow.visible = false;
objectArray[_local1].active = false;
score = (score + 500);
if (numberOfBosses <= 0){
setTimeout(randomExplosion, 0);
setTimeout(randomExplosion, 500);
setTimeout(randomExplosion, 1000);
setTimeout(randomExplosion, 1500);
setTimeout(randomExplosion, 2000);
setTimeout(randomExplosion, 2500);
setTimeout(randomExplosion, 3000);
setTimeout(randomExplosion, 3500);
setTimeout(randomExplosion, 4000);
setTimeout(randomExplosion, 4500);
setTimeout(randomExplosion, 5000);
setTimeout(randomExplosion, 5500);
setTimeout(randomExplosion, 6000);
setTimeout(randomExplosion, 6500);
setTimeout(randomExplosion, 7000);
setTimeout(endLevel, 7500);
};
};
};
};
};
};
_local2++;
};
};
_local1++;
};
}
public function updateFPS():void{
var _local1:Date;
_local1 = new Date();
fpsNewTime = _local1.getTime();
fpsElapsedTime = (fpsNewTime - fpsStartTime);
fpsCounter++;
if (fpsCounter == 99){
fpsCounter = 0;
fps = int((100 / (fpsElapsedTime / 1000)));
fpsStartTime = fpsNewTime;
};
debug.fps.text = ("fps " + String(fps));
}
public function endLevel():void{
if (soundOn == true){
finishLineSound.play();
};
levelComplete = true;
preventQuit = true;
gui.levelUp.visible = true;
gui.levelUp.alpha = 0;
gui.levelUp.shieldBonus.text = String((health * 10));
gui.levelUp.ammoBonus.text = String((ammo * 10));
if (currentLevel < numberOfLevels){
gui.levelUp.livesBonus.text = "";
} else {
gui.levelUp.livesBonus.text = ("Lives Bonus: " + String(((lives - 1) * 1000)));
};
}
public function initShip():void{
ship = new ship_mc();
shipCanvas.addChild(ship);
ship.x = (gameWidth / 2);
ship.y = (gameY + gameHeight);
ship.v = 0;
ship.width = 80;
ship.height = 43;
}
public function createObject(_arg1:uint, _arg2:uint, _arg3:String):void{
var _local4:MovieClip;
var _local5:String;
var _local6:String;
var _local7:shadow_mc;
numberOfObjects++;
if (_arg3 == "b1"){
_local4 = new barrier1_mc();
_local5 = "static";
_local6 = "hard";
};
if (_arg3 == "e1"){
_local4 = new enemy1_mc();
_local5 = "enemy";
_local6 = "e1";
};
if (_arg3 == "e2"){
_local4 = new enemy2_mc();
_local5 = "enemy";
_local6 = "e2";
};
if (_arg3 == "e3"){
_local4 = new enemy3_mc();
_local5 = "enemy";
_local6 = "e3";
};
if (_arg3 == "e4"){
_local4 = new enemy4_mc();
_local5 = "enemy";
_local6 = "e4";
};
if (_arg3 == "e5"){
_local4 = new enemy5_mc();
_local5 = "enemy";
_local6 = "e5";
};
if (_arg3 == "boss"){
_local4 = new boss_mc();
_local5 = "enemy";
_local6 = "boss";
numberOfBosses++;
};
if (_arg3 == "am"){
_local4 = new ammoBonus_mc();
_local5 = "bonus";
_local6 = "ammo";
};
if (_arg3 == "he"){
_local4 = new healthBonus_mc();
_local5 = "bonus";
_local6 = "health";
};
if (_arg3 == "w"){
_local4 = new weaponBonus_mc();
_local5 = "bonus";
_local6 = "weapon";
};
objectArray[numberOfObjects] = _local4;
objectCanvas.addChildAt(objectArray[numberOfObjects], 0);
objectArray[numberOfObjects].z = _arg2;
objectArray[numberOfObjects].sizeX = (roadWidth / 8);
objectArray[numberOfObjects].sizeY = (roadWidth / 8);
objectArray[numberOfObjects].width = objectArray[numberOfObjects].sizeX;
objectArray[numberOfObjects].height = objectArray[numberOfObjects].sizeY;
objectArray[numberOfObjects].offsetX = (((_arg1 * roadWidth) / 8) - (roadWidth / 2));
objectArray[numberOfObjects].offsetY = 0;
objectArray[numberOfObjects].offsetZ = 0;
objectArray[numberOfObjects].theta = 0;
objectArray[numberOfObjects].visible = false;
objectArray[numberOfObjects].variety = _local5;
objectArray[numberOfObjects].subVariety = _local6;
objectArray[numberOfObjects].active = true;
objectArray[numberOfObjects].captured = false;
objectArray[numberOfObjects].speedX = (speed * 200);
if (_local6 == "boss"){
objectArray[numberOfObjects].health = bossStrength;
objectArray[numberOfObjects].offsetX = 0;
objectArray[numberOfObjects].sizeX = (roadWidth / 4);
objectArray[numberOfObjects].sizeY = (roadWidth / 4);
};
if ((((_local5 == "enemy")) || ((_local5 == "bonus")))){
_local7 = new shadow_mc();
objectArray[numberOfObjects].shadow = _local7;
objectCanvas.addChildAt(objectArray[numberOfObjects].shadow, 0);
objectArray[numberOfObjects].shadow.visible = false;
};
}
public function startGame():void{
initShip();
gameRunning = true;
preventQuit = false;
}
public function scrollRoad():void{
var _local1:uint;
_local1 = 1;
while (_local1 <= segments) {
segment[_local1].z = (segment[_local1].z - speed);
if (segment[_local1].z < 0){
segment[_local1].z = (segment[_local1].z + segments);
};
_local1++;
};
}
public function musicUp(_arg1:MouseEvent):void{
if (musicOn == true){
musicToggle.gotoAndStop("onUp");
} else {
musicToggle.gotoAndStop("offUp");
};
}
public function showHighscoresOnClick(_arg1:MouseEvent):void{
showHighscores();
}
public function updateGUI():void{
if (gui.getReady.visible == true){
gui.getReady.alpha = (gui.getReady.alpha - 0.02);
if (gui.getReady.alpha <= 0){
gui.getReady.alpha = 0;
gui.getReady.visible = false;
};
};
if (gui.getReadyControls.visible == true){
gui.getReadyControls.alpha = (gui.getReadyControls.alpha - 0.02);
if (gui.getReadyControls.alpha <= 0){
gui.getReadyControls.alpha = 0;
gui.getReadyControls.visible = false;
};
};
gui.healthbar.width = ((167 * health) / 100);
gui.ammobar.width = ((167 * ammo) / 100);
gui.score.text = String(score);
}
public function returnToMenu(_arg1:MouseEvent):void{
removeLevelSelect();
showMenu();
}
public function initExplosion():void{
var _local1:uint;
var _local2:fragment_mc;
explodeShip = true;
if (soundOn == true){
playerDeadSound.play();
};
fragmentArray = new Array();
_local1 = 0;
while (_local1 <= numberOfFragments) {
_local2 = new fragment_mc();
fragmentArray[_local1] = _local2;
shipCanvas.addChild(fragmentArray[_local1]);
fragmentArray[_local1].x = ((ship.x + (Math.random() * 30)) - 15);
fragmentArray[_local1].y = (ship.y - (Math.random() * 30));
if ((((Math.abs((fragmentArray[_local1].x - ship.x)) < 4)) || ((Math.abs((ship.y - fragmentArray[_local1].y)) < 4)))){
fragmentArray[_local1].y = (fragmentArray[_local1].y - 4);
};
fragmentArray[_local1].width = (Math.random() * 10);
fragmentArray[_local1].height = (Math.random() * 20);
fragmentArray[_local1].rotation = (Math.random() * 360);
fragmentArray[_local1].speed = (0.06 + (Math.random() * 0.2));
_local1++;
};
explosionOrigin = ship.x;
}
public function selectLevel(_arg1:MouseEvent):void{
currentLevel = parseInt(_arg1.target.name.substring("level".length));
if (currentLevel <= highestLevel){
levelSelect.levelButtonHolder.removeEventListener(MouseEvent.MOUSE_DOWN, selectLevel);
removeLevelSelect();
removeTicker();
lives = startLives;
score = 0;
gameWon = false;
musicChannel.stop();
musicChannel = gameMusic.play(0, 100);
musicChannel.soundTransform = musicTransform;
initialiseGame();
};
}
public function createLevel(_arg1):void{
var _local2:uint;
var _local3:uint;
var _local4:String;
_local2 = 0;
while (_local2 < levelDataArray[_arg1].length) {
if (levelDataArray[_arg1][_local2] != undefined){
_local3 = 0;
while (_local3 < 9) {
if (levelDataArray[_arg1][_local2][_local3] != undefined){
_local4 = levelDataArray[_arg1][_local2][_local3];
if (_local4 != "0"){
if (_local3 != 8){
createObject(_local3, _local2, _local4);
} else {
createSpecial(_local2, _local4);
};
};
};
_local3++;
};
};
_local2++;
};
}
public function moveBonuses():void{
var _local1:uint;
_local1 = 1;
while (_local1 <= numberOfObjects) {
if (objectArray[_local1].variety == "bonus"){
if (objectArray[_local1].captured == false){
if (objectArray[_local1].z > 5){
objectArray[_local1].z = (objectArray[_local1].z - speed);
};
if (objectArray[_local1].z <= 5){
objectArray[_local1].z = (objectArray[_local1].z - (speed / 4));
};
objectArray[_local1].offsetY = ((objectArray[_local1].z - 2) * -300);
if (objectArray[_local1].offsetY > 0){
objectArray[_local1].offsetY = 0;
};
draw3d(objectArray[_local1], true);
} else {
objectArray[_local1].y = (objectArray[_local1].y - (speed * 60));
objectArray[_local1].width = (objectArray[_local1].width * 1.05);
objectArray[_local1].height = (objectArray[_local1].height * 1.05);
objectArray[_local1].alpha = (objectArray[_local1].alpha - 0.01);
if (objectArray[_local1].y < 0){
objectArray[_local1].visible = false;
};
};
};
_local1++;
};
}
}
}//package galaxydefender_fla
Section 7
//textField_mc_42 (galaxydefender_fla.textField_mc_42)
package galaxydefender_fla {
import flash.display.*;
import flash.text.*;
public dynamic class textField_mc_42 extends MovieClip {
public var textField:TextField;
}
}//package galaxydefender_fla
Section 8
//ammoBonus_mc (ammoBonus_mc)
package {
import flash.display.*;
public dynamic class ammoBonus_mc extends MovieClip {
}
}//package
Section 9
//atariBlip2 (atariBlip2)
package {
import flash.media.*;
public dynamic class atariBlip2 extends Sound {
}
}//package
Section 10
//background_mc (background_mc)
package {
import flash.display.*;
public dynamic class background_mc extends MovieClip {
}
}//package
Section 11
//barrier1_mc (barrier1_mc)
package {
import flash.display.*;
public dynamic class barrier1_mc extends MovieClip {
}
}//package
Section 12
//bonus (bonus)
package {
import flash.media.*;
public dynamic class bonus extends Sound {
}
}//package
Section 13
//boss_mc (boss_mc)
package {
import flash.display.*;
public dynamic class boss_mc extends MovieClip {
public var healthBar:MovieClip;
}
}//package
Section 14
//bridge_mc (bridge_mc)
package {
import flash.display.*;
public dynamic class bridge_mc extends MovieClip {
}
}//package
Section 15
//bullet1_mc (bullet1_mc)
package {
import flash.display.*;
public dynamic class bullet1_mc extends MovieClip {
}
}//package
Section 16
//bulletE_mc (bulletE_mc)
package {
import flash.display.*;
public dynamic class bulletE_mc extends MovieClip {
}
}//package
Section 17
//confirmQuit_mc (confirmQuit_mc)
package {
import flash.display.*;
public dynamic class confirmQuit_mc extends MovieClip {
public var noButton:SimpleButton;
public var yesButton:SimpleButton;
}
}//package
Section 18
//debug_mc (debug_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class debug_mc extends MovieClip {
public var fps:TextField;
}
}//package
Section 19
//enemy1_mc (enemy1_mc)
package {
import flash.display.*;
public dynamic class enemy1_mc extends MovieClip {
}
}//package
Section 20
//enemy2_mc (enemy2_mc)
package {
import flash.display.*;
public dynamic class enemy2_mc extends MovieClip {
}
}//package
Section 21
//enemy3_mc (enemy3_mc)
package {
import flash.display.*;
public dynamic class enemy3_mc extends MovieClip {
}
}//package
Section 22
//enemy4_mc (enemy4_mc)
package {
import flash.display.*;
public dynamic class enemy4_mc extends MovieClip {
}
}//package
Section 23
//enemy5_mc (enemy5_mc)
package {
import flash.display.*;
public dynamic class enemy5_mc extends MovieClip {
}
}//package
Section 24
//enemyHit (enemyHit)
package {
import flash.media.*;
public dynamic class enemyHit extends Sound {
}
}//package
Section 25
//explosion_mc (explosion_mc)
package {
import flash.display.*;
public dynamic class explosion_mc extends MovieClip {
public function explosion_mc(){
addFrameScript(30, frame31);
}
function frame31(){
stop();
this.parent.removeChild(this);
SuperGlobals.numberOfExplosions--;
}
}
}//package
Section 26
//explosion2_mc (explosion2_mc)
package {
import flash.display.*;
public dynamic class explosion2_mc extends MovieClip {
}
}//package
Section 27
//finish_mc (finish_mc)
package {
import flash.display.*;
public dynamic class finish_mc extends MovieClip {
}
}//package
Section 28
//finishLine (finishLine)
package {
import flash.media.*;
public dynamic class finishLine extends Sound {
}
}//package
Section 29
//flares_mc (flares_mc)
package {
import flash.display.*;
public dynamic class flares_mc extends MovieClip {
public var f6:MovieClip;
public var f4:MovieClip;
public var f1:MovieClip;
public var f5:MovieClip;
public var f3:MovieClip;
public var f2:MovieClip;
}
}//package
Section 30
//fragment_mc (fragment_mc)
package {
import flash.display.*;
public dynamic class fragment_mc extends MovieClip {
}
}//package
Section 31
//gameComplete (gameComplete)
package {
import flash.media.*;
public dynamic class gameComplete extends Sound {
}
}//package
Section 32
//gameEnded (gameEnded)
package {
import flash.media.*;
public dynamic class gameEnded extends Sound {
}
}//package
Section 33
//gameOverScreen_mc (gameOverScreen_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class gameOverScreen_mc extends MovieClip {
public var message2:TextField;
public var message1:TextField;
public var continueButton:SimpleButton;
}
}//package
Section 34
//gdGame (gdGame)
package {
import flash.media.*;
public dynamic class gdGame extends Sound {
}
}//package
Section 35
//gdMenu (gdMenu)
package {
import flash.media.*;
public dynamic class gdMenu extends Sound {
}
}//package
Section 36
//gui_mc (gui_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class gui_mc extends MovieClip {
public var healthbar:MovieClip;
public var levelUp:MovieClip;
public var quitButton:SimpleButton;
public var unlimitedAmmo:MovieClip;
public var ship2:MovieClip;
public var ship3:MovieClip;
public var ship1:MovieClip;
public var score:TextField;
public var ammobar:MovieClip;
public var getReadyControls:MovieClip;
public var getReady:MovieClip;
public var blackout:MovieClip;
}
}//package
Section 37
//healthBonus_mc (healthBonus_mc)
package {
import flash.display.*;
public dynamic class healthBonus_mc extends MovieClip {
}
}//package
Section 38
//heightMap_mc (heightMap_mc)
package {
import flash.display.*;
public dynamic class heightMap_mc extends MovieClip {
}
}//package
Section 39
//highscores_mc (highscores_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class highscores_mc extends MovieClip {
public var nameDisplay:TextField;
public var scoreDisplay:TextField;
public var connectingDisplay:TextField;
public var rankDisplay:TextField;
}
}//package
Section 40
//instructions_mc (instructions_mc)
package {
import flash.display.*;
public dynamic class instructions_mc extends MovieClip {
public var menuButton:SimpleButton;
}
}//package
Section 41
//levelContainer_mc (levelContainer_mc)
package {
import flash.display.*;
public dynamic class levelContainer_mc extends MovieClip {
}
}//package
Section 42
//levelInfo_mc (levelInfo_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class levelInfo_mc extends MovieClip {
public var blurbContent:TextField;
public var startButton:SimpleButton;
public var level:TextField;
}
}//package
Section 43
//levelSelect_mc (levelSelect_mc)
package {
import flash.display.*;
public dynamic class levelSelect_mc extends MovieClip {
public var levelButtonHolder:MovieClip;
public var menuButton:SimpleButton;
public var numbers:MovieClip;
public var pl3:padlock_mc;
public var pl2:padlock_mc;
}
}//package
Section 44
//levelThumb (levelThumb)
package {
import flash.display.*;
public dynamic class levelThumb extends SimpleButton {
}
}//package
Section 45
//menu_mc (menu_mc)
package {
import flash.display.*;
public dynamic class menu_mc extends MovieClip {
public var instructionsButton:SimpleButton;
public var bg:MovieClip;
public var armorButton:SimpleButton;
public var andromedusButton:SimpleButton;
public var moreGames:SimpleButton;
public var playButton:SimpleButton;
}
}//package
Section 46
//menuExplosion_mc (menuExplosion_mc)
package {
import flash.display.*;
public dynamic class menuExplosion_mc extends MovieClip {
public function menuExplosion_mc(){
addFrameScript(30, frame31);
}
function frame31(){
stop();
this.parent.removeChild(this);
}
}
}//package
Section 47
//menuExplosion2_mc (menuExplosion2_mc)
package {
import flash.display.*;
public dynamic class menuExplosion2_mc extends MovieClip {
public function menuExplosion2_mc(){
addFrameScript(30, frame31);
}
function frame31(){
stop();
this.parent.removeChild(this);
}
}
}//package
Section 48
//musicToggle_mc (musicToggle_mc)
package {
import flash.display.*;
public dynamic class musicToggle_mc extends MovieClip {
public function musicToggle_mc(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 49
//newShip (newShip)
package {
import flash.media.*;
public dynamic class newShip extends Sound {
}
}//package
Section 50
//padlock_mc (padlock_mc)
package {
import flash.display.*;
public dynamic class padlock_mc extends MovieClip {
}
}//package
Section 51
//playerDead (playerDead)
package {
import flash.media.*;
public dynamic class playerDead extends Sound {
}
}//package
Section 52
//playerHit (playerHit)
package {
import flash.media.*;
public dynamic class playerHit extends Sound {
}
}//package
Section 53
//point_mc (point_mc)
package {
import flash.display.*;
public dynamic class point_mc extends MovieClip {
}
}//package
Section 54
//preloader_mc (preloader_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class preloader_mc extends MovieClip {
public var loadingBar:MovieClip;
public var loadingText:TextField;
}
}//package
Section 55
//shadow_mc (shadow_mc)
package {
import flash.display.*;
public dynamic class shadow_mc extends MovieClip {
}
}//package
Section 56
//ship_mc (ship_mc)
package {
import flash.display.*;
public dynamic class ship_mc extends MovieClip {
}
}//package
Section 57
//shoot (shoot)
package {
import flash.media.*;
public dynamic class shoot extends Sound {
}
}//package
Section 58
//soundToggle_mc (soundToggle_mc)
package {
import flash.display.*;
public dynamic class soundToggle_mc extends MovieClip {
public function soundToggle_mc(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 59
//SuperGlobals (SuperGlobals)
package {
public class SuperGlobals {
public static var numberOfExplosions:int = 0;
}
}//package
Section 60
//ticker_mc (ticker_mc)
package {
import flash.display.*;
public dynamic class ticker_mc extends MovieClip {
public var mc:MovieClip;
}
}//package
Section 61
//weaponBonus_mc (weaponBonus_mc)
package {
import flash.display.*;
public dynamic class weaponBonus_mc extends MovieClip {
}
}//package