Section 1
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.2.0.3958";
public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
}
}//package mx.core
Section 2
//ButtonAsset (mx.core.ButtonAsset)
package mx.core {
public class ButtonAsset extends FlexSimpleButton implements IFlexAsset, IFlexDisplayObject {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.2.0.3958";
public function ButtonAsset(){
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
}
}//package mx.core
Section 3
//ByteArrayAsset (mx.core.ByteArrayAsset)
package mx.core {
import flash.utils.*;
public class ByteArrayAsset extends ByteArray implements IFlexAsset {
mx_internal static const VERSION:String = "3.2.0.3958";
}
}//package mx.core
Section 4
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.2.0.3958";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.left = _arg1;
this.top = _arg2;
this.right = _arg3;
this.bottom = _arg4;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 5
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.2.0.3958";
public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
var bitmapData = _arg1;
var pixelSnapping = _arg2;
var smoothing = _arg3;
super(bitmapData, pixelSnapping, smoothing);
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 6
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "3.2.0.3958";
public function FlexMovieClip(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 7
//FlexSimpleButton (mx.core.FlexSimpleButton)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSimpleButton extends SimpleButton {
mx_internal static const VERSION:String = "3.2.0.3958";
public function FlexSimpleButton(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 8
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 9
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 10
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(_arg1:Point):Point;
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(_arg1:String):void;
function set scaleX(_arg1:Number):void;
function set scaleY(_arg1:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(_arg1:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(_arg1:Point):Point;
function get height():Number;
function set blendMode(_arg1:String):void;
function get parent():DisplayObjectContainer;
function getBounds(_arg1:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(_arg1:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(_arg1:Number):void;
function set accessibilityProperties(_arg1:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(_arg1:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(_arg1:Number):void;
function set mask(_arg1:DisplayObject):void;
function getRect(_arg1:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(_arg1:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(_arg1:DisplayObject):Boolean;
function set opaqueBackground(_arg1:Object):void;
function set visible(_arg1:Boolean):void;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function set y(_arg1:Number):void;
function get transform():Transform;
function set filters(_arg1:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(_arg1:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 11
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(_arg1:Array):void;
function get isDocument():Boolean;
function set repeaters(_arg1:Array):void;
function initializeRepeaterArrays(_arg1:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(_arg1:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 12
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.2.0.3958";
public function MovieClipAsset(){
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 13
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject {
protected var initialHeight:Number;// = 0
private var loader:Loader;// = null
private var initialized:Boolean;// = false
protected var initialWidth:Number;// = 0
private var requestedHeight:Number;
private var requestedWidth:Number;
mx_internal static const VERSION:String = "3.2.0.3958";
public function MovieClipLoaderAsset(){
var _local1:LoaderContext = new LoaderContext();
_local1.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
if (("allowLoadBytesCodeExecution" in _local1)){
_local1["allowLoadBytesCodeExecution"] = true;
};
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.loadBytes(movieClipData, _local1);
addChild(loader);
}
override public function get width():Number{
if (!initialized){
return (initialWidth);
};
return (super.width);
}
override public function set width(_arg1:Number):void{
if (!initialized){
requestedWidth = _arg1;
} else {
loader.width = _arg1;
};
}
override public function get measuredHeight():Number{
return (initialHeight);
}
private function completeHandler(_arg1:Event):void{
initialized = true;
initialWidth = loader.width;
initialHeight = loader.height;
if (!isNaN(requestedWidth)){
loader.width = requestedWidth;
};
if (!isNaN(requestedHeight)){
loader.height = requestedHeight;
};
dispatchEvent(_arg1);
}
override public function set height(_arg1:Number):void{
if (!initialized){
requestedHeight = _arg1;
} else {
loader.height = _arg1;
};
}
override public function get measuredWidth():Number{
return (initialWidth);
}
override public function get height():Number{
if (!initialized){
return (initialHeight);
};
return (super.height);
}
public function get movieClipData():ByteArray{
return (null);
}
}
}//package mx.core
Section 14
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 15
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.2.0.3958";
}
}//package mx.core
Section 16
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.2.0.3958";
private static var counter:int = 0;
public static function displayObjectToString(_arg1:DisplayObject):String{
var result:String;
var o:DisplayObject;
var s:String;
var indices:Array;
var displayObject = _arg1;
try {
o = displayObject;
while (o != null) {
if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){
break;
};
s = o.name;
if ((o is IRepeaterClient)){
indices = IRepeaterClient(o).instanceIndices;
if (indices){
s = (s + (("[" + indices.join("][")) + "]"));
};
};
result = ((result == null)) ? s : ((s + ".") + result);
o = o.parent;
};
} catch(e:SecurityError) {
};
return (result);
}
public static function createUniqueName(_arg1:Object):String{
if (!_arg1){
return (null);
};
var _local2:String = getQualifiedClassName(_arg1);
var _local3:int = _local2.indexOf("::");
if (_local3 != -1){
_local2 = _local2.substr((_local3 + 2));
};
var _local4:int = _local2.charCodeAt((_local2.length - 1));
if ((((_local4 >= 48)) && ((_local4 <= 57)))){
_local2 = (_local2 + "_");
};
return ((_local2 + counter++));
}
}
}//package mx.utils
Section 17
//Agame (Agame)
package {
public class Agame {
public static const LANGUAGE:int = 1;
}
}//package
Section 18
//AgameAssetBrandingAlignedCenter (AgameAssetBrandingAlignedCenter)
package {
import mx.core.*;
public dynamic class AgameAssetBrandingAlignedCenter extends MovieClipAsset {
public function AgameAssetBrandingAlignedCenter(){
gotoAndStop(language.branding_nr);
}
}
}//package
Section 19
//AgameAssetButtonGraphicBig (AgameAssetButtonGraphicBig)
package {
import mx.core.*;
public class AgameAssetButtonGraphicBig extends MovieClipAsset {
}
}//package
Section 20
//AgameAssetHitarea (AgameAssetHitarea)
package {
import mx.core.*;
public class AgameAssetHitarea extends ButtonAsset {
}
}//package
Section 21
//AgameAssetText1 (AgameAssetText1)
package {
import mx.core.*;
public dynamic class AgameAssetText1 extends MovieClipAsset {
public function AgameAssetText1(){
gotoAndStop(language.language_nr);
}
}
}//package
Section 22
//AgameMoreGamesButton (AgameMoreGamesButton)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class AgameMoreGamesButton extends Sprite {
public function AgameMoreGamesButton(){
var _local2:MovieClip;
super();
var _local1:MovieClip = new AgameAssetButtonGraphicBig();
_local1.x = (337.9 - 337.9);
_local1.y = (220 - 220);
addChild(_local1);
_local2 = new AgameAssetText1();
_local2.x = (443.9 - 337.9);
_local2.y = (235.9 - 220);
addChild(_local2);
var _local3:MovieClip = new AgameAssetBrandingAlignedCenter();
_local3.x = (426.8 - 337.9);
_local3.y = (239.8 - 220);
addChild(_local3);
var _local4:SimpleButton = new AgameAssetHitarea();
_local4.scaleX = 0.648;
_local4.scaleY = 0.547;
_local4.x = (339.6 - 337.9);
_local4.y = (232.5 - 220);
addChild(_local4);
_local4.addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(_arg1:MouseEvent):void{
var _local2:URLRequest;
if (language.language_nr == 2){
_local2 = new URLRequest(language.url1);
} else {
_local2 = new URLRequest((language.url1 + "&utm_term=button_mainscreen_moregames"));
};
navigateToURL(_local2, "_blank");
}
}
}//package
Section 23
//Background (Background)
package {
import flash.display.*;
public class Background extends Sprite {
public function Background(){
graphics.beginFill(0);
graphics.drawRect(-10, -10, (PiratesVsNinjasVendoIsland.STAGE_WIDTH + 20), (PiratesVsNinjasVendoIsland.STAGE_HEIGHT + 20));
graphics.endFill();
}
}
}//package
Section 24
//BitmapTexter (BitmapTexter)
package {
import flash.display.*;
import flash.geom.*;
public class BitmapTexter {
private var fontBitmapData:BitmapData;
public static const FONT_SIZE:int = 8;
public function BitmapTexter(){
var _local1:Bitmap = new FontBitmap();
fontBitmapData = _local1.bitmapData;
}
public function makeBitmap(_arg1:String):Bitmap{
var _local2:BitmapData = new BitmapData((FONT_SIZE * _arg1.length), FONT_SIZE, true, 0);
var _local3:int;
while (_local3 < _arg1.length) {
_local2.copyPixels(fontBitmapData, new Rectangle((FONT_SIZE * _arg1.charCodeAt(_local3)), 0, FONT_SIZE, FONT_SIZE), new Point((FONT_SIZE * _local3), 0));
_local3++;
};
return (new Bitmap(_local2));
}
}
}//package
Section 25
//Cargo (Cargo)
package {
public class Cargo {
public var active:Boolean;
private var waterVel:Number;
private var dx:Number;
private var dy:Number;
public var x:Number;
public var y:Number;
public function update():void{
if (active){
if (y < ((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) - PirateCargo.HEIGHT)){
x = (x + dx);
y = (y + dy);
dy = (dy + Explosion.Y_ACCEL);
} else {
y = (y + waterVel);
if (y > (PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE)){
active = false;
};
};
};
}
public function setCargo(_arg1:Number, _arg2:Number):void{
x = _arg1;
y = _arg2;
active = true;
dx = U.randRange(-(Explosion.X_VEL_MAX), Explosion.X_VEL_MAX);
dy = -(U.randRange(Explosion.Y_VEL_MIN, Explosion.Y_VEL_MAX));
waterVel = U.randRange(Explosion.WATER_VEL_MIN, Explosion.WATER_VEL_MAX);
}
}
}//package
Section 26
//CargoBitmap (CargoBitmap)
package {
import mx.core.*;
public class CargoBitmap extends BitmapAsset {
}
}//package
Section 27
//DarkerSkyBitmap (DarkerSkyBitmap)
package {
import mx.core.*;
public class DarkerSkyBitmap extends BitmapAsset {
}
}//package
Section 28
//DarkSkyBitmap (DarkSkyBitmap)
package {
import mx.core.*;
public class DarkSkyBitmap extends BitmapAsset {
}
}//package
Section 29
//Explosion (Explosion)
package {
import flash.geom.*;
public class Explosion {
public var forRemoval:Boolean;
public var rect:Rectangle;
private var waterVel:Number;
private var dx:Number;
private var dy:Number;
public var x:Number;
public var y:Number;
public static const WATER_VEL_MIN:Number = 1;
public static const Y_ACCEL:Number = 0.1;
public static const Y_VEL_MIN:Number = 1;
public static const X_VEL_MIN:Number = 0;
public static const WATER_VEL_MAX:Number = 2;
public static const X_VEL_MAX:Number = 1;
public static const Y_VEL_MAX:Number = 2;
public function Explosion(_arg1:Rectangle, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){
this.rect = _arg1;
this.x = _arg2;
this.y = _arg3;
this.dx = _arg4;
this.dy = _arg5;
this.waterVel = _arg6;
forRemoval = false;
}
public function update():void{
if (y < ((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) - PirateKatanas.EXPLOSION_SIZE_Y)){
y = (y + dy);
x = (x + dx);
dy = (dy + Y_ACCEL);
} else {
y = (y + waterVel);
if (y > (PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE)){
forRemoval = true;
};
};
}
}
}//package
Section 30
//FlexBitmap (FlexBitmap)
package {
import flash.display.*;
public class FlexBitmap extends Bitmap {
public static const SCALE:int = 2;
public function FlexBitmap(_arg1:BitmapData){
super(_arg1);
scaleX = SCALE;
scaleY = SCALE;
x = Math.round(((PiratesVsNinjasVendoIsland.STAGE_WIDTH - width) / 2));
y = Math.round(((PiratesVsNinjasVendoIsland.STAGE_HEIGHT - height) / 2));
}
}
}//package
Section 31
//FlexBitmapData (FlexBitmapData)
package {
import flash.display.*;
public class FlexBitmapData extends BitmapData {
public static const WIDTH:int = Math.floor((PiratesVsNinjasVendoIsland.STAGE_WIDTH / FlexBitmap.SCALE));
public static const HEIGHT:int = Math.floor((Math.max((PiratesVsNinjasVendoIsland.STAGE_HEIGHT - 150), 1) / FlexBitmap.SCALE));
public function FlexBitmapData(){
super(WIDTH, HEIGHT, false, 0);
}
}
}//package
Section 32
//FontBitmap (FontBitmap)
package {
import mx.core.*;
public class FontBitmap extends BitmapAsset {
}
}//package
Section 33
//InviButton (InviButton)
package {
import flash.display.*;
public class InviButton extends Sprite {
public function InviButton(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
graphics.beginFill(0, 0);
graphics.drawRect(0, 0, _arg3, _arg4);
graphics.endFill();
this.x = _arg1;
this.y = _arg2;
buttonMode = true;
}
}
}//package
Section 34
//IslandBitmap (IslandBitmap)
package {
import mx.core.*;
public class IslandBitmap extends BitmapAsset {
}
}//package
Section 35
//ItemsField (ItemsField)
package {
import flash.text.*;
public class ItemsField extends TextField {
private var textFormat:TextFormat;
public static const MARGIN:int = 10;
public function ItemsField(){
x = MARGIN;
textFormat = new TextFormat();
textFormat.color = 0xFFFFFF;
textFormat.font = "Arial";
textFormat.size = 14;
textFormat.align = TextFormatAlign.LEFT;
update(0);
}
public function update(_arg1:int):void{
text = ("Items Delivered: " + U.styleNumber(_arg1));
setTextFormat(textFormat);
autoSize = TextFieldAutoSize.LEFT;
selectable = false;
textColor = 0xFFFFFF;
}
public function start():void{
update(0);
}
}
}//package
Section 36
//Katana (Katana)
package {
public class Katana {
public var forRemoval:Boolean;
public var dy:Number;
public var x:int;
public var y:Number;
public static const ACCEL_Y:Number = 0.1;
public static const FLOOR:int = ((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) - BITMAP_HEIGHT);
public static const BITMAP_WIDTH:int = 8;
public static const BITMAP_HEIGHT:int = 48;
public function Katana(_arg1:int){
forRemoval = false;
this.x = _arg1;
y = -(BITMAP_HEIGHT);
dy = 0;
}
public function update():void{
if (y == FLOOR){
forRemoval = true;
} else {
dy = (dy + ACCEL_Y);
y = U.constrain((y + dy), -(BITMAP_HEIGHT), FLOOR);
};
}
}
}//package
Section 37
//KatanaBitmap (KatanaBitmap)
package {
import mx.core.*;
public class KatanaBitmap extends BitmapAsset {
}
}//package
Section 38
//KeyHandler (KeyHandler)
package {
import flash.events.*;
import flash.display.*;
public class KeyHandler extends Sprite {
private var keys:Array;
public static const KEY_CODES:Array = [K_LEFT, K_RIGHT, K_A, K_D, K_Q, K_SPACE];
public static const K_RIGHT:int = 39;
public static const K_A:int = 65;
public static const K_SPACE:int = 32;
public static const K_D:int = 68;
public static const K_LEFT:int = 37;
public static const K_Q:int = 81;
public function KeyHandler(){
initKeys();
addEventListener(KeyboardEvent.KEY_UP, onKeyUp, false, 0, true);
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false, 0, true);
}
public function getChangedDown():Array{
var _local3:int;
var _local4:KeyInfo;
var _local1:Array = [];
var _local2:int;
while (_local2 < KEY_CODES.length) {
_local3 = KEY_CODES[_local2];
_local4 = keys[_local3];
if (((_local4.changed) && (_local4.isDown))){
_local1.push(_local3);
_local4.changed = false;
};
_local2++;
};
return (_local1);
}
private function onKeyUp(_arg1:KeyboardEvent):void{
var _local2:int;
while (_local2 < KEY_CODES.length) {
if ((((KEY_CODES[_local2] == _arg1.keyCode)) && (keys[_arg1.keyCode].isDown))){
keys[_arg1.keyCode].isDown = false;
keys[_arg1.keyCode].changed = true;
};
_local2++;
};
}
private function initKeys():void{
keys = [];
var _local1:int;
while (_local1 < KEY_CODES.length) {
keys[KEY_CODES[_local1]] = new KeyInfo();
_local1++;
};
}
private function onKeyDown(_arg1:KeyboardEvent):void{
var _local2:int;
while (_local2 < KEY_CODES.length) {
if ((((KEY_CODES[_local2] == _arg1.keyCode)) && (!(keys[_arg1.keyCode].isDown)))){
keys[_arg1.keyCode].isDown = true;
keys[_arg1.keyCode].changed = true;
};
_local2++;
};
}
public function isDown(_arg1:int):Boolean{
return (keys[_arg1].isDown);
}
}
}//package
Section 39
//KeyInfo (KeyInfo)
package {
public class KeyInfo {
public var changed:Boolean;
public var isDown:Boolean;
public function KeyInfo(){
isDown = false;
changed = false;
}
}
}//package
Section 40
//language (language)
package {
import flash.net.*;
public class language {
public static var localConnection:LocalConnection = new LocalConnection();
public static var _languageNum:uint = 0;
public static var _languageBox:Array = new Array();
public static var SpillGroupUrl:Array = new Array();
public static function get url2():String{
var _local1:int;
while (_local1 < SpillGroupUrl.length) {
if (localConnection.domain == SpillGroupUrl[_local1]){
return (_languageBox[_languageNum].url2);
};
_local1++;
};
return (_languageBox[_languageNum].url2);
}
public static function get language_nr():int{
return (_languageBox[_languageNum].language_nr);
}
public static function get portal():String{
return (_languageBox[_languageNum].portal);
}
public static function set Language(_arg1:Object):void{
var myArray:Array;
var domainextention:int;
var domainname:int;
var hostingdomain:String;
var languageVersion = _arg1;
var returnDomain:Function = function (_arg1:String):String{
var _local2:String = new String();
var _local3:uint = 7;
while (_local3 < _arg1.length) {
if (_arg1.charAt(_local3) == "/"){
break;
};
_local2 = (_local2 + _arg1.charAt(_local3));
_local3++;
};
return (_local2);
};
if (localConnection.domain != "localhost"){
myArray = localConnection.domain.split(".");
trace(myArray.length);
domainextention = (myArray.length - 1);
domainname = (myArray.length - 2);
hostingdomain = ((myArray[domainname] + ".") + myArray[domainextention]);
} else {
hostingdomain = "localhost";
};
var language1:languageItem = new languageItem();
language1.url1 = ("http://www.agame.com/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language1.url2 = "http://www.agame.com/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language1.language_nr = 1;
language1.branding_nr = 1;
language1.portal = "tweens";
_languageBox.push(language1);
var language2:languageItem = new languageItem();
language2.url1 = "http://www.game.com.cn/moregames/";
language2.url2 = "http://www.game.com.cn/moregames/";
language2.language_nr = 2;
language2.branding_nr = 2;
language2.portal = "game_com_cn";
_languageBox.push(language2);
var language3:languageItem = new languageItem();
language3.url1 = ("http://www.spel.nl/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language3.url2 = "http://www.spel.nl/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language3.language_nr = 3;
language3.branding_nr = 4;
language3.portal = "tweens";
_languageBox.push(language3);
var language4:languageItem = new languageItem();
language4.url1 = ("http://www.jeu.fr/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language4.url2 = "http://www.jeu.fr/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language4.language_nr = 4;
language4.branding_nr = 5;
language4.portal = "tweens";
_languageBox.push(language4);
var language5:languageItem = new languageItem();
language5.url1 = ("http://www.spielen.com/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language5.url2 = "http://www.spielen.com/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language5.language_nr = 5;
language5.branding_nr = 6;
language5.portal = "tweens";
_languageBox.push(language5);
var language6:languageItem = new languageItem();
language6.url1 = ("http://www.minigry.pl/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language6.url2 = "http://www.minigry.pl/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language6.language_nr = 6;
language6.branding_nr = 14;
language6.portal = "tweens";
_languageBox.push(language6);
var language7:languageItem = new languageItem();
language7.url1 = ("http://www.spel.eu/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language7.url2 = "http://www.spel.eu/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language7.language_nr = 7;
language7.branding_nr = 9;
language7.portal = "tweens";
_languageBox.push(language7);
var language8:languageItem = new languageItem();
language8.url1 = ("http://www.giocaregratis.it/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language8.url2 = "http://www.giocaregratis.it/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language8.language_nr = 8;
language8.branding_nr = 8;
language8.portal = "tweens";
_languageBox.push(language8);
var language9:languageItem = new languageItem();
language9.url1 = ("http://www.zapjuegos.com/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language9.url2 = "http://www.zapjuegos.com/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language9.language_nr = 9;
language9.branding_nr = 3;
language9.portal = "tweens";
_languageBox.push(language9);
var language10:languageItem = new languageItem();
language10.url1 = ("http://www.clickjogos.com/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language10.url2 = "http://www.clickjogos.com/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language10.language_nr = 11;
language10.branding_nr = 7;
language10.portal = "tweens";
_languageBox.push(language10);
var language11:languageItem = new languageItem();
language11.url1 = ("http://www.games.co.id/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language11.url2 = "http://www.games.co.id/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language11.language_nr = 13;
language11.branding_nr = 13;
language11.portal = "tweens";
_languageBox.push(language11);
var language12:languageItem = new languageItem();
language12.url1 = ("http://www.flashgames.ru/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language12.url2 = "http://www.flashgames.ru/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language12.language_nr = 12;
language12.branding_nr = 11;
language12.portal = "tweens";
_languageBox.push(language12);
var language13:languageItem = new languageItem();
language13.url1 = ("http://www.mygames.co.uk/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language13.url2 = "http://www.mygames.co.uk/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language13.language_nr = 16;
language13.branding_nr = 10;
language13.portal = "tweens";
_languageBox.push(language13);
var language14:languageItem = new languageItem();
language14.url1 = ("http://www.game.co.in/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language14.url2 = "http://www.game.co.in/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language14.language_nr = 16;
language14.branding_nr = 12;
language14.portal = "tweens";
_languageBox.push(language14);
var language15:languageItem = new languageItem();
language15.url1 = ("http://www.asoyun.com/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language15.url2 = "http://www.asoyun.com/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language15.language_nr = 14;
language15.branding_nr = 15;
language15.portal = "tweens";
_languageBox.push(language15);
var language16:languageItem = new languageItem();
language16.url1 = ("http://www.game.com.my/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language16.url2 = "http://www.game.com.my/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language16.language_nr = 15;
language16.branding_nr = 16;
language16.portal = "tweens";
_languageBox.push(language16);
var language17:languageItem = new languageItem();
language17.url1 = ("http://www.ojogos.pt/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language17.url2 = "http://www.ojogos.pt/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language17.language_nr = 10;
language17.branding_nr = 42;
language17.portal = "family";
_languageBox.push(language17);
var language18:languageItem = new languageItem();
language18.url1 = ("http://www.laro.com.ph/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language18.url2 = "http://www.laro.com.ph/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language18.language_nr = 16;
language18.branding_nr = 43;
language18.portal = "tweens";
_languageBox.push(language18);
var language19:languageItem = new languageItem();
language19.url1 = ("http://www.egames.jp/moregames/?utm_source=brandedgames_external&utm_medium=pvnvi&utm_campaign=" + hostingdomain);
language19.url2 = "http://www.egames.jp/moregames/?utm_source=brandedgames_internal&utm_medium=pvnvi";
language19.language_nr = 17;
language19.branding_nr = 44;
language19.portal = "tweens";
_languageBox.push(language19);
SpillGroupUrl.push("localhost");
SpillGroupUrl.push("www8.agame.com");
if ((((((languageVersion is Number)) || ((languageVersion is uint)))) || ((languageVersion is int)))){
_languageNum = (Number(languageVersion) - 1);
};
}
public static function get url1():String{
var _local1:int;
while (_local1 < SpillGroupUrl.length) {
if (localConnection.domain == SpillGroupUrl[_local1]){
return (_languageBox[_languageNum].url2);
};
_local1++;
};
return (_languageBox[_languageNum].url1);
}
public static function get branding_nr():String{
return (_languageBox[_languageNum].branding_nr);
}
}
}//package
class languageItem {
public var url1:String;
public var url2:String;
public var language_nr:int;
public var portal:String;
public var branding_nr:int;
private function languageItem(){
}
}
Section 41
//LifeboatBitmap (LifeboatBitmap)
package {
import mx.core.*;
public class LifeboatBitmap extends BitmapAsset {
}
}//package
Section 42
//M (M)
package {
import flash.events.*;
import mx.core.*;
import flash.media.*;
public class M extends TextButton {
private var channel:SoundChannel;
private var music:SoundAsset;
private var bgTransform:SoundTransform;
private var playing:Boolean;// = false
private var musicClass:Class;
private var fader:Number;// = 0
private var menu:Menu;
public function M(_arg1:Menu){
musicClass = M_musicClass;
music = SoundAsset(new musicClass());
bgTransform = new SoundTransform();
super();
construct("music");
this.menu = _arg1;
addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
}
public function start():void{
if (isOn){
bgTransform.volume = 1;
};
if (fader > 0){
channel.stop();
playing = false;
};
channel = music.play(25, int.MAX_VALUE);
playing = true;
channel.soundTransform = bgTransform;
}
override public function whenPressed():void{
bgTransform.volume = (isOn) ? 1 : 0;
if (playing){
channel.soundTransform = bgTransform;
};
}
private function onEnterFrame(_arg1:Event):void{
if (menu.visible){
if (fader > 0){
fader = (fader - 0.025);
if (isOn){
bgTransform.volume = ((fader)>0) ? fader : 0;
channel.soundTransform = bgTransform;
};
if (fader <= 0){
channel.stop();
playing = false;
};
};
};
}
public function end():void{
fader = 1;
}
}
}//package
Section 43
//M_musicClass (M_musicClass)
package {
import mx.core.*;
public class M_musicClass extends SoundAsset {
}
}//package
Section 44
//Menu (Menu)
package {
import flash.events.*;
import flash.display.*;
public class Menu extends Sprite {
private var pgButton:InviButton;
private var ticker:Ticker;
private var pirateGame:PirateGame;
private var gmgButton:Sprite;
public static const MARGIN_INNER:int = 32;
public static const MARGIN_OUTER:int = 16;
public static const BUTTON_X:int = 67;
public static const GMG_Y:int = 140;
public static const Y_ADJUST:int = -24;
public static const PG_Y:int = 92;
public static const BUTTON_WIDTH:int = 244;
public static const BUTTON_HEIGHT:int = 32;
public function Menu(_arg1:Ticker){
this.ticker = _arg1;
var _local2:Bitmap = new MenuBitmap();
graphics.beginFill(0, 0.5);
graphics.drawRect(0, 0, (_local2.width + (2 * MARGIN_INNER)), (_local2.height + (2 * MARGIN_INNER)));
graphics.endFill();
_local2.x = MARGIN_INNER;
_local2.y = Math.floor(((height - _local2.height) / 2));
addChild(_local2);
pgButton = new InviButton((_local2.x + BUTTON_X), (_local2.y + PG_Y), BUTTON_WIDTH, BUTTON_HEIGHT);
gmgButton = new AgameMoreGamesButton();
gmgButton.x = (((_local2.width + (2 * MARGIN_INNER)) - gmgButton.width) / 2);
gmgButton.y = (_local2.y + GMG_Y);
pgButton.addEventListener(MouseEvent.CLICK, onPG, false, 0, true);
addChild(pgButton);
addChild(gmgButton);
x = Math.floor(((PiratesVsNinjasVendoIsland.STAGE_WIDTH - width) / 2));
showMenu();
}
public function hideMenu():void{
visible = false;
}
public function setGame(_arg1:PirateGame):void{
this.pirateGame = _arg1;
}
public function showMenu():void{
ticker.update("v1.01-spillgroup © scriptedfun.com. All rights reserved.");
visible = true;
}
public function onPG(_arg1:Event):void{
hideMenu();
pirateGame.start();
}
}
}//package
Section 45
//MenuBitmap (MenuBitmap)
package {
import mx.core.*;
public class MenuBitmap extends BitmapAsset {
}
}//package
Section 46
//MochiAd (MochiAd)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
public class MochiAd {
public static function getVersion():String{
return ("2.7");
}
public static function showClickAwayAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
var sendHostProgress:Boolean;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
var _local3:Object = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
var idx:Number = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var clip:Object;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
var depth:Number = options.depth;
delete options.depth;
var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth);
var wh:Array = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
var lv:URLVariables = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local6:Array;
var _local3:Object = _arg2.getBounds(_arg2.root);
var _local4:Number = 0;
var _local5:Number = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array = _arg2.split(".");
var _local4:Number = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
var fn:Function = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = 10;
bar.y = (h - 20);
};
var bar_color:Number = options.color;
delete options.color;
var bar_background:Number = options.background;
delete options.background;
var bar_outline:Number = options.outline;
delete options.outline;
var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1);
var backing:Object = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2);
var inside:Object = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3);
var outline:Object = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
var f:Function = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local11:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
var _local1:Object = this.parent.parent.root;
var _local2:Object = this.parent._mochiad_ctr;
var _local3:Number = (getTimer() - this.started);
var _local4:Boolean;
var _local5:Number = _local1.loaderInfo.bytesTotal;
var _local6:Number = _local1.loaderInfo.bytesLoaded;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
var _local7:Number = ((100 * _local6) / _local5);
var _local8:Number = ((100 * _local3) / chk.ad_msec);
var _local9:Object = this._mochiad_bar._inside;
var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
options.ad_progress(_local10);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7});
if (_local7 == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local11 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var mc = _arg1;
var f:Function = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 47
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.system.*;
import flash.net.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
if (Security.sandboxType == "localWithFile"){
return (null);
};
var _local3:MochiBot = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
var _local4 = "http://core.mochibot.com/my/core.swf";
var _local5:URLVariables = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
var _local6:String = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
var _local7:URLRequest = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
var _local8:Loader = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 48
//MochiInfo (MochiInfo)
package {
public class MochiInfo {
public static const MOCHI_ID:String = "67a6217108a3a4a3";
public static const BOT_ID:String = "4e48dc1b";
}
}//package
Section 49
//MyLoader (MyLoader)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class MyLoader extends MovieClip {
private const stageHeight:int = 500;
private const stageWidth:int = 700;
private var spriteBackground:Sprite;
private var adFinished:Boolean;
public function MyLoader(){
addEventListener(Event.ADDED, onAdded);
}
private function onEnterFrame(_arg1:Event):void{
var _local2:Class;
var _local3:Object;
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
if (((adFinished) && ((framesLoaded == totalFrames)))){
removeChild(spriteBackground);
nextFrame();
_local2 = Class(getDefinitionByName("PiratesVsNinjasVendoIsland"));
if (_local2){
_local3 = new (_local2);
addChild((_local3 as DisplayObject));
};
} else {
addEventListener(Event.ENTER_FRAME, onEnterFrame);
};
}
private function onAdded(_arg1:Event):void{
removeEventListener(Event.ADDED, onAdded);
stop();
stage.showDefaultContextMenu = false;
stage.scaleMode = StageScaleMode.EXACT_FIT;
spriteBackground = new Sprite();
spriteBackground.graphics.beginFill(0);
spriteBackground.graphics.drawRect(-10, -10, (20 + stageWidth), (20 + stageHeight));
spriteBackground.graphics.endFill();
addChild(spriteBackground);
adFinished = false;
MochiBot.track(this, MochiInfo.BOT_ID);
MochiAd.showPreGameAd({clip:root, id:MochiInfo.MOCHI_ID, res:"700x500", ad_finished:onAdFinished});
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onAdFinished():void{
adFinished = true;
}
}
}//package
Section 50
//NinjaBitmap (NinjaBitmap)
package {
import mx.core.*;
public class NinjaBitmap extends BitmapAsset {
}
}//package
Section 51
//Piece (Piece)
package {
import flash.geom.*;
public class Piece {
public var rect:Rectangle;
public var active:Boolean;
private var waterVel:Number;
private var dx:Number;
private var dy:Number;
public var x:Number;
public var y:Number;
public function update():void{
if (active){
if ((((y > ((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) - PirateLifeboat.HEIGHT))) && ((dy > 0)))){
y = (y + waterVel);
if (y > (PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE)){
active = false;
};
} else {
x = (x + dx);
y = (y + dy);
dy = (dy + Explosion.Y_ACCEL);
};
};
}
public function setPiece(_arg1:Number, _arg2:Number, _arg3:Rectangle, _arg4:Number, _arg5:Number, _arg6:Number):void{
x = _arg1;
y = _arg2;
rect = _arg3;
this.dx = _arg4;
this.dy = _arg5;
this.waterVel = _arg6;
active = true;
}
}
}//package
Section 52
//PirateBitmap (PirateBitmap)
package {
import mx.core.*;
public class PirateBitmap extends BitmapAsset {
}
}//package
Section 53
//PirateCargo (PirateCargo)
package {
import flash.display.*;
import flash.geom.*;
public class PirateCargo extends PirateObject {
public var items:Array;
public var doneExploding:Boolean;
public var hasMoney:Boolean;
private var scoreField:ScoreField;
private var active:Boolean;
private var itemsField:ItemsField;
private var exploding:Boolean;
private var stats:Stats;
private var soundButton:S;
private var bitmaps:Array;
private var nextItem:int;
private var rect:Rectangle;
private var scoreLayer:ScoreLayer;
private var projectiles:Array;
private var pirateLifeboat:PirateLifeboat;
private var x:int;
private var y:int;
private var katanas:PirateKatanas;
public static const ITEMS:int = 4;
public static const NEXT_POINT:Point = new Point(((PirateGame.WIDTH - 64) + 19), 66);
public static const WIDTH:int = 24;
public static const HEIGHT:int = 24;
public function PirateCargo(_arg1:BitmapData, _arg2:PirateLifeboat, _arg3:Stats, _arg4:ScoreField, _arg5:ItemsField, _arg6:ScoreLayer, _arg7:S){
var _local8:int;
var _local10:BitmapData;
super(_arg1);
this.pirateLifeboat = _arg2;
this.stats = _arg3;
this.scoreField = _arg4;
this.itemsField = _arg5;
this.scoreLayer = _arg6;
this.soundButton = _arg7;
_arg2.setCargo(this);
var _local9:Bitmap = new CargoBitmap();
bitmaps = [];
_local8 = 0;
while (_local8 < (ITEMS + 1)) {
_local10 = new BitmapData(WIDTH, HEIGHT, true, 0);
_local10.copyPixels(_local9.bitmapData, new Rectangle((_local8 * WIDTH), 0, WIDTH, HEIGHT), new Point(0, 0));
bitmaps.push(_local10);
_local8++;
};
rect = new Rectangle(0, 0, WIDTH, HEIGHT);
items = [];
projectiles = [];
_local8 = 0;
while (_local8 < ITEMS) {
projectiles.push(new Cargo());
_local8++;
};
active = false;
}
public function update():void{
var _local1:Boolean;
var _local2:int;
if (active){
if (!exploding){
x = (pirateLifeboat.x + ((pirateLifeboat.xDirection == 1)) ? (PirateLifeboat.WIDTH - WIDTH) : 0);
y = (pirateLifeboat.y - HEIGHT);
} else {
_local1 = true;
_local2 = 0;
while (_local2 < ITEMS) {
projectiles[_local2].update();
_local1 = ((!(projectiles[_local2].active)) && (_local1));
_local2++;
};
doneExploding = _local1;
};
};
}
private function reset():void{
hasMoney = true;
items.splice(0);
setNextItem();
exploding = false;
update();
}
public function getItem():void{
if (items.length < ITEMS){
soundButton.play(S.CATCH);
items.push(nextItem);
setNextItem();
if (items.length == ITEMS){
hasMoney = false;
};
};
}
public function startExploding():void{
var _local1:int;
while (_local1 < ITEMS) {
projectiles[_local1].setCargo(x, (y - (_local1 * HEIGHT)));
_local1++;
};
exploding = true;
doneExploding = false;
}
public function hitTest(_arg1:Katana):Boolean{
var _local3:int;
var _local2:Point = new Point(_arg1.x, Math.round(_arg1.y));
if (items.length > 0){
_local3 = 0;
while (_local3 < items.length) {
if (bitmaps[(items[_local3] + 1)].hitTest(new Point(x, (y - (_local3 * HEIGHT))), 0xFF, katanas.bitmap, _local2, 0xFF)){
return (true);
};
_local3++;
};
};
return (bitmaps[0].hitTest(new Point(x, y), 0xFF, katanas.bitmap, _local2, 0xFF));
}
public function start():void{
reset();
active = true;
}
public function returnItem():void{
var _local1:int;
if (items.length > 0){
stats.items++;
_local1 = Math.pow(stats.items, items.length);
stats.score = (stats.score + _local1);
scoreField.wantNum = stats.score;
itemsField.update(stats.items);
scoreLayer.addScore(stats.items, items.length, _local1);
items.pop();
katanas.levelUp();
soundButton.play(S.WIN);
} else {
if (!hasMoney){
hasMoney = true;
soundButton.play(S.WIN);
};
};
}
public function render():void{
var _local1:int;
var _local2:int;
var _local3:int;
if (active){
if (items.length > 0){
_local3 = 0;
while (_local3 < items.length) {
if (!exploding){
_local1 = x;
_local2 = (y - (_local3 * HEIGHT));
} else {
_local1 = projectiles[_local3].x;
_local2 = projectiles[_local3].y;
};
flexBitmapData.copyPixels(bitmaps[(items[_local3] + 1)], rect, new Point(_local1, _local2));
_local3++;
};
} else {
if (hasMoney){
if (!exploding){
_local1 = x;
_local2 = y;
} else {
_local1 = projectiles[0].x;
_local2 = projectiles[0].y;
};
flexBitmapData.copyPixels(bitmaps[0], rect, new Point(_local1, _local2));
};
};
if (hasMoney){
flexBitmapData.copyPixels(bitmaps[(nextItem + 1)], rect, NEXT_POINT);
};
};
}
private function setNextItem():void{
nextItem = Math.floor(U.randRange(0, ITEMS));
}
public function setKatanas(_arg1:PirateKatanas):void{
this.katanas = _arg1;
}
}
}//package
Section 54
//PirateGame (PirateGame)
package {
import flash.display.*;
import flash.geom.*;
public class PirateGame {
private var scoreField:ScoreField;
private var ticker:Ticker;
private var pirateSky:PirateSky;
private var piratePirate:PiratePirate;
private var itemsField:ItemsField;
private var stats:Stats;
private var pirateStars:PirateStars;
private var paused:Boolean;
private var pirateNinja:PirateNinja;
private var pirateLifeboat:PirateLifeboat;
private var musicButton:M;
private var pirateShip:PirateShip;
private var gameBitmap:BitmapData;
private var offsetWant:Number;
private var pirateWater:PirateWater;
private var pirateIsland:PirateIsland;
private var flexBitmapData:BitmapData;
private var scoreLayer:ScoreLayer;
private var gamePoint:Point;
private var pirateCargo:PirateCargo;
private var pirateKatanas:PirateKatanas;
private var offsetCurrent:Number;
private var keyHandler:KeyHandler;
private var gameRect:Rectangle;
public static const POSITION_GAP:int = 71;
public static const OFFSET_TOLERANCE:Number = 1;
public static const WIDTH:int = 426;
public static const POSITION_NUM:int = 4;
public static const HEIGHT:int = FlexBitmapData.HEIGHT;
public static const OFFSET_EASE:Number = 0.1;
public function PirateGame(_arg1:BitmapData, _arg2:KeyHandler, _arg3:Ticker, _arg4:ScoreField, _arg5:ItemsField, _arg6:Menu, _arg7:ScoreLayer, _arg8:S, _arg9:M){
this.flexBitmapData = _arg1;
this.keyHandler = _arg2;
this.scoreField = _arg4;
this.itemsField = _arg5;
this.scoreLayer = _arg7;
this.musicButton = _arg9;
this.ticker = _arg3;
gameBitmap = new BitmapData(WIDTH, HEIGHT, false);
gameRect = new Rectangle(0, 0, FlexBitmapData.WIDTH, FlexBitmapData.HEIGHT);
gamePoint = new Point(0, 0);
stats = new Stats();
pirateSky = new PirateSky(gameBitmap);
pirateIsland = new PirateIsland(gameBitmap);
pirateShip = new PirateShip(gameBitmap);
pirateLifeboat = new PirateLifeboat(gameBitmap, _arg2, _arg3, stats, _arg8, this);
piratePirate = new PiratePirate(gameBitmap, pirateLifeboat);
pirateNinja = new PirateNinja(gameBitmap);
pirateCargo = new PirateCargo(gameBitmap, pirateLifeboat, stats, _arg4, _arg5, _arg7, _arg8);
pirateKatanas = new PirateKatanas(gameBitmap, pirateLifeboat, pirateCargo, piratePirate, pirateNinja, pirateSky, _arg6, _arg8, _arg9, stats, _arg3);
pirateWater = new PirateWater(gameBitmap);
pirateStars = new PirateStars(gameBitmap);
_arg6.setGame(this);
offsetCurrent = 0;
offsetWant = 0;
}
private function getOffset():Number{
return (U.constrain((pirateLifeboat.getCenterX() - (FlexBitmapData.WIDTH / 2)), 0, (WIDTH - FlexBitmapData.WIDTH)));
}
public function render():void{
pirateSky.render();
pirateStars.render();
pirateIsland.render();
pirateShip.render();
pirateLifeboat.render();
piratePirate.render();
pirateCargo.render();
pirateLifeboat.render();
pirateKatanas.render();
pirateWater.render();
pirateNinja.render();
flexBitmapData.copyPixels(gameBitmap, gameRect, gamePoint);
}
public function update(_arg1:Array):void{
var _local2:int;
if (((pirateLifeboat.active) && (!(pirateLifeboat.exploding)))){
_local2 = 0;
while (_local2 < _arg1.length) {
switch (_arg1[_local2]){
case KeyHandler.K_SPACE:
paused = !(paused);
if (paused){
ticker.saveText();
ticker.update("Game paused. Press SPACE to resume, or Q to quit.");
} else {
ticker.returnText();
};
break;
case KeyHandler.K_Q:
if (paused){
paused = false;
ticker.returnText();
pirateKatanas.endLife(false);
};
break;
};
_local2++;
};
};
if (!paused){
pirateSky.update();
pirateStars.update();
pirateShip.update();
pirateLifeboat.update(_arg1);
piratePirate.update();
pirateCargo.update();
pirateNinja.update();
pirateKatanas.update();
pirateWater.update(pirateLifeboat.xDirection);
scoreField.update();
offsetCurrent = U.ease(offsetCurrent, getOffset(), OFFSET_EASE, OFFSET_TOLERANCE);
scoreLayer.update(offsetCurrent);
gameRect.x = Math.floor(offsetCurrent);
};
}
public function softReset():void{
pirateLifeboat.reset(true);
piratePirate.start();
pirateCargo.start();
pirateKatanas.turnOn(true);
}
public function start():void{
stats.start();
scoreField.start();
itemsField.start();
pirateLifeboat.start();
piratePirate.start();
pirateCargo.start();
pirateNinja.start();
pirateKatanas.start();
scoreLayer.start();
musicButton.start();
paused = false;
}
}
}//package
Section 55
//PirateIsland (PirateIsland)
package {
import flash.display.*;
import flash.geom.*;
public class PirateIsland extends PirateObject {
private var point:Point;
private var rect:Rectangle;
private var bitmap:BitmapData;
public function PirateIsland(_arg1:BitmapData){
super(_arg1);
var _local2:Bitmap = new IslandBitmap();
bitmap = _local2.bitmapData;
rect = new Rectangle(0, 0, bitmap.width, bitmap.height);
point = new Point((PirateGame.WIDTH - bitmap.width), ((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) - bitmap.height));
}
public function render():void{
flexBitmapData.copyPixels(bitmap, rect, point);
}
}
}//package
Section 56
//PirateKatanas (PirateKatanas)
package {
import flash.display.*;
import flash.geom.*;
public class PirateKatanas extends PirateObject {
private var counter:int;
private var katanaColumns:Array;
private var pirateSky:PirateSky;
private var delay:int;
private var nextX:int;
private var piratePirate:PiratePirate;
private var active:Boolean;
private var stats:Stats;
private var soundButton:S;
private var pirateCargo:PirateCargo;
private var menu:Menu;
public var isOn:Boolean;
private var rect:Rectangle;
private var ticker:Ticker;
public var bitmap:BitmapData;
private var pirateNinja:PirateNinja;
private var pirateLifeboat:PirateLifeboat;
private var musicButton:M;
private var nextPosition:int;
private var explosions:Array;
public static const EXPLOSION_SIZE_X:int = 4;
public static const EXPLOSION_SIZE_Y:int = 6;
public static const DELAY_MAX:int = 80;
public static const EXPLOSION_NUM_X:int = 2;
public static const EXPLOSION_NUM_Y:int = 8;
public static const DELAY_MIN:int = 2;
public function PirateKatanas(_arg1:BitmapData, _arg2:PirateLifeboat, _arg3:PirateCargo, _arg4:PiratePirate, _arg5:PirateNinja, _arg6:PirateSky, _arg7:Menu, _arg8:S, _arg9:M, _arg10:Stats, _arg11:Ticker){
super(_arg1);
this.pirateLifeboat = _arg2;
this.pirateCargo = _arg3;
this.piratePirate = _arg4;
this.pirateNinja = _arg5;
this.pirateSky = _arg6;
this.menu = _arg7;
this.soundButton = _arg8;
this.musicButton = _arg9;
this.stats = _arg10;
this.ticker = _arg11;
_arg2.setKatanas(this);
_arg3.setKatanas(this);
_arg4.setKatanas(this);
var _local12:Bitmap = new KatanaBitmap();
bitmap = _local12.bitmapData;
rect = new Rectangle(0, 0, bitmap.width, bitmap.height);
explosions = [];
katanaColumns = [];
var _local13:int;
while (_local13 < PirateGame.POSITION_NUM) {
katanaColumns.push([]);
_local13++;
};
active = false;
}
public function turnOn(_arg1:Boolean=false):void{
if (!_arg1){
delay = DELAY_MAX;
};
counter = 0;
setNextPosition();
isOn = true;
}
public function update():void{
var _local1:int;
var _local2:int;
var _local3:Array;
var _local4:Katana;
var _local5:int;
var _local6:int;
var _local7:Number;
var _local8:Number;
var _local9:Number;
if (active){
_local2 = 0;
while (_local2 < katanaColumns.length) {
_local3 = katanaColumns[_local2];
_local1 = 0;
while (_local1 < _local3.length) {
_local3[_local1].update();
if (((((!(_local3[_local1].forRemoval)) && (!(pirateLifeboat.exploding)))) && (((((pirateLifeboat.hitTest(_local3[_local1])) || (piratePirate.hitTest(_local3[_local1])))) || (pirateCargo.hitTest(_local3[_local1])))))){
_local3[_local1].forRemoval = true;
soundButton.play(S.LOSE);
ticker.setLives(--stats.lives);
endLife((stats.lives > 0));
};
if (_local3[_local1].forRemoval){
_local4 = _local3.splice(_local1, 1)[0];
_local5 = 0;
while (_local5 < EXPLOSION_NUM_Y) {
_local6 = 0;
while (_local6 < EXPLOSION_NUM_X) {
_local7 = U.randRange(Explosion.X_VEL_MIN, Explosion.X_VEL_MAX);
_local8 = -(U.randRange(Explosion.Y_VEL_MIN, Explosion.Y_VEL_MAX));
_local9 = U.randRange(Explosion.WATER_VEL_MIN, Explosion.WATER_VEL_MAX);
explosions.push(new Explosion(new Rectangle((_local6 * EXPLOSION_SIZE_X), (_local5 * EXPLOSION_SIZE_Y), EXPLOSION_SIZE_X, EXPLOSION_SIZE_Y), (_local4.x + (_local6 * EXPLOSION_SIZE_X)), (Math.round(_local4.y) + (_local5 * EXPLOSION_SIZE_Y)), (Math.pow(-1, (_local6 + 1)) * _local7), _local8, _local9));
_local6++;
};
_local5++;
};
} else {
_local1++;
};
};
pirateSky.isDark[_local2] = (_local3.length > 0);
_local2++;
};
_local1 = 0;
while (_local1 < explosions.length) {
explosions[_local1].update();
if (explosions[_local1].forRemoval){
explosions.splice(_local1, 1);
} else {
_local1++;
};
};
if (isOn){
counter = ((counter + 1) % delay);
if (counter == 0){
katanaColumns[nextPosition].push(new Katana(nextX));
setNextPosition();
};
};
};
}
public function levelUp():void{
if (((isOn) && ((delay > DELAY_MIN)))){
delay--;
};
}
public function isEmpty():Boolean{
var _local1:int;
while (_local1 < katanaColumns.length) {
if (katanaColumns[_local1].length > 0){
return (false);
};
_local1++;
};
return (true);
}
public function render():void{
var _local1:int;
var _local2:int;
var _local3:Array;
if (active){
_local1 = 0;
while (_local1 < explosions.length) {
flexBitmapData.copyPixels(bitmap, explosions[_local1].rect, new Point(Math.round(explosions[_local1].x), Math.round(explosions[_local1].y)));
_local1++;
};
_local2 = 0;
while (_local2 < katanaColumns.length) {
_local3 = katanaColumns[_local2];
_local1 = 0;
while (_local1 < _local3.length) {
flexBitmapData.copyPixels(bitmap, rect, new Point(_local3[_local1].x, Math.round(_local3[_local1].y)));
_local1++;
};
_local2++;
};
};
}
private function setNextPosition():void{
nextPosition = Math.floor(U.randRange(0, PirateGame.POSITION_NUM));
nextX = (((nextPosition + 1) * PirateGame.POSITION_GAP) + Math.floor(U.randRange(0, (PirateGame.POSITION_GAP - Katana.BITMAP_WIDTH))));
pirateNinja.setPosition(nextX, (delay / 2));
}
private function reset():void{
explosions.splice(0);
var _local1:int;
while (_local1 < katanaColumns.length) {
katanaColumns[_local1].splice(0);
_local1++;
};
turnOff();
}
public function endLife(_arg1:Boolean):void{
pirateLifeboat.startExploding(_arg1);
piratePirate.startExploding();
pirateCargo.startExploding();
turnOff();
if (!_arg1){
musicButton.end();
menu.showMenu();
};
}
public function turnOff():void{
pirateNinja.setPosition((PirateGame.WIDTH + PirateNinja.WIDTH), (delay / 2));
isOn = false;
}
public function start():void{
reset();
active = true;
}
}
}//package
Section 57
//PirateLifeboat (PirateLifeboat)
package {
import flash.display.*;
import flash.geom.*;
public class PirateLifeboat extends PirateObject {
private var midair:Boolean;
private var keyHandler:KeyHandler;
public var active:Boolean;
private var yOffsets:Array;
private var yDelay:int;
private var yJumps:Array;
private var xPositionIndex:int;
private var piratePirate:PiratePirate;
private var ticker:Ticker;
private var stats:Stats;
private var soundButton:S;
private var xOffsets:Array;
private var bitmap:BitmapData;
private var pieces:Array;
private var waiting:Boolean;
private var xPositions:Array;
private var yIndex:int;
private var pirateCargo:PirateCargo;
private var rect:Rectangle;
public var exploding:Boolean;
private var xOffsetIndex:int;
private var lastKey:int;
private var pirateGame:PirateGame;
public var xDirection:int;
public var x:int;
public var y:int;
private var katanas:PirateKatanas;
public static const LOOK_AHEAD:int = 0;
public static const POSITION_DELTA:int = 15;
public static const PIECES:int = 2;
public static const WIDTH:int = 64;
public static const HEIGHT:int = 16;
public static const Y_DELAY:int = 6;
public static const Y_ORIGIN:int = 129;
public static const Y_PERIOD:int = 8;
public static const JUMP_HEIGHT:int = 16;
public static const Y_AMPLITUDE:int = 1;
public function PirateLifeboat(_arg1:BitmapData, _arg2:KeyHandler, _arg3:Ticker, _arg4:Stats, _arg5:S, _arg6:PirateGame){
var _local8:int;
super(_arg1);
this.keyHandler = _arg2;
this.ticker = _arg3;
this.stats = _arg4;
this.soundButton = _arg5;
this.pirateGame = _arg6;
var _local7:Bitmap = new LifeboatBitmap();
bitmap = _local7.bitmapData;
rect = new Rectangle(0, 0, WIDTH, HEIGHT);
yOffsets = [];
_local8 = 0;
while (_local8 < Y_PERIOD) {
yOffsets.push(Math.round((Y_AMPLITUDE * Math.sin((((2 * Math.PI) * _local8) / Y_PERIOD)))));
_local8++;
};
xPositions = [];
_local8 = 0;
while (_local8 < PirateGame.POSITION_NUM) {
xPositions.push((((_local8 + 1) * PirateGame.POSITION_GAP) + Math.round(((PirateGame.POSITION_GAP - WIDTH) / 2))));
_local8++;
};
xOffsets = [];
yJumps = [];
_local8 = 0;
while (_local8 < POSITION_DELTA) {
xOffsets.push(Math.round(((PirateGame.POSITION_GAP * _local8) / POSITION_DELTA)));
yJumps.push(Math.round(((((JUMP_HEIGHT * 4) * _local8) * (POSITION_DELTA - _local8)) / (POSITION_DELTA * POSITION_DELTA))));
_local8++;
};
pieces = [];
_local8 = 0;
while (_local8 < PIECES) {
pieces.push(new Piece());
_local8++;
};
xDirection = 1;
active = false;
}
public function setCargo(_arg1:PirateCargo):void{
this.pirateCargo = _arg1;
}
public function render():void{
var _local1:int;
if (active){
if (!exploding){
flexBitmapData.copyPixels(bitmap, rect, new Point(x, y));
} else {
_local1 = 0;
while (_local1 < PIECES) {
flexBitmapData.copyPixels(bitmap, pieces[_local1].rect, new Point(Math.round(pieces[_local1].x), Math.round(pieces[_local1].y)));
_local1++;
};
};
};
}
public function startExploding(_arg1:Boolean=false):void{
var _local3:Number;
var _local4:Number;
var _local5:Rectangle;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local2:int;
while (_local2 < PIECES) {
_local3 = (x + ((_local2 * WIDTH) / PIECES));
_local4 = y;
_local5 = new Rectangle(((_local2 * WIDTH) / PIECES), 0, (WIDTH / PIECES), HEIGHT);
_local6 = (Math.pow(-1, (_local2 + 1)) * U.randRange(Explosion.X_VEL_MIN, Explosion.X_VEL_MAX));
_local7 = -(U.randRange(Explosion.Y_VEL_MIN, Explosion.Y_VEL_MAX));
_local8 = U.randRange(Explosion.WATER_VEL_MIN, Explosion.WATER_VEL_MAX);
pieces[_local2].setPiece(_local3, _local4, _local5, _local6, _local7, _local8);
_local2++;
};
exploding = true;
this.waiting = _arg1;
}
private function atEnd():Boolean{
return (((((!(midair)) && ((xPositionIndex == (PirateGame.POSITION_NUM - 1))))) && (pirateCargo.hasMoney)));
}
public function setKatanas(_arg1:PirateKatanas):void{
this.katanas = _arg1;
}
public function update(_arg1:Array):void{
var _local2:int;
var _local3:Boolean;
if (active){
if (!exploding){
_local2 = 0;
while (_local2 < _arg1.length) {
switch (_arg1[_local2]){
case KeyHandler.K_LEFT:
case KeyHandler.K_A:
if (((atEnd()) && ((pirateCargo.items.length > 0)))){
pirateCargo.hasMoney = false;
if (!katanas.isOn){
ticker.update("Go left to deliver the items to the ship.");
};
} else {
if (((!(midair)) && ((xPositionIndex == 0)))){
pirateCargo.returnItem();
if (((((!(katanas.isOn)) && ((stats.score > 0)))) && ((pirateCargo.items.length == 0)))){
if (!pirateCargo.hasMoney){
ticker.update("Press LEFT/A beside the ship to get a new bag of gold.");
} else {
ticker.update("Keep on repeating this process, and try to get the highest score!\nAvoid the katanas. Good luck!");
};
};
};
};
lastKey = _arg1[_local2];
break;
case KeyHandler.K_RIGHT:
case KeyHandler.K_D:
if (atEnd()){
pirateCargo.getItem();
if (!katanas.isOn){
if (pirateCargo.hasMoney){
ticker.update("You may press RIGHT/D again and again to purchase more items (up to four).\nIf you leave this position before reaching the four-item limit,\nyou may not purchase additional items until you get another bag of gold.");
} else {
ticker.update("Go left to deliver the items to the ship.");
};
};
} else {
if (((((((((!(katanas.isOn)) && ((stats.score > 0)))) && (pirateCargo.hasMoney))) && (!(midair)))) && ((xPositionIndex == 0)))){
katanas.turnOn();
ticker.setLives(Stats.LIVES_START);
};
};
lastKey = _arg1[_local2];
break;
};
_local2++;
};
if (!midair){
if (((keyHandler.isDown(lastKey)) && ((((((((lastKey == KeyHandler.K_LEFT)) || ((lastKey == KeyHandler.K_A)))) && ((xPositionIndex > 0)))) || ((((((lastKey == KeyHandler.K_RIGHT)) || ((lastKey == KeyHandler.K_D)))) && ((xPositionIndex < (PirateGame.POSITION_NUM - 1))))))))){
midair = true;
xDirection = ((((lastKey == KeyHandler.K_RIGHT)) || ((lastKey == KeyHandler.K_D)))) ? 1 : -1;
soundButton.play(S.MOVE);
};
};
if (midair){
xOffsetIndex++;
if (xOffsetIndex == POSITION_DELTA){
midair = false;
xOffsetIndex = 0;
xPositionIndex = (xPositionIndex + xDirection);
yIndex = 0;
yDelay = 0;
if (!katanas.isOn){
if (atEnd()){
ticker.update("Press RIGHT/D beside the island to purchase the displayed item.");
} else {
if ((((xPositionIndex == 0)) && ((pirateCargo.items.length > 0)))){
ticker.update("Press LEFT/A beside the ship to return the items.");
};
};
};
};
};
yDelay = ((yDelay + 1) % Y_DELAY);
if (yDelay == 0){
yIndex = ((yIndex + 1) % Y_PERIOD);
};
computeXY();
} else {
_local3 = true;
_local2 = 0;
while (_local2 < PIECES) {
pieces[_local2].update();
_local3 = ((!(pieces[_local2].active)) && (_local3));
_local2++;
};
if (((((((((waiting) && (_local3))) && (piratePirate.doneExploding))) && (pirateCargo.doneExploding))) && (katanas.isEmpty()))){
pirateGame.softReset();
};
};
};
}
public function hitTest(_arg1:Katana):Boolean{
return (bitmap.hitTest(new Point(x, y), 0xFF, katanas.bitmap, new Point(_arg1.x, Math.round(_arg1.y)), 0xFF));
}
public function reset(_arg1:Boolean=false):void{
if (!_arg1){
ticker.update("Press the LEFT/A or RIGHT/D keys to move, SPACE to pause.\nGo right to visit the island.");
};
yDelay = 0;
yIndex = 0;
xPositionIndex = 0;
xOffsetIndex = 0;
midair = false;
lastKey = KeyHandler.K_LEFT;
exploding = false;
waiting = false;
computeXY();
}
public function setPirate(_arg1:PiratePirate):void{
this.piratePirate = _arg1;
}
public function start():void{
reset();
active = true;
}
public function getCenterX():int{
return (((x + Math.floor((WIDTH / 2))) + (xDirection * LOOK_AHEAD)));
}
private function computeXY():void{
x = (xPositions[xPositionIndex] + (xDirection * xOffsets[xOffsetIndex]));
y = ((Y_ORIGIN - bitmap.height) + (midair) ? -(yJumps[xOffsetIndex]) : yOffsets[yIndex]);
}
}
}//package
Section 58
//PirateNinja (PirateNinja)
package {
import flash.display.*;
import flash.geom.*;
public class PirateNinja extends PirateObject {
private var currentY:Number;
private var delay:int;
private var wantX:Number;
private var wantY:Number;
private var active:Boolean;
private var deferredX:Number;
private var deferredY:Number;
private var deferCounter:int;
private var frame:int;
private var bitmap:BitmapData;
private var currentX:Number;
public static const DELAY:int = 8;
public static const WIDTH:int = 32;
public static const HEIGHT:int = 32;
public static const FRAMES:int = 3;
public static const TOLERANCE:Number = 1;
public static const EASE:Number = 0.05;
public static const MARGIN:int = 0;
public function PirateNinja(_arg1:BitmapData){
super(_arg1);
var _local2:Bitmap = new NinjaBitmap();
bitmap = _local2.bitmapData;
active = false;
}
private function reset():void{
frame = 0;
delay = 0;
deferCounter = 0;
currentX = PirateGame.WIDTH;
currentY = PirateGame.HEIGHT;
wantX = currentX;
wantY = currentY;
deferredX = currentX;
deferredY = currentY;
}
public function render():void{
if (active){
flexBitmapData.copyPixels(bitmap, new Rectangle((WIDTH * frame), 0, WIDTH, HEIGHT), new Point(Math.round(currentX), Math.round(currentY)));
};
}
public function update():void{
if (active){
if (deferCounter > 0){
deferCounter--;
if (deferCounter == 0){
wantX = deferredX;
wantY = deferredY;
};
};
currentX = U.ease(currentX, wantX, EASE, TOLERANCE);
currentY = U.ease(currentY, wantY, EASE, TOLERANCE);
delay = ((delay + 1) % DELAY);
if (delay == 0){
frame = ((frame + 1) % FRAMES);
};
};
}
public function start():void{
reset();
active = true;
}
public function setPosition(_arg1:int, _arg2:int):void{
deferredX = (_arg1 - ((WIDTH - Katana.BITMAP_WIDTH) / 2));
deferredY = Math.round(U.randRange(((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) + MARGIN), ((PirateGame.HEIGHT - HEIGHT) - MARGIN)));
deferCounter = _arg2;
}
}
}//package
Section 59
//PirateObject (PirateObject)
package {
import flash.display.*;
public class PirateObject {
public var flexBitmapData:BitmapData;
public function PirateObject(_arg1:BitmapData){
this.flexBitmapData = _arg1;
}
}
}//package
Section 60
//PiratePirate (PiratePirate)
package {
import flash.display.*;
import flash.geom.*;
public class PiratePirate extends PirateObject {
private var delay:int;
private var waterVel:Number;
private var dx:Number;
private var dy:Number;
private var exploding:Boolean;
private var bitmaps:Array;
private var rect:Rectangle;
private var frame:int;
private var active:Boolean;
private var pirateLifeboat:PirateLifeboat;
private var x:Number;
private var y:Number;
public var doneExploding:Boolean;
private var katanas:PirateKatanas;
public static const FRAMES:int = 2;
public static const HEIGHT:int = 32;
public static const DELAY:int = 8;
public static const WIDTH:int = 32;
public function PiratePirate(_arg1:BitmapData, _arg2:PirateLifeboat){
var _local5:BitmapData;
super(_arg1);
this.pirateLifeboat = _arg2;
_arg2.setPirate(this);
var _local3:Bitmap = new PirateBitmap();
bitmaps = [];
var _local4:int;
while (_local4 < (2 * FRAMES)) {
_local5 = new BitmapData(WIDTH, HEIGHT, true, 0);
_local5.copyPixels(_local3.bitmapData, new Rectangle((_local4 * WIDTH), 0, WIDTH, HEIGHT), new Point(0, 0));
bitmaps.push(_local5);
_local4++;
};
rect = new Rectangle(0, 0, WIDTH, HEIGHT);
active = false;
}
public function hitTest(_arg1:Katana):Boolean{
return (bitmaps[frame].hitTest(new Point(x, y), 0xFF, katanas.bitmap, new Point(_arg1.x, Math.round(_arg1.y)), 0xFF));
}
private function computeXY():void{
if (!exploding){
x = (pirateLifeboat.x + ((pirateLifeboat.xDirection == 1)) ? 0 : (PirateLifeboat.WIDTH - WIDTH));
y = (pirateLifeboat.y - HEIGHT);
} else {
if (!doneExploding){
if (y < ((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) - HEIGHT)){
x = (x + dx);
y = (y + dy);
dy = (dy + Explosion.Y_ACCEL);
} else {
y = (y + waterVel);
if (y > (PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE)){
doneExploding = true;
};
};
};
};
}
public function update():void{
var _local1:int;
if (active){
computeXY();
delay = ((delay + 1) % DELAY);
if (delay == 0){
_local1 = ((pirateLifeboat.xDirection == 1)) ? 0 : FRAMES;
frame = (_local1 + ((frame + 1) % FRAMES));
};
};
}
private function reset():void{
frame = 0;
delay = 0;
exploding = false;
computeXY();
}
public function startExploding():void{
dx = U.randRange(-(Explosion.X_VEL_MAX), Explosion.X_VEL_MAX);
dy = -(U.randRange(Explosion.Y_VEL_MIN, Explosion.Y_VEL_MAX));
waterVel = U.randRange(Explosion.WATER_VEL_MIN, Explosion.WATER_VEL_MAX);
exploding = true;
doneExploding = false;
}
public function render():void{
if (active){
flexBitmapData.copyPixels(bitmaps[frame], rect, new Point(Math.round(x), Math.round(y)));
};
}
public function start():void{
reset();
active = true;
}
public function setKatanas(_arg1:PirateKatanas):void{
this.katanas = _arg1;
}
}
}//package
Section 61
//PirateShip (PirateShip)
package {
import flash.display.*;
import flash.geom.*;
public class PirateShip extends PirateObject {
private var rect:Rectangle;
private var yOffsets:Array;
private var yDelay:int;
private var bitmap:BitmapData;
private var yIndex:int;
public static const Y_DELAY:int = 10;
public static const Y_PERIOD:int = PirateWater.Y_PERIOD;
public static const Y_ORIGIN:int = ((PirateWater.Y_ORIGIN + PirateWater.Y_AMPLITUDE) + Y_AMPLITUDE);
public static const Y_AMPLITUDE:int = 1;
public function PirateShip(_arg1:BitmapData){
super(_arg1);
var _local2:Bitmap = new PirateShipBitmap();
bitmap = _local2.bitmapData;
rect = new Rectangle(0, 0, bitmap.width, bitmap.height);
yDelay = 0;
yIndex = 0;
yOffsets = [];
var _local3:int;
while (_local3 < Y_PERIOD) {
yOffsets.push(Math.round((Y_AMPLITUDE * Math.sin((((2 * Math.PI) * _local3) / Y_PERIOD)))));
_local3++;
};
}
public function update():void{
yDelay = ((yDelay + 1) % Y_DELAY);
if (yDelay == 0){
yIndex = ((yIndex + 1) % Y_PERIOD);
};
}
public function render():void{
flexBitmapData.copyPixels(bitmap, rect, new Point(0, ((Y_ORIGIN + yOffsets[yIndex]) - bitmap.height)));
}
}
}//package
Section 62
//PirateShipBitmap (PirateShipBitmap)
package {
import mx.core.*;
public class PirateShipBitmap extends BitmapAsset {
}
}//package
Section 63
//PirateSky (PirateSky)
package {
import flash.display.*;
import flash.geom.*;
public class PirateSky extends PirateObject {
public var isDark:Array;
private var rect:Rectangle;
public var darkness:Array;
private var darkBitmaps:Array;
private var point:Point;
private var bitmap:BitmapData;
public static const DELAY:int = 5;
public function PirateSky(_arg1:BitmapData){
super(_arg1);
var _local2:Bitmap = new SkyBitmap();
bitmap = _local2.bitmapData;
var _local3:Bitmap = new DarkSkyBitmap();
var _local4:Bitmap = new DarkerSkyBitmap();
darkBitmaps = [_local3.bitmapData, _local4.bitmapData];
rect = new Rectangle(0, 0, bitmap.width, bitmap.height);
point = new Point(0, 0);
isDark = [];
darkness = [];
var _local5:int;
while (_local5 < PirateGame.POSITION_NUM) {
isDark.push(false);
darkness.push(0);
_local5++;
};
}
public function update():void{
var _local1:int;
while (_local1 < isDark.length) {
if (((isDark[_local1]) && ((darkness[_local1] < ((darkBitmaps.length * DELAY) - 1))))){
var _local2 = darkness;
var _local3 = _local1;
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
} else {
if (((!(isDark[_local1])) && ((darkness[_local1] > 0)))){
_local2 = darkness;
_local3 = _local1;
_local4 = (_local2[_local3] - 1);
_local2[_local3] = _local4;
};
};
_local1++;
};
}
public function render():void{
flexBitmapData.copyPixels(bitmap, rect, point);
var _local1:int;
while (_local1 < isDark.length) {
if (darkness[_local1] > 0){
flexBitmapData.copyPixels(darkBitmaps[Math.floor((darkness[_local1] / DELAY))], new Rectangle(((_local1 + 1) * PirateGame.POSITION_GAP), 0, PirateGame.POSITION_GAP, bitmap.height), new Point(((_local1 + 1) * PirateGame.POSITION_GAP), 0));
};
_local1++;
};
}
}
}//package
Section 64
//PirateStars (PirateStars)
package {
import flash.display.*;
import flash.geom.*;
public class PirateStars extends PirateObject {
private var offsets:Array;
private var points:Array;
private var directions:Array;
private var bitmap:BitmapData;
public static const FRAMES:int = 40;
public static const MIN_X:int = 5;
public static const MIN_Y:int = 16;
public static const STARS_PER_GAP:int = 2;
public static const MAX_X:int = (PirateGame.POSITION_GAP - 5);
public static const MAX_Y:int = 48;
public function PirateStars(_arg1:BitmapData){
var _local4:int;
var _local5:int;
var _local6:uint;
var _local7:int;
super(_arg1);
bitmap = new BitmapData((3 * FRAMES), 3, true, 0);
var _local2:int;
while (_local2 < FRAMES) {
_local4 = 0;
while (_local4 < 3) {
_local5 = 0;
while (_local5 < 3) {
_local6 = 0xFFFF00;
switch ((Math.abs((_local4 - 1)) + Math.abs((_local5 - 1)))){
case 0:
_local6 = (_local6 + (Math.floor((128 + ((127 * (_local2 + 1)) / FRAMES))) << 24));
break;
case 1:
_local6 = (_local6 + (Math.floor(((0xFF * (_local2 + 1)) / FRAMES)) << 24));
break;
case 2:
_local6 = (_local6 + (Math.floor((0xFF * Math.pow(((_local2 + 1) / FRAMES), 2))) << 24));
break;
};
bitmap.setPixel32(((3 * _local2) + _local4), _local5, _local6);
_local5++;
};
_local4++;
};
_local2++;
};
offsets = [];
points = [];
directions = [];
var _local3:int;
while (_local3 < (PirateGame.POSITION_NUM + 2)) {
_local7 = 0;
while (_local7 < STARS_PER_GAP) {
offsets.push(Math.floor(U.randRange(1, (FRAMES - 1))));
points.push(new Point(Math.floor(((_local3 * PirateGame.POSITION_GAP) + U.randRange(MIN_X, MAX_X))), Math.floor(U.randRange(MIN_Y, MAX_Y))));
directions.push(U.randSign());
_local7++;
};
_local3++;
};
}
public function update():void{
var _local1:int;
while (_local1 < points.length) {
offsets[_local1] = (offsets[_local1] + directions[_local1]);
if (offsets[_local1] == 0){
directions[_local1] = 1;
} else {
if (offsets[_local1] == (FRAMES - 1)){
directions[_local1] = -1;
};
};
_local1++;
};
}
public function render():void{
var _local1:int;
while (_local1 < points.length) {
flexBitmapData.copyPixels(bitmap, new Rectangle((3 * offsets[_local1]), 0, 3, 3), points[_local1]);
_local1++;
};
}
}
}//package
Section 65
//PiratesVsNinjasVendoIsland (PiratesVsNinjasVendoIsland)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class PiratesVsNinjasVendoIsland extends Sprite {
private var lastTime:int;
private var flexBitmap:FlexBitmap;
private var ticker:Ticker;
private var thisTime:int;
private var scoreField:ScoreField;
private var flexBitmapData:FlexBitmapData;
private var itemsField:ItemsField;
private var menu:Menu;
private var soundButton:S;
private var scoreLayer:ScoreLayer;
private var elapsedTime:int;
private var pirateGame:PirateGame;
public var localConnection:LocalConnection;
private var keyHandler:KeyHandler;
private var musicButton:M;
public static const STAGE_WIDTH:int = 700;
public static const STAGE_HEIGHT:int = 500;
public static const MS_PER_FRAME:int = 25;
public function PiratesVsNinjasVendoIsland(){
var _local2:MovieClip;
super();
localConnection = new LocalConnection();
language.Language = Agame.LANGUAGE;
addChild(new Background());
flexBitmapData = new FlexBitmapData();
flexBitmap = new FlexBitmap(flexBitmapData);
addChild(flexBitmap);
keyHandler = new KeyHandler();
ticker = new Ticker();
scoreField = new ScoreField();
itemsField = new ItemsField();
scoreLayer = new ScoreLayer();
menu = new Menu(ticker);
scoreField.y = ((((STAGE_HEIGHT - flexBitmap.height) / 2) - (scoreField.height + itemsField.height)) / 2);
itemsField.y = (scoreField.y + scoreField.height);
ticker.y = ((Ticker.MARGIN + flexBitmap.height) + ((STAGE_HEIGHT - flexBitmap.height) / 2));
menu.y = (Math.floor(((STAGE_HEIGHT - menu.height) / 2)) + Menu.Y_ADJUST);
soundButton = new S();
musicButton = new M(menu);
soundButton.y = ticker.y;
musicButton.y = ticker.y;
soundButton.x = ((STAGE_WIDTH - soundButton.width) - 10);
musicButton.x = ((soundButton.x - musicButton.width) - 5);
pirateGame = new PirateGame(flexBitmapData, keyHandler, ticker, scoreField, itemsField, menu, scoreLayer, soundButton, musicButton);
lastTime = new Date().getTime();
elapsedTime = 0;
addChild(scoreLayer);
addChild(ticker);
addChild(scoreField);
addChild(itemsField);
addChild(menu);
addChild(soundButton);
addChild(musicButton);
addChild(keyHandler);
var _local1:Class = PiratesVsNinjasVendoIsland_AgameIntro;
_local2 = new (_local1);
_local2.addEventListener(MouseEvent.CLICK, onClick);
_local2.x = (0.5 * STAGE_WIDTH);
_local2.y = (0.5 * STAGE_HEIGHT);
addChild(_local2);
addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
}
private function onClick(_arg1:MouseEvent):void{
var _local2:URLRequest;
if (language.language_nr == 2){
_local2 = new URLRequest(language.url1);
} else {
_local2 = new URLRequest((language.url1 + "&utm_term=logo_intro"));
};
navigateToURL(_local2, "_blank");
}
private function onEnterFrame(_arg1:Event):void{
var _local2:Array;
stage.focus = keyHandler;
thisTime = new Date().getTime();
elapsedTime = (elapsedTime + (thisTime - lastTime));
lastTime = thisTime;
while (elapsedTime >= MS_PER_FRAME) {
_local2 = keyHandler.getChangedDown();
pirateGame.update(_local2);
elapsedTime = (elapsedTime - MS_PER_FRAME);
};
pirateGame.render();
}
}
}//package
Section 66
//PiratesVsNinjasVendoIsland_AgameIntro (PiratesVsNinjasVendoIsland_AgameIntro)
package {
import mx.core.*;
import flash.utils.*;
public class PiratesVsNinjasVendoIsland_AgameIntro extends MovieClipLoaderAsset {
public var dataClass:Class;
private static var bytes:ByteArray = null;
public function PiratesVsNinjasVendoIsland_AgameIntro(){
dataClass = PiratesVsNinjasVendoIsland_AgameIntro_dataClass;
super();
initialWidth = (16000 / 20);
initialHeight = (12000 / 20);
}
override public function get movieClipData():ByteArray{
if (bytes == null){
bytes = ByteArray(new dataClass());
};
return (bytes);
}
}
}//package
Section 67
//PiratesVsNinjasVendoIsland_AgameIntro_dataClass (PiratesVsNinjasVendoIsland_AgameIntro_dataClass)
package {
import mx.core.*;
public class PiratesVsNinjasVendoIsland_AgameIntro_dataClass extends ByteArrayAsset {
}
}//package
Section 68
//PirateWater (PirateWater)
package {
import flash.display.*;
import flash.geom.*;
public class PirateWater extends PirateObject {
private var yOffsets:Array;
private var yIndex:int;
private var yDelay:int;
private var bitmap:BitmapData;
public static const Y_AMPLITUDE:int = 2;
public static const STRIP_WIDTH:int = 8;
public static const Y_PERIOD:int = 8;
public static const Y_ORIGIN:int = 126;
public static const Y_DELAY:int = 2;
public static const STRIP_NUM:int = 71;
public function PirateWater(_arg1:BitmapData){
super(_arg1);
var _local2:Bitmap = new WaterBitmap();
bitmap = _local2.bitmapData;
yDelay = 0;
yIndex = 0;
yOffsets = [];
var _local3:int;
while (_local3 < Y_PERIOD) {
yOffsets.push(Math.round((Y_AMPLITUDE * Math.sin((((2 * Math.PI) * _local3) / Y_PERIOD)))));
_local3++;
};
}
public function update(_arg1:int):void{
yDelay = ((yDelay + 1) % Y_DELAY);
if (yDelay == 0){
yIndex = U.fixMod((yIndex + _arg1), Y_PERIOD);
};
}
public function render():void{
var _local1:int;
while (_local1 < STRIP_NUM) {
flexBitmapData.copyPixels(bitmap, new Rectangle((_local1 * STRIP_WIDTH), 0, STRIP_WIDTH, bitmap.height), new Point((_local1 * STRIP_WIDTH), (Y_ORIGIN + yOffsets[((yIndex + _local1) % Y_PERIOD)])));
_local1++;
};
}
}
}//package
Section 69
//S (S)
package {
import mx.core.*;
public class S extends TextButton {
private var loseClass:Class;
public var sounds:Array;
private var moveClass:Class;
private var winClass:Class;
private var catchClass:Class;
public static const MOVE:int = 3;
public static const LOSE:int = 2;
public static const CATCH:int = 0;
public static const WIN:int = 1;
public function S(){
catchClass = S_catchClass;
winClass = S_winClass;
loseClass = S_loseClass;
moveClass = S_moveClass;
sounds = [SoundAsset(new catchClass()), SoundAsset(new winClass()), SoundAsset(new loseClass()), SoundAsset(new moveClass())];
super();
construct("sound");
}
public function play(_arg1:int):void{
if (isOn){
sounds[_arg1].play(25);
};
}
}
}//package
Section 70
//S_catchClass (S_catchClass)
package {
import mx.core.*;
public class S_catchClass extends SoundAsset {
}
}//package
Section 71
//S_loseClass (S_loseClass)
package {
import mx.core.*;
public class S_loseClass extends SoundAsset {
}
}//package
Section 72
//S_moveClass (S_moveClass)
package {
import mx.core.*;
public class S_moveClass extends SoundAsset {
}
}//package
Section 73
//S_winClass (S_winClass)
package {
import mx.core.*;
public class S_winClass extends SoundAsset {
}
}//package
Section 74
//ScoreField (ScoreField)
package {
import flash.text.*;
public class ScoreField extends TextField {
private var textFormat:TextFormat;
public var wantNum:Number;
private var currentNum:Number;
public static const MARGIN:int = 10;
public static const TOLERANCE:Number = 1;
public static const EASE:Number = 0.1;
public function ScoreField(){
x = MARGIN;
wantNum = 0;
currentNum = 0;
textFormat = new TextFormat();
textFormat.color = 0xFFFFFF;
textFormat.font = "Arial";
textFormat.size = 20;
textFormat.align = TextFormatAlign.LEFT;
update();
}
public function start():void{
wantNum = 0;
}
public function update():void{
currentNum = U.ease(currentNum, wantNum, EASE, TOLERANCE);
text = ("Score: " + U.styleNumber(Math.floor(currentNum)));
setTextFormat(textFormat);
autoSize = TextFieldAutoSize.LEFT;
selectable = false;
textColor = 0xFFFFFF;
}
}
}//package
Section 75
//ScoreLayer (ScoreLayer)
package {
import flash.display.*;
public class ScoreLayer extends Sprite {
private var scores:Array;
private var bitmapTexter:BitmapTexter;
public function ScoreLayer(){
bitmapTexter = new BitmapTexter();
scores = [];
}
public function update(_arg1:int):void{
var _local2:int;
while (_local2 < scores.length) {
scores[_local2].update(_arg1);
if (scores[_local2].forRemoval){
removeChild(scores[_local2]);
scores.splice(_local2, 1);
} else {
_local2++;
};
};
}
public function start():void{
var _local1:int;
while (_local1 < scores.length) {
scores[_local1].forRemoval = true;
_local1++;
};
}
public function addScore(_arg1:int, _arg2:int, _arg3:int):void{
var _local4:ScoreSprite = new ScoreSprite(bitmapTexter, _arg1, _arg2, _arg3);
addChild(_local4);
scores.push(_local4);
}
}
}//package
Section 76
//ScoreSprite (ScoreSprite)
package {
import flash.display.*;
public class ScoreSprite extends Sprite {
public var forRemoval:Boolean;
private var lifeStay:int;
private var baseX:int;
private var multiplier:int;
private var lifeMove:int;
public static const LIFE_MOVE:int = 8;
public static const X_DELTA_MIN:int = 0;
public static const X_DELTA_MAX:int = 48;
public static const X_OFFSET:int = -72;
public static const LIFE_STAY:int = 80;
public function ScoreSprite(_arg1:BitmapTexter, _arg2:int, _arg3:int, _arg4:int){
var _local7:Bitmap;
var _local8:Bitmap;
super();
this.multiplier = _arg3;
forRemoval = false;
var _local5:int;
var _local6:Bitmap = _arg1.makeBitmap(("+" + U.styleNumber(_arg2)));
_local6.scaleX = FlexBitmap.SCALE;
_local6.scaleY = FlexBitmap.SCALE;
addChild(_local6);
_local6.x = 0;
_local6.y = 0;
_local5 = (_local5 + _local6.width);
if (_arg3 > 1){
_local7 = _arg1.makeBitmap(new String(_arg3));
addChild(_local7);
_local7.x = _local5;
_local7.y = 0;
_local5 = (_local5 + _local7.width);
_local8 = _arg1.makeBitmap(("=" + U.styleNumber(_arg4)));
_local8.scaleX = FlexBitmap.SCALE;
_local8.scaleY = FlexBitmap.SCALE;
addChild(_local8);
_local8.x = _local5;
_local8.y = 0;
};
baseX = ((X_OFFSET + (FlexBitmap.SCALE * PirateGame.POSITION_GAP)) + Math.floor(U.randRange(X_DELTA_MIN, X_DELTA_MAX)));
lifeMove = LIFE_MOVE;
lifeStay = LIFE_STAY;
x = -(width);
y = Math.floor((((PiratesVsNinjasVendoIsland.STAGE_HEIGHT - (FlexBitmap.SCALE * FlexBitmapData.HEIGHT)) / 2) + (FlexBitmap.SCALE * ((PirateWater.Y_ORIGIN - PirateLifeboat.HEIGHT) - (_arg3 * PirateCargo.HEIGHT)))));
}
public function update(_arg1:int):void{
x = (baseX - (FlexBitmap.SCALE * _arg1));
if (lifeMove > 0){
baseX = (baseX + lifeMove--);
} else {
if (lifeStay-- == 0){
forRemoval = true;
};
};
}
}
}//package
Section 77
//SkyBitmap (SkyBitmap)
package {
import mx.core.*;
public class SkyBitmap extends BitmapAsset {
}
}//package
Section 78
//Stats (Stats)
package {
public class Stats {
public var items:int;
public var score:int;
public var lives:int;
public static const LIVES_START:int = 3;
public function start():void{
score = 0;
items = 0;
lives = LIVES_START;
}
}
}//package
Section 79
//TextButton (TextButton)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class TextButton extends Sprite {
private var textFormat:TextFormat;
private var sprite:Sprite;
private var textField:TextField;
public var isOn:Boolean;// = true
public function TextButton(){
textFormat = new TextFormat();
textField = new TextField();
sprite = new Sprite();
super();
}
public function onClick(_arg1:MouseEvent):void{
isOn = !(isOn);
textField.backgroundColor = (isOn) ? 0x8000 : 0x800000;
whenPressed();
}
public function whenPressed():void{
}
public function construct(_arg1:String):void{
textFormat.align = TextFormatAlign.LEFT;
textFormat.font = "Arial";
textFormat.bold = true;
textFormat.size = 10;
textFormat.color = 0xFFFFFF;
textField.border = true;
textField.borderColor = 0xFFFFFF;
textField.background = true;
textField.backgroundColor = 0x8000;
textField.text = _arg1;
textField.autoSize = TextFieldAutoSize.LEFT;
textField.setTextFormat(textFormat);
textField.x = 0;
textField.y = 0;
addChild(textField);
sprite.graphics.beginFill(0, 0);
sprite.graphics.drawRect(0, 0, textField.width, textField.height);
sprite.graphics.endFill();
sprite.x = 0;
sprite.y = 0;
sprite.buttonMode = true;
addChild(sprite);
sprite.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
}
}
}//package
Section 80
//Ticker (Ticker)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.text.*;
public class Ticker extends Sprite {
private var delay:int;
private var textFormat:TextFormat;
private var textField:TextField;
private var numLives:int;
private var pirateData:BitmapData;
private var displayLives:Boolean;
private var oldDisplayLives:Boolean;
private var frame:int;
private var bitmap:Bitmap;
private var oldText:String;
private var backgroundData:BitmapData;
private var bitmapData:BitmapData;
public static const MARGIN:int = 10;
public function Ticker(){
frame = 0;
delay = 0;
var _local1:Bitmap = new PirateBitmap();
pirateData = _local1.bitmapData;
backgroundData = new BitmapData((Stats.LIVES_START * PiratePirate.WIDTH), PiratePirate.HEIGHT, false, 0);
bitmapData = new BitmapData((Stats.LIVES_START * PiratePirate.WIDTH), PiratePirate.HEIGHT, false, 0);
bitmap = new Bitmap(bitmapData);
addChild(bitmap);
bitmap.x = 0;
bitmap.y = 0;
x = MARGIN;
textField = new TextField();
textField.x = 0;
textField.y = 0;
addChild(textField);
textFormat = new TextFormat();
textFormat.color = 0xFFFFFF;
textFormat.font = "Arial";
textFormat.size = 12;
textFormat.align = TextFormatAlign.LEFT;
oldText = "";
update();
addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
}
public function setLives(_arg1:int):void{
update();
numLives = _arg1;
displayLives = true;
}
public function update(_arg1:String=" "):void{
displayLives = false;
textField.text = _arg1;
textField.setTextFormat(textFormat);
textField.autoSize = TextFieldAutoSize.LEFT;
textField.selectable = false;
textField.textColor = 0xFFFFFF;
}
public function saveText():void{
oldText = textField.text;
oldDisplayLives = displayLives;
}
private function onEnterFrame(_arg1:Event):void{
var _local2:int;
bitmapData.copyPixels(backgroundData, new Rectangle(0, 0, (Stats.LIVES_START * PiratePirate.WIDTH), PiratePirate.HEIGHT), new Point(0, 0));
if (displayLives){
_local2 = 0;
while (_local2 < numLives) {
bitmapData.copyPixels(pirateData, new Rectangle((frame * PiratePirate.WIDTH), 0, PiratePirate.WIDTH, PiratePirate.HEIGHT), new Point((_local2 * PiratePirate.WIDTH), 0));
_local2++;
};
delay = ((delay + 1) % PiratePirate.DELAY);
if (delay == 0){
frame = ((frame + 1) % 1);
};
};
}
public function returnText():void{
update(oldText);
displayLives = oldDisplayLives;
}
}
}//package
Section 81
//U (U)
package {
public class U {
public static function randSign():int{
return (((Math.random() < 0.5)) ? 1 : -1);
}
public static function constrain(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return (((_arg1 < _arg2)) ? _arg2 : ((_arg1 > _arg3)) ? _arg3 : _arg1);
}
public static function randRange(_arg1:Number, _arg2:Number):Number{
return ((_arg1 + (Math.random() * (_arg2 - _arg1))));
}
public static function styleNumber(_arg1:int):String{
var _local2:String = new String(_arg1);
var _local3 = "";
var _local4:int = (_local2.length % 3);
var _local5:int = Math.floor((_local2.length / 3));
if (_local4 > 0){
_local3 = (_local3 + _local2.slice(0, _local4));
if (_local5 > 0){
_local3 = (_local3 + ",");
};
};
var _local6:int;
while (_local6 < _local5) {
_local3 = (_local3 + _local2.slice((_local4 + (3 * _local6)), (_local4 + (3 * (_local6 + 1)))));
if (_local6 < (_local5 - 1)){
_local3 = (_local3 + ",");
};
_local6++;
};
return (_local3);
}
public static function fixMod(_arg1:int, _arg2:int):int{
var _local3:int = (_arg1 % _arg2);
return (((_local3 >= 0)) ? _local3 : (_arg2 + _local3));
}
public static function ease(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number = (_arg2 - _arg1);
return (((Math.abs(_local5) < _arg4)) ? _arg2 : (_arg1 + (_arg3 * (_arg2 - _arg1))));
}
}
}//package
Section 82
//WaterBitmap (WaterBitmap)
package {
import mx.core.*;
public class WaterBitmap extends BitmapAsset {
}
}//package