Section 1
//MainTimeline (brokengarden_fla.MainTimeline)
package brokengarden_fla {
import flash.display.*;
import flash.events.*;
import mochi.as3.*;
import flash.ui.*;
public dynamic class MainTimeline extends MovieClip {
public var currentexp:int;
public var currentlives:int;
public var currentship:int;
public var shipselect:ShipSelectScreen;
public var shoot2KeyDown:Boolean;
public var shoot1KeyDown:Boolean;
public var selectedShip:int;
public var quitKeyDown:Boolean;
public var mochiad:MochiAdScreen;
public var nextextralife:int;
public var upKeyDown:Boolean;
public var leftKeyDown:Boolean;
public var gameloop:GameLoop;
public var downKeyDown:Boolean;
public var soundManager:SoundManager;
public var upgradescreen:UpgradeScreen;
public var currentscore:int;
public var currentlevel:int;
public var currentupgradearray:Array;
public var gameoverscreen:GameOverScreen;
public var howtoplayscreen:HowToPlayScreen;
public var pauseKeyDown:Boolean;
public var titlescreen:TitleScreen;
public var rightKeyDown:Boolean;
public function MainTimeline(){
addFrameScript(0, frame1);
}
public function StartWithGameLoop(){
soundManager.StopBGM();
soundManager.PlayBGM("gameloop");
gameloop = new GameLoop(currentlevel, selectedShip, currentscore, currentexp, currentupgradearray, currentlives);
this.addChild(gameloop);
stage.focus = stage;
}
public function GameOver(_arg1){
soundManager.StopBGM();
soundManager.PlayBGM("gameover");
this.removeChild(gameloop);
StartWithGameOverScreen(_arg1);
}
public function NewUpgradeScreen(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){
currentlevel = _arg1;
currentship = _arg2;
currentscore = _arg3;
currentexp = _arg4;
currentupgradearray = _arg5;
currentlives = _arg6;
this.removeChild(gameloop);
soundManager.StopBGM();
soundManager.PlayBGM("orca");
StartWithUpgradeScreen();
stage.focus = stage;
}
public function GetNextExtraLife(){
return (nextextralife);
}
public function ContinueFromGameOver(){
soundManager.StopBGM();
this.removeChild(gameoverscreen);
currentscore = 0;
currentlives = 5;
StartWithGameLoop();
}
public function UpgradeToLevel(_arg1, _arg2, _arg3){
currentlives = (currentlives + _arg3);
currentupgradearray = _arg2;
currentexp = _arg1;
currentlevel++;
this.removeChild(upgradescreen);
StartWithGameLoop();
}
public function NewHowToPlay(){
this.removeChild(titlescreen);
StartWithHowToPlayScreen();
}
public function SetNextExtraLife(){
nextextralife = (nextextralife + 50000);
}
function frame1(){
MochiServices.connect("d4e21ccd56633993", root);
currentscore = 0;
currentexp = 0;
currentupgradearray = [0, 0, 0, 0, 0];
currentlives = 5;
currentship = 0;
currentlevel = 0;
nextextralife = 50000;
selectedShip = 0;
leftKeyDown = false;
upKeyDown = false;
rightKeyDown = false;
downKeyDown = false;
shoot1KeyDown = false;
shoot2KeyDown = false;
quitKeyDown = false;
pauseKeyDown = false;
soundManager = new SoundManager();
addChild(soundManager);
Mouse.hide();
StartWithMochi();
stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
stop();
}
public function NewGame(_arg1){
this.removeChild(shipselect);
selectedShip = _arg1;
StartWithGameLoop();
}
public function StartWithUpgradeScreen(){
upgradescreen = new UpgradeScreen(this, currentexp, currentupgradearray);
this.addChild(upgradescreen);
upgradescreen.x = 225;
upgradescreen.y = 300;
stage.focus = stage;
}
public function StartWithMochi(){
var myOptions:Object;
myOptions = {id:"d4e21ccd56633993", res:"450x600", clip:this, ad_finished:function (){
StartWithTitleScreen();
}};
MochiAd.showPreGameAd(myOptions);
}
public function StartWithShipSelect(){
shipselect = new ShipSelectScreen(this);
shipselect.x = 225;
shipselect.y = 300;
this.addChild(shipselect);
stage.focus = stage;
}
public function TitleFromGameOver(){
soundManager.StopBGM();
this.removeChild(gameoverscreen);
StartWithTitleScreen();
}
public function StartWithGameOverScreen(_arg1){
gameoverscreen = new GameOverScreen(this, _arg1);
this.addChild(gameoverscreen);
gameoverscreen.x = 225;
gameoverscreen.y = 300;
}
public function StartWithTitleScreen(){
currentlevel = 1;
currentlives = 5;
currentexp = 0;
currentscore = 0;
nextextralife = 50000;
currentupgradearray = [0, 0, 0, 0, 0];
soundManager.StopBGM();
soundManager.PlayBGM("title");
titlescreen = new TitleScreen(this);
titlescreen.x = 225;
titlescreen.y = 300;
this.addChild(titlescreen);
stage.focus = stage;
}
public function MakeSponsorScreen(){
this.removeChild(mochiad);
trace("here is sponsor!");
StartWithTitleScreen();
}
public function StartWithHowToPlayScreen(){
soundManager.StopBGM();
howtoplayscreen = new HowToPlayScreen(this);
this.addChild(howtoplayscreen);
howtoplayscreen.x = 225;
howtoplayscreen.y = 300;
}
public function TitleFromHowToPlay(){
this.removeChild(howtoplayscreen);
StartWithTitleScreen();
}
public function checkKeysDown(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 65)))){
leftKeyDown = true;
};
if ((((_arg1.keyCode == 38)) || ((_arg1.keyCode == 87)))){
upKeyDown = true;
};
if ((((_arg1.keyCode == 39)) || ((_arg1.keyCode == 68)))){
rightKeyDown = true;
};
if ((((_arg1.keyCode == 40)) || ((_arg1.keyCode == 83)))){
downKeyDown = true;
};
if (_arg1.keyCode == 90){
shoot1KeyDown = true;
};
if (_arg1.keyCode == 88){
shoot2KeyDown = true;
};
if (_arg1.keyCode == 27){
quitKeyDown = true;
};
if (_arg1.keyCode == 77){
soundManager.ToggleBGM();
soundManager.ToggleSound();
};
if (_arg1.keyCode == 80){
pauseKeyDown = true;
};
}
public function checkKeysUp(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 65)))){
leftKeyDown = false;
};
if ((((_arg1.keyCode == 38)) || ((_arg1.keyCode == 87)))){
upKeyDown = false;
};
if ((((_arg1.keyCode == 39)) || ((_arg1.keyCode == 68)))){
rightKeyDown = false;
};
if ((((_arg1.keyCode == 40)) || ((_arg1.keyCode == 83)))){
downKeyDown = false;
};
if (_arg1.keyCode == 90){
shoot1KeyDown = false;
};
if (_arg1.keyCode == 88){
shoot2KeyDown = false;
};
if (_arg1.keyCode == 27){
quitKeyDown = false;
};
if (_arg1.keyCode == 80){
pauseKeyDown = false;
};
}
public function NewShipSelect(){
this.removeChild(titlescreen);
StartWithShipSelect();
}
}
}//package brokengarden_fla
Section 2
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return ("3.0 as3");
}
public static function showClickAwayAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_timeout:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var sendHostProgress:Boolean;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
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_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
sendHostProgress = false;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType == "application"){
return (_local2);
};
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
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{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
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_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
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;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_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.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_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 _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];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_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++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var idx:Number;
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
idx = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
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 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);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
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;
} else {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
};
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;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
trace("[MochiAds] Blocked URL");
});
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
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 _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 adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array;
var _local4:Number;
_local3 = _arg2.split(".");
_local4 = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
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 sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
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_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
MochiAd._cleanup(mc);
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);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
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{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
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.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
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)) || (!(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;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
_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);
options.ad_progress(_local10);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7});
if (_local7 == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local11 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_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{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
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 {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package mochi.as3
Section 3
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function reencode():void{
var _local1:uint;
_local1 = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function toString():String{
var _local1:String;
_local1 = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function get value():Number{
return (Number(this.toString()));
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String;
_local3 = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi.as3
Section 4
//MochiScores (mochi.as3.MochiScores)
package mochi.as3 {
import flash.display.*;
import flash.text.*;
public class MochiScores {
private static var boardID:String;
public static var onErrorHandler:Object;
public static var onCloseHandler:Object;
public static function showLeaderboard(_arg1:Object=null):void{
var n:Number;
var options = _arg1;
if (options != null){
if (options.clip != null){
if ((options.clip is Sprite)){
MochiServices.setContainer(options.clip);
};
delete options.clip;
} else {
MochiServices.setContainer();
};
MochiServices.stayOnTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
} else {
if ((options.score is MochiDigits)){
options.score = options.score.value;
};
};
n = Number(options.score);
if (isNaN(n)){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(n) != n){
trace((("WARNING: Submitted score '" + options.score) + "' will be truncated"));
};
options.score = n;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (MochiScores.boardID != null){
options.boardID = MochiScores.boardID;
};
};
trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal");
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2);
}
public static function requestList(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_requestList", null, _arg1, _arg2);
}
public static function scoresArrayToObjects(_arg1:Object):Object{
var _local2:Object;
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
var _local7:String;
var _local8:String;
_local2 = {};
for (_local7 in _arg1) {
if (typeof(_arg1[_local7]) == "object"){
if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){
_local2[_local7] = [];
_local5 = _arg1[_local7];
_local4 = 0;
while (_local4 < _local5.rows.length) {
_local6 = {};
_local3 = 0;
while (_local3 < _local5.cols.length) {
_local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3];
_local3++;
};
_local2[_local7].push(_local6);
_local4++;
};
} else {
_local2[_local7] = {};
for (_local8 in _arg1[_local7]) {
_local2[_local7][_local8] = _arg1[_local7][_local8];
};
};
} else {
_local2[_local7] = _arg1[_local7];
};
};
return (_local2);
}
public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{
_arg1 = Number(_arg1);
if (isNaN(_arg1)){
trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(_arg1) != _arg1){
trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated"));
};
_arg1 = Number(_arg1);
};
};
MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4);
}
public static function onClose(_arg1:Object=null):void{
if (_arg1 != null){
if (_arg1.error != null){
if (_arg1.error == true){
if (onErrorHandler != null){
if (_arg1.errorCode == null){
_arg1.errorCode = "IOError";
};
onErrorHandler(_arg1.errorCode);
MochiServices.doClose();
return;
};
};
};
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(_arg1:String):void{
MochiScores.boardID = _arg1;
MochiServices.send("scores_setBoardID", {boardID:_arg1});
}
}
}//package mochi.as3
Section 5
//MochiServices (mochi.as3.MochiServices)
package mochi.as3 {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _swfVersion:String;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
private static var _clip:MovieClip;
private static var _loader:Loader;
private static var _id:String;
private static var _listenChannel:LocalConnection;
public static var widget:Boolean = false;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _connecting:Boolean = false;
public static var onError:Object;
private static var _listenChannelName:String = "__ms_";
private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf";
public static var netup:Boolean = true;
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function get connected():Boolean{
return (_connected);
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (_clip != null){
if (_clip._queue != null){
while (_clip._queue.length > 0) {
_local2 = _clip._queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _clip._callbacks[_local2.callbackID];
};
delete _clip._callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
};
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
onError("NotConnected");
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_clip._nextcallbackID++;
};
};
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
public static function get childClip():Object{
return (_clip);
}
private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{
var _local3:Array;
var _local4:int;
var _local5:Array;
var _local6:Array;
var _local7:MovieClip;
var _local8:LocalConnection;
var _local9:String;
var _local10:ByteArray;
var _local11:ByteArray;
var _local12:uint;
var _local13:uint;
var _local14:Loader;
_local3 = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
_local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
_local6 = [0, 64, 0, 0, 0];
_local7 = new MovieClip();
_local8 = new LocalConnection();
_local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().getTime()));
_local8 = new LocalConnection();
_local7.lc = _local8;
_local7.click = _arg2;
_local8.client = _local7;
_local8.connect(_local9);
_local10 = new ByteArray();
_local11 = new ByteArray();
_local11.endian = Endian.LITTLE_ENDIAN;
_local11.writeShort(1);
_local11.writeUTFBytes(((_arg1 + " ") + _local9));
_local11.writeByte(0);
_local12 = ((_local3.length + _local11.length) + 4);
_local13 = (_local12 + 35);
_local10.endian = Endian.LITTLE_ENDIAN;
_local10.writeUTFBytes("FWS");
_local10.writeByte(8);
_local10.writeUnsignedInt(_local13);
for each (_local4 in _local5) {
_local10.writeByte(_local4);
};
_local10.writeUnsignedInt(_local12);
_local10.writeByte(136);
_local10.writeShort(_local11.length);
_local10.writeBytes(_local11);
for each (_local4 in _local3) {
_local10.writeByte(_local4);
};
for each (_local4 in _local6) {
_local10.writeByte(_local4);
};
_local14 = new Loader();
_local14.loadBytes(_local10);
_local7.addChild(_local14);
return (_local7);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{
var vars:Object;
var avm1Click:DisplayObject;
var s:String;
var i:Number;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = _arg1;
var burl = _arg2;
var btn = _arg3;
var onClick = _arg4;
vars = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
s = "?";
i = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://x.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (_arg1:String):void{
var _local2:Rectangle;
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(_arg1, onClick);
_local2 = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = _local2.x;
avm1Click.y = _local2.y;
avm1Click.scaleX = (0.01 * _local2.width);
avm1Click.scaleY = (0.01 * _local2.height);
};
err = function (_arg1:Object):void{
netup = false;
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
setURL(burl);
};
complete = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_listenChannel.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
};
return (_local2);
}
public static function getVersion():String{
return ("3.0");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
if (_clip.parent != null){
Sprite(_clip.parent).removeChild(_clip);
};
}
private static function onStatus(_arg1:StatusEvent):void{
switch (_arg1.level){
case "error":
_connected = false;
_listenChannel.connect(_listenChannelName);
break;
};
}
public static function get id():String{
return (_id);
}
private static function urlOptions(_arg1:Object):Object{
var _local2:Object;
var _local3:String;
var _local4:Array;
var _local5:Number;
var _local6:Array;
_local2 = {};
_local3 = _arg1.loaderInfo.parameters.mochiad_options;
if (_local3){
_local4 = _local3.split("&");
_local5 = 0;
while (_local5 < _local4.length) {
_local6 = _local4[_local5].split("=");
_local2[unescape(_local6[0])] = unescape(_local6[1]);
_local5++;
};
};
return (_local2);
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_arg1 != null){
if ((_arg1 is Sprite)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
private static function initComChannels():void{
if (!_connected){
_sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_clip.onReceive = function (_arg1:Object):void{
var cb:String;
var cblst:Object;
var method:*;
var methodName:String;
var obj:Object;
var pkg = _arg1;
cb = pkg.callbackID;
cblst = this.client._callbacks[cb];
if (!cblst){
return;
};
method = cblst.callbackMethod;
methodName = "";
obj = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString()));
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
trace(("Error invoking method on object: " + error.toString()));
};
};
};
delete this.client._callbacks[cb];
};
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
trace("connected!");
_connecting = false;
_connected = true;
while (_clip._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function listen():void{
_listenChannel = new LocalConnection();
_listenChannel.client = _clip;
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
_listenChannel.allowDomain("*", "localhost");
_listenChannel.allowInsecureDomain("*", "localhost");
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var clipname:String;
var f:Function;
var req:URLRequest;
var vars:URLVariables;
var id = _arg1;
var clip = _arg2;
clipname = ("_mochiservices_com_" + id);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(clip).servicesURL != undefined){
_servicesURL = urlOptions(clip).servicesURL;
};
MochiServices.allowDomains(_servicesURL);
_clip = createEmptyMovieClip(clip, clipname, 10336, false);
_loader = new Loader();
f = function (_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor((Math.random() * 99999))));
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
req = new URLRequest(_servicesURL);
vars = new URLVariables();
vars.listenLC = _listenChannelName;
vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options;
if (widget){
vars.widget = true;
};
req.data = vars;
listen();
_loader.load(req);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_clip._nextcallbackID = 0;
_clip._callbacks = {};
_timer = new Timer(10000, 1);
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
return (_clip);
}
public static function get clip():Object{
return (_container);
}
public static function bringToTop(_arg1:Event):void{
var e = _arg1;
if (MochiServices.clip != null){
if (MochiServices.childClip != null){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
};
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
if ((clip is DisplayObject)){
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
trace(_arg1);
};
};
};
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{
var mc:MovieClip;
var parent = _arg1;
var name = _arg2;
var depth = _arg3;
var doAdd = _arg4;
mc = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
try {
parent[name] = mc;
} catch(e:Error) {
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
mc["_name"] = name;
return (mc);
}
public static function connectWait(_arg1:TimerEvent):void{
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load. (timeout)");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
}
}
}//package mochi.as3
Section 6
//AdamWing (AdamWing)
package {
import flash.display.*;
public dynamic class AdamWing extends MovieClip {
}
}//package
Section 7
//apple (apple)
package {
import flash.events.*;
public class apple extends Enemy {
private var shotticks2:int;// = 20
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 10000
private var streamCounter:int;// = 50
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 5000
private var shotticks1b:int;// = 200
private var shotticks2b:int;// = 20
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 100
private var shotticks4b:int;// = 200
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;
private var ymod:Number;
private var shotticks3:int;// = 130
private var myPath:Array;
private var shotticks1:int;// = 200
private var shotticks4:int;// = 200
public function apple(_arg1, _arg2, _arg3){
var _local4:Array;
earnedPoints = 10000;
follow = true;
streamCounter = 50;
hp = 5000;
shotticksb = 300;
shotticks = 300;
shotticks1b = 200;
shotticks1 = 200;
shotticks2b = 20;
shotticks2 = 20;
shotticks3b = 100;
shotticks3 = 130;
shotticks4b = 200;
shotticks4 = 200;
super(_arg1, _arg2, _arg3);
_local4 = [40, 0, 0, 0, 0, 100, 0, 0, 0, 0, 10000000, 0, 0, 0, 0];
x = _arg1;
y = _arg2;
myPath = _local4;
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 1;
shotticks = 600;
shotticksb = 600;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
}
private function EnemyShoot3(){
}
private function EnemyShoot4(){
}
private function EnemyShoot5(){
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
hp = (hp - _arg1);
if (hp < 1){
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndGame();
};
}
}
}//package
Section 8
//Avatar (Avatar)
package {
import flash.display.*;
import flash.events.*;
public class Avatar extends MovieClip {
private var shot1Cooldown:Number;// = 0
private var mainSpeed:int;// = 0
private var shot2Cooldown:Number;// = 0
private var shot1CooldownMax:Number;// = 6
private var Cooldown1Mod:int;// = 0
private var mainMaxSpeed:int;// = 7
private var wingArray:Array;
private var mainMaxYSpeed:int;// = 7
private var avatarType:int;// = 1
private var Damage1Mod:int;// = 0
private var shot2CooldownMax:Number;// = 100
private var mainYSpeed:int;// = 0
private var Cooldown2Mod:int;// = 0
private var Damage2Mod:int;// = 0
private var myParent:Object;
public var core:PlayerCore;
private var hitStun:int;// = 0
public function Avatar(_arg1){
var _local2:*;
var _local3:*;
Damage1Mod = 0;
Cooldown1Mod = 0;
Damage2Mod = 0;
Cooldown2Mod = 0;
avatarType = 1;
mainMaxSpeed = 7;
mainSpeed = 0;
mainMaxYSpeed = 7;
mainYSpeed = 0;
shot1Cooldown = 0;
shot2Cooldown = 0;
shot1CooldownMax = 6;
shot2CooldownMax = 100;
hitStun = 0;
super();
avatarType = _arg1;
addEventListener(Event.ADDED, beginClass);
_local2 = [6, 11, 10, 22, 14, 11];
_local3 = [120, 160, 160, 120, 160, 160];
shot1CooldownMax = _local2[(avatarType - 1)];
shot2CooldownMax = _local3[(avatarType - 1)];
}
public function Shot1Fire():void{
myParent.MakePlayerShot(avatarType, Damage1Mod);
}
public function ReturnCharge():int{
var _local1:*;
_local1 = (shot2CooldownMax - shot2Cooldown);
return (_local1);
}
private function beginClass(_arg1:Event):void{
var _local2:PlayerShell;
var _local3:*;
var _local4:*;
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
_local2 = new PlayerShell();
addChild(_local2);
core = new PlayerCore();
addChild(core);
switch (avatarType){
case 1:
_local3 = new AdamWing();
_local4 = new AdamWing();
_local4.scaleX = -1;
addChild(_local3);
addChild(_local4);
wingArray = [_local3, _local4];
break;
case 2:
_local3 = new EveWing();
_local4 = new EveWing();
_local4.scaleX = -1;
addChild(_local3);
addChild(_local4);
wingArray = [_local3, _local4];
break;
case 3:
_local3 = new CainWing();
_local4 = new CainWing();
_local4.scaleX = -1;
addChild(_local3);
addChild(_local4);
wingArray = [_local3, _local4];
break;
case 4:
_local3 = new LilithWing();
_local4 = new LilithWing();
_local4.scaleX = -1;
addChild(_local3);
addChild(_local4);
wingArray = [_local3, _local4];
break;
case 5:
_local3 = new JudasWing();
_local4 = new JudasWing();
_local4.scaleX = -1;
addChild(_local3);
addChild(_local4);
wingArray = [_local3, _local4];
break;
case 6:
_local3 = new SatanWing();
_local4 = new SatanWing();
_local4.scaleX = -1;
addChild(_local3);
addChild(_local4);
wingArray = [_local3, _local4];
break;
};
}
public function movePlayer():void{
if (shot2Cooldown < 1){
shot2Cooldown = 0;
};
if (myParent.leftKeyDown){
MoveLeft();
} else {
if (mainSpeed < 0){
mainSpeed = (mainSpeed + 0.25);
};
};
if (myParent.rightKeyDown){
MoveRight();
} else {
if (mainSpeed > 0){
mainSpeed = (mainSpeed - 0.25);
};
};
if (myParent.upKeyDown){
MoveUp();
} else {
if (mainYSpeed < 0){
mainYSpeed = (mainYSpeed + 0.25);
};
};
if (myParent.downKeyDown){
MoveDown();
} else {
if (mainYSpeed > 0){
mainYSpeed = (mainYSpeed - 0.25);
};
};
if (myParent.shoot1KeyDown){
if (shot1Cooldown < 1){
shot1Cooldown = shot1CooldownMax;
Shot1Fire();
};
};
if (myParent.shoot2KeyDown){
if (shot2Cooldown < 1){
shot2Cooldown = shot2CooldownMax;
Shot2Fire();
shot1Cooldown = 40;
};
};
if (((((!(myParent.shoot1KeyDown)) && (!(myParent.shoot2KeyDown)))) && ((shot2Cooldown > 0)))){
shot2Cooldown--;
shot2Cooldown = (shot2Cooldown - (Cooldown2Mod / 4));
} else {
shot2Cooldown = (shot2Cooldown - 0.025);
shot2Cooldown = (shot2Cooldown - (Cooldown2Mod / 16));
};
shot1Cooldown--;
shot1Cooldown = (shot1Cooldown - (Cooldown1Mod / 4));
x = (x + mainSpeed);
y = (y + mainYSpeed);
wingArray[1].x = ((core.x + 8) + (mainSpeed / 2));
wingArray[0].x = ((core.x - 8) + (mainSpeed / 2));
wingArray[1].y = (core.y + mainYSpeed);
wingArray[0].y = (core.y + mainYSpeed);
if (x < 5){
x = 5;
mainSpeed = 0;
};
if (x > 445){
x = 445;
mainSpeed = 0;
};
if (y < 5){
y = 5;
mainYSpeed = 0;
};
if (y > 595){
y = 595;
mainYSpeed = 0;
};
}
public function MoveUp():void{
mainYSpeed--;
if (Math.abs(mainYSpeed) > mainMaxYSpeed){
mainYSpeed = (mainMaxYSpeed * -1);
};
}
public function DeadZipUp():void{
mainYSpeed = -10;
shot1Cooldown = 0;
shot2Cooldown = 0;
}
public function MoveDown():void{
mainYSpeed++;
if (Math.abs(mainYSpeed) > mainMaxYSpeed){
mainYSpeed = mainMaxYSpeed;
};
}
public function MoveLeft():void{
mainSpeed--;
if (Math.abs(mainSpeed) > mainMaxSpeed){
mainSpeed = (mainMaxSpeed * -1);
};
}
public function DoUpgrades(_arg1:Array){
Damage1Mod = _arg1[1];
Cooldown1Mod = _arg1[0];
Damage2Mod = _arg1[3];
Cooldown2Mod = _arg1[2];
}
public function Shot2Fire():void{
myParent.MakePlayerShot2(avatarType, Damage2Mod);
}
public function MoveRight():void{
mainSpeed++;
if (Math.abs(mainSpeed) > mainMaxSpeed){
mainSpeed = mainMaxSpeed;
};
}
}
}//package
Section 9
//Backwash (Backwash)
package {
import flash.display.*;
import flash.events.*;
public class Backwash extends MovieClip {
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function Backwash(){
dir = 0;
speed = 1;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
public function SetMe(_arg1, _arg2){
rotation = _arg2;
speed = _arg1;
}
protected function MoveEffectInside(){
x = (x - (Math.cos((((rotation + 90) * Math.PI) / 180)) * speed));
y = (y - (Math.sin((((rotation + 90) * Math.PI) / 180)) * speed));
if ((((((((y < -20)) || ((y > 620)))) || ((x < -20)))) || ((x > 470)))){
myParent.removeChild(this);
};
}
public function MoveEffect(){
MoveEffectInside();
}
}
}//package
Section 10
//BGInchWorm (BGInchWorm)
package {
import flash.events.*;
public class BGInchWorm extends Backwash {
private var counter:int;// = 10
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function BGInchWorm(){
dir = 0;
speed = 1;
counter = 10;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = ((Math.random() * 10) - 5);
}
override protected function MoveEffectInside(){
y = (y + Math.floor((Math.random() * 5)));
counter--;
if (counter < 1){
height = (height * ((Math.random() * 0.5) + 0.76));
counter = (Math.floor((Math.random() * 12)) + 4);
};
if (y > (600 + (height / 2))){
myParent.parent.MakeNewInchWorm();
myParent.removeChild(this);
};
}
}
}//package
Section 11
//CainWing (CainWing)
package {
import flash.display.*;
public dynamic class CainWing extends MovieClip {
}
}//package
Section 12
//ChargeBar (ChargeBar)
package {
import flash.display.*;
public dynamic class ChargeBar extends MovieClip {
}
}//package
Section 13
//DisplayMessage (DisplayMessage)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class DisplayMessage extends Backwash {
private var counter:int;// = 120
private var displayedTextField;
private var myTextFormat;
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
private var displayedText:String;
public function DisplayMessage(_arg1){
dir = 0;
speed = 1;
counter = 120;
displayedTextField = new TextField();
myTextFormat = new TextFormat();
super();
displayedText = _arg1;
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
displayedTextField = new TextField();
myParent = this.parent;
myTextFormat.size = 26;
myTextFormat.color = 0xFFFFFF;
myTextFormat.align = TextFormatAlign.CENTER;
myTextFormat.font = "Alfabetix";
addChild(displayedTextField);
displayedTextField.width = 450;
displayedTextField.x = -225;
displayedTextField.alpha = 0.9;
displayedTextField.selectable = false;
displayedTextField.text = displayedText;
displayedTextField.blendMode = BlendMode.LAYER;
displayedTextField.setTextFormat(myTextFormat);
displayedTextField.embedFonts = true;
displayedTextField.defaultTextFormat = myTextFormat;
}
override protected function MoveEffectInside(){
counter--;
displayedTextField.alpha = (displayedTextField.alpha - 0.01);
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 14
//DisplayMessageBig (DisplayMessageBig)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class DisplayMessageBig extends Backwash {
private var counter:int;// = 80
private var displayedTextField;
private var myTextFormat;
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
private var displayedText:String;
public function DisplayMessageBig(_arg1){
dir = 0;
speed = 1;
counter = 80;
displayedTextField = new TextField();
myTextFormat = new TextFormat();
super();
displayedText = _arg1;
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
displayedTextField = new TextField();
myParent = this.parent;
myTextFormat.size = 48;
myTextFormat.color = 0xFFFFFF;
myTextFormat.align = TextFormatAlign.CENTER;
myTextFormat.font = "Alfabetix";
addChild(displayedTextField);
displayedTextField.width = 450;
displayedTextField.x = -225;
displayedTextField.alpha = 0.9;
displayedTextField.selectable = false;
displayedTextField.text = displayedText;
displayedTextField.blendMode = BlendMode.LAYER;
displayedTextField.setTextFormat(myTextFormat);
displayedTextField.embedFonts = true;
displayedTextField.defaultTextFormat = myTextFormat;
}
override protected function MoveEffectInside(){
counter--;
displayedTextField.alpha = (displayedTextField.alpha - 0.015);
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 15
//Dominion (Dominion)
package {
import flash.events.*;
public class Dominion extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;
private var shotticks:int;
private var isAlive:Boolean;
private var ymod:Number;
private var myPath:Array;
public function Dominion(_arg1, _arg2, _arg3){
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 10;
shotticks = 10;
shotticksb = 10;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function EnemyShoot(){
myParent.parent.MakeEnemyShot(((x + (Math.random() * 10)) - 5), ((y + (Math.random() * 10)) - 5), ((rotation + (Math.random() * 10)) - 5), 3, false);
}
}
}//package
Section 16
//Enemy (Enemy)
package {
import flash.display.*;
import flash.events.*;
public class Enemy extends MovieClip {
private var xmodb:Number;
public var Path99JHVH:Array;
private var shotticksb:int;
private var moveStep:int;// = 0
private var earnedPoints:int;// = 100
public var Path8LeftPauseDashDown:Array;
private var ticks:int;
public var Path11StraightDown:Array;
private var ybase:Number;
public var path98MichaelLeftAndRight:Array;
public var path1HoldStill:Array;
public var Path7RightPauseDashDown:Array;
private var points:int;
public var Path103Zech:Array;
public var Path9DownLoopsRight:Array;
private var hp:int;
public var pathArray;
private var xbase:Number;
private var bulletHolder:Object;
public var Path6DownPauseDashDown:Array;
private var myParent:Object;
public var path3LeftAndRight:Array;
public var Path5DownPauseUp:Array;
private var xmod:Number;
private var ymodb:Number;
public var Path10DownLoopsLeft:Array;
private var follow:Boolean;
private var shotticks:int;
public var Path100MichaelSword:Array;
private var isAlive:Boolean;// = true
public var path2UpAndDown:Array;
public var path3aRightAndLeft:Array;
public var Path101StraightFastDown:Array;
private var ymod:Number;
public var Path102Random:Array;
public var path4Circles:Array;
private var myPath:Array;
public function Enemy(_arg1, _arg2, _arg3){
earnedPoints = 100;
moveStep = 0;
isAlive = true;
path1HoldStill = [10, 0, 0, 0, 0, 10000, 0, 0, 0, 0, 10000, 0, 0, 0, 0];
path2UpAndDown = [10, 0, 0, 0, 0, 600, 0, 1, 0, 0, 600, 0, -1, 0, 0, 600, 0, 1, 0, 0, 600, 0, -1, 0, 0, 600, 0, 1, 0, 0, 600, 0, -1, 0, 0, 600, 0, 1, 0, 0, 600, 0, -1, 0, 0, 10000, 0, 0, 0, 0];
path3LeftAndRight = [10, 0, 0, 0, 0, 450, 1, 0, 0, 0, 450, -1, 0, 0, 0, 450, 1, 0, 0, 0, 450, -1, 0, 0, 0, 450, 1, 0, 0, 0, 450, -1, 0, 0, 0, 450, 1, 0, 0, 0, 450, -1, 0, 0, 0, 10000, 0, 0, 0, 0];
path3aRightAndLeft = [10, 0, 0, 0, 0, 450, -1, 0, 0, 0, 450, 1, 0, 0, 0, 450, -1, 0, 0, 0, 450, 1, 0, 0, 0, 450, -1, 0, 0, 0, 450, 1, 0, 0, 0, 450, -1, 0, 0, 0, 450, 1, 0, 0, 0, 10000, 0, 0, 0, 0];
path4Circles = [10, 0, 0, 0, 0, 50, 0, 0, 0.03, -0.03, 50, 0, 0, 0.03, 0.03, 50, 0, 0, -0.03, 0.03, 50, 0, 0, -0.03, -0.03, 50, 0, 0, 0.03, -0.03, 50, 0, 0, 0.03, 0.03, 50, 0, 0, -0.03, 0.03, 50, 0, 0, -0.03, -0.03, 50, 0, 0, 0.03, -0.03, 50, 0, 0, 0.03, 0.03, 50, 0, 0, -0.03, 0.03, 50, 0, 0, -0.03, -0.03, 50, 0, 0, 0.03, -0.03, 50, 0, 0, 0.03, 0.03, 50, 0, 0, -0.03, 0.03, 50, 0, 0, -0.03, -0.03, 50, 0, 0, 0.03, -0.03, 50, 0, 0, 0.03, 0.03, 50, 0, 0, -0.03, 0.03, 50, 0, 0, -0.03, -0.03, 50, 0, 0, 0.03, -0.03, 50, 0, 0, 0.03, 0.03, 50, 0, 0, -0.03, 0.03, 50, 0, 0, -0.03, -0.03, 10000, 0, 0, 0, 0];
Path5DownPauseUp = [10, 0, 0, 0, 0, 400, 0, 1, 0, 0, 100, 0, 0, 0, 0, 400, 0, -1, 0, 0];
Path6DownPauseDashDown = [10, 0, 0, 0, 0, 400, 0, 1, 0, 0, 100, 0, 0, 0, 0, 400, 0, 0, 0, 0.05];
Path7RightPauseDashDown = [10, 0, 0, 0, 0, 200, 2, 0, 0, 0, 100, 0, 0, 0, 0, 400, 0, 0, 0, 0.05];
Path8LeftPauseDashDown = [10, 0, 0, 0, 0, 200, -2, 0, 0, 0, 100, 0, 0, 0, 0, 400, 0, 0, 0, 0.05];
Path9DownLoopsRight = [10, 0, 0, 0, 0, 100, 0, 2, 0, 0, 50, 0, 0, 0.05, 0.05, 50, 0, 0, 0.05, -0.05, 50, 0, -2, 0, 0, 50, 0, 0, 0.05, -0.05, 50, 0, 0, 0.05, 0.05, 100, 0, 2, 0, 0, 100, 0, 2, 0, 0.05];
Path10DownLoopsLeft = [10, 0, 0, 0, 0, 100, 0, 2, 0, 0, 50, 0, 0, -0.05, 0.05, 50, 0, 0, -0.05, -0.05, 50, 0, -2, 0, 0, 50, 0, 0, -0.05, -0.05, 50, 0, 0, -0.05, 0.05, 100, 0, 2, 0, 0, 100, 0, 2, 0, 0.05];
Path11StraightDown = [10, 0, 0, 0, 0, 800, 0, 1, 0, 0];
path98MichaelLeftAndRight = [10, 0, 0, 0, 0, 100, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 200, 2, 0, 0, 0, 200, -2, 0, 0, 0, 10000, 0, 0, 0, 0];
Path99JHVH = [10, 0, 0, 0, 0, 1200, 0, 0.25, 0, 0, 400, 0, -1, 0, 0, 1400, 0, 0.25, 0, 0, 400, 0, -1, 0, 0, 1900, 0, 0.25, 0, 0, 400, 0, -1, 0, 0, 2400, 0, 0.25, 0, 0, 400, 0, -1, 0, 0, 10000, 0, 0, 0, 0];
Path100MichaelSword = [10, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 250, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 250, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 250, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 250, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 250, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 250, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 250, 0, 0, 0, 0, 150, -1, 1.5, 0, 0, 150, 1, 1.5, 0, 0, 150, 1, -1.5, 0, 0, 150, -1, -1.5, 0, 0, 10000, 0, 0, 0, 0];
Path101StraightFastDown = [10, 0, 0, 0, 0, 800, 0, 3, 0, 0];
Path102Random = [10, 0, 0, 0, 0, 200, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0, (Math.floor((Math.random() * 5)) - 2), (Math.floor((Math.random() * 5)) - 2), 0, 0];
Path103Zech = [10, 0, 0, 0, 0, 70, 0, 0, -0.03, 0.03, 70, 0, 0, 0.03, 0.03, 70, 0, 0, 0.03, 0.03, 70, 0, 0, -0.03, 0.03, 75, 0, -4, 0, 0, 70, 0, 0, 0.03, 0.03, 70, 0, 0, -0.03, 0.03, 70, 0, 0, -0.03, 0.03, 70, 0, 0, 0.03, 0.03, 75, 0, -4, 0, 0, 70, 0, 0, -0.03, 0.03, 70, 0, 0, 0.03, 0.03, 70, 0, 0, 0.03, 0.03, 70, 0, 0, -0.03, 0.03, 75, 0, -4, 0, 0, 70, 0, 0, 0.03, 0.03, 70, 0, 0, -0.03, 0.03, 70, 0, 0, -0.03, 0.03, 70, 0, 0, 0.03, 0.03, 75, 0, -4, 0, 0, 70, 0, 0, -0.03, 0.03, 70, 0, 0, 0.03, 0.03, 70, 0, 0, 0.03, 0.03, 70, 0, 0, -0.03, 0.03, 75, 0, -4, 0, 0, 70, 0, 0, 0.03, 0.03, 70, 0, 0, -0.03, 0.03, 70, 0, 0, -0.03, 0.03, 70, 0, 0, 0.03, 0.03, 75, 0, -4, 0, 0, 10000, 0, 0, 0, 0];
pathArray = [path1HoldStill, path2UpAndDown, path3LeftAndRight, path3aRightAndLeft, path4Circles, Path5DownPauseUp, Path6DownPauseDashDown, Path7RightPauseDashDown, Path8LeftPauseDashDown, Path9DownLoopsRight, Path10DownLoopsLeft, Path11StraightDown, path98MichaelLeftAndRight, Path99JHVH, Path100MichaelSword, Path101StraightFastDown, Path102Random, Path103Zech];
super();
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
public function CheckShot(_arg1){
hp = (hp - _arg1);
checkShotDead(_arg1);
}
public function MoveEnemy(){
if (isAlive == false){
if (shotticks < 0){
myParent.removeChild(this);
};
};
ticks--;
shotticks--;
xmod = (xmod + xmodb);
ymod = (ymod + ymodb);
x = (x + (xbase + xmod));
y = (y + (ybase + ymod));
RotateEnemy();
if (ticks < 0){
getNextMovement();
};
CheckShoot();
}
protected function CheckShoot(){
if (shotticks < 0){
if (isAlive == false){
myParent.removeChild(this);
};
shotticks = shotticksb;
EnemyShoot();
};
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 10;
shotticks = 40;
shotticksb = 40;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
public function SetFollow(_arg1){
follow = _arg1;
}
protected function RotateEnemy(){
var _local1:*;
var _local2:Number;
var _local3:Number;
if (follow == true){
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
rotation = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) + 90);
};
}
public function SetHP(_arg1){
hp = _arg1;
}
protected function getNextMovement(){
if ((moveStep * 5) < myPath.length){
ticks = myPath[(moveStep * 5)];
xbase = myPath[((moveStep * 5) + 1)];
ybase = myPath[((moveStep * 5) + 2)];
xmodb = myPath[((moveStep * 5) + 3)];
ymodb = myPath[((moveStep * 5) + 4)];
xmod = 0;
ymod = 0;
moveStep++;
} else {
myParent.removeChild(this);
};
}
public function SetShotSpeed(_arg1, _arg2){
shotticks = _arg1;
shotticksb = _arg2;
}
public function RemoveMe(){
hp = 0;
checkShotDead(0);
}
protected function EnemyShoot(){
myParent.parent.MakeEnemyShot(x, y, rotation, 1, false);
}
protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
if (hp < 1){
myParent.parent.parent.soundManager.PlaySound("enemydie");
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.MakeNewEnemyDieSplash(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
x = 225;
y = -1000;
isAlive = false;
shotticks = 10;
};
}
public function setPoints(_arg1){
earnedPoints = _arg1;
}
}
}//package
Section 17
//EnemyDeath (EnemyDeath)
package {
import flash.events.*;
public class EnemyDeath extends Backwash {
private var counter:int;// = 10
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function EnemyDeath(){
dir = 0;
speed = 1;
counter = 10;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = (Math.random() * 360);
}
override protected function MoveEffectInside(){
gotoAndStop((10 - counter));
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 18
//enemydie1Sound (enemydie1Sound)
package {
import flash.media.*;
public dynamic class enemydie1Sound extends Sound {
}
}//package
Section 19
//enemydie2Sound (enemydie2Sound)
package {
import flash.media.*;
public dynamic class enemydie2Sound extends Sound {
}
}//package
Section 20
//enemydie3Sound (enemydie3Sound)
package {
import flash.media.*;
public dynamic class enemydie3Sound extends Sound {
}
}//package
Section 21
//enemydie4Sound (enemydie4Sound)
package {
import flash.media.*;
public dynamic class enemydie4Sound extends Sound {
}
}//package
Section 22
//EnemyDieSplash (EnemyDieSplash)
package {
import flash.events.*;
public class EnemyDieSplash extends Backwash {
private var counter:int;// = 10
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function EnemyDieSplash(){
dir = 0;
speed = 1;
counter = 10;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = ((Math.random() * 10) - 5);
alpha = 0.3;
}
override protected function MoveEffectInside(){
rotation = (rotation + (Math.random() * 10));
alpha = (alpha * 0.9);
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 23
//enemyhitSound (enemyhitSound)
package {
import flash.media.*;
public dynamic class enemyhitSound extends Sound {
}
}//package
Section 24
//EnemyLaser (EnemyLaser)
package {
import flash.events.*;
public class EnemyLaser extends EnemyShot {
private var counter:int;// = 30
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function EnemyLaser(){
dir = 0;
speed = 1;
counter = 30;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
gotoAndStop((30 - counter));
counter--;
if ((((((((((counter < 1)) || ((y < -20)))) || ((y > 620)))) || ((x < -20)))) || ((x > 470)))){
myParent.removeChild(this);
};
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
}
}//package
Section 25
//enemylaserSound (enemylaserSound)
package {
import flash.media.*;
public dynamic class enemylaserSound extends Sound {
}
}//package
Section 26
//EnemyShot (EnemyShot)
package {
import flash.display.*;
import flash.events.*;
public class EnemyShot extends MovieClip {
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function EnemyShot(){
dir = 0;
speed = 1;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
protected function MoveShotInside(){
x = (x - (Math.cos((((rotation - 90) * Math.PI) / 180)) * speed));
y = (y - (Math.sin((((rotation - 90) * Math.PI) / 180)) * speed));
if ((((((((y < -20)) || ((y > 620)))) || ((x < -20)))) || ((x > 470)))){
myParent.removeChild(this);
};
}
public function MoveShot(){
MoveShotInside();
}
public function SetMe(_arg1, _arg2){
speed = _arg1;
rotation = _arg2;
}
}
}//package
Section 27
//enemyshot1Sound (enemyshot1Sound)
package {
import flash.media.*;
public dynamic class enemyshot1Sound extends Sound {
}
}//package
Section 28
//enemyshot2Sound (enemyshot2Sound)
package {
import flash.media.*;
public dynamic class enemyshot2Sound extends Sound {
}
}//package
Section 29
//enemyshot3Sound (enemyshot3Sound)
package {
import flash.media.*;
public dynamic class enemyshot3Sound extends Sound {
}
}//package
Section 30
//enemyshot4Sound (enemyshot4Sound)
package {
import flash.media.*;
public dynamic class enemyshot4Sound extends Sound {
}
}//package
Section 31
//enemyshot5Sound (enemyshot5Sound)
package {
import flash.media.*;
public dynamic class enemyshot5Sound extends Sound {
}
}//package
Section 32
//enemyshot6Sound (enemyshot6Sound)
package {
import flash.media.*;
public dynamic class enemyshot6Sound extends Sound {
}
}//package
Section 33
//EnemyShotSplash (EnemyShotSplash)
package {
import flash.events.*;
public class EnemyShotSplash extends Backwash {
private var counter:int;// = 6
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function EnemyShotSplash(){
dir = 0;
speed = 1;
counter = 6;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
override protected function MoveEffectInside(){
gotoAndStop((6 - counter));
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 34
//EnemySpawnSplash (EnemySpawnSplash)
package {
import flash.events.*;
public class EnemySpawnSplash extends Backwash {
private var counter:int;// = 10
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function EnemySpawnSplash(){
dir = 0;
speed = 1;
counter = 10;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = ((Math.random() * 10) - 5);
alpha = 0.3;
}
override protected function MoveEffectInside(){
rotation = (rotation + (Math.random() * 10));
alpha = (alpha * 0.9);
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 35
//EnemySplittingShot (EnemySplittingShot)
package {
import flash.events.*;
public class EnemySplittingShot extends EnemyShot {
private var timer:int;// = 80
private var speed:int;// = 4
private var myParent:Object;
private var dir:Number;// = 0
public function EnemySplittingShot(){
dir = 0;
speed = 4;
timer = 80;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
x = (x - (Math.cos((((rotation - 90) * Math.PI) / 180)) * speed));
y = (y - (Math.sin((((rotation - 90) * Math.PI) / 180)) * speed));
if ((((((((y < -20)) || ((y > 620)))) || ((x < -20)))) || ((x > 470)))){
myParent.removeChild(this);
};
timer--;
if (timer < 1){
myParent.parent.MakeEnemyShot(x, y, rotation, 5, true);
timer = 100;
x = 1000;
y = 1000;
};
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
}
}//package
Section 36
//EnemyWall (EnemyWall)
package {
import flash.events.*;
public class EnemyWall extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var earnedPoints:int;// = 300
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var rotationAmount:Number;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var shotticks:int;
private var isAlive:Boolean;// = true
private var ymod:Number;
private var myPath:Array;
public function EnemyWall(_arg1, _arg2, _arg3){
earnedPoints = 300;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
rotationAmount = (_arg3 / 12);
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 100;
shotticks = 40;
shotticksb = 40;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
rotation = (rotation + rotationAmount);
}
override protected function EnemyShoot(){
}
}
}//package
Section 37
//EveWing (EveWing)
package {
import flash.display.*;
public dynamic class EveWing extends MovieClip {
}
}//package
Section 38
//EXP (EXP)
package {
import flash.events.*;
public class EXP extends Backwash {
private var counter:int;// = 400
private var myParent:Object;
public function EXP(){
counter = 400;
super();
addEventListener(Event.ADDED, beginClass);
}
public function SetCounter(){
counter = 1;
x = 1000;
y = 1000;
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = (Math.random() * 360);
gotoAndPlay((Math.floor((Math.random() * 25)) + 1));
}
override protected function MoveEffectInside(){
y = (y + 2);
counter--;
alpha = (alpha - 0.001);
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 39
//EXPPickup (EXPPickup)
package {
import flash.events.*;
public class EXPPickup extends Backwash {
private var counter:int;// = 40
private var myParent:Object;
public function EXPPickup(){
counter = 40;
super();
addEventListener(Event.ADDED, beginClass);
}
public function SetCounter(){
counter = 1;
x = 1000;
y = 1000;
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = (Math.random() * 360);
}
override protected function MoveEffectInside(){
counter--;
alpha = (alpha - 0.04);
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 40
//FireSwirl (FireSwirl)
package {
import flash.events.*;
public class FireSwirl extends PlayerShot {
private var counter:int;// = 60
private var myParent:Object;
public function FireSwirl(){
counter = 60;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
rotation = (rotation + 10);
scaleX = (scaleX + ((60 - counter) * 0.001));
scaleY = scaleX;
counter--;
if (counter < 0){
myParent.removeChild(this);
};
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
isRemovable = false;
shotType = "bomb";
scaleX = 0.2;
scaleY = 0.2;
}
public function setCounter(_arg1){
counter = _arg1;
}
override protected function TestRemoveFunction(){
}
}
}//package
Section 41
//Gabriel (Gabriel)
package {
import flash.events.*;
public class Gabriel extends Enemy {
private var shotticks2:int;// = 150
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 3000
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 300
private var shotticks1b:int;// = 400
private var shotticks2b:int;// = 150
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 40
private var shotticks4b:int;// = 300
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;// = true
private var ymod:Number;
private var shotticks3:int;// = 40
private var myPath:Array;
private var shotticks1:int;// = 1
private var shotticks4:int;// = 300
public function Gabriel(_arg1, _arg2, _arg3){
earnedPoints = 3000;
follow = true;
hp = 300;
shotticksb = 300;
shotticks = 300;
shotticks1b = 400;
shotticks1 = 1;
shotticks2b = 150;
shotticks2 = 150;
shotticks3b = 40;
shotticks3 = 40;
shotticks4b = 300;
shotticks4 = 300;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 300;
shotticks = 600;
shotticksb = 600;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
var _local1:*;
var _local2:Number;
var _local3:Number;
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
rotation = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) + 90);
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
var _local1:int;
var _local2:Number;
var _local3:Number;
_local1 = 0;
while (_local1 < 4) {
_local2 = (x - (Math.cos(((((_local1 * 45) + 202.5) * Math.PI) / 180)) * 100));
_local3 = (y - (Math.sin(((((_local1 * 45) + 202.5) * Math.PI) / 180)) * 100));
myParent.parent.MakeEnemy(2, _local2, _local3, 0);
_local1++;
};
}
private function EnemyShoot3(){
}
private function EnemyShoot4(){
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
myParent.parent.parent.soundManager.PlaySound("enemyshot");
_local1 = 0;
while (_local1 < 4) {
myParent.parent.MakeEnemyShot(x, y, ((rotation + (_local1 * 5)) - 10), 1, true);
_local1++;
};
_local2 = 0;
while (_local2 < 4) {
_local4 = (x - (Math.cos(((((_local2 * 5) + rotation) * Math.PI) / 180)) * 20));
_local5 = (y - (Math.sin(((((_local2 * 5) + rotation) * Math.PI) / 180)) * 20));
myParent.parent.MakeEnemyShot(_local4, _local5, ((rotation + (_local2 * 5)) - 10), 1, true);
_local2++;
};
_local3 = 0;
while (_local3 < 4) {
_local6 = (x + (Math.cos(((((_local3 * 5) + rotation) * Math.PI) / 180)) * 20));
_local7 = (y + (Math.sin(((((_local3 * 5) + rotation) * Math.PI) / 180)) * 20));
myParent.parent.MakeEnemyShot(_local6, _local7, ((rotation + (_local3 * 5)) - 10), 1, true);
_local3++;
};
}
private function EnemyShoot5(){
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
myParent.removeChild(this);
myParent.parent.EndLevel();
};
}
}
}//package
Section 42
//GameLoop (GameLoop)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
public class GameLoop extends MovieClip {
public var EXPHolder:Sprite;
public var shoot2KeyDown:Boolean;
public var levelSelected:int;
public var EXPTextField:TextField;
public var myTextFormat:TextFormat;
public var bgHolder:Sprite;
public var GameTimer:Timer;
private var shotTimer:int;// = 5
private var enemyHitSoundCounter:int;// = 5
public var gameStatus:String;// = "playing"
public var upKeyDown:Boolean;
private var deadBossX:int;// = 0
private var deadBossY:int;// = 0
public var score:int;// = 0
public var downKeyDown:Boolean;
public var EXPAmount:int;// = 0
private var deadBossCounter:int;// = 5
public var pauseKeyDown:Boolean;
public var chargebar:ChargeBar;
public var player:Avatar;
private var transitionCounter:int;// = 260
public var pauseToggle:Boolean;// = true
public var enemyShotHolder:Sprite;
private var livesCounter:LivesCounter;
public var shipSelected:int;
private var deadCounter:int;// = 80
private var lives:int;// = 3
private var myLevel:Array;
public var timeStep:int;// = 0
public var playerShotHolder:Sprite;
public var effectsHolder:Sprite;
public var shoot1KeyDown:Boolean;
public var enemyHolder:Sprite;
public var scoreTextField:TextField;
private var myParent:Object;
private var nextextralife:int;// = 0
public var leftKeyDown:Boolean;
public var upgradeArray:Array;
private var levelEnding:Boolean;// = false
public var pausescreen:PauseScreen;
public var rightKeyDown:Boolean;
private var gameOver:Boolean;// = false
public var timeElapsed:int;// = 0
public function GameLoop(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Array, _arg6:int){
nextextralife = 0;
deadBossX = 0;
deadBossY = 0;
deadBossCounter = 5;
shotTimer = 5;
enemyHitSoundCounter = 5;
deadCounter = 80;
transitionCounter = 260;
levelEnding = false;
gameOver = false;
lives = 3;
pauseToggle = true;
gameStatus = "playing";
timeElapsed = 0;
timeStep = 0;
score = 0;
EXPAmount = 0;
super();
player = new Avatar(_arg2);
shipSelected = _arg2;
levelSelected = _arg1;
score = _arg3;
lives = _arg6;
EXPAmount = _arg4;
upgradeArray = _arg5;
addEventListener(Event.ADDED, beginClass);
}
public function MakeNewEXP(_arg1, _arg2){
var _local3:EXP;
_local3 = new EXP();
_local3.x = (_arg1 + Math.floor(((Math.random() * 50) - 25)));
_local3.y = (_arg2 + Math.floor(((Math.random() * 50) - 25)));
_local3.rotation = Math.floor((Math.random() * 360));
EXPHolder.addChild(_local3);
}
public function MakeEnemy(_arg1, _arg2, _arg3, _arg4){
var _local5:int;
var _local6:Thorns;
var _local7:Enemy;
var _local8:Nephilim;
var _local9:Nephilim;
var _local10:Seraphim;
var _local11:Seraphim;
var _local12:Throne;
var _local13:Throne;
var _local14:Dominion;
var _local15:Dominion;
var _local16:Host;
var _local17:UnsavedSoul;
var _local18:EnemyWall;
var _local19:Principality;
var _local20:Gabriel;
var _local21:Michael;
var _local22:Sword;
var _local23:Uriel;
var _local24:Raphael;
var _local25:Remiel;
var _local26:Zachariel;
var _local27:Samael;
var _local28:JHVH;
var _local29:DisplayMessage;
var _local30:DisplayMessageBig;
var _local31:apple;
var _local32:int;
var _local33:EnemyWall;
_local5 = _arg2;
if (_local5 == 999){
_local5 = player.x;
};
switch (_arg1){
case 0:
_local32 = 0;
while (_local32 < 6) {
_local33 = new EnemyWall(_local5, _arg3, _arg4);
_local33.rotation = (_local32 * 60);
enemyHolder.addChild(_local33);
_local32++;
};
break;
case 1:
_local6 = new Thorns(_local5, _arg3, 0);
_local6.rotation = 180;
enemyHolder.addChild(_local6);
_local6.SetShotSpeed(100, 100000);
break;
case 2:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local7 = new Enemy(_local5, _arg3, _arg4);
enemyHolder.addChild(_local7);
_local7.SetShotSpeed(100, 100);
_local7.SetFollow(true);
break;
case 3:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local8 = new Nephilim(_local5, _arg3, _arg4);
enemyHolder.addChild(_local8);
_local8.SetShotSpeed(100, 100);
_local8.SetFollow(false);
_local8.SetHP(20);
_local8.setPoints(300);
break;
case 4:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local9 = new Nephilim(_local5, _arg3, _arg4);
enemyHolder.addChild(_local9);
_local9.SetShotSpeed(100, 100);
_local9.SetFollow(true);
_local9.SetHP(20);
_local9.setPoints(300);
break;
case 5:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local10 = new Seraphim(_local5, _arg3, _arg4);
enemyHolder.addChild(_local10);
_local10.SetFollow(false);
_local10.SetHP(25);
_local10.setPoints(400);
break;
case 6:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local11 = new Seraphim(_local5, _arg3, _arg4);
enemyHolder.addChild(_local11);
_local11.SetFollow(true);
_local11.SetHP(25);
_local11.setPoints(400);
break;
case 7:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local12 = new Throne(_local5, _arg3, _arg4);
enemyHolder.addChild(_local12);
_local12.SetFollow(false);
_local12.SetHP(30);
_local12.setPoints(600);
break;
case 8:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local13 = new Throne(_local5, _arg3, _arg4);
enemyHolder.addChild(_local13);
_local13.SetFollow(true);
_local13.SetHP(30);
_local13.setPoints(600);
break;
case 9:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local14 = new Dominion(_local5, _arg3, _arg4);
enemyHolder.addChild(_local14);
_local14.SetShotSpeed(12, 12);
_local14.SetFollow(false);
_local14.SetHP(40);
_local14.setPoints(700);
break;
case 10:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local15 = new Dominion(_local5, _arg3, _arg4);
enemyHolder.addChild(_local15);
_local15.SetShotSpeed(12, 12);
_local15.SetFollow(true);
_local15.SetHP(40);
_local15.setPoints(700);
break;
case 11:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local16 = new Host(_local5, _arg3, _arg4);
enemyHolder.addChild(_local16);
_local16.SetHP(10);
break;
case 12:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local17 = new UnsavedSoul(_local5, _arg3, _arg4);
enemyHolder.addChild(_local17);
_local17.SetHP(10);
break;
case 13:
_local18 = new EnemyWall(_local5, _arg3, 0);
_local18.rotation = _arg4;
enemyHolder.addChild(_local18);
_local18.SetHP(8);
break;
case 14:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local19 = new Principality(_local5, _arg3, _arg4);
enemyHolder.addChild(_local19);
_local19.SetShotSpeed(3, 3);
_local19.SetHP(40);
_local19.setPoints(800);
break;
case 90:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local20 = new Gabriel(_local5, _arg3, _arg4);
enemyHolder.addChild(_local20);
_local20.SetHP(500);
break;
case 91:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local21 = new Michael(_local5, _arg3, _arg4);
enemyHolder.addChild(_local21);
_local21.SetHP(500);
break;
case 92:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local22 = new Sword(_local5, _arg3, _arg4);
enemyHolder.addChild(_local22);
_local22.SetHP(100000);
break;
case 93:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local23 = new Uriel(_local5, _arg3, _arg4);
enemyHolder.addChild(_local23);
_local23.SetHP(900);
break;
case 94:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local24 = new Raphael(_local5, _arg3, _arg4);
enemyHolder.addChild(_local24);
_local24.SetHP(1200);
break;
case 95:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local25 = new Remiel(_local5, _arg3, _arg4);
enemyHolder.addChild(_local25);
_local25.SetHP(1400);
break;
case 96:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local26 = new Zachariel(_local5, _arg3, _arg4);
enemyHolder.addChild(_local26);
_local26.SetHP(1800);
break;
case 97:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local27 = new Samael(_local5, _arg3, _arg4);
enemyHolder.addChild(_local27);
_local27.SetHP(2200);
break;
case 99:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local28 = new JHVH(_local5, _arg3, _arg4);
enemyHolder.addChild(_local28);
_local28.SetHP(5000);
break;
case 100:
_local29 = new DisplayMessage(_arg4);
_local29.x = _local5;
_local29.y = _arg3;
effectsHolder.addChild(_local29);
break;
case 101:
_local30 = new DisplayMessageBig(_arg4);
_local30.x = _local5;
_local30.y = _arg3;
effectsHolder.addChild(_local30);
break;
case 102:
MakeNewPetalSplash(_local5, _arg3);
MakeNewEnemySpawnSplash(_local5, _arg3);
_local31 = new apple(_local5, _arg3, _arg4);
enemyHolder.addChild(_local31);
_local31.SetHP(1);
break;
};
}
public function MakeNewEnemyDeath(_arg1, _arg2){
var _local3:int;
var _local4:EnemyDeath;
if (effectsHolder.numChildren < 80){
_local3 = 0;
while (_local3 < 3) {
_local4 = new EnemyDeath();
_local4.x = _arg1;
_local4.y = _arg2;
effectsHolder.addChild(_local4);
_local3++;
};
};
}
public function MakePlayerShot(_arg1, _arg2){
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:PlayerShot;
var _local7:PlayerHomingShot;
var _local8:PlayerLaser2;
var _local9:int;
var _local10:PlayerShot;
var _local11:int;
var _local12:PlayerShot;
var _local13:int;
var _local14:PlayerSquiggleShot;
_local3 = 0;
_local4 = 0;
_local5 = 0;
switch (_arg1){
case 1:
myParent.soundManager.PlaySound("playershot");
_local6 = new PlayerShot();
_local3 = 8;
_local4 = (7 + _arg2);
_local5 = 0;
_local6.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local6);
_local6.x = player.x;
_local6.y = player.y;
_local6.gotoAndStop((_arg2 + 1));
break;
case 2:
myParent.soundManager.PlaySound("playershot");
_local9 = 0;
while (_local9 < 3) {
_local10 = new PlayerShot();
_local3 = 8;
_local4 = (3 + _arg2);
_local5 = (-15 + (_local9 * 15));
_local10.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local10);
_local10.x = player.x;
_local10.y = player.y;
_local10.gotoAndStop((_arg2 + 1));
_local9++;
};
break;
case 3:
_local7 = new PlayerHomingShot();
myParent.soundManager.PlaySound("playershot");
_local3 = 5;
_local4 = (4 + _arg2);
_local5 = 0;
_local7.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local7);
_local7.x = player.x;
_local7.y = player.y;
_local7.gotoAndStop((_arg2 + 1));
break;
case 4:
_local8 = new PlayerLaser2();
myParent.soundManager.PlaySound("playerlasershort");
_local3 = 8;
_local4 = (1 + _arg2);
_local5 = 0;
_local8.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local8);
_local8.width = (_local8.width * 0.1);
_local8.setCounter(10);
_local8.x = player.x;
_local8.y = player.y;
_local8.scaleX = (0.2 + ((_arg2 + 1) * 0.2));
break;
case 5:
myParent.soundManager.PlaySound("playershot");
_local11 = 0;
while (_local11 < 4) {
_local12 = new PlayerShot();
_local3 = 5;
_local4 = (4 + _arg2);
_local5 = (_local11 * 90);
_local12.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local12);
_local12.x = player.x;
_local12.y = player.y;
_local12.gotoAndStop((_arg2 + 1));
_local11++;
};
break;
case 6:
myParent.soundManager.PlaySound("playershot");
_local13 = 0;
while (_local13 < 3) {
_local14 = new PlayerSquiggleShot();
_local3 = 8;
_local4 = (3 + _arg2);
_local5 = (-10 + (_local13 * 10));
_local14.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local14);
_local14.height = (_local14.height * 2);
_local14.width = (_local14.width * 0.25);
_local14.x = player.x;
_local14.y = player.y;
_local14.gotoAndStop((_arg2 + 1));
_local13++;
};
break;
};
}
public function MakeEnemyShot(_arg1, _arg2, _arg3, _arg4, _arg5){
var _local6:int;
var _local7:EnemyShot;
var _local8:EnemyLaser;
var _local9:EnemyShot;
var _local10:EnemyShot;
var _local11:EnemyShot;
var _local12:int;
var _local13:EnemySplittingShot;
MakeNewEnemyShotSplash(_arg1, _arg2, _arg3);
_local6 = 0;
switch (_arg4){
case 1:
if (_arg5 == false){
PlayShotSound();
};
_local7 = new EnemyShot();
_local6 = 6;
_local7.SetMe(_local6, _arg3);
enemyShotHolder.addChild(_local7);
_local7.x = _arg1;
_local7.y = _arg2;
break;
case 2:
if (_arg5 == false){
myParent.soundManager.PlaySound("enemylaser");
};
_local8 = new EnemyLaser();
_local6 = 0;
_local8.SetMe(_local6, (_arg3 + 180));
enemyShotHolder.addChild(_local8);
_local8.x = _arg1;
_local8.y = _arg2;
break;
case 3:
_local9 = new EnemyShot();
if (_arg5 == false){
PlayShotSound();
};
_local6 = 10;
_local9.SetMe(_local6, _arg3);
enemyShotHolder.addChild(_local9);
_local9.x = _arg1;
_local9.y = _arg2;
break;
case 4:
_local10 = new EnemyShot();
if (_arg5 == false){
PlayShotSound();
};
_local6 = (Math.floor((Math.random() * 5)) + 5);
_local10.SetMe(_local6, _arg3);
enemyShotHolder.addChild(_local10);
_local10.x = _arg1;
_local10.y = _arg2;
break;
case 5:
_local12 = 0;
while (_local12 < 3) {
if (_arg5 == false){
PlayShotSound();
};
_local6 = 8;
_local13 = new EnemySplittingShot();
_local13.x = _arg1;
_local13.y = _arg2;
_local13.SetMe(_local6, ((_arg3 - 30) + (_local12 * 30)));
enemyShotHolder.addChild(_local13);
_local12++;
};
break;
case 6:
_local11 = new EnemyShot();
if (_arg5 == false){
PlayShotSound();
};
_local6 = 9;
_local11.SetMe(_local6, _arg3);
enemyShotHolder.addChild(_local11);
_local11.x = _arg1;
_local11.y = _arg2;
_local11.scaleX = 4;
_local11.scaleY = 4;
break;
};
}
private function MakeNewTransparencyScreen(){
var _local1:TransparencyScreen;
_local1 = new TransparencyScreen();
_local1.x = 225;
_local1.y = 300;
effectsHolder.addChild(_local1);
}
function beginClass(_arg1:Event){
var _local2:Level;
var _local3:*;
var _local4:int;
gotoAndStop(levelSelected);
myParent = this.parent;
nextextralife = myParent.GetNextExtraLife();
_local2 = new Level(levelSelected);
myLevel = _local2.MapArray;
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
GameTimer = new Timer(20);
GameTimer.addEventListener(TimerEvent.TIMER, GameActions);
GameTimer.start();
bgHolder = new Sprite();
addChild(bgHolder);
addChild(player);
player.y = 495;
player.x = 68;
player.DoUpgrades(upgradeArray);
enemyHolder = new Sprite();
enemyShotHolder = new Sprite();
playerShotHolder = new Sprite();
effectsHolder = new Sprite();
EXPHolder = new Sprite();
addChild(enemyHolder);
addChild(enemyShotHolder);
addChild(playerShotHolder);
addChild(effectsHolder);
addChild(EXPHolder);
livesCounter = new LivesCounter();
addChild(livesCounter);
livesCounter.x = 10;
livesCounter.y = 590;
livesCounter.gotoAndStop((lives + 1));
_local3 = new HUD();
addChild(_local3);
_local3.x = 156;
_local3.y = 20;
_local3.gotoAndStop(shipSelected);
chargebar = new ChargeBar();
addChild(chargebar);
chargebar.x = 73;
chargebar.y = 18;
chargebar.height = 20;
pausescreen = new PauseScreen();
addChild(pausescreen);
pausescreen.x = 225;
pausescreen.y = 300;
pausescreen.visible = false;
_local4 = 0;
while (_local4 < 6) {
MakeNewInchWorm();
_local4++;
};
scoreTextField = new TextField();
EXPTextField = new TextField();
myTextFormat = new TextFormat();
myTextFormat.size = 22;
myTextFormat.color = 0;
myTextFormat.align = TextFormatAlign.RIGHT;
myTextFormat.font = "Alfabetix";
addChild(scoreTextField);
scoreTextField.width = 450;
scoreTextField.x = -10;
scoreTextField.y = 6;
scoreTextField.text = score.toString();
scoreTextField.alpha = 0.8;
scoreTextField.selectable = false;
addChild(EXPTextField);
EXPTextField.width = 450;
EXPTextField.x = -10;
EXPTextField.y = 572;
EXPTextField.text = EXPAmount.toString();
EXPTextField.alpha = 0.8;
EXPTextField.selectable = false;
scoreTextField.setTextFormat(myTextFormat);
scoreTextField.embedFonts = true;
scoreTextField.defaultTextFormat = myTextFormat;
EXPTextField.setTextFormat(myTextFormat);
EXPTextField.embedFonts = true;
EXPTextField.defaultTextFormat = myTextFormat;
GetNextEnemy();
}
private function MakeNewEXPPickup(_arg1, _arg2){
var _local3:EXPPickup;
if (effectsHolder.numChildren < 80){
_local3 = new EXPPickup();
_local3.x = ((_arg1 + (Math.random() * 10)) - 5);
_local3.y = ((_arg2 + (Math.random() * 10)) - 5);
effectsHolder.addChild(_local3);
};
}
public function MakeNewThorn(_arg1, _arg2, _arg3){
var _local4:Thorns;
_local4 = new Thorns(_arg1, _arg2, 0);
_local4.rotation = _arg3;
enemyHolder.addChild(_local4);
_local4.SetShotSpeed(100, 500);
}
public function MakeNewBossDeath(_arg1, _arg2){
var _local3:int;
var _local4:int;
var _local5:EnemyDeath;
deadBossX = _arg1;
deadBossY = _arg2;
if (effectsHolder.numChildren < 80){
_local3 = 0;
while (_local3 < 2) {
_local5 = new EnemyDeath();
_local5.x = deadBossX;
_local5.y = deadBossY;
_local5.scaleX = 5;
_local5.scaleY = 5;
effectsHolder.addChild(_local5);
_local3++;
};
_local4 = 0;
while (_local4 < 4) {
MakeNewEnemyDieSplash(((deadBossX + (Math.random() * 80)) - 40), ((deadBossY + (Math.random() * 40)) - 20));
_local4++;
};
};
}
private function MakeNewPlayerKilled(_arg1, _arg2){
var _local3:PlayerDeath;
_local3 = new PlayerDeath();
_local3.x = _arg1;
_local3.y = _arg2;
effectsHolder.addChild(_local3);
}
public function AddScore(_arg1:int){
score = (score + _arg1);
scoreTextField.text = score.toString();
if (score > nextextralife){
myParent.SetNextExtraLife();
nextextralife = myParent.GetNextExtraLife();
lives++;
livesCounter.gotoAndStop((lives + 1));
};
}
private function MakeNewPlayerShotHit(_arg1, _arg2){
var _local3:PlayerShotHit;
if (effectsHolder.numChildren < 50){
_local3 = new PlayerShotHit();
_local3.x = _arg1;
_local3.y = _arg2;
effectsHolder.addChild(_local3);
};
}
private function MakeNewPetalSplash(_arg1, _arg2){
var _local3:PetalSplash;
_local3 = new PetalSplash();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.height = (_local3.height * ((Math.random() * 2) + 1));
_local3.width = _local3.height;
effectsHolder.addChild(_local3);
}
public function GameActions(_arg1:Event){
var _local2:int;
var _local3:*;
var _local4:int;
var _local5:*;
var _local6:*;
var _local7:int;
var _local8:*;
var _local9:*;
var _local10:int;
var _local11:*;
var _local12:int;
var _local13:*;
var _local14:int;
var _local15:int;
var _local16:Boolean;
var _local17:Boolean;
var _local18:*;
var _local19:int;
var _local20:int;
var _local21:*;
var _local22:*;
var _local23:*;
var _local24:int;
var _local25:*;
var _local26:int;
var _local27:*;
var _local28:int;
var _local29:*;
var _local30:int;
var _local31:*;
deadCounter--;
shotTimer--;
enemyHitSoundCounter--;
checkKeys();
if (gameStatus == "playing"){
timeElapsed--;
if (gameOver == false){
player.movePlayer();
};
chargebar.width = player.ReturnCharge();
chargebar.height = 16;
if (effectsHolder.numChildren > 0){
_local2 = 0;
while (_local2 < effectsHolder.numChildren) {
_local3 = effectsHolder.getChildAt(_local2);
_local3.MoveEffect();
_local2++;
};
};
if (enemyHolder.numChildren > 0){
_local4 = 0;
while (_local4 < enemyHolder.numChildren) {
_local5 = enemyHolder.getChildAt(_local4);
if (_local5.hitTestObject(player.core)){
_local6 = new Hitter();
if (_local6.PixelHitter(_local5, player.core) != null){
PlayerDie();
break;
};
};
_local5.MoveEnemy();
_local4++;
};
};
if (enemyShotHolder.numChildren > 0){
_local7 = 0;
while (_local7 < enemyShotHolder.numChildren) {
_local8 = enemyShotHolder.getChildAt(_local7);
if (_local8.hitTestObject(player.core)){
_local9 = new Hitter();
if (_local9.PixelHitter(_local8, player.core) != null){
PlayerDie();
break;
} else {
_local8.MoveShot();
};
} else {
_local8.MoveShot();
};
_local7++;
};
};
if (bgHolder.numChildren > 0){
_local10 = 0;
while (_local10 < bgHolder.numChildren) {
_local11 = bgHolder.getChildAt(_local10);
_local11.MoveEffect();
_local10++;
};
};
if (EXPHolder.numChildren > 0){
_local12 = 0;
while (_local12 < EXPHolder.numChildren) {
_local13 = EXPHolder.getChildAt(_local12);
if (_local13.hitTestObject(player)){
_local14 = 0;
while (_local14 < 3) {
MakeNewEXPPickup(_local13.x, _local13.y);
_local14++;
};
_local13.SetCounter();
AddEXP(1);
break;
};
_local13.MoveEffect();
_local12++;
};
};
if (timeElapsed < 1){
timeStep++;
GetNextEnemy();
};
if (playerShotHolder.numChildren > 0){
_local15 = 0;
while (_local15 < playerShotHolder.numChildren) {
_local16 = true;
_local17 = false;
_local18 = playerShotHolder.getChildAt(_local15);
if (enemyHolder.numChildren > 0){
if (_local18.shotType == "bomb"){
if (enemyShotHolder.numChildren > 0){
_local20 = 0;
while (_local20 < enemyShotHolder.numChildren) {
_local21 = enemyShotHolder.getChildAt(_local20);
if (_local21.hitTestObject(_local18)){
enemyShotHolder.removeChild(_local21);
};
_local20++;
};
};
};
_local19 = 0;
while (_local19 < enemyHolder.numChildren) {
_local22 = enemyHolder.getChildAt(_local19);
if (_local18.hitTestObject(_local22)){
_local23 = new Hitter();
if (_local23.PixelHitter(_local18, _local22) != null){
if (enemyHitSoundCounter < 0){
myParent.soundManager.PlaySound("enemyhit");
enemyHitSoundCounter = 3;
};
if (_local18.isRemovable){
MakeNewPlayerShotBubbles(_local23.PixelHitter(_local18, _local22).x, _local23.PixelHitter(_local18, _local22).y);
_local22.CheckShot(_local18.damage);
_local16 = false;
_local17 = true;
} else {
if (Math.floor((Math.random() * 10)) < 5){
MakeNewPlayerShotBubbles(_local23.PixelHitter(_local18, _local22).x, _local23.PixelHitter(_local18, _local22).y);
};
};
if (_local17 == false){
_local22.CheckShot(_local18.damage);
};
if (_local16 == false){
_local18.x = 1000;
_local18.y = 1000;
};
};
};
_local19++;
};
if (_local16 == true){
_local18.MoveShot();
if ((((((((_local18.y < -20)) || ((_local18.y > 620)))) || ((_local18.x < -20)))) || ((_local18.x > 470)))){
_local18.RemoveMe();
};
};
} else {
_local18.MoveShot();
};
_local15++;
};
};
};
if (levelEnding == true){
if (enemyHolder.numChildren > 0){
_local24 = 0;
while (_local24 < enemyHolder.numChildren) {
_local25 = enemyHolder.getChildAt(_local24);
enemyHolder.removeChild(_local25);
_local24++;
};
};
if (enemyShotHolder.numChildren > 0){
_local26 = 0;
while (_local26 < enemyShotHolder.numChildren) {
_local27 = enemyShotHolder.getChildAt(_local26);
enemyShotHolder.removeChild(_local27);
_local26++;
};
};
deadBossCounter--;
if (deadBossCounter < 0){
MakeNewBossDeath(deadBossX, deadBossY);
deadBossCounter = 12;
};
transitionCounter--;
if (transitionCounter < 0){
levelEnding = false;
GameTimer.removeEventListener(TimerEvent.TIMER, GameActions);
myParent.NewUpgradeScreen(levelSelected, shipSelected, score, EXPAmount, upgradeArray, lives);
};
};
if (gameOver == true){
levelEnding = false;
player.visible = false;
if (enemyHolder.numChildren > 0){
_local28 = 0;
while (_local28 < enemyHolder.numChildren) {
_local29 = enemyHolder.getChildAt(_local28);
enemyHolder.removeChild(_local29);
_local28++;
};
};
if (enemyShotHolder.numChildren > 0){
_local30 = 0;
while (_local30 < enemyShotHolder.numChildren) {
_local31 = enemyShotHolder.getChildAt(_local30);
enemyShotHolder.removeChild(_local31);
_local30++;
};
};
transitionCounter--;
if (transitionCounter < 0){
gameOver = false;
GameTimer.removeEventListener(TimerEvent.TIMER, GameActions);
myParent.GameOver(score);
};
};
}
private function MakeNewEnemyShotSplash(_arg1, _arg2, _arg3){
var _local4:EnemyShotSplash;
_local4 = new EnemyShotSplash();
_local4.x = _arg1;
_local4.y = _arg2;
_local4.rotation = _arg3;
effectsHolder.addChild(_local4);
}
private function MakeNewPlayerShotBubbles(_arg1, _arg2){
var _local3:PlayerShotBubbles;
if (effectsHolder.numChildren < 50){
_local3 = new PlayerShotBubbles();
_local3.x = _arg1;
_local3.y = _arg2;
effectsHolder.addChild(_local3);
};
}
public function checkKeys():void{
var _local1:Boolean;
var _local2:Boolean;
leftKeyDown = myParent.leftKeyDown;
rightKeyDown = myParent.rightKeyDown;
upKeyDown = myParent.upKeyDown;
downKeyDown = myParent.downKeyDown;
shoot1KeyDown = myParent.shoot1KeyDown;
shoot2KeyDown = myParent.shoot2KeyDown;
_local1 = myParent.quitKeyDown;
_local2 = myParent.pauseKeyDown;
if (_local1 == true){
GameTimer.removeEventListener(TimerEvent.TIMER, GameActions);
GameTimer.stop();
myParent.TitleFromGameLoop();
};
if (_local2 == true){
Pause();
};
if (_local2 == false){
pauseToggle = true;
};
}
public function MakePlayerShot2(_arg1, _arg2){
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:PlayerLaser;
var _local7:PlayerBomb;
var _local8:HomingLaser;
var _local9:FireSwirl;
var _local10:PlayerBomb;
var _local11:int;
var _local12:PlayerHomingShot;
var _local13:int;
var _local14:PlayerShot;
_local3 = 0;
_local4 = 0;
_local5 = 0;
switch (_arg1){
case 1:
myParent.soundManager.PlaySound("playerlaserlong");
_local6 = new PlayerLaser();
_local3 = 8;
_local4 = (2 + _arg2);
_local5 = 0;
_local6.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local6);
_local6.x = player.x;
_local6.y = player.y;
_local6.scaleX = (1 + ((_arg2 + 1) * 0.2));
break;
case 2:
myParent.soundManager.PlaySound("playerlasershort");
_local11 = 0;
while (_local11 < 18) {
_local12 = new PlayerHomingShot();
_local3 = 6;
_local4 = (5 + _arg2);
_local5 = (-90 + (_local11 * 10));
_local12.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local12);
_local12.x = player.x;
_local12.y = player.y;
_local12.gotoAndStop((_arg2 + 1));
_local11++;
};
break;
case 3:
myParent.soundManager.PlaySound("playerbomb");
_local7 = new PlayerBomb();
_local3 = 8;
_local4 = (3 + _arg2);
_local5 = 0;
_local7.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local7);
_local7.x = player.x;
_local7.y = player.y;
_local7.rotation = (Math.random() * 360);
_local7.scaleX = (1 + ((_arg2 + 1) * 0.2));
_local7.scaleY = (1 + ((_arg2 + 1) * 0.2));
break;
case 4:
myParent.soundManager.PlaySound("playerbomb");
_local13 = 0;
while (_local13 < 36) {
_local14 = new PlayerShot();
_local3 = 12;
_local4 = (8 + _arg2);
_local5 = (-90 + (_local13 * 10));
_local14.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local14);
_local14.width = (_local14.width * 0.5);
_local14.height = (_local14.height * 0.5);
_local14.x = player.x;
_local14.y = player.y;
_local14.gotoAndStop((_arg2 + 1));
_local13++;
};
break;
case 5:
myParent.soundManager.PlaySound("playerlaserlong");
_local8 = new HomingLaser();
_local3 = 8;
_local4 = (1 + _arg2);
_local5 = 0;
_local8.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local8);
_local8.x = player.x;
_local8.y = player.y;
_local8.scaleX = (1 + ((_arg2 + 1) * 0.1));
break;
case 6:
myParent.soundManager.PlaySound("playerbomb");
_local9 = new FireSwirl();
_local3 = 8;
_local4 = (2 + _arg2);
_local9.SetMe(_local3, _local4, 0);
playerShotHolder.addChild(_local9);
_local9.x = player.x;
_local9.y = player.y;
_local9.scaleX = (0.2 + ((_arg2 + 1) * 0.1));
_local9.scaleY = (0.2 + ((_arg2 + 1) * 0.1));
break;
case 7:
_local10 = new PlayerBomb();
_local3 = 8;
_local4 = (3 + _arg2);
_local5 = 0;
_local10.SetMe(_local3, _local4, _local5);
playerShotHolder.addChild(_local10);
_local10.x = player.x;
_local10.y = player.y;
_local10.rotation = (Math.random() * 360);
_local10.scaleX = (1 + ((_arg2 + 1) * 0.2));
_local10.scaleY = (1 + ((_arg2 + 1) * 0.2));
_local10.alpha = 0.1;
break;
};
}
private function PlayShotSound(){
if (shotTimer < 0){
myParent.soundManager.PlaySound("enemyshot");
shotTimer = 10;
};
}
public function MakeNewInchWorm(){
var _local1:BGInchWorm;
_local1 = new BGInchWorm();
_local1.x = (Math.random() * 450);
_local1.y = (-50 - (Math.random() * 100));
_local1.gotoAndStop(levelSelected);
bgHolder.addChild(_local1);
}
public function EndGame(){
myParent.soundManager.PlaySound("playerdie");
MakeNewTransparencyScreen();
gameOver = true;
}
public function EndLevel(){
levelEnding = true;
MakeNewTransparencyScreen();
}
public function MakeNewEnemyDieSplash(_arg1, _arg2){
var _local3:int;
var _local4:int;
var _local5:EnemyDieSplash;
var _local6:Number;
_local3 = 4;
if (bgHolder.numChildren < 50){
_local3 = 2;
};
_local4 = 0;
while (_local4 < _local3) {
_local5 = new EnemyDieSplash();
_local5.x = ((_arg1 + (Math.random() * 40)) - 20);
_local5.y = ((_arg2 + (Math.random() * 40)) - 20);
_local6 = Math.random();
_local5.scaleX = _local6;
_local5.scaleY = _local6;
bgHolder.addChild(_local5);
_local4++;
};
}
private function Pause(){
if (pauseToggle == true){
if (gameStatus == "playing"){
gameStatus = "paused";
pausescreen.visible = true;
pauseToggle = false;
} else {
gameStatus = "playing";
pausescreen.visible = false;
pauseToggle = false;
};
};
}
private function PlayerDie(){
var _local1:int;
var _local2:*;
if (deadCounter < 0){
deadCounter = 80;
myParent.soundManager.PlaySound("playerdie");
MakeNewPlayerKilled(player.x, player.y);
if (enemyShotHolder.numChildren > 0){
_local1 = 0;
while (_local1 < enemyShotHolder.numChildren) {
_local2 = enemyShotHolder.getChildAt(_local1);
enemyShotHolder.removeChild(_local2);
_local1++;
};
};
player.x = 225;
player.y = 595;
MakePlayerShot2(7, 10);
player.DeadZipUp();
lives--;
livesCounter.gotoAndStop((lives + 1));
if (lives < 0){
gameOver = true;
MakeNewTransparencyScreen();
};
};
}
private function GetNextEnemy(){
if (((timeStep * 5) + 1) < myLevel.length){
MakeEnemy(myLevel[((timeStep * 5) + 1)], myLevel[((timeStep * 5) + 2)], myLevel[((timeStep * 5) + 3)], myLevel[((timeStep * 5) + 4)]);
timeElapsed = myLevel[(timeStep * 5)];
} else {
timeElapsed = 1000000;
};
}
public function AddEXP(_arg1:int){
myParent.soundManager.PlaySound("playerexp");
EXPAmount = (EXPAmount + _arg1);
EXPTextField.text = EXPAmount.toString();
}
public function MakeNewEnemySpawnSplash(_arg1, _arg2){
var _local3:int;
var _local4:EnemySpawnSplash;
var _local5:Number;
_local3 = 0;
while (_local3 < 2) {
_local4 = new EnemySpawnSplash();
_local4.x = ((_arg1 + (Math.random() * 40)) - 20);
_local4.y = ((_arg2 + (Math.random() * 40)) - 20);
_local5 = Math.random();
_local4.scaleX = _local5;
_local4.scaleY = _local5;
bgHolder.addChild(_local4);
_local3++;
};
}
}
}//package
Section 43
//gameloopLoopSound (gameloopLoopSound)
package {
import flash.media.*;
public dynamic class gameloopLoopSound extends Sound {
}
}//package
Section 44
//gameoverLoopSound (gameoverLoopSound)
package {
import flash.media.*;
public dynamic class gameoverLoopSound extends Sound {
}
}//package
Section 45
//GameOverScreen (GameOverScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
public class GameOverScreen extends MovieClip {
public var leaderboardscreen:LeaderboardScreen;
public var leaderboardopen:Boolean;// = false
private var myCore:PlayerCore;
public var GameTimer:Timer;
public var myParent:Object;
private var score:int;// = 0
public function GameOverScreen(_arg1, _arg2){
score = 0;
leaderboardopen = false;
super();
myParent = _arg1;
score = _arg2;
setUp();
stop();
}
private function ContinueButtonPressed(_arg1:MouseEvent){
myParent.ContinueFromGameOver();
}
private function MakeScoreBox(){
var _local1:*;
var _local2:*;
_local1 = new TextFormat();
_local2 = new TextField();
_local1.size = 24;
_local1.color = 0xFFFFFF;
_local1.align = "right";
_local1.font = "Alfabetix";
addChild(_local2);
_local2.x = 60;
_local2.y = -97;
_local2.text = score;
_local2.setTextFormat(_local1);
_local2.embedFonts = true;
_local2.defaultTextFormat = _local1;
}
private function TitleScreenButtonPressed(_arg1:MouseEvent){
myParent.TitleFromGameOver();
}
private function ButtonOverSound(_arg1:MouseEvent){
myParent.soundManager.PlaySound("uimouseover");
}
private function GameActions(_arg1:TimerEvent):void{
myCore.x = mouseX;
myCore.y = mouseY;
}
private function setUp(){
var _local1:SelectButton;
var _local2:SelectButton;
var _local3:SelectButton;
myCore = new PlayerCore();
addChild(myCore);
_local1 = new SelectButton();
_local1.addEventListener(MouseEvent.MOUSE_UP, SubmitScore);
_local1.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
addChild(_local1);
_local1.x = 0;
_local1.y = 210;
_local2 = new SelectButton();
_local2.addEventListener(MouseEvent.MOUSE_UP, TitleScreenButtonPressed);
_local2.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
addChild(_local2);
_local2.x = 0;
_local2.y = 290;
_local3 = new SelectButton();
_local3.addEventListener(MouseEvent.MOUSE_UP, ContinueButtonPressed);
_local3.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
addChild(_local3);
_local3.x = 0;
_local3.y = 130;
MakeScoreBox();
GameTimer = new Timer(25);
GameTimer.addEventListener(TimerEvent.TIMER, GameActions);
GameTimer.start();
}
public function CloseLeaderboard(){
myParent.removeChild(leaderboardscreen);
leaderboardopen = false;
}
private function SubmitScore(_arg1:MouseEvent){
trace("called");
if (leaderboardopen == false){
trace("open");
leaderboardscreen = new LeaderboardScreen(this, score);
myParent.addChild(leaderboardscreen);
leaderboardopen = true;
};
}
}
}//package
Section 46
//Hitter (Hitter)
package {
import flash.geom.*;
import flash.display.*;
public class Hitter {
public function PixelHitter(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Boolean=true, _arg4:int=0xFF):Rectangle{
var _local5:Rectangle;
var _local6:Rectangle;
var _local7:Rectangle;
var _local8:BitmapData;
var _local9:Matrix;
var _local10:Rectangle;
if (_arg1.hitTestObject(_arg2)){
_local5 = _arg1.getBounds(_arg1.parent.parent);
_local6 = _arg2.getBounds(_arg2.parent.parent);
_local7 = _local5.intersection(_local6);
_local7.x = Math.floor(_local7.x);
_local7.y = Math.floor(_local7.y);
_local7.width = Math.ceil(_local7.width);
_local7.height = Math.ceil(_local7.height);
if ((((_local7.width < 1)) || ((_local7.height < 1)))){
return (null);
};
if (!_arg3){
return (_local7);
};
_local8 = new BitmapData(_local7.width, _local7.height, false);
_local9 = _arg1.transform.concatenatedMatrix;
_local9.translate(-(_local7.left), -(_local7.top));
_local8.draw(_arg1, _local9, new ColorTransform(1, 1, 1, 1, 0xFF, -255, -255, _arg4));
_local9 = _arg2.transform.concatenatedMatrix;
_local9.translate(-(_local7.left), -(_local7.top));
_local8.draw(_arg2, _local9, new ColorTransform(1, 1, 1, 1, 0xFF, 0xFF, 0xFF, _arg4), "difference");
_local10 = _local8.getColorBoundsRect(4294967295, 4278255615);
if (_local10.width == 0){
return (null);
};
_local10.offset(_local7.left, _local7.top);
return (_local10);
//unresolved jump
};
return (null);
}
}
}//package
Section 47
//HomingLaser (HomingLaser)
package {
import flash.events.*;
public class HomingLaser extends PlayerShot {
private var counter:int;// = 40
private var myParent:Object;
private var type:String;
public function HomingLaser(){
counter = 40;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:*;
var _local9:Number;
var _local10:Number;
counter--;
x = myParent.parent.player.x;
y = myParent.parent.player.y;
if (counter < 0){
myParent.removeChild(this);
};
if (myParent.parent.enemyHolder.numChildren > 0){
_local1 = 1000;
_local2 = 1000;
_local3 = 0;
_local4 = 0;
_local5 = 0;
while (_local5 < myParent.parent.enemyHolder.numChildren) {
_local8 = myParent.parent.enemyHolder.getChildAt(_local5);
_local9 = Math.abs((x - _local8.x));
_local10 = Math.abs((y - _local8.y));
if ((_local9 + _local10) < (_local1 + _local2)){
_local1 = Math.abs(_local9);
_local3 = _local8.x;
_local2 = Math.abs(_local10);
_local4 = _local8.y;
};
_local5++;
};
_local6 = (x - _local3);
_local7 = (y - _local4);
rotation = ((Math.atan2(_local7, _local6) / (Math.PI / 180)) - 90);
};
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
isRemovable = false;
}
public function setCounter(_arg1){
counter = _arg1;
}
override protected function TestRemoveFunction(){
}
}
}//package
Section 48
//Host (Host)
package {
import flash.events.*;
public class Host extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var earnedPoints:int;// = 100
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;
private var isAlive:Boolean;
private var ymod:Number;
private var myPath:Array;
public function Host(_arg1, _arg2, _arg3){
var _local4:Array;
earnedPoints = 100;
follow = true;
super(_arg1, _arg2, _arg3);
_local4 = [1000000000, 0, 0, 0, 0];
x = _arg1;
y = _arg2;
myPath = _local4;
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 10;
shotticks = 100;
shotticksb = 100;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
var _local1:*;
var _local2:Number;
var _local3:Number;
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
rotation = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) + 90);
x = (x + (Math.cos((((rotation + 90) * Math.PI) / 180)) * 2));
y = (y + (Math.sin((((rotation + 90) * Math.PI) / 180)) * 2));
}
override protected function EnemyShoot(){
}
}
}//package
Section 49
//HowToPlayScreen (HowToPlayScreen)
package {
import flash.display.*;
import flash.events.*;
public class HowToPlayScreen extends MovieClip {
public var myParent:Object;
public function HowToPlayScreen(_arg1){
myParent = _arg1;
setUp();
stop();
}
private function TitleScreenButtonPressed(_arg1:MouseEvent){
myParent.TitleFromHowToPlay();
}
private function NextPageButtonPressed(_arg1:MouseEvent){
var _local2:*;
_local2 = this.currentFrame;
_local2++;
if (_local2 > 3){
_local2 = 1;
};
gotoAndStop(_local2);
}
private function setUp(){
var _local1:SelectButton;
_local1 = new SelectButton();
_local1.addEventListener(MouseEvent.MOUSE_UP, TitleScreenButtonPressed);
addChild(_local1);
_local1.x = 0;
_local1.y = 290;
}
}
}//package
Section 50
//HUD (HUD)
package {
import flash.display.*;
public dynamic class HUD extends MovieClip {
}
}//package
Section 51
//JHVH (JHVH)
package {
import flash.events.*;
public class JHVH extends Enemy {
private var shotticks2:int;// = 20
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 5000
private var streamCounter:int;// = 30
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 5000
private var shotticks1b:int;// = 200
private var shotticks2b:int;// = 20
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 100
private var shotticks4b:int;// = 400
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;
private var ymod:Number;
private var shotticks3:int;// = 130
private var myPath:Array;
private var shotticks1:int;// = 200
private var shotticks4:int;// = 400
public function JHVH(_arg1, _arg2, _arg3){
var _local4:Array;
earnedPoints = 5000;
follow = true;
streamCounter = 30;
hp = 5000;
shotticksb = 300;
shotticks = 300;
shotticks1b = 200;
shotticks1 = 200;
shotticks2b = 20;
shotticks2 = 20;
shotticks3b = 100;
shotticks3 = 130;
shotticks4b = 400;
shotticks4 = 400;
super(_arg1, _arg2, _arg3);
_local4 = [40, 0, 0, 0, 0, 100, 0, 0, 0, 0, 10000000, 0, 0, 0, 0];
x = _arg1;
y = _arg2;
myPath = _local4;
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 5000;
shotticks = 600;
shotticksb = 600;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
rotation = (rotation + 1);
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
var _local1:int;
var _local2:Number;
var _local3:Number;
var _local4:int;
_local1 = 0;
while (_local1 < 4) {
_local2 = (x - (Math.cos(((((_local1 * 45) + 202.5) * Math.PI) / 180)) * 100));
_local3 = (y - (Math.sin(((((_local1 * 45) + 202.5) * Math.PI) / 180)) * 100));
_local4 = (Math.floor((Math.random() * 11)) + 2);
myParent.parent.MakeEnemy(_local4, _local2, _local3, 15);
_local1++;
};
}
private function EnemyShoot3(){
var _local1:int;
var _local2:Number;
var _local3:Number;
var _local4:int;
myParent.parent.parent.soundManager.PlaySound("enemylaser");
_local1 = 0;
while (_local1 < 4) {
_local2 = (x - (Math.cos((((((_local1 * 90) + rotation) - 90) * Math.PI) / 180)) * 90));
_local3 = (y - (Math.sin((((((_local1 * 90) + rotation) - 90) * Math.PI) / 180)) * 90));
_local4 = 0;
while (_local4 < 2) {
myParent.parent.MakeEnemyShot(((_local2 + (Math.random() * 10)) - 5), ((_local3 + (Math.random() * 10)) - 5), ((((_local1 * 90) + rotation) + (Math.random() * 4)) - 2), 2, true);
_local4++;
};
_local1++;
};
}
private function EnemyShoot4(){
var _local1:Number;
var _local2:Number;
var _local3:*;
streamCounter--;
_local1 = (x - myParent.parent.player.x);
_local2 = (y - myParent.parent.player.y);
_local3 = ((Math.atan2(_local2, _local1) / (Math.PI / 180)) + 90);
myParent.parent.MakeEnemyShot(x, y, _local3, 1, true);
shotticks3 = 2;
if (streamCounter < 0){
streamCounter = 30;
shotticks3 = 100;
};
}
private function EnemyShoot5(){
myParent.parent.MakeEnemy(0, x, y, 13);
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.parent.soundManager.PlaySound("enemydie");
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndLevel();
};
}
}
}//package
Section 52
//JudasWing (JudasWing)
package {
import flash.display.*;
public dynamic class JudasWing extends MovieClip {
}
}//package
Section 53
//LeaderboardScreen (LeaderboardScreen)
package {
import flash.display.*;
import mochi.as3.*;
import flash.ui.*;
public class LeaderboardScreen extends MovieClip {
public var theStage:Object;
public var gametype:int;
public var playerScore:int;
public var myParent:Object;
public function LeaderboardScreen(_arg1, _arg2){
myParent = _arg1;
playerScore = _arg2;
theStage = myParent.parent;
setUp();
}
private function CloseLeaderboard(){
myParent.CloseLeaderboard();
}
private function setUp(){
var o:Object;
var boardID:String;
trace("running");
Mouse.show();
o = {n:[4, 12, 11, 4, 7, 2, 8, 9, 4, 7, 9, 3, 10, 2, 12, 3], f:function (_arg1:Number, _arg2:String):String{
if (_arg2.length == 16){
return (_arg2);
};
return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16))));
}};
boardID = o.f(0, "");
MochiScores.showLeaderboard({boardID:boardID, score:playerScore, onClose:function (){
CloseLeaderboard();
}});
}
public function onConnectError(_arg1:String){
myParent.CloseLeaderboard();
}
}
}//package
Section 54
//Level (Level)
package {
import flash.display.*;
public class Level extends Sprite {
public var MapArray:Array;
public var levelnumber:int;
private var player:Object;
public function Level(_arg1:int){
levelnumber = _arg1;
MakeLevel();
}
public function MakeLevel():void{
switch (levelnumber){
case 1:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 3:23", 60, 100, 225, 300, "Therefore the LoRD", 60, 100, 225, 320, "God sent hIm forth", 60, 100, 225, 340, "from the gArden of Eden", 60, 100, 225, 360, "to tIll the ground", 80, 100, 225, 380, "from whence he wAs taken.", 1, 100, 225, 200, "Move wIth arrow keys", 90, 100, 225, 220, "or WASD.", 1, 100, 225, 200, "Hold Z to shoot", 90, 100, 225, 220, "prImary weapon.", 1, 100, 225, 200, "Press X to shoot", 90, 100, 225, 220, "secondary weapon.", 1, 100, 225, 200, "Release keys to charge", 90, 100, 225, 220, "secondary weapon.", 20, 11, 225, 50, 0, 90, 100, 225, 200, "Shoot all angels.", 1, 100, 225, 200, "Collect EXP dropped by angels", 90, 100, 225, 220, "to upgrade between levels.", 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 60, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 60, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 0, 225, 0, 11, 20, 11, 100, 50, 0, 1, 11, 350, 50, 0, 20, 11, 110, 60, 0, 1, 11, 340, 60, 0, 20, 11, 120, 70, 0, 1, 11, 330, 70, 0, 20, 11, 130, 80, 0, 1, 11, 320, 80, 0, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 300, 2, 225, 50, 12, 40, 2, 225, 50, 12, 40, 2, 225, 50, 12, 1, 2, 75, -100, 6, 1, 2, 225, -100, 6, 100, 2, 375, -100, 6, 1, 2, 75, -200, 6, 1, 2, 225, -200, 6, 100, 2, 375, -200, 6, 1, 2, 75, -100, 6, 1, 2, 225, -100, 6, 300, 2, 375, -100, 6, 1, 0, 75, 0, 11, 1, 0, 375, 0, 11, 200, 0, 225, 0, 11, 1, 2, 225, 50, 12, 1, 2, 175, 100, 12, 1, 2, 275, 100, 12, 1, 2, 125, 150, 12, 300, 2, 325, 150, 12, 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "Archangel", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 6, 101, 229, 206, "GABRIEL", 100000, 90, 225, 80, 12];
break;
case 2:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 3:24", 60, 100, 225, 300, "So he drove out the man", 60, 100, 225, 320, "And he placed at the east", 60, 100, 225, 340, "of the garden of Eden", 60, 100, 225, 360, "CherubIm,", 20, 100, 225, 380, "And A flaming sword.", 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 5, 11, 100, 50, 0, 1, 11, 350, 50, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 5, 11, 120, 70, 0, 1, 11, 330, 70, 0, 5, 11, 130, 80, 0, 1, 11, 320, 80, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 10, 2, 225, 40, 4, 10, 2, 125, 120, 4, 50, 2, 325, 120, 4, 50, 0, 225, 0, 11, 10, 2, 225, 60, 4, 10, 2, 125, 140, 4, 50, 2, 325, 140, 4, 10, 2, 225, 20, 14, 1, 2, 0, 40, 9, 1, 2, 225, 120, 11, 40, 2, 450, 40, 10, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 2, 30, 40, 9, 20, 2, 420, 40, 10, 200, 3, 225, 20, 0, 1, 3, 225, 60, 12, 1, 3, 175, 60, 12, 200, 3, 275, 60, 12, 1, 3, 25, -30, 5, 1, 3, 125, -30, 5, 1, 3, 225, -30, 5, 1, 3, 325, -30, 5, 200, 3, 425, -30, 5, 20, 0, 225, 0, 11, 30, 2, 999, 0, 11, 30, 2, 999, 0, 11, 30, 2, 999, 0, 11, 100, 2, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 20, 11, 100, 50, 0, 1, 11, 350, 50, 0, 20, 11, 110, 60, 0, 1, 11, 340, 60, 0, 20, 11, 120, 70, 0, 1, 11, 330, 70, 0, 20, 11, 130, 80, 0, 1, 11, 320, 80, 0, 120, 0, 225, 0, 11, 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "Archangel", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 6, 101, 229, 206, "MICHAEL", 1, 91, 225, 80, 12, 1000000, 92, 225, 120, 14];
break;
case 3:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 4:13", 60, 100, 225, 300, "And Cain said", 60, 100, 225, 320, "unto the LoRD,", 60, 100, 225, 340, "My punIshment Is greater", 20, 100, 225, 360, "than I can bear.", 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 5, 11, 100, 50, 0, 1, 11, 350, 50, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 5, 11, 120, 70, 0, 1, 11, 330, 70, 0, 5, 11, 130, 80, 0, 1, 11, 320, 80, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 1, 2, 25, 60, 16, 1, 2, 125, 60, 16, 1, 2, 225, 60, 16, 1, 2, 325, 60, 16, 80, 2, 425, 60, 16, 1, 2, 25, 30, 16, 1, 2, 125, 30, 16, 1, 2, 225, 30, 16, 1, 2, 325, 30, 16, 80, 2, 425, 30, 16, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 30, 2, 999, 0, 11, 30, 2, 999, 0, 11, 30, 2, 999, 0, 11, 100, 2, 999, 0, 11, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 20, 11, 225, 50, 0, 1, 4, 25, -30, 5, 1, 4, 125, -30, 5, 1, 4, 225, -30, 5, 1, 4, 325, -30, 5, 200, 4, 425, -30, 5, 200, 5, 225, 20, 0, 1, 2, 25, 0, 15, 1, 2, 50, 0, 15, 1, 2, 75, 0, 15, 1, 2, 100, 0, 15, 1, 2, 125, 0, 15, 1, 2, 150, 0, 15, 1, 2, 175, 0, 15, 1, 2, 200, 0, 15, 1, 2, 225, 0, 15, 1, 2, 250, 0, 15, 1, 2, 275, 0, 15, 1, 2, 300, 0, 15, 1, 2, 325, 0, 15, 1, 2, 350, 0, 15, 1, 2, 375, 0, 15, 1, 2, 400, 0, 15, 80, 2, 425, 0, 15, 1, 0, 75, 0, 11, 1, 0, 375, 0, 11, 70, 0, 225, 0, 11, 200, 5, 225, 20, 0, 70, 5, 999, 0, 11, 70, 5, 999, 0, 11, 70, 5, 999, 0, 11, 100, 5, 999, 0, 11, 100, 6, 225, 20, 11, 30, 2, -50, 20, 2, 30, 2, 500, 20, 3, 30, 2, -50, 40, 2, 30, 2, 500, 40, 3, 30, 2, -50, 60, 2, 30, 2, 500, 60, 3, 30, 2, -50, 80, 2, 30, 2, 500, 80, 3, 30, 2, -50, 100, 2, 120, 2, 500, 100, 3, 1, 0, 75, 0, 11, 1, 0, 375, 0, 11, 200, 0, 225, 0, 11, 1, 2, 0, 40, 9, 1, 4, 225, 120, 11, 50, 2, 450, 40, 10, 1, 2, 0, 20, 9, 1, 4, 225, 100, 11, 120, 2, 450, 20, 10, 1, 2, -20, 20, 9, 1, 4, 225, 80, 11, 120, 2, 470, 20, 10, 1, 2, 20, 20, 9, 1, 4, 225, 60, 11, 120, 2, 430, 20, 10, 1, 2, 30, 40, 9, 1, 4, 225, 40, 11, 200, 2, 420, 40, 10, 200, 7, 225, 90, 0, 1, 7, 112, 90, 0, 120, 7, 337, 90, 0, 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "Archangel", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 6, 101, 229, 206, "URIEL", 100000, 93, 225, 40, 14];
break;
case 4:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 4:38", 60, 100, 225, 300, "The men threw", 60, 100, 225, 320, "theIr bodies agaInst", 60, 100, 225, 340, "the gates of eden,", 60, 100, 225, 360, "and the LoRD saw and", 60, 100, 225, 380, "was angered.", 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 5, 11, 100, 50, 0, 1, 11, 350, 50, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 5, 11, 120, 70, 0, 1, 11, 330, 70, 0, 5, 11, 130, 80, 0, 1, 11, 320, 80, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 60, 6, -50, 20, 2, 60, 6, 500, 20, 3, 60, 2, -50, 40, 2, 60, 2, 500, 40, 3, 60, 6, -50, 60, 2, 60, 6, 500, 60, 3, 60, 2, -50, 80, 2, 60, 2, 500, 80, 3, 60, 6, -50, 100, 2, 100, 6, 500, 100, 3, 1, 4, 25, -30, 5, 1, 4, 125, -30, 5, 1, 4, 225, -30, 5, 1, 4, 325, -30, 5, 200, 4, 425, -30, 5, 20, 6, -50, 20, 2, 20, 6, 500, 20, 3, 20, 2, -50, 40, 2, 20, 2, 500, 40, 3, 20, 6, -50, 60, 2, 20, 6, 500, 60, 3, 20, 2, -50, 80, 2, 20, 2, 500, 80, 3, 20, 6, -50, 100, 2, 220, 6, 500, 100, 3, 1, 2, 25, 0, 15, 1, 2, 50, 0, 15, 1, 2, 75, 0, 15, 1, 2, 100, 0, 15, 1, 2, 125, 0, 15, 1, 2, 150, 0, 15, 1, 2, 175, 0, 15, 1, 2, 200, 0, 15, 1, 2, 225, 0, 15, 1, 2, 250, 0, 15, 1, 2, 275, 0, 15, 1, 2, 300, 0, 15, 1, 2, 325, 0, 15, 1, 2, 350, 0, 15, 1, 2, 375, 0, 15, 1, 2, 400, 0, 15, 40, 2, 425, 0, 15, 1, 3, 25, 50, 5, 1, 3, 75, 50, 5, 1, 3, 125, 50, 5, 1, 3, 175, 50, 5, 1, 3, 225, 50, 5, 1, 3, 275, 50, 5, 1, 3, 325, 50, 5, 1, 3, 375, 50, 5, 160, 2, 425, 0, 15, 1, 0, 75, 0, 11, 1, 0, 375, 0, 11, 200, 0, 225, 0, 11, 200, 7, 225, 70, 0, 1, 0, 75, 0, 11, 1, 0, 375, 0, 11, 60, 0, 225, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 30, 3, 999, 0, 11, 10, 11, 25, 10, 0, 10, 11, 425, 10, 0, 40, 7, 225, 60, 12, 40, 7, 225, 90, 12, 40, 7, 225, 120, 12, 20, 2, -50, 20, 2, 20, 2, 500, 20, 3, 20, 2, -50, 40, 2, 20, 2, 500, 40, 3, 40, 8, 225, 60, 0, 10, 0, 75, 0, 11, 1, 0, 375, 0, 11, 10, 0, 225, 0, 11, 20, 2, -50, 60, 2, 20, 2, 500, 60, 3, 20, 2, -50, 80, 2, 20, 2, 500, 80, 3, 20, 2, -50, 100, 2, 100, 2, 500, 100, 3, 30, 6, 100, 100, 16, 30, 6, 350, 100, 16, 30, 6, 100, 40, 16, 40, 6, 350, 40, 16, 30, 6, 100, 100, 16, 30, 6, 350, 100, 16, 30, 6, 100, 40, 16, 50, 6, 350, 40, 16, 1, 0, 75, 0, 11, 1, 0, 375, 0, 11, 120, 0, 225, 0, 11, 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "Archangel", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 6, 101, 229, 206, "RAPHAEL", 100000, 94, 225, 80, 12];
break;
case 5:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 6:11", 60, 100, 225, 300, "The man smote the angels", 60, 100, 225, 320, "wIth stones and fIre", 60, 100, 225, 340, "and scaled the walls", 20, 100, 225, 360, "of the garden.", 60, 100, 225, 250, "", 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 5, 11, 100, 50, 0, 1, 11, 350, 50, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 5, 11, 120, 70, 0, 1, 11, 330, 70, 0, 5, 11, 130, 80, 0, 1, 11, 320, 80, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 30, 6, 100, 100, 16, 30, 6, 350, 100, 16, 30, 6, 100, 60, 16, 40, 6, 350, 60, 16, 30, 6, 100, 100, 16, 30, 6, 350, 100, 16, 30, 6, 100, 60, 16, 200, 6, 350, 60, 16, 200, 14, 225, 90, 11, 1, 14, 75, 90, 11, 80, 14, 375, 90, 11, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 1, 4, 25, -30, 15, 1, 4, 125, -30, 15, 1, 4, 225, -30, 15, 1, 4, 325, -30, 15, 100, 4, 425, -30, 15, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 2, 30, 40, 9, 20, 2, 420, 40, 10, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 2, 30, 40, 9, 20, 2, 420, 40, 10, 20, 6, 225, 0, 11, 1, 14, 25, -30, 15, 100, 14, 425, -30, 15, 1, 3, 0, 20, 9, 20, 3, 450, 20, 10, 1, 3, -20, 20, 9, 20, 3, 470, 20, 10, 1, 3, 20, 20, 9, 20, 3, 430, 20, 10, 1, 3, 30, 40, 9, 20, 3, 420, 40, 10, 60, 5, 225, 0, 11, 1, 3, 0, 20, 9, 20, 3, 450, 20, 10, 1, 3, -20, 20, 9, 20, 3, 470, 20, 10, 1, 3, 20, 20, 9, 20, 3, 430, 20, 10, 1, 3, 30, 40, 9, 20, 3, 420, 40, 10, 60, 5, 225, -20, 11, 1, 14, 75, 0, 9, 60, 14, 375, 0, 10, 5, 11, 100, 50, 0, 1, 11, 350, 50, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 5, 11, 120, 70, 0, 1, 11, 330, 70, 0, 5, 11, 130, 80, 0, 1, 11, 320, 80, 0, 5, 11, 110, 60, 0, 90, 11, 340, 60, 0, 50, 14, 225, 30, 12, 50, 14, 225, 50, 12, 50, 14, 225, 70, 12, 150, 14, 225, 90, 12, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 120, 0, 225, 0, 11, 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "Archangel", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 6, 101, 229, 206, "REMIEL", 100000, 95, 225, 80, 12];
break;
case 6:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 6:11", 60, 100, 225, 300, "The LoRD struck at", 60, 100, 225, 320, "the man wIth thunder", 60, 100, 225, 340, "yet the man dId", 20, 100, 225, 360, "not dIe.", 60, 100, 225, 250, "", 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 5, 11, 100, 50, 0, 1, 11, 350, 50, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 5, 11, 120, 70, 0, 1, 11, 330, 70, 0, 5, 11, 130, 80, 0, 1, 11, 320, 80, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 1, 4, 25, -30, 15, 1, 4, 125, -30, 15, 1, 4, 225, -30, 15, 1, 4, 325, -30, 15, 100, 4, 425, -30, 15, 1, 4, 50, -30, 15, 1, 4, 150, -30, 15, 1, 4, 250, -30, 15, 100, 4, 350, -30, 15, 1, 4, 75, -30, 15, 1, 4, 175, -30, 15, 1, 4, 275, -30, 15, 100, 4, 375, -30, 15, 1, 4, 0, -30, 15, 1, 4, 100, -30, 15, 1, 4, 200, -30, 15, 1, 4, 300, -30, 15, 100, 4, 400, -30, 15, 200, 9, 225, 30, 12, 30, 8, 225, 60, 13, 1, 8, 100, 10, 13, 1, 8, 350, 10, 13, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 2, 30, 40, 9, 20, 2, 420, 40, 10, 1, 2, 0, 20, 9, 1, 8, 225, 60, 13, 20, 2, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 2, 30, 40, 9, 20, 2, 420, 40, 10, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 10, 14, 225, 30, 12, 10, 14, 225, 50, 12, 10, 14, 225, 70, 12, 100, 14, 225, 90, 12, 70, 5, 999, 0, 11, 70, 5, 999, 0, 11, 70, 5, 999, 0, 11, 100, 5, 999, 0, 11, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 30, 9, 999, 0, 11, 30, 9, 999, 0, 11, 30, 9, 999, 0, 11, 30, 9, 999, 0, 11, 30, 9, 999, 0, 11, 30, 9, 999, 0, 11, 30, 9, 999, 0, 11, 30, 9, 999, 0, 11, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 2, 30, 40, 9, 20, 2, 420, 40, 10, 1, 9, 0, 20, 9, 20, 9, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 9, 20, 20, 9, 20, 9, 430, 20, 10, 1, 2, 30, 40, 9, 70, 2, 420, 40, 10, 1, 9, 225, 50, 12, 1, 9, 175, 100, 12, 1, 9, 275, 100, 12, 1, 9, 125, 150, 12, 300, 6, 325, 150, 12, 70, 5, 999, 0, 11, 70, 5, 999, 0, 11, 70, 5, 999, 0, 11, 70, 5, 999, 0, 11, 5, 11, 100, 50, 0, 1, 11, 350, 50, 0, 5, 11, 110, 60, 0, 1, 11, 340, 60, 0, 5, 11, 120, 70, 0, 1, 11, 330, 70, 0, 5, 11, 130, 80, 0, 1, 11, 320, 80, 0, 5, 11, 110, 60, 0, 90, 11, 340, 60, 0, 10, 14, 225, 30, 12, 10, 14, 225, 50, 12, 10, 14, 225, 70, 12, 100, 14, 225, 90, 12, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 120, 0, 225, 0, 11, 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "Archangel", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 6, 101, 229, 206, "ZACHARIEL", 100000, 96, 225, 80, 17];
break;
case 7:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 8:3", 60, 100, 225, 300, "The corpses of the", 60, 100, 225, 320, "angels pIled In the rIvers", 60, 100, 225, 340, "tIgris and euphrates,", 20, 100, 225, 360, "gIhon and pIshon.", 60, 100, 225, 250, "", 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 40, 10, 225, 80, 17, 40, 10, 225, 80, 17, 40, 10, 225, 80, 17, 40, 10, 225, 80, 17, 40, 10, 225, 80, 17, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 2, 30, 40, 9, 20, 2, 420, 40, 10, 1, 9, 0, 20, 9, 20, 9, 450, 20, 10, 1, 2, -20, 20, 9, 20, 2, 470, 20, 10, 1, 9, 20, 20, 9, 20, 9, 430, 20, 10, 1, 2, 30, 40, 9, 70, 2, 420, 40, 10, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 140, 12, 225, 50, 10, 1, 4, 25, -30, 15, 1, 4, 125, -30, 15, 1, 4, 225, -30, 15, 1, 4, 325, -30, 15, 100, 4, 425, -30, 15, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 1, 4, 50, -30, 15, 1, 4, 150, -30, 15, 1, 4, 250, -30, 15, 100, 4, 350, -30, 15, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 1, 4, 75, -30, 15, 1, 4, 175, -30, 15, 1, 4, 275, -30, 15, 100, 4, 375, -30, 15, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 1, 4, 0, -30, 15, 1, 4, 100, -30, 15, 1, 4, 200, -30, 15, 1, 4, 300, -30, 15, 100, 4, 400, -30, 15, 30, 6, 100, 100, 16, 30, 6, 350, 100, 16, 30, 6, 100, 60, 16, 40, 6, 350, 60, 16, 30, 6, 100, 100, 16, 30, 6, 350, 100, 16, 30, 6, 100, 60, 16, 200, 6, 350, 60, 16, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 20, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 11, 225, 50, 0, 10, 12, 225, 50, 10, 50, 14, 225, 30, 12, 20, 4, -50, 60, 2, 20, 4, 500, 60, 3, 20, 4, -50, 80, 2, 20, 4, 500, 80, 3, 20, 4, -50, 100, 2, 100, 4, 500, 100, 3, 150, 14, 225, 90, 12, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 70, 5, 999, 100, 16, 70, 5, 999, 100, 16, 70, 5, 999, 100, 16, 100, 5, 999, 100, 16, 10, 11, 100, 50, 0, 1, 11, 350, 50, 0, 10, 11, 110, 60, 0, 1, 11, 340, 60, 0, 10, 11, 120, 70, 0, 1, 11, 330, 70, 0, 10, 11, 130, 80, 0, 1, 11, 320, 80, 0, 10, 11, 110, 60, 0, 1, 11, 340, 60, 0, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 10, 2, 999, 100, 15, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 20, 0, 225, 0, 11, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 10, -20, 20, 9, 20, 10, 470, 20, 10, 1, 2, 20, 20, 9, 20, 2, 430, 20, 10, 1, 10, 30, 40, 9, 20, 10, 420, 40, 10, 1, 2, 0, 20, 9, 20, 2, 450, 20, 10, 1, 10, -20, 20, 9, 20, 10, 470, 20, 10, 1, 4, 20, 20, 9, 20, 4, 430, 20, 10, 1, 4, 30, 40, 9, 70, 4, 420, 40, 10, 20, 0, 75, 0, 11, 1, 0, 375, 0, 11, 120, 0, 225, 0, 11, 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "Archangel", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 6, 101, 229, 206, "SAMAEL", 100000, 97, 225, 80, 14];
break;
case 8:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 9:27", 60, 100, 225, 300, "And the man", 60, 100, 225, 320, "spat In the LoRD's eye", 60, 100, 225, 340, "and locked hIs hands", 20, 100, 225, 360, "around hIs neck.", 30, 100, 225, 250, "", 40, 101, 225, 200, "Warning!", 40, 101, 225, 250, "JHVH", 40, 101, 225, 280, "draws", 40, 101, 225, 310, "near...", 100000, 99, 225, 80, 13];
break;
case 9:
MapArray = [60, 100, 225, 250, "", 60, 101, 225, 200, "GenesIs 11:1", 60, 100, 225, 300, "And the man", 60, 100, 225, 320, "entered the Garden", 60, 100, 225, 340, "but Instead of verdant", 60, 100, 225, 360, "fruIt and flowers,", 60, 100, 225, 380, "he found nothIng", 60, 100, 225, 400, "but ash and dust.", 100000, 102, 225, 170, 0];
break;
};
}
}
}//package
Section 55
//LilithWing (LilithWing)
package {
import flash.display.*;
public dynamic class LilithWing extends MovieClip {
}
}//package
Section 56
//LivesCounter (LivesCounter)
package {
import flash.display.*;
public dynamic class LivesCounter extends MovieClip {
}
}//package
Section 57
//Michael (Michael)
package {
import flash.events.*;
public class Michael extends Enemy {
private var shotticks2:int;// = 80
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 3000
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 1000
private var shotticks1b:int;// = 300
private var shotticks2b:int;// = 80
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 145
private var shotticks4b:int;// = 300
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;// = true
private var ymod:Number;
private var shotticks3:int;// = 145
private var myPath:Array;
private var shotticks1:int;// = 300
private var shotticks4:int;// = 300
public function Michael(_arg1, _arg2, _arg3){
earnedPoints = 3000;
follow = true;
hp = 1000;
shotticksb = 300;
shotticks = 300;
shotticks1b = 300;
shotticks1 = 300;
shotticks2b = 80;
shotticks2 = 80;
shotticks3b = 145;
shotticks3 = 145;
shotticks4b = 300;
shotticks4 = 300;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 500;
shotticks = 600;
shotticksb = 600;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
var _local1:*;
var _local2:*;
var _local3:int;
_local1 = (Math.floor((Math.random() * 40)) + 130);
_local2 = (Math.floor((Math.random() * 40)) - 20);
_local3 = 0;
while (_local3 < 5) {
myParent.parent.MakeEnemy(3, (((_local3 * 100) + 25) + _local2), _local1, 0);
_local3++;
};
}
private function EnemyShoot3(){
}
private function EnemyShoot4(){
var _local1:int;
var _local2:Number;
var _local3:Number;
myParent.parent.parent.soundManager.PlaySound("enemyshot");
_local1 = 0;
while (_local1 < 17) {
_local2 = (x - (Math.cos(((((_local1 * 22.5) + 90) * Math.PI) / 180)) * 50));
_local3 = (y - (Math.sin(((((_local1 * 22.5) + 90) * Math.PI) / 180)) * 50));
myParent.parent.MakeEnemyShot(_local2, _local3, ((_local1 * 22.5) + rotation), 1, true);
_local1++;
};
}
private function EnemyShoot5(){
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.parent.soundManager.PlaySound("enemydie");
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndLevel();
};
}
}
}//package
Section 58
//MochiAdScreen (MochiAdScreen)
package {
import flash.display.*;
import mochi.as3.*;
public class MochiAdScreen extends MovieClip {
public var myParent:Object;
public function MochiAdScreen(_arg1){
myParent = _arg1;
setUp();
}
public function adStopped(){
trace("ad stopped");
myParent.MakeSponsorScreen();
}
public function adPlaying(){
}
private function setUp(){
RunAd();
}
private function RunAd(){
var myOptions:Object;
myOptions = {id:"d4e21ccd56633993", res:"450x600", clip:myParent, ad_started:function (){
adPlaying();
}, ad_finished:function (){
adStopped();
}};
MochiAd.showPreGameAd(myOptions);
}
}
}//package
Section 59
//Nephilim (Nephilim)
package {
import flash.events.*;
public class Nephilim extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var earnedPoints:int;// = 300
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;
private var shotticks:int;
private var isAlive:Boolean;
private var ymod:Number;
private var myPath:Array;
public function Nephilim(_arg1, _arg2, _arg3){
earnedPoints = 300;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 10;
shotticks = 100;
shotticksb = 100;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function EnemyShoot(){
if (y > -10){
myParent.parent.MakeEnemyShot(x, y, rotation, 2, false);
};
}
}
}//package
Section 60
//orcaLoopSound (orcaLoopSound)
package {
import flash.media.*;
public dynamic class orcaLoopSound extends Sound {
}
}//package
Section 61
//PauseScreen (PauseScreen)
package {
import flash.display.*;
public dynamic class PauseScreen extends MovieClip {
}
}//package
Section 62
//PetalSplash (PetalSplash)
package {
import flash.events.*;
public class PetalSplash extends Backwash {
private var counter:int;// = 22
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function PetalSplash(){
dir = 0;
speed = 1;
counter = 22;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
override protected function MoveEffectInside(){
counter--;
gotoAndStop((22 - counter));
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 63
//PlayerBomb (PlayerBomb)
package {
import flash.events.*;
public class PlayerBomb extends PlayerShot {
private var counter:int;// = 20
private var myParent:Object;
public function PlayerBomb(){
counter = 20;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
gotoAndStop((20 - counter));
counter--;
if (counter < 0){
myParent.removeChild(this);
};
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
isRemovable = false;
shotType = "bomb";
}
public function setCounter(_arg1){
counter = _arg1;
}
override protected function TestRemoveFunction(){
}
}
}//package
Section 64
//playerbombSound (playerbombSound)
package {
import flash.media.*;
public dynamic class playerbombSound extends Sound {
}
}//package
Section 65
//PlayerCore (PlayerCore)
package {
import flash.display.*;
public dynamic class PlayerCore extends MovieClip {
}
}//package
Section 66
//PlayerDeath (PlayerDeath)
package {
import flash.events.*;
public class PlayerDeath extends Backwash {
private var counter:int;// = 10
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function PlayerDeath(){
dir = 0;
speed = 1;
counter = 10;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = (Math.random() * 360);
}
override protected function MoveEffectInside(){
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 67
//playerdieSound (playerdieSound)
package {
import flash.media.*;
public dynamic class playerdieSound extends Sound {
}
}//package
Section 68
//playerexp1Sound (playerexp1Sound)
package {
import flash.media.*;
public dynamic class playerexp1Sound extends Sound {
}
}//package
Section 69
//playerexp2Sound (playerexp2Sound)
package {
import flash.media.*;
public dynamic class playerexp2Sound extends Sound {
}
}//package
Section 70
//playerexp3Sound (playerexp3Sound)
package {
import flash.media.*;
public dynamic class playerexp3Sound extends Sound {
}
}//package
Section 71
//playerexp4Sound (playerexp4Sound)
package {
import flash.media.*;
public dynamic class playerexp4Sound extends Sound {
}
}//package
Section 72
//PlayerHomingShot (PlayerHomingShot)
package {
import flash.events.*;
public class PlayerHomingShot extends PlayerShot {
private var counter:int;// = 40
private var myParent:Object;
private var type:String;
private var lifespan:int;// = 0
private var counterMax:int;// = 30
public function PlayerHomingShot(){
counter = 40;
counterMax = 30;
lifespan = 0;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:*;
var _local9:Number;
var _local10:Number;
counter--;
if (counter < 0){
lifespan++;
counter = counterMax;
if (myParent.parent.enemyHolder.numChildren > 0){
_local1 = 1000;
_local2 = 1000;
_local3 = 0;
_local4 = 0;
_local5 = 0;
while (_local5 < myParent.parent.enemyHolder.numChildren) {
_local8 = myParent.parent.enemyHolder.getChildAt(_local5);
_local9 = Math.abs((x - _local8.x));
_local10 = Math.abs((y - _local8.y));
if ((_local9 + _local10) < (_local1 + _local2)){
_local1 = Math.abs(_local9);
_local3 = _local8.x;
_local2 = Math.abs(_local10);
_local4 = _local8.y;
};
_local5++;
};
_local6 = (x - _local3);
_local7 = (y - _local4);
rotation = ((Math.atan2(_local7, _local6) / (Math.PI / 180)) - 90);
};
};
x = (x - (Math.cos((((rotation + 90) * Math.PI) / 180)) * speed));
y = (y - (Math.sin((((rotation + 90) * Math.PI) / 180)) * speed));
if (lifespan > 10){
RemoveMe();
};
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
}
}//package
Section 73
//PlayerLaser (PlayerLaser)
package {
import flash.events.*;
public class PlayerLaser extends PlayerShot {
private var counter:int;// = 40
private var myParent:Object;
private var type:String;
public function PlayerLaser(){
counter = 40;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
gotoAndStop((30 - counter));
counter--;
x = myParent.parent.player.x;
y = myParent.parent.player.y;
if (counter < 0){
RemoveMe();
};
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
isRemovable = false;
}
public function setCounter(_arg1){
counter = _arg1;
}
}
}//package
Section 74
//PlayerLaser2 (PlayerLaser2)
package {
import flash.events.*;
public class PlayerLaser2 extends PlayerLaser {
private var counter:int;// = 8
private var myParent:Object;
private var type:String;
public function PlayerLaser2(){
counter = 8;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
if (counter < 0){
myParent.removeChild(this);
};
counter--;
gotoAndStop((7 - counter));
x = myParent.parent.player.x;
y = myParent.parent.player.y;
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
isRemovable = false;
}
}
}//package
Section 75
//playerlaserlongSound (playerlaserlongSound)
package {
import flash.media.*;
public dynamic class playerlaserlongSound extends Sound {
}
}//package
Section 76
//playerlasershortSound (playerlasershortSound)
package {
import flash.media.*;
public dynamic class playerlasershortSound extends Sound {
}
}//package
Section 77
//PlayerShell (PlayerShell)
package {
import flash.display.*;
public dynamic class PlayerShell extends MovieClip {
}
}//package
Section 78
//PlayerShot (PlayerShot)
package {
import flash.display.*;
import flash.events.*;
public class PlayerShot extends MovieClip {
public var shotType:String;// = "null"
public var speed:int;// = 1
public var damage:int;// = 1
private var myParent:Object;
public var dir:Number;// = 0
public var isRemovable:Boolean;// = true
public function PlayerShot(){
shotType = "null";
dir = 0;
speed = 1;
damage = 1;
isRemovable = true;
super();
addEventListener(Event.ADDED, beginClass);
}
public function RemoveMe(){
TestRemoveFunction();
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
protected function MoveShotInside(){
x = (x - (Math.cos((((rotation + 90) * Math.PI) / 180)) * speed));
y = (y - (Math.sin((((rotation + 90) * Math.PI) / 180)) * speed));
}
public function MoveShot(){
MoveShotInside();
}
public function SetMe(_arg1, _arg2, _arg3){
rotation = _arg3;
speed = _arg1;
damage = _arg2;
}
public function CheckBounds(){
trace("checkbounds called");
if ((((((((y < -20)) || ((y > 620)))) || ((x < -20)))) || ((x > 470)))){
return (true);
};
}
protected function TestRemoveFunction(){
myParent.removeChild(this);
}
}
}//package
Section 79
//playershot1Sound (playershot1Sound)
package {
import flash.media.*;
public dynamic class playershot1Sound extends Sound {
}
}//package
Section 80
//playershot2Sound (playershot2Sound)
package {
import flash.media.*;
public dynamic class playershot2Sound extends Sound {
}
}//package
Section 81
//playershot3Sound (playershot3Sound)
package {
import flash.media.*;
public dynamic class playershot3Sound extends Sound {
}
}//package
Section 82
//playershot4Sound (playershot4Sound)
package {
import flash.media.*;
public dynamic class playershot4Sound extends Sound {
}
}//package
Section 83
//playershot5Sound (playershot5Sound)
package {
import flash.media.*;
public dynamic class playershot5Sound extends Sound {
}
}//package
Section 84
//playershot6Sound (playershot6Sound)
package {
import flash.media.*;
public dynamic class playershot6Sound extends Sound {
}
}//package
Section 85
//PlayerShotBubbles (PlayerShotBubbles)
package {
import flash.events.*;
public class PlayerShotBubbles extends Backwash {
private var counter:int;// = 8
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function PlayerShotBubbles(){
dir = 0;
speed = 1;
counter = 8;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = (Math.random() * 360);
}
override protected function MoveEffectInside(){
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 86
//PlayerShotHit (PlayerShotHit)
package {
import flash.events.*;
public class PlayerShotHit extends Backwash {
private var counter:int;// = 7
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function PlayerShotHit(){
dir = 0;
speed = 1;
counter = 7;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
rotation = (Math.random() * 360);
}
override protected function MoveEffectInside(){
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 87
//PlayerSquiggleShot (PlayerSquiggleShot)
package {
import flash.events.*;
public class PlayerSquiggleShot extends PlayerShot {
private var counter:int;// = 40
private var myParent:Object;
private var type:String;
private var lifespan:int;// = 0
private var counterMax:int;// = 20
public function PlayerSquiggleShot(){
counter = 40;
counterMax = 20;
lifespan = 0;
super();
addEventListener(Event.ADDED, beginClass);
}
override protected function MoveShotInside(){
rotation = (rotation + ((Math.random() * 4) - 2));
x = (x - (Math.cos((((rotation + 90) * Math.PI) / 180)) * speed));
y = (y - (Math.sin((((rotation + 90) * Math.PI) / 180)) * speed));
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
}
}
}//package
Section 88
//Principality (Principality)
package {
import flash.events.*;
public class Principality extends Enemy {
private var xmodb:Number;
private var shotticksb:int;// = 3
private var moveStep:int;
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 40
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;
private var shotticks:int;// = 3
private var isAlive:Boolean;
private var ymod:Number;
private var myPath:Array;
private var shotAngle:int;// = 0
public function Principality(_arg1, _arg2, _arg3){
hp = 40;
shotAngle = 0;
shotticksb = 3;
shotticks = 3;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
shotticks = 3;
shotticksb = 3;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function EnemyShoot(){
myParent.parent.MakeEnemyShot(x, y, shotAngle, 1, false);
shotAngle = (shotAngle + 10);
shotticksb = 3;
}
}
}//package
Section 89
//Raphael (Raphael)
package {
import flash.events.*;
public class Raphael extends Enemy {
private var shotticks2:int;// = 3
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 6000
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 1200
private var shotticks1b:int;// = 400
private var shotticks2b:int;// = 3
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 145
private var shotticks4b:int;// = 3
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;// = true
private var ymod:Number;
private var shotticks3:int;// = 145
private var myPath:Array;
private var shotAngle:int;// = 0
private var shotticks1:int;// = 400
private var shotticks4:int;// = 3
public function Raphael(_arg1, _arg2, _arg3){
shotAngle = 0;
earnedPoints = 6000;
follow = true;
hp = 1200;
shotticksb = 300;
shotticks = 300;
shotticks1b = 400;
shotticks1 = 400;
shotticks2b = 3;
shotticks2 = 3;
shotticks3b = 145;
shotticks3 = 145;
shotticks4b = 3;
shotticks4 = 3;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 1000;
shotticks = 600;
shotticksb = 600;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
var _local1:int;
var _local2:Number;
var _local3:Number;
_local1 = 0;
while (_local1 < 4) {
_local2 = (x - (Math.cos(((((_local1 * 30) + 225) * Math.PI) / 180)) * 100));
_local3 = (y - (Math.sin(((((_local1 * 30) + 225) * Math.PI) / 180)) * 100));
myParent.parent.MakeEnemy(4, _local2, _local3, 0);
_local1++;
};
}
private function EnemyShoot3(){
myParent.parent.MakeEnemyShot(x, y, shotAngle, 1, false);
shotAngle = (shotAngle + 10);
}
private function EnemyShoot4(){
var _local1:Number;
var _local2:int;
_local1 = ((Math.random() * 30) + 60);
_local2 = 0;
while (_local2 < 8) {
myParent.parent.MakeEnemy(13, (_local2 * 55), _local1, 0);
_local2++;
};
}
private function EnemyShoot5(){
myParent.parent.MakeEnemyShot(x, y, (shotAngle * -1), 1, false);
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndLevel();
};
}
}
}//package
Section 90
//Remiel (Remiel)
package {
import flash.events.*;
public class Remiel extends Enemy {
private var shotticks2:int;// = 150
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 3000
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 1400
private var shotticks1b:int;// = 300
private var shotticks2b:int;// = 150
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 10
private var shotticks4b:int;// = 200
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;// = true
private var ymod:Number;
private var shotticks3:int;// = 10
private var myPath:Array;
private var shotticks1:int;// = 300
private var shotticks4:int;// = 200
public function Remiel(_arg1, _arg2, _arg3){
earnedPoints = 3000;
follow = true;
hp = 1400;
shotticksb = 300;
shotticks = 300;
shotticks1b = 300;
shotticks1 = 300;
shotticks2b = 150;
shotticks2 = 150;
shotticks3b = 10;
shotticks3 = 10;
shotticks4b = 200;
shotticks4 = 200;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 1000;
shotticks = 600;
shotticksb = 600;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
var _local1:*;
var _local2:Number;
var _local3:Number;
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
rotation = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) + 90);
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
var _local1:*;
var _local2:*;
_local1 = (Math.floor((Math.random() * 20)) + 140);
_local2 = (myParent.parent.enemyHolder.numChildren - 1);
myParent.parent.MakeEnemy(9, ((_local2 * 50) + 25), _local1, 0);
myParent.parent.MakeEnemy(9, (425 - (_local2 * 50)), _local1, 0);
}
private function EnemyShoot3(){
var _local1:int;
myParent.parent.parent.soundManager.PlaySound("enemyshot");
_local1 = 0;
while (_local1 < 3) {
myParent.parent.MakeEnemyShot(((x + (Math.random() * 30)) - 15), ((y + (Math.random() * 30)) - 15), ((rotation + (_local1 * 30)) - 30), 6, true);
_local1++;
};
}
private function EnemyShoot4(){
var _local1:int;
myParent.parent.parent.soundManager.PlaySound("enemyshot");
_local1 = 0;
while (_local1 < 8) {
myParent.parent.MakeEnemyShot(x, y, (Math.random() * 360), 1, true);
_local1++;
};
}
private function EnemyShoot5(){
var _local1:int;
_local1 = 0;
while (_local1 < 20) {
myParent.parent.MakeEnemyShot(((x + (Math.random() * 20)) - 10), ((y + (Math.random() * 20)) - 10), 0, 2, true);
_local1++;
};
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndLevel();
};
}
}
}//package
Section 91
//Samael (Samael)
package {
import flash.events.*;
public class Samael extends Enemy {
private var shotticks2:int;// = 150
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 6000
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 2200
private var shotticks1b:int;// = 200
private var shotticks2b:int;// = 150
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 180
private var shotticks4b:int;// = 20
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;// = true
private var ymod:Number;
private var shotticks3:int;// = 180
private var myPath:Array;
private var shotticks1:int;// = 200
private var shotticks4:int;// = 20
public function Samael(_arg1, _arg2, _arg3){
earnedPoints = 6000;
follow = true;
hp = 2200;
shotticksb = 300;
shotticks = 300;
shotticks1b = 200;
shotticks1 = 200;
shotticks2b = 150;
shotticks2 = 150;
shotticks3b = 180;
shotticks3 = 180;
shotticks4b = 20;
shotticks4 = 20;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 1000;
shotticks = 600;
shotticksb = 600;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
var _local1:*;
var _local2:Number;
var _local3:Number;
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
rotation = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) + 90);
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
var _local1:int;
var _local2:int;
var _local3:Number;
var _local4:Number;
_local1 = Math.floor((Math.random() * 90));
_local2 = 0;
while (_local2 < 4) {
_local3 = (myParent.parent.player.x - (Math.cos(((((_local2 * 45) + _local1) * Math.PI) / 90)) * 240));
_local4 = (myParent.parent.player.y - (Math.sin(((((_local2 * 45) + _local1) * Math.PI) / 90)) * 240));
myParent.parent.MakeEnemy(11, _local3, _local4, 0);
_local2++;
};
}
private function EnemyShoot3(){
var _local1:int;
var _local2:int;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
myParent.parent.parent.soundManager.PlaySound("enemyshot");
_local1 = 0;
while (_local1 < 6) {
_local3 = (x - (Math.cos(((((_local1 * 5) + rotation) * Math.PI) / 180)) * 20));
_local4 = (y - (Math.sin(((((_local1 * 5) + rotation) * Math.PI) / 180)) * 20));
myParent.parent.MakeEnemyShot(_local3, _local4, ((rotation + (_local1 * 5)) - 10), 4, true);
_local1++;
};
_local2 = 0;
while (_local2 < 6) {
_local5 = (x + (Math.cos(((((_local2 * 5) + rotation) * Math.PI) / 180)) * 20));
_local6 = (y + (Math.sin(((((_local2 * 5) + rotation) * Math.PI) / 180)) * 20));
myParent.parent.MakeEnemyShot(_local5, _local6, ((rotation + (_local2 * 5)) - 10), 4, true);
_local2++;
};
}
private function EnemyShoot4(){
var _local1:int;
myParent.parent.parent.soundManager.PlaySound("enemylaser");
_local1 = 0;
while (_local1 < 18) {
myParent.parent.MakeEnemyShot(((x + (Math.random() * 30)) - 15), ((y + (Math.random() * 30)) - 15), rotation, 2, true);
_local1++;
};
}
private function EnemyShoot5(){
myParent.parent.MakeEnemyShot(x, y, rotation, 6, false);
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndLevel();
};
}
}
}//package
Section 92
//SatanWing (SatanWing)
package {
import flash.display.*;
public dynamic class SatanWing extends MovieClip {
}
}//package
Section 93
//SelectButton (SelectButton)
package {
import flash.display.*;
public dynamic class SelectButton extends SimpleButton {
}
}//package
Section 94
//Seraphim (Seraphim)
package {
import flash.events.*;
public class Seraphim extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;
private var isAlive:Boolean;
private var ymod:Number;
private var myPath:Array;
public function Seraphim(_arg1, _arg2, _arg3){
var _local4:Array;
follow = true;
super(_arg1, _arg2, _arg3);
_local4 = [100, 0, 1, 0, 0, 100, 0, -1, 0, 0, 10000000, 0, 0.25, 0, 0];
x = _arg1;
y = _arg2;
myPath = _local4;
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 50;
shotticks = 45;
shotticksb = 45;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function EnemyShoot(){
var _local1:int;
_local1 = 0;
while (_local1 < 6) {
myParent.parent.MakeEnemyShot(x, y, ((rotation + (_local1 * 10)) - 30), 1, false);
_local1++;
};
}
}
}//package
Section 95
//ShipSelectScreen (ShipSelectScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class ShipSelectScreen extends MovieClip {
public var ShipSelected:int;
public var GameTimer:Timer;
public var myParent:Object;
public var myCore:PlayerCore;
public function ShipSelectScreen(_arg1){
myParent = _arg1;
setUp();
}
private function Button1Pressed(_arg1:MouseEvent){
ShipSelected = 1;
myParent.NewGame(ShipSelected);
}
private function Button6Pressed(_arg1:MouseEvent){
ShipSelected = 6;
myParent.NewGame(ShipSelected);
}
private function Button5Pressed(_arg1:MouseEvent){
ShipSelected = 5;
myParent.NewGame(ShipSelected);
}
private function GameActions(_arg1:TimerEvent):void{
myCore.x = mouseX;
myCore.y = mouseY;
}
private function setUp(){
var _local1:SelectButton;
var _local2:SelectButton;
var _local3:SelectButton;
var _local4:SelectButton;
var _local5:SelectButton;
var _local6:SelectButton;
myCore = new PlayerCore();
addChild(myCore);
_local1 = new SelectButton();
_local1.addEventListener(MouseEvent.MOUSE_UP, Button1Pressed);
_local2 = new SelectButton();
_local2.addEventListener(MouseEvent.MOUSE_UP, Button2Pressed);
_local3 = new SelectButton();
_local3.addEventListener(MouseEvent.MOUSE_UP, Button3Pressed);
_local4 = new SelectButton();
_local4.addEventListener(MouseEvent.MOUSE_UP, Button4Pressed);
_local5 = new SelectButton();
_local5.addEventListener(MouseEvent.MOUSE_UP, Button5Pressed);
_local6 = new SelectButton();
_local6.addEventListener(MouseEvent.MOUSE_UP, Button6Pressed);
addChild(_local1);
_local1.x = -110;
_local1.width = 210;
_local1.height = 168;
_local1.y = -180;
addChild(_local2);
_local2.x = 110;
_local2.width = 210;
_local2.height = 168;
_local2.y = -180;
addChild(_local3);
_local3.x = -110;
_local3.width = 210;
_local3.height = 168;
_local3.y = 2;
addChild(_local4);
_local4.x = 110;
_local4.width = 210;
_local4.height = 168;
_local4.y = 2;
addChild(_local5);
_local5.x = -110;
_local5.width = 210;
_local5.height = 168;
_local5.y = 180;
addChild(_local6);
_local6.x = 110;
_local6.width = 210;
_local6.height = 168;
_local6.y = 180;
GameTimer = new Timer(25);
GameTimer.addEventListener(TimerEvent.TIMER, GameActions);
GameTimer.start();
}
private function Button4Pressed(_arg1:MouseEvent){
ShipSelected = 4;
myParent.NewGame(ShipSelected);
}
private function Button3Pressed(_arg1:MouseEvent){
ShipSelected = 3;
myParent.NewGame(ShipSelected);
}
private function Button2Pressed(_arg1:MouseEvent){
ShipSelected = 2;
myParent.NewGame(ShipSelected);
}
}
}//package
Section 96
//SoundManager (SoundManager)
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
public class SoundManager extends MovieClip {
public var BGMToggle:Boolean;
public var myBGMChannel2:SoundChannel;
public var soundToggle:Boolean;
public var musicPlaying:int;
public var soundCount:int;
public var BGMArray:Array;
public var mySound:Sound;
public var soundChannelArray:Array;
public var soundTrans:SoundTransform;
public var BGMTrans:SoundTransform;
public var myBGMChannel:SoundChannel;
public function SoundManager(){
addEventListener(Event.ADDED, beginClass);
}
public function PlaySound(_arg1){
var _local2:*;
var _local3:int;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:*;
var _local20:*;
var _local21:*;
var _local22:*;
var _local23:*;
var _local24:*;
var _local25:*;
var _local26:*;
var _local27:*;
var _local28:*;
var _local29:*;
var _local30:*;
switch (_arg1){
case "enemyhit":
_local2 = new enemyhitSound();
soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans);
break;
case "enemydie":
_local3 = Math.floor((Math.random() * 4));
switch (_local3){
case 0:
_local12 = new enemydie1Sound();
soundChannelArray[soundCount] = _local12.play(0, 1, soundTrans);
break;
case 1:
_local13 = new enemydie2Sound();
soundChannelArray[soundCount] = _local13.play(0, 1, soundTrans);
break;
case 2:
_local14 = new enemydie3Sound();
soundChannelArray[soundCount] = _local14.play(0, 1, soundTrans);
break;
case 3:
_local15 = new enemydie4Sound();
soundChannelArray[soundCount] = _local15.play(0, 1, soundTrans);
break;
};
break;
case "enemyshot":
_local3 = Math.floor((Math.random() * 5));
switch (_local3){
case 0:
_local16 = new enemyshot1Sound();
soundChannelArray[soundCount] = _local16.play(0, 1, soundTrans);
break;
case 1:
_local17 = new enemyshot2Sound();
soundChannelArray[soundCount] = _local17.play(0, 1, soundTrans);
break;
case 2:
_local18 = new enemyshot3Sound();
soundChannelArray[soundCount] = _local18.play(0, 1, soundTrans);
break;
case 3:
_local19 = new enemyshot4Sound();
soundChannelArray[soundCount] = _local19.play(0, 1, soundTrans);
break;
case 4:
_local20 = new enemyshot5Sound();
soundChannelArray[soundCount] = _local20.play(0, 1, soundTrans);
break;
};
break;
case "enemylaser":
_local4 = new enemylaserSound();
soundChannelArray[soundCount] = _local4.play(0, 1, soundTrans);
break;
case "playerdie":
_local5 = new playerdieSound();
soundChannelArray[soundCount] = _local5.play(0, 1, soundTrans);
break;
case "playerbomb":
_local6 = new playerbombSound();
soundChannelArray[soundCount] = _local6.play(0, 1, soundTrans);
break;
case "playerlaserlong":
_local7 = new playerlaserlongSound();
soundChannelArray[soundCount] = _local7.play(0, 1, soundTrans);
break;
case "playerlasershort":
_local8 = new playerlasershortSound();
soundChannelArray[soundCount] = _local8.play(0, 1, soundTrans);
break;
case "playershot":
_local3 = Math.floor((Math.random() * 6));
switch (_local3){
case 0:
_local21 = new playershot1Sound();
soundChannelArray[soundCount] = _local21.play(0, 1, soundTrans);
break;
case 1:
_local22 = new playershot2Sound();
soundChannelArray[soundCount] = _local22.play(0, 1, soundTrans);
break;
case 2:
_local23 = new playershot3Sound();
soundChannelArray[soundCount] = _local23.play(0, 1, soundTrans);
break;
case 3:
_local24 = new playershot4Sound();
soundChannelArray[soundCount] = _local24.play(0, 1, soundTrans);
break;
case 4:
_local25 = new playershot5Sound();
soundChannelArray[soundCount] = _local25.play(0, 1, soundTrans);
break;
case 5:
_local26 = new playershot6Sound();
soundChannelArray[soundCount] = _local26.play(0, 1, soundTrans);
break;
};
break;
case "playerexp":
_local3 = Math.floor((Math.random() * 8));
switch (_local3){
case 0:
_local27 = new playerexp1Sound();
soundChannelArray[soundCount] = _local27.play(0, 1, soundTrans);
break;
case 1:
_local28 = new playerexp2Sound();
soundChannelArray[soundCount] = _local28.play(0, 1, soundTrans);
break;
case 2:
_local29 = new playerexp3Sound();
soundChannelArray[soundCount] = _local29.play(0, 1, soundTrans);
break;
case 3:
_local30 = new playerexp4Sound();
soundChannelArray[soundCount] = _local30.play(0, 1, soundTrans);
break;
};
break;
case "uimouseover":
_local9 = new uimouseoverSound();
soundChannelArray[soundCount] = _local9.play(0, 1, soundTrans);
break;
case "uinegative":
_local10 = new uinegativeSound();
soundChannelArray[soundCount] = _local10.play(0, 1, soundTrans);
break;
case "uiselected":
_local11 = new uiselectedSound();
soundChannelArray[soundCount] = _local11.play(0, 1, soundTrans);
break;
};
soundCount++;
if (soundCount > 19){
soundCount = 0;
};
}
private function beginClass(_arg1:Event){
var _local2:int;
var _local3:SoundChannel;
soundChannelArray = new Array();
_local2 = 0;
while (_local2 > 20) {
_local3 = new SoundChannel();
soundChannelArray[_local2] = _local3;
_local2++;
};
myBGMChannel = new SoundChannel();
myBGMChannel2 = new SoundChannel();
BGMArray = [myBGMChannel, myBGMChannel2];
soundCount = 0;
soundToggle = true;
soundTrans = new SoundTransform(0.3, 0);
BGMToggle = true;
BGMTrans = new SoundTransform(0.6, 0);
removeEventListener(Event.ADDED, beginClass);
}
public function ToggleSound(){
if (soundToggle == true){
soundToggle = false;
soundTrans = new SoundTransform(0, 0);
} else {
soundToggle = true;
soundTrans = new SoundTransform(0.9, 0);
};
}
public function StopBGM(){
SoundMixer.stopAll();
}
public function ToggleBGM(){
if (BGMToggle == true){
BGMToggle = false;
BGMTrans = new SoundTransform(0, 0);
StopBGM();
} else {
BGMToggle = true;
BGMTrans = new SoundTransform(1, 0);
if (musicPlaying == 1){
PlayBGM("gameloop");
};
if (musicPlaying == 2){
PlayBGM("orca");
};
if (musicPlaying == 3){
PlayBGM("title");
};
if (musicPlaying == 4){
PlayBGM("gameover");
};
};
}
public function PlayBGM(_arg1){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
if (BGMToggle == true){
_local2 = new gameloopLoopSound();
_local3 = new orcaLoopSound();
_local4 = new titleLoopSound();
_local5 = new gameoverLoopSound();
switch (_arg1){
case "gameloop":
musicPlaying = 1;
myBGMChannel = _local2.play(0, 99, BGMTrans);
break;
case "orca":
musicPlaying = 2;
myBGMChannel = _local3.play(0, 99, BGMTrans);
break;
case "title":
musicPlaying = 3;
myBGMChannel = _local4.play(0, 99, BGMTrans);
break;
case "gameover":
musicPlaying = 4;
myBGMChannel = _local5.play(0, 99, BGMTrans);
break;
};
};
}
}
}//package
Section 97
//Sword (Sword)
package {
import flash.events.*;
public class Sword extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var earnedPoints:int;// = 300
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var rotationAmount:Number;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var shotticks:int;
private var isAlive:Boolean;// = true
private var ymod:Number;
private var myPath:Array;
public function Sword(_arg1, _arg2, _arg3){
earnedPoints = 300;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
rotationAmount = (_arg3 / 12);
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 100;
shotticks = 40;
shotticksb = 40;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
rotation = (rotation + 24);
}
override protected function EnemyShoot(){
}
}
}//package
Section 98
//Thorns (Thorns)
package {
import flash.events.*;
public class Thorns extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var shotticks:int;
private var isAlive:Boolean;
private var ymod:Number;
private var myPath:Array;
public function Thorns(_arg1, _arg2, _arg3){
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = [1000000000, 0, 0.025, 0, 0, 1000000000, 0, 0, 0, 0];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 30;
shotticks = 1000;
shotticksb = 1000000;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
}
override protected function EnemyShoot(){
var _local1:*;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
_local4 = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) - 90);
_local5 = (Math.cos(((rotation * Math.PI) / 180)) * width);
_local6 = (Math.sin(((rotation * Math.PI) / 180)) * height);
trace(_local5);
trace(_local6);
myParent.parent.MakeNewThorn((x + _local5), ((y + _local6) + height), _local4);
}
}
}//package
Section 99
//Throne (Throne)
package {
import flash.events.*;
public class Throne extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;
private var isAlive:Boolean;
private var ymod:Number;
private var myPath:Array;
public function Throne(_arg1, _arg2, _arg3){
var _local4:Array;
follow = true;
super(_arg1, _arg2, _arg3);
_local4 = [100, 0, 1, 0, 0, 100, 0, -1, 0, 0, 10000000, 0, 0.25, 0, 0];
x = _arg1;
y = _arg2;
myPath = _local4;
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 10;
shotticks = 30;
shotticksb = 30;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function EnemyShoot(){
myParent.parent.MakeEnemyShot(x, y, rotation, 5, false);
}
}
}//package
Section 100
//titleLoopSound (titleLoopSound)
package {
import flash.media.*;
public dynamic class titleLoopSound extends Sound {
}
}//package
Section 101
//TitleScreen (TitleScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class TitleScreen extends MovieClip {
public var ShipSelected:int;
private var effectsHolder:Sprite;
public var GameTimer:Timer;
public var myParent:Object;
public var myCore:PlayerCore;
public function TitleScreen(_arg1){
myParent = _arg1;
setUp();
}
private function Button1Pressed(_arg1:MouseEvent){
myParent.soundManager.PlaySound("uiselected");
myParent.NewShipSelect();
}
private function ButtonOverSound(_arg1:MouseEvent){
myParent.soundManager.PlaySound("uimouseover");
}
private function GameActions(_arg1:TimerEvent):void{
var _local2:PetalSplash;
var _local3:*;
var _local4:int;
var _local5:EnemyShotSplash;
var _local6:int;
var _local7:*;
myCore.x = mouseX;
myCore.y = mouseY;
if (Math.floor((Math.random() * 100)) > 95){
_local2 = new PetalSplash();
_local2.x = (Math.floor((Math.random() * 400)) + 25);
_local2.y = (Math.floor((Math.random() * 550)) + 25);
_local2.height = (_local2.height * ((Math.random() * 8) + 1));
_local2.width = _local2.height;
effectsHolder.addChild(_local2);
};
if (Math.floor((Math.random() * 20)) > 18){
_local3 = (Math.floor((Math.random() * 400)) + 25);
_local4 = 0;
while (_local4 < 50) {
_local5 = new EnemyShotSplash();
_local5.x = _local3;
_local5.y = (_local4 * 12);
_local5.width = (_local5.width * 0.25);
effectsHolder.addChild(_local5);
_local4++;
};
};
if (effectsHolder.numChildren > 0){
_local6 = 0;
while (_local6 < effectsHolder.numChildren) {
_local7 = effectsHolder.getChildAt(_local6);
_local7.MoveEffect();
_local6++;
};
};
}
private function setUp(){
var _local1:SelectButton;
var _local2:SelectButton;
var _local3:SelectButton;
var _local4:SelectButton;
effectsHolder = new Sprite();
addChild(effectsHolder);
effectsHolder.x = -225;
effectsHolder.y = -300;
myCore = new PlayerCore();
addChild(myCore);
_local1 = new SelectButton();
_local1.addEventListener(MouseEvent.MOUSE_UP, Button1Pressed);
_local1.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local2 = new SelectButton();
_local2.addEventListener(MouseEvent.MOUSE_UP, Button2Pressed);
_local2.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local3 = new SelectButton();
_local3.addEventListener(MouseEvent.MOUSE_UP, Button3Pressed);
_local3.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local4 = new SelectButton();
_local4.addEventListener(MouseEvent.MOUSE_UP, Button4Pressed);
_local4.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
addChild(_local1);
_local1.x = 0;
_local1.y = 39;
addChild(_local2);
_local2.x = 0;
_local2.y = 106;
addChild(_local3);
_local3.x = 0;
_local3.y = 170;
addChild(_local4);
_local4.x = 0;
_local4.y = 234;
GameTimer = new Timer(25);
GameTimer.addEventListener(TimerEvent.TIMER, GameActions);
GameTimer.start();
}
private function Button4Pressed(_arg1:MouseEvent){
var url:String;
var request:URLRequest;
var event = _arg1;
myParent.soundManager.PlaySound("uiselected");
url = "http://www.shortandhappy.com/games/";
request = new URLRequest(url);
try {
navigateToURL(request, "_blank");
} catch(e:Error) {
trace("Error occurred!");
};
}
private function Button3Pressed(_arg1:MouseEvent){
myParent.soundManager.PlaySound("uiselected");
myParent.NewHowToPlay();
}
private function Button2Pressed(_arg1:MouseEvent){
myParent.soundManager.PlaySound("uiselected");
myParent.soundManager.ToggleBGM();
myParent.soundManager.ToggleSound();
}
}
}//package
Section 102
//TransparencyScreen (TransparencyScreen)
package {
import flash.events.*;
public class TransparencyScreen extends Backwash {
private var counter:int;// = 300
private var speed:int;// = 1
private var myParent:Object;
private var dir:Number;// = 0
public function TransparencyScreen(){
dir = 0;
speed = 1;
counter = 300;
super();
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(_arg1:Event):void{
removeEventListener(Event.ADDED, beginClass);
myParent = this.parent;
alpha = 0;
}
override protected function MoveEffectInside(){
alpha = (alpha + 0.005);
counter--;
if (counter < 1){
myParent.removeChild(this);
};
}
}
}//package
Section 103
//uimouseoverSound (uimouseoverSound)
package {
import flash.media.*;
public dynamic class uimouseoverSound extends Sound {
}
}//package
Section 104
//uinegativeSound (uinegativeSound)
package {
import flash.media.*;
public dynamic class uinegativeSound extends Sound {
}
}//package
Section 105
//uiselectedSound (uiselectedSound)
package {
import flash.media.*;
public dynamic class uiselectedSound extends Sound {
}
}//package
Section 106
//UnsavedSoul (UnsavedSoul)
package {
import flash.events.*;
public class UnsavedSoul extends Enemy {
private var xmodb:Number;
private var shotticksb:int;
private var moveStep:int;
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;
private var xbase:Number;
private var bulletHolder:Object;
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;
private var isAlive:Boolean;// = true
private var ymod:Number;
private var myPath:Array;
public function UnsavedSoul(_arg1, _arg2, _arg3){
follow = true;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = [1000, 0, 0.5, 0, 0];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 10;
shotticks = 100;
shotticksb = 100;
moveStep = 0;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
rotation = (rotation + 3);
if (isAlive == false){
myParent.removeChild(this);
};
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.parent.soundManager.PlaySound("enemyshot");
_local2 = 0;
while (_local2 < 35) {
_local3 = (x - (Math.cos(((((_local2 * 11.25) + 90) * Math.PI) / 180)) * 50));
_local4 = (y - (Math.sin(((((_local2 * 11.25) + 90) * Math.PI) / 180)) * 50));
myParent.parent.MakeEnemyShot(_local3, _local4, ((_local2 * 11.25) + rotation), 1, true);
_local2++;
};
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
};
}
}
}//package
Section 107
//UpgradeBox (UpgradeBox)
package {
import flash.display.*;
public dynamic class UpgradeBox extends MovieClip {
}
}//package
Section 108
//UpgradeScreen (UpgradeScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
public class UpgradeScreen extends MovieClip {
public var UpgradeBox2:UpgradeBox;
public var UpgradeBox3:UpgradeBox;
public var ShipSelected:int;// = 0
public var EXPTextField:TextField;
public var myTextFormat:TextFormat;
public var GameTimer:Timer;
public var myParent:Object;
public var myCore:PlayerCore;
public var upgradeArray:Array;
private var costArray:Array;
public var myEXP:int;
private var extraLives:int;// = 0
public var UpgradeBox4:UpgradeBox;
public var UpgradeBox5:UpgradeBox;
public var UpgradeBox1:UpgradeBox;
public function UpgradeScreen(_arg1, _arg2, _arg3){
extraLives = 0;
costArray = [0, 50, 100, 300, 600];
UpgradeBox1 = new UpgradeBox();
UpgradeBox2 = new UpgradeBox();
UpgradeBox3 = new UpgradeBox();
UpgradeBox4 = new UpgradeBox();
UpgradeBox5 = new UpgradeBox();
ShipSelected = 0;
super();
myParent = _arg1;
myEXP = _arg2;
upgradeArray = _arg3;
setUp();
}
private function Button1Pressed(_arg1:MouseEvent){
CheckUpgrade(0);
}
private function CheckUpgrade(_arg1:int){
var _local2:int;
var _local3:*;
_local2 = costArray[(upgradeArray[_arg1] + 1)];
if (_local2 > myEXP){
myParent.soundManager.PlaySound("uinegative");
} else {
myParent.soundManager.PlaySound("uiselected");
myEXP = (myEXP - _local2);
_local3 = upgradeArray[_arg1];
_local3++;
upgradeArray[_arg1] = _local3;
UpgradeBox1.gotoAndStop((upgradeArray[0] + 1));
UpgradeBox2.gotoAndStop((upgradeArray[1] + 1));
UpgradeBox3.gotoAndStop((upgradeArray[2] + 1));
UpgradeBox4.gotoAndStop((upgradeArray[3] + 1));
UpgradeBox5.gotoAndStop((upgradeArray[4] + 1));
if (_arg1 == 4){
extraLives++;
};
EXPTextField.text = myEXP.toString();
};
}
private function ButtonOverSound(_arg1:MouseEvent){
myParent.soundManager.PlaySound("uimouseover");
}
private function Button6Pressed(_arg1:MouseEvent){
GameTimer.removeEventListener(TimerEvent.TIMER, GameActions);
myParent.UpgradeToLevel(myEXP, upgradeArray, extraLives);
}
private function Button5Pressed(_arg1:MouseEvent){
CheckUpgrade(4);
}
private function GameActions(_arg1:TimerEvent):void{
myCore.x = mouseX;
myCore.y = mouseY;
}
private function setUp(){
var _local1:SelectButton;
var _local2:SelectButton;
var _local3:SelectButton;
var _local4:SelectButton;
var _local5:SelectButton;
var _local6:SelectButton;
EXPTextField = new TextField();
myTextFormat = new TextFormat();
myTextFormat.size = 22;
myTextFormat.color = 0;
myTextFormat.align = TextFormatAlign.LEFT;
myTextFormat.font = "Alfabetix";
addChild(EXPTextField);
EXPTextField.width = 450;
EXPTextField.x = -160;
EXPTextField.y = 272;
EXPTextField.text = myEXP.toString();
EXPTextField.alpha = 0.8;
EXPTextField.setTextFormat(myTextFormat);
EXPTextField.embedFonts = true;
EXPTextField.defaultTextFormat = myTextFormat;
UpgradeBox1 = new UpgradeBox();
addChild(UpgradeBox1);
UpgradeBox1.x = 130;
UpgradeBox1.y = -217;
UpgradeBox1.gotoAndStop((upgradeArray[0] + 1));
UpgradeBox2 = new UpgradeBox();
addChild(UpgradeBox2);
UpgradeBox2.x = 130;
UpgradeBox2.y = -110;
UpgradeBox2.gotoAndStop((upgradeArray[1] + 1));
UpgradeBox3 = new UpgradeBox();
addChild(UpgradeBox3);
UpgradeBox3.x = 130;
UpgradeBox3.y = -2;
UpgradeBox3.gotoAndStop((upgradeArray[2] + 1));
UpgradeBox4 = new UpgradeBox();
addChild(UpgradeBox4);
UpgradeBox4.x = 130;
UpgradeBox4.y = 107;
UpgradeBox4.gotoAndStop((upgradeArray[3] + 1));
UpgradeBox5 = new UpgradeBox();
addChild(UpgradeBox5);
UpgradeBox5.x = 130;
UpgradeBox5.y = 214;
UpgradeBox5.gotoAndStop((upgradeArray[4] + 1));
myCore = new PlayerCore();
addChild(myCore);
_local1 = new SelectButton();
_local1.addEventListener(MouseEvent.MOUSE_UP, Button1Pressed);
_local1.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local2 = new SelectButton();
_local2.addEventListener(MouseEvent.MOUSE_UP, Button2Pressed);
_local2.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local3 = new SelectButton();
_local3.addEventListener(MouseEvent.MOUSE_UP, Button3Pressed);
_local3.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local4 = new SelectButton();
_local4.addEventListener(MouseEvent.MOUSE_UP, Button4Pressed);
_local4.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local5 = new SelectButton();
_local5.addEventListener(MouseEvent.MOUSE_UP, Button5Pressed);
_local5.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
_local6 = new SelectButton();
_local6.addEventListener(MouseEvent.MOUSE_UP, Button6Pressed);
_local6.addEventListener(MouseEvent.MOUSE_OVER, ButtonOverSound);
addChild(_local1);
_local1.x = 0;
_local1.y = -217;
_local1.width = 450;
_local1.height = 98;
addChild(_local2);
_local2.x = 0;
_local2.y = -110;
_local2.width = 450;
_local2.height = 98;
addChild(_local3);
_local3.x = 0;
_local3.y = -4;
_local3.width = 450;
_local3.height = 98;
addChild(_local4);
_local4.x = 0;
_local4.y = 104;
_local4.width = 450;
_local4.height = 98;
addChild(_local5);
_local5.x = 0;
_local5.y = 214;
_local5.width = 450;
_local5.height = 98;
addChild(_local6);
_local6.x = 130;
_local6.y = 290;
_local6.width = 200;
GameTimer = new Timer(25);
GameTimer.addEventListener(TimerEvent.TIMER, GameActions);
GameTimer.start();
}
private function Button3Pressed(_arg1:MouseEvent){
CheckUpgrade(2);
}
private function Button4Pressed(_arg1:MouseEvent){
CheckUpgrade(3);
}
private function Button2Pressed(_arg1:MouseEvent){
CheckUpgrade(1);
}
}
}//package
Section 109
//Uriel (Uriel)
package {
import flash.events.*;
public class Uriel extends Enemy {
private var shotticks2:int;// = 150
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 3000
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 1000
private var shotticks1b:int;// = 300
private var shotticks2b:int;// = 150
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 10
private var shotticks4b:int;// = 300
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;// = true
private var ymod:Number;
private var shotticks3:int;// = 10
private var myPath:Array;
private var shotticks1:int;// = 300
private var shotticks4:int;// = 300
public function Uriel(_arg1, _arg2, _arg3){
earnedPoints = 3000;
follow = true;
hp = 1000;
shotticksb = 300;
shotticks = 300;
shotticks1b = 300;
shotticks1 = 300;
shotticks2b = 150;
shotticks2 = 150;
shotticks3b = 10;
shotticks3 = 10;
shotticks4b = 300;
shotticks4 = 300;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 1000;
shotticks = 600;
shotticksb = 600;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
var _local1:*;
var _local2:Number;
var _local3:Number;
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
rotation = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) + 90);
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
var _local1:int;
var _local2:EnemyWall;
_local1 = 0;
while (_local1 < 6) {
_local2 = new EnemyWall(((x + (Math.random() * 30)) - 15), ((y + (Math.random() * 30)) - 15), 11);
_local2.rotation = (Math.random() * 360);
myParent.parent.enemyHolder.addChild(_local2);
_local1++;
};
}
private function EnemyShoot3(){
var _local1:int;
_local1 = 0;
while (_local1 < 6) {
myParent.parent.MakeEnemyShot(x, y, ((rotation + (_local1 * 10)) - 30), 1, true);
_local1++;
};
}
private function EnemyShoot4(){
var _local1:int;
_local1 = 0;
while (_local1 < 5) {
myParent.parent.MakeEnemyShot(x, y, (Math.random() * 360), 1, true);
_local1++;
};
}
private function EnemyShoot5(){
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndLevel();
};
}
}
}//package
Section 110
//Zachariel (Zachariel)
package {
import flash.events.*;
public class Zachariel extends Enemy {
private var shotticks2:int;// = 100
private var xmodb:Number;
private var shotticksb:int;// = 300
private var moveStep:int;
private var earnedPoints:int;// = 5000
private var ticks:int;
private var ybase:Number;
private var points:int;
private var hp:int;// = 1800
private var shotticks1b:int;// = 200
private var shotticks2b:int;// = 100
private var xbase:Number;
private var bulletHolder:Object;
private var shotticks3b:int;// = 25
private var shotticks4b:int;// = 200
private var myParent:Object;
private var xmod:Number;
private var ymodb:Number;
private var follow:Boolean;// = true
private var shotticks:int;// = 300
private var isAlive:Boolean;// = true
private var ymod:Number;
private var shotticks3:int;// = 25
private var myPath:Array;
private var shotticks1:int;// = 200
private var shotticks4:int;// = 200
public function Zachariel(_arg1, _arg2, _arg3){
earnedPoints = 5000;
follow = true;
hp = 1800;
shotticksb = 300;
shotticks = 300;
shotticks1b = 200;
shotticks1 = 200;
shotticks2b = 100;
shotticks2 = 100;
shotticks3b = 25;
shotticks3 = 25;
shotticks4b = 200;
shotticks4 = 200;
isAlive = true;
super(_arg1, _arg2, _arg3);
x = _arg1;
y = _arg2;
myPath = pathArray[_arg3];
addEventListener(Event.ADDED, beginClass);
}
private function checkHitPlayer(){
}
private function beginClass(_arg1:Event):void{
myParent = this.parent;
hp = 1000;
shotticks = 600;
shotticksb = 600;
getNextMovement();
removeEventListener(Event.ADDED, beginClass);
}
override protected function RotateEnemy(){
var _local1:*;
var _local2:Number;
var _local3:Number;
_local1 = myParent.parent.player;
_local2 = (x - _local1.x);
_local3 = (y - _local1.y);
rotation = ((Math.atan2(_local3, _local2) / (Math.PI / 180)) + 90);
shotticks1--;
shotticks2--;
shotticks3--;
shotticks4--;
if (shotticks1 < 0){
shotticks1 = shotticks1b;
EnemyShoot2();
};
if (shotticks2 < 0){
shotticks2 = shotticks2b;
EnemyShoot3();
};
if (shotticks3 < 0){
shotticks3 = shotticks3b;
EnemyShoot4();
};
if (shotticks4 < 0){
shotticks4 = shotticks4b;
EnemyShoot5();
};
}
private function EnemyShoot2(){
}
private function EnemyShoot3(){
var _local1:int;
myParent.parent.parent.soundManager.PlaySound("enemylaser");
_local1 = 0;
while (_local1 < 6) {
myParent.parent.MakeEnemyShot(((x + (Math.random() * 10)) - 5), ((y + (Math.random() * 10)) - 5), ((rotation + (Math.random() * 10)) - 5), 2, true);
_local1++;
};
}
private function EnemyShoot4(){
var _local1:int;
myParent.parent.parent.soundManager.PlaySound("enemyshot");
_local1 = 0;
while (_local1 < 6) {
myParent.parent.MakeEnemyShot(x, y, (Math.random() * 360), 1, true);
_local1++;
};
}
private function EnemyShoot5(){
var _local1:int;
var _local2:int;
var _local3:Number;
var _local4:Number;
_local1 = (Math.random() * 90);
_local2 = 0;
while (_local2 < 6) {
_local3 = (300 - (Math.cos(((((_local2 * 60) + _local1) * Math.PI) / 180)) * 100));
_local4 = (y - (Math.sin(((((_local2 * 60) + _local1) * Math.PI) / 180)) * 100));
myParent.parent.MakeEnemy(4, _local3, _local4, 16);
_local2++;
};
}
override protected function EnemyShoot(){
}
override protected function checkShotDead(_arg1){
var _local2:int;
var _local3:Number;
var _local4:Number;
hp = (hp - _arg1);
if (hp < 1){
myParent.parent.MakeNewEnemyDeath(x, y);
myParent.parent.AddScore(earnedPoints);
_local2 = 0;
while (_local2 < (earnedPoints / 100)) {
_local3 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local4 = (Math.floor(((Math.random() * _local2) * 4)) - (_local2 / 2));
_local3 = (_local3 + x);
_local4 = (_local4 + y);
myParent.parent.MakeNewEXP(_local3, _local4);
_local2++;
};
myParent.parent.MakeNewBossDeath(x, y);
x = 225;
y = 10000;
isAlive = false;
shotticks = 10;
myParent.parent.EndLevel();
};
}
}
}//package