Section 1
//wav (barrelHit.wav)
package barrelHit {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package barrelHit
Section 2
//wav (botoEat.wav)
package botoEat {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package botoEat
Section 3
//wav (depthCharge.wav)
package depthCharge {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package depthCharge
Section 4
//wav (fishImpact.wav)
package fishImpact {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package fishImpact
Section 5
//wav (flap.wav)
package flap {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package flap
Section 6
//FpsCounter (General.FpsCounter)
package General {
import flash.display.*;
import flash.system.*;
import flash.utils.*;
import flash.text.*;
public class FpsCounter extends Sprite {
private var oldT:uint;
private var mfpsCount:int;// = 0
private var avgCount:int;// = 30
private var avgCount2:int;// = 30
private var textBox:TextField;
private var mfpsCount2:int;// = 0
private var textBox3:TextField;
private var textBox2:TextField;
public function FpsCounter(){
mfpsCount = 0;
mfpsCount2 = 0;
avgCount = 30;
avgCount2 = 30;
super();
textBox = new TextField();
textBox.text = "...";
textBox.textColor = 11145540;
textBox.selectable = false;
textBox2 = new TextField();
textBox2.text = "...";
textBox2.width = 150;
textBox2.textColor = 11145540;
textBox2.selectable = false;
textBox2.y = 15;
textBox3 = new TextField();
textBox3.text = "...";
textBox3.textColor = 11145540;
textBox3.selectable = false;
textBox3.y = 30;
oldT = getTimer();
addChild(textBox);
addChild(textBox2);
addChild(textBox3);
}
public function updateEnd():void{
}
public function updatePhys(_arg1:uint):void{
var _local2:uint;
var _local3:uint;
_local2 = getTimer();
_local3 = (_local2 - _arg1);
mfpsCount2 = (mfpsCount2 + _local3);
if (avgCount2 < 1){
textBox2.text = String((((("Physics step: " + Math.round((mfpsCount2 / 30))) + " ms (") + Math.round((1000 / (mfpsCount2 / 30)))) + " fps)"));
avgCount2 = 30;
mfpsCount2 = 0;
};
avgCount2--;
}
public function update():void{
var _local1:uint;
var _local2:uint;
_local1 = getTimer();
_local2 = (_local1 - oldT);
mfpsCount = (mfpsCount + _local2);
if (avgCount < 1){
textBox.text = String((Math.round((1000 / (mfpsCount / 30))) + " fps average"));
avgCount = 30;
mfpsCount = 0;
};
avgCount--;
oldT = getTimer();
textBox3.text = (Math.round((System.totalMemory / (0x0400 * 0x0400))) + " MB used");
}
}
}//package General
Section 7
//Input (General.Input)
package General {
import flash.display.*;
import flash.events.*;
public class Input {
private static var keyBuffer:Array;
private static var keyArr:Array;
public static var mouseReleased:Boolean = false;
public static var mouseDragY:Number = 0;
public static var mouseOver:Boolean = false;
public static var mouse:Sprite = new Sprite();
public static var timeSinceLastKey = 0;
public static var mousePressed:Boolean = false;
public static var mouseOffsetX:Number = 0;
public static var mouseOffsetY:Number = 0;
public static var ascii:Array;
public static var mouseX:Number = 0;
public static var mouseY:Number = 0;
private static var bufferSize:int;
public static var m_stageMc:Sprite;
public static var mouseDown:Boolean = false;
public static var lastKey:int = 0;
private static var keyState:Array;
public static var keys:Array;
public static var mouseDragX:Number = 0;
public function Input(_arg1:Sprite){
var _local2:int;
var _local3:int;
super();
m_stageMc = _arg1;
ascii = new Array(222);
fillAscii();
keyState = new Array(222);
keyArr = new Array();
_local2 = 0;
while (_local2 < 222) {
keyState[_local2] = new int(0);
if (ascii[_local2] != undefined){
keyArr.push(_local2);
};
_local2++;
};
bufferSize = 5;
keyBuffer = new Array(bufferSize);
_local3 = 0;
while (_local3 < bufferSize) {
keyBuffer[_local3] = new Array(0, 0);
_local3++;
};
_arg1.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPress, false, 0, true);
_arg1.stage.addEventListener(KeyboardEvent.KEY_UP, keyRelease, false, 0, true);
_arg1.stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress, false, 0, true);
_arg1.stage.addEventListener(MouseEvent.CLICK, mouseRelease, false, 0, true);
_arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove, false, 0, true);
_arg1.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave, false, 0, true);
mouse.graphics.lineStyle(0.1, 0, 100);
mouse.graphics.moveTo(0, 0);
mouse.graphics.lineTo(0, 0.1);
}
public function mouseRelease(_arg1:MouseEvent){
mouseDown = false;
mouseReleased = true;
}
public function keyPress(_arg1:KeyboardEvent){
keyState[_arg1.keyCode] = Math.max(keyState[_arg1.keyCode], 1);
lastKey = _arg1.keyCode;
}
private function fillAscii(){
ascii[65] = "A";
ascii[66] = "B";
ascii[67] = "C";
ascii[68] = "D";
ascii[69] = "E";
ascii[70] = "F";
ascii[71] = "G";
ascii[72] = "H";
ascii[73] = "I";
ascii[74] = "J";
ascii[75] = "K";
ascii[76] = "L";
ascii[77] = "M";
ascii[78] = "N";
ascii[79] = "O";
ascii[80] = "P";
ascii[81] = "Q";
ascii[82] = "R";
ascii[83] = "S";
ascii[84] = "T";
ascii[85] = "U";
ascii[86] = "V";
ascii[87] = "W";
ascii[88] = "X";
ascii[89] = "Y";
ascii[90] = "Z";
ascii[48] = "0";
ascii[49] = "1";
ascii[50] = "2";
ascii[51] = "3";
ascii[52] = "4";
ascii[53] = "5";
ascii[54] = "6";
ascii[55] = "7";
ascii[56] = "8";
ascii[57] = "9";
ascii[32] = "Spacebar";
ascii[17] = "Ctrl";
ascii[16] = "Shift";
ascii[192] = "~";
ascii[38] = "up";
ascii[40] = "down";
ascii[37] = "left";
ascii[39] = "right";
ascii[96] = "Numpad 0";
ascii[97] = "Numpad 1";
ascii[98] = "Numpad 2";
ascii[99] = "Numpad 3";
ascii[100] = "Numpad 4";
ascii[101] = "Numpad 5";
ascii[102] = "Numpad 6";
ascii[103] = "Numpad 7";
ascii[104] = "Numpad 8";
ascii[105] = "Numpad 9";
ascii[111] = "Numpad /";
ascii[106] = "Numpad *";
ascii[109] = "Numpad -";
ascii[107] = "Numpad +";
ascii[110] = "Numpad .";
ascii[45] = "Insert";
ascii[46] = "Delete";
ascii[33] = "Page Up";
ascii[34] = "Page Down";
ascii[35] = "End";
ascii[36] = "Home";
ascii[112] = "F1";
ascii[113] = "F2";
ascii[114] = "F3";
ascii[115] = "F4";
ascii[116] = "F5";
ascii[117] = "F6";
ascii[118] = "F7";
ascii[119] = "F8";
ascii[188] = ",";
ascii[190] = ".";
ascii[186] = ";";
ascii[222] = "'";
ascii[219] = "[";
ascii[221] = "]";
ascii[189] = "-";
ascii[187] = "+";
ascii[220] = "\\";
ascii[191] = "/";
ascii[9] = "TAB";
ascii[8] = "Backspace";
}
public function mouseMove(_arg1:MouseEvent){
if (mouseDown != _arg1.buttonDown){
mouseDown = _arg1.buttonDown;
mouseReleased = !(_arg1.buttonDown);
mousePressed = _arg1.buttonDown;
mouseDragX = 0;
mouseDragY = 0;
};
mouseX = (_arg1.stageX - m_stageMc.x);
mouseY = (_arg1.stageY - m_stageMc.y);
mouseOffsetX = (mouseX - mouse.x);
mouseOffsetY = (mouseY - mouse.y);
if (mouseDown){
mouseDragX = (mouseDragX + mouseOffsetX);
mouseDragY = (mouseDragY + mouseOffsetY);
};
mouse.x = mouseX;
mouse.y = mouseY;
}
public function keyRelease(_arg1:KeyboardEvent){
var _local2:int;
keyState[_arg1.keyCode] = -1;
_local2 = (bufferSize - 1);
while (_local2 > 0) {
keyBuffer[_local2] = keyBuffer[(_local2 - 1)];
_local2--;
};
keyBuffer[0] = [_arg1.keyCode, 0];
}
public function mouseLeave(_arg1:Event){
mouseReleased = mouseDown;
mouseDown = false;
}
public function mousePress(_arg1:MouseEvent){
mousePressed = true;
mouseDown = true;
mouseDragX = 0;
mouseDragY = 0;
}
public static function isKeysDown(_arg1:Array):int{
var _local2:int;
var _local3:*;
_local2 = 0;
for each (_local3 in _arg1) {
if ((_local3 is int)){
if (isKeyDown(int(_local3))){
_local2++;
};
} else {
if ((_local3 is String)){
if (isKeyDownS(String(_local3))){
_local2++;
};
};
};
};
return (_local2);
}
public static function getKeyHold(_arg1:int):int{
return (Math.max(0, keyState[_arg1]));
}
public static function isKeyPressed(_arg1:int):Boolean{
timeSinceLastKey = 0;
return ((keyState[_arg1] == 1));
}
public static function isKeyDown(_arg1:int):Boolean{
return ((keyState[_arg1] > 0));
}
public static function getKeyString(_arg1:uint):String{
return (ascii[_arg1]);
}
public static function isKeyDownS(_arg1:String):Boolean{
return (isKeyDown(getStringKey(_arg1)));
}
private static function fillKeys(){
keys = new Array();
keys["A"] = 65;
keys["B"] = 66;
keys["C"] = 67;
keys["D"] = 68;
keys["E"] = 69;
keys["F"] = 70;
keys["G"] = 71;
keys["H"] = 72;
keys["I"] = 73;
keys["J"] = 74;
keys["K"] = 75;
keys["L"] = 76;
keys["M"] = 77;
keys["N"] = 78;
keys["O"] = 79;
keys["P"] = 80;
keys["Q"] = 81;
keys["R"] = 82;
keys["S"] = 83;
keys["T"] = 84;
keys["U"] = 85;
keys["V"] = 86;
keys["W"] = 87;
keys["X"] = 88;
keys["Y"] = 89;
keys["Z"] = 90;
keys["0"] = 48;
keys["1"] = 49;
keys["2"] = 50;
keys["3"] = 51;
keys["4"] = 52;
keys["5"] = 53;
keys["6"] = 54;
keys["7"] = 55;
keys["8"] = 56;
keys["9"] = 57;
keys["Spacebar"] = 32;
keys["Ctrl"] = 17;
keys["Shift"] = 16;
keys["~"] = 192;
keys["up"] = 38;
keys["down"] = 40;
keys["left"] = 37;
keys["right"] = 39;
keys["Numpad 0"] = 96;
keys["Numpad 1"] = 97;
keys["Numpad 2"] = 98;
keys["Numpad 3"] = 99;
keys["Numpad 4"] = 100;
keys["Numpad 5"] = 101;
keys["Numpad 6"] = 102;
keys["Numpad 7"] = 103;
keys["Numpad 8"] = 104;
keys["Numpad 9"] = 105;
keys["Numpad /"] = 111;
keys["Numpad *"] = 106;
keys["Numpad -"] = 109;
keys["Numpad +"] = 107;
keys["Numpad ."] = 110;
keys["Insert"] = 45;
keys["Delete"] = 46;
keys["Page Up"] = 33;
keys["Page Down"] = 34;
keys["End"] = 35;
keys["Home"] = 36;
keys["F1"] = 112;
keys["F2"] = 113;
keys["F3"] = 114;
keys["F4"] = 115;
keys["F5"] = 116;
keys["F6"] = 117;
keys["F7"] = 118;
keys["F8"] = 119;
keys[","] = 188;
keys["."] = 190;
keys[";"] = 186;
keys["'"] = 222;
keys["["] = 219;
keys["]"] = 221;
keys["-"] = 189;
keys["+"] = 187;
keys["\\"] = 220;
keys["/"] = 191;
keys["TAB"] = 9;
keys["Backspace"] = 8;
}
public static function isKeyReleased(_arg1:int):Boolean{
return ((keyState[_arg1] == -1));
}
public static function isKeyInBuffer(_arg1:int, _arg2:int, _arg3:int){
return ((((keyBuffer[_arg2][0] == _arg1)) && ((keyBuffer[_arg2][1] <= _arg3))));
}
public static function update(){
var _local1:int;
var _local2:int;
_local1 = 0;
while (_local1 < keyArr.length) {
if (keyState[keyArr[_local1]] != 0){
var _local3 = keyState;
var _local4 = keyArr[_local1];
var _local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
};
_local1++;
};
_local2 = 0;
while (_local2 < bufferSize) {
_local3 = keyBuffer[_local2];
_local4 = 1;
_local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
_local2++;
};
mouseReleased = false;
mousePressed = false;
mouseOver = false;
}
public static function getStringKey(_arg1:String):int{
if (keys == null){
fillKeys();
};
return (keys[_arg1]);
}
}
}//package General
Section 8
//KongAPI (General.KongAPI)
package General {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class KongAPI {
public var kongregate;
public function KongAPI(_arg1:Stage){
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:Loader;
super();
_local2 = LoaderInfo(_arg1.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
_local3 = "http://www.kongregate.com/flash/API_AS3_Local.swf";
};
trace(("API path: " + _local3));
_local4 = new URLRequest(_local3);
_local5 = new Loader();
_local5.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
_local5.load(_local4);
_arg1.addChild(_local5);
}
public function submitScore(_arg1:Number):void{
kongregate.scores.submit(_arg1);
}
public function submitStat(_arg1:Number, _arg2:String):void{
kongregate.stats.submit(_arg2, _arg1);
}
public function loadComplete(_arg1:Event):void{
kongregate = _arg1.target.content;
kongregate.services.connect();
trace(("\n" + kongregate.services));
trace(("\n" + kongregate.user));
trace(("\n" + kongregate.scores));
trace(("\n" + kongregate.stats));
}
}
}//package General
Section 9
//Util (General.Util)
package General {
import flash.display.*;
import flash.geom.*;
public class Util {
public static function ArrayRemoveItem(_arg1, _arg2:Array):Array{
var _local3:int;
_local3 = 0;
while (_local3 < _arg2.length) {
if (_arg2[_local3] == _arg1){
if (_local3 == (_arg2.length - 1)){
_arg2.pop();
} else {
_arg2[_local3] = _arg2.pop();
_local3--;
};
};
_local3++;
};
return (_arg2);
}
public static function ClosestDObj(_arg1:DisplayObject, _arg2:Array):DisplayObject{
var _local3:int;
var _local4:DisplayObject;
var _local5:DisplayObject;
_local3 = int.MAX_VALUE;
for each (_local5 in _arg2) {
if (Dist(_arg1, _local5) < _local3){
_local3 = Dist(_arg1, _local5);
_local4 = _local5;
};
};
return (_local4);
}
public static function RayCircleIntersect(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Number):Boolean{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Point;
_local9 = new Point();
_local9.x = (_arg2.x - _arg1.x);
_local9.y = (_arg2.y - _arg1.y);
_local5 = ((_local9.x * _local9.x) + (_local9.y * _local9.y));
_local6 = (2 * ((_local9.x * (_arg1.x - _arg3.x)) + (_local9.y * (_arg1.y - _arg3.y))));
_local7 = ((_arg3.x * _arg3.x) + (_arg3.y * _arg3.y));
_local7 = (_local7 + ((_arg1.x * _arg1.x) + (_arg1.y * _arg1.y)));
_local7 = (_local7 - (2 * ((_arg3.x * _arg1.x) + (_arg3.y * _arg1.y))));
_local7 = (_local7 - (_arg4 * _arg4));
_local8 = ((_local6 * _local6) - ((4 * _local5) * _local7));
if (_local8 < 0){
return (false);
};
return (true);
}
public static function Dist(_arg1:DisplayObject, _arg2:DisplayObject):Number{
return (new Point((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)).length);
}
}
}//package General
Section 10
//PropTween (gs.core.tween.PropTween)
package gs.core.tween {
public class PropTween {
public var start:Number;
public var name:String;
public var prevNode:PropTween;
public var change:Number;
public var target:Object;
public var property:String;
public var nextNode:PropTween;
public var isPlugin:Boolean;
public function PropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean, _arg7:PropTween=null){
this.target = _arg1;
this.property = _arg2;
this.start = _arg3;
this.change = _arg4;
this.name = _arg5;
this.isPlugin = _arg6;
this.nextNode = _arg7;
}
}
}//package gs.core.tween
Section 11
//SimpleTimeline (gs.core.tween.SimpleTimeline)
package gs.core.tween {
public class SimpleTimeline extends Tweenable {
protected var _lastChild:Tweenable;
public var autoRemoveChildren:Boolean;
protected var _firstChild:Tweenable;
public function SimpleTimeline(_arg1:Object=null){
super(0, _arg1);
}
override public function renderTime(_arg1:Number):void{
var _local2:Tweenable;
this.cachedTotalTime = (this.cachedTime = _arg1);
_local2 = _firstChild;
while (_local2 != null) {
if (((_local2.active) || ((((_arg1 >= _local2.startTime)) && (!(_local2.cachedPaused)))))){
_local2.renderTime(((_arg1 - _local2.startTime) * _local2.cachedTimeScale));
};
_local2 = _local2.nextNode;
};
}
public function addChild(_arg1:Tweenable):void{
if (((!((_arg1.timeline == null))) && (!(_arg1.gc)))){
_arg1.timeline.remove(_arg1);
};
if (_firstChild != null){
_firstChild.prevNode = _arg1;
_arg1.nextNode = _firstChild;
} else {
_arg1.nextNode = null;
};
_firstChild = _arg1;
_arg1.prevNode = null;
_arg1.timeline = this;
_arg1.gc = false;
}
public function remove(_arg1:Tweenable):void{
if (_arg1.nextNode != null){
_arg1.nextNode.prevNode = _arg1.prevNode;
} else {
if (_lastChild == _arg1){
_lastChild = _arg1.prevNode;
};
};
if (_arg1.prevNode != null){
_arg1.prevNode.nextNode = _arg1.nextNode;
} else {
if (_firstChild == _arg1){
_firstChild = _arg1.nextNode;
};
};
_arg1.gc = true;
_arg1.active = false;
}
}
}//package gs.core.tween
Section 12
//Tweenable (gs.core.tween.Tweenable)
package gs.core.tween {
import gs.*;
public class Tweenable {
public var initted:Boolean;
protected var _hasUpdate:Boolean;
public var active:Boolean;
public var cachedTimeScale:Number;
protected var _delay:Number;
public var startTime:Number;
public var timeline:SimpleTimeline;
public var nextNode:Tweenable;
public var cachedTime:Number;
public var gc:Boolean;
public var cachedDuration:Number;
public var prevNode:Tweenable;
public var cacheIsDirty:Boolean;
public var vars:Object;
public var cachedTotalTime:Number;
public var cachedPaused:Boolean;
public var cachedTotalDuration:Number;
public var data;
public static const version:Number = 0.1;
protected static var _classInitted:Boolean;
public function Tweenable(_arg1:Number=0, _arg2:Object=null){
var _local3:SimpleTimeline;
super();
this.vars = ((_arg2) || ({}));
this.cachedDuration = (this.cachedTotalDuration = ((_arg1) || (0)));
_delay = ((this.vars.delay) || (0));
this.cachedTimeScale = ((this.vars.timeScale) || (1));
this.active = Boolean((((_arg1 == 0)) && ((_delay == 0))));
this.cachedTotalTime = (this.cachedTime = 0);
this.data = this.vars.data;
if (!_classInitted){
if (isNaN(TweenLite.rootFrame)){
TweenLite.initClass();
_classInitted = true;
} else {
return;
};
};
_local3 = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline;
this.startTime = (_local3.cachedTotalTime + _delay);
_local3.addChild(this);
}
public function complete(_arg1:Boolean=false):void{
}
public function set enabled(_arg1:Boolean):void{
var _local2:Object;
if (_arg1 == this.gc){
if (_arg1){
if ((this is TweenLite)){
_local2 = (this as TweenLite).target;
if (!(_local2 in TweenLite.masterList)){
TweenLite.masterList[_local2] = [this];
} else {
TweenLite.masterList[_local2].push(this);
};
};
this.timeline.addChild(this);
} else {
this.timeline.remove(this);
};
};
}
public function renderTime(_arg1:Number):void{
}
public function get enabled():Boolean{
return (!(this.gc));
}
public function get delay():Number{
return (_delay);
}
public function get duration():Number{
return (this.cachedDuration);
}
public function set delay(_arg1:Number):void{
this.startTime = (this.startTime + (_arg1 - _delay));
_delay = _arg1;
}
public function set totalDuration(_arg1:Number):void{
this.duration = _arg1;
}
public function set duration(_arg1:Number):void{
this.cachedDuration = (this.cachedTotalDuration = _arg1);
}
public function get totalDuration():Number{
return (this.cachedTotalDuration);
}
}
}//package gs.core.tween
Section 13
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class AutoAlphaPlugin extends VisiblePlugin {
protected var _ignoreVisible:Boolean;
public static const VERSION:Number = 2;
public static const API:Number = 1;
public function AutoAlphaPlugin(){
this.propName = "autoAlpha";
this.overwriteProps = ["alpha", "visible"];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
init(_arg1, Boolean(!((_arg2 == 0))), _arg3);
addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha");
return (true);
}
override public function killProps(_arg1:Object):void{
super.killProps(_arg1);
_ignoreVisible = Boolean(("visible" in _arg1));
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
if (!_ignoreVisible){
super.changeFactor = _arg1;
};
}
}
}//package gs.plugins
Section 14
//EndArrayPlugin (gs.plugins.EndArrayPlugin)
package gs.plugins {
import gs.*;
public class EndArrayPlugin extends TweenPlugin {
protected var _info:Array;
protected var _a:Array;
public static const VERSION:Number = 1.5;
public static const API:Number = 1;
public function EndArrayPlugin(){
_info = [];
super();
this.propName = "endArray";
this.overwriteProps = ["endArray"];
}
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:ArrayTweenInfo;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_a[_local3.index] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
public function init(_arg1:Array, _arg2:Array):void{
var _local3:int;
_a = _arg1;
_local3 = (_arg2.length - 1);
while (_local3 > -1) {
if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){
_info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3]));
};
_local3--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){
return (false);
};
init((_arg1 as Array), _arg2);
return (true);
}
}
}//package gs.plugins
class ArrayTweenInfo {
public var change:Number;
public var index:uint;
public var start:Number;
private function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){
this.index = _arg1;
this.start = _arg2;
this.change = _arg3;
}
}
Section 15
//FramePlugin (gs.plugins.FramePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class FramePlugin extends TweenPlugin {
public var frame:int;
protected var _target:MovieClip;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function FramePlugin(){
this.propName = "frame";
this.overwriteProps = ["frame", "frameLabel"];
this.round = true;
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.gotoAndStop(this.frame);
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){
return (false);
};
_target = (_arg1 as MovieClip);
this.frame = _target.currentFrame;
addTween(this, "frame", this.frame, _arg2, "frame");
return (true);
}
}
}//package gs.plugins
Section 16
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin)
package gs.plugins {
public class RemoveTintPlugin extends TintPlugin {
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function RemoveTintPlugin(){
this.propName = "removeTint";
}
}
}//package gs.plugins
Section 17
//TintPlugin (gs.plugins.TintPlugin)
package gs.plugins {
import flash.display.*;
import flash.geom.*;
import gs.core.tween.*;
import gs.*;
public class TintPlugin extends TweenPlugin {
protected var _ct:ColorTransform;
protected var _ignoreAlpha:Boolean;
protected var _target:DisplayObject;
public static const VERSION:Number = 1.1;
public static const API:Number = 1;
protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"];
public function TintPlugin(){
this.propName = "tint";
this.overwriteProps = ["tint"];
}
override public function set changeFactor(_arg1:Number):void{
var _local2:ColorTransform;
updateTweens(_arg1);
if (_ignoreAlpha){
_local2 = _target.transform.colorTransform;
_ct.alphaMultiplier = _local2.alphaMultiplier;
_ct.alphaOffset = _local2.alphaOffset;
};
_target.transform.colorTransform = _ct;
}
public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{
var _local3:int;
var _local4:String;
_target = _arg1;
_ct = _target.transform.colorTransform;
_local3 = (_props.length - 1);
while (_local3 > -1) {
_local4 = _props[_local3];
if (_ct[_local4] != _arg2[_local4]){
_tweens[_tweens.length] = new PropTween(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false);
};
_local3--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
var _local4:ColorTransform;
if (!(_arg1 is DisplayObject)){
return (false);
};
_local4 = new ColorTransform();
if (((!((_arg2 == null))) && (!((_arg3.vars.removeTint == true))))){
_local4.color = uint(_arg2);
};
_ignoreAlpha = true;
init((_arg1 as DisplayObject), _local4);
return (true);
}
}
}//package gs.plugins
Section 18
//TweenPlugin (gs.plugins.TweenPlugin)
package gs.plugins {
import gs.core.tween.*;
import gs.*;
public class TweenPlugin {
public var overwriteProps:Array;
protected var _tweens:Array;
public var round:Boolean;
public var onComplete:Function;
public var propName:String;
protected var _changeFactor:Number;// = 0
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
public function TweenPlugin(){
_tweens = [];
_changeFactor = 0;
super();
}
protected function updateTweens(_arg1:Number):void{
var _local2:int;
var _local3:PropTween;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_changeFactor = _arg1;
}
protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{
var _local6:Number;
if (_arg4 != null){
_local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4);
if (_local6 != 0){
_tweens[_tweens.length] = new PropTween(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false);
};
};
}
public function killProps(_arg1:Object):void{
var _local2:int;
_local2 = (this.overwriteProps.length - 1);
while (_local2 > -1) {
if ((this.overwriteProps[_local2] in _arg1)){
this.overwriteProps.splice(_local2, 1);
};
_local2--;
};
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
if ((_tweens[_local2].name in _arg1)){
_tweens.splice(_local2, 1);
};
_local2--;
};
}
public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName);
return (true);
}
public function get changeFactor():Number{
return (_changeFactor);
}
public static function activate(_arg1:Array):Boolean{
var _local2:int;
var _local3:Object;
_local2 = (_arg1.length - 1);
while (_local2 > -1) {
_local3 = new (_arg1[_local2]);
TweenLite.plugins[_local3.propName] = _arg1[_local2];
_local2--;
};
return (true);
}
}
}//package gs.plugins
Section 19
//VisiblePlugin (gs.plugins.VisiblePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class VisiblePlugin extends TweenPlugin {
protected var _tween:TweenLite;
protected var _visible:Boolean;
protected var _target:Object;
protected var _hideAtStart:Boolean;
public static const VERSION:Number = 1.51;
public static const API:Number = 1;
public function VisiblePlugin(){
this.propName = "visible";
this.overwriteProps = ["visible"];
this.onComplete = onCompleteTween;
}
override public function set changeFactor(_arg1:Number):void{
if (((_hideAtStart) && ((_tween.cachedTotalTime == 0)))){
_target.visible = false;
} else {
if (_target.visible != true){
_target.visible = true;
};
};
}
protected function init(_arg1:Object, _arg2:Boolean, _arg3:TweenLite):void{
_target = _arg1;
_tween = _arg3;
_visible = _arg2;
if ((((((_tween.vars.runBackwards == true)) && (!((_tween.vars.renderOnStart == false))))) && ((_arg2 == false)))){
_hideAtStart = true;
};
}
public function onCompleteTween():void{
if (((!(_hideAtStart)) && (((!((_tween.cachedTime == 0))) || ((_tween.duration == 0)))))){
_target.visible = _visible;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
init(_arg1, Boolean(_arg2), _arg3);
return (true);
}
}
}//package gs.plugins
Section 20
//VolumePlugin (gs.plugins.VolumePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.media.*;
public class VolumePlugin extends TweenPlugin {
protected var _st:SoundTransform;
protected var _target:Object;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function VolumePlugin(){
this.propName = "volume";
this.overwriteProps = ["volume"];
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.soundTransform = _st;
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){
return (false);
};
_target = _arg1;
_st = _target.soundTransform;
addTween(_st, "volume", _st.volume, _arg2, "volume");
return (true);
}
}
}//package gs.plugins
Section 21
//TweenLite (gs.TweenLite)
package gs {
import flash.display.*;
import flash.events.*;
import gs.core.tween.*;
import gs.plugins.*;
import flash.utils.*;
public class TweenLite extends Tweenable {
public var target:Object;
protected var _firstPropTween:PropTween;
protected var _hasPlugins:Boolean;
protected var _overwrittenProps:Object;
public var propTweenLookup:Object;
public var ease:Function;
public static const version:Number = 11.07;
public static var rootTimeline:SimpleTimeline;
public static var rootFramesTimeline:SimpleTimeline;
public static var defaultEase:Function = TweenLite.easeOut;
public static var plugins:Object = {};
public static var masterList:Dictionary = new Dictionary(false);
public static var overwriteManager:Object;
public static var rootFrame:Number;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public static var timingSprite:Sprite = new Sprite();
protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, persist:1, timeScale:1, forceImmediateRender:1, repeat:1, repeatDelay:1, timeline:1, data:1};
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
var _local4:int;
var _local5:Array;
var _local6:TweenLite;
super(_arg2, _arg3);
if (_arg1 == null){
return;
};
this.target = _arg1;
this.ease = ((typeof(this.vars.ease))!="function") ? defaultEase : this.vars.ease;
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.ease;
this.ease = easeProxy;
};
propTweenLookup = {};
if (!(_arg1 in masterList)){
masterList[_arg1] = [this];
} else {
_local4 = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite);
if (_local4 == 1){
_local5 = masterList[_arg1];
for each (_local6 in _local5) {
if (!_local6.gc){
_local6.timeline.remove(_local6);
};
};
masterList[_arg1] = [this];
} else {
masterList[_arg1].push(this);
};
};
if (((this.active) || (this.vars.forceImmediateRender))){
renderTime(0);
};
}
override public function renderTime(_arg1:Number):void{
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
var _local5:PropTween;
_local4 = this.cachedTime;
if (_arg1 >= this.cachedDuration){
this.cachedTotalTime = (this.cachedTime = this.cachedDuration);
_local2 = 1;
_local3 = true;
} else {
if (_arg1 <= 0){
_local2 = 0;
this.cachedTotalTime = (this.cachedTime = _local2);
if (_arg1 < 0){
this.active = false;
};
} else {
this.cachedTotalTime = (this.cachedTime = _arg1);
_local2 = this.ease(_arg1, 0, 1, this.cachedDuration);
};
};
if (!this.initted){
init();
this.active = true;
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
} else {
if (this.cachedTime == _local4){
return;
};
};
_local5 = _firstPropTween;
while (_local5 != null) {
_local5.target[_local5.property] = (_local5.start + (_local2 * _local5.change));
_local5 = _local5.nextNode;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local3){
complete(true);
};
}
protected function init():void{
var _local1:String;
var _local2:int;
var _local3:*;
var _local4:Object;
var _local5:PropTween;
_local4 = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars;
propTweenLookup = {};
if (((!((_local4.timeScale == undefined))) && ((this.target is Tweenable)))){
_firstPropTween = insertPropTween(this.target, "timeScale", this.target.timeScale, _local4.timeScale, "timeScale", false, _firstPropTween);
};
for (_local1 in _local4) {
if ((_local1 in _reservedProps)){
} else {
if ((_local1 in plugins)){
_local3 = new (plugins[_local1]);
if (_local3.onInitTween(this.target, _local4[_local1], this) == false){
_firstPropTween = insertPropTween(this.target, _local1, this.target[_local1], _local4[_local1], _local1, false, _firstPropTween);
} else {
_firstPropTween = insertPropTween(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true, _firstPropTween);
_hasPlugins = true;
};
} else {
_firstPropTween = insertPropTween(this.target, _local1, this.target[_local1], _local4[_local1], _local1, false, _firstPropTween);
};
};
};
if (this.vars.runBackwards == true){
_local5 = _firstPropTween;
while (_local5 != null) {
_local5.start = (_local5.start + _local5.change);
_local5.change = -(_local5.change);
_local5 = _local5.nextNode;
};
};
_hasUpdate = Boolean(!((this.vars.onUpdate == null)));
if (_overwrittenProps != null){
killVars(_overwrittenProps);
};
if (((((TweenLite.overwriteManager.enabled) && (!((this._firstPropTween == null))))) && ((this.target in masterList)))){
overwriteManager.manageOverwrites(this, propTweenLookup, masterList[this.target]);
};
this.initted = true;
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
protected function removePropTween(_arg1:PropTween):void{
if (_arg1.nextNode != null){
_arg1.nextNode.prevNode = _arg1.prevNode;
};
if (_arg1.prevNode != null){
_arg1.prevNode.nextNode = _arg1.nextNode;
} else {
if (_firstPropTween == _arg1){
_firstPropTween = _arg1.nextNode;
};
};
}
protected function insertPropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String, _arg6:Boolean, _arg7:PropTween):PropTween{
var _local8:PropTween;
var _local9:Array;
var _local10:int;
_local8 = new PropTween(_arg1, _arg2, _arg3, ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4), _arg5, _arg6, _arg7);
if (_arg7 != null){
_arg7.prevNode = _local8;
};
if (((_arg6) && ((_arg5 == "_MULTIPLE_")))){
_local9 = _arg1.overwriteProps;
_local10 = (_local9.length - 1);
while (_local10 > -1) {
propTweenLookup[_local9[_local10]] = _local8;
_local10--;
};
} else {
propTweenLookup[_arg5] = _local8;
};
return (_local8);
}
override public function complete(_arg1:Boolean=false):void{
var _local2:PropTween;
if (!_arg1){
renderTime(this.cachedTotalDuration);
return;
};
if (_hasPlugins){
_local2 = _firstPropTween;
while (_local2 != null) {
if (((_local2.isPlugin) && (!((_local2.target.onComplete == null))))){
_local2.target.onComplete();
};
_local2 = _local2.nextNode;
};
};
if (this.timeline.autoRemoveChildren){
this.timeline.remove(this);
} else {
this.active = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public function killVars(_arg1:Object, _arg2:Boolean=true):void{
var _local3:String;
var _local4:PropTween;
if (_overwrittenProps == null){
_overwrittenProps = {};
};
for (_local3 in _arg1) {
if ((_local3 in propTweenLookup)){
_local4 = propTweenLookup[_local3];
if (((_local4.isPlugin) && ((_local4.name == "_MULTIPLE_")))){
_local4.target.killProps(_arg1);
if (_local4.target.overwriteProps.length == 0){
removePropTween(_local4);
delete propTweenLookup[_local3];
};
} else {
removePropTween(_local4);
delete propTweenLookup[_local3];
};
};
if (_arg2){
_overwrittenProps[_local3] = 1;
};
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, useFrames:_arg4, overwrite:0}));
}
public static function initClass():void{
TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]);
rootFrame = 0;
rootTimeline = new SimpleTimeline(null);
rootFramesTimeline = new SimpleTimeline(null);
rootTimeline.startTime = (getTimer() * 0.001);
rootFramesTimeline.startTime = rootFrame;
rootTimeline.autoRemoveChildren = (rootFramesTimeline.autoRemoveChildren = true);
timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
}
public static function removeTween(_arg1:TweenLite):void{
if (_arg1 != null){
_arg1.timeline.remove(_arg1);
};
}
public static function killTweensOf(_arg1:Object, _arg2:Boolean=false):void{
var _local3:Array;
var _local4:int;
if (((!((_arg1 == null))) && ((_arg1 in masterList)))){
_local3 = masterList[_arg1];
_local4 = (_local3.length - 1);
while (_local4 > -1) {
if (!_local3[_local4].gc){
if (_arg2){
_local3[_local4].complete(false);
} else {
_local3[_local4].timeline.remove((_local3[_local4] as Tweenable));
};
};
_local4--;
};
delete masterList[_arg1];
};
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
if (_arg3.renderOnStart != true){
_arg3.forceImmediateRender = true;
};
return (new TweenLite(_arg1, _arg2, _arg3));
}
protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
protected static function updateAll(_arg1:Event=null):void{
var _local2:Dictionary;
var _local3:Object;
var _local4:Array;
var _local5:int;
rootTimeline.renderTime((((getTimer() * 0.001) - rootTimeline.startTime) * rootTimeline.cachedTimeScale));
rootFrame++;
rootFramesTimeline.renderTime((rootFrame * rootFramesTimeline.cachedTimeScale));
if (!(rootFrame % 30)){
_local2 = masterList;
for (_local3 in _local2) {
_local4 = _local2[_local3];
_local5 = (_local4.length - 1);
while (_local5 > -1) {
if (_local4[_local5].gc){
_local4.splice(_local5, 1);
};
_local5--;
};
if (_local4.length == 0){
delete _local2[_local3];
};
};
};
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 22
//wav (laserLoop.wav)
package laserLoop {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package laserLoop
Section 23
//wav (machineGunLoop.wav)
package machineGunLoop {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package machineGunLoop
Section 24
//assetHolder_3 (release_build_fla.assetHolder_3)
package release_build_fla {
import flash.display.*;
public dynamic class assetHolder_3 extends MovieClip {
public function assetHolder_3(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package release_build_fla
Section 25
//bonusAni_32 (release_build_fla.bonusAni_32)
package release_build_fla {
import flash.display.*;
import flash.text.*;
public dynamic class bonusAni_32 extends MovieClip {
public var bonus_text:TextField;
}
}//package release_build_fla
Section 26
//health_FX_112 (release_build_fla.health_FX_112)
package release_build_fla {
import flash.display.*;
public dynamic class health_FX_112 extends MovieClip {
public function health_FX_112(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package release_build_fla
Section 27
//health_meter_111 (release_build_fla.health_meter_111)
package release_build_fla {
import flash.display.*;
import flash.text.*;
public dynamic class health_meter_111 extends MovieClip {
public var healthAnimation:MovieClip;
public var scoreText:TextField;
public function health_meter_111(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package release_build_fla
Section 28
//laserboat_93 (release_build_fla.laserboat_93)
package release_build_fla {
import flash.display.*;
public dynamic class laserboat_93 extends MovieClip {
public var laser_dish:MovieClip;
}
}//package release_build_fla
Section 29
//laserDish_94 (release_build_fla.laserDish_94)
package release_build_fla {
import flash.display.*;
public dynamic class laserDish_94 extends MovieClip {
public function laserDish_94(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package release_build_fla
Section 30
//mine_105 (release_build_fla.mine_105)
package release_build_fla {
import flash.display.*;
public dynamic class mine_105 extends MovieClip {
public function mine_105(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package release_build_fla
Section 31
//multiplier_114 (release_build_fla.multiplier_114)
package release_build_fla {
import flash.display.*;
import flash.text.*;
public dynamic class multiplier_114 extends MovieClip {
public var multiplier_text:TextField;
public function multiplier_114(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package release_build_fla
Section 32
//oilDrum_86 (release_build_fla.oilDrum_86)
package release_build_fla {
import flash.display.*;
public dynamic class oilDrum_86 extends MovieClip {
public function oilDrum_86(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package release_build_fla
Section 33
//waveText_30 (release_build_fla.waveText_30)
package release_build_fla {
import flash.display.*;
import flash.text.*;
public dynamic class waveText_30 extends MovieClip {
public var textBox:TextField;
}
}//package release_build_fla
Section 34
//wav (torpedoLaunch.wav)
package torpedoLaunch {
import flash.media.*;
public dynamic class wav extends Sound {
}
}//package torpedoLaunch
Section 35
//ArmorBoat (ArmorBoat)
package {
import flash.geom.*;
import General.*;
public class ArmorBoat extends Boat {
public var SHOOT_TIME:int;// = 400
public var POLLUTE_SCALE:Number;// = 1
public var shootTimer:int;
public function ArmorBoat(){
SHOOT_TIME = 400;
shootTimer = SHOOT_TIME;
POLLUTE_SCALE = 1;
super();
myClip = new Assets.enemy_sharkboat();
addChild(myClip);
initCollision();
SPEED = 1.5;
hp = 300;
killScore = 250;
shootTimer = int((SHOOT_TIME * Math.random()));
}
override public function collision(_arg1):void{
var _local2:Point;
if ((_arg1 is Fish)){
if (Fish(_arg1).knockedOut){
return;
};
_local2 = new Point((_arg1.x - x), (_arg1.y - y));
if (!flipped){
if (_arg1.inertia.x < 0){
if (_local2.x > (myClip.width * 0.5)){
Fish(_arg1).knockOut();
_arg1.inertia.x = (inertia * 1);
_arg1.inertia.y = 0.2;
return;
};
};
} else {
if (_arg1.inertia.x > 0){
if (_local2.x < (myClip.width * 0.5)){
Fish(_arg1).knockOut();
_arg1.inertia.x = (inertia * 1);
_arg1.inertia.y = 0.2;
return;
};
};
};
};
super.collision(_arg1);
}
override public function tick():void{
var _local1:Pollution;
super.tick();
shootTimer--;
if (shootTimer <= 0){
shootTimer = SHOOT_TIME;
_local1 = new Pollution();
if (parent != null){
parent.addChild(_local1);
};
_local1.x = (x + myClip.x);
_local1.y = (y + myClip.y);
_local1.scaleX = (_local1.scaleY = POLLUTE_SCALE);
};
}
}
}//package
Section 36
//Assets (Assets)
package {
import flash.display.*;
import flash.system.*;
public class Assets {
public static var pauseScreen:Class;
public static var bigKelp:Class;
public static var cutscene_intro:Class;
public static var boto:Class;
public static var enemy_sub:Class;
public static var helpScreen:Class;
public static var terrain_bg:Class;
public static var enemy_fishingboat:Class;
public static var enemy_laserboat:Class;
public static var enemy_speedboat:Class;
public static var cloud2:Class;
public static var scoreScreen:Class;
public static var ad:ApplicationDomain;
public static var optionsScreen:Class;
public static var cloud1:Class;
public static var drum:Class;
public static var enemy_sharkboat:Class;
public static var bubbles1:Class;
public static var UIpage:Class;
public static var bonus_bubble:Class;
public static var mainMenu:Class;
public static var enemy_freighter:Class;
public static var snake:Class;
public static var vignette:Class;
public static var splash1:Class;
public static var torpedo:Class;
public static var mineFloat:Class;
public static var cutscene_armor:Class;
public static var waveMessage:Class;
public static var powerup_bombermode:Class;
public static var groundTile:Class;
public static var damage_particle:Class;
public static var fish:Class;
public static var initialized:Boolean = false;
public static var drumFloat:Class;
public static var side:Class;
public static var powerup_autofire:Class;
public static var water_tile:Class;
public static var water_gradient:Class;
public static var explosion_particle:Class;
public static var littleKelp:Class;
public static var pollution_particle:Class;
public static var heal_particle:Class;
public static var piranha:Class;
public static function initializeAssets(_arg1:LoaderInfo):void{
ad = _arg1.applicationDomain;
mainMenu = Class(ad.getDefinition("titleScreen"));
pauseScreen = Class(ad.getDefinition("pauseScreen"));
helpScreen = Class(ad.getDefinition("helpScreen"));
optionsScreen = Class(ad.getDefinition("optionsScreen"));
scoreScreen = Class(ad.getDefinition("scoreScreen"));
boto = Class(ad.getDefinition("boto"));
fish = Class(ad.getDefinition("fish"));
piranha = Class(ad.getDefinition("piranha"));
snake = Class(ad.getDefinition("snake"));
damage_particle = Class(ad.getDefinition("damage_particle"));
heal_particle = Class(ad.getDefinition("heal_particle"));
bonus_bubble = Class(ad.getDefinition("bonus_bubble"));
bubbles1 = Class(ad.getDefinition("bubbles1"));
explosion_particle = Class(ad.getDefinition("explosion_particle"));
splash1 = Class(ad.getDefinition("splash1"));
waveMessage = Class(ad.getDefinition("wavePage"));
enemy_freighter = Class(ad.getDefinition("enemy_freighter"));
enemy_sharkboat = Class(ad.getDefinition("enemy_sharkboat"));
enemy_laserboat = Class(ad.getDefinition("enemy_laserboat"));
enemy_sub = Class(ad.getDefinition("enemy_sub"));
enemy_fishingboat = Class(ad.getDefinition("enemy_fishingboat"));
enemy_speedboat = Class(ad.getDefinition("enemy_speedboat"));
pollution_particle = Class(ad.getDefinition("pollution_particle"));
mineFloat = Class(ad.getDefinition("mineFloat"));
drumFloat = Class(ad.getDefinition("drumFloat"));
drum = Class(ad.getDefinition("drum"));
torpedo = Class(ad.getDefinition("torpedo"));
water_gradient = Class(ad.getDefinition("water_gradient"));
water_tile = Class(ad.getDefinition("water_tile"));
terrain_bg = Class(ad.getDefinition("terrain_bg"));
groundTile = Class(ad.getDefinition("groundTile"));
side = Class(ad.getDefinition("side"));
littleKelp = Class(ad.getDefinition("kelp1"));
bigKelp = Class(ad.getDefinition("kelp2"));
cloud1 = Class(ad.getDefinition("cloud1"));
cloud2 = Class(ad.getDefinition("cloud2"));
UIpage = Class(ad.getDefinition("UIpage"));
vignette = Class(ad.getDefinition("vignette"));
powerup_autofire = Class(ad.getDefinition("timeBoost"));
powerup_bombermode = Class(ad.getDefinition("wingBoost"));
cutscene_intro = Class(ad.getDefinition("cutscene_intro"));
cutscene_armor = Class(ad.getDefinition("cutscene_armor"));
}
}
}//package
Section 37
//Boat (Boat)
package {
public class Boat extends Target {
public var SPEED:Number;// = 1
public var inertia:Number;// = 0
public function Boat(){
inertia = 0;
SPEED = 1;
super();
}
override public function collision(_arg1):void{
var _local2:ExplosionParticle;
if ((((_arg1 is Fish)) || ((_arg1 is Torpedo)))){
SoundMgr.playSound("boom1");
Main.SCROLLER.shakey(5);
if (Main.currExplosions < Main.MAX_EXPLOSIONS){
_local2 = new ExplosionParticle();
parent.addChild(_local2);
_local2.x = _arg1.x;
_local2.y = _arg1.y;
if ((this is LaserBoat)){
_local2.y = (_local2.y - water.y);
};
};
} else {
if ((_arg1 is DrumFloat)){
SoundMgr.playSound("boom2");
Main.SCROLLER.shakey(10);
};
};
if ((_arg1 is Fish)){
hp = (hp - 5);
} else {
if ((_arg1 is Torpedo)){
hp = (hp - 50);
} else {
if ((_arg1 is DrumFloat)){
hp = (hp - 100);
};
};
};
_arg1.kill();
}
override public function kill():void{
var _local1:int;
var _local2:ExplosionParticle;
if ((this is TorpedoSub)){
SoundMgr.playSound("boom5");
} else {
SoundMgr.playSound("boom4");
};
Main.SCROLLER.shakey(25);
_local1 = 0;
while (_local1 < 5) {
_local2 = new ExplosionParticle(0, 0);
parent.addChild(_local2);
_local2.x = (x + (Math.random() * collB.x));
_local2.y = ((y + (Math.random() * collB.y)) - (collB.y / 2));
if ((this is LaserBoat)){
_local2.y = (_local2.y - water.y);
};
_local1++;
};
super.kill();
}
override public function tick():void{
super.tick();
if (killed()){
return;
};
x = (x + ((inertia / Math.abs(inertia)) * SPEED));
if ((((inertia < 0)) && (!(flipped)))){
flipX();
};
if ((((inertia > 0)) && (flipped))){
flipX();
};
if ((((inertia < 0)) && (((x + collB.x) < -500)))){
inertia = (inertia * -1);
};
if ((((inertia > 0)) && ((x > (bounds.x + 500))))){
inertia = (inertia * -1);
};
}
}
}//package
Section 38
//bonus_bubble (bonus_bubble)
package {
import flash.display.*;
public dynamic class bonus_bubble extends MovieClip {
public var animate:MovieClip;
public function bonus_bubble(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 39
//boto (boto)
package {
import flash.display.*;
public dynamic class boto extends MovieClip {
}
}//package
Section 40
//Boto (Boto)
package {
import flash.display.*;
import flash.geom.*;
import General.*;
public class Boto extends Sprite implements Tickable {
public var water:Water;
public var healPartTimer:int;// = 0
public var myClip:MovieClip;
public var autofireOn:Boolean;// = false
public var powerup_counter:int;// = 0
public var fishRespawnMod:Number;// = 10
public var blacknessSprite:Sprite;
public var fishRespawnCount:Number;// = 15
public var waterSpeed:Number;// = 1
public var pullSc:Number;// = 1
public var flipped:Boolean;// = false
public var bomberModeOn:Boolean;// = false
public var healParticle:MovieClip;
public var bounds:Point;
public var inertia:Point;
public var hurtPartTimer:int;// = 0
public var shockInertia:Point;
public var laserdCounter:int;// = 0
public var fishTotal:int;// = 20
public var hurtParticle:MovieClip;
public var camTarg:Point;
public var ACCLERATION:Number;// = 0.1
public var killFlag:Boolean;// = false
public var inWater:Boolean;// = true
public var bombCounter:int;// = 5
public static var COLLIDES:Array = new Array();
public function Boto(){
waterSpeed = 1;
ACCLERATION = 0.1;
bounds = new Point(4000, 2000);
hurtPartTimer = 0;
healPartTimer = 0;
inWater = true;
bomberModeOn = false;
bombCounter = 5;
powerup_counter = 0;
autofireOn = false;
fishRespawnCount = 15;
fishTotal = 20;
fishRespawnMod = 10;
killFlag = false;
laserdCounter = 0;
flipped = false;
pullSc = 1;
super();
myClip = new Assets.boto();
addChild(myClip);
inertia = new Point();
camTarg = new Point();
Fish.boto = this;
Main.TICKABLES.push(this);
setBounds(Main.BOUNDS);
setWater(Main.WATER);
shockInertia = new Point();
healParticle = new Assets.heal_particle();
myClip.addChild(healParticle);
healParticle.visible = false;
hurtParticle = new Assets.damage_particle();
myClip.addChild(hurtParticle);
hurtParticle.visible = false;
}
public function laserd():void{
laserdCounter = 40;
}
public function hurt():void{
SoundMgr.playSound("botoHit");
hurtParticle.visible = true;
hurtParticle.rotation = (Math.random() * 360);
hurtPartTimer = 20;
}
public function hurtEnd():void{
if (hurtParticle.visible){
hurtParticle.visible = false;
};
}
public function splash():void{
shockInertia.y = (shockInertia.y * 0.25);
shockInertia.x = (shockInertia.x * 0.25);
if (inertia.y > (inertia.x * 2)){
water.spawnBotoSplash(x);
};
SoundMgr.playSound("splash2");
}
public function powerup_autofire():void{
var _local1:int;
SoundMgr.playSound("machineGunLoop");
powerup_counter = 900;
autofireOn = true;
fishRespawnMod = 1;
fishTotal = 60;
_local1 = 0;
while (_local1 < 60) {
fishRespawnTick();
_local1++;
};
}
public function killed():Boolean{
return (killFlag);
}
public function kill():void{
killFlag = true;
if (parent != null){
parent.removeChild(this);
};
Fish.boto = null;
}
public function fishRespawnTick():void{
var _local1:Array;
var _local2:Fish;
_local1 = Fish.FISHES;
fishRespawnCount--;
if (fishRespawnCount <= 0){
_local2 = new Fish();
parent.addChild(_local2);
if (inertia.y > 0){
_local2.x = (x + 500);
} else {
_local2.x = (x - 500);
};
_local2.y = ((Math.random() * bounds.y) + 500);
fishRespawnCount = fishRespawnMod;
};
if (Fish.FISHES.length >= fishTotal){
fishRespawnCount++;
};
}
public function tick():void{
healPartTimer--;
if (healPartTimer < 0){
healEnd();
};
hurtPartTimer--;
if (hurtPartTimer < 0){
hurtEnd();
};
laserdCounter--;
fishRespawnTick();
if ((((Math.abs(myClip.rotation) > 90)) && (!(flipped)))){
flipX();
};
if ((((Math.abs(myClip.rotation) < 90)) && (flipped))){
flipX();
};
if (autofireOn){
autofireTick();
return;
};
if (bomberModeOn){
bomberModeTick();
physInterp();
return;
};
if ((((((water == null)) || ((y > water.y)))) || (bomberModeOn))){
underwaterMotion();
alpha = 0.6;
if (!inWater){
splash();
SoundMgr.playSound("music_underwater");
};
inWater = true;
} else {
alpha = 1;
abovewaterMotion();
if (inWater){
SoundMgr.playSound("music_abovewater");
};
inWater = false;
};
shockInertia.x = (shockInertia.x * 0.99);
shockInertia.y = (shockInertia.y * 0.99);
if (Math.abs(shockInertia.x) < 0.001){
shockInertia.x = 0;
};
if (Math.abs(shockInertia.y) < 0.001){
shockInertia.y = 0;
};
inertia.x = (inertia.x + shockInertia.x);
inertia.y = (inertia.y + shockInertia.y);
physInterp();
inertia.x = (inertia.x - shockInertia.x);
inertia.y = (inertia.y - shockInertia.y);
polluteCollide();
if (x < 0){
x = 0;
};
if (x > bounds.x){
x = bounds.x;
};
if (y > bounds.y){
y = bounds.y;
};
}
public function powerup_bomber():void{
var _local1:int;
SoundMgr.playSound("music_abovewater");
SoundMgr.playSound("flap");
powerup_counter = 1600;
bomberModeOn = true;
fishRespawnMod = 1;
fishTotal = 60;
_local1 = 0;
while (_local1 < 60) {
fishRespawnTick();
_local1++;
};
}
public function flipX():void{
myClip.scaleY = (myClip.scaleY * -1);
flipped = !(flipped);
}
public function autofireTick():void{
var _local1:Fish;
underwaterMotion();
SoundMgr.playSound("machineGunLoop");
_local1 = Fish(Util.ClosestDObj(this, Fish.FISHES));
if (((!((_local1 == null))) && (!(_local1.autofireShot)))){
if (Util.Dist(this, _local1) < 30){
_local1.autofireShot = true;
_local1.x = x;
_local1.y = y;
_local1.inertia.x = (-(Math.sin(((myClip.rotation - 90) * (Math.PI / 180)))) * 10);
_local1.inertia.y = (Math.cos(((myClip.rotation - 90) * (Math.PI / 180))) * 10);
};
};
powerup_counter--;
if (powerup_counter <= 0){
SoundMgr.stopSound("machineGunLoop");
autofireOn = false;
fishRespawnMod = 10;
fishTotal = 20;
};
camTarg.x = (-(Math.sin(((myClip.rotation - 90) * (Math.PI / 180)))) * 250);
camTarg.y = (Math.cos(((myClip.rotation - 90) * (Math.PI / 180))) * 100);
}
public function setBounds(_arg1:Point):void{
bounds = _arg1;
}
public function bomberModeTick():void{
var _local1:Fish;
shockInertia = new Point(0, 0);
bombCounter--;
if (bombCounter <= 0){
bombCounter = 5;
for each (_local1 in Fish.FISHES) {
if (!_local1.bombing){
_local1.bombing = true;
_local1.inertia.x = (inertia.x * 0.75);
_local1.inertia.y = inertia.y;
break;
};
};
};
powerup_counter--;
if (powerup_counter <= 0){
bomberModeOn = false;
fishRespawnMod = 15;
fishTotal = 20;
SoundMgr.stopSound("flap");
};
underwaterMotion();
}
public function healEnd():void{
if (healParticle.visible){
healParticle.visible = false;
};
}
public function setWater(_arg1:Water):void{
water = _arg1;
Fish.water = _arg1;
}
public function polluteCollide():void{
var _local1:BotoCollider;
var _local2:Point;
graphics.clear();
for each (_local1 in COLLIDES) {
_local2 = new Point((x - (_local1.x + _local1.centerOff.x)), (y - (_local1.y + _local1.centerOff.y)));
if ((((_local2.length < (_local1.width / 2))) || ((((((_local1 is FoodFish)) && ((_local2.length < _local1.width)))) && (!((_local1 is FoodSnake))))))){
_local1.collide();
};
};
}
public function physInterp():void{
x = (x + (inertia.x * 0.75));
y = (y + (inertia.y * 0.75));
}
public function heal():void{
healParticle.visible = true;
healParticle.rotation = (Math.random() * 360);
healPartTimer = 20;
}
public function underwaterMotion():void{
var _local1:Point;
if (((Input.isKeyDownS("A")) || (Input.isKeyDownS("left")))){
myClip.rotation = (myClip.rotation - (4 - (waterSpeed * 0.2)));
};
if (((Input.isKeyDownS("D")) || (Input.isKeyDownS("right")))){
myClip.rotation = (myClip.rotation + (4 - (waterSpeed * 0.2)));
};
if (((Input.isKeyDownS("W")) || (Input.isKeyDownS("up")))){
waterSpeed = (waterSpeed + ACCLERATION);
};
if (((Input.isKeyDownS("S")) || (Input.isKeyDownS("down")))){
waterSpeed = (waterSpeed - ACCLERATION);
};
if (bomberModeOn){
waterSpeed = 7;
};
if (waterSpeed < 1){
waterSpeed = 1;
};
if (waterSpeed > 4){
waterSpeed = (waterSpeed - ((waterSpeed / 8) * ACCLERATION));
} else {
waterSpeed = (waterSpeed - (((waterSpeed / 8) * ACCLERATION) / 3));
};
_local1 = new Point();
_local1.x = -(Math.sin(((myClip.rotation - 90) * (Math.PI / 180))));
_local1.y = Math.cos(((myClip.rotation - 90) * (Math.PI / 180)));
inertia.x = (_local1.x * waterSpeed);
inertia.y = (_local1.y * waterSpeed);
camTarg.x = (inertia.x * 40);
camTarg.y = (inertia.y * 30);
}
public function abovewaterMotion():void{
var _local1:Number;
if (!Input.isKeyDownS("Shift")){
_local1 = 1;
if (inertia.y > 0){
_local1 = (Math.abs((90 - myClip.rotation)) / 90);
} else {
_local1 = (Math.abs((-90 - myClip.rotation)) / 90);
};
if (((Input.isKeyDownS("A")) || (Input.isKeyDownS("left")))){
if (inertia.x < 0){
inertia.y = (inertia.y + 0.15);
} else {
inertia.y = (inertia.y - (0.075 * _local1));
};
};
if (((Input.isKeyDownS("D")) || (Input.isKeyDownS("right")))){
if (inertia.x > 0){
inertia.y = (inertia.y + 0.15);
} else {
inertia.y = (inertia.y - (0.075 * _local1));
};
};
pullSc = _local1;
};
inertia.y = (inertia.y + 0.1);
if (!Input.isKeyDownS("Shift")){
myClip.rotation = (Math.atan((inertia.y / inertia.x)) * (180 / Math.PI));
if (inertia.x < 0){
myClip.rotation = (myClip.rotation + 180);
};
} else {
if (((Input.isKeyDownS("A")) || (Input.isKeyDownS("left")))){
myClip.rotation = (myClip.rotation - 5);
};
if (((Input.isKeyDownS("D")) || (Input.isKeyDownS("right")))){
myClip.rotation = (myClip.rotation + 5);
};
};
camTarg.x = (inertia.x * 40);
camTarg.y = ((water.y - y) - 150);
}
}
}//package
Section 41
//boto_hurt (boto_hurt)
package {
import flash.media.*;
public dynamic class boto_hurt extends Sound {
}
}//package
Section 42
//BotoCollider (BotoCollider)
package {
import flash.display.*;
import flash.geom.*;
import General.*;
public class BotoCollider extends Sprite implements Tickable {
public var myClip:MovieClip;
public var bounds:Point;
public var centerOff:Point;
public var killFlag:Boolean;// = false
public function BotoCollider(){
bounds = new Point(4000, 2000);
killFlag = false;
super();
Boto.COLLIDES.push(this);
Main.TICKABLES.push(this);
setBounds(Main.BOUNDS);
centerOff = new Point(0, 0);
}
public function collide():void{
}
public function kill():void{
killFlag = true;
if (parent != null){
parent.removeChild(this);
};
Util.ArrayRemoveItem(this, Boto.COLLIDES);
}
public function killed():Boolean{
return (killFlag);
}
public function tick():void{
}
public function setBounds(_arg1:Point):void{
bounds = _arg1;
}
}
}//package
Section 43
//bubbles1 (bubbles1)
package {
import flash.display.*;
public dynamic class bubbles1 extends MovieClip {
}
}//package
Section 44
//cannon_fire1 (cannon_fire1)
package {
import flash.media.*;
public dynamic class cannon_fire1 extends Sound {
}
}//package
Section 45
//cannon_fire2 (cannon_fire2)
package {
import flash.media.*;
public dynamic class cannon_fire2 extends Sound {
}
}//package
Section 46
//cloud1 (cloud1)
package {
import flash.display.*;
public dynamic class cloud1 extends MovieClip {
}
}//package
Section 47
//cloud2 (cloud2)
package {
import flash.display.*;
public dynamic class cloud2 extends MovieClip {
}
}//package
Section 48
//cutscene_armor (cutscene_armor)
package {
import flash.display.*;
public dynamic class cutscene_armor extends MovieClip {
public var anim:MovieClip;
}
}//package
Section 49
//cutscene_intro (cutscene_intro)
package {
import flash.display.*;
public dynamic class cutscene_intro extends MovieClip {
public var fishPoint:fishGuide;
public function cutscene_intro(){
addFrameScript(419, frame420);
}
function frame420(){
stop();
}
}
}//package
Section 50
//damage_particle (damage_particle)
package {
import flash.display.*;
public dynamic class damage_particle extends MovieClip {
}
}//package
Section 51
//drum (drum)
package {
import flash.display.*;
public dynamic class drum extends MovieClip {
}
}//package
Section 52
//DrumFloat (DrumFloat)
package {
import flash.geom.*;
public class DrumFloat extends BotoCollider {
public var popped:Boolean;// = false
public var lifespan:int;// = 500
public var inertia:Point;
public function DrumFloat(){
lifespan = 500;
popped = false;
super();
myClip = new Assets.drumFloat();
addChild(myClip);
y = Main.WATER.y;
lifespan = (5000 + (Math.random() * 1000));
inertia = new Point();
}
override public function collide():void{
SoundMgr.playSound("barrletHit");
popped = true;
inertia.x = (Fish.boto.inertia.x * 1.2);
inertia.y = (Fish.boto.inertia.y * 1.2);
}
override public function kill():void{
var _local1:int;
var _local2:ExplosionParticle;
_local1 = 0;
while (_local1 < 2) {
if (Main.currExplosions < Main.MAX_EXPLOSIONS){
_local2 = new ExplosionParticle();
if (parent != null){
parent.addChild(_local2);
};
_local2.x = (x + (Math.random() * width));
_local2.y = ((y + (Math.random() * height)) - (height / 2));
};
_local1++;
};
super.kill();
}
override public function tick():void{
lifespan--;
if (lifespan < 0){
kill();
};
if (popped){
x = (x + inertia.x);
y = (y + inertia.y);
if (y < Fish.water.y){
inertia.y = (inertia.y + 0.1);
boatCollision();
} else {
popped = false;
y = Fish.water.y;
};
};
}
public function boatCollision():void{
var _local1:Target;
graphics.clear();
if (Target.Y_MAX > Target.Y_MIN){
if (inertia.y > 0){
if ((((y < Target.Y_MAX)) && ((y > Target.Y_MIN)))){
for each (_local1 in Fish.TARGETS) {
if ((_local1 is LaserBoat)){
_local1.y = (_local1.y + Fish.water.y);
};
if ((((x > _local1.x)) && ((x < (_local1.x + _local1.collB.x))))){
if (Math.abs((y - _local1.y)) < (_local1.collB.y / 2)){
if (parent != null){
parent.addChild(this);
};
_local1.collision(this);
};
};
if ((_local1 is LaserBoat)){
_local1.y = (_local1.y - Fish.water.y);
};
};
};
};
};
}
}
}//package
Section 53
//drumFloat (drumFloat)
package {
import flash.display.*;
public dynamic class drumFloat extends MovieClip {
}
}//package
Section 54
//enemy_fishingboat (enemy_fishingboat)
package {
import flash.display.*;
public dynamic class enemy_fishingboat extends MovieClip {
}
}//package
Section 55
//enemy_freighter (enemy_freighter)
package {
import flash.display.*;
public dynamic class enemy_freighter extends MovieClip {
public var marleyFlip:MovieClip;
}
}//package
Section 56
//enemy_laserboat (enemy_laserboat)
package {
import flash.display.*;
public dynamic class enemy_laserboat extends MovieClip {
public var laserboat:MovieClip;
}
}//package
Section 57
//enemy_sharkboat (enemy_sharkboat)
package {
import flash.display.*;
public dynamic class enemy_sharkboat extends MovieClip {
}
}//package
Section 58
//enemy_speedboat (enemy_speedboat)
package {
import flash.display.*;
public dynamic class enemy_speedboat extends MovieClip {
}
}//package
Section 59
//enemy_sub (enemy_sub)
package {
import flash.display.*;
public dynamic class enemy_sub extends MovieClip {
}
}//package
Section 60
//explosion_large (explosion_large)
package {
import flash.media.*;
public dynamic class explosion_large extends Sound {
}
}//package
Section 61
//explosion_medium1 (explosion_medium1)
package {
import flash.media.*;
public dynamic class explosion_medium1 extends Sound {
}
}//package
Section 62
//explosion_medium2 (explosion_medium2)
package {
import flash.media.*;
public dynamic class explosion_medium2 extends Sound {
}
}//package
Section 63
//explosion_particle (explosion_particle)
package {
import flash.display.*;
public dynamic class explosion_particle extends MovieClip {
public function explosion_particle(){
addFrameScript(3, frame4);
}
function frame4(){
stop();
}
}
}//package
Section 64
//ExplosionParticle (ExplosionParticle)
package {
public class ExplosionParticle extends TimedParticle {
public function ExplosionParticle(_arg1:Number=0, _arg2:Number=0){
Main.currExplosions++;
x = _arg1;
y = _arg2;
myClip = new Assets.explosion_particle();
addChild(myClip);
myClip.rotation = (Math.random() * 360);
}
override public function kill():void{
super.kill();
Main.currExplosions--;
}
}
}//package
Section 65
//fish (fish)
package {
import flash.display.*;
public dynamic class fish extends MovieClip {
}
}//package
Section 66
//Fish (Fish)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import General.*;
public class Fish extends Sprite implements Tickable {
public var bombing:Boolean;// = false
public var myClip:MovieClip;
public var DECELERATION:Number;// = 0.1
public var dragging:Boolean;// = false
public var waterSpeed:Number;// = 1
public var flipped:Boolean;// = false
public var bounds:Point;
public var inertia:Point;
public var handicap:Point;
public var knockedOut:Boolean;// = false
public var ACCLERATION:Number;// = 0.005
public var killFlag:Boolean;// = false
public var inWater:Boolean;// = false
public var autofireShot:Boolean;// = false
public static var TARGETS:Array = new Array();
public static var FISHES:Array = new Array();
public static var water:Water;
public static var boto:Boto;
public function Fish(){
waterSpeed = 1;
ACCLERATION = 0.005;
DECELERATION = 0.1;
bounds = new Point(4000, 2000);
autofireShot = false;
knockedOut = false;
dragging = false;
inWater = false;
bombing = false;
killFlag = false;
flipped = false;
super();
myClip = new Assets.piranha();
addChild(myClip);
inertia = new Point();
FISHES.push(this);
handicap = new Point(((Math.random() * 0.4) + 0.8), ((Math.random() * 0.4) + 0.8));
myClip.addEventListener(MouseEvent.MOUSE_DOWN, mdown);
Main.TICKABLES.push(this);
setBounds(Main.BOUNDS);
}
public function collide():void{
graphics.beginFill(0xFF0000);
graphics.drawCircle(0, 0, 20);
graphics.endFill();
}
public function kill():void{
if (parent != null){
parent.removeChild(this);
};
Util.ArrayRemoveItem(this, FISHES);
killFlag = true;
Main.piranhaUsed++;
}
public function killed():Boolean{
return (killFlag);
}
public function mdown(_arg1:MouseEvent):void{
var _local2:Array;
_local2 = Main.TICKABLES;
startDrag();
dragging = true;
stage.addEventListener(MouseEvent.MOUSE_UP, mup);
}
public function flipX():void{
myClip.scaleY = (myClip.scaleY * -1);
flipped = !(flipped);
}
public function tick():void{
if (knockedOut){
myClip.gotoAndStop(2);
if ((((water == null)) || ((y > water.y)))){
if (!inWater){
inertia.y = 0.2;
};
inWater = true;
inertia.y = (inertia.y + 0.1);
if (inertia.y > 0.8){
inertia.y = 0.8;
};
} else {
inertia.y = (inertia.y + 0.3);
};
myClip.scaleY = -1;
inertia.x = (inertia.x * 0.99);
physInterp();
alpha = (alpha - 0.0001);
if (alpha <= 0){
kill();
};
return;
};
if (((boto.bomberModeOn) && (!(bombing)))){
x = boto.x;
y = boto.y;
inertia = new Point();
return;
};
if (bombing){
if (y > water.y){
knockOut();
};
};
if ((((((water == null)) || ((y > water.y)))) || (((((boto.autofireOn) && (!(autofireShot)))) && (!(bombing)))))){
underwaterMotion();
alpha = 0.6;
autofireShot = false;
inWater = true;
} else {
alpha = 1;
abovewaterMotion();
waterSpeed = (inertia.length * 2);
inWater = false;
};
if (!dragging){
physInterp();
};
myClip.rotation = (Math.atan((inertia.y / inertia.x)) * (180 / Math.PI));
if (inertia.x < 0){
myClip.rotation = (myClip.rotation + 180);
};
if (!inWater){
boatCollision();
};
if ((((inertia.x < 0)) && (!(flipped)))){
flipX();
};
if ((((inertia.x > 0)) && (flipped))){
flipX();
};
if (y > bounds.y){
y = bounds.y;
};
}
public function polluteCollide():void{
var _local1:BotoCollider;
var _local2:Point;
graphics.clear();
for each (_local1 in Boto.COLLIDES) {
if ((_local1 is Pollution)){
_local2 = new Point((x - _local1.x), (y - _local1.y));
if (_local2.length < _local1.width){
graphics.beginFill(0xFF0000);
graphics.drawCircle(0, 0, 20);
graphics.endFill();
};
};
};
}
public function setBounds(_arg1:Point):void{
bounds = _arg1;
}
public function mup(_arg1:MouseEvent):void{
if (dragging){
stopDrag();
};
}
public function physInterp():void{
x = (x + ((inertia.x * 0.75) * handicap.x));
y = (y + ((inertia.y * 0.75) * handicap.y));
}
public function boatCollision():void{
var _local1:Target;
graphics.clear();
if (Target.Y_MAX > Target.Y_MIN){
if (inertia.y > 0){
if ((((y < Target.Y_MAX)) && ((y > Target.Y_MIN)))){
for each (_local1 in TARGETS) {
if ((_local1 is LaserBoat)){
_local1.y = (_local1.y + water.y);
};
if ((((x > _local1.x)) && ((x < (_local1.x + _local1.collB.x))))){
if (Math.abs((y - _local1.y)) < (_local1.collB.y / 2)){
if (parent != null){
parent.addChild(this);
};
_local1.collision(this);
if (this.killFlag){
Main.GAME_MANAGER.increaseMult(1);
Main.GAME_MANAGER.addScore(1);
};
};
};
if ((_local1 is LaserBoat)){
_local1.y = (_local1.y - water.y);
};
};
};
};
};
}
public function underwaterMotion():void{
var _local1:Point;
var _local2:Number;
var _local3:Point;
var _local4:Point;
var _local5:Point;
var _local6:Number;
var _local7:Number;
_local1 = new Point((x - boto.x), (y - boto.y));
if (_local1.x == 0){
_local1.x = 0.01;
};
_local2 = (Math.atan((_local1.y / _local1.x)) * (180 / Math.PI));
if (_local1.x < 0){
_local2 = (_local2 + 180);
};
_local3 = new Point(-(Math.sin(((_local2 + 90) * (Math.PI / 180)))), Math.cos(((_local2 + 90) * (Math.PI / 180))));
_local4 = new Point(-(Math.sin(((myClip.rotation - 90) * (Math.PI / 180)))), Math.cos(((myClip.rotation - 90) * (Math.PI / 180))));
_local5 = new Point((_local4.x - _local3.x), (_local4.y - _local3.y));
_local4.x = (_local4.x - (_local5.x / 10));
_local4.y = (_local4.y - (_local5.y / 10));
_local6 = (_local1.length / 20);
_local7 = (_local6 - waterSpeed);
if (_local7 > 0){
waterSpeed = (waterSpeed + (ACCLERATION * _local7));
} else {
waterSpeed = (waterSpeed + (DECELERATION * _local7));
};
if (waterSpeed < 3){
waterSpeed = 3;
};
if (waterSpeed > 8){
waterSpeed = 8;
};
inertia.x = (_local4.x * waterSpeed);
inertia.y = (_local4.y * waterSpeed);
}
public function knockOut():void{
knockedOut = true;
SoundMgr.playSound("fishImpact");
Util.ArrayRemoveItem(this, FISHES);
}
public function abovewaterMotion():void{
inertia.y = (inertia.y + 0.1);
myClip.rotation = (Math.atan((inertia.y / inertia.x)) * (180 / Math.PI));
if (inertia.x < 0){
myClip.rotation = (myClip.rotation + 180);
};
}
}
}//package
Section 67
//fishGuide (fishGuide)
package {
import flash.display.*;
public dynamic class fishGuide extends MovieClip {
}
}//package
Section 68
//FishingBoat (FishingBoat)
package {
public class FishingBoat extends Boat {
public var SHOOT_TIME:int;// = 300
public var POLLUTE_SCALE:Number;// = 1
public var shootTimer:int;
public function FishingBoat(){
SHOOT_TIME = 300;
shootTimer = SHOOT_TIME;
POLLUTE_SCALE = 1;
super();
myClip = new Assets.enemy_fishingboat();
addChild(myClip);
initCollision();
hp = 50;
SPEED = 1.5;
killScore = 10;
shootTimer = int((SHOOT_TIME * Math.random()));
}
override public function collision(_arg1):void{
super.collision(_arg1);
}
override public function tick():void{
var _local1:Pollution;
super.tick();
shootTimer--;
if (shootTimer <= 0){
shootTimer = SHOOT_TIME;
_local1 = new Pollution();
if (parent != null){
parent.addChild(_local1);
};
_local1.x = (x + myClip.x);
_local1.y = (y + myClip.y);
_local1.scaleX = (_local1.scaleY = POLLUTE_SCALE);
};
}
}
}//package
Section 69
//float_like_smoke_B (float_like_smoke_B)
package {
import flash.media.*;
public dynamic class float_like_smoke_B extends Sound {
}
}//package
Section 70
//FoodFish (FoodFish)
package {
import flash.geom.*;
public class FoodFish extends BotoCollider implements Tickable {
public var water:Water;
public var DECELERATION:Number;// = 0.01
public var waterSpeed:Number;// = 0
public var flipped:Boolean;// = false
public var idleTarget:Point;
public var inertia:Point;
public var idleTargetDir:Number;
public var ACCLERATION:Number;// = 0.05
public var inWater:Boolean;// = false
public function FoodFish(){
waterSpeed = 0;
inertia = new Point();
inWater = false;
ACCLERATION = 0.05;
DECELERATION = 0.01;
flipped = false;
super();
myClip = new Assets.fish();
addChild(myClip);
water = Main.WATER;
myClip.rotation = 0;
inertia = new Point(0, 0);
idleTarget = new Point();
idleTarget.x = (Math.random() * bounds.x);
idleTarget.y = (((Math.random() * 500) + water.y) + 100);
idleTargetDir = Math.random();
if (idleTargetDir < 0.5){
idleTargetDir = -1;
} else {
idleTargetDir = 1;
};
}
override public function collide():void{
super.collide();
kill();
SoundMgr.playSound("botoEat");
Main.snacks++;
if ((myClip is Assets.fish)){
Main.GAME_MANAGER.getHeald(5);
} else {
Main.GAME_MANAGER.getHeald(15);
};
}
override public function kill():void{
if (!killed()){
Main.FOOD_FISH_COUNT--;
};
super.kill();
}
public function flipX():void{
myClip.scaleY = (myClip.scaleY * -1);
flipped = !(flipped);
}
override public function tick():void{
idleTarget.x = (idleTarget.x + idleTargetDir);
if ((((water == null)) || ((y > water.y)))){
underwaterMotion();
alpha = 0.8;
inWater = true;
} else {
abovewaterMotion();
waterSpeed = (inertia.length * 2);
alpha = 1;
inWater = false;
};
physInterp();
if (inertia.x == 0){
inertia.x = 0.001;
};
myClip.rotation = (Math.atan((inertia.y / inertia.x)) * (180 / Math.PI));
if (inertia.x < 0){
myClip.rotation = (myClip.rotation + 180);
};
if ((((inertia.x < 0)) && (!(flipped)))){
flipX();
};
if ((((inertia.x > 0)) && (flipped))){
flipX();
};
if (y > bounds.y){
y = bounds.y;
};
if (x < 0){
kill();
};
if (x > bounds.x){
kill();
};
}
public function physInterp():void{
x = (x + (inertia.x * 0.75));
y = (y + (inertia.y * 0.75));
}
public function underwaterMotion():void{
var _local1:Point;
var _local2:Number;
var _local3:Point;
var _local4:Point;
var _local5:Point;
var _local6:Number;
var _local7:Number;
_local1 = new Point((Fish.boto.x - x), (Fish.boto.y - y));
if (_local1.length < 200){
if (_local1.x == 0){
_local1.x = 0.01;
};
_local2 = (Math.atan((_local1.y / _local1.x)) * (180 / Math.PI));
if (_local1.x < 0){
_local2 = (_local2 + 180);
};
_local3 = new Point(-(Math.sin(((_local2 + 90) * (Math.PI / 180)))), Math.cos(((_local2 + 90) * (Math.PI / 180))));
_local4 = new Point(-(Math.sin(((myClip.rotation - 90) * (Math.PI / 180)))), Math.cos(((myClip.rotation - 90) * (Math.PI / 180))));
_local5 = new Point((_local4.x - _local3.x), (_local4.y - _local3.y));
_local4.x = (_local4.x - (_local5.x / 40));
_local4.y = (_local4.y - (_local5.y / 40));
_local6 = 5;
_local7 = (_local6 - waterSpeed);
if (_local7 > 0){
waterSpeed = (waterSpeed + (ACCLERATION * _local7));
} else {
waterSpeed = (waterSpeed + (DECELERATION * _local7));
};
if (waterSpeed > 4){
waterSpeed = 4;
};
inertia.x = (_local4.x * waterSpeed);
inertia.y = (_local4.y * waterSpeed);
} else {
_local1 = new Point((x - idleTarget.x), (y - idleTarget.y));
if (_local1.x == 0){
_local1.x = 0.01;
};
_local2 = (Math.atan((_local1.y / _local1.x)) * (180 / Math.PI));
if (_local1.x < 0){
_local2 = (_local2 + 180);
};
_local3 = new Point(-(Math.sin(((_local2 + 90) * (Math.PI / 180)))), Math.cos(((_local2 + 90) * (Math.PI / 180))));
_local4 = new Point(-(Math.sin(((myClip.rotation - 90) * (Math.PI / 180)))), Math.cos(((myClip.rotation - 90) * (Math.PI / 180))));
_local5 = new Point((_local4.x - _local3.x), (_local4.y - _local3.y));
_local4.x = (_local4.x - (_local5.x / 10));
_local4.y = (_local4.y - (_local5.y / 10));
_local6 = (_local1.length / 20);
_local7 = (_local6 - waterSpeed);
if (_local7 > 0){
waterSpeed = (waterSpeed + (ACCLERATION * _local7));
} else {
waterSpeed = (waterSpeed + (DECELERATION * _local7));
};
if (waterSpeed < 0.5){
waterSpeed = 0.5;
};
if (waterSpeed > 4){
waterSpeed = 4;
};
inertia.x = (_local4.x * waterSpeed);
inertia.y = (_local4.y * waterSpeed);
};
}
public function abovewaterMotion():void{
inertia.y = (inertia.y + 0.1);
myClip.rotation = (Math.atan((inertia.y / inertia.x)) * (180 / Math.PI));
if (inertia.x < 0){
myClip.rotation = (myClip.rotation + 180);
};
}
}
}//package
Section 71
//FoodSnake (FoodSnake)
package {
import flash.geom.*;
public class FoodSnake extends FoodFish {
public function FoodSnake(){
removeChild(myClip);
myClip = new Assets.snake();
addChild(myClip);
ACCLERATION = 0.3;
}
override public function underwaterMotion():void{
var _local1:Point;
var _local2:Number;
_local1 = new Point((Fish.boto.x - x), (Fish.boto.y - y));
_local2 = 2;
if (_local1.length < 200){
_local2 = 4;
if ((((_local1.x < 0)) && ((idleTargetDir < 0)))){
idleTargetDir = 1;
idleTarget.x = (x + (idleTargetDir * 200));
} else {
if ((((_local1.x > 0)) && ((idleTargetDir > 0)))){
idleTargetDir = -1;
idleTarget.x = (x + (idleTargetDir * 200));
};
};
};
inertia.x = (inertia.x + (idleTargetDir * ACCLERATION));
if (Math.abs(inertia.x) > _local2){
inertia.x = (inertia.x * 0.9);
};
}
}
}//package
Section 72
//Freighter (Freighter)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import General.*;
public class Freighter extends Boat {
public var SHOOT_TIME:int;// = 200
public var POLLUTE_SCALE:Number;// = 1.5
public var shootTimer:int;
public var DRUM_SHOOT_TIME:int;// = 200
public var drumToHP:Number;
public var drumShootTimer:int;
public var drums:Array;
public function Freighter(){
var _local1:int;
SHOOT_TIME = 200;
shootTimer = SHOOT_TIME;
POLLUTE_SCALE = 1.5;
DRUM_SHOOT_TIME = 200;
drumShootTimer = DRUM_SHOOT_TIME;
super();
myClip = new Assets.enemy_freighter();
addChild(myClip);
initCollision();
SPEED = 2.5;
shootTimer = int((SHOOT_TIME * Math.random()));
hp = 500;
killScore = 1000;
drums = new Array();
_local1 = 0;
while (_local1 < myClip.numChildren) {
if ((myClip.getChildAt(_local1) is Assets.drum)){
drums.push(myClip.getChildAt(_local1));
};
_local1++;
};
drumToHP = (hp / drums.length);
drums.sortOn("y", Array.DESCENDING);
}
public function drumKill():void{
var _local1:*;
while ((((drums.length > (hp / drumToHP))) && ((drums.length > 0)))) {
_local1 = drums.shift();
if (((_local1) && (!((_local1.parent == null))))){
_local1.parent.removeChild(_local1);
};
};
}
override public function collision(_arg1):void{
var _local2:Point;
if ((((_arg1 is Fish)) || ((_arg1 is DrumFloat)))){
_local2 = new Point((_arg1.x - x), (_arg1.y - y));
if (!flipped){
if (_local2.x > 250){
if (_local2.y < -125){
super.collision(_arg1);
drumKill();
};
};
} else {
if (_local2.x < 400){
if (_local2.y < -125){
super.collision(_arg1);
drumKill();
};
};
};
};
if ((_arg1 is Fish)){
Fish(_arg1).knockOut();
_arg1.inertia.x = (inertia * 1);
_arg1.inertia.y = 0.2;
};
}
override public function flipX():void{
super.flipX();
if (flipped){
myClip.marleyFlip.scaleX = -1;
} else {
myClip.marleyFlip.scaleX = 1;
};
}
override public function tick():void{
var _local1:int;
var _local2:Pollution;
var _local3:DrumFloat;
super.tick();
shootTimer--;
if (shootTimer <= 0){
shootTimer = SHOOT_TIME;
_local1 = 0;
while (_local1 < 2) {
_local2 = new Pollution();
if (parent != null){
parent.addChild(_local2);
};
_local2.x = ((x + myClip.x) + (_local1 * 150));
_local2.y = (y + myClip.y);
_local2.scaleX = (_local2.scaleY = POLLUTE_SCALE);
_local1++;
};
};
drumShootTimer--;
if (drumShootTimer <= 0){
drumShootTimer = DRUM_SHOOT_TIME;
_local3 = new DrumFloat();
if (parent != null){
parent.addChild(_local3);
};
_local3.x = (x + myClip.x);
_local3.y = (water.y + myClip.y);
};
}
}
}//package
Section 73
//GameManager (GameManager)
package {
import flash.display.*;
import flash.events.*;
import gs.*;
import flash.utils.*;
public class GameManager extends Sprite {
public var currStage:int;// = 0
public var uiScreen:MovieClip;
public var tickRate:int;// = 5
public var mult:Number;// = 1
public var health:Number;// = 100
public var score:Number;// = 0
public var tickCounter:int;
public var multCounter:Number;
public function GameManager(){
health = 100;
score = 0;
mult = 1;
tickRate = 5;
currStage = 0;
super();
addChild(new Assets.vignette());
uiScreen = new Assets.UIpage();
addChild(uiScreen);
uiScreen.blendOverlay.alpha = 0;
setHealth(100);
multCounter = 0;
addScore(0);
}
public function getHit(_arg1:Number):void{
setHealth((health - _arg1));
if (Fish.boto != null){
Fish.boto.hurt();
};
if (health <= 0){
Main(parent).endGame();
};
}
public function addScore(_arg1:Number):int{
score = (score + (_arg1 * mult));
uiScreen.healthMeter.scoreText.text = score;
if (mult > 1){
return ((_arg1 * mult));
};
return (0);
}
public function setHealth(_arg1:Number):void{
if (health > _arg1){
mult = 1;
};
if (_arg1 > 100){
_arg1 = 100;
};
health = _arg1;
uiScreen.healthMeter.gotoAndStop(health);
}
public function tick():void{
tickCounter--;
if (tickCounter <= 0){
tickCounter = tickRate;
multTick();
};
}
public function increaseMult(_arg1:Number):void{
multCounter = (multCounter + _arg1);
}
public function getHeald(_arg1:Number):void{
setHealth((health + _arg1));
Fish.boto.heal();
}
public function nextStage():void{
currStage++;
if ((((currStage > 6)) && ((currStage < 14)))){
uiScreen.blendOverlay.visible = true;
TweenLite.to(uiScreen.blendOverlay, 5, {alpha:((currStage - 6) * 0.1)});
};
}
public function multTick():void{
mult = Math.ceil((multCounter / 10));
multCounter = (multCounter - (Math.pow(mult, 1.5) / 100));
TweenLite.to(uiScreen.multiplierText, 0.1, {frame:((multCounter - ((mult - 1) * 10)) * 10)});
uiScreen.multiplierText.multiplier_text.text = (("\n" + mult) + "x");
}
}
}//package
Section 74
//groundTile (groundTile)
package {
import flash.display.*;
public dynamic class groundTile extends MovieClip {
}
}//package
Section 75
//heal_particle (heal_particle)
package {
import flash.display.*;
public dynamic class heal_particle extends MovieClip {
}
}//package
Section 76
//help (help)
package {
import flash.display.*;
public dynamic class help extends SimpleButton {
}
}//package
Section 77
//helpScreen (helpScreen)
package {
import flash.display.*;
public dynamic class helpScreen extends MovieClip {
public var btn_back:SimpleButton;
}
}//package
Section 78
//HelpScreen (HelpScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import General.*;
public class HelpScreen extends Sprite implements Tickable {
public var myClip:MovieClip;
public function HelpScreen(){
myClip = new Assets.helpScreen();
addChild(myClip);
myClip.btn_back.addEventListener(MouseEvent.CLICK, back);
Main.TICKABLES.push(this);
SoundMgr.playSound("music_menu");
alpha = 0;
}
public function kill():void{
Util.ArrayRemoveItem(this, Main.TICKABLES);
if (parent != null){
parent.removeChild(this);
};
}
public function killed():Boolean{
return (false);
}
public function tick():void{
alpha = (alpha + 0.02);
}
public function setBounds(_arg1:Point):void{
}
public function back(_arg1:MouseEvent):void{
Main(parent).mainMenu.fadingIn = true;
kill();
}
}
}//package
Section 79
//kelp1 (kelp1)
package {
import flash.display.*;
public dynamic class kelp1 extends MovieClip {
}
}//package
Section 80
//kelp2 (kelp2)
package {
import flash.display.*;
public dynamic class kelp2 extends MovieClip {
}
}//package
Section 81
//LaserBoat (LaserBoat)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import General.*;
import flash.utils.*;
public class LaserBoat extends Boat {
public var laserOn:Boolean;// = false
public var laserTimer:Timer;
public var laseringTimer:Timer;
public var LASER_RANGE:Number;// = 1000
public var REAL_laserGraphic:MovieClip;
public var laserGraphic:MovieClip;
public function LaserBoat(){
laserOn = false;
LASER_RANGE = 1000;
super();
myClip = new Assets.enemy_laserboat();
addChild(myClip);
initCollision();
laserTimer = new Timer(2000);
laserTimer.addEventListener(TimerEvent.TIMER, laserEm);
laserTimer.start();
laseringTimer = new Timer(400);
laseringTimer.addEventListener(TimerEvent.TIMER, stopLaser);
laserGraphic = new MovieClip();
laserGraphic.graphics.lineStyle(5, 0xFF0000);
laserGraphic.graphics.lineTo(LASER_RANGE, 0);
laserGraphic.visible = false;
REAL_laserGraphic = new MovieClip();
REAL_laserGraphic.graphics.lineStyle((5 / 0.39), 0xFF0000);
REAL_laserGraphic.graphics.lineTo((LASER_RANGE / 0.39), 0);
myClip.laserboat.addChildAt(REAL_laserGraphic, myClip.laserboat.getChildIndex(myClip.laserboat.laser_dish));
REAL_laserGraphic.x = myClip.laserboat.laser_dish.x;
REAL_laserGraphic.y = myClip.laserboat.laser_dish.y;
REAL_laserGraphic.visible = false;
SPEED = 2;
killScore = 80;
hp = 180;
}
override public function collision(_arg1):void{
super.collision(_arg1);
}
override public function kill():void{
super.kill();
laseringTimer.stop();
laserTimer.stop();
if (laserGraphic.parent != null){
laserGraphic.parent.removeChild(laserGraphic);
};
}
override public function flipX():void{
super.flipX();
}
override public function tick():void{
var _local1:Point;
var _local2:Point;
var _local3:Fish;
var _local4:Point;
var _local5:Point;
var _local6:Point;
var _local7:Point;
super.tick();
if (killed()){
return;
};
y = 0;
if (laserOn){
y = (y + water.y);
_local1 = new Point(myClip.laserboat.laser_dish.x, myClip.laserboat.laser_dish.y);
_local1 = MovieClip(myClip.laserboat).localToGlobal(_local1);
_local1 = parent.globalToLocal(_local1);
laserGraphic.x = _local1.x;
laserGraphic.y = _local1.y;
_local2 = new Point();
_local2.x = ((-(Math.sin(((laserGraphic.rotation - 90) * (Math.PI / 180)))) * 10) + laserGraphic.x);
_local2.y = ((Math.cos(((laserGraphic.rotation - 90) * (Math.PI / 180))) * 10) + laserGraphic.y);
for each (_local3 in Fish.FISHES) {
_local5 = new Point((_local3.x - laserGraphic.x), (_local3.y - laserGraphic.y));
if (_local5.length < LASER_RANGE){
if (Util.RayCircleIntersect(new Point(laserGraphic.x, laserGraphic.y), _local2, new Point(_local3.x, _local3.y), _local3.width)){
_local3.knockOut();
};
};
};
_local4 = new Point((_local2.x - laserGraphic.x), (_local2.y - laserGraphic.y));
if (((((((!(Fish.boto.inWater)) && ((Fish.boto.laserdCounter < 0)))) && (!(Fish.boto.autofireOn)))) && (!(Fish.boto.bomberModeOn)))){
_local6 = new Point((Fish.boto.x - laserGraphic.x), (Fish.boto.y - laserGraphic.y));
if (_local6.length < LASER_RANGE){
if ((((((_local4.x > 0)) && ((_local6.x > 0)))) || ((((_local4.x < 0)) && ((_local6.x < 0)))))){
if (Util.RayCircleIntersect(new Point(laserGraphic.x, laserGraphic.y), _local2, new Point(Fish.boto.x, Fish.boto.y), 20)){
Main.GAME_MANAGER.getHit(10);
_local7 = new Point(-(Math.sin(((laserGraphic.rotation - 90) * (Math.PI / 180)))), Math.cos(((laserGraphic.rotation - 90) * (Math.PI / 180))));
Fish.boto.shockInertia.x = (Fish.boto.shockInertia.x + (_local7.x * 10));
Fish.boto.shockInertia.y = (Fish.boto.shockInertia.y + (_local7.y * 10));
Fish.boto.laserd();
};
};
};
};
laserGraphic.rotation = (laserGraphic.rotation + 0.4);
myClip.laserboat.laser_dish.rotation = laserGraphic.rotation;
if (flipped){
myClip.laserboat.laser_dish.rotation = (180 - myClip.laserboat.laser_dish.rotation);
};
REAL_laserGraphic.rotation = myClip.laserboat.laser_dish.rotation;
y = (y - water.y);
} else {
REAL_laserGraphic.visible = false;
myClip.laserboat.laser_dish.gotoAndStop(1);
};
}
public function laserEm(_arg1:TimerEvent):void{
var _local2:Array;
var _local3:Fish;
var _local4:Point;
var _local5:Point;
var _local6:Point;
if (parent == null){
return;
};
if (Fish.boto.bomberModeOn){
return;
};
_local2 = Fish.FISHES;
y = (y + water.y);
for each (_local3 in _local2) {
if (_local3.y < water.y){
_local4 = new Point(((_local3.x - x) + myClip.x), ((_local3.y - y) + myClip.y));
if (_local4.length < LASER_RANGE){
SoundMgr.playSound("laserLoop");
laseringTimer.start();
laserOn = true;
parent.addChildAt(laserGraphic, (parent.getChildIndex(this) - 1));
_local5 = new Point(myClip.laserboat.laser_dish.x, myClip.laserboat.laser_dish.y);
_local5 = MovieClip(myClip.laserboat).localToGlobal(_local5);
_local5 = parent.globalToLocal(_local5);
laserGraphic.x = _local5.x;
laserGraphic.y = _local5.y;
_local6 = new Point((_local3.x - laserGraphic.x), (_local3.y - laserGraphic.y));
laserGraphic.rotation = (Math.atan((_local6.y / _local6.x)) * (180 / Math.PI));
if (_local6.x < 0){
laserGraphic.rotation = (laserGraphic.rotation + 180);
};
myClip.laserboat.laser_dish.rotation = laserGraphic.rotation;
if (flipped){
myClip.laserboat.laser_dish.rotation = (180 - myClip.laserboat.laser_dish.rotation);
};
myClip.laserboat.laser_dish.gotoAndStop(2);
REAL_laserGraphic.rotation = myClip.laserboat.laser_dish.rotation;
REAL_laserGraphic.visible = true;
};
};
};
y = (y - water.y);
}
public function stopLaser(_arg1:TimerEvent):void{
laserOn = false;
laseringTimer.stop();
if (laserGraphic.parent != null){
laserGraphic.parent.removeChild(laserGraphic);
};
}
}
}//package
Section 82
//Main (Main)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import gs.*;
import General.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
public class Main extends Sprite {
public var foodFishSpawnTimer;
public var foodFishSpawnCounter:int;
public var cutsceneIntro:MovieClip;
public var foodFishTotal:int;// = 12
public var circ:Sprite;
public var targets:Array;
public var cutsceneBoto:Boto;
public var armorIntroClip:MovieClip;
public var waveMgr:WaveManager;
public var bomberAccum:Number;// = 0
public var autofireAccum:Number;// = 0
public var lastTime:int;
public var accumulator:int;
public var boatSpawnCounter:int;
public var mineAccum:Number;// = 0
public var FOOD_FISH_SPAWN_RATE:int;// = 200
public var BOAT_SPAWN_RATE:int;// = 200
public var kongAPI:KongAPI;
public var p1:Point;
public var mainMenu:MainMenu;
public var input:Input;
public var fpsCounter:FpsCounter;
public var boatSpawnTimer:Timer;
public static var GAME_MANAGER:GameManager;
public static var mineFreq:Number = 0;
public static var autofireFreq:Number = 0;
public static var playing:Boolean = false;
public static var FOOD_FISH_COUNT:int = 0;
public static var xmlLoader:URLLoader;
public static var TICKABLES:Array;
public static var currExplosions:int = 0;
public static var MAX_EXPLOSIONS:int = 3;
public static var piranhaUsed:int = 0;
public static var snacks:int = 0;
public static var bomberFreq:Number = 0;
public static var topWave:int = 0;
public static var paused:Boolean = false;
public static var WATER:Water;
public static var SCROLLER:ScrollScreen;
public static var powerupsOut:int = 0;
public static var BOUNDS:Point = new Point(4000, 1000);
public function Main(){
BOAT_SPAWN_RATE = 200;
FOOD_FISH_SPAWN_RATE = 200;
foodFishTotal = 12;
foodFishSpawnTimer = new Timer(1000);
mineAccum = 0;
bomberAccum = 0;
autofireAccum = 0;
super();
addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
public function introTick():void{
cutsceneBoto.x = cutsceneIntro.fishPoint.x;
cutsceneBoto.y = cutsceneIntro.fishPoint.y;
if (((((!((cutsceneIntro == null))) && (!((cutsceneIntro.parent == null))))) && ((cutsceneIntro.currentFrame == cutsceneIntro.totalFrames)))){
skipIntro(null);
};
}
public function skipIntro(_arg1:MouseEvent):void{
var _local2:Array;
var _local3:Fish;
if (cutsceneIntro != null){
cutsceneIntro.stop();
if (cutsceneIntro.parent != null){
cutsceneIntro.parent.removeChild(cutsceneIntro);
};
};
cutsceneIntro = null;
cutsceneBoto = null;
mainMenu = new MainMenu();
addChild(mainMenu);
SCROLLER.SCROLL_SPEED = 25;
SCROLLER.idleTarget = new Point(-400, 0);
_local2 = Fish.FISHES;
for each (_local3 in _local2) {
_local3.kill();
};
}
public function spawnBoat():void{
var _local1:Number;
var _local2:int;
var _local3:Array;
var _local4:Boat;
var _local5:Mine;
var _local6:Powerup;
var _local7:Powerup;
targets = Fish.TARGETS;
if (targets.length <= 0){
if (waveMgr != null){
_local3 = waveMgr.nextWave(WATER);
for each (_local4 in _local3) {
SCROLLER.addBoat(_local4);
targets.push(_local4);
};
};
};
mineAccum = (mineAccum + mineFreq);
_local1 = 0;
_local2 = 0;
while (_local2 < mineAccum) {
_local5 = new Mine();
SCROLLER.addChild(_local5);
_local5.x = (Math.random() * BOUNDS.x);
_local5.y = BOUNDS.y;
_local1++;
_local2++;
};
mineAccum = (mineAccum - _local1);
bomberAccum = (bomberAccum + bomberFreq);
if ((((bomberAccum >= 1)) && ((powerupsOut == 0)))){
_local6 = new Powerup("bomberMode");
SCROLLER.addChild(_local6);
_local6.x = (Math.random() * BOUNDS.x);
_local6.y = 60;
bomberAccum = 0;
powerupsOut++;
};
autofireAccum = (autofireAccum + autofireFreq);
if ((((autofireAccum >= 1)) && ((powerupsOut == 0)))){
_local7 = new Powerup("autofire");
SCROLLER.addChild(_local7);
_local7.x = (Math.random() * BOUNDS.x);
_local7.y = 60;
autofireAccum = 0;
powerupsOut++;
};
}
public function spawnFoodFish():void{
var _local1:int;
var _local2:FoodFish;
if (FOOD_FISH_COUNT < foodFishTotal){
_local1 = 0;
while (_local1 < 1) {
_local2 = new FoodSnake();
_local2.x = Math.random();
_local2.y = (((Math.random() * 400) + WATER.y) + 200);
if (_local2.x < 0.5){
_local2.x = 10;
_local2.idleTargetDir = 1;
_local2.idleTarget = new Point((_local2.x + 200), _local2.y);
} else {
_local2.x = (BOUNDS.x - 10);
_local2.idleTargetDir = -1;
_local2.idleTarget = new Point((_local2.x - 200), _local2.y);
};
SCROLLER.addChild(_local2);
FOOD_FISH_COUNT++;
_local1++;
};
_local1 = 0;
while (_local1 < 3) {
_local2 = new FoodFish();
_local2.x = Math.random();
_local2.y = (((Math.random() * 400) + WATER.y) + 200);
if (_local2.x < 0.5){
_local2.x = 10;
_local2.idleTargetDir = 1;
_local2.idleTarget = new Point((_local2.x + 200), _local2.y);
} else {
_local2.x = (BOUNDS.x - 10);
_local2.idleTargetDir = -1;
_local2.idleTarget = new Point((_local2.x - 200), _local2.y);
};
SCROLLER.addChild(_local2);
FOOD_FISH_COUNT++;
_local1++;
};
};
}
public function armorIntro():void{
var gotoArmor:Function;
gotoArmor = function (_arg1:MouseEvent){
navigateToURL(new URLRequest("http://Armorgames.com"));
};
armorIntroClip = new Assets.cutscene_armor();
addChild(armorIntroClip);
TweenLite.to(armorIntroClip.anim, armorIntroClip.anim.totalFrames, {useFrames:true, onComplete:doIntro});
armorIntroClip.addEventListener(MouseEvent.CLICK, gotoArmor, false, 0, true);
}
public function enterFrame(_arg1:Event):void{
var _local2:int;
var _local3:int;
var _local4:Tickable;
var _local5:int;
if (((!((stage.quality == "HIGH"))) && (GAME_MANAGER.uiScreen.blendOverlay.visible))){
GAME_MANAGER.uiScreen.blendOverlay.visible = false;
} else {
if ((((stage.quality == "HIGH")) && (!(GAME_MANAGER.uiScreen.blendOverlay.visible)))){
GAME_MANAGER.uiScreen.blendOverlay.visible = true;
};
};
stage.focus = stage;
if (cutsceneIntro != null){
introTick();
};
if (Input.isKeyDown(27)){
if (!paused){
paused = true;
addChild(new OptionsScreen());
};
};
if (((!(paused)) && (playing))){
GAME_MANAGER.tick();
boatSpawnCounter--;
foodFishSpawnCounter--;
if (boatSpawnCounter <= 0){
spawnBoat();
boatSpawnCounter = BOAT_SPAWN_RATE;
};
if (foodFishSpawnCounter <= 0){
spawnFoodFish();
foodFishSpawnCounter = FOOD_FISH_SPAWN_RATE;
};
};
fpsCounter.update();
_local2 = getTimer();
_local3 = (_local2 - lastTime);
lastTime = _local2;
accumulator = (accumulator + _local3);
while (accumulator > 10) {
accumulator = (accumulator - 10);
for each (_local4 in TICKABLES) {
if (((!(paused)) || ((_local4 is OptionsScreen)))){
if (!_local4.killed()){
_local4.tick();
};
};
};
_local5 = 0;
while (_local5 < TICKABLES.length) {
if (Tickable(TICKABLES[_local5]).killed()){
if (_local5 == (TICKABLES.length - 1)){
TICKABLES.pop();
} else {
TICKABLES[_local5] = TICKABLES.pop();
_local5--;
};
};
_local5++;
};
};
}
public function endGame():void{
var _local1:Tickable;
piranhaUsed = 0;
snacks = 0;
topWave = 0;
GAME_MANAGER.uiScreen.blendOverlay.alpha = 0;
GAME_MANAGER.uiScreen.visible = false;
playing = false;
Fish.boto.visible = false;
SCROLLER.target = null;
for each (_local1 in TICKABLES) {
if ((_local1 is Fish)){
Fish(_local1).kill();
};
if ((_local1 is FoodFish)){
FoodFish(_local1).kill();
};
if ((_local1 is BotoCollider)){
BotoCollider(_local1).kill();
};
if ((_local1 is Target)){
Target(_local1).kill();
};
if ((_local1 is Boto)){
Boto(_local1).kill();
};
};
waveMgr.currWave = 0;
addChild(new ScoreScreen());
GAME_MANAGER.score = 0;
GAME_MANAGER.addScore(0);
GAME_MANAGER.mult = 1;
GAME_MANAGER.multCounter = 0;
GAME_MANAGER.health = 100;
GAME_MANAGER.getHit(0);
}
public function onAdded(_arg1:Event):void{
stage.frameRate = 30;
fpsCounter = new FpsCounter();
input = new Input(Sprite(parent));
TICKABLES = new Array();
targets = new Array();
SCROLLER = new ScrollScreen();
addChild(SCROLLER);
WATER = new Water();
WATER.y = 200;
SCROLLER.addChild(WATER);
WATER.scroller = SCROLLER;
GAME_MANAGER = new GameManager();
addChild(GAME_MANAGER);
GAME_MANAGER.uiScreen.visible = false;
Pollution.water = WATER;
waveMgr = new WaveManager(WavesConfig.MY_XML);
addEventListener(Event.ENTER_FRAME, enterFrame);
}
public function doIntro():void{
var _local1:int;
var _local2:Fish;
if (((!((armorIntroClip == null))) && (!((armorIntroClip.parent == null))))){
armorIntroClip.anim.stop();
armorIntroClip.parent.removeChild(armorIntroClip);
armorIntroClip = null;
};
SoundMgr.playSound("music_underwater");
cutsceneIntro = new Assets.cutscene_intro();
addChild(cutsceneIntro);
cutsceneIntro.fishPoint.visible = false;
cutsceneIntro.addEventListener(MouseEvent.CLICK, skipIntro);
SCROLLER.idleTarget = new Point(-140, -525);
SCROLLER.SCROLL_SPEED = 1;
cutsceneBoto = new Boto();
cutsceneBoto.setWater(WATER);
Util.ArrayRemoveItem(cutsceneBoto, TICKABLES);
_local1 = 0;
while (_local1 < 30) {
_local2 = new Fish();
_local2.x = (1000 + (Math.random() * 100));
_local2.y = (250 + (Math.random() * 100));
cutsceneIntro.addChild(_local2);
_local1++;
};
}
public function startNewGame():void{
var _local1:Boto;
GAME_MANAGER.uiScreen.visible = true;
_local1 = new Boto();
_local1.x = 1000;
_local1.y = 200;
SCROLLER.waterTopBase.addChild(_local1);
SCROLLER.setTarget(_local1, new Point(350, 225));
lastTime = getTimer();
accumulator = 0;
playing = true;
boatSpawnCounter = 200;
}
public static function spawnWaveMsg(_arg1:String):void{
var _local2:Particle;
_local2 = new Particle(200, new Assets.waveMessage(), true);
_local2.myClip.fuckerHead.textBox.text = ("\n" + _arg1);
WATER.stage.addChild(_local2);
}
}
}//package
Section 83
//MainMenu (MainMenu)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.net.*;
public class MainMenu extends Sprite implements Tickable {
public var myClip:MovieClip;
public var fadingIn:Boolean;// = false
private var fading:Boolean;// = false
private var rest:Number;// = 200
public function MainMenu(){
rest = 200;
fading = false;
fadingIn = false;
super();
myClip = new Assets.mainMenu();
addChild(myClip);
myClip.y = -200;
Main.TICKABLES.push(this);
SoundMgr.playSound("music_menu");
myClip.btn_start.addEventListener(MouseEvent.CLICK, start);
myClip.btn_options.addEventListener(MouseEvent.CLICK, options);
myClip.btn_help.addEventListener(MouseEvent.CLICK, help);
myClip.btn_armorLink.addEventListener(MouseEvent.CLICK, armorLink);
myClip.btn_armorBlog.addEventListener(MouseEvent.CLICK, armorBlog);
myClip.btn_intuition.addEventListener(MouseEvent.CLICK, intuition);
}
public function help(_arg1:MouseEvent):void{
if (parent != null){
parent.addChild(new HelpScreen());
};
fading = true;
mouseEnabled = false;
mouseChildren = false;
}
public function intuition(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://www.intuitiongames.com"));
}
public function start(_arg1:MouseEvent):void{
if (Main.paused){
Main.paused = false;
} else {
Main(parent).startNewGame();
};
fading = true;
mouseEnabled = false;
mouseChildren = false;
}
public function killed():Boolean{
return (false);
}
public function armorBlog(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://Armorblog.com"));
}
public function tick():void{
if (myClip.y < rest){
myClip.y = (myClip.y + ((myClip.y + 201) / 10));
if (myClip.y >= rest){
myClip.y = rest;
Main.SCROLLER.shakey(100);
};
};
if (fading){
alpha = (alpha - 0.02);
if (alpha <= 0.02){
visible = false;
fading = false;
};
} else {
if (fadingIn){
visible = true;
mouseEnabled = true;
mouseChildren = true;
alpha = (alpha + 0.02);
if (alpha >= 1){
fadingIn = false;
};
};
};
}
public function options(_arg1:MouseEvent):void{
if (parent != null){
parent.addChild(new OptionsScreen());
};
fading = true;
mouseEnabled = false;
mouseChildren = false;
}
public function setBounds(_arg1:Point):void{
}
public function armorLink(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://Armorgames.com"));
}
}
}//package
Section 84
//Mine (Mine)
package {
import flash.display.*;
import flash.geom.*;
public class Mine extends BotoCollider {
public var lifespan:int;// = 750
public var targetDepth:Number;
public var didDamage:Boolean;// = false
public var inverseDamage:Number;// = 5
public function Mine(){
lifespan = 750;
didDamage = false;
inverseDamage = 5;
super();
myClip = new Assets.mineFloat();
addChild(myClip);
myClip.mineSplode.gotoAndStop(1);
targetDepth = (((Math.random() * 500) + Fish.water.y) + 100);
}
override public function collide():void{
var _local1:Point;
var _local2:Point;
var _local3:Point;
var _local4:Number;
if (myClip.mineSplode.currentFrame == 1){
myClip.mineSplode.gotoAndPlay(8);
};
if ((((myClip.mineSplode.currentFrame > 11)) && (!(didDamage)))){
didDamage = true;
_local1 = new Point(((Fish.boto.x - x) + centerOff.x), ((Fish.boto.y - y) + centerOff.y));
_local2 = new Point((_local1.x / (Math.abs(_local1.x) + Math.abs(_local1.y))), (_local1.y / (Math.abs(_local1.x) + Math.abs(_local1.y))));
_local3 = new Point(((200 / _local1.length) * _local2.x), ((200 / _local1.length) * _local2.y));
if (_local3.x > 5){
_local3.x = 5;
};
if (_local3.x < -5){
_local3.x = -5;
};
if (_local3.y > 5){
_local3.y = 5;
};
if (_local3.y < -5){
_local3.y = -5;
};
Fish.boto.shockInertia.x = (Fish.boto.shockInertia.x + _local3.x);
Fish.boto.shockInertia.y = (Fish.boto.shockInertia.y + _local3.y);
_local4 = Math.floor((20 * (_local3.length / inverseDamage)));
trace(((_local3.length + " ") + _local4));
if (_local4 > 20){
_local4 = 20;
};
Main.GAME_MANAGER.getHit(_local4);
if (_local3.length > 100){
trace("jesus");
};
};
}
override public function kill():void{
super.kill();
}
override public function tick():void{
var _local1:Point;
centerOff.x = myClip.mineSplode.x;
centerOff.y = myClip.mineSplode.y;
y = (y + ((targetDepth - y) / 100));
if (myClip.mineSplode.currentFrame == myClip.mineSplode.totalFrames){
kill();
};
lifespan--;
if (lifespan < 0){
if (myClip.mineSplode.currentFrame == 1){
myClip.mineSplode.play();
};
};
if (myClip.mineSplode.currentFrame == 11){
_local1 = new Point(((x + ScrollScreen(parent).x) - ScrollScreen(parent).centerOffset.x), ((y + ScrollScreen(parent).y) - ScrollScreen(parent).centerOffset.y));
if (_local1.length < 700){
SoundMgr.playSound("depthCharge");
};
};
}
}
}//package
Section 85
//mineFloat (mineFloat)
package {
import flash.display.*;
public dynamic class mineFloat extends MovieClip {
public var mineSplode:MovieClip;
}
}//package
Section 86
//options (options)
package {
import flash.display.*;
public dynamic class options extends SimpleButton {
}
}//package
Section 87
//optionsScreen (optionsScreen)
package {
import flash.display.*;
public dynamic class optionsScreen extends MovieClip {
public var btn_low:SimpleButton;
public var btn_off:SimpleButton;
public var btn_on:SimpleButton;
public var btn_high:SimpleButton;
public var btn_medium:SimpleButton;
public var btn_back:SimpleButton;
}
}//package
Section 88
//OptionsScreen (OptionsScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import General.*;
import flash.media.*;
import flash.net.*;
public class OptionsScreen extends Sprite implements Tickable {
public var myClip:MovieClip;
public function OptionsScreen(){
if (Main.paused){
myClip = new Assets.pauseScreen();
addChild(myClip);
myClip.btn_restart.addEventListener(MouseEvent.CLICK, restart);
myClip.btn_armorLink.addEventListener(MouseEvent.CLICK, armorLink);
} else {
myClip = new Assets.optionsScreen();
addChild(myClip);
};
myClip.btn_on.addEventListener(MouseEvent.CLICK, soundOn);
myClip.btn_off.addEventListener(MouseEvent.CLICK, soundOff);
myClip.btn_high.addEventListener(MouseEvent.CLICK, highDetail);
myClip.btn_medium.addEventListener(MouseEvent.CLICK, mediumDetail);
myClip.btn_low.addEventListener(MouseEvent.CLICK, lowDetail);
myClip.btn_back.addEventListener(MouseEvent.CLICK, back);
Main.TICKABLES.push(this);
SoundMgr.playSound("music_menu");
alpha = 0;
}
public function restart(_arg1:MouseEvent):void{
Main.paused = false;
Main.GAME_MANAGER.getHit(1000);
kill();
}
public function mediumDetail(_arg1:MouseEvent):void{
stage.quality = StageQuality.MEDIUM;
}
public function soundOn(_arg1:MouseEvent):void{
SoundMixer.soundTransform = new SoundTransform(1);
}
public function kill():void{
if (parent != null){
parent.removeChild(this);
};
}
public function killed():Boolean{
return ((parent == null));
}
public function highDetail(_arg1:MouseEvent):void{
stage.quality = StageQuality.HIGH;
}
public function tick():void{
if (alpha < 1){
alpha = (alpha + 0.02);
};
myClip.btn_on.alpha = 1;
myClip.btn_off.alpha = 1;
myClip.btn_high.alpha = 1;
myClip.btn_medium.alpha = 1;
myClip.btn_low.alpha = 1;
if (SoundMixer.soundTransform.volume == 1){
myClip.btn_on.alpha = 0.25;
} else {
myClip.btn_off.alpha = 0.25;
};
if (stage.quality == "HIGH"){
myClip.btn_high.alpha = 0.25;
} else {
if (stage.quality == "MEDIUM"){
myClip.btn_medium.alpha = 0.25;
} else {
myClip.btn_low.alpha = 0.25;
};
};
}
public function setBounds(_arg1:Point):void{
}
public function lowDetail(_arg1:MouseEvent):void{
stage.quality = StageQuality.LOW;
}
public function armorLink(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://Armorgames.com"));
}
public function soundOff(_arg1:MouseEvent):void{
SoundMixer.soundTransform = new SoundTransform(0);
}
public function back(_arg1:MouseEvent):void{
if (Main.paused){
Main.paused = false;
} else {
Main(parent).mainMenu.fadingIn = true;
};
kill();
}
}
}//package
Section 89
//Particle (Particle)
package {
import flash.display.*;
import flash.geom.*;
public class Particle extends Sprite implements Tickable {
public var myClip:MovieClip;
public var lifespan:int;
public var fadeOnDead:Boolean;
public var inertia:Point;
public var age:int;
public function Particle(_arg1:int, _arg2:MovieClip, _arg3:Boolean=false){
myClip = _arg2;
addChild(myClip);
lifespan = _arg1;
inertia = new Point();
fadeOnDead = _arg3;
age = 0;
Main.TICKABLES.push(this);
}
public function killed():Boolean{
return ((lifespan < 0));
}
public function tick():void{
x = (x + inertia.x);
y = (y + inertia.y);
age++;
if (age > lifespan){
if (parent != null){
parent.removeChild(this);
};
};
if (((fadeOnDead) && ((age > (lifespan * 0.8))))){
alpha = ((lifespan - age) / (lifespan * 0.2));
};
}
public function setBounds(_arg1:Point):void{
}
}
}//package
Section 90
//pauseScreen (pauseScreen)
package {
import flash.display.*;
public dynamic class pauseScreen extends MovieClip {
public var btn_low:SimpleButton;
public var btn_off:SimpleButton;
public var btn_restart:SimpleButton;
public var btn_on:SimpleButton;
public var btn_high:SimpleButton;
public var btn_armorLink:SimpleButton;
public var btn_medium:SimpleButton;
public var btn_back:SimpleButton;
}
}//package
Section 91
//piranha (piranha)
package {
import flash.display.*;
public dynamic class piranha extends MovieClip {
public function piranha(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 92
//Pollution (Pollution)
package {
import flash.geom.*;
public class Pollution extends BotoCollider {
public var hitTimer:int;// = 0
public var inertia:Point;
public var alphaCounter:int;
public static var water:Water;
public function Pollution(){
hitTimer = 0;
super();
myClip = new Assets.pollution_particle();
addChild(myClip);
myClip.rotation = (Math.random() * 360);
inertia = new Point(0, 1);
}
override public function collide():void{
var _local1:Number;
if (hitTimer < 0){
_local1 = 2;
Main.GAME_MANAGER.getHit((Math.round((alpha / 0.2)) * _local1));
hitTimer = 30;
};
}
override public function tick():void{
super.tick();
x = (x + inertia.x);
y = (y + inertia.y);
if (x < 0){
kill();
};
if (x > bounds.x){
kill();
};
if (y > bounds.y){
kill();
};
hitTimer--;
alphaCounter--;
if (alphaCounter < 0){
alphaCounter = 10;
alpha = (alpha - 0.02);
myClip.scaleX = (myClip.scaleY = (myClip.scaleY + 0.03));
if (alpha <= 0.01){
kill();
};
};
}
}
}//package
Section 93
//pollution_particle (pollution_particle)
package {
import flash.display.*;
public dynamic class pollution_particle extends MovieClip {
}
}//package
Section 94
//Powerup (Powerup)
package {
public class Powerup extends BotoCollider {
public var type:String;
public function Powerup(_arg1:String){
type = _arg1;
if (type == "autofire"){
myClip = new Assets.powerup_autofire();
} else {
if (type == "bomberMode"){
myClip = new Assets.powerup_bombermode();
};
};
addChild(myClip);
}
override public function collide():void{
super.collide();
trace("collidsion");
if (type == "autofire"){
Fish.boto.powerup_autofire();
} else {
if (type == "bomberMode"){
Fish.boto.powerup_bomber();
};
};
kill();
}
override public function kill():void{
super.kill();
Main.powerupsOut--;
}
}
}//package
Section 95
//preloader_mc (preloader_mc)
package {
import flash.display.*;
public dynamic class preloader_mc extends MovieClip {
public var bar:MovieClip;
}
}//package
Section 96
//scoreScreen (scoreScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class scoreScreen extends MovieClip {
public var btn_restart:SimpleButton;
public var btn_menu:SimpleButton;
public var score:TextField;
}
}//package
Section 97
//ScoreScreen (ScoreScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class ScoreScreen extends Sprite implements Tickable {
public var myClip:MovieClip;
public function ScoreScreen(){
var _local1:*;
super();
myClip = new Assets.scoreScreen();
addChild(myClip);
_local1 = Main.GAME_MANAGER.score;
myClip.score.text = ("\n" + Main.GAME_MANAGER.score);
myClip.btn_menu.addEventListener(MouseEvent.CLICK, toMenu);
myClip.btn_restart.addEventListener(MouseEvent.CLICK, retry);
alpha = 0;
Main.TICKABLES.push(this);
}
public function kill():void{
if (parent != null){
parent.removeChild(this);
};
}
public function killed():Boolean{
return ((parent == null));
}
public function tick():void{
if (alpha < 1){
alpha = (alpha + 0.02);
};
}
public function toMenu(_arg1:MouseEvent):void{
Main(parent).mainMenu.fadingIn = true;
kill();
}
public function retry(_arg1:MouseEvent):void{
Main(parent).startNewGame();
kill();
}
public function setBounds(_arg1:Point):void{
}
}
}//package
Section 98
//ScrollScreen (ScrollScreen)
package {
import flash.display.*;
import flash.geom.*;
public class ScrollScreen extends Sprite implements Tickable {
public var shakeyness:Number;// = 0
public var SCROLL_SPEED;// = 25
public var shakeyOff:Point;
public var centerOffset:Point;
public var target:Boto;
public var idleTarget:Point;
public var cloudBase:Sprite;
public var waterTopBase:Sprite;
public var bounds:Point;
public var clouds:Array;
public var killFlag:Boolean;// = false
public function ScrollScreen(){
var _local1:int;
var _local2:int;
var _local3:MovieClip;
SCROLL_SPEED = 25;
bounds = new Point(4000, 2000);
shakeyness = 0;
killFlag = false;
super();
Main.TICKABLES.push(this);
setBounds(Main.BOUNDS);
waterTopBase = new Sprite();
_local1 = 8;
clouds = new Array();
cloudBase = new Sprite();
_local2 = 0;
while (_local2 < _local1) {
_local3 = new Assets.cloud1();
if (_local2 > (_local1 / 2)){
_local3 = new Assets.cloud2();
};
_local3.x = ((Math.random() * Main.BOUNDS.x) * 0.5);
_local3.y = ((Math.random() * 100) - 100);
_local3.scaleX = (_local3.scaleY = ((Math.random() * 1) + 1));
cloudBase.addChild(_local3);
clouds.push(_local3);
_local2++;
};
shakeyOff = new Point();
idleTarget = new Point(-400, 0);
}
public function killed():Boolean{
return (killFlag);
}
public function shakey(_arg1:Number):void{
shakeyness = _arg1;
}
public function addBoat(_arg1:Boat):void{
var _local2:int;
if ((_arg1 is LaserBoat)){
Main.WATER.addBoat(_arg1);
} else {
_local2 = getChildIndex(waterTopBase);
addChildAt(_arg1, _local2);
};
}
public function setTarget(_arg1:Boto, _arg2:Point):void{
target = _arg1;
centerOffset = _arg2;
}
public function tick():void{
var _local1:MovieClip;
var _local2:Point;
x = (x + shakeyOff.x);
y = (y + shakeyOff.y);
shakeyness = (shakeyness * 0.97);
shakeyOff.x = (((Math.random() * shakeyness) * 2) - shakeyness);
shakeyOff.y = (((Math.random() * shakeyness) * 2) - shakeyness);
if (target != null){
_local2 = new Point();
_local2.x = -(((target.x - centerOffset.x) + target.camTarg.x));
_local2.y = -(((target.y - centerOffset.y) + target.camTarg.y));
x = (x + ((_local2.x - x) / SCROLL_SPEED));
y = (y + ((_local2.y - y) / SCROLL_SPEED));
} else {
x = (x + ((idleTarget.x - x) / SCROLL_SPEED));
y = (y + ((idleTarget.y - y) / SCROLL_SPEED));
};
if (x > 0){
x = 0;
};
if (x < (-(bounds.x) + stage.stageWidth)){
x = (-(bounds.x) + stage.stageWidth);
};
if (y < (-(bounds.y) + stage.stageHeight)){
y = (-(bounds.y) + stage.stageHeight);
};
if (waterTopBase.parent == null){
addChild(waterTopBase);
};
if (cloudBase.parent == null){
parent.addChildAt(cloudBase, 0);
};
cloudBase.x = (x * 0.5);
cloudBase.y = (y * 0.5);
for each (_local1 in clouds) {
_local1.x = (_local1.x + 0.5);
if (_local1.x > (Main.BOUNDS.x * 0.5)){
_local1.x = -(_local1.width);
};
};
}
public function setBounds(_arg1:Point):void{
bounds = _arg1;
}
}
}//package
Section 99
//side (side)
package {
import flash.display.*;
public dynamic class side extends MovieClip {
}
}//package
Section 100
//snake (snake)
package {
import flash.display.*;
public dynamic class snake extends MovieClip {
}
}//package
Section 101
//SoundEffect (SoundEffect)
package {
import flash.events.*;
import flash.system.*;
import General.*;
import flash.media.*;
import flash.utils.*;
public class SoundEffect {
public var lastTime:int;
public var loop:Boolean;
public var retrigger:int;
public var handle:String;
public var cl:Class;
public var channels:Array;
public var limit:int;
public function SoundEffect(_arg1:String, _arg2:ApplicationDomain, _arg3:int, _arg4:int, _arg5:Boolean=false){
handle = _arg1;
cl = Class(_arg2.getDefinition(handle));
retrigger = _arg3;
limit = _arg4;
loop = _arg5;
channels = new Array();
lastTime = -1000;
}
public function stop():void{
var _local1:SoundChannel;
for each (_local1 in channels) {
_local1.stop();
};
channels = new Array();
}
public function instanceComplete(_arg1:Event):void{
var _local2:int;
_local2 = 0;
while (_local2 < channels.length) {
if (channels[_local2] == _arg1.currentTarget){
Util.ArrayRemoveItem(_arg1.currentTarget, channels);
return;
};
_local2++;
};
}
public function play(_arg1:Boolean=false):void{
var _local2:Sound;
var _local3:SoundChannel;
if (((((getTimer() - lastTime) > retrigger)) && ((channels.length < limit)))){
lastTime = getTimer();
_local2 = new cl();
if (((!(_arg1)) && (!(loop)))){
_local3 = _local2.play();
} else {
_local3 = _local2.play(0, 1000);
};
if (_local3 == null){
return;
};
_local3.addEventListener(Event.SOUND_COMPLETE, instanceComplete);
channels.push(_local3);
};
}
}
}//package
Section 102
//SoundMgr (SoundMgr)
package {
import flash.display.*;
import flash.system.*;
import General.*;
import flash.media.*;
public class SoundMgr {
public static var ad:ApplicationDomain;
public static var sounds:Array;
public static var maxInstance:int = 8;
public static var musicChannel:SoundChannel;
public static function initialize(_arg1:LoaderInfo){
ad = _arg1.applicationDomain;
sounds = new Array();
sounds["botoHit"] = new SoundEffect("boto_hurt", ad, 10, 10);
sounds["boom1"] = new SoundEffect("cannon_fire1", ad, 30, 10);
sounds["boom2"] = new SoundEffect("cannon_fire2", ad, 30, 10);
sounds["boom3"] = new SoundEffect("explosion_large", ad, 30, 10);
sounds["boom4"] = new SoundEffect("explosion_medium1", ad, 30, 10);
sounds["boom5"] = new SoundEffect("explosion_medium2", ad, 30, 10);
sounds["music_menu"] = new SoundEffect("float_like_smoke_B", ad, 10, 10);
sounds["music_abovewater"] = new SoundEffect("soundtrack_abovewater", ad, 10, 10);
sounds["music_underwater"] = new SoundEffect("soundtrack_underwater", ad, 10, 10);
sounds["splash1"] = new SoundEffect("splash1bbb", ad, 10, 10);
sounds["splash2"] = new SoundEffect("splash2bbb", ad, 10, 10);
sounds["splash3"] = new SoundEffect("splash3bbb", ad, 10, 10);
sounds["barrletHit"] = new SoundEffect("barrelHit.wav", ad, 100, 10);
sounds["botoEat"] = new SoundEffect("botoEat.wav", ad, 10, 10);
sounds["depthCharge"] = new SoundEffect("depthCharge.wav", ad, 10, 10);
sounds["fishImpact"] = new SoundEffect("fishImpact.wav", ad, 5, 10);
sounds["flap"] = new SoundEffect("flap.wav", ad, 10, 10, true);
sounds["laserLoop"] = new SoundEffect("laserLoop.wav", ad, 10, 10);
sounds["machineGunLoop"] = new SoundEffect("machineGunLoop.wav", ad, 66, 3, true);
sounds["torpedoLaunch"] = new SoundEffect("torpedoLaunch.wav", ad, 10, 10);
musicChannel = new SoundChannel();
}
public static function playSound(_arg1:String):void{
if (sounds[_arg1] != null){
if (_arg1.match("music")){
sounds["music_menu"].stop();
sounds["music_abovewater"].stop();
sounds["music_underwater"].stop();
sounds[_arg1].play(true);
} else {
sounds[_arg1].play();
};
};
}
public static function stopSound(_arg1:String):void{
if (sounds[_arg1] != null){
sounds[_arg1].stop();
};
}
}
}//package
Section 103
//soundtrack_abovewater (soundtrack_abovewater)
package {
import flash.media.*;
public dynamic class soundtrack_abovewater extends Sound {
}
}//package
Section 104
//soundtrack_underwater (soundtrack_underwater)
package {
import flash.media.*;
public dynamic class soundtrack_underwater extends Sound {
}
}//package
Section 105
//SpeedBoat (SpeedBoat)
package {
public class SpeedBoat extends Boat {
public var SHOOT_TIME:int;// = 150
public var POLLUTE_SCALE:Number;// = 1
public var shootTimer:int;
public function SpeedBoat(){
SHOOT_TIME = 150;
shootTimer = SHOOT_TIME;
POLLUTE_SCALE = 1;
super();
myClip = new Assets.enemy_speedboat();
addChild(myClip);
initCollision();
SPEED = 2.5;
killScore = 40;
hp = 200;
shootTimer = int((SHOOT_TIME * Math.random()));
}
override public function collision(_arg1):void{
super.collision(_arg1);
}
override public function tick():void{
var _local1:Pollution;
super.tick();
shootTimer--;
if (shootTimer <= 0){
shootTimer = SHOOT_TIME;
_local1 = new Pollution();
if (parent != null){
parent.addChild(_local1);
};
_local1.x = (x + myClip.x);
_local1.y = (y + myClip.y);
_local1.scaleX = (_local1.scaleY = POLLUTE_SCALE);
};
}
}
}//package
Section 106
//Splash (Splash)
package {
public class Splash extends TimedParticle {
public function Splash(){
myClip = new Assets.splash1();
addChild(myClip);
}
}
}//package
Section 107
//splash1 (splash1)
package {
import flash.display.*;
public dynamic class splash1 extends MovieClip {
public function splash1(){
addFrameScript(25, frame26);
}
function frame26(){
stop();
}
}
}//package
Section 108
//splash1bbb (splash1bbb)
package {
import flash.media.*;
public dynamic class splash1bbb extends Sound {
}
}//package
Section 109
//splash2bbb (splash2bbb)
package {
import flash.media.*;
public dynamic class splash2bbb extends Sound {
}
}//package
Section 110
//splash3bbb (splash3bbb)
package {
import flash.media.*;
public dynamic class splash3bbb extends Sound {
}
}//package
Section 111
//start (start)
package {
import flash.display.*;
public dynamic class start extends SimpleButton {
}
}//package
Section 112
//Target (Target)
package {
import flash.display.*;
import flash.geom.*;
import General.*;
public class Target extends Sprite implements Tickable {
public var hp:Number;// = 100
public var water:Water;
public var myClip:MovieClip;
public var flipped:Boolean;// = false
public var bounds:Point;
public var killScore:int;// = 10
public var collB:Point;
public var killFlag:Boolean;// = false
public static var Y_MIN:int = 2147483647;
public static var Y_MAX:int = -2147483648;
public function Target(){
hp = 100;
bounds = new Point(4000, 2000);
killScore = 10;
flipped = false;
killFlag = false;
super();
Fish.TARGETS.push(this);
Main.TICKABLES.push(this);
setBounds(Main.BOUNDS);
}
public function initCollision():void{
collB = new Point(width, height);
}
public function collision(_arg1):void{
}
public function kill():void{
parent.removeChild(this);
Util.ArrayRemoveItem(this, Fish.TARGETS);
killFlag = true;
}
public function killed():Boolean{
return (killFlag);
}
public function flipX():void{
myClip.scaleX = (myClip.scaleX * -1);
flipped = !(flipped);
if (flipped){
myClip.x = collB.x;
} else {
myClip.x = 0;
};
}
public function tick():void{
var _local1:Number;
var _local2:Particle;
if (hp <= 0){
_local1 = Main.GAME_MANAGER.addScore(killScore);
if ((((_local1 > 0)) && (!((parent == null))))){
_local2 = new Particle(700, new Assets.bonus_bubble());
_local2.myClip.animate.bonus_text.text = ("+" + _local1);
_local2.inertia.y = -2;
_local2.x = x;
_local2.y = y;
parent.addChild(_local2);
};
kill();
};
}
public function setBounds(_arg1:Point):void{
bounds = _arg1;
}
public function setWater(_arg1:Water):void{
water = _arg1;
y = water.y;
if (Y_MAX < (y + myClip.height)){
Y_MAX = (y + myClip.height);
};
if (Y_MIN > (y - myClip.height)){
Y_MIN = (y - myClip.height);
};
}
}
}//package
Section 113
//terrain_bg (terrain_bg)
package {
import flash.display.*;
public dynamic class terrain_bg extends MovieClip {
}
}//package
Section 114
//Tickable (Tickable)
package {
import flash.geom.*;
public interface Tickable {
function tick():void;
function setBounds(_arg1:Point):void;
function killed():Boolean;
}
}//package
Section 115
//timeBoost (timeBoost)
package {
import flash.display.*;
public dynamic class timeBoost extends MovieClip {
}
}//package
Section 116
//TimedParticle (TimedParticle)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TimedParticle extends Sprite {
public var myClip:MovieClip;
public var timer:Timer;
public function TimedParticle(){
myClip = new MovieClip();
timer = new Timer(50);
timer.addEventListener(TimerEvent.TIMER, tick);
timer.start();
}
public function kill():void{
if (parent != null){
parent.removeChild(this);
};
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, tick);
timer = null;
}
public function tick(_arg1:Event):void{
if (myClip.currentFrame == myClip.totalFrames){
kill();
};
}
}
}//package
Section 117
//titleScreen (titleScreen)
package {
import flash.display.*;
public dynamic class titleScreen extends MovieClip {
public var btn_intuition:SimpleButton;
public var btn_help:help;
public var btn_armorBlog:SimpleButton;
public var btn_options:options;
public var btn_armorLink:SimpleButton;
public var btn_start:start;
}
}//package
Section 118
//Torpedo (Torpedo)
package {
import flash.geom.*;
public class Torpedo extends BotoCollider {
public var water:Water;
public var DECELERATION:Number;// = 0.1
public var waterSpeed:Number;// = 1
public var lifespan:int;// = 600
public var flipped:Boolean;// = false
public var engage:int;// = 60
public var inertia:Point;
public var safety:int;// = 120
public var ACCLERATION:Number;// = 0.005
public var inWater:Boolean;// = false
public function Torpedo(){
waterSpeed = 1;
ACCLERATION = 0.005;
DECELERATION = 0.1;
lifespan = 600;
safety = 120;
engage = 60;
flipped = false;
inWater = false;
super();
myClip = new Assets.torpedo();
addChild(myClip);
inertia = new Point();
}
override public function collide():void{
if (parent != null){
parent.addChild(new ExplosionParticle(x, y));
};
Main.GAME_MANAGER.getHit(10);
SoundMgr.playSound("depthCharge");
kill();
}
public function flipX():void{
myClip.scaleY = (myClip.scaleY * -1);
flipped = !(flipped);
}
override public function tick():void{
if ((((water == null)) || ((y > water.y)))){
if (engage > 0){
engage--;
inertia.x = (inertia.x * 0.99);
waterSpeed = 8;
} else {
underwaterMotion();
};
inWater = true;
} else {
if (inWater){
inertia.x = (inertia.x * 0.7);
inertia.y = (inertia.y * 0.7);
};
abovewaterMotion();
waterSpeed = inertia.length;
inWater = false;
};
physInterp();
safety--;
if (safety <= 0){
boatCollision();
};
myClip.rotation = (Math.atan((inertia.y / inertia.x)) * (180 / Math.PI));
if (inertia.x < 0){
myClip.rotation = (myClip.rotation + 180);
};
if ((((inertia.x < 0)) && (!(flipped)))){
flipX();
};
if ((((inertia.x > 0)) && (flipped))){
flipX();
};
if (y > bounds.y){
y = bounds.y;
};
lifespan--;
if (lifespan <= 0){
if (parent != null){
parent.addChild(new ExplosionParticle(x, y));
};
kill();
};
}
public function physInterp():void{
x = (x + (inertia.x * 0.75));
y = (y + (inertia.y * 0.75));
}
public function setWater(_arg1:Water):void{
water = _arg1;
}
public function boatCollision():void{
var _local1:Target;
graphics.clear();
for each (_local1 in Fish.TARGETS) {
if ((_local1 is LaserBoat)){
_local1.y = (_local1.y + water.y);
};
if ((((x > _local1.x)) && ((x < (_local1.x + _local1.collB.x))))){
if (Math.abs((y - _local1.y)) < (_local1.collB.y / 2)){
if (parent != null){
parent.addChild(this);
};
_local1.collision(this);
SoundMgr.playSound("boom2");
};
};
if ((_local1 is LaserBoat)){
_local1.y = (_local1.y - water.y);
};
};
}
public function underwaterMotion():void{
var _local1:Point;
var _local2:Number;
var _local3:Point;
var _local4:Point;
var _local5:Point;
var _local6:Number;
var _local7:Number;
_local1 = new Point((x - Fish.boto.x), (y - Fish.boto.y));
_local2 = (Math.atan((_local1.y / _local1.x)) * (180 / Math.PI));
if (_local1.x < 0){
_local2 = (_local2 + 180);
};
_local3 = new Point(-(Math.sin(((_local2 + 90) * (Math.PI / 180)))), Math.cos(((_local2 + 90) * (Math.PI / 180))));
_local4 = new Point(-(Math.sin(((myClip.rotation - 90) * (Math.PI / 180)))), Math.cos(((myClip.rotation - 90) * (Math.PI / 180))));
_local5 = new Point((_local4.x - _local3.x), (_local4.y - _local3.y));
_local4.x = (_local4.x - (_local5.x / 20));
_local4.y = (_local4.y - (_local5.y / 20));
_local6 = (_local1.length / 20);
_local7 = (_local6 - waterSpeed);
if (_local7 > 0){
waterSpeed = (waterSpeed + (ACCLERATION * _local7));
};
if (waterSpeed > 8.75){
waterSpeed = 8.75;
};
inertia.x = (_local4.x * waterSpeed);
inertia.y = (_local4.y * waterSpeed);
}
public function abovewaterMotion():void{
inertia.y = (inertia.y + 0.1);
myClip.rotation = (Math.atan((inertia.y / inertia.x)) * (180 / Math.PI));
if (inertia.x < 0){
myClip.rotation = (myClip.rotation + 180);
};
}
}
}//package
Section 119
//torpedo (torpedo)
package {
import flash.display.*;
public dynamic class torpedo extends MovieClip {
}
}//package
Section 120
//TorpedoSub (TorpedoSub)
package {
public class TorpedoSub extends Boat {
public var SHOOT_TIME:int;// = 500
public var myY:Number;
public var shootTimer:int;
public function TorpedoSub(_arg1:Number){
SHOOT_TIME = 500;
shootTimer = SHOOT_TIME;
super();
myClip = new Assets.enemy_sub();
addChild(myClip);
initCollision();
myY = _arg1;
SPEED = 2;
killScore = 150;
hp = 300;
shootTimer = int((Math.random() * SHOOT_TIME));
}
override public function collision(_arg1):void{
if ((_arg1 is Fish)){
return;
};
super.collision(_arg1);
}
override public function tick():void{
var _local1:Torpedo;
super.tick();
y = myY;
shootTimer--;
if ((((((shootTimer < 0)) && (((x + collB.x) > 0)))) && ((x < bounds.x)))){
SoundMgr.playSound("torpedoLaunch");
shootTimer = SHOOT_TIME;
_local1 = new Torpedo();
if (parent != null){
parent.addChild(_local1);
};
_local1.x = ((x + myClip.x) + (150 * myClip.scaleX));
_local1.y = (y + myClip.y);
_local1.setWater(water);
_local1.inertia.x = ((inertia * 10) * SPEED);
};
}
override public function setWater(_arg1:Water):void{
water = _arg1;
}
}
}//package
Section 121
//UIpage (UIpage)
package {
import flash.display.*;
public dynamic class UIpage extends MovieClip {
public var multiplierText:MovieClip;
public var healthMeter:MovieClip;
public var blendOverlay:MovieClip;
}
}//package
Section 122
//Water (Water)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class Water extends Sprite implements Tickable {
public var gradient1:MovieClip;
public var rightWall:MovieClip;
public var groundTile1:MovieClip;
public var gradient2:MovieClip;
public var groundTileW:Number;
public var scroller:ScrollScreen;
public var tile1:MovieClip;
public var tile2:MovieClip;
public var tileY:Number;// = -25
public var Ttile1:MovieClip;
public var Ttile2:MovieClip;
public var leftWall:MovieClip;
public var littleKelps:Array;
public var tilew:Number;
public var Ttilew:Number;
public var bigKelps:Array;
public var clouds:Array;
public var gradw:Number;
public var groundTile2:MovieClip;
public function Water(){
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:MovieClip;
var _local5:MovieClip;
tileY = -25;
super();
Ttile1 = new Assets.terrain_bg();
addChild(Ttile1);
Ttile1.y = (tileY - 180);
Ttile2 = new Assets.terrain_bg();
addChild(Ttile2);
Ttile2.y = (tileY - 180);
Ttile2.x = (Ttilew = (Ttile1.width - 1));
gradient1 = new Assets.water_gradient();
gradient1.y = (tileY + 88);
addChild(gradient1);
gradient2 = new Assets.water_gradient();
gradient2.y = (tileY + 88);
addChild(gradient2);
gradw = (gradient2.x = (gradient1.width - 1));
tile1 = new Assets.water_tile();
addChild(tile1);
tile1.y = tileY;
tile2 = new Assets.water_tile();
addChild(tile2);
tile2.y = tileY;
tilew = (tile2.x = (tile1.width - 1));
groundTile1 = new Assets.groundTile();
addChild(groundTile1);
groundTile1.y = Main.BOUNDS.y;
groundTile2 = new Assets.groundTile();
addChild(groundTile2);
groundTile2.y = Main.BOUNDS.y;
groundTileW = (groundTile2.x = groundTile1.width);
leftWall = new Assets.side();
leftWall.x = 0;
leftWall.y = (groundTile1.y + 150);
addChild(leftWall);
rightWall = new Assets.side();
rightWall.x = Main.BOUNDS.x;
rightWall.scaleX = (rightWall.scaleX * -1);
rightWall.y = (groundTile1.y + 150);
addChild(rightWall);
_local1 = 16;
littleKelps = new Array();
_local2 = 0;
while (_local2 < _local1) {
_local4 = new Assets.littleKelp();
if (_local2 > 4){
_local4 = new Assets.bigKelp();
};
_local4.x = (Math.random() * Main.BOUNDS.x);
_local4.y = ((Main.BOUNDS.y - y) - 200);
_local4.scaleX = (_local4.scaleY = ((Math.random() * 0.75) + 0.25));
addChild(_local4);
littleKelps.push(_local4);
MovieClip(_local4.getChildAt(0)).gotoAndPlay(Math.round((Math.random() * 90)));
_local2++;
};
_local3 = 16;
bigKelps = new Array();
_local2 = 0;
while (_local2 < _local3) {
_local5 = new Assets.littleKelp();
if (_local2 > 4){
_local5 = new Assets.bigKelp();
};
_local5.x = (Math.random() * Main.BOUNDS.x);
_local5.y = (groundTile1.y - 40);
_local5.scaleX = (_local5.scaleY = (0.75 + (Math.random() * 0.25)));
addChild(_local5);
bigKelps.push(_local5);
MovieClip(_local5.getChildAt(0)).gotoAndPlay(Math.round((Math.random() * 90)));
_local2++;
};
Main.TICKABLES.push(this);
addEventListener(Event.ADDED_TO_STAGE, added);
}
public function added(_arg1:Event):void{
ScrollScreen(parent).waterTopBase.addChild(tile1);
tile1.y = (y + tileY);
ScrollScreen(parent).waterTopBase.addChild(tile2);
tile2.y = (y + tileY);
}
public function killed():Boolean{
return (false);
}
public function addBoat(_arg1:Boat):void{
var _local2:int;
_local2 = getChildIndex(gradient1);
if (getChildIndex(gradient2) < _local2){
_local2 = getChildIndex(gradient2);
};
addChildAt(_arg1, _local2);
}
public function tick():void{
var _local1:MovieClip;
if (stage == null){
return;
};
if (scroller == null){
return;
};
if (-(scroller.x) < tile1.x){
tile1.x = (tile1.x - tilew);
tile2.x = (tile2.x - tilew);
} else {
if ((-(scroller.x) + stage.stageWidth) > (tile2.x + tilew)){
tile1.x = (tile1.x + tilew);
tile2.x = (tile2.x + tilew);
};
};
if (-(scroller.x) < Ttile1.x){
Ttile1.x = (Ttile1.x - Ttilew);
Ttile2.x = (Ttile2.x - Ttilew);
} else {
if ((-(scroller.x) + stage.stageWidth) > (Ttile2.x + Ttilew)){
Ttile1.x = (Ttile1.x + Ttilew);
Ttile2.x = (Ttile2.x + Ttilew);
};
};
if (-(scroller.x) < gradient1.x){
gradient1.x = (gradient1.x - gradw);
gradient2.x = (gradient2.x - gradw);
} else {
if ((-(scroller.x) + stage.stageWidth) > (gradient2.x + gradw)){
gradient1.x = (gradient1.x + gradw);
gradient2.x = (gradient2.x + gradw);
};
};
if (-(scroller.x) < groundTile1.x){
groundTile1.x = (groundTile1.x - groundTileW);
groundTile2.x = (groundTile2.x - groundTileW);
} else {
if ((-(scroller.x) + stage.stageWidth) > (groundTile2.x + groundTileW)){
groundTile1.x = (groundTile1.x + groundTileW);
groundTile2.x = (groundTile2.x + groundTileW);
};
};
for each (_local1 in bigKelps) {
parent.addChild(_local1);
};
parent.addChild(leftWall);
parent.addChild(rightWall);
parent.addChild(groundTile1);
parent.addChild(groundTile2);
}
public function setBounds(_arg1:Point):void{
}
public function spawnBotoSplash(_arg1:Number):void{
var _local2:Splash;
_local2 = new Splash();
_local2.y = 56;
_local2.x = _arg1;
addChild(_local2);
}
}
}//package
Section 123
//water_gradient (water_gradient)
package {
import flash.display.*;
public dynamic class water_gradient extends MovieClip {
}
}//package
Section 124
//water_tile (water_tile)
package {
import flash.display.*;
public dynamic class water_tile extends MovieClip {
}
}//package
Section 125
//WaveManager (WaveManager)
package {
public class WaveManager {
public var xmlData:XML;
public var waves:Array;
public var currWave:int;// = 0
public function WaveManager(_arg1:XML){
var _local2:XMLList;
var _local3:XML;
currWave = 0;
super();
xmlData = _arg1;
waves = new Array();
_local2 = xmlData..wave;
for each (_local3 in _local2) {
waves.push(parseWave(_local3));
};
}
public function nextWave(_arg1:Water):Array{
var _local2:Wave;
Main.topWave++;
if (currWave >= waves.length){
currWave = (waves.length - 1);
};
Main.GAME_MANAGER.nextStage();
if (currWave < waves.length){
_local2 = Wave(waves[currWave]);
currWave++;
Main.spawnWaveMsg(_local2.message);
Main.mineFreq = _local2.mineFreq;
Main.autofireFreq = _local2.autofireFreq;
Main.bomberFreq = _local2.bomberFreq;
return (_local2.spawnBoats(_arg1));
};
return (null);
}
public function parseWave(_arg1:XML):Wave{
var _local2:Wave;
var _local3:XMLList;
var _local4:XML;
var _local5:XML;
var _local6:XML;
var _local7:XML;
_local2 = new Wave();
_local3 = _arg1..boat;
for each (_local4 in _local3) {
_local2.addBoat(_local4.attribute("type"), parseFloat(_local4.attribute("x")));
};
_local5 = _arg1..mines[0];
if (_local5 != null){
_local2.mineFreq = parseFloat(_local5.attribute("freq"));
};
_local6 = _arg1..message[0];
if (_local6 != null){
_local2.message = _local6.attribute("string");
};
_local7 = _arg1..powerup[0];
if (_local7 != null){
_local2.autofireFreq = parseFloat(_local7.attribute("autofire"));
_local2.bomberFreq = parseFloat(_local7.attribute("bomber"));
};
return (_local2);
}
}
}//package
class BoatInfo {
public var x:Number;
public var inertia:Number;
public var type:String;
private function BoatInfo(_arg1:String, _arg2:Number){
type = _arg1;
x = _arg2;
if (x < 0){
inertia = -1;
} else {
inertia = 1;
x = (x + Main.BOUNDS.x);
};
}
public function spawnBoat(_arg1:Water):Boat{
var _local2:Boat;
if (type == "laser"){
_local2 = new LaserBoat();
} else {
if (type == "freighter"){
_local2 = new Freighter();
} else {
if (type == "speed"){
_local2 = new SpeedBoat();
} else {
if (type == "fishing"){
_local2 = new FishingBoat();
} else {
if (type == "shark"){
_local2 = new ArmorBoat();
} else {
if (type == "sub"){
_local2 = new TorpedoSub((((Math.random() * 400) + _arg1.y) + 200));
} else {
return (null);
};
};
};
};
};
};
_local2.x = x;
_local2.inertia = inertia;
_local2.setWater(_arg1);
return (_local2);
}
}
class Wave {
public var message:String;
public var mineFreq:Number;
public var boats:Array;
public var bomberFreq:Number;
public var autofireFreq:Number;
private function Wave(){
boats = new Array();
message = "";
mineFreq = 0;
autofireFreq = 0;
bomberFreq = 0;
}
public function addBoat(_arg1, _arg2):void{
boats.push(new BoatInfo(_arg1, _arg2));
}
public function spawnBoats(_arg1:Water):Array{
var _local2:Array;
var _local3:BoatInfo;
_local2 = new Array();
for each (_local3 in boats) {
_local2.push(_local3.spawnBoat(_arg1));
};
return (_local2);
}
}
Section 126
//wavePage (wavePage)
package {
import flash.display.*;
public dynamic class wavePage extends MovieClip {
public var fuckerHead:MovieClip;
public function wavePage(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 127
//WavesConfig (WavesConfig)
package {
public class WavesConfig {
public static const MY_XML:XML = setConst();
private static function setConst():XML{
return (new XML(<waves>
<wave>
<boat type="fishing" x="-1000"/>
<boat type="fishing" x="500"/>
<message string="Piranha are your ammo"/>
<powerup autofire="0.0222" bomber="0.0222"/>
</wave>
<wave>
<boat type="fishing" x="-1000"/>
<boat type="fishing" x="-1500"/>
<boat type="fishing" x="-3500"/>
<boat type="fishing" x="1000"/>
<boat type="speed" x="3000"/>
<powerup autofire="0.2" bomber="0.0222"/>
<message string="Hit the power ups"/>
</wave>
<wave>
<boat type="speed" x="-500"/>
<boat type="speed" x="1000"/>
<boat type="speed" x="1500"/>
<boat type="fishing" x="-1000"/>
<boat type="laser" x="5000"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<message string="Welcome to the Triple"/>
</wave>
<wave>
<boat type="speed" x="-250"/>
<boat type="laser" x="-1250"/>
<boat type="speed" x="-500"/>
<boat type="laser" x="-1750"/>
<boat type="shark" x="-3000"/>
<boat type="speed" x="250"/>
<boat type="laser" x="500"/>
<boat type="speed" x="750"/>
<boat type="laser" x="1000"/>
<boat type="speed" x="1500"/>
<boat type="shark" x="3000"/>
<mines freq="0.4"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<message string="Fourth wave!"/>
</wave>
<wave>
<boat type="speed" x="-250"/>
<boat type="speed" x="-500"/>
<boat type="speed" x="-1250"/>
<boat type="laser" x="-1750"/>
<boat type="shark" x="-3000"/>
<!-- awesome boat rush, good spacing -->
<boat type="speed" x="1250"/>
<boat type="laser" x="1500"/>
<boat type="speed" x="1750"/>
<boat type="laser" x="2000"/>
<boat type="speed" x="2500"/>
<mines freq="0.7"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<message string="I'm fiving you until you bleed!"/>
</wave>
<wave>
<boat type="speed" x="-250"/>
<boat type="sub" x="500"/>
<boat type="speed" x="-1250"/>
<boat type="speed" x="2500"/>
<boat type="sub" x="-2500"/>
<boat type="sub" x="3000"/>
<mines freq="0.2"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<message string="Give 'em their own medicine"/>
</wave>
<wave>
<boat type="speed" x="-250"/>
<boat type="sub" x="-500"/>
<boat type="speed" x="-1250"/>
<boat type="speed" x="-3000"/>
<boat type="shark" x="-3250"/>
<boat type="laser" x="-4000"/>
<boat type="speed" x="-4250"/>
<boat type="shark" x="250"/>
<boat type="laser" x="500"/>
<boat type="speed" x="750"/>
<boat type="laser" x="1000"/>
<boat type="sub" x="5250"/>
<boat type="speed" x="5500"/>
<boat type="speed" x="5750"/>
<mines freq="0.5"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<message string="Seventh Heaven"/>
</wave>
<wave>
<boat type="speed" x="-250"/>
<boat type="sub" x="-500"/>
<boat type="speed" x="-750"/>
<boat type="speed" x="-1250"/>
<boat type="shark" x="250"/>
<boat type="laser" x="500"/>
<boat type="speed" x="750"/>
<boat type="speed" x="1000"/>
<boat type="shark" x="1250"/>
<boat type="speed" x="1750"/>
<boat type="speed" x="-4000"/>
<boat type="shark" x="-4250"/>
<boat type="laser" x="-5000"/>
<boat type="speed" x="-5250"/>
<boat type="laser" x="-5500"/>
<boat type="shark" x="-5750"/>
<boat type="shark" x="5000"/>
<boat type="speed" x="6500"/>
<boat type="laser" x="6750"/>
<mines freq="0.6"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<message string="Eight isn't Enough"/>
</wave>
<wave>
<boat type="speed" x="-250"/>
<boat type="sub" x="-500"/>
<boat type="laser" x="-1000"/>
<boat type="speed" x="-1250"/>
<boat type="laser" x="500"/>
<boat type="laser" x="750"/>
<boat type="laser" x="1000"/>
<boat type="shark" x="1250"/>
<boat type="speed" x="1750"/>
<boat type="speed" x="-3000"/>
<boat type="shark" x="-3250"/>
<boat type="laser" x="-4000"/>
<boat type="speed" x="-4250"/>
<boat type="laser" x="-4500"/>
<boat type="shark" x="-4750"/>
<boat type="shark" x="4000"/>
<boat type="laser" x="4250"/>
<boat type="speed" x="5000"/>
<boat type="sub" x="5250"/>
<boat type="speed" x="5500"/>
<boat type="speed" x="5750"/>
<mines freq="0.7"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<message string="Number Nine"/>
</wave>
<wave>
<boat type="speed" x="-250"/>
<boat type="speed" x="-750"/>
<boat type="speed" x="1250"/>
<boat type="freighter" x="1000"/>
<powerup autofire="0.01" bomber="0.01"/>
<mines freq="0.8"/>
<message string="Incoming Marley!"/>
</wave>
<wave>
<boat type="sub" x="-250"/>
<boat type="laser" x="-500"/>
<boat type="shark" x="-750"/>
<boat type="sub" x="-1000"/>
<boat type="speed" x="-1250"/>
<boat type="speed" x="-3000"/>
<boat type="shark" x="-3250"/>
<boat type="laser" x="-4000"/>
<boat type="speed" x="-4250"/>
<boat type="laser" x="-4500"/>
<boat type="shark" x="-4750"/>
<boat type="shark" x="250"/>
<boat type="laser" x="500"/>
<boat type="shark" x="1250"/>
<boat type="speed" x="1750"/>
<boat type="speed" x="-1750"/>
<boat type="shark" x="4000"/>
<boat type="laser" x="4250"/>
<boat type="speed" x="5000"/>
<boat type="sub" x="5250"/>
<boat type="speed" x="5500"/>
<boat type="speed" x="5750"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<mines freq=".9"/>
<message string="Enter Dr. Eleventy"/>
</wave>
<wave>
<boat type="sub" x="-1250"/>
<boat type="laser" x="-1500"/>
<boat type="speed" x="-1750"/>
<boat type="sub" x="-2000"/>
<boat type="speed" x="-2250"/>
<boat type="speed" x="-4000"/>
<boat type="shark" x="-4250"/>
<boat type="sub" x="-4500"/>
<boat type="laser" x="-4500"/>
<boat type="shark" x="-4750"/>
<boat type="freighter" x="-8000"/>
<boat type="shark" x="250"/>
<boat type="laser" x="500"/>
<boat type="shark" x="1250"/>
<boat type="speed" x="1750"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<mines freq=".9"/>
<message string="Just Twelving 'round"/>
</wave>
<wave>
<boat type="sub" x="-1250"/>
<boat type="speed" x="-1500"/>
<boat type="laser" x="-1750"/>
<boat type="speed" x="-2250"/>
<boat type="speed" x="-4000"/>
<boat type="shark" x="-4250"/>
<boat type="laser" x="-4500"/>
<boat type="laser" x="-4500"/>
<boat type="shark" x="-4750"/>
<boat type="shark" x="-6750"/>
<boat type="laser" x="-7000"/>
<boat type="freighter" x="-7250"/>
<boat type="speed" x="-7500"/>
<boat type="fishing" x="-7750"/>
<boat type="fishing" x="-8000"/>
<boat type="shark" x="250"/>
<boat type="speed" x="500"/>
<boat type="shark" x="1250"/>
<boat type="speed" x="1750"/>
<boat type="laser" x="3000"/>
<boat type="shark" x="4000"/>
<boat type="laser" x="4250"/>
<boat type="speed" x="5000"/>
<boat type="sub" x="5250"/>
<boat type="freighter" x="5500"/>
<boat type="speed" x="5750"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<mines freq=".9"/>
<message string="Unlucky Level"/>
</wave>
<wave>
<boat type="sub" x="-500"/>
<boat type="speed" x="-500"/>
<boat type="laser" x="-750"/>
<boat type="laser" x="-1000"/>
<boat type="speed" x="-1250"/>
<boat type="speed" x="-1750"/>
<boat type="sub" x="-3500"/>
<boat type="speed" x="-3750"/>
<boat type="speed" x="-4000"/>
<boat type="shark" x="-4250"/>
<boat type="laser" x="-4500"/>
<boat type="laser" x="-4500"/>
<boat type="shark" x="-4750"/>
<boat type="shark" x="-6750"/>
<boat type="laser" x="-7000"/>
<boat type="freighter" x="-7250"/>
<boat type="speed" x="-7500"/>
<boat type="fishing" x="-7750"/>
<boat type="fishing" x="-8000"/>
<boat type="shark" x="8750"/>
<boat type="laser" x="8000"/>
<boat type="shark" x="8500"/>
<boat type="shark" x="-8250"/>
<boat type="speed" x="500"/>
<boat type="freighter" x="750"/>
<boat type="laser" x="1000"/>
<boat type="sub" x="1500"/>
<boat type="freighter" x="3000"/>
<boat type="laser" x="3250"/>
<boat type="sub" x="3500"/>
<boat type="speed" x="3750"/>
<boat type="speed" x="4000"/>
<boat type="shark" x="4250"/>
<boat type="laser" x="4500"/>
<boat type="laser" x="4500"/>
<boat type="sub" x="4750"/>
<powerup autofire="0.0222" bomber="0.0222"/>
<mines freq="1"/>
<message string="Infinite un-insanity!!!!"/>
</wave>
</waves>
));
}
}
}//package
Section 128
//vignette (vignette)
package {
import flash.display.*;
public dynamic class vignette extends MovieClip {
}
}//package
Section 129
//WildAnFreeEX_release (WildAnFreeEX_release)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import General.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
public class WildAnFreeEX_release extends MovieClip {
public var preloadBar:preloader_mc;
public static var main:Main;
public static var waveMgr:WaveManager;
public function WildAnFreeEX_release(){
var _local1:Array;
var _local2:Array;
super();
addFrameScript(2, frame3);
_local1 = stage.loaderInfo.url.split("://");
_local2 = _local1[1].split("/");
stage.frameRate = 30;
preloadBar.stop();
stop();
addEventListener(Event.ENTER_FRAME, enterFrame);
loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
}
public function progress(_arg1:ProgressEvent):void{
preloadBar.gotoAndStop(Math.ceil((100 * (_arg1.bytesLoaded / _arg1.bytesTotal))));
}
public function loadComplete():void{
Assets.initializeAssets(LoaderInfo(loaderInfo));
SoundMgr.initialize(LoaderInfo(loaderInfo));
waveMgr = new WaveManager(WavesConfig.MY_XML);
main = new Main();
addChild(main);
main.waveMgr = waveMgr;
main.armorIntro();
}
function frame3(){
stop();
}
public function setupXML(_arg1:Event):void{
waveMgr = new WaveManager(XML(_arg1.target.data));
}
public function enterFrame(_arg1:Event):void{
trace(((currentFrame + " ") + totalFrames));
play();
if (currentFrame == totalFrames){
trace("loaded?");
removeEventListener(Event.ENTER_FRAME, enterFrame);
loadComplete();
};
}
public function ioerror(_arg1:IOErrorEvent):void{
trace(_arg1.text);
}
}
}//package
Section 130
//wingBoost (wingBoost)
package {
import flash.display.*;
public dynamic class wingBoost extends MovieClip {
}
}//package