Section 1
//SegPixel (pixelEffects.pixels.SegPixel)
package pixelEffects.pixels {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class SegPixel extends Sprite {
private var bitmap:Bitmap;
private var glintFrames;// = 20
private var pull:Number;
private var finalX:Number;
private var glintCounter:Number;
private var finalY:Number;
private var src:BitmapData;
private var product:BitmapData;
public function SegPixel(_arg1:BitmapData, _arg2:BitmapData, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number):void{
glintFrames = 20;
glintCounter = glintFrames;
super();
this.finalX = _arg7;
this.finalY = _arg8;
this.pull = _arg9;
this.src = _arg1;
this.product = _arg2;
alpha = 0;
bitmap = new Bitmap(_arg1);
addChild(bitmap);
x = _arg3;
y = _arg4;
scaleX = _arg5;
scaleY = _arg6;
addEventListener(Event.ENTER_FRAME, go);
}
private function settle():void{
var _local1:Point;
x = finalX;
y = finalY;
scaleX = (scaleY = 1);
alpha = 1;
removeEventListener(Event.ENTER_FRAME, go);
addEventListener(Event.ENTER_FRAME, glint);
_local1 = new Point(finalX, finalY);
product.copyPixels(src, src.rect, _local1);
src.fillRect(src.rect, 0xFFFFFF);
alpha = 0.25;
}
private function remove():void{
removeEventListener(Event.ENTER_FRAME, glint);
removeEventListener(Event.ENTER_FRAME, go);
src.dispose();
removeChild(bitmap);
if (parent != null){
parent.removeChild(this);
};
}
private function go(_arg1:Event):void{
if ((((Math.abs((x - finalX)) < 1)) && ((Math.abs((y - finalY)) < 1)))){
settle();
} else {
x = (x - ((x - finalX) * pull));
y = (y - ((y - finalY) * pull));
scaleX = (scaleX - ((scaleX - 1) * pull));
scaleY = (scaleY - ((scaleY - 1) * pull));
alpha = (alpha - ((alpha - 1) * pull));
};
}
private function glint(_arg1:Event):void{
glintCounter--;
if (glintCounter > 0){
alpha = ((glintCounter / glintFrames) / 2);
} else {
remove();
};
}
}
}//package pixelEffects.pixels
Section 2
//PixelEffect1 (pixelEffects.PixelEffect1)
package pixelEffects {
import flash.display.*;
import flash.geom.*;
import pixelEffects.pixels.*;
import flash.utils.*;
public class PixelEffect1 extends Sprite {
private var segArray:Array;
private var productBitmap:Bitmap;
private var scaleRange:Number;
private var bgColor:Number;
private var drawInterval:uint;
private var pull:Number;
private var spread:Number;
private var pixels:Number;
private var interval:Number;
private var src:BitmapData;
private var product:BitmapData;
public function PixelEffect1(_arg1:BitmapData, _arg2:Number=0, _arg3:Number=500, _arg4:Number=0.15, _arg5:Number=9, _arg6:Number=15, _arg7:Number=50):void{
this.src = _arg1;
this.spread = _arg3;
this.pull = _arg4;
this.pixels = _arg5;
this.scaleRange = _arg6;
this.interval = _arg7;
product = new BitmapData(_arg1.width, _arg1.height, false, _arg2);
productBitmap = new Bitmap(product);
addChild(productBitmap);
segArray = createSegArray();
drawInterval = setInterval(drawPixels, _arg7);
}
private function finishDrawing():void{
clearInterval(drawInterval);
}
private function createSegArray():Array{
var _local1:Array;
var _local2:*;
var _local3:*;
_local1 = new Array();
_local2 = 0;
while ((_local2 * pixels) < src.width) {
_local1[_local2] = new Array();
_local3 = 0;
while ((_local3 * pixels) < src.height) {
_local1[_local2][_local3] = new Point((_local2 * pixels), (_local3 * pixels));
_local3++;
};
_local2++;
};
return (_local1);
}
private function drawPixels(){
drawPixel();
drawPixel();
drawPixel();
}
public function remove():void{
clearInterval(drawInterval);
src.dispose();
product.dispose();
removeChild(productBitmap);
}
private function drawPixel(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:BitmapData;
var _local6:Rectangle;
var _local7:Point;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:SegPixel;
if (segArray.length > 0){
_local1 = Math.floor((Math.random() * segArray.length));
_local2 = Math.floor((Math.random() * segArray[_local1].length));
_local3 = segArray[_local1][_local2].x;
_local4 = segArray[_local1][_local2].y;
segArray[_local1].splice(_local2, 1);
if (segArray[_local1].length <= 0){
segArray.splice(_local1, 1);
};
_local5 = new BitmapData(pixels, pixels, false, bgColor);
_local6 = new Rectangle(_local3, _local4, pixels, pixels);
_local7 = new Point(0, 0);
_local5.copyPixels(src, _local6, _local7);
_local8 = (((_local3 + (Math.random() * spread)) - (spread / 2)) - ((pixels * scaleRange) / 2));
_local9 = (((_local4 + (Math.random() * spread)) - (spread / 2)) - ((pixels * scaleRange) / 2));
_local10 = (Math.random() * scaleRange);
_local11 = (Math.random() * scaleRange);
_local12 = new SegPixel(_local5, product, _local8, _local9, _local10, _local11, _local3, _local4, pull);
addChild(_local12);
} else {
finishDrawing();
};
}
}
}//package pixelEffects
Section 3
//asteroidShapes_8 (uberSpaceShooter_fla.asteroidShapes_8)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class asteroidShapes_8 extends MovieClip {
public function asteroidShapes_8(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Math.ceil((Math.random() * 3)));
}
}
}//package uberSpaceShooter_fla
Section 4
//asteroidStates_7 (uberSpaceShooter_fla.asteroidStates_7)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class asteroidStates_7 extends MovieClip {
public var shapes:MovieClip;
public function asteroidStates_7(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 5
//bg_100 (uberSpaceShooter_fla.bg_100)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class bg_100 extends MovieClip {
public function bg_100(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 6
//bossShipHutAnim_91 (uberSpaceShooter_fla.bossShipHutAnim_91)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class bossShipHutAnim_91 extends MovieClip {
public function bossShipHutAnim_91(){
addFrameScript(20, frame21);
}
function frame21(){
MovieClip(this.parent).gotoAndStop("rest");
}
}
}//package uberSpaceShooter_fla
Section 7
//bossSpark_92 (uberSpaceShooter_fla.bossSpark_92)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class bossSpark_92 extends MovieClip {
public var s3:MovieClip;
}
}//package uberSpaceShooter_fla
Section 8
//center_111 (uberSpaceShooter_fla.center_111)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class center_111 extends MovieClip {
public var anim:MovieClip;
public var shine:MovieClip;
public var gravityAnim:MovieClip;
public var hurtAnim:MovieClip;
public function center_111(){
addFrameScript(0, frame1, 281, frame282);
}
function frame282(){
stop();
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 9
//centerGravityAnim_115 (uberSpaceShooter_fla.centerGravityAnim_115)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class centerGravityAnim_115 extends MovieClip {
public function centerGravityAnim_115(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 10
//centerGravitySegAnim_116 (uberSpaceShooter_fla.centerGravitySegAnim_116)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class centerGravitySegAnim_116 extends MovieClip {
public function centerGravitySegAnim_116(){
addFrameScript(0, frame1);
}
function frame1(){
Sounds.startSound(new BossPullSound());
}
}
}//package uberSpaceShooter_fla
Section 11
//darkAnim_103 (uberSpaceShooter_fla.darkAnim_103)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class darkAnim_103 extends MovieClip {
public function darkAnim_103(){
addFrameScript(0, frame1, 371, frame372);
}
function frame1(){
stop();
}
function frame372(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 12
//enterpriseHurt_12 (uberSpaceShooter_fla.enterpriseHurt_12)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class enterpriseHurt_12 extends MovieClip {
public function enterpriseHurt_12(){
addFrameScript(20, frame21);
}
function frame21(){
MovieClip(this.parent).gotoAndStop("rest");
}
}
}//package uberSpaceShooter_fla
Section 13
//enterpriseStates_10 (uberSpaceShooter_fla.enterpriseStates_10)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class enterpriseStates_10 extends MovieClip {
public function enterpriseStates_10(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 14
//export_mc_2 (uberSpaceShooter_fla.export_mc_2)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class export_mc_2 extends MovieClip {
public function export_mc_2(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 15
//gameField_101 (uberSpaceShooter_fla.gameField_101)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class gameField_101 extends MovieClip {
public var effects:MovieClip;
public var rim:MovieClip;
public var center:MovieClip;
public var stars:MovieClip;
public var baddies:MovieClip;
public var darkAnim:MovieClip;
public var projectiles:MovieClip;
public var player:MovieClip;
public var walls:MovieClip;
}
}//package uberSpaceShooter_fla
Section 16
//gameOver_138 (uberSpaceShooter_fla.gameOver_138)
package uberSpaceShooter_fla {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class gameOver_138 extends MovieClip {
public var points:Number;
public var score_bt:SimpleButton;
public var menu_bt:SimpleButton;
public var nameBox:TextField;
public var pointsBox:TextField;
public function gameOver_138(){
addFrameScript(0, frame1, 5, frame6, 122, frame123);
}
public function focusOutHandler(_arg1:FocusEvent){
GetMain.main.typing = false;
}
public function pressScore(_arg1:MouseEvent){
var _local2:URLRequest;
var _local3:URLVariables;
_local2 = new URLRequest("http://jacobgrahn.com/highScores.php");
_local3 = new URLVariables();
_local3.table = "space";
_local3.action = "add";
_local3.method = "html";
_local3.new_name = nameBox.text;
_local3.new_score = points;
_local3.dir = "desc";
_local2.data = _local3;
_local2.method = URLRequestMethod.POST;
navigateToURL(_local2);
pressMenu(_arg1);
}
function frame6(){
stage.focus = nameBox;
GetMain.main.typing = true;
points = MovieClip(parent).points;
pointsBox.text = ("Your score: " + Maths.formatNumberWithCommas(points));
score_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressScore);
menu_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressMenu);
nameBox.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
nameBox.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
}
public function pressMenu(_arg1:MouseEvent){
GetMain.main.typing = false;
deleteListeners();
gotoAndStop("off");
GetMain.main.typing = false;
MovieClip(parent).menu_mc.gotoAndStop("on");
MovieClip(parent).clearGame();
}
public function focusInHandler(_arg1:FocusEvent){
GetMain.main.typing = true;
}
function frame1(){
stop();
}
function frame123(){
stop();
}
public function deleteListeners(){
score_bt.removeEventListener(MouseEvent.MOUSE_DOWN, pressScore);
menu_bt.removeEventListener(MouseEvent.MOUSE_DOWN, pressMenu);
nameBox.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler);
nameBox.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
}
}
}//package uberSpaceShooter_fla
Section 17
//hurtAnim_118 (uberSpaceShooter_fla.hurtAnim_118)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class hurtAnim_118 extends MovieClip {
public function hurtAnim_118(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 18
//logo_mc_96 (uberSpaceShooter_fla.logo_mc_96)
package uberSpaceShooter_fla {
import flash.display.*;
import pixelEffects.*;
public dynamic class logo_mc_96 extends MovieClip {
public var logoAnim:PixelEffect1;
public function logo_mc_96(){
addFrameScript(0, frame1);
}
function frame1(){
logoAnim = new PixelEffect1(new JiggminLogo(300, 87));
addChild(logoAnim);
}
}
}//package uberSpaceShooter_fla
Section 19
//logoAnim_95 (uberSpaceShooter_fla.logoAnim_95)
package uberSpaceShooter_fla {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class logoAnim_95 extends MovieClip {
public var logo_mc:MovieClip;
public function logoAnim_95(){
addFrameScript(394, frame395);
}
function frame395(){
GetMain.main.gotoAndStop("play");
}
}
}//package uberSpaceShooter_fla
Section 20
//MainTimeline (uberSpaceShooter_fla.MainTimeline)
package uberSpaceShooter_fla {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var yShake:Number;
public var victory:MovieClip;
public var DEG_RAD:Number;
public var music;
public var doubleSlash:Number;
public var mute_bt:SimpleButton;
public var quit_bt:SimpleButton;
public var pauseable:Boolean;
public var star:MovieClip;
public var logoAnim:MovieClip;
public var i;
public var energyBar:MovieClip;
public var numStars:Number;
public var menu_mc:MovieClip;
public var stats:Stats;
public var RAD_DEG:Number;
public var protocol:String;
public var lastLife:Number;
public var lastEnergy:Number;
public var player:Player;
public var screenFlash:MovieClip;
public var points:Number;
public var introChannel:SoundChannel;
public var maxEffects:Number;
public var lives:Number;
public var galaxy:MovieClip;
public var statsHolder:MovieClip;
public var paused:Boolean;
public var starArray:Array;
public var pause_bt:SimpleButton;
public var notifs:MovieClip;
public var livesBox:TextField;
public var minFPS:Number;
public var server:String;
public var lastDist:Number;
public var xShake:Number;
public var levels:Levels;
public var lastRot:Number;
public var lifeBar:MovieClip;
public var testURL:String;
public var typing:Boolean;
public var allowedArray:Array;
public var swfURL:String;
public var lastShield:Number;
public var levelBox:TextField;
public var preloaderHolder:MovieClip;
public var foundAllowedURL:Boolean;
public var cam:MovieClip;
public var gameOver:MovieClip;
public var pointsBox:TextField;
public var shieldBar:MovieClip;
public function MainTimeline(){
addFrameScript(1, frame2, 10, frame11, 20, frame21);
}
public function preload(){
var _local1:Preloader;
_local1 = new Preloader(500, 500);
preloaderHolder.addChild(_local1);
}
public function skipIntro():void{
logoAnim.stop();
introChannel.stop();
gotoAndStop("play");
}
public function pauseChildren(_arg1:MovieClip){
var _local2:*;
_local2 = (_arg1.numChildren - 1);
while (_local2 >= 0) {
MovieClip(_arg1.getChildAt(_local2)).pause();
_local2--;
};
}
public function incPoints(_arg1:Number):void{
setPoints((points + _arg1));
}
public function mouseDownHandler(_arg1:MouseEvent):void{
setTimeout(skipIntro, 100);
}
public function focusInHandler(_arg1){
}
public function setLevel(_arg1:Number):void{
levelBox.text = _arg1.toString();
}
function frame21(){
stop();
lastRot = 0;
lastDist = 100;
RAD_DEG = Maths.RAD_DEG();
DEG_RAD = Maths.DEG_RAD();
music = new Music();
stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
menu_mc.gotoAndStop("on");
Key.initialize(stage);
addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
pause_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressPause_bt);
quit_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressQuit_bt);
xShake = 0;
yShake = 0;
starArray = new Array();
numStars = 50;
i = 0;
while (i < numStars) {
star = new Star();
star.dist = ((Math.random() * 250) + 25);
star.rotation = (Math.random() * 360);
star.z = (Math.random() + 0.25);
star.scaleX = (star.scaleY = (star.z * 2));
star.alpha = ((star.z * (1 / 1.25)) * 0.5);
cam.stars.addChild(star);
starArray.push(star);
i++;
};
lifeBar.gotoAndStop("hull");
shieldBar.gotoAndStop("shield");
energyBar.gotoAndStop("energy");
}
public function pressMute_bt(_arg1:MouseEvent):void{
pressMute();
}
public function pressQuit_bt(_arg1:MouseEvent){
if (pauseable){
player.remove();
lives = 1;
die();
};
}
public function die(){
setLives((lives - 1));
if (lives > 0){
setTimeout(respawn, 1000);
} else {
endGame();
};
}
public function rotCam(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
var _local4:*;
_local2 = ((360 - _arg1) + 90);
_local3 = (((cam.rotation - _local2) + 360) % 360);
cam.center.shine.rotation = (_arg1 - 90);
cam.rotation = _local2;
if (Math.abs(_local3) > 180){
if (_local3 > 0){
_local3 = -((360 - _local3));
} else {
_local3 = (360 + _local3);
};
};
_local4 = 0;
while (_local4 < numStars) {
star = starArray[_local4];
star.rotation = (star.rotation + (_local3 - ((_local3 * star.z) * 0.25)));
setPosition(star.dist, star.rotation, star);
_local4++;
};
galaxy.rotation = (galaxy.rotation - (_local3 * 0.1));
}
public function setStatBar(_arg1:Number, _arg2:Number, _arg3:MovieClip):void{
var _local4:Number;
_local4 = Math.floor(_arg1);
if (_arg1 > 0){
_arg3.bar.height = ((_local4 * 5) - 2);
} else {
_arg3.bar.height = 0;
};
if (_arg2 < _local4){
_arg3.upFlash.gotoAndPlay("flash");
_arg3.upFlash.y = (50 - (_local4 * 5));
} else {
if (_arg2 > _local4){
_arg3.downFlash.gotoAndPlay("flash");
_arg3.downFlash.y = (45 - (_local4 * 5));
};
};
}
public function keyDownHandler(_arg1:KeyboardEvent){
var _local2:Number;
_local2 = _arg1.keyCode;
if (_arg1.target.toString() != "[object TextField]"){
if (_local2 == 80){
pressPause();
} else {
if (_local2 == 77){
pressMute();
};
};
};
}
function frame11(){
stop();
introChannel = Sounds.startSound(new LogoIntroMusic());
pauseable = false;
paused = false;
typing = false;
minFPS = 20;
maxEffects = 100;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
mute_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressMute_bt);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
}
public function pressPause_bt(_arg1:MouseEvent):void{
pressPause();
}
function frame2(){
stop();
stats = new Stats();
GetMain.main = this;
stage.showDefaultContextMenu = false;
allowedArray = new Array("jiggmin.com", "kongregate.com", "uploads.ungrounded.net");
swfURL = stage.loaderInfo.url;
protocol = swfURL.substr(0, swfURL.indexOf(":"));
if (protocol == "file"){
preload();
} else {
if (protocol == "http"){
doubleSlash = swfURL.indexOf("//");
server = swfURL.substr((doubleSlash + 2), ((swfURL.indexOf("/", (doubleSlash + 2)) - doubleSlash) - 2));
server = server.toLowerCase();
if (server.indexOf("www.") != -1){
server = server.substr((server.indexOf("www.") + 4), server.length);
};
foundAllowedURL = false;
i = 0;
while (i < allowedArray.length) {
testURL = allowedArray[i];
if (server.indexOf(testURL) != -1){
foundAllowedURL = true;
break;
};
i++;
};
if (foundAllowedURL){
preload();
} else {
showMochiad();
};
} else {
showMochiad();
};
};
}
public function endVictory():void{
pauseable = false;
clearChildren(victory.stars);
victory.ship.anim.remove();
victory.gotoAndStop("off");
menu_mc.gotoAndStop("on");
music.fadeIn();
}
public function beatGame():void{
pauseable = false;
points = (points + 1001);
clearGame();
victory.gotoAndPlay("on");
music.fadeOut();
}
public function shakeCam(_arg1:Event):void{
xShake = (xShake * -0.85);
yShake = (yShake * -0.85);
cam.x = (xShake + 250);
cam.y = (yShake + 250);
}
public function pressMute(){
if (!typing){
Sounds.pressMute();
};
}
public function shake(_arg1:Number):void{
if (Math.random() > 0.5){
xShake = (xShake + _arg1);
} else {
xShake = (xShake - _arg1);
};
if (Math.random() > 0.5){
yShake = (yShake + _arg1);
} else {
yShake = (yShake - _arg1);
};
}
public function pauseGame():void{
pauseChildren(cam.baddies);
pauseChildren(cam.effects);
pauseChildren(cam.projectiles);
player.pause();
levels.pause();
}
public function focusOutHandler(_arg1){
stage.focus = stage;
}
public function respawn():void{
var _local1:Appear;
Sounds.startSound(new AppearSound(), 1.25);
_local1 = new Appear("Player");
cam.effects.addChild(_local1);
_local1.rot = lastRot;
_local1.dist = lastDist;
_local1.setPosition();
}
public function resumeChildren(_arg1:MovieClip){
var _local2:*;
_local2 = (_arg1.numChildren - 1);
while (_local2 >= 0) {
MovieClip(_arg1.getChildAt(_local2)).resume();
_local2--;
};
}
public function endGame(){
gameOver.gotoAndPlay("on");
pauseable = false;
}
public function pressPause(){
if (pauseable){
if (paused){
resumeGame();
paused = false;
} else {
pauseGame();
paused = true;
};
};
}
public function startGame(){
paused = false;
setLives(3);
setPoints(0);
setLevel(0);
player = new Player();
levels = new Levels();
menu_mc.gotoAndStop("off");
pauseable = true;
addEventListener(Event.ENTER_FRAME, shakeCam);
}
public function clearChildren(_arg1:MovieClip){
while (_arg1.numChildren > 0) {
MovieClip(_arg1.getChildAt(0)).remove();
};
}
public function showMochiad(){
MochiAd.showPreGameAd({clip:root, id:"ce27f4ce6308091f", res:"500x350"});
}
public function setPosition(_arg1:Number, _arg2:Number, _arg3:MovieClip){
var _local4:Number;
_local4 = (_arg2 * DEG_RAD);
_arg3.x = (Math.cos(_local4) * _arg1);
_arg3.y = (Math.sin(_local4) * _arg1);
}
public function setStatBars(_arg1:Number, _arg2:Number, _arg3:Number):void{
setStatBar(_arg1, lastLife, lifeBar);
setStatBar(_arg2, lastShield, shieldBar);
setStatBar(_arg3, lastEnergy, energyBar);
lastLife = Math.floor(_arg1);
lastEnergy = Math.floor(_arg3);
lastShield = Math.floor(_arg2);
}
public function setLives(_arg1:Number):void{
lives = _arg1;
livesBox.text = lives.toString();
}
public function resumeGame():void{
resumeChildren(cam.baddies);
resumeChildren(cam.effects);
resumeChildren(cam.projectiles);
player.resume();
levels.resume();
}
public function setPoints(_arg1:Number):void{
points = _arg1;
pointsBox.text = Maths.formatNumberWithCommas(_arg1);
}
public function clearGame(){
pauseable = false;
removeEventListener(Event.ENTER_FRAME, shakeCam);
levels.remove();
clearChildren(cam.baddies);
clearChildren(cam.effects);
clearChildren(cam.projectiles);
clearChildren(cam.player);
}
}
}//package uberSpaceShooter_fla
Section 21
//menu_134 (uberSpaceShooter_fla.menu_134)
package uberSpaceShooter_fla {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class menu_134 extends MovieClip {
public var score_bt:SimpleButton;
public var play_bt:SimpleButton;
public var jiggmin_bt:SimpleButton;
public function menu_134(){
addFrameScript(0, frame1, 15, frame16);
}
public function pressPlay(_arg1:MouseEvent){
deleteListeners();
GetMain.main.startGame();
}
public function pressScores(_arg1:MouseEvent){
var _local2:URLRequest;
var _local3:URLVariables;
_local2 = new URLRequest("http://jacobgrahn.com/highScores.php");
_local3 = new URLVariables();
_local3.table = "space";
_local3.method = "html";
_local3.dir = "desc";
_local2.data = _local3;
_local2.method = URLRequestMethod.POST;
navigateToURL(_local2);
}
function frame16(){
stop();
}
function frame1(){
stop();
play_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressPlay);
score_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressScores);
jiggmin_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressJiggmin);
}
public function pressJiggmin(_arg1:MouseEvent){
var _local2:URLRequest;
_local2 = new URLRequest("http://jiggmin.com");
navigateToURL(_local2);
}
public function deleteListeners(){
play_bt.removeEventListener(MouseEvent.MOUSE_DOWN, pressPlay);
score_bt.removeEventListener(MouseEvent.MOUSE_DOWN, pressScores);
jiggmin_bt.removeEventListener(MouseEvent.MOUSE_DOWN, pressJiggmin);
}
}
}//package uberSpaceShooter_fla
Section 22
//mineColor_mc_20 (uberSpaceShooter_fla.mineColor_mc_20)
package uberSpaceShooter_fla {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class mineColor_mc_20 extends MovieClip {
public var vol:Number;
public function mineColor_mc_20(){
addFrameScript(0, frame1, 319, frame320, 334, frame335, 346, frame347, 356, frame357, 364, frame365, 370, frame371, 374, frame375, 376, frame377, 378, frame379, 380, frame381, 382, frame383);
}
function frame320(){
Sounds.startSound(new MineSound(), vol);
}
function frame335(){
Sounds.startSound(new MineSound(), vol);
}
function frame347(){
Sounds.startSound(new MineSound(), vol);
}
function frame1(){
vol = 0.15;
}
function frame357(){
Sounds.startSound(new MineSound(), vol);
}
function frame365(){
Sounds.startSound(new MineSound(), vol);
}
function frame377(){
Sounds.startSound(new MineSound(), vol);
}
function frame371(){
Sounds.startSound(new MineSound(), vol);
}
function frame379(){
Sounds.startSound(new MineSound(), vol);
}
function frame383(){
MovieClip(parent).explode();
stop();
}
function frame375(){
Sounds.startSound(new MineSound(), vol);
}
function frame381(){
Sounds.startSound(new MineSound(), vol);
}
}
}//package uberSpaceShooter_fla
Section 23
//miniShooterHurtAnim_28 (uberSpaceShooter_fla.miniShooterHurtAnim_28)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class miniShooterHurtAnim_28 extends MovieClip {
public function miniShooterHurtAnim_28(){
addFrameScript(20, frame21);
}
function frame21(){
MovieClip(this.parent).gotoAndStop("rest");
}
}
}//package uberSpaceShooter_fla
Section 24
//miniShooterStates_26 (uberSpaceShooter_fla.miniShooterStates_26)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class miniShooterStates_26 extends MovieClip {
public function miniShooterStates_26(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 25
//notif_56 (uberSpaceShooter_fla.notif_56)
package uberSpaceShooter_fla {
import flash.display.*;
import flash.text.*;
public dynamic class notif_56 extends MovieClip {
public var subTextBox:TextField;
public var textBox:TextField;
}
}//package uberSpaceShooter_fla
Section 26
//pillar_108 (uberSpaceShooter_fla.pillar_108)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class pillar_108 extends MovieClip {
public var p1:MovieClip;
public var p2:MovieClip;
public var p3:MovieClip;
public var p4:MovieClip;
}
}//package uberSpaceShooter_fla
Section 27
//pillarAnim_107 (uberSpaceShooter_fla.pillarAnim_107)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class pillarAnim_107 extends MovieClip {
public var pillarSegs:MovieClip;
public function pillarAnim_107(){
addFrameScript(0, frame1, 1, frame2, 89, frame90);
}
function frame90(){
stop();
}
function frame1(){
stop();
}
function frame2(){
pillarSegs.removeChild(pillarSegs[("p" + (Math.ceil((Math.random() * 3)) + 1))]);
}
}
}//package uberSpaceShooter_fla
Section 28
//randoHurtAnim_35 (uberSpaceShooter_fla.randoHurtAnim_35)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class randoHurtAnim_35 extends MovieClip {
public function randoHurtAnim_35(){
addFrameScript(20, frame21);
}
function frame21(){
MovieClip(this.parent).gotoAndStop("rest");
}
}
}//package uberSpaceShooter_fla
Section 29
//randoStates_31 (uberSpaceShooter_fla.randoStates_31)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class randoStates_31 extends MovieClip {
public function randoStates_31(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 30
//sawHurtAnim_44 (uberSpaceShooter_fla.sawHurtAnim_44)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class sawHurtAnim_44 extends MovieClip {
public function sawHurtAnim_44(){
addFrameScript(20, frame21);
}
function frame21(){
MovieClip(this.parent).gotoAndStop("rest");
}
}
}//package uberSpaceShooter_fla
Section 31
//sawStates_42 (uberSpaceShooter_fla.sawStates_42)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class sawStates_42 extends MovieClip {
public function sawStates_42(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 32
//screenFlash_131 (uberSpaceShooter_fla.screenFlash_131)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class screenFlash_131 extends MovieClip {
public var states:MovieClip;
public function screenFlash_131(){
addFrameScript(21, frame22);
}
function frame22(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 33
//screenFlashColors_132 (uberSpaceShooter_fla.screenFlashColors_132)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class screenFlashColors_132 extends MovieClip {
public function screenFlashColors_132(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 34
//shieldAnim_13 (uberSpaceShooter_fla.shieldAnim_13)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class shieldAnim_13 extends MovieClip {
public var shield:MovieClip;
public function shieldAnim_13(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 35
//shipHurtAnim_62 (uberSpaceShooter_fla.shipHurtAnim_62)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class shipHurtAnim_62 extends MovieClip {
public function shipHurtAnim_62(){
addFrameScript(20, frame21);
}
function frame21(){
MovieClip(this.parent).gotoAndStop("rest");
}
}
}//package uberSpaceShooter_fla
Section 36
//shipStates_59 (uberSpaceShooter_fla.shipStates_59)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class shipStates_59 extends MovieClip {
public var anim:MovieClip;
public function shipStates_59(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 37
//spinHurtAnim_48 (uberSpaceShooter_fla.spinHurtAnim_48)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class spinHurtAnim_48 extends MovieClip {
public var spinHurt:MovieClip;
public function spinHurtAnim_48(){
addFrameScript(20, frame21);
}
function frame21(){
MovieClip(this.parent).gotoAndStop("rest");
}
}
}//package uberSpaceShooter_fla
Section 38
//spinStates_46 (uberSpaceShooter_fla.spinStates_46)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class spinStates_46 extends MovieClip {
public function spinStates_46(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 39
//statBar_121 (uberSpaceShooter_fla.statBar_121)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class statBar_121 extends MovieClip {
public var bar:MovieClip;
public var upFlash:MovieClip;
public var upgradeFlash:MovieClip;
public var downFlash:MovieClip;
public function statBar_121(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 40
//statBarFlashAnim_125 (uberSpaceShooter_fla.statBarFlashAnim_125)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class statBarFlashAnim_125 extends MovieClip {
public function statBarFlashAnim_125(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 41
//statBarUpgradeFlash_128 (uberSpaceShooter_fla.statBarUpgradeFlash_128)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class statBarUpgradeFlash_128 extends MovieClip {
public function statBarUpgradeFlash_128(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 42
//states_89 (uberSpaceShooter_fla.states_89)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class states_89 extends MovieClip {
public function states_89(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 43
//uberLaser_110 (uberSpaceShooter_fla.uberLaser_110)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class uberLaser_110 extends MovieClip {
public function uberLaser_110(){
addFrameScript(0, frame1, 5, frame6);
}
function frame6(){
stop();
}
function frame1(){
stop();
}
}
}//package uberSpaceShooter_fla
Section 44
//walls_106 (uberSpaceShooter_fla.walls_106)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class walls_106 extends MovieClip {
public var p1:MovieClip;
public var p2:MovieClip;
public var p3:MovieClip;
public var p5:MovieClip;
public var p6:MovieClip;
public var p7:MovieClip;
public var p8:MovieClip;
public var p4:MovieClip;
public var uberLaser:MovieClip;
}
}//package uberSpaceShooter_fla
Section 45
//victoryAnim_141 (uberSpaceShooter_fla.victoryAnim_141)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class victoryAnim_141 extends MovieClip {
public var ship:MovieClip;
public var i;
public var stars:MovieClip;
public function victoryAnim_141(){
addFrameScript(0, frame1, 5, frame6, 7, frame8, 8, frame9, 11, frame12, 15, frame16, 19, frame20, 22, frame23, 25, frame26, 28, frame29, 32, frame33, 35, frame36, 46, frame47, 50, frame51, 62, frame63, 77, frame78, 167, frame168, 317, frame318);
}
function frame318(){
stop();
}
function frame78(){
Sounds.startSound(new PelletHitSound());
}
function frame168(){
Sounds.startSound(new BoomSound());
Sounds.startSound(new LogoIntroMusic());
i = 100;
while (i > 0) {
stars.addChild(new VictoryStar());
i--;
};
}
function frame12(){
Sounds.startSound(new PelletHitSound());
}
function frame16(){
Sounds.startSound(new PelletHitSound());
}
function frame1(){
stop();
}
function frame26(){
Sounds.startSound(new BoomSound());
}
function frame23(){
Sounds.startSound(new PelletHitSound());
}
function frame9(){
Sounds.startSound(new BossHurtSound(), 1.5);
}
function frame8(){
Sounds.startSound(new PelletHitSound());
}
function frame36(){
Sounds.startSound(new AsteroidMediumSound());
}
function frame20(){
Sounds.startSound(new AsteroidLowSound());
}
function frame29(){
Sounds.startSound(new PelletHitSound());
}
function frame6(){
Sounds.startSound(new BigBoomSound(), 1.5);
Sounds.startSound(new BossLaserFadeSound(), 0.5);
}
function frame47(){
Sounds.startSound(new BigBoomSound(), 1.5);
}
function frame33(){
Sounds.startSound(new PelletHitSound());
}
function frame51(){
Sounds.startSound(new BossHurtSound(), 1);
}
function frame63(){
Sounds.startSound(new PelletHitSound());
}
}
}//package uberSpaceShooter_fla
Section 46
//victoryShip_145 (uberSpaceShooter_fla.victoryShip_145)
package uberSpaceShooter_fla {
import flash.display.*;
import flash.events.*;
public dynamic class victoryShip_145 extends MovieClip {
public var states:MovieClip;
public var engineLight:MovieClip;
public var engine:MovieClip;
public function victoryShip_145(){
addFrameScript(0, frame1);
}
function frame1(){
addEventListener(Event.ENTER_FRAME, go);
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, go);
}
public function go(_arg1:Event):void{
engineLight.visible = (engine.visible = true);
engineLight.alpha = (engine.alpha = ((Math.random() * 0.5) + 0.5));
}
}
}//package uberSpaceShooter_fla
Section 47
//victoryShipAnim_144 (uberSpaceShooter_fla.victoryShipAnim_144)
package uberSpaceShooter_fla {
import flash.display.*;
public dynamic class victoryShipAnim_144 extends MovieClip {
public var anim:MovieClip;
}
}//package uberSpaceShooter_fla
Section 48
//victoryStats_146 (uberSpaceShooter_fla.victoryStats_146)
package uberSpaceShooter_fla {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class victoryStats_146 extends MovieClip {
public var points:Number;
public var score_bt:SimpleButton;
public var menu_bt:SimpleButton;
public var nameBox:TextField;
public var pointsBox:TextField;
public function victoryStats_146(){
addFrameScript(0, frame1);
}
public function focusOutHandler(_arg1:FocusEvent){
GetMain.main.typing = false;
}
public function pressScore(_arg1:MouseEvent){
var _local2:URLRequest;
var _local3:URLVariables;
_local2 = new URLRequest("http://jacobgrahn.com/highScores.php");
_local3 = new URLVariables();
_local3.table = "space";
_local3.action = "add";
_local3.method = "html";
_local3.new_name = nameBox.text;
_local3.new_score = points;
_local3.dir = "desc";
_local2.data = _local3;
_local2.method = URLRequestMethod.POST;
navigateToURL(_local2);
pressMenu(_arg1);
}
public function pressMenu(_arg1:MouseEvent){
GetMain.main.typing = false;
deleteListeners();
GetMain.main.endVictory();
}
public function focusInHandler(_arg1:FocusEvent){
GetMain.main.typing = true;
}
function frame1(){
stage.focus = nameBox;
GetMain.main.typing = true;
points = GetMain.main.points;
pointsBox.text = ("Your score: " + Maths.formatNumberWithCommas(points));
score_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressScore);
menu_bt.addEventListener(MouseEvent.MOUSE_DOWN, pressMenu);
nameBox.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
nameBox.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
}
public function deleteListeners(){
score_bt.removeEventListener(MouseEvent.MOUSE_DOWN, pressScore);
menu_bt.removeEventListener(MouseEvent.MOUSE_DOWN, pressMenu);
nameBox.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler);
nameBox.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
}
}
}//package uberSpaceShooter_fla
Section 49
//Appear (Appear)
package {
import flash.display.*;
import flash.utils.*;
public class Appear extends Body {
private var paused:Boolean;// = false
private var summonTimeout:uint;
private var main;
private var dieTimeout:uint;
private var ref:String;
public function Appear(_arg1:String):void{
var _local2:Number;
main = GetMain.main;
paused = false;
super();
addFrameScript(56, frame57);
dieTimeout = setTimeout(die, 2500);
summonTimeout = setTimeout(summon, 1300);
this.ref = _arg1;
rotation = (Math.random() * 360);
_local2 = 0.45;
if ((((_arg1 == "MiniShooter")) || ((_arg1 == "GoMiniShooter")))){
_local2 = 0.5;
};
if (_arg1 == "Rando"){
_local2 = 1;
};
if (_arg1 == "Enterprise"){
_local2 = 1;
};
if (_arg1 == "Player"){
_local2 = 1.5;
};
scaleX = (scaleY = _local2);
}
override public function resume():void{
paused = false;
super.resume();
}
override public function remove():void{
clearTimeout(dieTimeout);
clearTimeout(summonTimeout);
super.bodyDie();
this.parent.removeChild(this);
}
private function die():void{
remove();
}
function frame57(){
stop();
}
private function summon(){
var _local1:MovieClip;
if (ref == "Player"){
main.player = new Player();
} else {
if (ref == "MiniShooter"){
_local1 = new MiniShooter();
_local1.strat = "roam";
_local1.setLife(4);
_local1.maxShield = 0;
_local1.effectScale = 0.5;
} else {
if (ref == "GoMiniShooter"){
_local1 = new MiniShooter();
_local1.strat = "go";
_local1.setLife(4);
_local1.maxShield = 0;
} else {
if (ref == "ChaseMiniShooter"){
_local1 = new MiniShooter();
_local1.strat = "chase";
_local1.setLife(4);
_local1.maxShield = 0;
} else {
if ((((ref == "Rando")) || ((ref == "ChaseRando")))){
_local1 = new Rando();
_local1.setLife(15);
_local1.maxShield = 2;
_local1.setFireSpeed(100);
_local1.effectScale = 1;
_local1.aim = true;
_local1.shotVel = 5;
_local1.weapon = "rando";
_local1.weaponDamage = 1;
if (ref == "Rando"){
_local1.strat = "go";
} else {
_local1.strat = "chase";
};
} else {
if (ref == "Asteroid"){
_local1 = new Asteroid();
} else {
if (ref == "Spin"){
_local1 = new Spin();
} else {
if (ref == "Mine"){
_local1 = new Mine();
} else {
if (ref == "Enterprise"){
_local1 = new Enterprise();
_local1.setLife(20);
_local1.maxShield = 3;
_local1.strat = "chase";
_local1.mass = 10;
_local1.xAccel = 0.11;
_local1.aim = true;
_local1.setFireSpeed(90);
_local1.shotVel = 3;
_local1.changeShieldInterval(1000);
_local1.boomDamage = 1;
_local1.effectScale = 1.5;
_local1.weapon = "torpedo";
_local1.weaponDamage = 3;
} else {
if (ref == "Saw"){
_local1 = new Saw();
_local1.strat = "chase";
_local1.setLife(6);
_local1.mass = 3;
_local1.xAccel = 0.2;
_local1.yAccel = 0.4;
_local1.maxShield = 0;
};
};
};
};
};
};
};
};
};
main.cam.baddies.addChild(_local1);
_local1.dist = dist;
_local1.rot = rot;
_local1.setPosition();
if (paused){
_local1.pause();
};
};
}
override public function pause():void{
paused = true;
super.pause();
}
}
}//package
Section 50
//AppearSound (AppearSound)
package {
import flash.media.*;
public dynamic class AppearSound extends Sound {
}
}//package
Section 51
//Asteroid (Asteroid)
package {
import flash.display.*;
import flash.events.*;
public class Asteroid extends SolidBody {
private var size:Number;
public var states:MovieClip;
public var shieldAnim:MovieClip;
private var paused:Boolean;// = false
private var rotSpeed:Number;
private var main;
public function Asteroid(){
rotSpeed = ((Math.random() * 6) - 3);
main = GetMain.main;
paused = false;
addEventListener(Event.ENTER_FRAME, spin);
super(this);
xFriction = (yFriction = 1);
maxShield = (shield = (maxEnergy = (energy = 0)));
life = 0.1;
size = 4;
xVel = ((Math.random() * 6) - 3);
yVel = ((Math.random() * 2) - 1);
fSetSize();
}
override public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, spin);
super.resume();
} else {
trace("error: asteroid allready resumed");
};
}
public function remove2(){
removeEventListener(Event.ENTER_FRAME, spin);
parent.removeChild(this);
}
private function fSetSize(){
var _local1:Number;
states.scaleX = (states.scaleY = (size / 4));
_local1 = ((size * 7) - 17);
minDist = (minDist + (_local1 - 5));
maxDist = (maxDist - _local1);
}
public function die(){
var _local1:Asteroid;
var _local2:Asteroid;
if (size == 4){
Sounds.startSound(new AsteroidLowSound());
} else {
if (size == 3){
Sounds.startSound(new AsteroidMediumSound(), 0.9);
} else {
if (size == 2){
Sounds.startSound(new AsteroidHighSound(), 0.7);
};
};
};
if (size == 1){
Sounds.startSound(new PelletHitSound(), 0.5);
};
if (size > 1){
_local1 = new Asteroid();
_local2 = new Asteroid();
dist = Maths.applyLimits(dist, (minDist + 1), (maxDist - 1));
_local1.setPos((size - 1), rot, dist);
_local2.setPos((size - 1), rot, dist);
main.cam.baddies.addChild(_local1);
main.cam.baddies.addChild(_local2);
};
}
public function setPos(_arg1, _arg2, _arg3){
this.size = _arg1;
this.rot = _arg2;
this.dist = _arg3;
fSetSize();
setPosition();
if (_arg3 < 148){
yVel = (Math.random() * 1);
} else {
yVel = (Math.random() * -1);
};
}
private function spin(_arg1:Event){
rotation = (rotation + rotSpeed);
}
override public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, spin);
super.pause();
} else {
trace("error: asteroid allready paused");
};
}
}
}//package
Section 52
//AsteroidGun (AsteroidGun)
package {
public class AsteroidGun extends Weapon {
private var energy:Number;// = 1
private var m:Projectile;
private var reload:Number;// = 200
public function AsteroidGun():void{
reload = 200;
energy = 1;
super();
}
override public function getReload():Number{
return (reload);
}
override public function misfire():void{
}
override public function fire():Projectile{
m = new Projectile(new AsteroidShot());
m.xVel = 4;
m.life = ((360 / m.xVel) / 2);
m.damage = 1;
m.mass = 1;
m.testPlayer = false;
return (m);
}
override public function getEnergy():Number{
return (energy);
}
}
}//package
Section 53
//AsteroidHighSound (AsteroidHighSound)
package {
import flash.media.*;
public dynamic class AsteroidHighSound extends Sound {
}
}//package
Section 54
//AsteroidLowSound (AsteroidLowSound)
package {
import flash.media.*;
public dynamic class AsteroidLowSound extends Sound {
}
}//package
Section 55
//AsteroidMediumSound (AsteroidMediumSound)
package {
import flash.media.*;
public dynamic class AsteroidMediumSound extends Sound {
}
}//package
Section 56
//AsteroidShot (AsteroidShot)
package {
import flash.display.*;
public class AsteroidShot extends MovieClip {
public function AsteroidShot():void{
}
public function setWeaponLevel(_arg1:Number):void{
}
public function attachTail(_arg1, _arg2){
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
}
}
}//package
Section 57
//AsteroidShotFireSound (AsteroidShotFireSound)
package {
import flash.media.*;
public dynamic class AsteroidShotFireSound extends Sound {
}
}//package
Section 58
//BigBoomSound (BigBoomSound)
package {
import flash.media.*;
public dynamic class BigBoomSound extends Sound {
}
}//package
Section 59
//Body (Body)
package {
import flash.display.*;
import flash.events.*;
public class Body extends MovieClip {
public var xVel:Number;// = 0
private var DEG_RAD;
public var mass:Number;// = 1
private var paused:Boolean;// = false
public var yVel:Number;// = 0
public var rotVel:Number;// = 0
public var xFriction:Number;// = 0.95
public var yFriction:Number;// = 0.92
public var dist:Number;
public var rot:Number;
public function Body():void{
dist = ((Math.random() * 150) + 55);
rot = (Math.random() * 360);
mass = 1;
xVel = 0;
yVel = 0;
rotVel = 0;
xFriction = 0.95;
yFriction = 0.92;
paused = false;
DEG_RAD = Maths.DEG_RAD();
super();
addEventListener(Event.ENTER_FRAME, float);
setPosition();
}
public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, float);
} else {
trace("error: body allready resumed");
};
}
public function remove():void{
}
private function float(_arg1:Event):void{
xVel = (xVel * xFriction);
yVel = (yVel * yFriction);
dist = (dist + yVel);
rot = (rot - xVel);
rot = (rot % 360);
rotation = (rotation + rotVel);
setPosition();
}
protected function bodyDie(){
removeEventListener(Event.ENTER_FRAME, float);
}
public function setPosition(){
var _local1:Number;
_local1 = (rot * DEG_RAD);
x = (Math.cos(_local1) * dist);
y = (Math.sin(_local1) * dist);
}
public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, float);
} else {
trace("error: body allready paused");
};
}
}
}//package
Section 60
//BoomGun (BoomGun)
package {
public class BoomGun extends Weapon {
private var energy:Number;// = 2.4
private var m:Projectile;
private var reload:Number;// = 1000
public function BoomGun():void{
reload = 1000;
energy = 2.4;
super();
}
override public function getReload():Number{
return (reload);
}
override public function misfire():void{
}
override public function fire():Projectile{
m = new Projectile(new BoomShot());
m.xVel = 4;
m.life = ((360 / m.xVel) / 2);
m.damage = 1;
m.mass = 5;
m.testPlayer = false;
GetMain.main.shake(3);
return (m);
}
override public function getEnergy():Number{
return (energy);
}
}
}//package
Section 61
//BoomShot (BoomShot)
package {
import flash.display.*;
public class BoomShot extends MovieClip {
private var maxEffects:Number;
private var effects:MovieClip;
public var s1:MovieClip;
public var s2:MovieClip;
public var s4:MovieClip;
public var s3:MovieClip;
private var timer:Number;// = 0
public var effectScale:Number;
private var minFPS:Number;
private var damage:Number;// = 3
public var outer:MovieClip;
private var mc:MovieClip;
private var main:MovieClip;
private var base:Number;// = 0.5
public function BoomShot():void{
main = GetMain.main;
effects = main.cam.effects;
base = 0.5;
effectScale = base;
damage = 3;
timer = 0;
minFPS = main.minFPS;
maxEffects = main.maxEffects;
super();
}
public function setWeaponLevel(_arg1:Number):void{
effectScale = (base + ((_arg1 / 10) / 20));
if (_arg1 < 0){
damage = 0.5;
effectScale = 0.1;
};
}
public function attachTail(_arg1, _arg2){
var _local3:MovieClip;
var _local4:*;
if ((((Stats.fps > minFPS)) && ((effects.numChildren < maxEffects)))){
_local3 = new BoomShotTail();
effects.addChild(_local3);
_local3.x = _arg1;
_local3.y = _arg2;
_local4 = 1;
while (_local4 <= 4) {
mc = this[("s" + _local4)];
mc.alpha = Math.random();
_local4++;
};
outer.alpha = Math.random();
};
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
_local4 = new Explosion(_arg1, _arg2, effectScale, damage);
_local4.sound = new BigBoomSound();
}
}
}//package
Section 62
//BoomShotFireSound (BoomShotFireSound)
package {
import flash.media.*;
public dynamic class BoomShotFireSound extends Sound {
}
}//package
Section 63
//BoomShotTail (BoomShotTail)
package {
import flash.display.*;
import flash.events.*;
public class BoomShotTail extends MovieClip {
private var paused:Boolean;// = false
private var ySpeed:Number;
private var xSpeed:Number;
public function BoomShotTail():void{
xSpeed = (Math.random() - 0.3);
ySpeed = (Math.random() - 0.3);
paused = false;
super();
addEventListener(Event.ENTER_FRAME, fade);
alpha = ((Math.random() * 0.5) + 0.5);
scaleX = (scaleY = Math.random());
}
public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, fade);
} else {
trace("error: star tail allready resumed");
};
}
private function fade(_arg1:Event){
x = (x + xSpeed);
y = (y + ySpeed);
scaleX = (scaleY = (scaleY * 1.1));
alpha = (alpha - 0.07);
if (alpha <= 0){
die();
};
}
public function remove(){
removeEventListener(Event.ENTER_FRAME, fade);
parent.removeChild(this);
}
private function die(){
remove();
}
public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, fade);
} else {
trace("error: star tail allready paused");
};
}
}
}//package
Section 64
//BoomSound (BoomSound)
package {
import flash.media.*;
public dynamic class BoomSound extends Sound {
}
}//package
Section 65
//Boss (Boss)
package {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Boss extends Sprite {
private var sprayCounterReset:Number;// = 250
private var attackArray;
private var life:Number;// = 30
private var pillarRotVel:Number;// = 5
private var spinCounterReset:Number;// = 400
private var paused:Boolean;// = false
private var dirMod:Number;// = 0
private var shipCounter;
private var shipCounterReset:Number;// = 400
private var pillarSoundChannel:SoundChannel;
private var attack:String;
private var bossShip:BossShip;
private var spinCounter:Number;
private var yAccelInc:Number;// = 0.006
private var rotVel:Number;// = 0
private var appearances:Number;// = 0
private var rotAccel:Number;// = 1.5
private var pullCounterReset:Number;// = 180
private var pillarCounter:Number;
private var sprayCounter:Number;
private var yAccelReset:Number;// = 0.5
private var main;
private var dieTimeout:uint;
private var maxRotVel:Number;// = 5
private var starting:Boolean;// = true
private var rot:Number;// = 0
private var lastRand:Number;// = 0
private var yAccel:Number;
private var uberLaser:MovieClip;
private var pullCounter:Number;
private var shot:Projectile;
private var pillarCounterReset:Number;// = 400
public function Boss():void{
life = 30;
main = GetMain.main;
appearances = 0;
sprayCounterReset = 250;
sprayCounter = sprayCounterReset;
pillarCounterReset = 400;
pillarCounter = pillarCounterReset;
rot = 0;
pillarRotVel = 5;
pullCounterReset = 180;
pullCounter = pullCounterReset;
yAccelInc = 0.006;
yAccelReset = 0.5;
yAccel = yAccelReset;
spinCounterReset = 400;
spinCounter = spinCounterReset;
rotVel = 0;
rotAccel = 1.5;
dirMod = 0;
maxRotVel = 5;
uberLaser = main.cam.walls.uberLaser;
shipCounterReset = 400;
shipCounter = shipCounterReset;
attackArray = new Array(1, 2, 3, 4, 5);
lastRand = 0;
starting = true;
paused = false;
super();
main.cam.center.anim.play();
main.cam.center.gotoAndPlay("on");
}
public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, go);
} else {
trace("error: boss allready paused");
};
}
private function shootSpin():void{
shot = new Projectile(new PelletShot());
shot.xVel = 0;
shot.yVel = 5;
shot.dist = 45;
shot.damage = 2;
shot.rot = (rot + dirMod);
shot.testBaddies = false;
shot.testWalls = false;
shot.setPosition();
main.cam.projectiles.addChild(shot);
rot = (rot + rotVel);
rotVel = (rotVel + ((Math.random() * rotAccel) - (rotAccel / 2)));
if (rotVel > maxRotVel){
rotVel = maxRotVel;
};
if (rotVel < -(maxRotVel)){
rotVel = -(maxRotVel);
};
dirMod = (dirMod + 90);
if (dirMod >= 360){
dirMod = 0;
};
}
private function nextAttack():void{
var _local1:Number;
var _local2:Number;
_local1 = Math.floor((Math.random() * attackArray.length));
if (starting){
_local1 = 0;
starting = false;
};
_local2 = attackArray[_local1];
if (_local2 == lastRand){
nextAttack();
} else {
attackArray.splice(_local1, 1);
if (attackArray.length <= 0){
attackArray = new Array(1, 2, 3, 4, 5);
};
lastRand = _local2;
if (_local2 == 1){
attack = "spray";
} else {
if (_local2 == 2){
extendPillars();
uberLaser.rotation = (main.player.rot - 120);
uberLaser.gotoAndStop("on");
pillarSoundChannel = Sounds.startSound(new BossLaserSound(), 0.25, 0, 15);
attack = "pillars";
} else {
if (_local2 == 3){
attack = "spin";
} else {
if (_local2 == 4){
main.cam.center.gravityAnim.gotoAndPlay("on");
attack = "pull";
} else {
if (_local2 == 5){
appearances++;
bossShip = new BossShip(this);
main.cam.baddies.addChild(bossShip);
attack = "ship";
};
};
};
};
};
};
}
public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, go);
} else {
trace("error: boss allready resumed");
};
}
private function ship():void{
if (shipCounter == 50){
bossShip.dissapear();
};
if (shipCounter <= 0){
shipCounter = shipCounterReset;
nextAttack();
};
shipCounter--;
}
private function pull():void{
if (pullCounter > 15){
main.player.yVel = (main.player.yVel - yAccel);
yAccel = (yAccel + yAccelInc);
};
if (pullCounter < 0){
pullCounter = pullCounterReset;
yAccel = yAccelReset;
nextAttack();
};
pullCounter--;
}
private function retractPillars():void{
var _local1:*;
_local1 = 1;
while (_local1 <= 8) {
main.cam.walls[("p" + _local1)].gotoAndPlay("off");
_local1++;
};
}
private function removePillars():void{
var _local1:*;
_local1 = 1;
while (_local1 <= 8) {
main.cam.walls[("p" + _local1)].gotoAndStop("retracted");
_local1++;
};
}
private function spin():void{
if ((((spinCounter > 25)) && (((spinCounter % 4) == 0)))){
shootSpin();
shootSpin();
shootSpin();
shootSpin();
};
if (spinCounter < 0){
spinCounter = spinCounterReset;
nextAttack();
};
spinCounter--;
}
public function remove():void{
clearTimeout(dieTimeout);
pillarSoundChannel.stop();
main.cam.center.gotoAndStop("off");
removePillars();
uberLaser.gotoAndStop("off");
main.cam.center.anim.gotoAndStop("off");
main.cam.darkAnim.gotoAndPlay("off");
removeEventListener(Event.ENTER_FRAME, go);
}
private function pillars():void{
var _local1:MovieClip;
var _local2:MovieClip;
_local1 = main.cam.walls.uberLaser;
_local2 = main.player;
if (pillarCounter > 0){
_local1.rotation = (_local1.rotation + 1);
if (HitTest.complexHitTestObject(_local1, _local2.states, 1)){
_local2.hurt = false;
_local2.takeDamage(0.1);
};
};
if (pillarCounter == 50){
retractPillars();
uberLaser.gotoAndStop("off");
pillarSoundChannel.stop();
Sounds.startSound(new BossLaserFadeSound(), 0.25);
};
if (pillarCounter < 0){
pillarCounter = pillarCounterReset;
nextAttack();
};
uberLaser.scaleY = ((Math.random() * 0.25) + 0.75);
uberLaser.alpha = ((Math.random() * 0.5) + 0.5);
pillarCounter--;
}
private function spray():void{
if ((((sprayCounter > 15)) && (((sprayCounter % 2) == 0)))){
shot = new Projectile(new BossShot());
shot.xVel = 0;
shot.yVel = 4;
shot.dist = 45;
shot.damage = 3;
shot.rot = (Math.random() * 360);
shot.testBaddies = false;
shot.testWalls = false;
shot.setPosition();
main.cam.projectiles.addChild(shot);
};
if (sprayCounter < 0){
sprayCounter = sprayCounterReset;
nextAttack();
};
sprayCounter--;
}
public function begin():void{
var _local1:Explosion;
_local1 = new Explosion(0, 0, 1.5, 2);
nextAttack();
addEventListener(Event.ENTER_FRAME, go);
}
private function startDie():void{
life = 99999;
dieTimeout = setTimeout(die, 250);
}
private function extendPillars():void{
var _local1:*;
_local1 = 1;
while (_local1 <= 8) {
main.cam.walls[("p" + _local1)].gotoAndPlay("on");
_local1++;
};
}
private function die():void{
main.beatGame();
remove();
}
public function takeDamage(_arg1:Number):void{
var _local2:Number;
life = (life - _arg1);
main.cam.center.hurtAnim.gotoAndPlay("hurt");
main.shake((_arg1 * 2));
_local2 = (_arg1 / 2);
Sounds.startSound(new BossHurtSound(), _local2);
if ((((((life <= 0)) && ((main.lives > 0)))) && ((appearances >= 3)))){
startDie();
};
}
private function go(_arg1:Event):void{
var _local2 = this;
_local2[attack]();
}
}
}//package
Section 66
//BossHurtSound (BossHurtSound)
package {
import flash.media.*;
public dynamic class BossHurtSound extends Sound {
}
}//package
Section 67
//BossLaserFadeSound (BossLaserFadeSound)
package {
import flash.media.*;
public dynamic class BossLaserFadeSound extends Sound {
}
}//package
Section 68
//BossLaserSound (BossLaserSound)
package {
import flash.media.*;
public dynamic class BossLaserSound extends Sound {
}
}//package
Section 69
//BossPullSound (BossPullSound)
package {
import flash.media.*;
public dynamic class BossPullSound extends Sound {
}
}//package
Section 70
//BossShip (BossShip)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class BossShip extends SolidBody {
private var left:Boolean;// = false
public var states:MovieClip;
private var fireCounterReset:Number;// = 2
private var fadeInCounter:Number;// = 50
private var right:Boolean;// = false
public var s3:MovieClip;
public var s1:MovieClip;
public var s2:MovieClip;
private var thinkMS:Number;// = 1000
private var fireTimeout:uint;
private var fireMS:Number;// = 2000
private var fadeOutCounter:Number;// = 50
private var up:Boolean;// = false
private var down:Boolean;// = false
private var player;
private var fireCounter:Number;
public var shieldAnim:MovieClip;
private var fireInterval:uint;
private var paused:Boolean;// = false
private var fireTimeoutMS:Number;// = 200
private var xAccel:Number;// = 0.1
private var boss:Boss;
private var main;
private var thinkInterval:uint;
private var yAccel:Number;// = 0.2
public function BossShip(_arg1:Boss):void{
left = false;
right = false;
up = false;
down = false;
fadeInCounter = 50;
fadeOutCounter = 50;
thinkMS = 1000;
fireMS = 2000;
fireInterval = setInterval(fire, fireMS);
fireCounterReset = 2;
fireCounter = fireCounterReset;
fireTimeoutMS = 200;
xAccel = 0.1;
yAccel = 0.2;
main = GetMain.main;
player = main.player;
paused = false;
super(this);
this.boss = _arg1;
mass = 6;
maxShield = 0;
life = 999999;
alpha = 0;
addEventListener(Event.ENTER_FRAME, go);
appear();
startThinking();
}
override public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, go);
clearInterval(fireInterval);
clearInterval(thinkInterval);
clearTimeout(fireTimeout);
super.pause();
} else {
trace("error: boss ship allready resumed");
};
}
override public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, go);
thinkInterval = setInterval(think, thinkMS);
fireInterval = setInterval(fire, fireMS);
fireTimeout = setTimeout(fire, fireTimeoutMS);
super.resume();
} else {
trace("error: boss ship allready resumed");
};
}
public function remove2():void{
clearInterval(thinkInterval);
clearInterval(fireInterval);
clearTimeout(fireTimeout);
removeEventListener(Event.ENTER_FRAME, go);
removeEventListener(Event.ENTER_FRAME, fadeIn);
removeEventListener(Event.ENTER_FRAME, fadeOut);
parent.removeChild(this);
}
private function startThinking():void{
thinkInterval = setInterval(think, thinkMS);
if (Math.random() > 0.5){
left = true;
right = false;
} else {
left = false;
right = true;
};
}
private function fire(){
var _local1:*;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Projectile;
_local1 = (Math.random() + 2);
_local2 = Maths.rotDist((player.rotation + 90), rot);
_local3 = (dist - player.dist);
_local4 = 20;
_local2 = (_local2 + ((Math.random() * _local4) - (_local4 / 2)));
_local3 = (_local3 + ((Math.random() * _local4) - (_local4 / 2)));
_local5 = (100 / (Math.abs(_local2) + Math.abs(_local3)));
_local6 = ((_local5 * _local2) / 100);
_local7 = ((_local5 * _local3) / 100);
_local8 = (_local6 * _local1);
_local9 = (_local7 * _local1);
_local10 = new Projectile(new SparkShot());
_local10.xVel = -(_local8);
_local10.yVel = -(_local9);
_local10.life = 250;
_local10.dist = dist;
_local10.rot = rot;
_local10.mass = (_local10.damage = 3);
_local10.testBaddies = false;
_local10.testWalls = true;
_local10.setPosition();
main.cam.projectiles.addChild(_local10);
fireCounter--;
if (fireCounter > 0){
fireTimeout = setTimeout(fire, fireTimeoutMS);
} else {
fireCounter = fireCounterReset;
};
Sounds.startSound(new RiccochetSound(), 3);
}
public function dissapear():void{
addEventListener(Event.ENTER_FRAME, fadeOut);
clearInterval(fireInterval);
clearTimeout(fireTimeout);
}
private function die():void{
}
private function fadeIn(_arg1:Event){
fadeInCounter--;
alpha = (alpha + 0.02);
if (fadeInCounter <= 0){
alpha = 1;
removeEventListener(Event.ENTER_FRAME, fadeIn);
};
}
override public function takeDamage(_arg1:Number):void{
super.takeDamage(_arg1);
boss.takeDamage(_arg1);
}
private function go(_arg1:Event):void{
posSpark(s1);
posSpark(s2);
posSpark(s3);
if (right == true){
xVel = (xVel + xAccel);
};
if (left == true){
xVel = (xVel - xAccel);
};
if (up == true){
yVel = (yVel - yAccel);
};
if (down == true){
yVel = (yVel + yAccel);
};
if (dist < 70){
down = true;
up = false;
} else {
if (dist > 220){
up = true;
down = false;
};
};
}
private function posSpark(_arg1:MovieClip){
_arg1.scaleX = (_arg1.scaleY = Math.random());
_arg1.rotation = (Math.random() * 360);
_arg1.alpha = Math.random();
}
private function think():void{
if (Math.random() > 0.99){
left = !(left);
right = !(right);
};
if (dist < player.dist){
up = false;
down = true;
} else {
up = true;
down = false;
};
if (dist < 100){
down = true;
up = false;
};
if (dist > 200){
up = true;
down = false;
};
}
private function fadeOut(_arg1:Event){
fadeOutCounter--;
alpha = (alpha - 0.02);
if (fadeOutCounter <= 0){
removeEventListener(Event.ENTER_FRAME, fadeOut);
remove();
};
}
private function appear():void{
addEventListener(Event.ENTER_FRAME, fadeIn);
}
private function wallHitTest(_arg1:Event):void{
if (dist > maxDist){
yVel = (yVel * -0.9);
takeDamage(1);
dist = (maxDist - 1);
rot = (rot - 0.5);
};
}
}
}//package
Section 71
//BossShot (BossShot)
package {
import flash.display.*;
public class BossShot extends MovieClip {
public function BossShot():void{
addFrameScript(11, frame12);
}
public function attachTail(_arg1, _arg2){
}
function frame12(){
stop();
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
_local4 = new Explosion(_arg1, _arg2, 0.12, 0);
}
}
}//package
Section 72
//ColorSpark (ColorSpark)
package {
import flash.events.*;
public class ColorSpark extends Body {
var life:Number;
var rotSpeed:Number;
var main;
public function ColorSpark(_arg1:Number, _arg2:Number, _arg3:String){
main = GetMain.main;
rotSpeed = ((Math.random() * 2) - 1);
super();
this.dist = _arg1;
this.rot = _arg2;
gotoAndStop(_arg3);
xVel = ((Math.random() * 2) - 1);
yVel = ((Math.random() * 4) - 2);
life = (Math.random() * 100);
main.cam.effects.addChildAt(this, 0);
setPosition();
scaleX = (scaleY = (Math.random() / 2));
rotation = (Math.random() * 360);
addEventListener(Event.ENTER_FRAME, fade);
}
private function fade(_arg1:Event){
life--;
if (life <= 0){
die();
};
alpha = (life / 100);
this.rotation = (this.rotation + rotSpeed);
}
override public function remove():void{
removeEventListener(Event.ENTER_FRAME, fade);
super.bodyDie();
parent.removeChild(this);
}
private function die(){
remove();
}
}
}//package
Section 73
//Dot (Dot)
package {
import flash.display.*;
public dynamic class Dot extends MovieClip {
public function Dot(){
addFrameScript(0, frame1, 45, frame46);
}
function frame1(){
stop();
}
function frame46(){
stop();
}
}
}//package
Section 74
//Enterprise (Enterprise)
package {
public dynamic class Enterprise extends Ship {
}
}//package
Section 75
//Explosion (Explosion)
package {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class Explosion extends MovieClip {
private var effects:MovieClip;
public var sound:Sound;
private var sparkCount:Number;// = 10
private var minFPS:Number;
private var stren:Number;// = 1
private var main;
public var hit_mc:MovieClip;
private var time:Number;// = 20
public function Explosion(_arg1, _arg2, _arg3, _arg4){
sparkCount = 10;
time = 20;
effects = GetMain.main.cam.effects;
stren = 1;
sound = new PelletHitSound();
main = GetMain.main;
minFPS = main.minFPS;
super();
effects.addChild(this);
this.stren = _arg4;
this.x = _arg1;
this.y = _arg2;
scaleX = (scaleY = _arg3);
addEventListener(Event.ENTER_FRAME, go);
addEventListener(Event.ENTER_FRAME, addSpark);
addEventListener(Event.ENTER_FRAME, doDamage);
}
public function resume():void{
}
private function hitShip(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
_local6 = (width / 2);
_local7 = (x - _arg1.x);
_local8 = (y - _arg1.y);
_local9 = Maths.pythag(_local7, _local8);
_local10 = (1 - (_local9 / _local6));
if (_local10 < 0){
_local10 = 0;
};
_local11 = Math.abs((_arg2 * _local10));
_arg1.takeDamage(_local11);
_local12 = Maths.rotDist(_arg3, _arg1.rot);
_local13 = (_arg4 - _arg1.dist);
_local14 = (Math.abs(_local12) + Math.abs(_local13));
_arg5 = (100 / _local14);
_local15 = ((_local12 * _arg5) / 100);
_local16 = ((_local13 * _arg5) / 100);
_local17 = ((_local11 * 5) * _local15);
_local18 = ((_local11 * 5) * _local16);
_arg1.xVel = (_arg1.xVel + _local17);
_arg1.yVel = (_arg1.yVel - _local18);
}
private function die(){
remove();
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, go);
removeEventListener(Event.ENTER_FRAME, addSpark);
removeEventListener(Event.ENTER_FRAME, doDamage);
parent.removeChild(this);
}
private function addSpark(_arg1:Event){
var _local2:Spark;
if ((((Stats.fps > minFPS)) && ((scaleX > 0.15)))){
_local2 = new Spark();
_local2.x = x;
_local2.y = y;
_local2.scaleX = (_local2.scaleY = (_local2.scaleY * (scaleX * 0.75)));
};
sparkCount--;
if ((((sparkCount <= 0)) || ((scaleX <= 0.15)))){
removeEventListener(Event.ENTER_FRAME, addSpark);
};
}
public function doDamage(_arg1:Event){
var _local2:Point;
var _local3:MovieClip;
var _local4:MovieClip;
var _local5:MovieClip;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Array;
var _local11:int;
var _local12:Number;
Sounds.startSound(sound, (scaleX * 2));
removeEventListener(Event.ENTER_FRAME, doDamage);
if (stren > 0.1){
_local2 = new Point();
_local3 = main.cam.baddies;
_local5 = main.player;
_local7 = (Math.atan2(y, x) * Maths.RAD_DEG());
_local8 = Maths.pythag(x, y);
_local9 = (width / 500);
_local10 = new Array();
_local11 = 0;
while (_local11 < _local3.numChildren) {
_local10.push(_local3.getChildAt(_local11));
_local11++;
};
_local10.push(main.player);
_local12 = _local10.length;
_local11 = 0;
while (_local11 < _local12) {
_local4 = _local10[_local11];
_local2.x = _local4.x;
_local2.y = _local4.y;
_local2 = parent.localToGlobal(_local2);
if (hitTestPoint(_local2.x, _local2.y, true)){
hitShip(_local4, stren, _local7, _local8, _local9);
};
_local11++;
};
};
if (scaleX > 0.1){
main.shake((scaleX * 10));
} else {
main.shake((scaleX * 5));
};
}
private function go(_arg1:Event){
time--;
if (time <= 0){
die();
};
}
public function pause():void{
}
}
}//package
Section 76
//GetMain (GetMain)
package {
public class GetMain {
public static var main;
}
}//package
Section 77
//Gun (Gun)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class Gun extends Sprite {
private var spreadCounter:Number;// = 9999999
private var weapon:Weapon;
private var oldWeapon:Weapon;
private var paused:Boolean;// = false
private var extraDir:Boolean;// = false
private var m:Projectile;
private var boomGun:BoomGun;
public var triggerPulled:Boolean;// = false
private var starGun:StarGun;
private var radius:Number;// = 20
private var asteroidGun:AsteroidGun;
private var reloading:Boolean;// = false
private var shotCounter:Number;// = 999999
private var main;
private var weaponLevel:Number;// = 0
private var shotCounterReset:Number;// = 999999
private var spreadGun:SpreadGun;
private var player:MovieClip;
public function Gun(_arg1){
reloading = false;
main = GetMain.main;
triggerPulled = false;
weaponLevel = 0;
radius = 20;
spreadCounter = 9999999;
shotCounter = 999999;
shotCounterReset = 999999;
extraDir = false;
starGun = new StarGun();
spreadGun = new SpreadGun();
boomGun = new BoomGun();
asteroidGun = new AsteroidGun();
paused = false;
super();
this.player = _arg1;
weapon = starGun;
addEventListener(Event.ENTER_FRAME, go);
}
private function fireExtraStar():void{
if (shotCounter <= 0){
shotCounter = shotCounterReset;
m = fire();
m.rot = player.rot;
if (extraDir){
m.yVel = (m.yVel + 4);
m.dist = (player.dist + 20);
} else {
m.yVel = (m.yVel - 4);
m.dist = (player.dist - 20);
};
extraDir = !(extraDir);
if (((extraDir) && ((shotCounterReset <= 0)))){
fireExtraStar();
};
};
}
public function setWeaponLevel(_arg1:Number):void{
if (_arg1 > 9){
_arg1 = 9;
};
weaponLevel = _arg1;
spreadCounter = (9 - _arg1);
if (_arg1 > 3){
shotCounterReset = 2;
shotCounter = 0;
};
if (_arg1 > 6){
shotCounterReset = 1;
};
if (_arg1 >= 9){
shotCounterReset = 0;
};
}
private function fireSmallBoom(_arg1:Number):void{
var _local2:Number;
m = weapon.fire();
main.cam.projectiles.addChild(m);
m.rot = player.rot;
m.dist = player.dist;
m.setPosition();
m.scaleX = (m.scaleY = 0.5);
m.setWeaponLevel(-12);
m.yVel = (m.yVel + _arg1);
m.damage = 0.5;
m.mass = 1;
_local2 = (1000 / player.dist);
if (player.scaleX > 0){
m.rot = (m.rot - _local2);
} else {
m.xVel = -(m.xVel);
m.rot = (m.rot + _local2);
};
}
private function resetReloading():void{
reloading = false;
}
public function setWeapon(_arg1:String):void{
if (_arg1 == "starGun"){
weapon = starGun;
};
if (_arg1 == "boomGun"){
weapon = boomGun;
};
if (_arg1 == "spreadGun"){
weapon = spreadGun;
};
if (_arg1 == "asteroidGun"){
oldWeapon = weapon;
weapon = asteroidGun;
};
}
public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, go);
} else {
trace("error: gun allready resumed");
};
}
private function fire():Projectile{
var _local1:Number;
m = weapon.fire();
main.cam.projectiles.addChild(m);
m.rot = player.rot;
m.dist = player.dist;
m.setPosition();
m.setWeaponLevel(weaponLevel);
m.testPlayer = false;
_local1 = (1300 / player.dist);
if (player.scaleX > 0){
m.rot = (m.rot - _local1);
player.xVel = (player.xVel - (m.mass / 4));
} else {
m.xVel = -(m.xVel);
m.rot = (m.rot + _local1);
player.xVel = (player.xVel + (m.mass / 4));
};
return (m);
}
public function die():void{
removeEventListener(Event.ENTER_FRAME, go);
}
private function fireExtraBoom():void{
if (weaponLevel >= 9){
player.scaleX = (player.scaleX * -1);
fire();
player.scaleX = (player.scaleX * -1);
} else {
if (weaponLevel >= 4){
fireSmallBoom(2);
fireSmallBoom(-2);
};
};
}
private function fireExtraSpread():void{
var _local1:ColorTransform;
var _local2:Number;
spreadCounter--;
if (spreadCounter <= 0){
spreadCounter = (10 - weaponLevel);
m = weapon.fire();
main.cam.projectiles.addChild(m);
m.rot = player.rot;
m.dist = player.dist;
m.setPosition();
if (Math.random() > 0.5){
m.yVel = (m.yVel + 6);
} else {
m.yVel = (m.yVel - 6);
};
m.setWeaponLevel(0);
_local1 = new ColorTransform();
_local1.color = 0xFF0000;
m.transform.colorTransform = _local1;
_local2 = (1000 / player.dist);
if (player.scaleX > 0){
m.rot = (m.rot - _local2);
} else {
m.xVel = -(m.xVel);
m.rot = (m.rot + _local2);
};
};
}
private function go(_arg1:Event):void{
if (((((triggerPulled) && (!(reloading)))) && ((player.getEnergy() > weapon.getEnergy())))){
fire();
shotCounter--;
if (weapon == starGun){
Sounds.startSound(new StarShotFireSound(), 0.7);
};
if (weapon == boomGun){
Sounds.startSound(new BoomShotFireSound());
};
if (weapon == spreadGun){
Sounds.startSound(new SpreadShotFireSound(), 0.5);
};
if (weapon == asteroidGun){
Sounds.startSound(new AsteroidShotFireSound(), 1);
};
player.changeEnergy(-(weapon.getEnergy()));
reloading = true;
setTimeout(resetReloading, weapon.getReload());
};
}
public function revert():void{
if (weapon == asteroidGun){
weapon = oldWeapon;
};
}
public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, go);
} else {
trace("error: gun allready paused");
};
}
}
}//package
Section 78
//HitTest (HitTest)
package {
import flash.display.*;
import flash.geom.*;
public class HitTest {
protected static function getDrawMatrix(_arg1:DisplayObject, _arg2:Rectangle, _arg3:Number):Matrix{
var _local4:Point;
var _local5:Matrix;
var _local6:Matrix;
_local6 = _arg1.root.transform.concatenatedMatrix;
_local4 = _arg1.localToGlobal(new Point());
_local5 = _arg1.transform.concatenatedMatrix;
_local5.tx = (_local4.x - _arg2.x);
_local5.ty = (_local4.y - _arg2.y);
_local5.a = (_local5.a / _local6.a);
_local5.d = (_local5.d / _local6.d);
if (_arg3 != 1){
_local5.scale(_arg3, _arg3);
};
return (_local5);
}
public static function complexHitTestObject(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=1):Boolean{
return (!((complexIntersectionRectangle(_arg1, _arg2, _arg3).width == 0)));
}
public static function complexIntersectionRectangle(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=1):Rectangle{
var _local4:Rectangle;
var _local5:BitmapData;
var _local6:Rectangle;
if (_arg3 <= 0){
throw (new Error("ArgumentError: Error #5001: Invalid value for accurracy", 5001));
};
if (!_arg1.hitTestObject(_arg2)){
return (new Rectangle());
};
_local4 = intersectionRectangle(_arg1, _arg2);
if (((((_local4.width * _arg3) < 1)) || (((_local4.height * _arg3) < 1)))){
return (new Rectangle());
};
_local5 = new BitmapData((_local4.width * _arg3), (_local4.height * _arg3), false, 0);
_local5.draw(_arg1, HitTest.getDrawMatrix(_arg1, _local4, _arg3), new ColorTransform(1, 1, 1, 1, 0xFF, -255, -255, 0xFF));
_local5.draw(_arg2, HitTest.getDrawMatrix(_arg2, _local4, _arg3), new ColorTransform(1, 1, 1, 1, 0xFF, 0xFF, 0xFF, 0xFF), BlendMode.DIFFERENCE);
_local6 = _local5.getColorBoundsRect(4294967295, 4278255615);
_local5.dispose();
if (_arg3 != 1){
_local6.x = (_local6.x / _arg3);
_local6.y = (_local6.y / _arg3);
_local6.width = (_local6.width / _arg3);
_local6.height = (_local6.height / _arg3);
};
_local6.x = (_local6.x + _local4.x);
_local6.y = (_local6.y + _local4.y);
return (_local6);
}
public static function intersectionRectangle(_arg1:DisplayObject, _arg2:DisplayObject):Rectangle{
var _local3:Rectangle;
var _local4:Rectangle;
var _local5:Rectangle;
if (((((!(_arg1.root)) || (!(_arg2.root)))) || (!(_arg1.hitTestObject(_arg2))))){
return (new Rectangle());
};
_local3 = _arg1.getBounds(_arg1.root);
_local4 = _arg2.getBounds(_arg2.root);
_local5 = new Rectangle();
_local5.x = Math.max(_local3.x, _local4.x);
_local5.y = Math.max(_local3.y, _local4.y);
_local5.width = Math.min(((_local3.x + _local3.width) - _local5.x), ((_local4.x + _local4.width) - _local5.x));
_local5.height = Math.min(((_local3.y + _local3.height) - _local5.y), ((_local4.y + _local4.height) - _local5.y));
return (_local5);
}
}
}//package
Section 79
//HullHitSound (HullHitSound)
package {
import flash.media.*;
public dynamic class HullHitSound extends Sound {
}
}//package
Section 80
//JiggminLogo (JiggminLogo)
package {
import flash.display.*;
public dynamic class JiggminLogo extends BitmapData {
public function JiggminLogo(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 81
//Key (Key)
package {
import flash.display.*;
import flash.events.*;
public class Key {
private static var initialized:Boolean = false;
private static var keysDown:Object = new Object();
public static function initialize(_arg1:Stage){
if (!initialized){
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
_arg1.addEventListener(Event.DEACTIVATE, clearKeys);
initialized = true;
};
}
private static function clearKeys(_arg1:Event):void{
keysDown = new Object();
}
public static function isDown(_arg1:uint):Boolean{
if (!initialized){
throw (new Error("Key class has yet been initialized."));
};
return (Boolean((_arg1 in keysDown)));
}
private static function keyPressed(_arg1:KeyboardEvent):void{
keysDown[_arg1.keyCode] = true;
}
private static function keyReleased(_arg1:KeyboardEvent):void{
if ((_arg1.keyCode in keysDown)){
delete keysDown[_arg1.keyCode];
};
}
}
}//package
Section 82
//LaserShot (LaserShot)
package {
import flash.display.*;
public class LaserShot extends MovieClip {
public function LaserShot():void{
addFrameScript(5, frame6);
}
public function attachTail(_arg1, _arg2){
}
function frame6(){
stop();
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
_local4 = new Explosion(_arg1, _arg2, 0.1, 0.1);
}
}
}//package
Section 83
//Levels (Levels)
package {
import flash.display.*;
import flash.utils.*;
public class Levels extends Sprite {
private var sawCounter:Number;// = 20
private var justStarted:Boolean;// = false
public var curLevel:Number;// = 0
private var paused:Boolean;// = false
private var i:Number;// = 0
private var num7:Number;// = 30
private var boss:Boss;
var appear:Appear;
private var num8:Number;// = 10
private var minesLeft:Number;// = 30
private var checkMS:Number;// = 1000
private var main;
private var randoCounter:Number;// = 10
private var interval:uint;
private var chaseRandoCounter:Number;// = 10
private var func:Function;
public function Levels(){
curLevel = 0;
i = 0;
main = GetMain.main;
checkMS = 1000;
interval = setInterval(checkLevel, checkMS);
func = level1;
justStarted = false;
randoCounter = 10;
chaseRandoCounter = 10;
minesLeft = 30;
num7 = 30;
num8 = 10;
sawCounter = 20;
paused = false;
super();
main.cam.center.anim.gotoAndStop("off");
nextLevel();
}
private function level1():void{
}
private function level6():void{
}
private function level8():void{
}
private function level2():void{
}
private function level3():void{
}
private function level4():void{
}
private function level5():void{
if ((((minesLeft > 0)) && (((minesLeft % 2) == 0)))){
startAppear("Mine");
};
minesLeft--;
}
private function level9():void{
if ((((sawCounter > 0)) && (((sawCounter % 3) == 0)))){
startAppear("Saw");
};
sawCounter--;
}
private function resetStarted():void{
justStarted = false;
}
public function resume():void{
if (paused){
paused = false;
if (curLevel == 10){
Boss(boss).resume();
} else {
interval = setInterval(checkLevel, checkMS);
};
} else {
trace("error: level allready resumed");
};
}
public function remove():void{
if (curLevel == 10){
boss.remove();
};
main.music.reset();
boss = null;
func = null;
clearInterval(interval);
}
private function level7():void{
if ((((num7 > 0)) && (((num7 % 2) == 0)))){
startAppear("GoMiniShooter");
};
num7--;
}
private function startAppear(_arg1:String):Appear{
var _local2:Appear;
_local2 = new Appear(_arg1);
main.cam.effects.addChild(_local2);
return (_local2);
}
private function level10():void{
}
private function checkLevel():void{
if ((((main.cam.baddies.numChildren <= 0)) && (!(justStarted)))){
nextLevel();
};
var _local1 = this;
_local1[("level" + curLevel)]();
main.incPoints(-1);
}
private function nextLevel(){
var _local1:StatUpgrade;
var _local2:*;
var _local3:*;
curLevel++;
main.music.moveOn();
Sounds.startSound(new AppearSound(), 1.25);
justStarted = true;
setTimeout(resetStarted, 3000);
main.setLevel(curLevel);
main.incPoints(1000);
_local1 = new StatUpgrade();
if (curLevel == 3){
main.player.upgradeWeapon(4);
};
if (curLevel == 4){
main.player.revert();
};
_local2 = new NotifAnim();
_local2.anim.textBox.text = ("Level " + curLevel.toString());
_local3 = _local2.anim.subTextBox;
if (curLevel == 1){
_local3.text = "Let's get started...";
i = 0;
while (i < 4) {
startAppear("MiniShooter");
i++;
};
};
if (curLevel == 2){
_local3.text = "Watch out, it's a Rando!";
startAppear("Rando");
};
if (curLevel == 3){
_local3.text = "Asteroids!";
i = 0;
while (i < 4) {
startAppear("Asteroid");
i++;
};
};
if (curLevel == 4){
_local3.text = "Dodge.";
startAppear("Spin");
};
if (curLevel == 5){
_local3.text = "These explode, run away.";
};
if (curLevel == 6){
_local3.text = "Oh noes! It's the Enterprise!";
startAppear("Enterprise");
};
if (curLevel == 7){
_local3.text = "Stampede!";
i = 0;
while (i < 8) {
appear = startAppear("GoMiniShooter");
appear.rot = 0;
appear.setPosition();
i++;
};
};
if (curLevel == 8){
_local3.text = "Three big guys.";
i = 0;
while (i < 3) {
startAppear("ChaseRando");
i++;
};
};
if (curLevel == 9){
_local3.text = "Flying Razors...";
i = 0;
while (i < 3) {
startAppear("Saw");
i++;
};
};
if (curLevel == 10){
_local3.text = "OH SNAP.";
boss = new Boss();
clearInterval(interval);
};
}
public function startBoss():void{
boss.begin();
}
public function pause():void{
if (!paused){
paused = true;
clearInterval(interval);
if (curLevel == 10){
Boss(boss).pause();
};
} else {
trace("error: level allready paused");
};
}
}
}//package
Section 84
//LogoIntroMusic (LogoIntroMusic)
package {
import flash.media.*;
public dynamic class LogoIntroMusic extends Sound {
}
}//package
Section 85
//Maths (Maths)
package {
public class Maths {
public static function RAD_DEG():Number{
return ((180 / Math.PI));
}
public static function formatNumberWithCommas(_arg1){
var _local2:String;
_local2 = (_arg1 + "");
if (_local2.length < 4){
return (_local2);
};
return (((formatNumberWithCommas(_local2.slice(0, -3)) + ",") + _local2.slice(-3)));
}
public static function applyLimits(_arg1:Number, _arg2:Number, _arg3:Number):Number{
if (_arg1 < _arg2){
_arg1 = _arg2;
};
if (_arg1 > _arg3){
_arg1 = _arg3;
};
return (_arg1);
}
public static function pythag(_arg1:Number, _arg2:Number):Number{
return (Math.sqrt(((_arg1 * _arg1) + (_arg2 * _arg2))));
}
public static function DEG_RAD():Number{
return ((Math.PI / 180));
}
public static function rotDist(_arg1, _arg2){
var _local3:Number;
_local3 = (_arg1 - _arg2);
if (_local3 > 180){
_local3 = (-360 + _local3);
};
if (_local3 < -180){
_local3 = (360 + _local3);
};
return (_local3);
}
}
}//package
Section 86
//Mine (Mine)
package {
import flash.display.*;
import flash.events.*;
public class Mine extends SolidBody {
public var states:MovieClip;
public var shieldAnim:MovieClip;
private var paused:Boolean;// = false
public var spikes:MovieClip;
private var rotSpeed:Number;
public var shading:MovieClip;
public var mineTimer:MovieClip;
private var main;
public function Mine():void{
rotSpeed = ((Math.random() * 10) - 5);
main = GetMain.main;
paused = false;
super(this);
maxShield = (shield = 99);
addEventListener(Event.ENTER_FRAME, rotate);
}
override public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, rotate);
mineTimer.play();
super.resume();
} else {
trace("error: mine allready resumed");
};
}
public function remove2():void{
mineTimer.stop();
removeChild(mineTimer);
removeEventListener(Event.ENTER_FRAME, rotate);
parent.removeChild(this);
}
private function rotate(_arg1:Event):void{
spikes.rotation = (spikes.rotation + rotSpeed);
shading.rotation = -(main.cam.rotation);
}
public function die(){
new Explosion(x, y, 0.25, 1);
}
public function explode():void{
var _local1:Explosion;
_local1 = new Explosion(x, y, 1.1, 5);
_local1.sound = new BigBoomSound();
life = 0;
shield = 0;
takeDamage(1);
}
override public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, rotate);
mineTimer.stop();
super.pause();
} else {
trace("error: mine allready paused");
};
}
}
}//package
Section 87
//MineSound (MineSound)
package {
import flash.media.*;
public dynamic class MineSound extends Sound {
}
}//package
Section 88
//MiniShooter (MiniShooter)
package {
public dynamic class MiniShooter extends Ship {
}
}//package
Section 89
//MochiAd (MochiAd)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
public class MochiAd {
public static function getVersion():String{
return ("2.1");
}
public static function showTimedAd(_arg1:Object):void{
MochiAd.showInterLevelAd(_arg1);
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var f:Function;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip._mochiad_loaded){
return (null);
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
f = function (_arg1:Object):void{
mc._mochiad_ctr_failed = true;
};
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
g = function (_arg1:Object):void{
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["sendHighScore", _arg1], _arg2, _arg3);
return (true);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
return (_local3);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
_arg1.removeChild(_arg1._mochiad);
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = _local1.loaderInfo.bytesTotal;
if ((((_local4 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
_local3 = true;
};
};
};
if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _loadCommunicator(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var clipname:String;
var server:String;
var depth:Number;
var mc:MovieClip;
var lv:URLVariables;
var k:String;
var lc:LocalConnection;
var name:String;
var req:URLRequest;
var loader:Loader;
var options = _arg1;
DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
clipname = ("_mochiad_com_" + options.id);
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip[clipname]){
return (clip[clipname]);
};
server = (options.com_server + options.id);
MochiAd._allowDomains(server);
delete options.id;
delete options.com_server;
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, clipname, depth);
lv = new URLVariables();
for (k in options) {
lv[k] = options[k];
};
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.name = name;
mc.lc = lc;
lv.lc = name;
mc._id = 0;
mc._queue = [];
mc.rpcResult = function (_arg1:Object):void{
var _local3:Array;
var _local4:Array;
var _local5:Number;
var _local6:Object;
var _local7:Object;
_arg1 = parseInt(_arg1.toString());
_local3 = mc._callbacks[_arg1];
if (typeof(_local3) == "undefined"){
return;
};
delete mc._callbacks[_arg1];
_local4 = [];
_local5 = 2;
while (_local5 < _local3.length) {
_local4.push(_local3[_local5]);
_local5++;
};
_local5 = 1;
while (_local5 < arguments.length) {
_local4.push(arguments[_local5]);
_local5++;
};
_local6 = _local3[1];
_local7 = _local3[0];
if (((_local7) && ((typeof(_local6) == "string")))){
_local6 = _local7[_local6];
};
if (typeof(_local6) == "function"){
_local6.apply(_local7, _local4);
};
};
mc._didConnect = function (_arg1:String):void{
var _local2:Array;
var _local3:Function;
var _local4:Number;
var _local5:Array;
mc._endpoint = _arg1;
_local2 = mc._queue;
delete mc._queue;
_local3 = mc.doSend;
_local4 = 0;
while (_local4 < _local2.length) {
_local5 = _local2[_local4];
_local3.apply(this, _local5);
_local4++;
};
};
mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{
var _local5:Number;
var _local6:LocalConnection;
var _local7:Array;
var _local8:Number;
if (mc._endpoint == null){
_local7 = [];
_local8 = 0;
while (_local8 < arguments.length) {
_local7.push(arguments[_local8]);
_local8++;
};
mc._queue.push(_local7);
return;
};
mc._id = (mc._id + 1);
_local5 = mc._id;
mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))];
_local6 = new LocalConnection();
_local6.send(mc._endpoint, "rpc", _local5, _arg1);
};
mc._callbacks = {};
mc._callbacks[0] = [mc, "_didConnect"];
lv.st = getTimer();
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader = new Loader();
loader.load(req);
mc.addChild(loader);
mc._mochiad_com = loader;
return (mc);
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var f:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
bar.x = 10;
bar.y = (h - 20);
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
f = function (_arg1:Event):void{
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Object;
var _local10:Number;
var _local11:Number;
if (!this.parent.parent){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
_local7 = ((100 * _local6) / _local5);
_local8 = ((100 * _local3) / chk.ad_msec);
_local9 = this._mochiad_bar._inside;
_local10 = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
if (!chk.showing){
_local11 = _local2.loaderInfo.bytesTotal;
if ((((_local11 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local3 > chk.ad_timeout){
_local4 = true;
};
};
};
if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
MochiAd.showPreGameAd(_arg1);
}
public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3);
return (true);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
mc.removeEventListener(Event.ENTER_FRAME, f);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 90
//Music (Music)
package {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Music extends Sprite {
var space7:Sound;
private var spaceLevelChannel:SoundChannel;
var space2:Sound;
var spaceFinal:Sound;
private var channel:SoundChannel;
private var segArray:Array;
private var tempo:Sound;
private var spaceLevel:Sound;
var spaceLaugh:Sound;
private var settings:SoundTransform;
private var fadeSpeed:Number;// = 25
private var rCounter:Number;// = 0
private var tempoChannel:SoundChannel;
private var beatChannel:SoundChannel;
private var seg:Sound;
private var targetVol:Number;// = 1
private var main;
private var beat:Sound;
var spaceAsteroids:Sound;
private var fadeCounter:Number;// = 0
var space3:Sound;
var space4:Sound;
var space5:Sound;
private var segNum:Number;// = 0
var space6:Sound;
private var gotoNext:Boolean;// = true
public function Music():void{
segNum = 0;
gotoNext = true;
tempo = new SpaceTempo();
tempoChannel = tempo.play(0, 9999999);
beat = new SpaceTempo();
spaceLevel = new SpaceLevel();
rCounter = 0;
main = GetMain.main;
settings = new SoundTransform();
fadeSpeed = 25;
targetVol = 1;
fadeCounter = 0;
space2 = new Space2();
space3 = new Space3();
space4 = new Space4();
space5 = new Space5();
space6 = new Space6();
space7 = new Space7();
spaceLaugh = new SpaceLaugh();
spaceAsteroids = new SpaceAsteroids();
spaceFinal = new SpaceFinal();
segArray = new Array(space6, space2, space3, spaceAsteroids, space4, space5, space6, space7, space4, space5, spaceLaugh, spaceFinal);
super();
settings.volume = 1;
nextSeg();
}
public function fadeOut(_arg1:Number=50):void{
fadeSpeed = _arg1;
startFade(0);
}
private function startFade(_arg1:Number=1):void{
removeEventListener(Event.ENTER_FRAME, fade);
addEventListener(Event.ENTER_FRAME, fade);
fadeCounter = fadeSpeed;
targetVol = _arg1;
}
private function nextSeg():void{
var _local1:Number;
var _local2:Event;
_local1 = (tempoChannel.position % tempo.length);
if (_local1 > 10000){
setTimeout(nextSeg, 100);
} else {
if ((((gotoNext == false)) && ((segNum == 10)))){
main.levels.startBoss();
gotoNext = true;
segNum = 11;
};
if ((((gotoNext == true)) && ((segNum == 10)))){
main.cam.darkAnim.gotoAndPlay("on");
};
if (segNum == 11){
gotoNext = true;
};
if (gotoNext){
_local2 = new Event("musicChange");
this.dispatchEvent(_local2);
gotoNext = false;
spaceLevelChannel = spaceLevel.play(_local1);
if ((((segNum == 11)) && ((rCounter > 2)))){
seg = segArray[9];
} else {
seg = segArray[segNum];
};
if (segNum == 11){
rCounter++;
if (rCounter > 4){
rCounter = 1;
};
};
};
channel = seg.play(_local1);
channel.soundTransform = settings;
spaceLevelChannel.soundTransform = settings;
beatChannel = beat.play(_local1);
beatChannel.addEventListener(Event.SOUND_COMPLETE, callNextSeg);
};
}
public function reset():void{
segNum = 0;
gotoNext = true;
}
private function callNextSeg(_arg1:Event):void{
_arg1.target.removeEventListener(Event.SOUND_COMPLETE, callNextSeg);
nextSeg();
}
private function fade(_arg1:Event):void{
var _local2:Number;
_local2 = (targetVol - settings.volume);
settings.volume = (settings.volume + (_local2 / fadeCounter));
fadeCounter--;
if (fadeCounter <= 0){
removeEventListener(Event.ENTER_FRAME, fade);
settings.volume = targetVol;
};
channel.soundTransform = settings;
spaceLevelChannel.soundTransform = settings;
}
public function remove():void{
}
public function moveOn():void{
segNum++;
gotoNext = true;
}
public function fadeIn(_arg1:Number=50):void{
fadeSpeed = _arg1;
startFade(1);
}
}
}//package
Section 91
//NotifAnim (NotifAnim)
package {
import flash.media.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class NotifAnim extends MovieClip {
public var anim:MovieClip;
public var notifs:MovieClip;
public function NotifAnim(){
addFrameScript(0, frame1, 54, frame55);
}
public function checkIfEmpty(_arg1:Event){
if (notifs.occupied != true){
addSelf();
removeEventListener(Event.ENTER_FRAME, checkIfEmpty);
play();
visible = true;
};
}
function frame1(){
notifs = GetMain.main.notifs;
if (notifs.occupied != true){
addSelf();
} else {
addEventListener(Event.ENTER_FRAME, checkIfEmpty);
stop();
visible = false;
};
}
public function addSelf(){
notifs.addChild(this);
notifs.occupied = true;
}
function frame55(){
stop();
notifs.occupied = false;
parent.removeChild(this);
}
}
}//package
Section 92
//PelletHitSound (PelletHitSound)
package {
import flash.media.*;
public dynamic class PelletHitSound extends Sound {
}
}//package
Section 93
//PelletShot (PelletShot)
package {
import flash.display.*;
public class PelletShot extends MovieClip {
public function PelletShot():void{
addFrameScript(30, frame31);
}
public function attachTail(_arg1, _arg2){
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
if (Math.random() > 0.5){
_local4 = new Explosion(_arg1, _arg2, 0.1, 1);
_local4.sound = new PelletHitSound();
};
}
function frame31(){
stop();
}
}
}//package
Section 94
//Player (Player)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.ui.*;
public class Player extends SolidBody {
public var upThrustLight:MovieClip;
private var left:Boolean;// = false
public var states:MovieClip;
private var right:Boolean;// = false
private var yAccel;// = 1.2
private var energyRegeneration:Number;// = 650
public var engine:MovieClip;
private var shieldUpgrade;
private var energyUpgrade;
private var up:Boolean;// = false
private var down:Boolean;// = false
public var upThrust:MovieClip;
private var weaponLevel:Number;// = 0
public var shieldAnim:MovieClip;
private var paused:Boolean;// = false
private var gun:Gun;
private var xAccel;// = 0.2
public var downThrust:MovieClip;
private var shieldRegeneration:Number;// = 4000
public var downThrustLight:MovieClip;
private var shieldLevel:Number;// = 0
private var main;
private var cam;
private var energyLevel:Number;// = 0
public var engineLight:MovieClip;
private var lifeLevel:Number;// = 0
public function Player():void{
up = false;
down = false;
right = false;
left = false;
xAccel = 0.2;
yAccel = 1.2;
main = GetMain.main;
cam = main.cam;
gun = new Gun(this);
shieldRegeneration = 4000;
energyRegeneration = 650;
shieldUpgrade = ((shieldRegeneration / 2) / 10);
energyUpgrade = ((energyRegeneration / 1.5) / 10);
lifeLevel = 0;
shieldLevel = 0;
energyLevel = 0;
weaponLevel = 0;
paused = false;
super(this);
mass = 3;
dist = 100;
rot = 90;
life = 4;
maxEnergy = 4;
maxShield = 4;
shield = 4;
energy = 4;
hurtTime = 500;
changeEnergyInterval(energyRegeneration);
changeShieldInterval(shieldRegeneration);
hurt = true;
setTimeout(resetHurt, 1000);
rot = main.lastRot;
dist = main.lastDist;
setPosition();
addEventListener(Event.ENTER_FRAME, moveShip);
main.cam.player.addChild(this);
if (main.paused){
pause();
};
}
override public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, moveShip);
gun.resume();
super.resume();
} else {
trace("error: player allready resumed");
};
}
public function remove2():void{
main.lastRot = rot;
main.lastDist = dist;
main.setStatBars(0, 0, 0);
gun.die();
removeEventListener(Event.ENTER_FRAME, moveShip);
parent.removeChild(this);
}
public function changeEnergy(_arg1:Number):void{
energy = (energy + _arg1);
if (energy < 0){
trace("Warning: energy below 0");
energy = 0;
};
if (energy > 9){
energy = 9;
trace("Warning: energy above 9");
};
}
public function die():void{
var _local1:Explosion;
_local1 = new Explosion(x, y, 1, 3);
_local1.sound = new BigBoomSound();
main.die();
}
public function upgradeShield(){
shieldLevel++;
maxShield = (shieldLevel + 4);
if (maxShield > 9){
maxShield = 9;
};
shield = maxShield;
changeShieldInterval((shieldRegeneration - (shieldLevel * shieldUpgrade)));
}
override public function takeDamage(_arg1:Number):void{
var _local2:Number;
if (!hurt){
_local2 = life;
super.takeDamage(_arg1);
if (_local2 > life){
Sounds.startSound(new HullHitSound(), (_arg1 * 2));
} else {
Sounds.startSound(new ShieldHitSound(), _arg1);
};
} else {
super.takeDamage(_arg1);
};
}
private function shipToBaddyCheck():void{
var _local1:Number;
var _local2:MovieClip;
var _local3:int;
if (((!(hurt)) && (HitTest.complexHitTestObject(states, cam.baddies, 1)))){
_local1 = cam.baddies.numChildren;
while (_local3 < _local1) {
_local2 = MovieClip(cam.baddies.getChildAt(_local3));
if ((((_local2.hurt == false)) && (HitTest.complexHitTestObject(states, _local2.states)))){
main.shake(2);
_local2.takeDamage(1);
takeDamage(1);
shipHit(this, _local2);
break;
};
_local3++;
};
};
}
public function upgradeLife(){
lifeLevel++;
life = (life + 3);
if (life > 9){
life = 9;
};
resistance = (1 - (lifeLevel * 0.05));
}
public function upgradeWeapon(_arg1:Number):void{
weaponLevel++;
gun.setWeaponLevel(weaponLevel);
if (_arg1 == 1){
gun.setWeapon("starGun");
} else {
if (_arg1 == 2){
gun.setWeapon("spreadGun");
} else {
if (_arg1 == 3){
gun.setWeapon("boomGun");
} else {
if (_arg1 == 4){
gun.setWeapon("asteroidGun");
};
};
};
};
}
public function getEnergy():Number{
return (energy);
}
private function wallHitTest():void{
var _local1:Rectangle;
_local1 = HitTest.complexIntersectionRectangle(states, main.cam.walls);
if (((!((_local1.width == 0))) || (!((_local1.height == 0))))){
if (_local1.width > (_local1.height * 3)){
yVel = (yVel * -0.9);
dist = (dist - 3);
} else {
if (xVel > 0){
rot = (rot + 2);
} else {
rot = (rot - 2);
};
xVel = (xVel * -1.1);
};
yVel = (yVel + 1);
dist = (dist + 2);
main.shake(1);
takeDamage(1);
};
}
private function moveShip(_arg1:Event):void{
var _local2:Boolean;
var _local3:Boolean;
var _local4:Boolean;
var _local5:Boolean;
rot = (rot % 360);
rotation = (rot - 90);
_local2 = false;
_local3 = false;
_local4 = false;
_local5 = false;
if (((Key.isDown(Keyboard.RIGHT)) || (Key.isDown(68)))){
_local2 = true;
};
if (((Key.isDown(Keyboard.LEFT)) || (Key.isDown(65)))){
_local3 = true;
};
if (((Key.isDown(Keyboard.UP)) || (Key.isDown(87)))){
_local4 = true;
};
if (((Key.isDown(Keyboard.DOWN)) || (Key.isDown(83)))){
_local5 = true;
};
if (_local2){
xVel = (xVel + xAccel);
scaleX = 1;
};
if (_local3){
xVel = (xVel - xAccel);
scaleX = -1;
};
if (_local4){
yVel = (yVel - yAccel);
downThrust.visible = (downThrustLight.visible = true);
downThrust.alpha = (downThrustLight.alpha = ((Math.random() * 0.75) + 0.25));
downThrust.scaleY = ((Math.random() * 0.5) + 0.5);
} else {
downThrust.visible = (downThrustLight.visible = false);
};
if (_local5){
yVel = (yVel + yAccel);
upThrust.visible = (upThrustLight.visible = true);
upThrust.alpha = (upThrustLight.alpha = ((Math.random() * 0.75) + 0.25));
upThrust.scaleY = ((Math.random() * 0.5) + 0.5);
} else {
upThrust.visible = (upThrustLight.visible = false);
};
if (((_local2) || (_local3))){
engineLight.visible = (engine.visible = true);
engineLight.alpha = (engine.alpha = ((Math.random() * 0.5) + 0.5));
} else {
engineLight.visible = (engine.visible = false);
};
if (Key.isDown(Keyboard.SPACE)){
gun.triggerPulled = true;
} else {
gun.triggerPulled = false;
};
if (((Key.isDown(49)) || (Key.isDown(97)))){
gun.setWeapon("starGun");
};
if (((Key.isDown(50)) || (Key.isDown(98)))){
gun.setWeapon("spreadGun");
};
if (((Key.isDown(51)) || (Key.isDown(99)))){
gun.setWeapon("boomGun");
};
main.rotCam(rot);
shipToBaddyCheck();
wallHitTest();
main.setStatBars(life, shield, energy);
}
private function shipHit(_arg1:MovieClip, _arg2:MovieClip):void{
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:*;
var _local20:*;
_local3 = _arg1.xVel;
_local4 = _arg1.yVel;
_local5 = _arg2.xVel;
_local6 = _arg2.yVel;
_local7 = _arg1.mass;
_local8 = _arg2.mass;
_local9 = (_arg1.x - _arg2.x);
_local10 = (_arg1.y - _arg2.y);
_local11 = Maths.pythag(_local9, _local10);
if (_local11 == 0){
_local11 = 0.1;
};
_local12 = (_local9 / _local11);
_local13 = (_local10 / _local11);
_local14 = ((_local3 * _local12) + (_local4 * _local13));
_local15 = ((-(_local3) * _local13) + (_local4 * _local12));
_local16 = ((_local5 * _local12) + (_local6 * _local13));
_local17 = ((-(_local5) * _local13) + (_local6 * _local12));
_local18 = 1.5;
_local19 = (_local14 + (((1 + _local18) * (_local16 - _local14)) / (1 + (_local7 / _local8))));
_local20 = (_local16 + (((1 + _local18) * (_local14 - _local16)) / (1 + (_local8 / _local7))));
_local3 = ((_local19 * _local12) - (_local15 * _local13));
_local4 = ((_local19 * _local13) + (_local15 * _local12));
_local5 = ((_local20 * _local12) - (_local17 * _local13));
_local6 = ((_local20 * _local13) + (_local17 * _local12));
_arg1.xVel = _local3;
_arg1.yVel = _local4;
_arg2.xVel = _local5;
_arg2.yVel = _local6;
if (_local9 > 0){
_arg1.rot = (_arg1.rot - 1);
_arg2.rot = (_arg2.rot + 1);
} else {
_arg1.rot = (_arg1.rot + 1);
_arg2.rot = (_arg2.rot - 1);
};
if (_local10 > 0){
_arg1.dist = (_arg1.dist - 1);
_arg2.dist = (_arg2.dist + 1);
} else {
_arg1.dist = (_arg1.dist + 1);
_arg2.dist = (_arg2.dist - 1);
};
}
public function upgradeEnergy(){
energyLevel++;
maxEnergy = (energyLevel + 4);
if (maxEnergy > 9){
maxEnergy = 9;
};
energy = maxEnergy;
changeEnergyInterval((energyRegeneration - (energyLevel * energyUpgrade)));
}
override public function damageEffect(_arg1:Number, _arg2:Boolean):void{
var _local3:MovieClip;
var _local4:ColorTransform;
var _local5:Number;
_local3 = main.screenFlash;
_local4 = _local3.transform.colorTransform;
if (_arg2 == true){
_local4.color = 0xFF0000;
} else {
_local4.color = 0xFFFFFF;
};
_local3.transform.colorTransform = _local4;
_local5 = (21 - Math.floor((_arg1 * 6)));
if (_local5 < 1){
_local5 = 1;
};
main.screenFlash.gotoAndPlay(_local5);
}
public function revert():void{
gun.revert();
}
override public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, moveShip);
gun.pause();
super.pause();
} else {
trace("error: player allready resumed");
};
}
}
}//package
Section 95
//PowerUpSound (PowerUpSound)
package {
import flash.media.*;
public dynamic class PowerUpSound extends Sound {
}
}//package
Section 96
//Preloader (Preloader)
package {
import flash.display.*;
import flash.events.*;
public class Preloader extends Sprite {
private var button;
private var bitmap:Bitmap;
private var xRot:Number;
private var percent:Number;// = 0
private var stageWidth:Number;
private var dotHolder:Sprite;
private var dotArray:Array;
private var bitmapData:BitmapData;
private var dotArray2:Array;
private var yRot:Number;
private var lastPercentLoaded:Number;// = 0
private var stageHeight:Number;
private var fov:Number;// = 600
private var bitmapWidth:Number;// = 200
private var finishedDots:Number;// = 0
private var zRot:Number;// = 0
public function Preloader(_arg1, _arg2){
var _local3:*;
var _local4:Dot;
xRot = (Math.random() * Math.PI);
yRot = (Math.random() * Math.PI);
zRot = 0;
fov = 600;
dotArray = new Array();
dotArray2 = new Array();
lastPercentLoaded = 0;
percent = 0;
finishedDots = 0;
bitmapWidth = 200;
dotHolder = new Sprite();
super();
stageWidth = _arg1;
stageHeight = _arg2;
bitmapData = new BitmapData(bitmapWidth, stageHeight, false, 0x222222);
bitmap = new Bitmap(bitmapData);
addChildAt(bitmap, 0);
bitmap.x = ((stageWidth - bitmap.width) / 2);
dotHolder.x = ((stageWidth - bitmapWidth) / 2);
addChild(dotHolder);
_local3 = 0;
while (_local3 < 100) {
_local4 = new Dot();
dotHolder.addChild(_local4);
_local4.xPos = (((_local3 % 10) * 10) - 50);
_local4.yPos = ((Math.floor((_local3 / 10)) * 10) - 50);
_local4.zPos = -50;
dotArray.push(_local4);
dotArray2.push(_local4);
_local3++;
};
addEventListener(Event.ENTER_FRAME, loading);
}
private function loaded(_arg1:Event):void{
moveDots();
bitmapData.draw(dotHolder);
bitmapData.scroll(0, -1);
}
private function loading(_arg1:Event):void{
var _local2:MovieClip;
moveDots();
percent = ((root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal) * 100);
while (percent > lastPercentLoaded) {
_local2 = dotArray2[lastPercentLoaded];
_local2.play();
_local2.addEventListener(Event.ENTER_FRAME, activateDot);
lastPercentLoaded++;
};
if (finishedDots >= 100){
removeChild(dotHolder);
removeEventListener(Event.ENTER_FRAME, loading);
addEventListener(Event.ENTER_FRAME, loaded);
button = addChild(new PreloaderButton());
button.x = 196;
button.y = 233;
stage.addEventListener(MouseEvent.CLICK, remove);
};
}
private function activateDot(_arg1:Event):void{
var _local2:MovieClip;
_local2 = MovieClip(_arg1.target);
_local2.zPos = (_local2.zPos + 2.5);
if (_local2.zPos >= 50){
_local2.zPos = 50;
finishedDots++;
_local2.removeEventListener(Event.ENTER_FRAME, activateDot);
};
}
private function remove(_arg1:MouseEvent):void{
var _local2:MovieClip;
while (dotArray.length > 0) {
_local2 = dotArray.pop();
dotHolder.removeChild(_local2);
_local2 = null;
};
removeEventListener(Event.ENTER_FRAME, loaded);
stage.removeEventListener(MouseEvent.CLICK, remove);
dotArray = null;
dotArray2 = null;
bitmapData.dispose();
bitmap = null;
dotHolder = null;
bitmapData = null;
GetMain.main.play();
parent.removeChild(this);
}
private function arrange(_arg1):void{
var _local2:*;
_arg1.sortOn("scaleX", Array.NUMERIC);
_local2 = 0;
while (_local2 < _arg1.length) {
if (dotHolder.getChildAt(_local2) != _arg1[_local2]){
dotHolder.setChildIndex(_arg1[_local2], _local2);
};
_local2++;
};
}
private function moveDots():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:MovieClip;
var _local8:*;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
xRot = (xRot + 0.01502);
yRot = (yRot + 0.0213);
_local1 = Math.sin(xRot);
_local2 = Math.cos(xRot);
_local3 = Math.sin(yRot);
_local4 = Math.cos(yRot);
_local5 = Math.sin(zRot);
_local6 = Math.cos(zRot);
_local8 = 0;
while (_local8 < dotArray.length) {
_local7 = dotArray[_local8];
_local9 = _local7.xPos;
_local10 = _local7.yPos;
_local11 = _local7.zPos;
_local12 = ((_local2 * _local10) - (_local1 * _local11));
_local13 = ((_local1 * _local10) + (_local2 * _local11));
_local14 = ((_local4 * _local13) - (_local3 * _local9));
_local15 = ((_local3 * _local13) + (_local4 * _local9));
_local16 = ((_local6 * _local15) - (_local5 * _local12));
_local17 = ((_local5 * _local15) + (_local6 * _local12));
_local18 = (fov / (fov - _local14));
_local7.x = ((_local16 * _local18) + 100);
_local7.y = (((_local17 * _local18) + stageHeight) - 100);
_local7.scaleX = (_local7.scaleY = _local18);
_local8++;
};
arrange(dotArray);
}
}
}//package
Section 97
//PreloaderButton (PreloaderButton)
package {
import flash.display.*;
public dynamic class PreloaderButton extends SimpleButton {
}
}//package
Section 98
//Projectile (Projectile)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class Projectile extends Body {
private var bounced:Boolean;// = false
public var life:Number;// = 100
public var testPlayer:Boolean;// = true
private var paused:Boolean;// = false
public var damage:Number;// = 1
public var testWalls:Boolean;// = false
private var baddies:MovieClip;
private var effect;
public var testBaddies:Boolean;// = true
public var bounce:Boolean;// = false
private var main;
public function Projectile(_arg1){
life = 100;
damage = 1;
bounce = false;
bounced = false;
testBaddies = true;
testPlayer = true;
testWalls = false;
main = GetMain.main;
baddies = main.cam.baddies;
paused = false;
super();
if (GetMain.main.levels.curLevel == 10){
testWalls = true;
};
this.effect = _arg1;
addChild(_arg1);
addEventListener(Event.ENTER_FRAME, moveProjectile);
xFriction = 1;
yFriction = 1;
}
public function setWeaponLevel(_arg1:Number):void{
effect.setWeaponLevel(_arg1);
}
override public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, moveProjectile);
super.resume();
} else {
trace("error: projectile allready resumed");
};
}
public function setFriction(_arg1:Number){
xFriction = _arg1;
yFriction = _arg1;
}
override public function remove():void{
super.bodyDie();
removeEventListener(Event.ENTER_FRAME, moveProjectile);
removeChild(effect);
parent.removeChild(this);
}
private function die():void{
effect.die(x, y, scaleX);
remove();
}
private function moveProjectile(_arg1:Event):void{
var _local2:Point;
var _local3:Number;
var _local4:MovieClip;
var _local5:int;
_local2 = new Point();
_local2.x = x;
_local2.y = y;
_local2 = parent.localToGlobal(_local2);
effect.attachTail(x, y);
life--;
rotation = rot;
if (((testBaddies) && (main.cam.baddies.hitTestPoint(_local2.x, _local2.y, true)))){
_local3 = baddies.numChildren;
while (_local5 < _local3) {
_local4 = MovieClip(baddies.getChildAt(_local5));
if (_local4.hitTestPoint(_local2.x, _local2.y, true)){
break;
};
_local5++;
};
hitObject(_local4);
die();
} else {
if (((testPlayer) && (main.player.states.hitTestPoint(_local2.x, _local2.y, true)))){
if (((bounce) && (!(bounced)))){
scaleX = (scaleY = (scaleY + 0.5));
bounced = true;
setTimeout(resetBounced, 500);
mass = (mass * 2);
xVel = (xVel * -1);
Sounds.startSound(new RiccochetSound(), 1.5);
} else {
GetMain.main.shake(mass);
hitObject(_arg1.target.root.player);
die();
};
} else {
if (((testWalls) && (main.cam.walls.hitTestPoint(_local2.x, _local2.y, true)))){
die();
} else {
if ((((dist > 240)) || ((dist < 45)))){
die();
} else {
if (life <= 0){
die();
};
};
};
};
};
}
private function resetBounced(){
bounced = false;
}
private function testWallHit():void{
}
private function hitObject(_arg1:MovieClip):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = ((mass / _arg1.mass) / 2);
_local3 = (xVel * _local2);
_local4 = (yVel * _local2);
_arg1.xVel = (_arg1.xVel + _local3);
_arg1.yVel = (_arg1.yVel + _local4);
_arg1.takeDamage(damage);
}
override public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, moveProjectile);
super.pause();
} else {
trace("error: projectile allready paused");
};
}
}
}//package
Section 99
//Rando (Rando)
package {
public dynamic class Rando extends Ship {
}
}//package
Section 100
//RedShot (RedShot)
package {
import flash.display.*;
public class RedShot extends MovieClip {
public function RedShot():void{
addFrameScript(8, frame9);
}
public function attachTail(_arg1, _arg2){
rotation = (Math.random() * 360);
}
function frame9(){
stop();
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
}
}
}//package
Section 101
//RiccochetSound (RiccochetSound)
package {
import flash.media.*;
public dynamic class RiccochetSound extends Sound {
}
}//package
Section 102
//Saw (Saw)
package {
public dynamic class Saw extends Ship {
}
}//package
Section 103
//ShieldHitSound (ShieldHitSound)
package {
import flash.media.*;
public dynamic class ShieldHitSound extends Sound {
}
}//package
Section 104
//Ship (Ship)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Ship extends SolidBody {
private var left:Boolean;// = false
public var states:MovieClip;
private var right:Boolean;// = false
private var DEG_RAD:Number;
public var strat:String;// = "roam"
private var thinkMS:Number;// = 1000
public var weapon:String;
public var shotVel:Number;// = 2
private var up:Boolean;// = false
public var shootCounterReset:Number;// = 99999999
private var down:Boolean;// = false
public var weaponDamage:Number;// = 1
public var upThrust:MovieClip;
public var mainLight:MovieClip;
private var thrustFreq:Number;// = 0.25
public var shootCounter:Number;
public var shieldAnim:MovieClip;
private var paused:Boolean;// = false
public var upLight:MovieClip;
public var aim:Boolean;// = false
public var xAccel:Number;// = 0.1
public var mainThrust:MovieClip;
public var downThrust:MovieClip;
public var downLight:MovieClip;
private var main;
private var thinkInterval:uint;
public var yAccel:Number;// = 0.2
public function Ship():void{
thrustFreq = 0.25;
xAccel = 0.1;
yAccel = 0.2;
up = false;
down = false;
left = false;
right = false;
aim = false;
shotVel = 2;
main = GetMain.main;
DEG_RAD = Maths.DEG_RAD();
strat = "roam";
shootCounterReset = 99999999;
shootCounter = shootCounterReset;
thinkMS = 1000;
thinkInterval = setInterval(think, thinkMS);
paused = false;
weaponDamage = 1;
super(this);
upThrust.visible = (upLight.visible = false);
downThrust.visible = (downLight.visible = false);
mainThrust.visible = (mainLight.visible = false);
addEventListener(Event.ENTER_FRAME, act);
}
override public function resume():void{
if (paused){
paused = false;
thinkInterval = setInterval(think, thinkMS);
addEventListener(Event.ENTER_FRAME, act);
super.resume();
} else {
trace("error: ship allready resumed");
};
}
public function remove2():void{
clearInterval(thinkInterval);
removeEventListener(Event.ENTER_FRAME, act);
parent.removeChild(this);
}
public function fire(){
var _local1:Projectile;
var _local2:Player;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
if (aim){
_local2 = main.player;
_local3 = Maths.rotDist((_local2.rotation + 90), rot);
_local4 = (dist - _local2.dist);
_local5 = (100 / (Math.abs(_local3) + Math.abs(_local4)));
_local6 = ((_local5 * _local3) / 100);
_local7 = ((_local5 * _local4) / 100);
_local8 = (_local6 * shotVel);
_local9 = (_local7 * shotVel);
if (weapon == "torpedo"){
Sounds.startSound(new TorpedoSound());
_local1 = new Projectile(new TorpedoShot());
} else {
Sounds.startSound(new RiccochetSound(), 2);
_local1 = new Projectile(new LaserShot());
};
_local1.xVel = -(_local8);
_local1.yVel = -(_local9);
_local1.life = 250;
_local1.dist = dist;
_local1.rot = rot;
_local1.mass = (_local1.damage = weaponDamage);
} else {
_local10 = 15;
_local11 = (rotation * Maths.DEG_RAD());
if (scaleX < 0){
_local11 = (_local11 - Math.PI);
};
_local12 = (x + (Math.cos((_local11 - Math.PI)) * _local10));
_local13 = (y + (Math.sin((_local11 - Math.PI)) * _local10));
_local14 = Maths.pythag(_local12, _local13);
_local15 = Math.atan2(_local13, _local12);
_local16 = (_local15 * Maths.RAD_DEG());
_local1 = new Projectile(new LaserShot());
_local1.xVel = (Math.sin(((_local11 - _local15) + Math.PI)) * shotVel);
_local1.yVel = (Math.cos(((_local11 - _local15) + Math.PI)) * shotVel);
_local1.dist = _local14;
_local1.rot = _local16;
_local1.life = 250;
};
_local1.testBaddies = false;
_local1.setPosition();
main.cam.projectiles.addChild(_local1);
}
public function setLife(_arg1:Number){
life = _arg1;
}
public function die(){
var _local1:Explosion;
_local1 = new Explosion(x, y, effectScale, boomDamage);
_local1.sound = new BigBoomSound();
main.incPoints(50);
}
private function act(_arg1:Event):void{
rotation = (rot - 90);
shootCounter--;
if (shootCounter <= 0){
fire();
shootCounter = shootCounterReset;
};
if (right == true){
xVel = (xVel + xAccel);
scaleX = 1;
};
if (left == true){
xVel = (xVel - xAccel);
scaleX = -1;
};
if (up == true){
yVel = (yVel - yAccel);
downThrust.visible = (downLight.visible = true);
downThrust.alpha = (downLight.alpha = ((Math.random() * 0.75) + 0.25));
downThrust.scaleY = ((Math.random() * 0.5) + 0.5);
} else {
downThrust.visible = (downLight.visible = false);
};
if (down == true){
yVel = (yVel + yAccel);
upThrust.visible = (upLight.visible = true);
upThrust.alpha = (upLight.alpha = ((Math.random() * 0.75) + 0.25));
upThrust.scaleY = ((Math.random() * 0.5) + 0.5);
} else {
upThrust.visible = (upLight.visible = false);
};
if (((((right) || (left))) && (!(((right) && (left)))))){
mainThrust.visible = (mainLight.visible = true);
mainThrust.alpha = (mainLight.alpha = ((Math.random() * 0.75) + 0.25));
mainThrust.scaleY = ((Math.random() * 0.5) + 0.5);
} else {
mainThrust.visible = (mainLight.visible = false);
};
if (dist < 70){
down = true;
up = false;
} else {
if (dist > 220){
up = true;
down = false;
};
};
}
private function think():void{
var _local1:Player;
var _local2:Number;
var _local3:Number;
down = false;
right = false;
left = false;
up = false;
if (strat == "roam"){
if (Math.random() > thrustFreq){
up = true;
};
if (Math.random() > thrustFreq){
down = true;
};
if (Math.random() > thrustFreq){
right = true;
};
if (Math.random() > thrustFreq){
left = true;
};
} else {
if (strat == "go"){
if (Math.random() > thrustFreq){
up = true;
};
if (Math.random() > thrustFreq){
down = true;
};
left = true;
} else {
if ((((strat == "chase")) || ((strat == "run")))){
_local1 = main.player;
_local2 = Maths.rotDist((_local1.rotation + 90), rot);
_local3 = (dist - _local1.dist);
if (strat == "run"){
_local2 = (_local2 * -1);
_local3 = (_local3 * -1);
};
if ((((_local2 > 0)) && ((Math.random() > thrustFreq)))){
left = true;
} else {
if (Math.random() > thrustFreq){
right = true;
};
};
if ((((_local3 > 0)) && ((Math.random() > thrustFreq)))){
up = true;
} else {
if (Math.random() > thrustFreq){
down = true;
};
};
};
};
};
if (dist < 100){
down = true;
up = false;
};
if (dist > 200){
up = true;
down = false;
};
if (((up) && (down))){
up = false;
down = false;
};
if (((right) && (left))){
right = false;
left = false;
};
}
public function setFireSpeed(_arg1:Number){
shootCounterReset = _arg1;
shootCounter = (Math.random() * _arg1);
}
override public function pause():void{
if (!paused){
paused = true;
clearInterval(thinkInterval);
removeEventListener(Event.ENTER_FRAME, act);
super.pause();
} else {
trace("error: ship allready paused");
};
}
}
}//package
Section 105
//SolidBody (SolidBody)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class SolidBody extends Body {
public var life:Number;// = 1
public var maxEnergy:Number;// = 4
public var hurt:Boolean;// = false
private var energyMS:Number;// = 1000
protected var maxDist:Number;// = 240
private var paused:Boolean;// = false
protected var minDist:Number;// = 56
private var shieldInterval:uint;
protected var resistance:Number;// = 1
protected var shield:Number;
private var hurtTimeout:uint;
private var energyInterval:uint;
public var hurtTime:Number;// = 0
protected var energy:Number;
public var boomDamage:Number;// = 1
public var effectScale:Number;// = 0.3
private var mc:MovieClip;
private var alive:Boolean;// = true
private var shieldMS:Number;// = 2000
public var maxShield:Number;// = 0
public function SolidBody(_arg1:MovieClip){
minDist = 56;
maxDist = 240;
alive = true;
hurt = false;
hurtTime = 0;
maxShield = 0;
shield = maxShield;
shieldMS = 2000;
shieldInterval = setInterval(regenerateShields, shieldMS);
maxEnergy = 4;
energy = maxEnergy;
energyMS = 1000;
energyInterval = setInterval(regenerateEnergy, energyMS);
life = 1;
resistance = 1;
boomDamage = 1;
effectScale = 0.3;
paused = false;
super();
addEventListener(Event.ENTER_FRAME, wallHitTest);
this.mc = _arg1;
}
protected function resetHurt():void{
hurt = false;
}
override public function resume():void{
if (paused){
paused = false;
energyInterval = setInterval(regenerateEnergy, energyMS);
shieldInterval = setInterval(regenerateShields, shieldMS);
addEventListener(Event.ENTER_FRAME, wallHitTest);
super.resume();
} else {
trace("error: solid body allready resumed");
};
}
public function changeEnergyInterval(_arg1:Number){
energyMS = _arg1;
clearInterval(energyInterval);
energyInterval = setInterval(regenerateEnergy, energyMS);
}
private function regenerateEnergy():void{
if (energy < maxEnergy){
energy++;
} else {
energy = maxEnergy;
};
}
public function changeShieldInterval(_arg1:Number){
shieldMS = _arg1;
clearInterval(shieldInterval);
shieldInterval = setInterval(regenerateShields, shieldMS);
}
private function regenerateShields(){
if (shield < maxShield){
shield++;
};
}
override public function remove():void{
clearInterval(energyInterval);
clearInterval(shieldInterval);
removeEventListener(Event.ENTER_FRAME, wallHitTest);
mc.remove2();
super.bodyDie();
}
private function die():void{
alive = false;
mc.die();
remove();
}
private function wallHitTest(_arg1:Event):void{
if ((((dist < minDist)) || ((dist > maxDist)))){
yVel = (yVel * -0.9);
takeDamage(1);
if (dist < minDist){
dist = (minDist + 1);
} else {
dist = (maxDist - 1);
rot = (rot - 0.5);
};
};
}
public function takeDamage(_arg1:Number):void{
var _local2:Boolean;
if (((alive) && (!(hurt)))){
if (hurtTime > 0){
hurt = true;
clearTimeout(hurtTimeout);
hurtTimeout = setTimeout(resetHurt, hurtTime);
};
_local2 = false;
shield = (shield - _arg1);
if (shield < 0){
_local2 = true;
life = (life - (-(shield) * resistance));
shield = 0;
mc.states.gotoAndStop("hurt");
} else {
mc.shieldAnim.gotoAndPlay("hit");
};
if (life <= 0){
die();
};
damageEffect(_arg1, _local2);
};
}
public function damageEffect(_arg1:Number, _arg2:Boolean):void{
}
override public function pause():void{
if (!paused){
paused = true;
clearInterval(energyInterval);
clearInterval(shieldInterval);
removeEventListener(Event.ENTER_FRAME, wallHitTest);
super.pause();
} else {
trace("error: solid body allready paused");
};
}
}
}//package
Section 106
//Sounds (Sounds)
package {
import flash.media.*;
public class Sounds {
private static var channels:Array = new Array();
private static var mute:Boolean = false;
public function Sounds():void{
}
public static function pressMute(){
var _local1:SoundTransform;
_local1 = new SoundTransform();
mute = !(mute);
if (mute){
_local1.volume = 0;
} else {
_local1.volume = 1;
};
SoundMixer.soundTransform = _local1;
}
public static function startSound(_arg1:Sound, _arg2:Number=1, _arg3:Number=0, _arg4:Number=0){
var _local5:SoundChannel;
var _local6:SoundTransform;
if (_arg2 > 0.05){
_local5 = _arg1.play(0, _arg4);
_local6 = new SoundTransform();
_local6.volume = _arg2;
_local6.pan = _arg3;
_local5.soundTransform = _local6;
return (_local5);
};
return (false);
}
}
}//package
Section 107
//Space2 (Space2)
package {
import flash.media.*;
public dynamic class Space2 extends Sound {
}
}//package
Section 108
//Space3 (Space3)
package {
import flash.media.*;
public dynamic class Space3 extends Sound {
}
}//package
Section 109
//Space4 (Space4)
package {
import flash.media.*;
public dynamic class Space4 extends Sound {
}
}//package
Section 110
//Space5 (Space5)
package {
import flash.media.*;
public dynamic class Space5 extends Sound {
}
}//package
Section 111
//Space6 (Space6)
package {
import flash.media.*;
public dynamic class Space6 extends Sound {
}
}//package
Section 112
//Space7 (Space7)
package {
import flash.media.*;
public dynamic class Space7 extends Sound {
}
}//package
Section 113
//SpaceAsteroids (SpaceAsteroids)
package {
import flash.media.*;
public dynamic class SpaceAsteroids extends Sound {
}
}//package
Section 114
//SpaceFinal (SpaceFinal)
package {
import flash.media.*;
public dynamic class SpaceFinal extends Sound {
}
}//package
Section 115
//SpaceLaugh (SpaceLaugh)
package {
import flash.media.*;
public dynamic class SpaceLaugh extends Sound {
}
}//package
Section 116
//SpaceLevel (SpaceLevel)
package {
import flash.media.*;
public dynamic class SpaceLevel extends Sound {
}
}//package
Section 117
//SpaceTempo (SpaceTempo)
package {
import flash.media.*;
public dynamic class SpaceTempo extends Sound {
}
}//package
Section 118
//Spark (Spark)
package {
import flash.display.*;
import flash.events.*;
public class Spark extends MovieClip {
private var time:Number;// = 20
public var spark:MovieClip;
public function Spark():void{
time = 20;
super();
rotation = (Math.random() * 360);
scaleX = (scaleY = ((Math.random() * 0.75) + 0.25));
addEventListener(Event.ENTER_FRAME, go);
GetMain.main.cam.effects.addChild(this);
}
public function resume():void{
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, go);
parent.removeChild(this);
}
private function die(){
remove();
}
private function go(_arg1:Event){
time--;
if (time <= 0){
die();
};
}
public function pause():void{
}
}
}//package
Section 119
//SparkShot (SparkShot)
package {
import flash.display.*;
public class SparkShot extends MovieClip {
public var s1:MovieClip;
public var s2:MovieClip;
private var effectScale:Number;// = 0.2
public function SparkShot():void{
effectScale = 0.2;
super();
addFrameScript(6, frame7);
}
public function attachTail(_arg1, _arg2){
shape(s1);
shape(s2);
}
function frame7(){
stop();
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
_local4 = new Explosion(_arg1, _arg2, effectScale, 1);
}
private function shape(_arg1:MovieClip):void{
_arg1.rotation = (Math.random() * 360);
_arg1.scaleX = (_arg1.scaleY = Math.random());
}
}
}//package
Section 120
//Spin (Spin)
package {
public dynamic class Spin extends Turret {
}
}//package
Section 121
//SpreadGun (SpreadGun)
package {
public class SpreadGun extends Weapon {
private var energy:Number;// = 0.35
private var m:Projectile;
private var reload:Number;// = 50
public function SpreadGun():void{
reload = 50;
energy = 0.35;
super();
}
override public function getReload():Number{
return (reload);
}
override public function misfire():void{
}
override public function fire():Projectile{
m = new Projectile(new SpreadShot());
m.life = (95 + (Math.random() * 10));
m.xVel = 6;
m.yVel = ((Math.random() * 3) - 1.5);
m.damage = 0.6;
m.mass = 0.4;
m.setFriction(0.97);
return (m);
}
override public function getEnergy():Number{
return (energy);
}
}
}//package
Section 122
//SpreadShot (SpreadShot)
package {
import flash.display.*;
public class SpreadShot extends MovieClip {
private var boomSize:Number;
private var base:Number;// = 0.05
public function SpreadShot():void{
base = 0.05;
boomSize = base;
super();
addFrameScript(4, frame5);
}
public function setWeaponLevel(_arg1:Number):void{
boomSize = (base + (_arg1 / 100));
}
public function attachTail(_arg1, _arg2){
}
function frame5(){
stop();
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
_local4 = new Explosion(_arg1, _arg2, boomSize, 0.5);
}
}
}//package
Section 123
//SpreadShotFireSound (SpreadShotFireSound)
package {
import flash.media.*;
public dynamic class SpreadShotFireSound extends Sound {
}
}//package
Section 124
//Star (Star)
package {
import flash.display.*;
public dynamic class Star extends MovieClip {
}
}//package
Section 125
//StarGun (StarGun)
package {
public class StarGun extends Weapon {
private var energy:Number;// = 1
private var m:Projectile;
private var reload:Number;// = 250
public function StarGun():void{
reload = 250;
energy = 1;
super();
}
override public function getReload():Number{
return (reload);
}
override public function misfire():void{
}
override public function fire():Projectile{
m = new Projectile(new StarShot());
m.life = 150;
m.xVel = 5;
m.damage = 1;
m.mass = 1;
m.bounce = true;
return (m);
}
override public function getEnergy():Number{
return (energy);
}
}
}//package
Section 126
//StarHitSound (StarHitSound)
package {
import flash.media.*;
public dynamic class StarHitSound extends Sound {
}
}//package
Section 127
//StarShot (StarShot)
package {
import flash.display.*;
public class StarShot extends MovieClip {
private var maxEffects:Number;
private var effects:MovieClip;
private var minFPS:Number;
private var main;
private var boomSize:Number;// = 0.25
public function StarShot():void{
main = GetMain.main;
minFPS = main.minFPS;
maxEffects = main.maxEffects;
effects = main.cam.effects;
boomSize = 0.25;
super();
addFrameScript(1, frame2);
}
public function setWeaponLevel(_arg1:Number):void{
boomSize = (boomSize + (_arg1 / 750));
}
public function attachTail(_arg1, _arg2){
var _local3:MovieClip;
if ((((Stats.fps > minFPS)) && ((effects.numChildren < maxEffects)))){
_local3 = new StarShotTail();
effects.addChild(_local3);
_local3.x = _arg1;
_local3.y = _arg2;
};
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
_local4 = new Explosion(_arg1, _arg2, (boomSize * _arg3), _arg3);
}
function frame2(){
stop();
}
}
}//package
Section 128
//StarShotFireSound (StarShotFireSound)
package {
import flash.media.*;
public dynamic class StarShotFireSound extends Sound {
}
}//package
Section 129
//StarShotTail (StarShotTail)
package {
import flash.display.*;
import flash.events.*;
public class StarShotTail extends MovieClip {
private var paused:Boolean;// = false
private var ySpeed:Number;
private var xSpeed:Number;
private var rotSpeed:Number;
public function StarShotTail():void{
xSpeed = (Math.random() - 0.5);
ySpeed = (Math.random() - 0.5);
rotSpeed = ((Math.random() * 10) - 5);
paused = false;
super();
addEventListener(Event.ENTER_FRAME, fade);
rotation = (Math.random() * 360);
alpha = (Math.random() * 0.5);
scaleX = (scaleY = Math.random());
}
public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, fade);
} else {
trace("error: star tail allready resumed");
};
}
private function fade(_arg1:Event){
x = (x + xSpeed);
y = (y + ySpeed);
rotation = (rotation + rotSpeed);
alpha = (alpha - 0.08);
if (alpha <= 0){
die();
};
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, fade);
parent.removeChild(this);
}
private function die(){
remove();
}
public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, fade);
} else {
trace("error: star tail allready paused");
};
}
}
}//package
Section 130
//Stats (Stats)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
public class Stats extends Sprite {
private var fpsBox:TextField;
private var frameCount:Number;// = 0
private var memBox:TextField;
public static var fps:Number = 0;
public function Stats():void{
frameCount = 0;
super();
fpsBox = new TextField();
memBox = new TextField();
fpsBox.x = 5;
fpsBox.y = 5;
memBox.x = 5;
memBox.y = 25;
memBox.autoSize = (fpsBox.autoSize = "left");
memBox.textColor = (fpsBox.textColor = 0xAAAAAA);
memBox.selectable = (fpsBox.selectable = false);
addChild(fpsBox);
addChild(memBox);
setInterval(calcStats, 1000);
addEventListener(Event.ENTER_FRAME, incFrameCount);
}
private function incFrameCount(_arg1:Event){
frameCount++;
}
private function calcStats(){
fps = frameCount;
frameCount = 0;
fpsBox.text = ("fps: " + fps.toString());
memBox.text = ("mem: " + Math.round((System.totalMemory / 0x0400)).toString());
}
}
}//package
Section 131
//StatUpgrade (StatUpgrade)
package {
import flash.display.*;
public class StatUpgrade extends Upgrade {
public function StatUpgrade(){
super(this, "green");
}
public function doUpgrade(_arg1){
var _local2:*;
var _local3:MovieClip;
var _local4:MovieClip;
_local2 = GetMain.main;
_local3 = _local2.player;
_local4 = new NotifAnim();
if (_arg1 == 1){
_local3.upgradeLife();
_local2.lifeBar.upgradeFlash.gotoAndPlay("flash");
_local4.anim.textBox.text = "Hull";
_local4.anim.subTextBox.text = "Life +3, Resistance +4";
};
if (_arg1 == 2){
_local3.upgradeShield();
_local2.shieldBar.upgradeFlash.gotoAndPlay("flash");
_local4.anim.textBox.text = "Shield";
_local4.anim.subTextBox.text = "Max +1, Regeneration +2";
};
if (_arg1 == 3){
_local3.upgradeEnergy();
_local2.energyBar.upgradeFlash.gotoAndPlay("flash");
_local4.anim.textBox.text = "Energy";
_local4.anim.subTextBox.text = "Max +1, Regeneration +2";
};
}
}
}//package
Section 132
//TorpedoShot (TorpedoShot)
package {
import flash.display.*;
public class TorpedoShot extends MovieClip {
public var s1:MovieClip;
public var s2:MovieClip;
private var effectScale:Number;// = 0.7
public function TorpedoShot():void{
effectScale = 0.7;
super();
addFrameScript(6, frame7);
}
public function attachTail(_arg1, _arg2){
shape(s1);
shape(s2);
}
function frame7(){
stop();
}
public function die(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Explosion;
_local4 = new Explosion(_arg1, _arg2, effectScale, 3);
_local4.sound = new BigBoomSound();
}
private function shape(_arg1:MovieClip):void{
_arg1.rotation = (Math.random() * 360);
_arg1.scaleX = (_arg1.scaleY = Math.random());
}
}
}//package
Section 133
//TorpedoSound (TorpedoSound)
package {
import flash.media.*;
public dynamic class TorpedoSound extends Sound {
}
}//package
Section 134
//Turret (Turret)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Turret extends SolidBody {
public var states:MovieClip;
private var fireInterval:uint;
public var shieldAnim:MovieClip;
private var paused:Boolean;// = false
private var radius:Number;// = 20
private var vel:Number;// = 1
private var fireMS:Number;// = 300
private var main;
private var rotSpeed:Number;
public function Turret(){
fireMS = 300;
fireInterval = setInterval(fire, fireMS);
vel = 1;
rotSpeed = ((Math.random() * 2) + 1);
main = GetMain.main;
radius = 20;
paused = false;
super(this);
rotation = (Math.random() * 360);
life = 40;
mass = 3;
maxShield = 0;
addEventListener(Event.ENTER_FRAME, doStuff);
}
override public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, doStuff);
fireInterval = setInterval(fire, fireMS);
super.resume();
} else {
trace("error: turret allready resumed");
};
}
public function doStuff(_arg1:Event){
rotation = (rotation + rotSpeed);
}
public function remove2():void{
removeEventListener(Event.ENTER_FRAME, doStuff);
clearInterval(fireInterval);
parent.removeChild(this);
}
public function die(){
var _local1:Explosion;
_local1 = new Explosion(x, y, 1, boomDamage);
_local1.sound = new AsteroidLowSound();
}
public function fire(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Projectile;
_local1 = (rotation * Maths.DEG_RAD());
_local2 = (x + (Math.cos((_local1 - Math.PI)) * radius));
_local3 = (y + (Math.sin((_local1 - Math.PI)) * radius));
_local4 = Maths.pythag(_local2, _local3);
_local5 = Math.atan2(_local3, _local2);
_local6 = (_local5 * Maths.RAD_DEG());
_local7 = new Projectile(new RedShot());
_local7.xVel = (-(Math.sin(((_local1 - _local5) + Math.PI))) * vel);
_local7.yVel = (Math.cos(((_local1 - _local5) + Math.PI)) * vel);
_local7.dist = _local4;
_local7.rot = _local6;
_local7.life = 1000;
_local7.testBaddies = false;
_local7.setPosition();
main.cam.projectiles.addChild(_local7);
}
override public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, doStuff);
clearInterval(fireInterval);
super.pause();
} else {
trace("error: turret allready paused");
};
}
}
}//package
Section 135
//Upgrade (Upgrade)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class Upgrade extends Body {
private var effects:MovieClip;
private var maxEffects:Number;
private var item;
private var paused:Boolean;// = false
private var minFPS:Number;
private var sparkMS:Number;// = 250
private var changeMS:Number;// = 3000
private var sparkColor:String;// = "green"
private var mc:MovieClip;
private var changeInterval:uint;
private var main;
private var sparkInterval:uint;
public function Upgrade(_arg1:MovieClip, _arg2:String):void{
sparkColor = "green";
item = Math.ceil((Math.random() * 3));
changeMS = 3000;
changeInterval = setInterval(changeItem, changeMS);
sparkMS = 250;
sparkInterval = setInterval(spark, sparkMS);
main = GetMain.main;
paused = false;
effects = main.cam.effects;
maxEffects = main.maxEffects;
minFPS = main.minFPS;
super();
xVel = (Math.random() * 2);
yVel = (Math.random() * 2);
dist = 100;
rot = (Math.random() * 360);
setPosition();
this.mc = _arg1;
this.sparkColor = _arg2;
main.cam.effects.addChild(this);
addEventListener(Event.ENTER_FRAME, testHit);
changeItem();
}
private function changeItem():void{
item++;
if (item > 3){
item = 1;
};
mc.gotoAndStop(item);
}
override public function resume():void{
if (paused){
paused = false;
addEventListener(Event.ENTER_FRAME, testHit);
changeInterval = setInterval(changeItem, changeMS);
sparkInterval = setInterval(spark, sparkMS);
super.resume();
} else {
trace("error: mine allready resumed");
};
}
override public function remove():void{
removeEventListener(Event.ENTER_FRAME, testHit);
clearInterval(sparkInterval);
clearInterval(changeInterval);
parent.removeChild(this);
}
private function die():void{
Sounds.startSound(new PowerUpSound());
mc.doUpgrade(item);
remove();
}
private function testHit(_arg1:Event):void{
var _local2:Point;
_local2 = new Point();
_local2.x = x;
_local2.y = y;
_local2 = parent.localToGlobal(_local2);
if (main.player.states.hitTestPoint(_local2.x, _local2.y, true)){
die();
};
mc.rotation = -(main.cam.rotation);
}
private function spark():void{
var _local1:ColorSpark;
var _local2:ColorSpark;
var _local3:ColorSpark;
if ((((Stats.fps > minFPS)) && ((effects.numChildren < maxEffects)))){
_local1 = new ColorSpark(dist, rot, sparkColor);
_local2 = new ColorSpark(dist, rot, sparkColor);
_local3 = new ColorSpark(dist, rot, sparkColor);
};
}
override public function pause():void{
if (!paused){
paused = true;
removeEventListener(Event.ENTER_FRAME, testHit);
clearInterval(sparkInterval);
clearInterval(changeInterval);
super.pause();
} else {
trace("error: mine allready paused");
};
}
}
}//package
Section 136
//Weapon (Weapon)
package {
public class Weapon {
private var energy:Number;// = 1
private var reload:Number;// = 250
public function Weapon():void{
energy = 1;
reload = 250;
super();
}
public function fire():Projectile{
return (new Projectile(new StarShot()));
}
public function getReload():Number{
return (reload);
}
public function misfire():void{
}
public function getEnergy():Number{
return (energy);
}
}
}//package
Section 137
//VictoryStar (VictoryStar)
package {
import flash.display.*;
import flash.events.*;
public class VictoryStar extends MovieClip {
private var xVel:Number;// = -5
private var yVel:Number;// = 1.5
private var maxHeight:Number;
private var maxWidth:Number;
public function VictoryStar(_arg1:Number=500, _arg2:Number=500):void{
xVel = -5;
yVel = 1.5;
super();
this.maxWidth = _arg1;
this.maxHeight = _arg2;
x = (Math.random() * _arg1);
y = (Math.random() * _arg2);
addEventListener(Event.ENTER_FRAME, go);
randScale();
}
private function randScale():void{
scaleX = (scaleY = (alpha = ((Math.random() * Math.random()) + 0.1)));
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, go);
parent.removeChild(this);
}
private function go(_arg1:Event):void{
x = (x + ((xVel * scaleX) / 2));
y = (y + ((yVel * scaleX) / 2));
if (x < 0){
x = maxWidth;
randScale();
};
if (y > maxHeight){
y = 0;
randScale();
};
}
}
}//package