Section 1
//_noPlayerSplash_20 (BountyKillers_fla._noPlayerSplash_20)
package BountyKillers_fla {
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
import flash.external.*;
public dynamic class _noPlayerSplash_20 extends MovieClip {
public var yourVersionTxt:TextField;
public var adobeBtn:MovieClip;
public function _noPlayerSplash_20(){
addFrameScript(0, frame1);
}
public function (_arg1:MouseEvent){
var url:String;
var success:Boolean;
var event = _arg1;
url = new String("http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash/");
success = false;
if (((ExternalInterface.available) && (!((Capabilities.playerType == "External"))))){
try {
ExternalInterface.call("window.open", url, "win", "");
success = true;
} catch(error:Error) {
} catch(error:SecurityError) {
};
};
if (success != true){
navigateToURL(new URLRequest(url), "_SELF");
};
}
function frame1(){
MovieClip(this.getChildByName("adobeBtn")).addEventListener(MouseEvent.MOUSE_UP, );
}
}
}//package BountyKillers_fla
Section 2
//audio_button_287 (BountyKillers_fla.audio_button_287)
package BountyKillers_fla {
import flash.display.*;
public dynamic class audio_button_287 extends MovieClip {
public function audio_button_287(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package BountyKillers_fla
Section 3
//barravita_238 (BountyKillers_fla.barravita_238)
package BountyKillers_fla {
import flash.display.*;
public dynamic class barravita_238 extends MovieClip {
public var maskLife:MovieClip;
}
}//package BountyKillers_fla
Section 4
//CMG_Logo_Animation_1 (BountyKillers_fla.CMG_Logo_Animation_1)
package BountyKillers_fla {
import flash.display.*;
import flash.geom.*;
import flash.text.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class CMG_Logo_Animation_1 extends MovieClip {
public var CMG_MonkeyBlink:MovieClip;
public var CMG_HomePageLink:SimpleButton;
public var
:Timer;
public var CMG_LoadingWidget:MovieClip;
public function CMG_Logo_Animation_1(){
addFrameScript(0, frame1, 80,
, 81,
);
}
public function goToUrl(_arg1:String):void{
var success:Boolean;
var url = _arg1;
success = false;
if (((ExternalInterface.available) && (!((Capabilities.playerType == "External"))))){
try {
ExternalInterface.call("window.open", url, "win", "");
success = true;
} catch(error:Error) {
} catch(error:SecurityError) {
};
};
if (success != true){
navigateToURL(new URLRequest(url), "_BLANK");
};
}
function
(){
stop();
.addEventListener(TimerEvent.TIMER, );
.start();
}
function
(){
.stop();
MovieClip(parent).nextFrame();
}
public function
(_arg1:MouseEvent):void{
goToUrl("http://www.crazymonkeygames.com");
}
function frame1(){
MovieClip(parent).stop();
CMG_HomePageLink.addEventListener(MouseEvent.MOUSE_UP,
);
addEventListener(Event.ENTER_FRAME, );
= new Timer(800);
}
public function (_arg1:Event):void{
var _local2:Number;
var _local3:Number;
_local2 = CMG_HomePageLink.stage.loaderInfo.bytesLoaded;
_local3 = CMG_HomePageLink.stage.loaderInfo.bytesTotal;
CMG_LoadingWidget.CMG_LoadingBar.bar.scaleX = (_local2 / _local3);
if (_local2 == _local3){
CMG_LoadingWidget.nextFrame();
removeEventListener(Event.ENTER_FRAME, );
};
}
public function (_arg1:TimerEvent):void{
var _local2:Number;
_local2 = Math.random();
if (_local2 < 0.3){
CMG_MonkeyBlink.play();
};
}
}
}//package BountyKillers_fla
Section 5
//CMG_monkey_blink_19 (BountyKillers_fla.CMG_monkey_blink_19)
package BountyKillers_fla {
import flash.display.*;
public dynamic class CMG_monkey_blink_19 extends MovieClip {
public function CMG_monkey_blink_19(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package BountyKillers_fla
Section 6
//comboText_24 (BountyKillers_fla.comboText_24)
package BountyKillers_fla {
import flash.display.*;
import flash.text.*;
public dynamic class comboText_24 extends MovieClip {
public var comboValueTxt:TextField;
}
}//package BountyKillers_fla
Section 7
//flyFireGranade_257 (BountyKillers_fla.flyFireGranade_257)
package BountyKillers_fla {
import flash.display.*;
public dynamic class flyFireGranade_257 extends MovieClip {
public function flyFireGranade_257(){
addFrameScript(32, frame33);
}
function frame33(){
stop();
}
}
}//package BountyKillers_fla
Section 8
//flyGranade_255 (BountyKillers_fla.flyGranade_255)
package BountyKillers_fla {
import flash.display.*;
public dynamic class flyGranade_255 extends MovieClip {
public function flyGranade_255(){
addFrameScript(32, frame33);
}
function frame33(){
stop();
}
}
}//package BountyKillers_fla
Section 9
//INTROFOOFASTUDIOS_309 (BountyKillers_fla.INTROFOOFASTUDIOS_309)
package BountyKillers_fla {
import flash.display.*;
import flash.geom.*;
import flash.text.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class INTROFOOFASTUDIOS_309 extends MovieClip {
public var mcBtn_foofaz:pulsanteschermataintro;
public var
:DisplayObject;
public function INTROFOOFASTUDIOS_309(){
addFrameScript(0, frame1, 106, , 142, );
}
function (){
}
function frame1(){
= getChildByName("mcBtn_foofaz");
.addEventListener(MouseEvent.MOUSE_UP, );
}
function (){
}
public function (_arg1:Event):void{
var _local2:URLRequest;
var _local3:URLVariables;
_local2 = new URLRequest("http://www.foofa.net");
_local2.method = URLRequestMethod.POST;
_local3 = new URLVariables();
_local3.fromGame = 11;
_local2.data = _local3;
navigateToURL(_local2, "_BLANK");
}
}
}//package BountyKillers_fla
Section 10
//load_barMC_12 (BountyKillers_fla.load_barMC_12)
package BountyKillers_fla {
import flash.display.*;
public dynamic class load_barMC_12 extends MovieClip {
public var bar:MovieClip;
}
}//package BountyKillers_fla
Section 11
//MainTimeline (BountyKillers_fla.MainTimeline)
package BountyKillers_fla {
import flash.display.*;
import flash.geom.*;
import flash.text.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var :Boolean;
public var playerCheckInst:MovieClip;
public var cmgPreloader:MovieClip;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, , 5, , 6, , 7, , 8,
, 9, , 10, , 11, , 12, , 13, , 14, , 15, , 16,
, 17, , 18, , 19, , 20, , 21, , 22, , 23, , 24, , 25, , 26, , 27, , 28, , 29, frame30, 30, , 31, , 32, frame33, 33,
, 34,
, 35, , 36, , 37,
, 38, , 39, , 40, , 41,
, 42, , 43, , 44, , 188, );
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function frame3(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function frame1(){
= false;
playerCheckInst.visible = true;
if (FlashPlayerVersion.Check(playerCheckInst.yourVersionTxt, 0, 115, 0, 9)){
removeChild(playerCheckInst);
MochiBot.track(this, "85552efb");
};
stop();
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function
(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function frame4(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function
(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function frame2(){
SoundMixer.stopAll();
while (this.numChildren > 0) {
this.removeChildAt((this.numChildren - 1));
};
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function frame30(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function
(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function
(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function frame33(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function
(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function
(){
SoundMixer.stopAll();
gotoAndPlay((currentFrame + 1));
}
function (){
stop();
}
}
}//package BountyKillers_fla
Section 12
//popup_240 (BountyKillers_fla.popup_240)
package BountyKillers_fla {
import flash.display.*;
public dynamic class popup_240 extends MovieClip {
public function popup_240(){
addFrameScript(0, frame1, 57,
);
}
function frame1(){
stop();
}
function
(){
stop();
}
}
}//package BountyKillers_fla
Section 13
//Preloader_2 (BountyKillers_fla.Preloader_2)
package BountyKillers_fla {
import flash.display.*;
import flash.events.*;
public dynamic class Preloader_2 extends MovieClip {
public var CMG_LoadingBar:MovieClip;
public var play_btn:SimpleButton;
public function Preloader_2(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
play_btn.addEventListener(MouseEvent.MOUSE_UP, );
}
public function (_arg1:MouseEvent):void{
MovieClip(parent).gotoAndStop(82);
}
}
}//package BountyKillers_fla
Section 14
//MD5 (CMG_AS3.MD5)
package CMG_AS3 {
public class MD5 {
public static const HEX_FORMAT_LOWERCASE:uint = 0;
public static const HEX_FORMAT_UPPERCASE:uint = 1;
public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = "";
public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "=";
public static var hexcase:uint = 0;
public static var b64pad:String = "";
public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3));
}
public static function binl_md5(_arg1:Array, _arg2:Number):Array{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32)));
_arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2;
_local3 = 1732584193;
_local4 = -271733879;
_local5 = -1732584194;
_local6 = 271733878;
_local7 = 0;
while (_local7 < _arg1.length) {
_local8 = _local3;
_local9 = _local4;
_local10 = _local5;
_local11 = _local6;
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551);
_local3 = safe_add(_local3, _local8);
_local4 = safe_add(_local4, _local9);
_local5 = safe_add(_local5, _local10);
_local6 = safe_add(_local6, _local11);
_local7 = (_local7 + 16);
};
return ([_local3, _local4, _local5, _local6]);
}
public static function str2rstr_utf16le(_arg1:String):String{
var _local2:String;
var _local3:Number;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF)));
_local3++;
};
return (_local2);
}
public static function hex_hmac_md5(_arg1:String, _arg2:String):String{
return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2))));
}
public static function binl2rstr(_arg1:Array):String{
var _local2:String;
var _local3:Number;
_local2 = "";
_local3 = 0;
while (_local3 < (_arg1.length * 32)) {
_local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF)));
_local3 = (_local3 + 8);
};
return (_local2);
}
public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function rstr2binl(_arg1:String):Array{
var _local2:Array;
var _local3:Number;
_local2 = new Array((_arg1.length >> 2));
_local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3] = 0;
_local3++;
};
_local3 = 0;
while (_local3 < (_arg1.length * 8)) {
_local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | ((_arg1.charCodeAt((_local3 / 8)) & 0xFF) << (_local3 % 32)));
_local3 = (_local3 + 8);
};
return (_local2);
}
public static function md5_vm_test():Boolean{
return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"));
}
public static function b64_md5(_arg1:String):String{
return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1))));
}
public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{
return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3));
}
public static function hex_md5(_arg1:String):String{
return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1))));
}
public static function bit_rol(_arg1:Number, _arg2:Number):Number{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
public static function encrypt(_arg1:String):String{
return (hex_md5(_arg1));
}
public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function rstr2hex(_arg1:String):String{
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:Number;
_local2 = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef";
_local3 = "";
_local5 = 0;
while (_local5 < _arg1.length) {
_local4 = _arg1.charCodeAt(_local5);
_local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15))));
_local5++;
};
return (_local3);
}
public static function any_md5(_arg1:String, _arg2:String):String{
return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2));
}
public static function b64_hmac_md5(_arg1:String, _arg2:String):String{
return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2))));
}
public static function rstr2b64(_arg1:String):String{
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
_local3 = "";
_local4 = _arg1.length;
_local5 = 0;
while (_local5 < _local4) {
_local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0);
_local7 = 0;
while (_local7 < 4) {
if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){
_local3 = (_local3 + b64pad);
} else {
_local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63)));
};
_local7++;
};
_local5 = (_local5 + 3);
};
return (_local3);
}
public static function safe_add(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
var _local4:Number;
_local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF));
_local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16));
return (((_local4 << 16) | (_local3 & 0xFFFF)));
}
public static function str2rstr_utf8(_arg1:String):String{
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = "";
_local3 = -1;
while (++_local3 < _arg1.length) {
_local4 = _arg1.charCodeAt(_local3);
_local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0;
if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){
_local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023));
_local3++;
};
if (_local4 <= 127){
_local2 = (_local2 + String.fromCharCode(_local4));
} else {
if (_local4 <= 2047){
_local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63))));
} else {
if (_local4 <= 0xFFFF){
_local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63))));
} else {
if (_local4 <= 2097151){
_local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63))));
};
};
};
};
};
return (_local2);
}
public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{
var _local3:Array;
var _local4:Array;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = rstr2binl(_arg1);
if (_local3.length > 16){
_local3 = binl_md5(_local3, (_arg1.length * 8));
};
_local4 = new Array(16);
_local5 = new Array(16);
_local6 = 0;
while (_local6 < 16) {
_local4[_local6] = (_local3[_local6] ^ 909522486);
_local5[_local6] = (_local3[_local6] ^ 1549556828);
_local6++;
};
_local7 = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8)));
return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128))));
}
public static function str2rstr_utf16be(_arg1:String):String{
var _local2:String;
var _local3:Number;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF)));
_local3++;
};
return (_local2);
}
public static function rstr2any(_arg1:String, _arg2:String):String{
var _local3:Number;
var _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Array;
var _local9:Array;
var _local10:String;
_local3 = _arg2.length;
_local4 = [];
_local9 = new Array((_arg1.length / 2));
_local5 = 0;
while (_local5 < _local9.length) {
_local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1)));
_local5++;
};
while (_local9.length > 0) {
_local8 = [];
_local7 = 0;
_local5 = 0;
while (_local5 < _local9.length) {
_local7 = ((_local7 << 16) + _local9[_local5]);
_local6 = Math.floor((_local7 / _local3));
_local7 = (_local7 - (_local6 * _local3));
if ((((_local8.length > 0)) || ((_local6 > 0)))){
_local8[_local8.length] = _local6;
};
_local5++;
};
_local4[_local4.length] = _local7;
_local9 = _local8;
};
_local10 = "";
_local5 = (_local4.length - 1);
while (_local5 >= 0) {
_local10 = (_local10 + _arg2.charAt(_local4[_local5]));
_local5--;
};
return (_local10);
}
public static function rstr_md5(_arg1:String):String{
return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8))));
}
}
}//package CMG_AS3
Section 15
//ScoreSubmitter (CMG_AS3.ScoreSubmitter)
package CMG_AS3 {
import flash.events.*;
import flash.net.*;
public class ScoreSubmitter extends EventDispatcher {
private var
:URLLoader;// = null
public static const RETURNCODE_SUCCESS = 1;
public static const RETURNCODE_REJECTED = 2;
public static const RETURNCODE_INTERNALERROR = 5;
public static const URL_SUBMITSCORE = "http://scores.crazymonkeygames.com/hs/regscores2.php";
public static const URL_UPDATEGAME = "http://scores.crazymonkeygames.com/hs/pleaseupdate.php";
public static const SCORE_RESPONSE:String = "score_response";
public static const RETURNCODE_WORKING = 0;
public static const RETURNCODE_WRONGVERSION = 3;
public static const URL_VIEWSCORES = "http://scores.crazymonkeygames.com/hs/listscores.php";
public static const RETURNCODE_NETWORKERROR = 4;
public static var gameVersion:String = "";
public static var gameValidationCode:String = "";
public static var gameId:uint = 0;
public function ScoreSubmitter(){
= null;
super();
}
private function (_arg1:Event){
dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_NETWORKERROR));
}
public function submitScore(_arg1:String, _arg2:Number, _arg3:String=null):void{
var _local4:*;
var _local5:URLRequest;
_arg1 = Utilities.trim(_arg1);
gameVersion = Utilities.trim(gameVersion);
if (_arg3 == null){
_arg3 = "";
} else {
_arg3 = Utilities.trim(_arg3);
};
gameValidationCode = Utilities.trim(gameValidationCode);
if ((((((gameId < 1)) || ((gameVersion == "")))) || ((gameValidationCode == "")))){
dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_REJECTED));
return;
};
dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_WORKING));
_local4 = new URLVariables();
_local4.name = _arg1;
_local4.score = _arg2;
_local4.gameId = gameId;
_local4.gameVersion = gameVersion;
_local4.special = _arg3;
_local4.key = MD5.encrypt(((((((((_arg1 + "|") + _arg2) + "|") + gameId) + "|") + _arg3) + "|") + gameValidationCode));
_local5 = new URLRequest(URL_SUBMITSCORE);
_local5.method = URLRequestMethod.POST;
_local5.data = _local4;
= new URLLoader();
.addEventListener("complete", );
.addEventListener("ioError", );
.load(_local5);
}
private function (_arg1:Event):void{
var _local2:URLVariables;
var _local3:*;
_local2 = new URLVariables(
.data.replace("&", ""));
_local3 = Utilities.trim(_local2.ok);
if (_local3 == 1){
dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_SUCCESS));
} else {
if (_local3 == 0){
dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_REJECTED));
} else {
if (_local3 == 2){
dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_WRONGVERSION));
} else {
dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_INTERNALERROR));
};
};
};
}
public static function loadHighScorePage():void{
Utilities.goToUrl(((URL_VIEWSCORES + "?id=") + gameId));
}
public static function loadUpdatePage(){
Utilities.goToUrl(((URL_VIEWSCORES + "?id=") + gameId));
}
}
}//package CMG_AS3
Section 16
//ServerResponseEvent (CMG_AS3.ServerResponseEvent)
package CMG_AS3 {
import flash.events.*;
public class ServerResponseEvent extends Event {
public var returnCode:uint;
public function ServerResponseEvent(_arg1:String, _arg2:uint){
super(_arg1, false, false);
returnCode = _arg2;
}
}
}//package CMG_AS3
Section 17
//Utilities (CMG_AS3.Utilities)
package CMG_AS3 {
import flash.net.*;
import flash.system.*;
import flash.external.*;
public class Utilities {
public static function trim(_arg1:String):String{
var _local2:*;
var _local3:*;
_local2 = 0;
while (_arg1.charCodeAt(_local2) < 33) {
_local2++;
};
_local3 = (_arg1.length - 1);
while (_arg1.charCodeAt(_local3) < 33) {
_local3--;
};
return (_arg1.substring(_local2, (_local3 + 1)));
}
public static function goToUrl(_arg1:String):void{
var success:Boolean;
var url = _arg1;
success = false;
if (((ExternalInterface.available) && (!((Capabilities.playerType == "External"))))){
try {
ExternalInterface.call("window.open", url, "win", "");
success = true;
} catch(error:Error) {
} catch(error:SecurityError) {
};
};
if (success != true){
navigateToURL(new URLRequest(url), "_BLANK");
};
}
}
}//package CMG_AS3
Section 18
//MemoryCrypto (com.electrotank.util.MemoryCrypto)
package com.electrotank.util {
public class MemoryCrypto {
private static var ciao:Number;
public static function incrementValue(_arg1:String, _arg2:Number):Number{
ciao = (ciao + _arg2);
return (ciao);
}
public static function divideValue(_arg1:String, _arg2:Number):Number{
ciao = (ciao / _arg2);
return (ciao);
}
public static function getValue(_arg1:String):Number{
return (ciao);
}
public static function multiplyValue(_arg1:String, _arg2:Number):Number{
ciao = (ciao * _arg2);
return (ciao);
}
public static function decrementValue(_arg1:String, _arg2:Number):Number{
ciao = (ciao - _arg2);
return (ciao);
}
public static function setValue(_arg1:String, _arg2:Number):Number{
ciao = _arg2;
return (_arg2);
}
}
}//package com.electrotank.util
Section 19
//PathFinder (FoofaAI.PathFinder)
package FoofaAI {
import flash.geom.*;
import FoofaDataTypes.*;
public class PathFinder {
private var :Boolean;
private var :Array_Contains;
private var :uint;
private var
:PriorityQueue_DirectAccess;
private var :Object;
private var :Boolean;
private var :PathFindingGrid;
private var :Point;
private var :PathfindingNode;
private var :Point;
private var
:Array;
public function PathFinder(_arg1:PathFindingGrid, _arg2:Number){
if (_arg2 <= 0){
= uint.MAX_VALUE;
} else {
= _arg2;
};
= _arg1;
= new PriorityQueue_DirectAccess();
= new Array_Contains();
= new Array();
= false;
= false;
= new Point();
= new Point();
= new PathfindingNode(new Point(0, 0));
}
public function (_arg1:Point):Boolean{
return (.IsWalkable(_arg1));
}
public function IsWalkablePointEx(_arg1:Number, _arg2:Number):Boolean{
return (.IsWalkableEx(.FromPixelXToGridX(_arg1), .FromPixelYToGridY(_arg2)));
}
public function IsWalkableEx(_arg1:uint, _arg2:uint):Boolean{
return (.IsWalkableEx(_arg1, _arg2));
}
private function (_arg1:Point, _arg2:Point):Point{
var _local3:Point;
if (_arg1 == _arg2){
return (new Point(0, 0));
};
_local3 = new Point(Math.round((_arg1.x - _arg2.x)), Math.round((_arg1.y - _arg2.y)));
return (_local3);
}
private function GetNeighbourhood(_arg1:Number, _arg2:Number):Number{
.splice(0,
.length);
return (.GetNeighbourhood(_arg1, _arg2,
));
}
public function Move(_arg1:Point, _arg2:Point, _arg3:Array):Number{
var _local4:Point;
var _local5:Point;
var _local6:Point;
var _local7:Point;
var _local8:Number;
var _local9:Number;
if (!){
.clear();
.clear();
_arg3.splice(0, _arg3.length);
= true;
= false;
.x = .FromPixelPosToGridX(_arg1);
.y = .FromPixelPosToGridY(_arg1);
.x = .FromPixelPosToGridX(_arg2);
.y = .FromPixelPosToGridY(_arg2);
if ((((.IsWalkableEx( .x, .y) == false)) || ((.IsWalkableEx(.x, .y) == false)))){
return (-1);
};
= new PathfindingNode();
.g = 0;
.h = (, );
.f = .h;
.SetParentCoords(PathfindingNode.DUMMYPARENT);
.Insert(, .f);
} else {
if (((((((!(( .x == .FromPixelPosToGridX(_arg2)))) && (!(( .y == .FromPixelPosToGridY(_arg2)))))) && (!((.FromPixelPosToGridX(_arg1) == .x))))) && (!((.FromPixelPosToGridY(_arg1) == .y))))){
= true;
= false;
.clear();
.clear();
};
};
this.();
if (.Size() > this.){
return (-1);
};
if (!){
if (){
_local5 = new Point();
_local5.x = .GetPosition().x;
_local5.y = .GetPosition().y;
while (!((((.GetParentCoords().x == PathfindingNode.DUMMYPARENT.x)) && ((.GetParentCoords().y == PathfindingNode.DUMMYPARENT.y))))) {
_local4 = new Point(.GetParentCoords().x, .GetParentCoords().y);
_local8 =
.Find(_local4);
_local9 = .Find(_local4);
_local6 = (_local5, .GetPosition());
_local7 = (.GetPosition(), _local4);
if (_local6 != _local7){
_arg3[_arg3.length] = new Point(.c.x, .c.y);
};
_local5.x = .GetPosition().x;
_local5.y = .GetPosition().y;
.SetPosition(_local4);
.SetParentCoords(.GetElementAt(_local9).GetParentCoords());
};
_arg3[_arg3.length] = new Point(.c.x, .c.y);
.clear();
.clear();
return (1);
} else {
.clear();
.clear();
return (-1);
};
};
return (0);
}
private function (){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:PathfindingNode;
var _local6:Number;
if (!
.IsEmpty()){
= new Object();
=
.RemoveTop();
= new PathfindingNode(new Point(0, 0));
.SetFromObject();
.push();
if (.Size() > 1000){
return (-1);
};
if ((((.GetPosition().x == .x)) && ((.GetPosition().y == .y)))){
= false;
= true;
return;
};
_local1 = GetNeighbourhood(.GetPosition().x, .GetPosition().y);
if (_local1 < 0){
} else {
if (_local1 > 8){
};
};
_local6 = 0;
while (_local6 < _local1) {
_local2 =
.Find(
[_local6]);
_local3 = .Find2(
[_local6]);
if ((((_local2 == -1)) && ((_local3 == -1)))){
_local5 = new PathfindingNode(
[_local6]);
_local5.g = (.c, _local5.c);
_local5.h = (_local5.c, );
_local5.f = (_local5.g + _local5.h);
_local5.SetParentCoords(.c);
.Insert(_local5, _local5.f);
} else {
if (_local3 == -1){
_local4 = (.c,
[_local6]);
if (_local4 <
.GetElementAt(_local2).g){
_local5 = new PathfindingNode(
.GetElementAt(_local2).c);
_local5.SetParentCoords(.c);
_local5.g = _local4;
_local5.g =
.GetElementAt(_local2).h;
_local5.f = (_local5.g + _local5.h);
.SetElementAt(_local2, _local5);
};
};
};
_local6++;
};
} else {
= false;
= false;
};
}
private function (_arg1:Point, _arg2:Point){
if ((((_arg1.x == _arg2.x)) && ((_arg1.y == _arg2.y)))){
return (0);
};
if ((((((_arg1.x == _arg2.x)) && (!((_arg1.y == _arg2.y))))) || ((((_arg1.y == _arg2.y)) && (!((_arg1.x == _arg2.x))))))){
return (10);
};
return (14);
}
private function (_arg1:Point, _arg2:Point){
return ((10 * (Math.abs((_arg1.x - _arg2.x)) + Math.abs((_arg1.y - _arg2.y)))));
}
public function (_arg1:Point):void{
var _local2:Number;
var _local3:Number;
var _local4:uint;
var _local5:uint;
var _local6:uint;
_local2 = .FromPixelPosToGridX(_arg1);
_local3 = .FromPixelPosToGridY(_arg1);
_local4 = GetNeighbourhood(_local2, _local3);
_local6 = 0;
while (_local6 < _local4) {
_local5 = .FromGridPosToGridIndex(
[_local6].x,
[_local6].x);
_local6++;
};
}
}
}//package FoofaAI
Section 20
//PathFindingGrid (FoofaAI.PathFindingGrid)
package FoofaAI {
import FoofaGeom.*;
import flash.geom.*;
public class PathFindingGrid extends SpatialGrid {
private var :Boolean;
private var
:Array;
public function PathFindingGrid(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Array){
= false;
super(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5):void{
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:Number;
var _local13:Boolean;
var _local14:Number;
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg3 < 0){
_arg3 = 0;
};
if (_arg2 < 0){
_arg2 = 0;
};
if (_arg4 < 0){
_arg4 = 0;
};
_local13 = (Math.abs((_arg4 - _arg2)) > Math.abs((_arg3 - _arg1)));
if (_local13){
_local14 = _arg1;
_arg1 = _arg2;
_arg2 = _local14;
_local14 = _arg3;
_arg3 = _arg4;
_arg4 = _local14;
};
if (_arg1 > _arg3){
_local14 = _arg1;
_arg1 = _arg3;
_arg3 = _local14;
_local14 = _arg2;
_arg2 = _arg4;
_arg4 = _local14;
};
_local7 = (_arg3 - _arg1);
_local8 = Math.abs((_arg4 - _arg2));
_local9 = (-(_local7) / 2);
_local12 = _arg2;
if (_arg2 < _arg4){
_local10 = 1;
} else {
_local10 = -1;
};
_local11 = _arg1;
while (_local11 <= _arg3) {
if (_local13){
if ((((((((_local12 < xCellCount)) && ((_local12 > 0)))) && ((_local11 < yCellCount)))) && ((_local11 > 0)))){
(_local12, _local11, _arg5);
};
} else {
if ((((((((_local11 < xCellCount)) && ((_local11 > 0)))) && ((_local12 < yCellCount)))) && ((_local12 > 0)))){
(_local11, _local12, _arg5);
};
};
_local9 = (_local9 + _local8);
if (_local9 > 0){
_local12 = (_local12 + _local10);
_local9 = (_local9 - _local7);
};
_local11++;
};
}
public function (_arg1:Point, _arg2:Boolean):void{
var _local3:uint;
var _local4:uint;
_local3 = FromPixelPosToGridX(_arg1);
_local4 = FromPixelPosToGridY(_arg1);
(_local3, _local4, _arg2);
}
public function
(_arg1:Array):void{
if (_arg1.length == cellArray.length){
= true;
= _arg1;
};
}
public function (_arg1:Point):Object{
return (cellArray[FromPixelPosToGridIndex(_arg1)].cost);
}
public function (_arg1:uint, _arg2:uint):Object{
return (cellArray[FromGridPosToGridIndex(_arg1, _arg2)].cost);
}
public function (_arg1:Point, _arg2){
var _local3:uint;
var _local4:uint;
_local3 = FromPixelPosToGridX(_arg1);
_local4 = FromPixelPosToGridY(_arg1);
(_local3, _local4, _arg2);
}
public function (_arg1:Number, _arg2:Number, _arg3:Boolean):void{
if ((((((((_arg1 >= xCellCount)) || ((_arg1 < 0)))) || ((_arg2 >= yCellCount)))) || ((_arg2 < 0)))){
return;
};
cellArray[FromGridPosToGridIndex(_arg1, _arg2)].walkable = _arg3;
}
public function (_arg1:Number, _arg2:Number):Object{
if ((((((((_arg1 >= xCellCount)) || ((_arg1 < 0)))) || ((_arg2 >= yCellCount)))) || ((_arg2 < 0)))){
};
return (cellArray[FromGridPosToGridIndex(_arg1, _arg2)]);
}
public function IsWalkable(_arg1:Point):Boolean{
var _local2:uint;
var _local3:uint;
_local2 = FromPixelPosToGridX(_arg1);
_local3 = FromPixelPosToGridY(_arg1);
return (IsWalkableEx(_local2, _local3));
}
public function (_arg1:Number, _arg2:Number, _arg3){
if ((((((((_arg1 >= xCellCount)) || ((_arg1 < 0)))) || ((_arg2 >= yCellCount)))) || ((_arg2 < 0)))){
return;
};
cellArray[FromGridPosToGridIndex(_arg1, _arg2)] = _arg3;
}
public function (_arg1:Point, _arg2:Point, _arg3):Boolean{
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:Number;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:Number;
var _local15:Boolean;
var _local16:Number;
_local11 = FromPixelPosToGridX(_arg1);
_local12 = FromPixelPosToGridX(_arg2);
_local13 = FromPixelPosToGridY(_arg1);
_local14 = FromPixelPosToGridY(_arg2);
_local15 = (Math.abs((_local14 - _local13)) > Math.abs((_local12 - _local11)));
if (_local15){
_local16 = _local11;
_local11 = _local13;
_local13 = _local16;
_local16 = _local12;
_local12 = _local14;
_local14 = _local16;
};
if (_local11 > _local12){
_local16 = _local11;
_local11 = _local12;
_local12 = _local16;
_local16 = _local13;
_local13 = _local14;
_local14 = _local16;
};
_local5 = (_local12 - _local11);
_local6 = Math.abs((_local14 - _local13));
_local7 = (-(_local5) / 2);
_local10 = _local13;
if (_local13 < _local14){
_local8 = 1;
} else {
_local8 = -1;
};
_local9 = _local11;
while (_local9 <= _local12) {
if (_local15){
if (!IsWalkableEx(_local10, _local9)){
return (false);
};
if (!IsWalkableEx(_local9, _local10)){
return (false);
};
};
_local7 = (_local7 + _local6);
if (_local7 > 0){
_local10 = (_local10 + _local8);
_local7 = (_local7 - _local5);
};
_local9++;
};
return (true);
}
public function DrawCircle(_arg1:Circle, _arg2):void{
var _local3:Number;
var _local4:Number;
var _local5:uint;
var _local6:Number;
var _local7:*;
var _local8:Number;
_local3 = FromPixelXToGridX(_arg1.x);
_local4 = FromPixelYToGridY(_arg1.y);
_local5 = (FromPixelXToGridX((_arg1.x + _arg1.radius)) - _local3);
_local6 = (3 - (2 * _local5));
_local7 = 0;
_local8 = _local5;
while (_local7 <= _local8) {
((_local3 + _local7), (_local4 + _local8), (_local3 - _local7), (_local4 + _local8), _arg2);
((_local3 + _local8), (_local4 + _local7), (_local3 - _local8), (_local4 + _local7), _arg2);
((_local3 + _local8), (_local4 - _local7), (_local3 - _local8), (_local4 - _local7), _arg2);
((_local3 - _local7), (_local4 - _local8), (_local3 + _local7), (_local4 - _local8), _arg2);
if (_local6 < 0){
_local6 = (_local6 + ((4 * _local7) + 6));
} else {
_local6 = (_local6 + ((4 * (_local7 - _local8)) + 10));
_local8--;
};
_local7++;
};
}
private function (_arg1:Point, _arg2:Point, _arg3:Array):Boolean{
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:Number;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:Number;
var _local15:Boolean;
var _local16:Boolean;
var _local17:Number;
var _local18:Array;
_local11 = _arg1.x;
_local12 = _arg2.x;
_local13 = _arg1.y;
_local14 = _arg2.y;
if (_local12 > 10000){
return (false);
};
_local15 = false;
_local16 = (Math.abs((_local14 - _local13)) > Math.abs((_local12 - _local11)));
if (_local16){
_local17 = _local11;
_local11 = _local13;
_local13 = _local17;
_local17 = _local12;
_local12 = _local14;
_local14 = _local17;
};
if (_local11 > _local12){
_local15 = true;
_local17 = _local11;
_local11 = _local12;
_local12 = _local17;
_local17 = _local13;
_local13 = _local14;
_local14 = _local17;
};
_local5 = (_local12 - _local11);
_local6 = Math.abs((_local14 - _local13));
_local7 = (-(_local5) / 2);
_local10 = _local13;
if (_local13 < _local14){
_local8 = 1;
} else {
_local8 = -1;
};
_local9 = _local11;
while (_local9 <= _local12) {
if (_local16){
_arg3[_arg3.length] = new Point(_local10, _local9);
} else {
_arg3[_arg3.length] = new Point(_local9, _local10);
};
_local7 = (_local7 + _local6);
if (_local7 > 0){
_local10 = (_local10 + _local8);
_local7 = (_local7 - _local5);
};
_local9++;
};
if (_local15){
_local18 = _arg3.reverse();
_arg3 = _local18;
};
return (_local15);
}
public function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5):void{
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:Number;
var _local13:Boolean;
var _local14:Number;
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg3 < 0){
_arg3 = 0;
};
if (_arg2 < 0){
_arg2 = 0;
};
if (_arg4 < 0){
_arg4 = 0;
};
_local13 = (Math.abs((_arg4 - _arg2)) > Math.abs((_arg3 - _arg1)));
if (_local13){
_local14 = _arg1;
_arg1 = _arg2;
_arg2 = _local14;
_local14 = _arg3;
_arg3 = _arg4;
_arg4 = _local14;
};
if (_arg1 > _arg3){
_local14 = _arg1;
_arg1 = _arg3;
_arg3 = _local14;
_local14 = _arg2;
_arg2 = _arg4;
_arg4 = _local14;
};
_local7 = (_arg3 - _arg1);
_local8 = Math.abs((_arg4 - _arg2));
_local9 = (-(_local7) / 2);
_local12 = _arg2;
if (_arg2 < _arg4){
_local10 = 1;
} else {
_local10 = -1;
};
_local11 = _arg1;
while (_local11 <= _arg3) {
if (_local13){
if ((((((((_local12 < xCellCount)) && ((_local12 > 0)))) && ((_local11 < yCellCount)))) && ((_local11 > 0)))){
(_local12, _local11, _arg5);
};
} else {
if ((((((((_local11 < xCellCount)) && ((_local11 > 0)))) && ((_local12 < yCellCount)))) && ((_local12 > 0)))){
(_local11, _local12, _arg5);
};
};
_local9 = (_local9 + _local8);
if (_local9 > 0){
if (_local13){
if ((((((((_local12 < xCellCount)) && ((_local12 > 0)))) && ((_local11 < yCellCount)))) && ((_local11 > 0)))){
(_local12, (_local11 + 1), _arg5);
};
if (((((((((_local12 + _local10) < xCellCount)) && (((_local12 + _local10) > 0)))) && ((_local11 < yCellCount)))) && ((_local11 > 0)))){
((_local12 + _local10), _local11, _arg5);
};
} else {
if (((((((((_local11 + 1) < xCellCount)) && (((_local11 + 1) > 0)))) && ((_local12 < yCellCount)))) && ((_local12 > 0)))){
((_local11 + 1), _local12, _arg5);
};
if ((((((((_local11 < xCellCount)) && ((_local11 > 0)))) && (((_local12 + _local10) < yCellCount)))) && ((_local12 > 0)))){
(_local11, (_local12 + _local10), _arg5);
};
};
_local12 = (_local12 + _local10);
_local9 = (_local9 - _local7);
};
_local11++;
};
}
public function DrawRectangle(_arg1:Array, _arg2):void{
var _local3:uint;
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:Number;
var _local8:Number;
var _local9:uint;
var _local10:Array;
var _local11:Array;
var _local12:Array;
var _local13:Array;
var _local14:Array;
var _local15:Boolean;
var _local16:uint;
var _local17:*;
var _local18:Number;
var _local19:uint;
var _local20:uint;
var _local21:Point;
var _local22:Point;
var _local23:Boolean;
var _local24:Boolean;
_local3 = 0;
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = _arg1[0].y;
_local8 = _arg1[0].y;
_local9 = 1;
while (_local9 < _arg1.length) {
if (_arg1[_local9].y > _local7){
_local3 = _local9;
_local7 = _arg1[_local9].y;
};
if (_arg1[_local9].y < _local8){
_local4 = _local9;
_local8 = _arg1[_local9].y;
};
_local9++;
};
if (_local3 == 0){
_local5 = 1;
_local6 = 3;
} else {
if (_local3 == 3){
_local5 = 0;
_local6 = 2;
} else {
_local5 = (_local3 - 1);
_local6 = (_local3 + 1);
};
};
_local10 = new Array();
_local10[0] = new Point(FromPixelPosToGridX(_arg1[_local3]), FromPixelPosToGridY(_arg1[_local3]));
_local10[2] = new Point(FromPixelPosToGridX(_arg1[_local4]), FromPixelPosToGridY(_arg1[_local4]));
_local10[1] = new Point(FromPixelPosToGridX(_arg1[_local5]), FromPixelPosToGridY(_arg1[_local5]));
_local10[3] = new Point(FromPixelPosToGridX(_arg1[_local6]), FromPixelPosToGridY(_arg1[_local6]));
_local11 = new Array();
_local12 = new Array();
_local13 = new Array();
_local14 = new Array();
_local15 = false;
_local16 = 0;
(_local10[0], _local10[1], _local11);
(_local10[0], _local10[3], _local13);
(_local10[1], _local10[2], _local12);
(_local10[3], _local10[2], _local14);
if ((((_local11[0].x == _local11[(_local11.length - 1)].x)) && ((_local12[0].y == _local12[(_local12.length - 1)].y)))){
_local15 = true;
_local13 = _local14;
} else {
if ((((_local11[0].y == _local11[(_local11.length - 1)].y)) && ((_local12[0].x == _local12[(_local12.length - 1)].x)))){
_local15 = true;
_local11 = _local12;
};
};
_local19 = 0;
_local20 = 0;
_local21 = new Point();
_local22 = new Point();
_local23 = true;
_local24 = true;
_local18 = _local10[0].y;
while (_local18 >= _local10[2].y) {
if (!_local15){
if (_local18 >= _local10[1].y){
while (((!((_local19 == _local11.length))) && ((_local11[_local19].y == _local18)))) {
_local19++;
};
if (_local19 == _local11.length){
_local21.y = _local18;
_local21.x = _local11[(_local11.length - 1)].x;
_local11 = _local12;
_local19 = 0;
while (((!((_local19 == _local11.length))) && ((_local11[_local19].y == _local18)))) {
_local19++;
};
} else {
_local21.y = _local18;
_local21.x = _local11[(_local19 - 1)].x;
};
} else {
_local21.y = _local18;
_local21.x = _local11[_local19].x;
while (((!((_local19 == _local11.length))) && ((_local11[_local19].y == _local18)))) {
_local19++;
};
};
if (_local18 >= _local10[3].y){
while (((!((_local20 == _local13.length))) && ((_local13[_local20].y == _local18)))) {
_local20++;
};
if (_local20 == _local13.length){
_local13 = _local14;
_local20 = 1;
};
_local22.y = _local18;
_local22.x = _local13[(_local20 - 1)].x;
} else {
_local22.y = _local18;
_local22.x = _local13[_local20].x;
while (((!((_local20 == _local13.length))) && ((_local13[_local20].y == _local18)))) {
_local20++;
};
};
} else {
_local21.y = _local18;
_local22.y = _local18;
if (_local11[_local16].x < _local13[_local16].x){
_local21.x = _local11[_local16].x;
_local22.x = _local13[_local16].x;
} else {
_local22.x = _local11[_local16].x;
_local21.x = _local13[_local16].x;
};
_local16++;
};
_local17 = _local21.x;
while (_local17 <= _local22.x) {
if ((((((((_local17 < xCellCount)) && ((_local17 > 0)))) && ((_local18 < yCellCount)))) && ((_local18 > 0)))){
(_local17, _local18, _arg2);
};
_local17++;
};
_local18--;
};
}
public function IsWalkableEx(_arg1:Number, _arg2:Number):Boolean{
var _local3:uint;
var _local4:*;
if ((((((((_arg1 >= xCellCount)) || ((_arg1 < 0)))) || ((_arg2 >= yCellCount)))) || ((_arg2 < 0)))){
return (false);
};
_local3 = FromGridPosToGridIndex(_arg1, _arg2);
if (_local3 >= cellArray.length){
return (false);
};
_local4 = cellArray[_local3].walkable;
if ( ){
return (((_local4) && ((
[_local3] == -1))));
};
return (_local4);
}
public function Init(_arg1):void{
var _local2:int;
var _local3:uint;
var _local4:uint;
_local2 = 0;
_local3 = 0;
while (_local3 < xCellCount) {
_local2++;
_arg1.cell_boh = _local2;
_local4 = 0;
while (_local4 < yCellCount) {
(_local3, _local4, _arg1);
_local4++;
};
_local3++;
};
}
public function (_arg1:Point, _arg2:Point, _arg3):void{
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:Number;
_local4 = FromPixelPosToGridX(_arg1);
_local5 = FromPixelPosToGridX(_arg2);
_local6 = FromPixelPosToGridY(_arg1);
_local7 = FromPixelPosToGridY(_arg2);
(_local4, _local6, _local5, _local7, _arg3);
}
public function GetNeighbourhood(_arg1:Number, _arg2:Number, _arg3:Array):Number{
var _local4:uint;
var _local5:Number;
var _local6:Number;
if (!IsWalkableEx(_arg1, _arg2)){
return (0);
};
_local4 = 0;
_local5 = _arg1;
_local6 = _arg2;
if (IsWalkableEx((_arg1 - 1), _arg2)){
_arg3[_local4] = new Point((_arg1 - 1), _arg2);
_local4++;
};
if (IsWalkableEx((_arg1 + 1), _arg2)){
_arg3[_local4] = new Point((_arg1 + 1), _arg2);
_local4++;
};
if (((((IsWalkableEx((_arg1 - 1), (_arg2 - 1))) && (IsWalkableEx(_arg1, (_arg2 - 1))))) && (IsWalkableEx((_arg1 - 1), _arg2)))){
_arg3[_local4] = new Point((_arg1 - 1), (_arg2 - 1));
_local4++;
};
if (((((IsWalkableEx((_arg1 - 1), (_arg2 + 1))) && (IsWalkableEx(_arg1, (_arg2 + 1))))) && (IsWalkableEx((_arg1 - 1), _arg2)))){
_arg3[_local4] = new Point((_arg1 - 1), (_arg2 + 1));
_local4++;
};
if (((((IsWalkableEx((_arg1 + 1), (_arg2 - 1))) && (IsWalkableEx(_arg1, (_arg2 - 1))))) && (IsWalkableEx((_arg1 + 1), _arg2)))){
_arg3[_local4] = new Point((_arg1 + 1), (_arg2 - 1));
_local4++;
};
if (((((IsWalkableEx((_arg1 + 1), (_arg2 + 1))) && (IsWalkableEx(_arg1, (_arg2 + 1))))) && (IsWalkableEx((_arg1 + 1), _arg2)))){
_arg3[_local4] = new Point((_arg1 + 1), (_arg2 + 1));
_local4++;
};
if (IsWalkableEx(_arg1, (_arg2 - 1))){
_arg3[_local4] = new Point(_arg1, (_arg2 - 1));
_local4++;
};
if (IsWalkableEx(_arg1, (_arg2 + 1))){
_arg3[_local4] = new Point(_arg1, (_arg2 + 1));
_local4++;
};
return (_local4);
}
public function (_arg1:uint):Object{
return (cellArray[_arg1].cost);
}
}
}//package FoofaAI
Section 21
//PathfindingNode (FoofaAI.PathfindingNode)
package FoofaAI {
import flash.geom.*;
public class PathfindingNode {
public var c:Point;
public var g:Number;
public var h:Number;
private var :Point;
public var f:Number;
public function PathfindingNode(_arg1:Point){
c = new Point(_arg1.x, _arg1.y);
g = 0;
h = 0;
f = 0;
= new Point(0, 0);
}
public function IsEqualTo(_arg1:Point):Boolean{
return ((((c.x == _arg1.x)) && ((c.y == _arg1.y))));
}
public function SetParentCoords(_arg1:Point):void{
.x = _arg1.x;
.y = _arg1.y;
}
public function SetFromObject(_arg1){
c = _arg1.c;
g = _arg1.g;
h = _arg1.h;
f = _arg1.f;
.x = _arg1.GetParentCoords().x;
.y = _arg1.GetParentCoords().y;
}
public function SetPosition(_arg1:Point){
c.x = _arg1.x;
c.y = _arg1.y;
}
public function GetParentCoords():Point{
return ();
}
public function GetPosition():Point{
return (c);
}
static function get DUMMYPARENT():Point{
return (new Point(-1, -1));
}
}
}//package FoofaAI
Section 22
//FlashPlayerVersion (FoofaCore.FlashPlayerVersion)
package FoofaCore {
import flash.text.*;
import flash.system.*;
public class FlashPlayerVersion {
public static function Check(_arg1:TextField, _arg2:int=0, _arg3:int=47, _arg4:int=0, _arg5:int=9):Boolean{
var _local6:String;
var _local7:Array;
var _local8:Array;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local6 = Capabilities.version;
_local7 = _local6.split(",");
_local8 = _local7[0].split(" ");
_local9 = parseInt(_local8[1]);
_local10 = parseInt(_local7[1]);
_local11 = parseInt(_local7[2]);
_local12 = parseInt(_local7[3]);
_arg1.text = ((((((_local9 + ".") + _local10) + ".") + _local11) + ".") + _local12);
if (_local9 < _arg5){
return (false);
};
if (_local9 == _arg5){
if (_local10 < _arg4){
return (false);
};
if (_local10 == _arg4){
if (_local11 < _arg3){
return (false);
};
if (_local11 == _arg3){
if (_local12 < _arg2){
return (false);
};
};
};
};
return (true);
}
public static function PrintVersion(){
var _local1:String;
var _local2:Array;
var _local3:Number;
var _local4:Number;
var _local5:Array;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local1 = Capabilities.version;
_local2 = _local1.split(",");
_local3 = _local2.length;
_local4 = 0;
while (_local4 < _local3) {
_local4++;
};
_local5 = _local2[0].split(" ");
_local6 = 0;
while (_local6 < 2) {
_local6++;
};
_local7 = parseInt(_local5[1]);
_local8 = parseInt(_local2[1]);
_local9 = parseInt(_local2[2]);
if (_local7 < 9){
//unresolved jump
};
}
public static function CheckPlatform(_arg1:String="WIN"):Boolean{
var _local2:String;
var _local3:Array;
var _local4:Array;
_local2 = Capabilities.version;
_local3 = _local2.split(",");
_local4 = _local3[0].split(" ");
if (_arg1 == _local4[0]){
return (true);
};
return (false);
}
}
}//package FoofaCore
Section 23
//FoofaApplication (FoofaCore.FoofaApplication)
package FoofaCore {
import flash.utils.*;
public class FoofaApplication extends FSM {
protected static var instance:FoofaApplication = null;
public function FoofaApplication():void{
if (instance == null){
instance = this;
} else {
throw (new Error("FoofaApplication already defined"));
};
}
public function ():int{
var _local1:Timer;
var _local2:Number;
_local1 = new Timer(1);
_local2 = 0;
_local1.start();
while (Number(_local2) < 5000) {
_local2 = (Number(_local2) + 1);
};
_local1.stop();
return (_local1.currentCount);
}
public static function GetInstance():FoofaApplication{
return (instance);
}
}
}//package FoofaCore
Section 24
//FrameRateCounter (FoofaCore.FrameRateCounter)
package FoofaCore {
import flash.utils.*;
public class FrameRateCounter {
private var :uint;
private var :Boolean;
private var :Boolean;
private var
:int;
private var :int;
private var :int;
private var
:int;
private var :int;
public function FrameRateCounter(){
= false;
= false;
= 0;
= 0;
= 0;
= 0;
= 0;
}
public function get averageFps():Number{
return (((1000 * ) / ));
}
public function Play():void{
if (!){
= true;
= getTimer();
=
;
};
= false;
}
public function OnFrameStep():void{
= getTimer();
= ( - );
if (!){
++;
= ( -
);
} else {
= ( - );
};
= ;
}
public function get fps():Number{
return ((1000 /
));
}
public function get paused():Boolean{
return ();
}
public function Stop():void{
= true;
}
}
}//package FoofaCore
Section 25
//FSM (FoofaCore.FSM)
package FoofaCore {
public class FSM {
private var :Boolean;
private var :Boolean;
private var :FSM_State;
public function FSM(){
= false;
= false;
}
public function Loop():void{
if (!){
.Step();
};
}
public function ChangeState(_arg1:FSM_State):void{
if (){
.End();
= null;
};
= true;
= _arg1;
.Init();
}
public function get currentState():FSM_State{
return ();
}
}
}//package FoofaCore
Section 26
//FSM_State (FoofaCore.FSM_State)
package FoofaCore {
public interface FSM_State {
function Init():void;
function End():void;
function Step():void;
}
}//package FoofaCore
Section 27
//Key (FoofaCore.Key)
package FoofaCore {
import flash.display.*;
import flash.events.*;
public class Key {
public static var LEFT = 37;
public static var UP = 38;
public static var DOWN = 40;
public static var FULL_STOP = 190;
public static var COMMA = 188;
public static var ENTER = 13;
private static var keysDown:Object = new Object();
public static var A = 65;
public static var B = 66;
public static var C = 67;
public static var F = 70;
public static var I = 73;
public static var D = 68;
public static var M = 77;
public static var N = 78;
public static var O = 79;
public static var P = 80;
public static var K = 75;
public static var S = 83;
private static var initialized:Boolean = false;
public static var W = 87;
public static var MINUS = 189;
public static var SHIFT = 16;
public static var SPACE = 32;
public static var CTRL = 17;
public static var RIGHT = 39;
public static function initialize(_arg1:Stage):void{
if (!initialized){
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
_arg1.addEventListener(Event.DEACTIVATE, clearKeys);
initialized = true;
};
}
private static function keyReleased(_arg1:KeyboardEvent):void{
if ((_arg1.keyCode in keysDown)){
delete keysDown[_arg1.keyCode];
};
}
public static function ClearKeys():void{
keysDown = new Object();
}
private static function keyPressed(_arg1:KeyboardEvent):void{
keysDown[_arg1.keyCode] = true;
}
private static function clearKeys(_arg1:Event):void{
ClearKeys();
}
public static function isDown(_arg1:uint):Boolean{
if (!initialized){
throw (new Error("Key class has yet been initialized."));
};
return (Boolean((_arg1 in keysDown)));
}
}
}//package FoofaCore
Section 28
//Trigger (FoofaCore.Trigger)
package FoofaCore {
import flash.display.*;
import ThisGame.*;
public class Trigger extends MovieClip {
public var active:Boolean;
public function Trigger():void{
active = false;
}
public function Step(_arg1:State_InGame):void{
}
public function Init(_arg1:State_InGame):void{
}
public function Check(_arg1:State_InGame):Boolean{
return (false);
}
}
}//package FoofaCore
Section 29
//TriggerManager (FoofaCore.TriggerManager)
package FoofaCore {
import ThisGame.*;
public class TriggerManager {
private var
:int;
private var
:int;
private var
:Array;
public function TriggerManager():void{
= new Array();
= 0;
}
public function
(_arg1:Trigger):void{
= 0;
while (
<
.length) {
if (
[
] == _arg1){
.splice(
, 1);
--;
break;
};
++;
};
}
public function Update(_arg1:State_InGame):void{
= 0;
while (
<
.length) {
if ((((
[
].active == false)) && (
[
].Check(_arg1)))){
[
].active = true;
[
].Init(_arg1);
};
if (
[
].active == true){
[
].Step(_arg1);
};
++;
};
}
public function
():void{
.splice(0,
.length);
}
public function AddTrigger(_arg1:Trigger):void{
.push(_arg1);
}
}
}//package FoofaCore
Section 30
//Array_Contains (FoofaDataTypes.Array_Contains)
package FoofaDataTypes {
public class Array_Contains {
private var
:Array;
public function Array_Contains(){
= new Array();
}
public function GetElementAt(_arg1:Number):Object{
return (
[_arg1]);
}
public function Find(_arg1):Number{
var _local2:Number;
_local2 = 0;
while (_local2 <
.length) {
if (
[_local2].IsEqualTo(_arg1)){
return (_local2);
};
_local2++;
};
return (-1);
}
public function SetElementAt(_arg1:Number, _arg2){
[_arg1] = _arg2;
}
public function Size():uint{
return (
.length);
}
public function clear(){
.splice(0,
.length);
}
public function Find2(_arg1):Number{
var _local2:Number;
if (
.length > 1000){
};
_local2 = 0;
while (_local2 <
.length) {
if (
[_local2].IsEqualTo(_arg1)){
return (_local2);
};
_local2++;
};
return (-1);
}
public function push(_arg1){
[
.length] = _arg1;
}
}
}//package FoofaDataTypes
Section 31
//PriorityQueue (FoofaDataTypes.PriorityQueue)
package FoofaDataTypes {
public class PriorityQueue {
protected var :Number;
protected var _heap:Array;
protected var :Object;
public function PriorityQueue(){
();
}
protected function _filterDown(_arg1:Number):void{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
_local2 = _arg1;
if (_local2 < ((_heap.length - 1) / 2)){
_local3 = ((2 * _local2) + 1);
_local4 = ((2 * _local2) + 2);
if (_local4 >= _heap.length){
_local5 = _local3;
_local4 = _local3;
} else {
if (_heap[_local3].priority < _heap[_local4].priority){
_local5 = _local3;
} else {
if (_heap[_local3].priority == _heap[_local4].priority){
if (_heap[_local3].id < _heap[_local4].id){
_local5 = _local3;
} else {
_local5 = _local4;
};
} else {
_local5 = _local4;
};
};
};
if (_heap[_local2].priority > _heap[_local5].priority){
_local6 = _heap[_local2];
_heap[_local2] = _heap[_local5];
_heap[_local5] = _local6;
_heap[_local2].pos = _local2;
_heap[_local5].pos = _local5;
_filterDown(_local5);
} else {
if (_heap[_local2].priority == _heap[_local5].priority){
if (_heap[_local2].id > _heap[_local5].id){
_local7 = _heap[_local2];
_heap[_local2] = _heap[_local5];
_heap[_local5] = _local7;
_heap[_local2].pos = _local2;
_heap[_local5].pos = _local5;
_filterDown(_local5);
};
};
};
};
}
public function IsEmpty():Boolean{
return ((_heap.length == 0));
}
public function (_arg1:Number, _arg2:Number){
var _local3:*;
var _local4:*;
var _local5:*;
_local3 = [_arg1];
_local4 = _local3.pos;
_local5 = _local3.priority;
_local3.priority = _arg2;
if (_local5 > _local3.priority){
(_local4);
} else {
_filterDown(_local4);
};
}
public function ():Number{
return (_heap[0].priority);
}
public function (_arg1:Number):Boolean{
return (!(([_arg1] == null)));
}
public function clear(){
_heap.splice(0, _heap.length);
}
function (){
_heap = [];
= {};
= 0;
}
public function RemoveTop():Object{
var _local1:*;
if (_heap.length == 0){
return (false);
};
_local1 = _heap[0].data;
delete [_heap[0].id];
delete _heap[0];
if (_heap.length > 1){
_heap[0] = _heap[(_heap.length - 1)];
_heap[0].pos = 0;
_heap.splice((_heap.length - 1), 1);
_filterDown(0);
} else {
_heap.splice((_heap.length - 1), 1);
};
return (_local1);
}
public function (_arg1:Number):Number{
return ([_arg1].priority);
}
protected function (_arg1:Number):void{
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = _arg1;
while ((((_local2 > 0)) && ((_heap[int(((_local2 - 1) / 2))].priority > _heap[_local2].priority)))) {
_local3 = Math.floor(((_local2 - 1) / 2));
_local4 = _heap[_local2];
_heap[_local2] = _heap[_local3];
_heap[_local3] = _local4;
_heap[_local2].pos = _local2;
_heap[_local3].pos = _local3;
_local2 = _local3;
};
}
public function Insert(_arg1, _arg2:Number):Number{
var _local3:Number;
var _local4:*;
var _local5:Object;
_local3 = _heap.length;
_local4 = ++;
_local5 = {priority:_arg2, data:_arg1, id:_local4, pos:_local3};
[_local4] = _local5;
_heap[_local3] = _local5;
(_local3);
return (_local4);
}
public function (_arg1:Number):Boolean{
var _local2:*;
if (!(_arg1)){
return (false);
};
_local2 = [_arg1].pos;
delete [_arg1];
delete _heap[_local2];
_heap[_local2] = _heap[(_heap.length - 1)];
_heap[0].pos = 0;
_heap.splice((_heap.length - 1), 1);
return (true);
}
public function ():Object{
return (_heap[0].priority);
}
}
}//package FoofaDataTypes
Section 32
//PriorityQueue_DirectAccess (FoofaDataTypes.PriorityQueue_DirectAccess)
package FoofaDataTypes {
public class PriorityQueue_DirectAccess extends PriorityQueue {
public function Find(_arg1):Number{
var _local2:Number;
_local2 = 0;
while (_local2 < _heap.length) {
if (_heap[_local2].data.IsEqualTo(_arg1)){
return (_local2);
};
_local2++;
};
return (-1);
}
public function SetElementAt(_arg1:Number, _arg2){
_heap[_arg1] = _arg2;
_filterDown(0);
}
public function GetElementAt(_arg1:Number):Object{
return (_heap[_arg1]);
}
}
}//package FoofaDataTypes
Section 33
//AABB (FoofaGeom.AABB)
package FoofaGeom {
public class AABB {
public var
:Number;
public var :Number;
public var :Number;
public var
:Number;
public function AABB(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.
= _arg1;
this. = _arg2;
this. = _arg3;
this.
= _arg4;
}
public function toString():String{
return ([
, , ,
].toString());
}
public function (_arg1:AABB):Boolean{
if ((((
> _arg1.)) || (( < _arg1.
)))){
return (false);
};
if (((( > _arg1.
)) || ((
< _arg1.)))){
return (false);
};
return (true);
}
}
}//package FoofaGeom
Section 34
//Circle (FoofaGeom.Circle)
package FoofaGeom {
import flash.display.*;
public class Circle {
public var vx:Number;// = 0
public var vy:Number;// = 0
public var radius:Number;
protected var :AABB;
public var :Number;
public var :Number;// = 0
public var x:Number;
public var y:Number;
public function Circle(_arg1:Number, _arg2:Number, _arg3:Number){
vx = 0;
vy = 0;
= 0;
super();
this.x = _arg1;
this.y = _arg2;
this.radius = _arg3;
= (_arg3 * _arg3);
();
}
public function PointIsInside(_arg1:Number, _arg2:Number):Boolean{
return (((((_arg1 - x) * (_arg1 - x)) + ((_arg2 - y) * (_arg2 - y))) <= ));
}
private function ():void{
= new AABB((x - radius), (x + radius), (y - radius), (y + radius));
}
public function draw(_arg1:Graphics):void{
_arg1.drawCircle(x, y, radius);
_arg1.drawCircle(x, y, 0.5);
}
public function getAABB():AABB{
return ();
}
}
}//package FoofaGeom
Section 35
//CollisionCircleCircle (FoofaGeom.CollisionCircleCircle)
package FoofaGeom {
import flash.geom.*;
public class CollisionCircleCircle {
private var :Vector2;
private var :Number;
private var :Vector2;
private var :Number;
private var :Circle;
private var
:Circle;
private var :Number;
public function CollisionCircleCircle(){
= new Vector2();
= new Vector2();
}
public function ():Number{
return ();
}
public function getNormal():Vector2{
return ();
}
public function test(_arg1:Circle, _arg2:Circle, _arg3:Point):Boolean{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
= _arg2;
= _arg1;
_local4 = (_arg2.radius + _arg1.radius);
_local5 = (_arg2.x - _arg1.x);
_local6 = (_arg2.y - _arg1.y);
_local7 = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
if (_local4 > _local7){
_local5 = (_local5 / _local7);
_local6 = (_local6 / _local7);
.x = _local5;
.y = _local6;
.x = (.x * _local4);
.y = (.y * _local4);
= (_local4 - _local7);
return (true);
};
return (false);
}
public function solve(_arg1:Boolean, _arg2:Boolean):void{
if ((((_arg2 == true)) && ((_arg1 == false)))){
.vx = ( .x + .x);
.vy = ( .y + .y);
};
}
public function getBack():Vector2{
return (new Vector2(( .x + .x), ( .y + .y)));
}
}
}//package FoofaGeom
Section 36
//CollisionConvexPolyCircle (FoofaGeom.CollisionConvexPolyCircle)
package FoofaGeom {
import flash.geom.*;
public class CollisionConvexPolyCircle {
private var p3:Vector2;
private var :Vector2;
private var :Vector2;
private var poly:ConvexPoly;
private var :Number;
private var p2:Vector2;
private var p1:Vector2;
private var :Circle;
private var :Vector2;
private var :Number;
private var :Vector2;
private var c:Number;
private var :Vector2;
private var :Vector2;
private var :Number;
private var :Number;
public function CollisionConvexPolyCircle(){
= 0;
= 0.05;
= new Vector2();
= new Vector2();
= new Vector2();
p1 = new Vector2();
p2 = new Vector2();
p3 = new Vector2();
= new Vector2();
= new Vector2();
= new Vector2();
}
public function test(_arg1:ConvexPoly, _arg2:Circle, _arg3:Point):Boolean{
var _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Vector2;
var _local9:Number;
_local4 = _arg1.particles;
_local5 = _arg2.x;
_local6 = _arg2.y;
_local7 = _arg2.radius;
.x = _local4[0].x;
.y = _local4[0].y;
this. = _arg2;
this.poly = _arg1;
p1.x = (_local4[1].x - _local4[0].x);
p1.y = (_local4[1].y - _local4[0].y);
p2.x = (_local4[2].x - _local4[0].x);
p2.y = (_local4[2].y - _local4[0].y);
p3.x = (_local4[3].x - _local4[0].x);
p3.y = (_local4[3].y - _local4[0].y);
.x = (_arg2.x - _local4[0].x);
.y = (_arg2.y - _local4[0].y);
.x = (_arg3.x - _local4[0].x);
.y = (_arg3.y - _local4[0].y);
_local8 = new Vector2(1, 0);
_local9 = FoofaGeomUtils.AngleBetweenVectors2Rad(p3, _local8);
if (p3.x >= 0){
_local9 = (_local9 * -1);
} else {
if ((((p3.x < 0)) && ((p3.y > 0)))){
_local9 = (_local9 * -1);
} else {
if ((((p3.x < 0)) && ((p3.y <= 0)))){
_local9 = (_local9 * -1);
};
};
};
return ((, , _arg2.radius, p1, p3, p2, _local9));
}
function (_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11):Boolean{
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
if (_arg3 == 0){
if (_arg4 == 0){
if (_arg1 < _arg2){
_local12 = (_arg5.x - _arg8);
if (_local12 < 0){
return ( (-(_arg1), 0, -1, 0, _arg5, _arg6, _arg8, _arg9, _arg10, _arg11));
};
return ( (_arg1, 0, 1, 0, _arg5, _arg6, _arg8, _arg9, _arg10, _arg11));
} else {
_local13 = (_arg5.y - _arg9);
if (_local13 < 0){
return ( (0, -(_arg2), 0, -1, _arg5, _arg6, _arg8, _arg9, _arg10, _arg11));
};
return ( (0, _arg2, 0, 1, _arg5, _arg6, _arg8, _arg9, _arg10, _arg11));
};
} else {
return ( (0, (_arg2 * _arg4), 0, _arg4, _arg5, _arg6, _arg8, _arg9, _arg10, _arg11));
};
} else {
if (_arg4 == 0){
return ( ((_arg1 * _arg3), 0, _arg3, 0, _arg5, _arg6, _arg8, _arg9, _arg10, _arg11));
};
_local14 = (_arg8 + (_arg3 * _arg10));
_local15 = (_arg9 + (_arg4 * _arg11));
_local12 = (_arg5.x - _local14);
_local13 = (_arg5.y - _local15);
_local16 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13)));
_local17 = (_arg7 - _local16);
if (0 < _local17){
if (_local16 == 0){
_local12 = (_arg3 / Math.SQRT2);
_local13 = (_arg4 / Math.SQRT2);
} else {
_local12 = (_local12 / _local16);
_local13 = (_local13 / _local16);
};
return ( ((_local12 * _local17), (_local13 * _local17), _local12, _local13, _arg5, _arg6, _arg8, _arg9, _arg10, _arg11));
};
};
return (false);
}
public function
(_arg1:Number):void{
this. = _arg1;
}
public function (_arg1:Number, _arg2:Number){
= _arg1;
= _arg2;
}
public function ():Number{
return ();
}
public function (_arg1:Vector2, _arg2:Vector2, _arg3:Number, _arg4:Vector2, _arg5:Vector2, _arg6:Vector2, _arg7:Number):Boolean{
var _local8:Vector2;
var _local9:Vector2;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Vector2;
var _local18:Vector2;
var _local19:Boolean;
_local8 = new Vector2(_arg4.x, _arg4.y);
_local9 = new Vector2(_arg5.x, _arg5.y);
_local10 = _local9.length;
_local11 = _local8.length;
_local12 = (_arg7 * -1);
c = Math.cos(_arg7);
= Math.sin(_arg7);
_local13 = Math.cos(_local12);
_local14 = Math.sin(_local12);
_local15 = (_local10 / 2);
_local16 = (_local11 / 2);
_local17 = new Vector2();
_local17.x = ((_arg1.x * _local13) - (_arg1.y * _local14));
_local17.y = ((_arg1.x * _local14) + (_arg1.y * _local13));
_local18 = new Vector2();
_local18.x = ((_arg2.x * _local13) - (_arg2.y * _local14));
_local18.y = ((_arg2.x * _local14) + (_arg2.y * _local13));
_local19 = this. (_local17, _local18, _arg3, _local15, _local16, (_local10 / 2), (_local11 / 2));
.x = ((_local17.x * c) - (_local17.y * ));
.y = ((_local17.x * ) + (_local17.y * c));
return (_local19);
}
public function getNormal():Vector2{
var _local1:Number;
var _local2:Number;
_local1 = (( .x * c) - ( .y * ));
_local2 = (( .x * ) + ( .y * c));
return (new Vector2(_local1, _local2));
}
public function getBack():Vector2{
return (new Vector2(( .x + .x), ( .y + .y)));
}
function (_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10):Boolean{
var _local11:Boolean;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:*;
var _local20:*;
var _local21:*;
var _local22:*;
var _local23:*;
var _local24:*;
var _local25:*;
var _local26:*;
.x = _arg3;
.y = _arg4;
_local11 = false;
_local12 = _arg5;
_local13 = _arg6;
_local14 = (_local12.x - _local13.x);
_local15 = (_local12.y - _local13.y);
_local16 = ((_local14 * _arg3) + (_local15 * _arg4));
_local17 = (_local16 * _arg3);
_local18 = (_local16 * _arg4);
_local19 = (_local14 - _local17);
_local20 = (_local15 - _local18);
if (_local16 < 0){
_local24 = ;
_local25 = (_local19 * _local24);
_local26 = (_local20 * _local24);
_local21 = (1 + );
_local22 = (_local17 * _local21);
_local23 = (_local18 * _local21);
_local11 = true;
} else {
_local26 = 0;
_local25 = _local26;
_local23 = _local25;
_local22 = _local23;
};
_local12.x = (_local12.x + _arg1);
_local12.y = (_local12.y + _arg2);
_local13.x = (_local13.x + ((_arg1 + _local22) + _local25));
_local13.y = (_local13.y + ((_arg2 + _local23) + _local26));
_arg5 = _local12;
_arg6 = _local13;
return (_local11);
}
public function ():Vector2{
return ( );
}
public function (_arg1:Vector2, _arg2:Vector2, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Boolean{
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
_local8 = (_arg1.x - _arg4);
_local9 = ((_arg6 + _arg3) - Math.abs(_local8));
if (0 < _local9){
_local10 = (_arg1.y - _arg5);
_local11 = ((_arg7 + _arg3) - Math.abs(_local10));
if (0 < _local11){
_local12 = 0;
_local13 = 0;
if (_local8 < -(_arg6)){
_local12 = -1;
} else {
if (_arg6 < _local8){
_local12 = 1;
};
};
if (_local10 < -(_arg7)){
_local13 = -1;
} else {
if (_arg7 < _local10){
_local13 = 1;
};
};
.x = _local9;
.y = _local11;
return ((_local9, _local11, _local12, _local13, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
};
};
return (false);
}
public function solve(_arg1:Boolean, _arg2:Boolean):void{
if ((((_arg2 == true)) && ((_arg1 == false)))){
.vx = ( .x + .x);
.vy = ( .y + .y);
};
}
}
}//package FoofaGeom
Section 37
//ConvexPoly (FoofaGeom.ConvexPoly)
package FoofaGeom {
import flash.display.*;
import flash.geom.*;
public class ConvexPoly {
protected var :AABB;
public var particles:Array;
public function ConvexPoly(_arg1:Array){
this.particles = _arg1;
();
}
public function draw(_arg1:Graphics):void{
var _local2:int;
var _local3:Particle;
var _local4:Particle;
_local3 = particles[0];
_arg1.moveTo(_local3.x, _local3.y);
_local2 = 1;
while (_local2 < particles.length) {
_local4 = Particle(particles[_local2]);
_arg1.lineTo(_local4.x, _local4.y);
_local2++;
};
_arg1.lineTo(_local3.x, _local3.y);
}
public function getAABB():AABB{
return ();
}
private function ():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Particle;
_local1 = Number.POSITIVE_INFINITY;
_local2 = Number.POSITIVE_INFINITY;
_local3 = Number.NEGATIVE_INFINITY;
_local4 = Number.NEGATIVE_INFINITY;
for each (_local5 in particles) {
if (_local5.x < _local1){
_local1 = _local5.x;
};
if (_local5.x > _local3){
_local3 = _local5.x;
};
if (_local5.y < _local2){
_local2 = _local5.y;
};
if (_local5.y > _local4){
_local4 = _local5.y;
};
};
= new AABB(_local1, _local3, _local2, _local4);
}
public function GetPointArray():Array{
var _local1:int;
var _local2:Array;
_local2 = new Array(particles.length);
_local1 = 0;
while (_local1 < particles.length) {
_local2[_local1] = new Point(particles[_local1].x, particles[_local1].y);
_local1++;
};
return (_local2);
}
}
}//package FoofaGeom
Section 38
//FoofaGeomUtils (FoofaGeom.FoofaGeomUtils)
package FoofaGeom {
import flash.geom.*;
public class FoofaGeomUtils {
private static var x1:Number;
private static var ynew:Number;
private static var poly:Array = new Array(4);
private static var y2:Number;
private static var yold:Number;
private static var y1:Number;
private static var turnCDA:Number;
private static var turnCDB:Number;
private static var turnABC:Number;
private static var turnABD:Number;
private static var xnew:Number;
private static var i:Number;
private static var xold:Number;
private static var x2:Number;
private static var inside:Boolean;
public static function Trim(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number;
_local4 = _arg1;
if (_arg1 < _arg2){
_local4 = _arg2;
} else {
if (_arg1 > _arg3){
_local4 = _arg3;
};
};
return (_local4);
}
public static function ComputeTurn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
return (((((((_arg2 * _arg3) - (_arg4 * _arg1)) + (_arg6 * _arg1)) - (_arg2 * _arg5)) + (_arg4 * _arg5)) - (_arg6 * _arg3)));
}
public static function CrossProduct2DMagnitude(_arg1:Vector2, _arg2:Vector2):Number{
return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x)));
}
public static function GetRandomBetween(_arg1:Number, _arg2:Number):Number{
return (((Math.random() * (_arg2 - _arg1)) + _arg1));
}
public static function DotProd2(_arg1:Vector2, _arg2:Vector2):Number{
return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)));
}
public static function Distance(_arg1:Point, _arg2:Point):Number{
return (Math.sqrt((((_arg1.x - _arg2.x) * (_arg1.x - _arg2.x)) + ((_arg1.y - _arg2.y) * (_arg1.y - _arg2.y)))));
}
public static function AngleFromDir(_arg1:Number, _arg2:Number):Number{
return (Math.atan2(_arg1, _arg2));
}
public static function ReflectVectorOnLine(_arg1:Vector2, _arg2:Vector2):Vector2{
var _local3:Number;
var _local4:Vector2;
_local3 = DotProd2(_arg2, _arg1);
_local4 = new Vector2();
_local4.x = (_arg1.x - ((2 * _arg2.x) * _local3));
_local4.y = (_arg1.y - ((2 * _arg2.y) * _local3));
return (_local4);
}
public static function ProjectAonB(_arg1:Vector2, _arg2:Vector2):Vector2{
var _local3:Number;
var _local4:Number;
var _local5:Vector2;
_local3 = DotProd2(_arg1, _arg2);
_local4 = _arg2.squaredLength;
_local5 = new Vector2(((_local3 / _local4) * _arg2.x), ((_local3 / _local4) * _arg2.y));
return (_local5);
}
public static function SquaredDistance(_arg1:Point, _arg2:Point):Number{
return ((((_arg1.x - _arg2.x) * (_arg1.x - _arg2.x)) + ((_arg1.y - _arg2.y) * (_arg1.y - _arg2.y))));
}
public static function GetSign(_arg1:Number):Number{
if (_arg1 >= 0){
return (1);
};
return (-1);
}
public static function Turn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
var _local7:Number;
_local7 = ComputeTurn(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
if (_local7 > 0.001){
return (1);
};
if (_local7 < -0.001){
return (-1);
};
return (0);
}
public static function AngleBetweenVectors2Deg(_arg1:Vector2, _arg2:Vector2):Number{
return (((AngleBetweenVectors2Rad(_arg1, _arg2) * 180) / Math.PI));
}
public static function InPoly(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point, _arg5:Point):Boolean{
inside = false;
poly[0] = _arg1;
poly[1] = _arg2;
poly[2] = _arg3;
poly[3] = _arg4;
xold = poly[3].x;
yold = poly[3].y;
i = 0;
while (i < poly.length) {
xnew = poly[i].x;
ynew = poly[i].y;
if (xnew > xold){
x1 = xold;
x2 = xnew;
y1 = yold;
y2 = ynew;
} else {
x1 = xnew;
x2 = xold;
y1 = ynew;
y2 = yold;
};
if (((((xnew < _arg5.x) == (_arg5.x <= xold))) && ((((_arg5.y - y1) * (x2 - x1)) < ((y2 - y1) * (_arg5.x - x1)))))){
inside = !(inside);
};
xold = xnew;
yold = ynew;
i++;
};
return (inside);
}
public static function Vector2Sum(_arg1:Vector2, _arg2:Vector2):Vector2{
var _local3:Vector2;
_local3 = new Vector2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y));
return (_local3);
}
public static function FromRadiansToDiplayObjectRotation(_arg1:Number):Number{
return ((((_arg1 * 180) / Math.PI) + 90));
}
public static function AngleBetweenVectors2Rad(_arg1:Vector2, _arg2:Vector2):Number{
return ((Math.atan2(_arg2.y, _arg2.x) - Math.atan2(_arg1.y, _arg1.x)));
}
}
}//package FoofaGeom
Section 39
//Particle (FoofaGeom.Particle)
package FoofaGeom {
import flash.geom.*;
public class Particle {
public var vx:Number;
public var vy:Number;
var ty:Number;
var tx:Number;
public var x:Number;
public var y:Number;
public function Particle(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
vx = (vy = 0);
}
public function
(_arg1:Number):void{
x = (tx + (vx * _arg1));
y = (ty + (vy * _arg1));
}
public function
():void{
tx = x;
ty = y;
}
public function
():void{
tx = x;
ty = y;
x = (x + vx);
y = (y + vy);
}
public function toPoint():Point{
return (new Point(x, y));
}
public function
(_arg1:Particle):Vector2{
return (new Vector2((x - _arg1.x), (y - _arg1.y)));
}
}
}//package FoofaGeom
Section 40
//SpatialGrid (FoofaGeom.SpatialGrid)
package FoofaGeom {
import flash.geom.*;
public class SpatialGrid {
private var :Number;
private var
:Number;
private var :Number;
protected var cellArray:Array;
private var :Number;
public function SpatialGrid(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Array){
= _arg1;
= _arg2;
= Math.floor(_arg3);
= Math.floor(_arg4);
cellArray = _arg5;
}
public function get cellPixelHeight():Number{
return (
);
}
public function FromGridPosToGridIndex(_arg1:uint, _arg2:uint):uint{
return (((_arg2 * ( - 1)) + _arg1));
}
public function (_arg1:uint):Number{
return ((Math.floor((_arg1 / )) - 1));
}
public function (_arg1:int, _arg2:int):uint{
return (((Math.floor((_arg2 /
)) * ) + Math.floor((_arg1 / ))));
}
public function (_arg1:uint):Number{
return (((_arg1 % ) - 1));
}
public function get yCellCount():Number{
return ( );
}
public function FromPixelPosToGridX(_arg1:Point):Number{
return (Math.floor((_arg1.x / )));
}
public function FromPixelPosToGridY(_arg1:Point):Number{
return (Math.floor((_arg1.y /
)));
}
public function get cellPixelWidth():Number{
return ();
}
public function FromPixelYToGridY(_arg1:int):Number{
return (Math.floor((_arg1 /
)));
}
public function get xCellCount():Number{
return ();
}
public function FromPixelPosToGridIndex(_arg1:Point):uint{
return (((Math.floor((_arg1.y /
)) * ) + Math.floor((_arg1.x / ))));
}
public function FromPixelXToGridX(_arg1:int):Number{
return (Math.floor((_arg1 / )));
}
}
}//package FoofaGeom
Section 41
//Vector2 (FoofaGeom.Vector2)
package FoofaGeom {
import flash.geom.*;
public class Vector2 extends Point {
public function Vector2(_arg1:Number=0, _arg2:Number=0){
super(_arg1, _arg2);
}
public function ():Vector2{
return (new Vector2(x, y));
}
public function get rightNormal():Vector2{
var _local1:Vector2;
_local1 = new Vector2(-(y), x);
return (_local1);
}
public function
():void{
}
public function get leftNormal():Vector2{
var _local1:Vector2;
_local1 = new Vector2(y, -(x));
return (_local1);
}
public function (_arg1:Vector2):void{
x = _arg1.x;
y = _arg1.y;
}
public function get squaredLength():Number{
return (((x * x) + (y * y)));
}
}
}//package FoofaGeom
Section 42
//Camera2d (FoofaView.Camera2d)
package FoofaView {
import flash.geom.*;
public interface Camera2d {
function Update():void;
function get centerPosition():Point;
}
}//package FoofaView
Section 43
//Camera2d_FollowTargetInBounds (FoofaView.Camera2d_FollowTargetInBounds)
package FoofaView {
import flash.display.*;
import flash.geom.*;
public class Camera2d_FollowTargetInBounds implements Camera2d {
private var :Number;
private var :Number;
private var :Number;
private var :Rectangle;
protected var :Point;
private var :Number;
private var
:Number;
private var :Rectangle;
protected var screenHeight:int;
private var :Number;
protected var screenWidth:int;
private var :Boolean;
private var :Number;
protected var
:DisplayObject;
private var :Number;
public function Camera2d_FollowTargetInBounds(_arg1:DisplayObject, _arg2:Point, _arg3:int, _arg4:int, _arg5:Rectangle):void{
= _arg2;
= _arg1;
screenWidth = _arg3;
screenHeight = _arg4;
= _arg5;
= 0;
= 0;
= false;
= new Rectangle();
( .left, .right, .top, .bottom);
}
public function set rightBound(_arg1:Number):void{
.right = _arg1;
}
public function get ScrollX():Number{
return ();
}
public function get bottomBound():Number{
return ( .bottom);
}
public function ShakingEffect(_arg1:Number, _arg2:Number, _arg3:Number){
= true;
= -1;
= _arg1;
= _arg2;
= _arg3;
}
public function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
.left = _arg1;
.right = _arg2;
.top = _arg3;
.bottom = _arg4;
}
public function ():Boolean{
return ();
}
public function get ScrollY():Number{
return (
);
}
public function get centerPosition():Point{
return ();
}
public function set bottomBound(_arg1:Number):void{
.bottom = _arg1;
}
public function get topBound():Number{
return ( .top);
}
public function get leftBound():Number{
return ( .left);
}
public function set centerPosition(_arg1:Point):void{
= _arg1;
}
public function get rightBound():Number{
return ( .right);
}
public function set topBound(_arg1:Number):void{
.top = _arg1;
}
public function Update():void{
= (-(.x) + (screenWidth / 2));
= (-(.y) + (screenHeight / 2));
if ((((-() > .left)) && ((-() < ( .right - screenWidth))))){
= ;
} else {
if (-() >= ( .right - screenWidth)){
= -(( .right - screenWidth));
} else {
if (-() <= .left){
= -( .left);
};
};
};
if ((((-() > .top)) && ((-() < ( .bottom - screenHeight))))){
= ;
} else {
if (-() >= ( .bottom - screenHeight)){
= -(( .bottom - screenHeight));
} else {
if (-() <= .top){
= -( .top);
};
};
};
if (){
if (( % ( * 2)) == 0){
= ( + );
= (
+ );
} else {
if (( % ( * 2)) == ){
= ( - );
= (
- );
};
};
++;
if ( > ){
= false;
};
};
= null;
= new Rectangle(-(), -(
), screenWidth, screenHeight);
.scrollRect = ;
}
public function set leftBound(_arg1:Number):void{
.left = _arg1;
}
}
}//package FoofaView
Section 44
//AmmoCrate (ThisGame.AmmoCrate)
package ThisGame {
public class AmmoCrate extends IsoObject {
public function AmmoCrate():void{
}
}
}//package ThisGame
Section 45
//AmmoCrate10 (ThisGame.AmmoCrate10)
package ThisGame {
public class AmmoCrate10 extends AmmoCrate {
const packValue:Number = 10;
const squaredRadius:Number = 200;
const weaponNumber:Number = 10;
public function AmmoCrate10():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 46
//AmmoCrate2 (ThisGame.AmmoCrate2)
package ThisGame {
public class AmmoCrate2 extends AmmoCrate {
const packValue:Number = 20;
const squaredRadius:Number = 200;
const weaponNumber:Number = 2;
public function AmmoCrate2():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 47
//AmmoCrate3 (ThisGame.AmmoCrate3)
package ThisGame {
public class AmmoCrate3 extends AmmoCrate {
const packValue:Number = 40;
const squaredRadius:Number = 200;
const weaponNumber:Number = 3;
public function AmmoCrate3():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 48
//AmmoCrate4 (ThisGame.AmmoCrate4)
package ThisGame {
public class AmmoCrate4 extends AmmoCrate {
const packValue:Number = 40;
const squaredRadius:Number = 200;
const weaponNumber:Number = 4;
public function AmmoCrate4():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 49
//AmmoCrate5 (ThisGame.AmmoCrate5)
package ThisGame {
public class AmmoCrate5 extends AmmoCrate {
const packValue:Number = 40;
const squaredRadius:Number = 200;
const weaponNumber:Number = 5;
public function AmmoCrate5():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 50
//AmmoCrate6 (ThisGame.AmmoCrate6)
package ThisGame {
public class AmmoCrate6 extends AmmoCrate {
const packValue:Number = 150;
const squaredRadius:Number = 200;
const weaponNumber:Number = 6;
public function AmmoCrate6():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 51
//AmmoCrate7 (ThisGame.AmmoCrate7)
package ThisGame {
public class AmmoCrate7 extends AmmoCrate {
const packValue:Number = 10;
const squaredRadius:Number = 200;
const weaponNumber:Number = 7;
public function AmmoCrate7():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 52
//AmmoCrate8 (ThisGame.AmmoCrate8)
package ThisGame {
public class AmmoCrate8 extends AmmoCrate {
const packValue:Number = 10;
const squaredRadius:Number = 200;
const weaponNumber:Number = 8;
public function AmmoCrate8():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 53
//AmmoCrate9 (ThisGame.AmmoCrate9)
package ThisGame {
public class AmmoCrate9 extends AmmoCrate {
const packValue:Number = 10;
const squaredRadius:Number = 200;
const weaponNumber:Number = 9;
public function AmmoCrate9():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.PlaySound(_arg1.box);
_arg1.player.AddAmmo(_arg1, weaponNumber, packValue);
toDispose = true;
};
}
}
}//package ThisGame
Section 54
//AmmoInfo (ThisGame.AmmoInfo)
package ThisGame {
class AmmoInfo {
public var ammoCount:Number;
public var gunEnabled:Boolean;
public var maxCount:Number;
}
}//package ThisGame
Section 55
//BigExplosion (ThisGame.BigExplosion)
package ThisGame {
import FoofaGeom.*;
public class BigExplosion extends IsoObject {
public var senderIsPlayer:Boolean;
public function BigExplosion():void{
addFrameScript(51,
);
senderIsPlayer = false;
}
public function Step(_arg1:State_InGame):void{
var _local2:Number;
var _local3:Number;
var _local4:uint;
if (currentFrame == 5){
_local4 = 0;
while (_local4 < _arg1.explosivesArray.length) {
_local2 = _arg1.explosivesArray[_local4].x;
_local3 = _arg1.explosivesArray[_local4].y;
if ((((_local2 - x) * (_local2 - x)) + ((_local3 - y) * (_local3 - y))) <= 5000){
_arg1.explosivesArray[_local4].OnHit();
};
_local4++;
};
};
}
public function Init(_arg1:State_InGame=null, _arg2:Number=0, _arg3:Number=0):void{
}
function
(){
toDispose = true;
}
}
}//package ThisGame
Section 56
//Bullet (ThisGame.Bullet)
package ThisGame {
import FoofaGeom.*;
import flash.geom.*;
public class Bullet extends IsoObject {
const speed:Number = 6;
public var senderIsPlayer:Boolean;
public var flyHighBullet:Boolean;
var startTime:int;
private var
:Boolean;
public var type;
var dir:Vector2;
private var :Boolean;
public var lifeTime:int;
public function Bullet():void{
addFrameScript(0, frame1);
dir = new Vector2(0, 0);
senderIsPlayer = false;
flyHighBullet = false;
type = 1;
= false;
= false;
}
public function Step(_arg1:State_InGame):void{
if (!
){
if ((_arg1._time - startTime) < lifeTime){
if (senderIsPlayer){
x = (x + (dir.x * speed));
y = (y + (dir.y * speed));
} else {
x = (x + ((dir.x * speed) * 0.5));
y = (y + ((dir.y * speed) * 0.5));
};
(_arg1);
} else {
toDispose = true;
};
} else {
if (currentFrame >= 4){
toDispose = true;
} else {
if ((_arg1._time - startTime) > lifeTime){
toDispose = true;
};
};
};
}
public function Init(_arg1:State_InGame, _arg2:Number, _arg3:Number):void{
dir.x = _arg2;
dir.y = _arg3;
startTime = _arg1._time;
lifeTime = 2000;
}
private function
(_arg1:ConvexPoly):Boolean{
return (FoofaGeomUtils.InPoly(_arg1.particles[0].toPoint(), _arg1.particles[1].toPoint(), _arg1.particles[2].toPoint(), _arg1.particles[3].toPoint(), new Point(x, y)));
}
function frame1(){
stop();
}
private function (_arg1:Circle):Boolean{
var _local2:Boolean;
_local2 = _arg1.PointIsInside(x, y);
return (_local2);
}
private function (_arg1:State_InGame):void{
var _local2:int;
var _local3:Number;
var _local4:Number;
_local2 = 0;
while (_local2 < _arg1.solidActiveArray.length) {
if ((((((_arg1.solidActiveArray[_local2] is CollisionCircle)) && (((_arg1.solidActiveArray[_local2].collisionCircle) == true)))) || (((((_arg1.solidActiveArray[_local2] is CollisionCircle) == false)) && ((
(_arg1.solidActiveArray[_local2].collisionPoly) == true)))))){
if ((((flyHighBullet == false)) || ((_arg1.solidActiveArray[_local2].h > 15)))){
this.gotoAndPlay(2);
= true;
};
};
_local2++;
};
if (senderIsPlayer){
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
if (((!(_arg1.enemyActiveArray[_local2].IsDying())) && ((_arg1.enemyActiveArray[_local2].collisionCircle.PointIsInside(x, y) == true)))){
_arg1.enemyActiveArray[_local2].OnHit(_arg1, type);
toDispose = true;
};
_local2++;
};
} else {
if (_arg1.player.collisionCircle.PointIsInside(x, y) == true){
_arg1.player.OnHit(_arg1, 1);
toDispose = true;
};
};
_local2 = 0;
while (_local2 < _arg1.explosivesArray.length) {
_local3 = _arg1.explosivesArray[_local2].x;
_local4 = _arg1.explosivesArray[_local2].y;
if ((((_local3 - x) * (_local3 - x)) + ((_local4 - y) * (_local4 - y))) <= 100){
_arg1.explosivesArray[_local2].OnHit();
toDispose = true;
};
_local2++;
};
}
}
}//package ThisGame
Section 57
//Bullet_arrow (ThisGame.Bullet_arrow)
package ThisGame {
import FoofaGeom.*;
import flash.geom.*;
public class Bullet_arrow extends IsoObject {
const speed:Number = 6;
public var senderIsPlayer:Boolean;
public var flyHighBullet:Boolean;
var startTime:int;
var dir:Vector2;
public var lifeTime:int;
public function Bullet_arrow():void{
dir = new Vector2(0, 0);
senderIsPlayer = false;
flyHighBullet = false;
}
public function Step(_arg1:State_InGame):void{
if ((_arg1._time - startTime) < lifeTime){
if (senderIsPlayer){
x = (x + (dir.x * speed));
y = (y + (dir.y * speed));
} else {
x = (x + ((dir.x * speed) * 0.5));
y = (y + ((dir.y * speed) * 0.5));
};
(_arg1);
} else {
toDispose = true;
};
}
public function Init(_arg1:State_InGame, _arg2:Number, _arg3:Number):void{
dir.x = _arg2;
dir.y = _arg3;
startTime = _arg1._time;
lifeTime = 2000;
}
private function
(_arg1:ConvexPoly):Boolean{
return (FoofaGeomUtils.InPoly(_arg1.particles[0].toPoint(), _arg1.particles[1].toPoint(), _arg1.particles[2].toPoint(), _arg1.particles[3].toPoint(), new Point(x, y)));
}
private function (_arg1:Circle):Boolean{
return (_arg1.PointIsInside(x, y));
}
private function (_arg1:State_InGame):void{
var _local2:int;
_local2 = 0;
while (_local2 < _arg1.solidActiveArray.length) {
if ((((((_arg1.solidActiveArray[_local2] is CollisionCircle)) && (((_arg1.solidActiveArray[_local2].collisionCircle) == true)))) || (((((_arg1.solidActiveArray[_local2] is CollisionCircle) == false)) && ((
(_arg1.solidActiveArray[_local2].collisionPoly) == true)))))){
if ((((flyHighBullet == false)) || ((_arg1.solidActiveArray[_local2].h > 15)))){
toDispose = true;
};
};
_local2++;
};
if (senderIsPlayer){
} else {
if (_arg1.player.collisionCircle.PointIsInside(x, y) == true){
_arg1.player.OnHit(_arg1, 1);
toDispose = true;
};
};
}
}
}//package ThisGame
Section 58
//BulletBoss (ThisGame.BulletBoss)
package ThisGame {
import FoofaGeom.*;
import flash.geom.*;
public class BulletBoss extends IsoObject {
const speed:Number = 8;
public var senderIsPlayer:Boolean;
public var flyHighBullet:Boolean;
var startTime:int;
private var
:Boolean;
public var type;
var dir:Vector2;
private var :Boolean;
public var lifeTime:int;
public function BulletBoss():void{
addFrameScript(0, frame1);
dir = new Vector2(0, 0);
senderIsPlayer = false;
flyHighBullet = false;
type = 1;
= false;
= false;
}
public function Step(_arg1:State_InGame):void{
if (!
){
if ((_arg1._time - startTime) < lifeTime){
if (senderIsPlayer){
x = (x + (dir.x * speed));
y = (y + (dir.y * speed));
} else {
x = (x + ((dir.x * speed) * 0.5));
y = (y + ((dir.y * speed) * 0.5));
};
(_arg1);
} else {
toDispose = true;
};
} else {
if (currentFrame >= 4){
toDispose = true;
} else {
if ((_arg1._time - startTime) > lifeTime){
toDispose = true;
};
};
};
}
public function Init(_arg1:State_InGame, _arg2:Number, _arg3:Number):void{
dir.x = _arg2;
dir.y = _arg3;
startTime = _arg1._time;
lifeTime = 3000;
}
private function
(_arg1:ConvexPoly):Boolean{
return (FoofaGeomUtils.InPoly(_arg1.particles[0].toPoint(), _arg1.particles[1].toPoint(), _arg1.particles[2].toPoint(), _arg1.particles[3].toPoint(), new Point(x, y)));
}
function frame1(){
stop();
}
private function (_arg1:Circle):Boolean{
return (_arg1.PointIsInside(x, y));
}
private function (_arg1:State_InGame):void{
var _local2:int;
var _local3:Number;
var _local4:Number;
_local2 = 0;
while (_local2 < _arg1.solidActiveArray.length) {
if ((((((_arg1.solidActiveArray[_local2] is CollisionCircle)) && (((_arg1.solidActiveArray[_local2].collisionCircle) == true)))) || (((((_arg1.solidActiveArray[_local2] is CollisionCircle) == false)) && ((
(_arg1.solidActiveArray[_local2].collisionPoly) == true)))))){
if ((((flyHighBullet == false)) || ((_arg1.solidActiveArray[_local2].h > 15)))){
this.gotoAndPlay(2);
= true;
};
};
_local2++;
};
if (senderIsPlayer){
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
if (((!(_arg1.enemyActiveArray[_local2].IsDying())) && ((_arg1.enemyActiveArray[_local2].collisionCircle.PointIsInside(x, y) == true)))){
_arg1.enemyActiveArray[_local2].OnHit(_arg1, type);
toDispose = true;
};
_local2++;
};
} else {
if (_arg1.player.collisionCircle.PointIsInside(x, y) == true){
_arg1.player.OnHit(_arg1, 1);
toDispose = true;
};
};
_local2 = 0;
while (_local2 < _arg1.explosivesArray.length) {
_local3 = _arg1.explosivesArray[_local2].x;
_local4 = _arg1.explosivesArray[_local2].y;
if ((((_local3 - x) * (_local3 - x)) + ((_local4 - y) * (_local4 - y))) <= 100){
_arg1.explosivesArray[_local2].OnHit();
toDispose = true;
};
_local2++;
};
}
}
}//package ThisGame
Section 59
//BulletFly (ThisGame.BulletFly)
package ThisGame {
import FoofaGeom.*;
import flash.display.*;
import flash.geom.*;
public class BulletFly extends IsoObject {
const lifeTime:int = 2000;
const speed:Number = 6;
public var senderIsPlayer:Boolean;
public var flyG:DisplayObject;
var startTime:int;
public var h:Number;
var dir:Vector2;
public var vSpeed:Number;
public function BulletFly():void{
dir = new Vector2(0, 0);
senderIsPlayer = false;
vSpeed = 0;
h = -20;
}
public function Step(_arg1:State_InGame):void{
if ((_arg1._time - startTime) < lifeTime){
flyG.y = (flyG.y + vSpeed);
if (flyG.y > 0){
flyG.y = 0;
toDispose = true;
};
if (senderIsPlayer){
x = (x + (dir.x * speed));
y = (y + (dir.y * speed));
} else {
x = (x + ((dir.x * speed) * 0.5));
y = (y + ((dir.y * speed) * 0.5));
};
(_arg1);
} else {
toDispose = true;
};
}
public function Init(_arg1:State_InGame, _arg2:Number, _arg3:Number):void{
dir.x = _arg2;
dir.y = _arg3;
startTime = _arg1._time;
flyG = this.getChildByName("flyBullet");
flyG.y = h;
}
private function
(_arg1:ConvexPoly):Boolean{
return (FoofaGeomUtils.InPoly(_arg1.particles[0].toPoint(), _arg1.particles[1].toPoint(), _arg1.particles[2].toPoint(), _arg1.particles[3].toPoint(), new Point(x, y)));
}
private function (_arg1:Circle):Boolean{
return (_arg1.PointIsInside(x, y));
}
private function (_arg1:State_InGame):void{
var _local2:int;
_local2 = 0;
while (_local2 < _arg1.solidActiveArray.length) {
if ((((((_arg1.solidActiveArray[_local2] is CollisionCircle)) && (((_arg1.solidActiveArray[_local2].collisionCircle) == true)))) || (((((_arg1.solidActiveArray[_local2] is CollisionCircle) == false)) && ((
(_arg1.solidActiveArray[_local2].collisionPoly) == true)))))){
if (_arg1.solidActiveArray[_local2].h > h){
toDispose = true;
};
};
_local2++;
};
if (senderIsPlayer){
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
if (_arg1.enemyActiveArray[_local2].collisionCircle.PointIsInside(x, y) == true){
_arg1.enemyActiveArray[_local2].OnHit(_arg1, 1);
toDispose = true;
};
_local2++;
};
} else {
if (_arg1.player.collisionCircle.PointIsInside(x, y) == true){
_arg1.player.OnHit(_arg1, 1);
toDispose = true;
};
};
}
}
}//package ThisGame
Section 60
//CollisionCircle (ThisGame.CollisionCircle)
package ThisGame {
import FoofaGeom.*;
public class CollisionCircle extends CollisionObject {
public var collisionCircle:Circle;
public function CollisionCircle():void{
collisionCircle = new Circle(x, y, (width / 2));
}
public function Step(_arg1:State_InGame):void{
}
}
}//package ThisGame
Section 61
//CollisionClip (ThisGame.CollisionClip)
package ThisGame {
import FoofaGeom.*;
import flash.display.*;
import flash.geom.*;
public class CollisionClip extends CollisionObject {
public var collisionPoly:ConvexPoly;
public var p1:point;
public var p2:point;
public var p3:point;
public var p4:point;
public function CollisionClip():void{
var _local1:Point;
var _local2:Point;
var _local3:Point;
var _local4:Point;
super();
_local1 = new Point(MovieClip(this.getChildByName("p1")).x, MovieClip(this.getChildByName("p1")).y);
_local2 = new Point(MovieClip(this.getChildByName("p2")).x, MovieClip(this.getChildByName("p2")).y);
_local3 = new Point(MovieClip(this.getChildByName("p3")).x, MovieClip(this.getChildByName("p3")).y);
_local4 = new Point(MovieClip(this.getChildByName("p4")).x, MovieClip(this.getChildByName("p4")).y);
_local1 = localToGlobal(_local1);
_local2 = localToGlobal(_local2);
_local3 = localToGlobal(_local3);
_local4 = localToGlobal(_local4);
_local1.x = (_local1.x - this.parent.x);
_local1.y = (_local1.y - this.parent.y);
_local2.x = (_local2.x - this.parent.x);
_local2.y = (_local2.y - this.parent.y);
_local3.x = (_local3.x - this.parent.x);
_local3.y = (_local3.y - this.parent.y);
_local4.x = (_local4.x - this.parent.x);
_local4.y = (_local4.y - this.parent.y);
collisionPoly = new ConvexPoly(new Array(new Particle(_local1.x, _local1.y), new Particle(_local2.x, _local2.y), new Particle(_local3.x, _local3.y), new Particle(_local4.x, _local4.y)));
}
public function Step(_arg1:State_InGame):void{
}
}
}//package ThisGame
Section 62
//CollisionObject (ThisGame.CollisionObject)
package ThisGame {
import flash.display.*;
public class CollisionObject extends MovieClip {
public var toDispose:Boolean;
public var h:Number;
public function CollisionObject():void{
h = Number.POSITIVE_INFINITY;
toDispose = false;
}
}
}//package ThisGame
Section 63
//ComboMsg (ThisGame.ComboMsg)
package ThisGame {
import flash.display.*;
import flash.text.*;
public class ComboMsg extends IsoObject {
private var :MovieClip;
private var :TextField;
public var comboAnim:MovieClip;
public function ComboMsg(_arg1:String=" ", _arg2:Number=0, _arg3:Number=0):void{
addFrameScript(79, );
= MovieClip(this.getChildByName("comboAnim"));
= TextField(.getChildByName("comboValueTxt"));
.text = _arg1;
x = _arg2;
y = _arg3;
toDispose = false;
}
function (){
stop();
}
public function (_arg1:String):void{
.text = _arg1;
}
public function AnimationEnd():Boolean{
return ((this.currentFrame >= 80));
}
public function ():String{
return (.text);
}
public function Dispose():void{
toDispose = true;
}
}
}//package ThisGame
Section 64
//Dynamite (ThisGame.Dynamite)
package ThisGame {
import FoofaGeom.*;
import flash.display.*;
import flash.geom.*;
public class Dynamite extends IsoObject {
const squaredRadius:int = 8000;
const squaredActivationRadius:int = 400;
public var senderIsPlayer:Boolean;
var kabooming:Boolean;
var vSpeed:Number;
var startTime:int;
public function Dynamite():void{
addFrameScript(0, frame1, 1, frame2);
senderIsPlayer = true;
kabooming = false;
}
public function Step(_arg1:State_InGame):void{
var _local2:int;
var _local3:BigExplosion;
var _local4:Point;
if (kabooming){
_local3 = new BigExplosion();
_local3.x = x;
_local3.y = y;
_local3.Init(_arg1, 0, 0);
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
_local4 = new Point(_arg1.enemyActiveArray[_local2].x, _arg1.enemyActiveArray[_local2].y);
if ((((_local4.x - x) * (_local4.x - x)) + ((_local4.y - y) * (_local4.y - y))) < squaredRadius){
_arg1.enemyActiveArray[_local2].OnHit(_arg1, 3);
};
_local2++;
};
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.player.OnHit(_arg1, 3);
};
_arg1.PlaySound(_arg1.weapon7_boom);
_arg1.camera.ShakingEffect(10, 10, 1);
toDispose = true;
};
}
public function OnHit():void{
kabooming = true;
}
public function Init(_arg1:State_InGame, _arg2:Number=0, _arg3:Number=0):void{
startTime = _arg1._time;
}
function frame1(){
stop();
}
function frame2(){
y = (y - 200);
stop();
}
}
}//package ThisGame
Section 65
//FireExplosion (ThisGame.FireExplosion)
package ThisGame {
import FoofaGeom.*;
public class FireExplosion extends IsoObject {
public var senderIsPlayer:Boolean;
public function FireExplosion():void{
addFrameScript(25, );
senderIsPlayer = false;
}
public function Step(_arg1:State_InGame):void{
var _local2:Number;
var _local3:Number;
var _local4:uint;
if (currentFrame == 6){
_local4 = 0;
while (_local4 < _arg1.explosivesArray.length) {
_local2 = _arg1.explosivesArray[_local4].x;
_local3 = _arg1.explosivesArray[_local4].y;
if ((((_local2 - x) * (_local2 - x)) + ((_local3 - y) * (_local3 - y))) <= 5000){
_arg1.explosivesArray[_local4].OnHit();
};
_local4++;
};
};
}
public function Init(_arg1:State_InGame, _arg2:Number, _arg3:Number):void{
}
function (){
toDispose = true;
}
}
}//package ThisGame
Section 66
//Granade (ThisGame.Granade)
package ThisGame {
import FoofaGeom.*;
import flash.display.*;
import flash.geom.*;
public class Granade extends IsoObject {
const lifeTime:int = 2000;
const squaredRadius:int = 8000;
const flyTime:int = 1100;
public var senderIsPlayer:Boolean;
public var flyG:DisplayObject;
public var flyGranade:MovieClip;
var speed:Number;
var dTime:int;
var vSpeed:Number;
var startTime:int;
var dir:Vector2;
var lastPos:Point;
public function Granade():void{
dir = new Vector2(0, 0);
senderIsPlayer = false;
}
public function Step(_arg1:State_InGame):void{
var _local2:BigExplosion;
var _local3:int;
var _local4:Point;
dTime = (_arg1._time - startTime);
if (dTime <= lifeTime){
vSpeed = (vSpeed + 0.3);
flyG.y = (flyG.y + vSpeed);
if (flyG.y > 0){
flyG.y = 0;
vSpeed = (-(vSpeed) * 0.5);
speed = (speed * 0.6);
};
lastPos.x = x;
lastPos.y = y;
x = (x + (dir.x * speed));
y = (y + (dir.y * speed));
(_arg1);
} else {
if (dTime > lifeTime){
_local2 = new BigExplosion();
_local2.x = x;
_local2.y = y;
_local2.Init(_arg1, 0, 0);
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local3 = 0;
while (_local3 < _arg1.enemyActiveArray.length) {
_local4 = new Point(_arg1.enemyActiveArray[_local3].x, _arg1.enemyActiveArray[_local3].y);
if ((((_local4.x - x) * (_local4.x - x)) + ((_local4.y - y) * (_local4.y - y))) < squaredRadius){
_arg1.enemyActiveArray[_local3].OnHit(_arg1, 3);
};
_local3++;
};
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.player.OnHit(_arg1, 3);
toDispose = true;
};
_arg1.PlaySound(_arg1.weapon7_boom);
_arg1.camera.ShakingEffect(10, 10, 1);
(_arg1);
toDispose = true;
};
};
}
private function
(_arg1:State_InGame):void{
var _local2:int;
if (senderIsPlayer){
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
if (_arg1.enemyActiveArray[_local2].collisionCircle.PointIsInside(x, y) == true){
toDispose = true;
};
_local2++;
};
} else {
if (_arg1.player.collisionCircle.PointIsInside(x, y) == true){
toDispose = true;
};
};
}
public function Init(_arg1:State_InGame, _arg2:Number, _arg3:Number):void{
dir.x = _arg2;
dir.y = _arg3;
startTime = _arg1._time;
flyG = this.getChildByName("flyGranade");
speed = 3.6;
vSpeed = -6;
flyG.y = -15;
lastPos = new Point();
}
private function
(_arg1:ConvexPoly):Boolean{
return (FoofaGeomUtils.InPoly(_arg1.particles[0].toPoint(), _arg1.particles[1].toPoint(), _arg1.particles[2].toPoint(), _arg1.particles[3].toPoint(), new Point(x, y)));
}
private function
(_arg1:State_InGame):void{
var _local2:int;
var _local3:CollisionCircleCircle;
var _local4:Vector2;
var _local5:CollisionConvexPolyCircle;
_local2 = 0;
while (_local2 < _arg1.solidActiveArray.length) {
if ((_arg1.solidActiveArray[_local2] is CollisionCircle)){
_local3 = new CollisionCircleCircle();
if (_local3.test(_arg1.solidActiveArray[_local2].collisionCircle, new Circle(x, y, 1), lastPos) == true){
if (-(flyG.y) < _arg1.solidActiveArray[_local2].h){
_local4 = _local3.getNormal();
_local4 = FoofaGeomUtils.ReflectVectorOnLine(dir, _local4);
dir.x = _local4.x;
dir.y = _local4.y;
};
};
} else {
_local5 = new CollisionConvexPolyCircle();
if (_local5.test(_arg1.solidActiveArray[_local2].collisionPoly, new Circle(x, y, 1), lastPos) == true){
if (-(flyG.y) < _arg1.solidActiveArray[_local2].h){
_local4 = _local5.getNormal();
_local4 = FoofaGeomUtils.ReflectVectorOnLine(dir, _local4);
dir.x = _local4.x;
dir.y = _local4.y;
};
};
};
_local2++;
};
}
}
}//package ThisGame
Section 67
//GunProperties (ThisGame.GunProperties)
package ThisGame {
class GunProperties {
public var rotSpeed:Number;
public var fireRate:Number;
public var firstReloadTime:Number;
}
}//package ThisGame
Section 68
//IsoObject (ThisGame.IsoObject)
package ThisGame {
import flash.display.*;
public class IsoObject extends MovieClip {
public var toDispose:Boolean;
public function IsoObject():void{
toDispose = false;
}
}
}//package ThisGame
Section 69
//Main_Application (ThisGame.Main_Application)
package ThisGame {
import flash.display.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
import CMG_AS3.*;
import com.electrotank.util.*;
import flash.net.*;
import flash.system.*;
import flash.external.*;
public class Main_Application extends FoofaApplication {
public var maxLevel:Number;
public var thisLevel:Number;
public var ;
public var inputMode:Number;
public var menuMusic;
public var sound:Boolean;
public var ;
public var thisPlayer:Number;
public var menuLoop:SoundChannel;
public var inMenu:Boolean;
public var :Boolean;
public var :SoundChannel;
public var ;
public var sounds:String;// = "bkg.wav"
public var killCount:int;
public var ;
public var menuLoopSnd:Sound;
private var :SharedObject;
public var inMenuMusicStarted:Boolean;
public var :Number;
public var ;
public var nextIsMenu:Boolean;
public static const maxGunCount:Number = 11;
public static const gameVersion:String = "1.0";
public static var ammoInfoArray:Array;
public function Main_Application():void{
var _local1:Number;
sounds = "bkg.wav";
super();
inMenuMusicStarted = false;
inputMode = 0;
= 0;
thisLevel = 0;
maxLevel = 4;
= true;
sound = true;
= 1;
MemoryCrypto.setValue(sounds, 0);
Load();
ammoInfoArray = new Array(maxGunCount);
_local1 = 0;
ScoreSubmitter.gameId = 350;
ScoreSubmitter.gameVersion = gameVersion;
ScoreSubmitter.gameValidationCode = "bound85ec881a7157936ff05e880f2573608";
nextIsMenu = false;
}
public function Save():void{
var _local1:Number;
if (ammoInfoArray.length == maxGunCount){
= SharedObject.getLocal("bkillers");
.data.thisLevel = thisLevel;
.data.ammos = new Array(maxGunCount);
_local1 = 0;
while (_local1 < maxGunCount) {
.data.ammos[_local1] = new AmmoInfo();
.data.ammos[_local1].gunEnabled = ammoInfoArray[_local1].gunEnabled;
.data.ammos[_local1].ammoCount = ammoInfoArray[_local1].ammoCount;
.data.ammos[_local1].maxCount = ammoInfoArray[_local1].maxCount;
_local1++;
};
.flush();
};
}
public function Load():void{
var _local1:Number;
= SharedObject.getLocal("bkillers");
if (((((!(( .data.thisLevel == null))) && (!(( .data.ammos == null))))) && (( .data.ammos.length == maxGunCount)))){
ammoInfoArray = new Array(maxGunCount);
thisLevel = .data.thisLevel;
_local1 = 0;
while (_local1 < maxGunCount) {
ammoInfoArray[_local1] = new AmmoInfo();
ammoInfoArray[_local1].gunEnabled = .data.ammos[_local1].gunEnabled;
ammoInfoArray[_local1].ammoCount = .data.ammos[_local1].ammoCount;
ammoInfoArray[_local1].maxCount = .data.ammos[_local1].maxCount;
_local1++;
};
} else {
ammoInfoArray = new Array(maxGunCount);
thisLevel = 1;
};
}
public function ChangeMusic(_arg1:Sound):void{
= null;
= _arg1;
if ( != null){
.stop();
};
= _arg1.play(0, 1, new SoundTransform( ));
.addEventListener(Event.SOUND_COMPLETE, );
}
public function ResetLevel():void{
thisLevel = 1;
}
private function (_arg1:Event):void{
if ( == null){
= .play(0, 1, new SoundTransform( ));
} else {
= .play(0, 1, new SoundTransform( ));
= null;
};
.addEventListener(Event.SOUND_COMPLETE, );
}
public function InitMusics():void{
}
public function goToUrl(_arg1:String):void{
var success:Boolean;
var url = _arg1;
success = false;
if (((ExternalInterface.available) && (!((Capabilities.playerType == "External"))))){
try {
ExternalInterface.call("window.open", url, "win", "");
success = true;
} catch(error:Error) {
} catch(error:SecurityError) {
};
};
if (success != true){
navigateToURL(new URLRequest(url), "_BLANK");
};
}
public function GotoPlayState(_arg1:DisplayObjectContainer):void{
var _local2:MovieClip;
var _local3:Number;
switch (thisLevel){
case 0:
case 1:
_local3 = 0;
while (_local3 < Main_Application.ammoInfoArray.length) {
Main_Application.ammoInfoArray[_local3] = new AmmoInfo();
Main_Application.ammoInfoArray[_local3].gunEnabled = false;
Main_Application.ammoInfoArray[_local3].ammoCount = 0;
Main_Application.ammoInfoArray[_local3].maxCount = 999;
_local3++;
};
Main_Application.ammoInfoArray[1].gunEnabled = true;
Main_Application.ammoInfoArray[7].gunEnabled = true;
Main_Application.ammoInfoArray[1].ammoCount = 1000;
Main_Application.ammoInfoArray[1].maxCount = 1000;
Main_Application.ammoInfoArray[7].ammoCount = 10;
_local2 = MovieClip(new Level_1());
break;
case 2:
_local2 = MovieClip(new Level_2());
break;
case 3:
_local2 = MovieClip(new Level_3());
break;
case 4:
_local2 = MovieClip(new Level_4());
break;
};
Save();
ChangeState(new State_InGame(this, _arg1, _local2));
_local2 = null;
}
public function goToFoofaNet():void{
var _local1:URLRequest;
var _local2:URLVariables;
_local1 = new URLRequest("http://www.foofa.net");
_local1.method = URLRequestMethod.POST;
_local2 = new URLVariables();
_local2.fromGame = 11;
_local1.data = _local2;
navigateToURL(_local1, "_BLANK");
}
public static function IsInstantiated():Boolean{
if (!instance){
return (false);
};
return (true);
}
public static function GetInstance():Main_Application{
if (!instance){
return (new (Main_Application));
};
if ((instance is Main_Application)){
return (Main_Application(instance));
};
throw (Error("Instanced FoofaApplication is not Main_Application"));
}
}
}//package ThisGame
Section 70
//Medipack (ThisGame.Medipack)
package ThisGame {
public class Medipack extends IsoObject {
const packValue:Number = 20;
const squaredRadius:Number = 200;
public function Medipack():void{
}
public function Step(_arg1:State_InGame):void{
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.player.energy = (_arg1.player.energy + packValue);
if (_arg1.player.energy > _arg1.player.maxEnergy){
_arg1.player.energy = _arg1.player.maxEnergy;
};
toDispose = true;
};
}
}
}//package ThisGame
Section 71
//Molotov (ThisGame.Molotov)
package ThisGame {
import FoofaGeom.*;
import flash.display.*;
import flash.geom.*;
public class Molotov extends IsoObject {
const lifeTime:int = 2000;
const squaredRadius:int = 8000;
const flyTime:int = 1100;
public var senderIsPlayer:Boolean;
private var kabooming:Boolean;
public var flyG:DisplayObject;
public var flyGranade:MovieClip;
var speed:Number;
var dTime:int;
var vSpeed:Number;
var startTime:int;
var dir:Vector2;
var lastPos:Point;
public function Molotov():void{
dir = new Vector2(0, 0);
senderIsPlayer = false;
kabooming = false;
}
public function Step(_arg1:State_InGame):void{
var _local2:FireExplosion;
var _local3:int;
var _local4:Point;
dTime = (_arg1._time - startTime);
if (kabooming){
_local2 = new FireExplosion();
_local2.x = x;
_local2.y = y;
_local2.Init(_arg1, 0, 0);
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local3 = 0;
while (_local3 < _arg1.enemyActiveArray.length) {
_local4 = new Point(_arg1.enemyActiveArray[_local3].x, _arg1.enemyActiveArray[_local3].y);
if ((((_local4.x - x) * (_local4.x - x)) + ((_local4.y - y) * (_local4.y - y))) < squaredRadius){
_arg1.enemyActiveArray[_local3].OnHit(_arg1, 2);
};
_local3++;
};
if ((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredRadius){
_arg1.player.OnHit(_arg1, 2);
toDispose = true;
};
_arg1.PlaySound(_arg1.weapon7_boom);
_arg1.camera.ShakingEffect(5, 5, 1);
(_arg1);
toDispose = true;
return;
};
if (dTime <= lifeTime){
vSpeed = (vSpeed + 0.3);
flyG.y = (flyG.y + vSpeed);
if (flyG.y > 0){
flyG.y = 0;
vSpeed = 0;
speed = 1;
kabooming = true;
};
lastPos.x = x;
lastPos.y = y;
x = (x + (dir.x * speed));
y = (y + (dir.y * speed));
(_arg1);
} else {
if (dTime > lifeTime){
kabooming = true;
};
};
}
private function
(_arg1:State_InGame):void{
var _local2:int;
if (senderIsPlayer){
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
if (_arg1.enemyActiveArray[_local2].collisionCircle.PointIsInside(x, y) == true){
toDispose = true;
};
_local2++;
};
} else {
if (_arg1.player.collisionCircle.PointIsInside(x, y) == true){
toDispose = true;
};
};
}
public function Init(_arg1:State_InGame, _arg2:Number, _arg3:Number):void{
dir.x = _arg2;
dir.y = _arg3;
startTime = _arg1._time;
flyG = this.getChildByName("flyGranade");
speed = 3.6;
vSpeed = -6;
flyG.y = -15;
lastPos = new Point();
}
private function
(_arg1:ConvexPoly):Boolean{
return (FoofaGeomUtils.InPoly(_arg1.particles[0].toPoint(), _arg1.particles[1].toPoint(), _arg1.particles[2].toPoint(), _arg1.particles[3].toPoint(), new Point(x, y)));
}
private function
(_arg1:State_InGame):void{
var _local2:int;
var _local3:CollisionCircleCircle;
var _local4:CollisionConvexPolyCircle;
_local2 = 0;
while (_local2 < _arg1.solidActiveArray.length) {
if ((_arg1.solidActiveArray[_local2] is CollisionCircle)){
_local3 = new CollisionCircleCircle();
if (_local3.test(_arg1.solidActiveArray[_local2].collisionCircle, new Circle(x, y, 1), lastPos) == true){
if (-(flyG.y) < _arg1.solidActiveArray[_local2].h){
kabooming = true;
};
};
} else {
_local4 = new CollisionConvexPolyCircle();
if (_local4.test(_arg1.solidActiveArray[_local2].collisionPoly, new Circle(x, y, 1), lastPos) == true){
if (-(flyG.y) < _arg1.solidActiveArray[_local2].h){
kabooming = true;
};
};
};
_local2++;
};
}
}
}//package ThisGame
Section 72
//Player (ThisGame.Player)
package ThisGame {
import FoofaGeom.*;
import flash.geom.*;
public class Player extends IsoObject {
const frame_walk_start:Number = 241;
const frame_stand:Number = 253;
const frame_morte_colpo1:int = 1;
const frame_walk_lenght:Number = 36;
const maxGunCount:Number = 11;
const maxEnergy:Number = 30;
const frame_morte_colpo1_lenght:int = 29;
const walkSpeed:Number = 3;
var :Number;
var fire1Rate:Number;
public var dieMode:Boolean;
var :Number;
var angleRad:Number;
var deadlyWeapon:int;
public var selectedWeapon2:Number;
var :Number;
var :Number;
var energy:Number;
public var selectedWeapon:Number;
public var collisionCircle:Circle;
var lookingDir:Vector2;
private var :Boolean;
var :Boolean;
var hitTime:Number;
var :Number;
var ammoInfoArray:Array;
var movingDir:Vector2;
var fire1Timer:Number;
public var dieTime:Number;
var
:Boolean;
var :Number;
var angleGrad:Number;
var
:Boolean;
var
:int;
var
:Number;
var lastFireThrowerTime:Number;
public function Player():void{
movingDir = new Vector2(0, -1);
lookingDir = new Vector2(0, -1);
angleRad = 0;
angleGrad = 0;
= 180;
= false;
fire1Timer = 0;
= false;
= 0;
selectedWeapon = 0;
selectedWeapon2 = 0;
= 0;
= 5;
collisionCircle = new Circle(x, y, 15);
= 0;
ammoInfoArray = Main_Application.ammoInfoArray;
energy = maxEnergy;
hitTime = 0;
lastFireThrowerTime = 0;
= false;
}
public function LookTowards(_arg1:Number, _arg2:Number, _arg3:Number=0, _arg4:Number=0):void{
lookingDir.x = (_arg1 - this.x);
lookingDir.y = (_arg2 - this.y);
lookingDir.normalize(1);
}
public function SelectWeapon(_arg1:Number):Boolean{
var _local2:GunProperties;
if (ammoInfoArray[_arg1].gunEnabled == false){
return (false);
};
if (_arg1 < 7){
if (selectedWeapon != _arg1){
_local2 = WeaponFactory.GetWeaponProperties(_arg1);
selectedWeapon = _arg1;
fire1Rate = _local2.fireRate;
= _local2.firstReloadTime;
= _local2.rotSpeed;
};
} else {
if (selectedWeapon2 != _arg1){
_local2 = WeaponFactory.GetWeaponProperties(_arg1);
selectedWeapon2 = _arg1;
= _local2.fireRate;
= _local2.firstReloadTime;
= _local2.rotSpeed;
};
};
return (true);
}
public function UpdateInput(_arg1:Boolean, _arg2:Boolean, _arg3:Boolean, _arg4:Boolean, _arg5:Boolean, _arg6:Boolean, _arg7:Boolean=true, _arg8:Boolean=true):void{
if (dieMode == true){
return;
};
if ((((_arg3 == true)) && ((_arg4 == true)))){
_arg3 = false;
_arg4 = false;
} else {
if ((((_arg1 == true)) && ((_arg2 == true)))){
_arg1 = false;
_arg2 = false;
} else {
if ((((_arg3 == true)) && ((_arg1 == true)))){
movingDir.x = -0.5;
movingDir.y = -0.5;
} else {
if ((((_arg4 == true)) && ((_arg1 == true)))){
movingDir.x = 0.5;
movingDir.y = -0.5;
} else {
if ((((_arg3 == true)) && ((_arg2 == true)))){
movingDir.x = -0.5;
movingDir.y = 0.5;
} else {
if ((((_arg4 == true)) && ((_arg2 == true)))){
movingDir.x = 0.5;
movingDir.y = 0.5;
} else {
if (_arg3 == true){
movingDir.x = -0.707;
movingDir.y = 0;
} else {
if (_arg4 == true){
movingDir.x = 0.707;
movingDir.y = 0;
} else {
if (_arg1 == true){
movingDir.x = 0;
movingDir.y = -0.707;
} else {
if (_arg2 == true){
movingDir.x = 0;
movingDir.y = 0.707;
};
};
};
};
};
};
};
};
if (((_arg7) && ((_arg8 == false)))){
lookingDir.x = movingDir.x;
lookingDir.y = movingDir.y;
};
};
};
= false;
if (((!()) && ((((((((_arg3 == true)) || ((_arg4 == true)))) || ((_arg1 == true)))) || ((_arg2 == true)))))){
= true;
};
= _arg5;
= _arg6;
if ((() && (!( )))){
= false;
};
}
private function (){
collisionCircle.vx = (x - collisionCircle.x);
collisionCircle.vy = (y - collisionCircle.y);
collisionCircle.x = x;
collisionCircle.y = y;
}
public function (_arg1:State_InGame, _arg2:Number):void{
var _local3:Bullet;
var _local4:Granade;
var _local5:Molotov;
var _local6:Trap;
var _local7:Dynamite;
if ((((ammoInfoArray[_arg2].ammoCount > 0)) || ((_arg2 == 1)))){
if (_arg2 != 1){
ammoInfoArray[_arg2].ammoCount--;
};
switch (_arg2){
case 1:
_arg1.PlaySound(_arg1.weaponGun_fire);
fire1Timer = _arg1._time;
_local3 = new Bullet_pg();
_local3.type = 1;
_local3.senderIsPlayer = true;
_local3.x = x;
_local3.y = y;
_local3.Init(_arg1, lookingDir.x, lookingDir.y);
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
break;
case 2:
_arg1.PlaySound(_arg1.weaponGun_fire);
fire1Timer = _arg1._time;
_local3 = new Bullet_pg();
_local3.type = 1;
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin((( * Math.PI) / 180))), Math.cos((( * Math.PI) / 180)));
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
break;
case 3:
_arg1.PlaySound(_arg1.weaponRifle_fire);
fire1Timer = _arg1._time;
_local3 = new Bullet_pg();
_local3.type = 10;
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin((( * Math.PI) / 180))), Math.cos((( * Math.PI) / 180)));
_local3.lifeTime = 500;
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
break;
case 4:
_arg1.PlaySound(_arg1.weaponRifle_fire);
fire1Timer = _arg1._time;
_local3 = new Bullet_pg();
_local3.type = 10;
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin((( * Math.PI) / 180))), Math.cos((( * Math.PI) / 180)));
_local3.lifeTime = 500;
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
break;
case 5:
_arg1.PlaySound(_arg1.weaponRifle_fire);
fire1Timer = _arg1._time;
_local3 = new Bullet_pg();
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin((( * Math.PI) / 180))), Math.cos((( * Math.PI) / 180)));
_local3.lifeTime = 500;
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
_local3 = new Bullet_pg();
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin(((( + 5) * Math.PI) / 180))), Math.cos(((( + 5) * Math.PI) / 180)));
_local3.lifeTime = 500;
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
_local3 = new Bullet_pg();
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin(((( - 5) * Math.PI) / 180))), Math.cos(((( - 5) * Math.PI) / 180)));
_local3.lifeTime = 500;
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
_local3 = new Bullet_pg();
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin(((( + 10) * Math.PI) / 180))), Math.cos(((( + 10) * Math.PI) / 180)));
_local3.lifeTime = 500;
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
_local3 = new Bullet_pg();
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin(((( - 10) * Math.PI) / 180))), Math.cos(((( - 10) * Math.PI) / 180)));
_local3.lifeTime = 500;
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
break;
case 6:
= true;
_arg1.PlaySound(_arg1.weaponGatling_fire);
fire1Timer = _arg1._time;
_local3 = new Bullet_pg();
_local3.senderIsPlayer = true;
_local3.x = (x - (Math.sin((( * Math.PI) / 180)) * 20));
_local3.y = (y + (Math.cos((( * Math.PI) / 180)) * 20));
_local3.Init(_arg1, -(Math.sin((( * Math.PI) / 180))), Math.cos((( * Math.PI) / 180)));
_arg1.bulletArray.push(_local3);
_arg1.isoObjectActiveArray.push(_local3);
break;
case 7:
= _arg1._time;
_local4 = new Granade();
_local4.senderIsPlayer = true;
_local4.x = x;
_local4.y = y;
_local4.Init(_arg1, -(Math.sin((( * Math.PI) / 180))), Math.cos((( * Math.PI) / 180)));
_arg1.bulletArray.push(_local4);
_arg1.isoObjectActiveArray.push(_local4);
break;
case 8:
= _arg1._time;
_local5 = new Molotov();
_local5.senderIsPlayer = true;
_local5.x = x;
_local5.y = y;
_local5.Init(_arg1, -(Math.sin((( * Math.PI) / 180))), Math.cos((( * Math.PI) / 180)));
_arg1.bulletArray.push(_local5);
_arg1.isoObjectActiveArray.push(_local5);
break;
case 9:
= _arg1._time;
_local6 = new Trap();
_local6.senderIsPlayer = true;
_local6.x = x;
_local6.y = y;
_local6.Init(_arg1, 0, 0);
_arg1.bulletArray.push(_local6);
_arg1.isoObjectActiveArray.push(_local6);
break;
case 10:
= _arg1._time;
_local7 = new Dynamite();
_local7.senderIsPlayer = true;
_local7.x = x;
_local7.y = y;
_local7.Init(_arg1, 0, 0);
_arg1.explosivesArray.push(_local7);
_arg1.isoObjectActiveArray.push(_local7);
break;
};
} else {
switch (_arg2){
case 2:
case 3:
case 4:
case 5:
case 6:
fire1Timer = _arg1._time;
_arg1.PlaySound(_arg1.fai_cilecca);
break;
case 7:
case 8:
case 9:
= _arg1._time;
_arg1.PlaySound(_arg1.fai_cilecca);
break;
};
};
}
public function SelectNextPrimaryWeapon():int{
var _local1:uint;
if (selectedWeapon == 6){
return (-1);
};
_local1 = (selectedWeapon + 1);
while ((((_local1 < 7)) && ((ammoInfoArray[_local1].gunEnabled == false)))) {
_local1++;
};
if ((((_local1 < 7)) && (SelectWeapon(_local1)))){
return (_local1);
};
return (-1);
}
public function AddAmmo(_arg1:State_InGame, _arg2:int, _arg3:int):void{
if (ammoInfoArray[_arg2].gunEnabled == false){
ammoInfoArray[_arg2].gunEnabled = true;
_arg1.gui_weaponPopup.getChildByName("weapon_2").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_3").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_4").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_5").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_6").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_8").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_9").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_0").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_2").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_3").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_4").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_5").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_6").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_7").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_8").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_9").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_0").visible = false;
switch (_arg2){
case 2:
_arg1.gui_weaponPopup.getChildByName("weapon_2").visible = true;
break;
case 3:
_arg1.gui_weaponPopup.getChildByName("weapon_3").visible = true;
break;
case 4:
_arg1.gui_weaponPopup.getChildByName("weapon_4").visible = true;
break;
case 5:
_arg1.gui_weaponPopup.getChildByName("weapon_5").visible = true;
break;
case 6:
_arg1.gui_weaponPopup.getChildByName("weapon_6").visible = true;
break;
case 8:
_arg1.gui_weaponPopup.getChildByName("weapon_8").visible = true;
break;
case 9:
_arg1.gui_weaponPopup.getChildByName("weapon_9").visible = true;
break;
case 10:
_arg1.gui_weaponPopup.getChildByName("weapon_0").visible = true;
break;
};
_arg1.ShowWeaponPopup();
} else {
_arg1.gui_weaponPopup.getChildByName("recharge_2").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_3").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_4").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_5").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_6").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_7").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_8").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_9").visible = false;
_arg1.gui_weaponPopup.getChildByName("recharge_0").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_2").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_3").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_4").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_5").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_6").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_8").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_9").visible = false;
_arg1.gui_weaponPopup.getChildByName("weapon_0").visible = false;
switch (_arg2){
case 2:
_arg1.gui_weaponPopup.getChildByName("recharge_2").visible = true;
break;
case 3:
_arg1.gui_weaponPopup.getChildByName("recharge_3").visible = true;
break;
case 4:
_arg1.gui_weaponPopup.getChildByName("recharge_4").visible = true;
break;
case 5:
_arg1.gui_weaponPopup.getChildByName("recharge_5").visible = true;
break;
case 6:
_arg1.gui_weaponPopup.getChildByName("recharge_6").visible = true;
break;
case 7:
_arg1.gui_weaponPopup.getChildByName("recharge_7").visible = true;
break;
case 8:
_arg1.gui_weaponPopup.getChildByName("recharge_8").visible = true;
break;
case 9:
_arg1.gui_weaponPopup.getChildByName("recharge_9").visible = true;
break;
case 10:
_arg1.gui_weaponPopup.getChildByName("recharge_0").visible = true;
break;
};
_arg1.ShowWeaponPopup();
};
ammoInfoArray[_arg2].ammoCount = (ammoInfoArray[_arg2].ammoCount + _arg3);
if (ammoInfoArray[_arg2].ammoCount > ammoInfoArray[_arg2].maxCount){
ammoInfoArray[_arg2].ammoCount = ammoInfoArray[_arg2].maxCount;
};
}
public function Step(_arg1:State_InGame):void{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:int;
var _local7:ColorTransform;
var _local8:uint;
if ( > 0){
--;
};
if ( > 0){
--;
};
if ((((dieMode == true)) || (((_arg1._time - hitTime) > 100)))){
_local7 = new ColorTransform();
this.transform.colorTransform = _local7;
_local7 = null;
};
if (dieMode == true){
return;
};
if (((!()) && (
))){
x = (x + (movingDir.x * walkSpeed));
y = (y + (movingDir.y * walkSpeed));
};
angleRad = FoofaGeomUtils.AngleFromDir(lookingDir.x, lookingDir.y);
angleGrad = ((-(angleRad) * 180) / Math.PI);
angleGrad = (angleGrad % 360);
while (angleGrad < 0) {
angleGrad = (angleGrad + 360);
};
= ( % 360);
while ( < 0) {
= ( + 360);
};
_local2 = ( - angleGrad);
_local3 = Math.abs(_local2);
if (_local3 < 180){
_local4 = (_local3 / 32);
} else {
_local4 = ((360 - _local3) / 32);
};
if (_local4 < 1){
_local4 = 1;
};
if ( == false){
= angleGrad;
} else {
if (_local3 < 5){
= angleGrad;
} else {
if (_local3 < 180){
if (_local2 < 0){
= ( + ( * _local4));
} else {
= ( - ( * _local4));
};
} else {
if (_local2 < 0){
= ( - ( * _local4));
} else {
= ( + ( * _local4));
};
};
};
};
_local5 = (angleGrad + 90);
while (_local5 < 0) {
_local5 = (_local5 + 360);
};
= (((112.5 + _local5) / 45) % 8);
_local6 = (((currentFrame % frame_walk_lenght) + (frame_walk_lenght *
)) + 1);
if (
){
_local8 = (((currentFrame - frame_walk_start) % frame_walk_lenght) + 1);
if (_local8 >= frame_walk_lenght){
_local6 = (frame_walk_start + (
* frame_walk_lenght));
} else {
_local6 = ((_local8 + (frame_walk_lenght *
)) + frame_walk_start);
};
} else {
_local6 = ((frame_walk_lenght *
) + frame_stand);
};
this.gotoAndPlay(_local6);
if (((((( == true)) && (( <= 0)))) && (((_arg1._time - fire1Timer) > fire1Rate)))){
(_arg1, selectedWeapon);
};
if ((((((
== true)) && (( <= 0)))) && (((_arg1._time -
) > )))){
(_arg1, selectedWeapon2);
};
();
}
public function OnHit(_arg1:State_InGame, _arg2:int):void{
var _local3:int;
var _local4:uint;
var _local5:ColorTransform;
if ( == 0){
energy--;
if ((((dieMode == false)) && ((energy < 0)))){
_arg1.PlaySound(_arg1.vieni_ucciso);
dieMode = true;
deadlyWeapon = _arg2;
dieTime = _arg1._time;
_local3 = frame_morte_colpo1;
_local4 = frame_morte_colpo1_lenght;
this.gotoAndPlay((_local3 + ((_local4 + 1) *
)));
} else {
if (dieMode == false){
_arg1.PlaySound(_arg1.vieni_colpito);
hitTime = _arg1._time;
_local5 = new ColorTransform(5);
this.transform.colorTransform = _local5;
_local5 = null;
};
};
};
}
public function SelectPreviousPrimaryWeapon():int{
var _local1:uint;
if (selectedWeapon == 1){
return (-1);
};
_local1 = (selectedWeapon - 1);
while ((((_local1 > 0)) && ((ammoInfoArray[_local1].gunEnabled == false)))) {
_local1--;
};
if ((((_local1 > 0)) && (SelectWeapon(_local1)))){
return (_local1);
};
return (-1);
}
public function GetAmmoForSelectedSecondaryWeapon():Number{
return (ammoInfoArray[selectedWeapon2].ammoCount);
}
public function GetAmmoForSelectedPrimaryWeapon():Number{
return (ammoInfoArray[selectedWeapon].ammoCount);
}
}
}//package ThisGame
Section 73
//Png (ThisGame.Png)
package ThisGame {
import FoofaGeom.*;
public class Png extends IsoObject {
public var id:int;
public var dieMode:Boolean;
public var
:Number;
public var collisionCircle:Circle;
public static var refcount:int = 0;
public function Png():void{
collisionCircle = new Circle(x, y, 15);
refcount++;
id = refcount;
dieMode = false;
}
public function StopSoundLoops(_arg1:State_InGame){
}
}
}//package ThisGame
Section 74
//Png_boss (ThisGame.Png_boss)
package ThisGame {
import FoofaGeom.*;
import FoofaAI.*;
import flash.geom.*;
import flash.media.*;
import com.electrotank.util.*;
public class Png_boss extends Png {
const rechargeTime:Number = 5000;
const frame_morte:uint = 1;
const frame_walk_lenght:uint = 60;
const myValue:Number = 500;
const frame_walk:uint = 401;
const frame_morte_lenght = 50;
const maxShots:uint = 6;
var refVec:Vector2;
var path:Array;
private var :Boolean;
private var fire1Rate:Number;
var angleFrame:Number;
var frameToSkip:int;
public var deathX:Number;
var deadlyWeapon:int;
public var deathY:Number;
var angleRad:Number;
var targetPoint:Point;
private var
:Number;
var pfCell:Object;
var energy:Number;
private var
:uint;
private var
:uint;
var dir:Vector2;
var res:Number;
var lookingDir:Vector2;
private var :uint;
private var :uint;
var hitTime:Number;
private var :Number;
private var :uint;
var lastPfUpdate:Number;
private var :uint;
var iaStatus:int;
private var :Boolean;
private var :Point;
private var :uint;
var movingDir:Vector2;
var fire1Timer:Number;
private var :Point;
var toFade:Boolean;
private var :uint;
var deadType:int;
var angleGrad:Number;
var previousStatus:uint;
public var deathType:uint;
var frameToGo:int;
var pf:PathFinder;
var timeStartedBack:Number;
static var deadTypeCount:int = 0;
public function Png_boss():void{
addFrameScript(49, , 99, , 149, frame150, 199, , 249,
, 299, frame300, 349, , 399, , 459, , 519,
, 579, , 639, , 699, , 759,
, 819, , 879,
);
dir = new Vector2(0, 0);
previousStatus = 1;
toFade = false;
= 1;
fire1Timer = 0;
angleRad = 0;
angleGrad = 0;
energy = 10;
dieMode = false;
movingDir = new Vector2(0, 1);
lookingDir = new Vector2(0, 1);
refVec = new Vector2(0, 1);
hitTime = 0;
iaStatus = 0;
path = new Array();
= 0;
= 0;
= 0;
= false;
= 2;
= new Point(0, 0);
= new Point(0, 0);
= false;
gotoAndPlay(frame_walk);
= 50000;
= 1;
= 1;
= 1;
fire1Rate = 2000;
}
public function IsDying():Boolean{
return (dieMode);
}
private function
(_arg1):void{
var _local2:BulletBoss;
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) - 3) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) - 3) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) + 3) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) + 3) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
}
private function
(_arg1:State_InGame):void{
var _local2:uint;
dir.x = (x - _arg1.player.x);
dir.y = (y - _arg1.player.y);
_local2 = Math.sqrt(((dir.x * dir.x) + (dir.y * dir.y)));
dir.x = (dir.x / _local2);
dir.y = (dir.y / _local2);
timeStartedBack = _arg1._time;
}
private function
(_arg1):void{
var _local2:BulletBoss;
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) - 5) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) - 5) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin((((angleGrad + 180) * Math.PI) / 180))), Math.cos((((angleGrad + 180) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) + 5) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) + 5) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
}
private function
(_arg1):void{
var _local2:BulletBoss;
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) - 5) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) - 5) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin((((angleGrad + 180) * Math.PI) / 180))), Math.cos((((angleGrad + 180) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) + 5) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) + 5) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) - 10) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) - 10) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
_local2 = new BulletBoss();
_local2.senderIsPlayer = false;
_local2.x = (x - (Math.sin((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.y = (y + (Math.cos((((angleGrad + 180) * Math.PI) / 180)) * 20));
_local2.Init(_arg1, -(Math.sin(((((angleGrad + 180) + 10) * Math.PI) / 180))), Math.cos(((((angleGrad + 180) + 10) * Math.PI) / 180)));
_local2.lifeTime = 1000;
_arg1.bulletArray.push(_local2);
_arg1.isoObjectActiveArray.push(_local2);
}
function
(){
stop();
}
function
(){
stop();
}
function
(){
stop();
}
function (){
stop();
}
function (){
stop();
}
function (){
stop();
}
function frame300(){
stop();
}
public function Step(_arg1:State_InGame, _arg2):Boolean{
var _local3:ColorTransform;
var _local4:Number;
var _local5:uint;
var _local6:Boolean;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:*;
var _local11:int;
if ( == true){
if (currentFrame <
){
return (true);
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.EnemyKilled(_arg2, deathX, deathY);
deathType = 1;
_arg1.DrawBlood(angleFrame, deathType, (deathX - 87.5), (deathY - 125));
toDispose = true;
return (false);
//unresolved jump
};
if ((((dieMode == true)) || (((_arg1._time - hitTime) > 100)))){
_local3 = new ColorTransform();
this.transform.colorTransform = _local3;
};
angleRad = ((FoofaGeomUtils.AngleBetweenVectors2Rad(refVec, movingDir) + (Math.PI / 4)) + (Math.PI / 8));
while (angleRad < 0) {
angleRad = (angleRad + (2 * Math.PI));
};
while (angleRad > (2 * Math.PI)) {
angleRad = (angleRad - (2 * Math.PI));
};
angleGrad = ((((angleRad * 180) / Math.PI) + 90) + 22.5);
angleGrad = (angleGrad % 360);
while (angleGrad < 0) {
angleGrad = (angleGrad + 360);
};
angleFrame = Math.round((angleGrad / 45));
angleFrame = (angleFrame % 8);
if (dieMode == false){
_local4 = (((x - _arg1.player.x) * (x - _arg1.player.x)) + ((y - _arg1.player.y) * (y - _arg1.player.y)));
switch (iaStatus){
case 10:
if (((pf.IsWalkablePointEx((x + dir.x), (y + dir.y))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] = id;
x = (x + dir.x);
y = (y + dir.y);
collisionCircle.x = x;
collisionCircle.y = y;
} else {
iaStatus = 1;
};
if ((_arg1._time - timeStartedBack) >= 200){
iaStatus = 1;
};
break;
case 0:
pf = new PathFinder(_arg1.pfGrid, 300);
res = 0;
iaStatus = 1;
break;
case 1:
if (_local4 <
){
iaStatus = 3;
break;
};
if ((((_arg2 > _arg1.lastPfEnemyIndex)) && ((_arg2 <= (_arg1.lastPfEnemyIndex + 5))))){
lastPfUpdate = _arg1._time;
targetPoint = new Point(x, y);
_local5 = 0;
if (res != 0){
.x = x;
.y = y;
.x = ((_arg1.player.x + (Math.random() * 180)) - 90);
.y = ((_arg1.player.y + (Math.random() * 180)) - 90);
};
_local6 = false;
_local7 = 0;
while (!(_local6)) {
_local5++;
res = pf.Move(, , path);
if ((((_local5 == 10)) || (!((res == 0))))){
_local6 = true;
};
};
if (((!((res == -1))) && (!((res == 0))))){
iaStatus = 2;
};
};
break;
case 2:
if ((_arg1._time - lastPfUpdate) > 1500){
iaStatus = 1;
break;
} else {
if ((((targetPoint.x - x) * (targetPoint.x - x)) + ((targetPoint.y - y) * (targetPoint.y - y))) > 100){
movingDir.x = (targetPoint.x - x);
movingDir.y = (targetPoint.y - y);
movingDir.normalize(1);
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.rightNormal;
_local10 = _arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))];
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_local10 == -1)) || ((_local10 == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.leftNormal;
};
};
} else {
if (path.length > 0){
targetPoint = path.pop();
targetPoint.x = ((targetPoint.x * _arg1.pfGrid.cellPixelWidth) + (_arg1.pfGrid.cellPixelWidth / 2));
targetPoint.y = ((targetPoint.y * _arg1.pfGrid.cellPixelHeight) + (_arg1.pfGrid.cellPixelHeight / 2));
};
};
collisionCircle.x = x;
collisionCircle.y = y;
};
break;
case 3:
if (_local4 > (
- 10000)){
iaStatus = 1;
break;
};
movingDir.x = (_arg1.player.x - x);
movingDir.y = (_arg1.player.y - y);
movingDir.normalize(1);
this.gotoAndPlay((frame_walk + (frame_walk_lenght * angleFrame)));
if ((_arg1._time - fire1Timer) > fire1Rate){
_arg1.PlaySound(_arg1.weaponRifle_fire, 0.3);
fire1Timer = _arg1._time;
switch (){
case 1:
(_arg1);
break;
case 2:
if ( < 5){
(_arg1);
} else {
(_arg1);
};
break;
case 3:
if ( < 5){
(_arg1);
} else {
(_arg1);
};
break;
case 4:
if ( < 5){
if ( < 3){
(_arg1);
} else {
(_arg1);
};
} else {
(_arg1);
};
break;
};
++;
if ( >= maxShots){
iaStatus = 4;
= _arg1._time;
};
};
break;
case 4:
this.gotoAndPlay((frame_walk + (frame_walk_lenght * angleFrame)));
if ((_arg1._time -
) >= rechargeTime){
= 0;
iaStatus = 1;
};
break;
};
};
if (dieMode == true){
_local11 = 1;
if ((deadTypeCount % 16) > 8){
_local11 = 2;
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
= 49;
frameToGo = frame_morte;
frameToSkip = frame_morte_lenght;
_arg1.PlaySound(_arg1.pain_11);
deathX = x;
deathY = y;
= (frameToGo + (Math.floor((angleFrame / 2)) * frameToSkip));
this.gotoAndPlay();
= _arg1._time;
= (
+ );
--;
if (!){
if ((_arg1._time - _arg1.lastDeathTime) < 5000){
MemoryCrypto.incrementValue(_arg1.app.sounds, myValue);
} else {
MemoryCrypto.incrementValue(_arg1.app.sounds, myValue);
};
_arg1.lastDeathTime = _arg1._time;
};
= true;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.app.killCount++;
};
return (true);
}
public function OnHit(_arg1:State_InGame, _arg2:int):void{
var _local3:ColorTransform;
switch (_arg2){
case 1:
energy--;
break;
case 2:
energy = (energy - 3);
break;
case 3:
energy = (energy - 4);
break;
case 10:
energy = (energy - 2);
break;
};
if (_arg2 == 4){
} else {
if ((((dieMode == false)) && ((energy < 0)))){
dieMode = true;
deadlyWeapon = _arg2;
deadTypeCount++;
deadType = deadTypeCount;
} else {
if (dieMode == false){
hitTime = _arg1._time;
_local3 = new ColorTransform(5);
this.transform.colorTransform = _local3;
if (_arg2 != 3){
(_arg1);
previousStatus = iaStatus;
iaStatus = 10;
};
};
};
};
}
function (){
stop();
}
function (){
stop();
}
function (){
stop();
}
function (){
stop();
}
function (){
stop();
}
function
(){
stop();
}
function (){
stop();
}
function (){
stop();
}
public function SetBossLevel(_arg1:uint=1, _arg2:uint=1, _arg3:uint=1):void{
= _arg1;
= _arg2;
= _arg3;
switch (){
case 1:
= 50000;
break;
case 2:
= 70000;
fire1Rate = (fire1Rate * 0.9);
break;
case 3:
= 80000;
fire1Rate = (fire1Rate * 0.8);
if ( > 5){
fire1Rate = (fire1Rate * 0.75);
};
break;
case 4:
= 100000;
fire1Rate = (fire1Rate * 0.75);
if ( > 5){
fire1Rate = (fire1Rate * 0.6);
};
break;
};
}
function frame150(){
stop();
}
}
}//package ThisGame
Section 75
//Png_man1 (ThisGame.Png_man1)
package ThisGame {
import FoofaGeom.*;
import FoofaAI.*;
import flash.geom.*;
import flash.media.*;
import com.electrotank.util.*;
public class Png_man1 extends Png {
const rechargeTime:Number = 5000;
const fire1Rate:Number = 3000;
const frame_morte_colpo4_lenght:uint = 54;
const frame_morte_esplosione1:uint = 841;
const frame_morte_agonia_brucia:uint = 1321;
const frame_morte_colpo2_lenght:uint = 66;
const frame_morte_colpo2:uint = 577;
const frame_morte_colpo4:uint = 361;
const frame_morte_colpo1:uint = 1081;
const frame_morte_agonia_colpo_lenght:uint = 30;
const frame_walk_lenght:uint = 72;
const frame_morte_agonia_brucia_lenght:uint = 66;
const frame_morte_agonia_colpo:uint = 241;
const myValue:Number = 10;
const frame_morte_esplosione1_lenght:uint = 60;
const frame_walk:uint = 1681;
const frame_morte_bruciato:uint = 1;
const maxShots:uint = 6;
const frame_morte_colpo1_lenght:uint = 60;
const frame_morte_bruciato_lenght:uint = 60;
var refVec:Vector2;
var pf:PathFinder;
var timeStartedBack:Number;
var path:Array;
private var :Boolean;
var agonyMode:Boolean;
private var :Number;
var angleFrame:Number;
var frameToSkip:int;
public var deathX:Number;
var deadlyWeapon:int;
var angleRad:Number;
public var deathY:Number;
private var
:Number;
var targetPoint:Point;
var pfCell:Object;
var energy:Number;
private var
:uint;
var res:Number;
var dir:Vector2;
var lookingDir:Vector2;
private var :uint;
var agonySwitch:Boolean;
var hitTime:Number;
private var :Number;
var lastPfUpdate:Number;
private var :uint;
var iaStatus:int;
private var :Point;
private var :Boolean;
var movingDir:Vector2;
var fire1Timer:Number;
public var agony_loop:SoundChannel;
private var :Point;
var gui_combo;
var toFade:Boolean;
private var :uint;
var deadType:int;
var angleGrad:Number;
var previousStatus:uint;
public var deathType:uint;
var frameToGo:int;
static var deadTypeCount:int = 0;
public function Png_man1():void{
addFrameScript(59, frame60, 119, frame120, 179, frame180, 239, frame240, 269, frame270, 299, frame300, 329, frame330, 359, frame360, 413, frame414, 467, frame468, 521, frame522, 575, frame576, 641, frame642, 707, frame708, 773, frame774, 839, frame840, 899, frame900, 959, frame960, 1019, frame1020, 1079, frame1080, 1139, frame1140, 1199, frame1200, 1259, frame1260, 1319, frame1320, 1385, frame1386, 1451, frame1452, 1517, frame1518, 1583, frame1584, 1607, frame1608, 1631, frame1632, 1655, frame1656, 1679, frame1680, 1751, frame1752, 1823, frame1824, 1895, frame1896, 1967, frame1968, 2039, frame2040, 2111, frame2112, 2183, frame2184, 2255, frame2256);
dir = new Vector2(0, 0);
previousStatus = 1;
toFade = false;
= 1;
fire1Timer = 0;
angleRad = 0;
angleGrad = 0;
energy = 1;
dieMode = false;
agonyMode = false;
agonySwitch = false;
movingDir = new Vector2(0, 1);
lookingDir = new Vector2(0, 1);
refVec = new Vector2(0, 1);
hitTime = 0;
iaStatus = 0;
path = new Array();
= 0;
= 0;
= 0;
= false;
= 2;
= new Point(0, 0);
= new Point(0, 0);
= false;
gotoAndPlay(frame_walk);
}
public function IsDying():Boolean{
return (dieMode);
}
function frame840(){
stop();
}
function frame960(){
stop();
}
function frame2040(){
stop();
}
function frame1752(){
stop();
}
function frame1518(){
stop();
}
function frame1080(){
stop();
}
function frame180(){
stop();
}
function frame2184(){
stop();
}
function frame1632(){
gotoAndPlay(1609);
}
function frame1896(){
stop();
}
function frame1656(){
gotoAndPlay(1633);
}
private function
(_arg1:State_InGame):void{
var _local2:uint;
dir.x = (x - _arg1.player.x);
dir.y = (y - _arg1.player.y);
_local2 = Math.sqrt(((dir.x * dir.x) + (dir.y * dir.y)));
dir.x = (dir.x / _local2);
dir.y = (dir.y / _local2);
timeStartedBack = _arg1._time;
}
function frame522(){
gotoAndPlay(1633);
}
function frame642(){
stop();
}
function frame1320(){
stop();
}
function frame414(){
gotoAndPlay(1585);
}
function frame1200(){
stop();
}
function frame774(){
stop();
}
function frame1680(){
gotoAndPlay(1637);
}
function frame300(){
stop();
}
function frame60(){
stop();
}
function frame1452(){
stop();
}
public function Step(_arg1:State_InGame, _arg2):Boolean{
var _local3:ColorTransform;
var _local4:Number;
var _local5:uint;
var _local6:Boolean;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:*;
var _local11:Bullet;
var _local12:Number;
var _local13:Number;
var _local14:*;
var _local15:int;
var _local16:*;
if ( == true){
if (currentFrame <
){
return (true);
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.EnemyKilled(_arg2, deathX, deathY);
_arg1.DrawBlood(angleFrame, deathType, (deathX - 87.5), (deathY - 125));
toDispose = true;
return (false);
//unresolved jump
};
if (((agonyMode) && (((_arg1._time - ) > 10000)))){
deadlyWeapon = 1;
dieMode = true;
= true;
};
if ((((dieMode == true)) || (((_arg1._time - hitTime) > 100)))){
_local3 = new ColorTransform();
this.transform.colorTransform = _local3;
};
angleRad = ((FoofaGeomUtils.AngleBetweenVectors2Rad(refVec, movingDir) + (Math.PI / 4)) + (Math.PI / 8));
while (angleRad < 0) {
angleRad = (angleRad + (2 * Math.PI));
};
while (angleRad > (2 * Math.PI)) {
angleRad = (angleRad - (2 * Math.PI));
};
angleGrad = ((((angleRad * 180) / Math.PI) + 90) + 22.5);
angleGrad = (angleGrad % 360);
while (angleGrad < 0) {
angleGrad = (angleGrad + 360);
};
angleFrame = Math.round((angleGrad / 45));
angleFrame = (angleFrame % 8);
if ((((dieMode == false)) && ((agonyMode == false)))){
_local4 = (((x - _arg1.player.x) * (x - _arg1.player.x)) + ((y - _arg1.player.y) * (y - _arg1.player.y)));
switch (iaStatus){
case 10:
if (((pf.IsWalkablePointEx((x + dir.x), (y + dir.y))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] = id;
x = (x + dir.x);
y = (y + dir.y);
collisionCircle.x = x;
collisionCircle.y = y;
} else {
iaStatus = 1;
};
if ((_arg1._time - timeStartedBack) >= 200){
iaStatus = 1;
};
break;
case 0:
pf = new PathFinder(_arg1.pfGrid, 300);
res = 0;
iaStatus = 1;
break;
case 1:
if (_local4 < 40000){
iaStatus = 3;
break;
};
if ((((_arg2 > _arg1.lastPfEnemyIndex)) && ((_arg2 <= (_arg1.lastPfEnemyIndex + 5))))){
lastPfUpdate = _arg1._time;
targetPoint = new Point(x, y);
_local5 = 0;
if (res != 0){
.x = x;
.y = y;
.x = ((_arg1.player.x + (Math.random() * 180)) - 90);
.y = ((_arg1.player.y + (Math.random() * 180)) - 90);
};
_local6 = false;
_local7 = 0;
while (!(_local6)) {
_local5++;
res = pf.Move(, , path);
if ((((_local5 == 10)) || (!((res == 0))))){
_local6 = true;
};
};
if (((!((res == -1))) && (!((res == 0))))){
iaStatus = 2;
};
};
break;
case 2:
if ((_arg1._time - lastPfUpdate) > 1500){
iaStatus = 1;
break;
} else {
if ((((targetPoint.x - x) * (targetPoint.x - x)) + ((targetPoint.y - y) * (targetPoint.y - y))) > 100){
movingDir.x = (targetPoint.x - x);
movingDir.y = (targetPoint.y - y);
movingDir.normalize(1);
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.rightNormal;
_local10 = _arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))];
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_local10 == -1)) || ((_local10 == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.leftNormal;
};
};
} else {
if (path.length > 0){
targetPoint = path.pop();
targetPoint.x = ((targetPoint.x * _arg1.pfGrid.cellPixelWidth) + (_arg1.pfGrid.cellPixelWidth / 2));
targetPoint.y = ((targetPoint.y * _arg1.pfGrid.cellPixelHeight) + (_arg1.pfGrid.cellPixelHeight / 2));
};
};
collisionCircle.x = x;
collisionCircle.y = y;
};
break;
case 3:
if (_local4 > 50000){
iaStatus = 1;
break;
};
movingDir.x = (_arg1.player.x - x);
movingDir.y = (_arg1.player.y - y);
movingDir.normalize(1);
this.gotoAndPlay((frame_walk + (frame_walk_lenght * angleFrame)));
if ((_arg1._time - fire1Timer) > fire1Rate){
_arg1.PlaySound(_arg1.weaponGun_fire, 0.3);
fire1Timer = _arg1._time;
_local11 = new Bullet();
_local11.x = x;
_local11.y = y;
if (_local4 <= 100){
_local12 = 0;
_local12 = 0;
} else {
_local12 = Math.floor(((Math.random() * 61) - 30));
_local13 = Math.floor(((Math.random() * 61) - 30));
};
_local14 = new Vector2(((_arg1.player.x + _local12) - x), ((_arg1.player.y + _local13) - y));
_local11.Init(_arg1, (_local14.x / _local14.length), (_local14.y / _local14.length));
_arg1.bulletArray.push(_local11);
_arg1.isoObjectActiveArray.push(_local11);
++;
if ( >= maxShots){
iaStatus = 4;
= _arg1._time;
};
};
break;
case 4:
this.gotoAndPlay((frame_walk + (frame_walk_lenght * angleFrame)));
if ((_arg1._time -
) >= rechargeTime){
= 0;
iaStatus = 1;
};
break;
};
};
if (dieMode == true){
if (((agonyMode) && (agony_loop))){
_arg1.StopLoop(agony_loop);
};
_local15 = 1;
if ((deadTypeCount % 16) > 8){
_local15 = 2;
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
if (agonyMode == true){
deathType = 3;
switch (deadlyWeapon){
case 2:
frameToGo = frame_morte_agonia_brucia;
frameToSkip = frame_morte_agonia_brucia_lenght;
= frame_morte_agonia_brucia_lenght;
break;
default:
frameToGo = frame_morte_agonia_colpo;
frameToSkip = frame_morte_agonia_colpo_lenght;
= frame_morte_agonia_colpo_lenght;
break;
};
} else {
= 59;
switch (deadlyWeapon){
case 10:
case 1:
switch ((deadType % 2)){
case 0:
deathType = 1;
frameToGo = frame_morte_colpo1;
frameToSkip = frame_morte_colpo1_lenght;
if (_local15 == 1){
_arg1.PlaySound(_arg1.pain_11);
} else {
_arg1.PlaySound(_arg1.pain_14);
};
break;
case 1:
deathType = 2;
frameToGo = frame_morte_colpo2;
frameToSkip = frame_morte_colpo2_lenght;
if (_local15 == 1){
_arg1.PlaySound(_arg1.pain_05);
} else {
_arg1.PlaySound(_arg1.pain_06);
};
break;
};
break;
case 2:
deathType = 0;
_arg1.PlaySound(_arg1.pain_15);
frameToGo = frame_morte_bruciato;
frameToSkip = frame_morte_bruciato_lenght;
break;
case 3:
deathType = 4;
frameToGo = frame_morte_esplosione1;
frameToSkip = frame_morte_esplosione1_lenght;
_arg1.PlaySound(_arg1.pain_10);
break;
default:
frameToGo = frame_morte_colpo1;
frameToSkip = frame_morte_colpo1_lenght;
_arg1.PlaySound(_arg1.pain_11);
break;
};
};
deathX = x;
deathY = y;
= (frameToGo + (Math.floor((angleFrame / 2)) * frameToSkip));
this.gotoAndPlay();
= _arg1._time;
= (
+ );
--;
if (!){
if ((_arg1._time - _arg1.lastDeathTime) < 5000){
_arg1.consecutiveDeaths++;
MemoryCrypto.incrementValue(_arg1.app.sounds, (myValue * _arg1.consecutiveDeaths));
_local16 = new ComboMsg(("x" + _arg1.consecutiveDeaths), deathX, deathY);
_arg1.comboArray.push(_local16);
_arg1.isoObjectActiveArray.push(_local16);
} else {
_arg1.consecutiveDeaths = 1;
MemoryCrypto.incrementValue(_arg1.app.sounds, myValue);
};
_arg1.lastDeathTime = _arg1._time;
} else {
MemoryCrypto.incrementValue(_arg1.app.sounds, (myValue / 2));
};
= true;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.app.killCount++;
} else {
if (agonyMode == true){
if (agonySwitch == true){
agony_loop = _arg1.PlayLoop(_arg1.grida_medic);
agonySwitch = false;
frameToGo = frame_morte_colpo4;
frameToSkip = frame_morte_colpo4_lenght;
this.gotoAndPlay((frameToGo + (Math.floor((angleFrame / 2)) * frameToSkip)));
switch ((deadTypeCount % 4)){
case 0:
_arg1.PlaySound(_arg1.pain_01);
break;
case 1:
_arg1.PlaySound(_arg1.pain_02);
break;
case 2:
_arg1.PlaySound(_arg1.pain_03);
break;
case 3:
_arg1.PlaySound(_arg1.pain_04);
break;
};
} else {
if (((agony_loop) && (((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) > 200000)))){
_arg1.StopLoop(agony_loop);
};
};
};
};
return (true);
}
function frame1584(){
stop();
}
public function OnHit(_arg1:State_InGame, _arg2:int):void{
var _local3:ColorTransform;
switch (_arg2){
case 1:
energy--;
break;
case 2:
energy = (energy - 2);
break;
case 3:
energy = (energy - 6);
break;
case 10:
energy = (energy - 100);
break;
};
if ((((_arg2 == 4)) && ((agonyMode == false)))){
agonyMode = true;
agonySwitch = true;
energy = 1;
= _arg1._time;
} else {
if ((((((agonyMode == false)) && ((dieMode == false)))) && ((energy < 0)))){
if ((((((agonyMode == false)) && ((_arg2 == 1)))) && ((Math.random() < 0.25)))){
agonyMode = true;
agonySwitch = true;
= _arg1._time;
} else {
dieMode = true;
deadlyWeapon = _arg2;
deadTypeCount++;
deadType = deadTypeCount;
};
} else {
if ((((agonyMode == true)) && ((agonySwitch == false)))){
dieMode = true;
deadlyWeapon = _arg2;
} else {
if (dieMode == false){
hitTime = _arg1._time;
_local3 = new ColorTransform(5);
this.transform.colorTransform = _local3;
if (_arg2 != 3){
(_arg1);
previousStatus = iaStatus;
iaStatus = 10;
};
};
};
};
};
}
function frame330(){
stop();
}
function frame576(){
gotoAndPlay(1657);
}
function frame468(){
gotoAndPlay(1609);
}
function frame900(){
stop();
}
function frame1140(){
stop();
}
function frame1260(){
stop();
}
function frame1020(){
stop();
}
function frame1824(){
stop();
}
function frame240(){
stop();
}
function frame120(){
stop();
}
function frame360(){
stop();
}
function frame1386(){
stop();
}
function frame2256(){
stop();
}
function frame1608(){
gotoAndPlay(1585);
}
function frame1968(){
stop();
}
function frame2112(){
stop();
}
function frame708(){
stop();
}
function frame270(){
stop();
}
}
}//package ThisGame
Section 76
//Png_man2 (ThisGame.Png_man2)
package ThisGame {
import FoofaGeom.*;
import FoofaAI.*;
import flash.geom.*;
import flash.media.*;
import com.electrotank.util.*;
public class Png_man2 extends Png {
const rechargeTime:Number = 10000;
const fire1Rate:Number = 2500;
const frame_morte_colpo4_lenght:uint = 54;
const frame_morte_esplosione1:uint = 841;
const frame_morte_agonia_brucia:uint = 1321;
const frame_morte_colpo2_lenght:uint = 66;
const frame_morte_colpo2:uint = 577;
const frame_morte_colpo4:uint = 361;
const frame_morte_colpo1:uint = 1081;
const frame_morte_agonia_colpo_lenght:uint = 30;
const frame_walk_lenght:uint = 72;
const frame_morte_agonia_brucia_lenght:uint = 66;
const frame_morte_agonia_colpo:uint = 241;
const myValue:Number = 10;
const frame_morte_esplosione1_lenght:uint = 60;
const frame_walk:uint = 1681;
const frame_morte_bruciato:uint = 1;
const maxShots:uint = 12;
const frame_morte_colpo1_lenght:uint = 60;
const frame_morte_bruciato_lenght:uint = 60;
var refVec:Vector2;
var pf:PathFinder;
var timeStartedBack:Number;
var path:Array;
private var :Boolean;
var agonyMode:Boolean;
private var :Number;
var angleFrame:Number;
var frameToSkip:int;
public var deathX:Number;
var deadlyWeapon:int;
var angleRad:Number;
public var deathY:Number;
private var
:Number;
var targetPoint:Point;
var pfCell:Object;
var energy:Number;
private var
:uint;
var res:Number;
var dir:Vector2;
var lookingDir:Vector2;
private var :uint;
var agonySwitch:Boolean;
var hitTime:Number;
var lastPfUpdate:Number;
private var :uint;
var iaStatus:int;
private var :Point;
private var :Boolean;
var movingDir:Vector2;
var fire1Timer:Number;
public var :uint;
public var agony_loop:SoundChannel;
private var :Point;
var gui_combo;
private var :uint;
var deadType:int;
var angleGrad:Number;
var previousStatus:uint;
public var deathType:uint;
var frameToGo:int;
static var deadTypeCount:int = 0;
public function Png_man2():void{
addFrameScript(59, frame60, 119, frame120, 179, frame180, 239, frame240, 269, frame270, 299, frame300, 329, frame330, 359, frame360, 413, frame414, 467, frame468, 521, frame522, 575, frame576, 641, frame642, 707, frame708, 773, frame774, 839, frame840, 899, frame900, 959, frame960, 1019, frame1020, 1079, frame1080, 1139, frame1140, 1199, frame1200, 1259, frame1260, 1319, frame1320, 1385, frame1386, 1451, frame1452, 1517, frame1518, 1583, frame1584, 1607, frame1608, 1631, frame1632, 1655, frame1656, 1679, frame1680, 1751, frame1752, 1823, frame1824, 1895, frame1896, 1967, frame1968, 2039, frame2040, 2111, frame2112, 2183, frame2184, 2255, frame2256);
dir = new Vector2(0, 0);
previousStatus = 1;
= 1;
fire1Timer = 0;
angleRad = 0;
angleGrad = 0;
energy = 1;
dieMode = false;
agonyMode = false;
agonySwitch = false;
movingDir = new Vector2(0, 1);
lookingDir = new Vector2(0, 1);
refVec = new Vector2(0, 1);
hitTime = 0;
iaStatus = 0;
path = new Array();
= 0;
= 0;
= 0;
= 0;
= false;
= 2;
= new Point(0, 0);
= new Point(0, 0);
= false;
gotoAndPlay(frame_walk);
}
public function IsDying():Boolean{
return (dieMode);
}
function frame840(){
stop();
}
function frame960(){
stop();
}
function frame2040(){
stop();
}
function frame1752(){
stop();
}
function frame1518(){
stop();
}
function frame1080(){
stop();
}
function frame180(){
stop();
}
function frame2184(){
stop();
}
function frame1632(){
gotoAndPlay(1609);
}
function frame1896(){
stop();
}
function frame1656(){
gotoAndPlay(1633);
}
private function
(_arg1:State_InGame):void{
var _local2:uint;
dir.x = (x - _arg1.player.x);
dir.y = (y - _arg1.player.y);
_local2 = Math.sqrt(((dir.x * dir.x) + (dir.y * dir.y)));
dir.x = (dir.x / _local2);
dir.y = (dir.y / _local2);
timeStartedBack = _arg1._time;
}
function frame522(){
gotoAndPlay(1633);
}
function frame642(){
stop();
}
function frame1320(){
stop();
}
function frame414(){
gotoAndPlay(1585);
}
function frame1200(){
stop();
}
function frame1680(){
gotoAndPlay(1657);
}
function frame300(){
stop();
}
function frame60(){
stop();
}
function frame1452(){
stop();
}
public function Step(_arg1:State_InGame, _arg2):Boolean{
var _local3:ColorTransform;
var _local4:Number;
var _local5:uint;
var _local6:Boolean;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:*;
var _local11:Bullet;
var _local12:Number;
var _local13:Number;
var _local14:*;
var _local15:int;
var _local16:*;
if ( == true){
if (currentFrame <
){
return (true);
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.EnemyKilled(_arg2, deathX, deathY);
_arg1.DrawBlood(, deathType, (deathX - 87.5), (deathY - 125));
toDispose = true;
return (false);
//unresolved jump
};
if (((agonyMode) && (((_arg1._time - ) > 10000)))){
deadlyWeapon = 1;
dieMode = true;
= true;
};
if ((((dieMode == true)) || (((_arg1._time - hitTime) > 100)))){
_local3 = new ColorTransform();
this.transform.colorTransform = _local3;
};
angleRad = ((FoofaGeomUtils.AngleBetweenVectors2Rad(refVec, movingDir) + (Math.PI / 4)) + (Math.PI / 8));
while (angleRad < 0) {
angleRad = (angleRad + (2 * Math.PI));
};
while (angleRad > (2 * Math.PI)) {
angleRad = (angleRad - (2 * Math.PI));
};
angleGrad = ((((angleRad * 180) / Math.PI) + 90) + 22.5);
angleGrad = (angleGrad % 360);
while (angleGrad < 0) {
angleGrad = (angleGrad + 360);
};
angleFrame = Math.round((angleGrad / 45));
angleFrame = (angleFrame % 8);
if ((((dieMode == false)) && ((agonyMode == false)))){
_local4 = (((x - _arg1.player.x) * (x - _arg1.player.x)) + ((y - _arg1.player.y) * (y - _arg1.player.y)));
switch (iaStatus){
case 10:
if (((pf.IsWalkablePointEx((x + dir.x), (y + dir.y))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] = id;
x = (x + dir.x);
y = (y + dir.y);
collisionCircle.x = x;
collisionCircle.y = y;
} else {
iaStatus = 1;
};
if ((_arg1._time - timeStartedBack) >= 200){
iaStatus = 1;
};
break;
case 0:
pf = new PathFinder(_arg1.pfGrid, 300);
res = 0;
iaStatus = 1;
break;
case 1:
if (_local4 < 40000){
iaStatus = 3;
break;
};
if ((((_arg2 > _arg1.lastPfEnemyIndex)) && ((_arg2 <= (_arg1.lastPfEnemyIndex + 5))))){
lastPfUpdate = _arg1._time;
targetPoint = new Point(x, y);
_local5 = 0;
if (res != 0){
.x = x;
.y = y;
.x = ((_arg1.player.x + (Math.random() * 180)) - 90);
.y = ((_arg1.player.y + (Math.random() * 180)) - 90);
};
_local6 = false;
_local7 = 0;
while (!(_local6)) {
_local5++;
res = pf.Move(, , path);
if ((((_local5 == 10)) || (!((res == 0))))){
_local6 = true;
};
};
if (((!((res == -1))) && (!((res == 0))))){
iaStatus = 2;
};
};
break;
case 2:
if ((_arg1._time - lastPfUpdate) > 1500){
iaStatus = 1;
break;
} else {
if ((((targetPoint.x - x) * (targetPoint.x - x)) + ((targetPoint.y - y) * (targetPoint.y - y))) > 100){
movingDir.x = (targetPoint.x - x);
movingDir.y = (targetPoint.y - y);
movingDir.normalize(1);
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.rightNormal;
_local10 = _arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))];
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.leftNormal;
};
};
} else {
if (path.length > 0){
targetPoint = path.pop();
targetPoint.x = ((targetPoint.x * _arg1.pfGrid.cellPixelWidth) + (_arg1.pfGrid.cellPixelWidth / 2));
targetPoint.y = ((targetPoint.y * _arg1.pfGrid.cellPixelHeight) + (_arg1.pfGrid.cellPixelHeight / 2));
};
};
collisionCircle.x = x;
collisionCircle.y = y;
};
break;
case 3:
if (_local4 > 50000){
iaStatus = 1;
break;
};
movingDir.x = (_arg1.player.x - x);
movingDir.y = (_arg1.player.y - y);
movingDir.normalize(1);
this.gotoAndPlay((frame_walk + (frame_walk_lenght * angleFrame)));
if ((_arg1._time - fire1Timer) > fire1Rate){
_arg1.PlaySound(_arg1.weaponGun_fire, 0.3);
fire1Timer = _arg1._time;
_local11 = new Bullet();
_local11.x = x;
_local11.y = y;
if (_local4 <= 100){
_local12 = 0;
_local12 = 0;
} else {
_local12 = Math.floor(((Math.random() * 61) - 30));
_local13 = Math.floor(((Math.random() * 61) - 30));
};
_local14 = new Vector2(((_arg1.player.x + _local12) - x), ((_arg1.player.y + _local13) - y));
_local11.Init(_arg1, (_local14.x / _local14.length), (_local14.y / _local14.length));
_arg1.bulletArray.push(_local11);
_arg1.isoObjectActiveArray.push(_local11);
++;
if ( >= maxShots){
iaStatus = 4;
= _arg1._time;
};
};
break;
case 4:
this.gotoAndPlay((frame_walk + (frame_walk_lenght * angleFrame)));
if ((_arg1._time -
) >= rechargeTime){
= 0;
iaStatus = 1;
};
break;
};
};
if (dieMode == true){
if (((agonyMode) && (agony_loop))){
_arg1.StopLoop(agony_loop);
};
_local15 = 1;
if ((deadTypeCount % 16) > 8){
_local15 = 2;
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
if (agonyMode == true){
deathType = 3;
switch (deadlyWeapon){
case 2:
frameToGo = frame_morte_agonia_brucia;
frameToSkip = frame_morte_agonia_brucia_lenght;
= frame_morte_agonia_brucia_lenght;
break;
default:
frameToGo = frame_morte_agonia_colpo;
frameToSkip = frame_morte_agonia_colpo_lenght;
= frame_morte_agonia_colpo_lenght;
break;
};
} else {
= 59;
switch (deadlyWeapon){
case 10:
case 1:
switch ((deadType % 2)){
case 0:
deathType = 1;
frameToGo = frame_morte_colpo1;
frameToSkip = frame_morte_colpo1_lenght;
if (_local15 == 1){
_arg1.PlaySound(_arg1.pain_11);
} else {
_arg1.PlaySound(_arg1.pain_14);
};
break;
case 1:
deathType = 2;
frameToGo = frame_morte_colpo2;
frameToSkip = frame_morte_colpo2_lenght;
if (_local15 == 1){
_arg1.PlaySound(_arg1.pain_05);
} else {
_arg1.PlaySound(_arg1.pain_06);
};
break;
};
break;
case 2:
deathType = 0;
_arg1.PlaySound(_arg1.pain_15);
frameToGo = frame_morte_bruciato;
frameToSkip = frame_morte_bruciato_lenght;
break;
case 3:
deathType = 4;
frameToGo = frame_morte_esplosione1;
frameToSkip = frame_morte_esplosione1_lenght;
_arg1.PlaySound(_arg1.pain_10);
break;
default:
frameToGo = frame_morte_colpo1;
frameToSkip = frame_morte_colpo1_lenght;
_arg1.PlaySound(_arg1.pain_11);
break;
};
};
deathX = x;
deathY = y;
= angleFrame;
= (frameToGo + (Math.floor((angleFrame / 2)) * frameToSkip));
this.gotoAndPlay();
= (
+ );
--;
if (!){
if ((_arg1._time - _arg1.lastDeathTime) < 5000){
_arg1.consecutiveDeaths++;
MemoryCrypto.incrementValue(_arg1.app.sounds, (myValue * _arg1.consecutiveDeaths));
_local16 = new ComboMsg(("x" + _arg1.consecutiveDeaths), deathX, deathY);
_arg1.comboArray.push(_local16);
_arg1.isoObjectActiveArray.push(_local16);
} else {
_arg1.consecutiveDeaths = 1;
MemoryCrypto.incrementValue(_arg1.app.sounds, myValue);
};
_arg1.lastDeathTime = _arg1._time;
} else {
MemoryCrypto.incrementValue(_arg1.app.sounds, (myValue / 2));
};
= true;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.app.killCount++;
} else {
if (agonyMode == true){
if (agonySwitch == true){
agony_loop = _arg1.PlayLoop(_arg1.grida_medic);
agonySwitch = false;
frameToGo = frame_morte_colpo4;
frameToSkip = frame_morte_colpo4_lenght;
this.gotoAndPlay((frameToGo + (Math.floor((angleFrame / 2)) * frameToSkip)));
switch ((deadTypeCount % 4)){
case 0:
_arg1.PlaySound(_arg1.pain_01);
break;
case 1:
_arg1.PlaySound(_arg1.pain_02);
break;
case 2:
_arg1.PlaySound(_arg1.pain_03);
break;
case 3:
_arg1.PlaySound(_arg1.pain_04);
break;
};
} else {
if (((agony_loop) && (((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) > 200000)))){
_arg1.StopLoop(agony_loop);
};
};
};
};
return (true);
}
function frame774(){
stop();
}
public function OnHit(_arg1:State_InGame, _arg2:int):void{
var _local3:ColorTransform;
switch (_arg2){
case 1:
energy--;
break;
case 2:
energy = (energy - 2);
break;
case 3:
energy = (energy - 6);
break;
case 10:
energy = (energy - 100);
break;
};
if ((((_arg2 == 4)) && ((agonyMode == false)))){
agonyMode = true;
agonySwitch = true;
energy = 1;
= _arg1._time;
} else {
if ((((((agonyMode == false)) && ((dieMode == false)))) && ((energy < 0)))){
if ((((((agonyMode == false)) && ((_arg2 == 1)))) && ((Math.random() < 0.25)))){
agonyMode = true;
agonySwitch = true;
= _arg1._time;
} else {
dieMode = true;
deadlyWeapon = _arg2;
deadTypeCount++;
deadType = deadTypeCount;
};
} else {
if ((((agonyMode == true)) && ((agonySwitch == false)))){
dieMode = true;
deadlyWeapon = _arg2;
} else {
if (dieMode == false){
hitTime = _arg1._time;
_local3 = new ColorTransform(5);
this.transform.colorTransform = _local3;
if (_arg2 != 3){
(_arg1);
previousStatus = iaStatus;
iaStatus = 10;
};
};
};
};
};
}
function frame1584(){
stop();
}
function frame330(){
stop();
}
function frame576(){
gotoAndPlay(1657);
}
function frame468(){
gotoAndPlay(1609);
}
function frame900(){
stop();
}
function frame1140(){
stop();
}
function frame1260(){
stop();
}
function frame1020(){
stop();
}
function frame1824(){
stop();
}
function frame240(){
stop();
}
function frame120(){
stop();
}
function frame360(){
stop();
}
function frame1386(){
stop();
}
function frame2256(){
stop();
}
function frame1608(){
gotoAndPlay(1585);
}
function frame1968(){
stop();
}
function frame2112(){
stop();
}
function frame708(){
stop();
}
function frame270(){
stop();
}
}
}//package ThisGame
Section 77
//Png_man2_arrows (ThisGame.Png_man2_arrows)
package ThisGame {
import FoofaGeom.*;
import FoofaAI.*;
import flash.geom.*;
import flash.media.*;
import com.electrotank.util.*;
public class Png_man2_arrows extends Png {
const fire1Rate:Number = 3000;
const frame_morte_colpo4_lenght:uint = 54;
const frame_morte_esplosione1:uint = 841;
const frame_morte_agonia_brucia:uint = 1345;
const frame_morte_colpo2_lenght:uint = 66;
const frame_morte_colpo2:uint = 577;
const frame_morte_colpo4:uint = 361;
const frame_morte_colpo1:uint = 1081;
const frame_morte_agonia_colpo_lenght:uint = 30;
const frame_walk_lenght:uint = 72;
const frame_morte_agonia_brucia_lenght:uint = 66;
const frame_morte_agonia_colpo:uint = 241;
const myValue:Number = 10;
const frame_morte_esplosione1_lenght:uint = 60;
const frame_walk:uint = 1705;
const frame_morte_bruciato:uint = 1;
const frame_morte_colpo1_lenght:uint = 66;
const frame_morte_bruciato_lenght:uint = 60;
var refVec:Vector2;
var pf:PathFinder;
var timeStartedBack:Number;
var path:Array;
private var :Boolean;
var agonyMode:Boolean;
private var :Number;
var angleFrame:Number;
var frameToSkip:int;
public var deathX:Number;
var deadlyWeapon:int;
var angleRad:Number;
public var deathY:Number;
var targetPoint:Point;
var pfCell:Object;
var energy:Number;
private var
:uint;
var res:Number;
var dir:Vector2;
var lookingDir:Vector2;
var agonySwitch:Boolean;
var hitTime:Number;
var lastPfUpdate:Number;
private var :uint;
var iaStatus:int;
private var :Point;
private var :Boolean;
var movingDir:Vector2;
var fire1Timer:Number;
public var agony_loop:SoundChannel;
private var :Point;
var gui_combo;
private var :uint;
var deadType:int;
var angleGrad:Number;
var previousStatus:uint;
public var deathType:uint;
var frameToGo:int;
var lastFireThrowerTime:int;
static var deadTypeCount:int = 0;
public function Png_man2_arrows(){
addFrameScript(59, frame60, 119, frame120, 179, frame180, 239, frame240, 269, frame270, 299, frame300, 329, frame330, 359, frame360, 413, frame414, 467, frame468, 521, frame522, 575, frame576, 641, frame642, 707, frame708, 773, frame774, 839, frame840, 899, frame900, 959, frame960, 1019, frame1020, 1079, frame1080, 1145, , 1211, , 1277, , 1343, , 1409, , 1475,
, 1541, , 1607, frame1608, 1631, frame1632, 1655, frame1656, 1679, frame1680, 1703,
, 1775, , 1847, , 1919, , 1991, , 2063, , 2135, , 2207, , 2279, );
dir = new Vector2(0, 0);
previousStatus = 1;
= 1;
fire1Timer = 0;
angleRad = 0;
angleGrad = 0;
energy = 1;
dieMode = false;
agonyMode = false;
agonySwitch = false;
movingDir = new Vector2(0, 1);
lookingDir = new Vector2(0, 1);
refVec = new Vector2(0, 1);
hitTime = 0;
iaStatus = 0;
path = new Array();
= 0;
= 0;
= false;
= 2;
= new Point(0, 0);
= new Point(0, 0);
= false;
gotoAndPlay(frame_walk);
}
public function IsDying():Boolean{
return (dieMode);
}
function frame840(){
stop();
}
function (){
stop();
}
function frame960(){
stop();
}
function (){
stop();
}
function frame1632(){
gotoAndPlay(1609);
}
function frame1080(){
stop();
}
function frame180(){
stop();
}
function (){
stop();
}
function frame1656(){
gotoAndPlay(1633);
}
function (){
stop();
}
function (){
stop();
}
private function
(_arg1:State_InGame):void{
var _local2:uint;
dir.x = (x - _arg1.player.x);
dir.y = (y - _arg1.player.y);
_local2 = Math.sqrt(((dir.x * dir.x) + (dir.y * dir.y)));
dir.x = (dir.x / _local2);
dir.y = (dir.y / _local2);
timeStartedBack = _arg1._time;
}
function frame522(){
gotoAndPlay(1657);
}
function frame642(){
stop();
}
function frame414(){
gotoAndPlay(1609);
}
function (){
stop();
}
function frame774(){
stop();
}
function frame1680(){
gotoAndPlay(1657);
}
function frame300(){
stop();
}
function frame60(){
stop();
}
function (){
stop();
}
public function Step(_arg1:State_InGame, _arg2):Boolean{
var _local3:ColorTransform;
var _local4:Number;
var _local5:uint;
var _local6:Boolean;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:*;
var _local11:Bullet_arrow;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:*;
var _local16:int;
var _local17:*;
if ( == true){
if (currentFrame <
){
return (true);
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.EnemyKilled(_arg2, deathX, deathY);
_arg1.DrawBlood(angleFrame, deathType, (deathX - 87.5), (deathY - 125));
toDispose = true;
return (false);
//unresolved jump
};
if ((((dieMode == true)) || (((_arg1._time - hitTime) > 100)))){
_local3 = new ColorTransform();
this.transform.colorTransform = _local3;
};
angleRad = ((FoofaGeomUtils.AngleBetweenVectors2Rad(refVec, movingDir) + (Math.PI / 4)) + (Math.PI / 8));
while (angleRad < 0) {
angleRad = (angleRad + (2 * Math.PI));
};
while (angleRad > (2 * Math.PI)) {
angleRad = (angleRad - (2 * Math.PI));
};
angleGrad = ((((angleRad * 180) / Math.PI) + 90) + 22.5);
angleGrad = (angleGrad % 360);
while (angleGrad < 0) {
angleGrad = (angleGrad + 360);
};
angleFrame = Math.round((angleGrad / 45));
angleFrame = (angleFrame % 8);
if ((((dieMode == false)) && ((agonyMode == false)))){
_local4 = (((x - _arg1.player.x) * (x - _arg1.player.x)) + ((y - _arg1.player.y) * (y - _arg1.player.y)));
switch (iaStatus){
case 10:
if (((pf.IsWalkablePointEx((x + dir.x), (y + dir.y))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + dir.x), (y + dir.y)))] = id;
x = (x + dir.x);
y = (y + dir.y);
collisionCircle.x = x;
collisionCircle.y = y;
} else {
iaStatus = 1;
};
if ((_arg1._time - timeStartedBack) >= 200){
iaStatus = 1;
};
break;
case 0:
pf = new PathFinder(_arg1.pfGrid, 300);
res = 0;
iaStatus = 1;
break;
case 1:
if (_local4 < 25000){
iaStatus = 3;
break;
};
if ((((_arg2 > _arg1.lastPfEnemyIndex)) && ((_arg2 <= (_arg1.lastPfEnemyIndex + 5))))){
lastPfUpdate = _arg1._time;
targetPoint = new Point(x, y);
_local5 = 0;
if (res != 0){
.x = x;
.y = y;
.x = ((_arg1.player.x + (Math.random() * 180)) - 90);
.y = ((_arg1.player.y + (Math.random() * 180)) - 90);
};
_local6 = false;
_local7 = 0;
while (!(_local6)) {
_local5++;
res = pf.Move(, , path);
if ((((_local5 == 10)) || (!((res == 0))))){
_local6 = true;
};
};
if (((!((res == -1))) && (!((res == 0))))){
iaStatus = 2;
};
};
break;
case 2:
if ((_arg1._time - lastPfUpdate) > 1500){
iaStatus = 1;
break;
} else {
if ((((targetPoint.x - x) * (targetPoint.x - x)) + ((targetPoint.y - y) * (targetPoint.y - y))) > 100){
movingDir.x = (targetPoint.x - x);
movingDir.y = (targetPoint.y - y);
movingDir.normalize(1);
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.rightNormal;
_local10 = _arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))];
if (((_arg1.pfGrid.IsWalkable(new Point((x + movingDir.x), (y + movingDir.y)))) && ((((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == -1)) || ((_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point((x + movingDir.x), (y + movingDir.y)))] == id)))))){
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
x = (x + movingDir.x);
y = (y + movingDir.y);
_local9 = (((currentFrame - frame_walk) % frame_walk_lenght) + 1);
if (_local9 >= frame_walk_lenght){
_local8 = (frame_walk + (angleFrame * frame_walk_lenght));
} else {
_local8 = ((_local9 + (frame_walk_lenght * angleFrame)) + frame_walk);
};
this.gotoAndPlay(_local8);
} else {
movingDir = movingDir.leftNormal;
};
};
} else {
if (path.length > 0){
targetPoint = path.pop();
targetPoint.x = ((targetPoint.x * _arg1.pfGrid.cellPixelWidth) + (_arg1.pfGrid.cellPixelWidth / 2));
targetPoint.y = ((targetPoint.y * _arg1.pfGrid.cellPixelHeight) + (_arg1.pfGrid.cellPixelHeight / 2));
};
};
collisionCircle.x = x;
collisionCircle.y = y;
};
break;
case 3:
if (_local4 > 30000){
iaStatus = 1;
break;
};
movingDir.x = (_arg1.player.x - x);
movingDir.y = (_arg1.player.y - y);
movingDir.normalize(1);
this.gotoAndPlay((frame_walk + (frame_walk_lenght * angleFrame)));
if ((_arg1._time - fire1Timer) > fire1Rate){
if ((_arg1._time - lastFireThrowerTime) > 1000){
_arg1.PlaySound(_arg1.freccia_fire, 0.3);
lastFireThrowerTime = _arg1._time;
};
fire1Timer = _arg1._time;
_local11 = new Bullet_arrow();
_local11.x = x;
_local11.y = y;
_local11.lifeTime = 2000;
_local11.senderIsPlayer = false;
_local12 = FoofaGeomUtils.AngleBetweenVectors2Deg(new Vector2(1, 0), movingDir);
_local11.rotation = _local12;
if (_local4 <= 100){
_local13 = 0;
_local13 = 0;
} else {
_local13 = Math.floor(((Math.random() * 31) - 15));
_local14 = Math.floor(((Math.random() * 31) - 15));
};
_local15 = new Vector2(((_arg1.player.x + _local13) - x), ((_arg1.player.y + _local14) - y));
_local11.Init(_arg1, (_local15.x / _local15.length), (_local15.y / _local15.length));
_arg1.bulletArray.push(_local11);
_arg1.isoObjectActiveArray.push(_local11);
break;
};
break;
};
};
if (dieMode == true){
if (((agonyMode) && (agony_loop))){
_arg1.StopLoop(agony_loop);
};
_local16 = 1;
if ((deadTypeCount % 16) > 8){
_local16 = 2;
};
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
if (agonyMode == true){
deathType = 3;
switch (deadlyWeapon){
case 2:
frameToGo = frame_morte_agonia_brucia;
frameToSkip = frame_morte_agonia_brucia_lenght;
= frame_morte_agonia_brucia_lenght;
break;
default:
frameToGo = frame_morte_agonia_colpo;
frameToSkip = frame_morte_agonia_colpo_lenght;
= frame_morte_agonia_colpo_lenght;
break;
};
} else {
switch (deadlyWeapon){
case 10:
case 1:
switch ((deadType % 2)){
case 0:
deathType = 1;
frameToGo = frame_morte_colpo1;
frameToSkip = frame_morte_colpo1_lenght;
= frame_morte_colpo1_lenght;
if (_local16 == 1){
_arg1.PlaySound(_arg1.pain_11);
} else {
_arg1.PlaySound(_arg1.pain_14);
};
break;
case 1:
deathType = 2;
frameToGo = frame_morte_colpo2;
frameToSkip = frame_morte_colpo2_lenght;
= frame_morte_colpo2_lenght;
if (_local16 == 1){
_arg1.PlaySound(_arg1.pain_05);
} else {
_arg1.PlaySound(_arg1.pain_06);
};
break;
};
break;
case 2:
deathType = 0;
_arg1.PlaySound(_arg1.pain_15);
frameToGo = frame_morte_bruciato;
frameToSkip = frame_morte_bruciato_lenght;
= frame_morte_bruciato_lenght;
break;
case 3:
deathType = 4;
frameToGo = frame_morte_esplosione1;
frameToSkip = frame_morte_esplosione1_lenght;
= frame_morte_esplosione1_lenght;
_arg1.PlaySound(_arg1.pain_10);
break;
default:
frameToGo = frame_morte_colpo1;
frameToSkip = frame_morte_colpo1_lenght;
= frame_morte_colpo1_lenght;
_arg1.PlaySound(_arg1.pain_11);
break;
};
};
deathX = x;
deathY = y;
= (frameToGo + (Math.floor((angleFrame / 2)) * frameToSkip));
this.gotoAndPlay();
= (
+ );
--;
if (!){
if ((_arg1._time - _arg1.lastDeathTime) < 5000){
_arg1.consecutiveDeaths++;
MemoryCrypto.incrementValue(_arg1.app.sounds, (myValue * _arg1.consecutiveDeaths));
_local17 = new ComboMsg(("x" + _arg1.consecutiveDeaths), deathX, deathY);
_arg1.comboArray.push(_local17);
_arg1.isoObjectActiveArray.push(_local17);
} else {
_arg1.consecutiveDeaths = 1;
MemoryCrypto.incrementValue(_arg1.app.sounds, myValue);
};
_arg1.lastDeathTime = _arg1._time;
} else {
MemoryCrypto.incrementValue(_arg1.app.sounds, (myValue / 2));
};
= true;
_arg1.busyGrid[_arg1.pfGrid.FromPixelPosToGridIndex(new Point(x, y))] = -1;
_arg1.app.killCount++;
} else {
if (agonyMode == true){
if (agonySwitch == true){
agony_loop = _arg1.PlayLoop(_arg1.grida_medic);
agonySwitch = false;
frameToGo = frame_morte_colpo4;
frameToSkip = frame_morte_colpo4_lenght;
this.gotoAndPlay((frameToGo + (Math.floor((angleFrame / 2)) * frameToSkip)));
switch ((deadTypeCount % 4)){
case 0:
_arg1.PlaySound(_arg1.pain_01);
break;
case 1:
_arg1.PlaySound(_arg1.pain_02);
break;
case 2:
_arg1.PlaySound(_arg1.pain_03);
break;
case 3:
_arg1.PlaySound(_arg1.pain_04);
break;
};
} else {
if (((agony_loop) && (((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) > 200000)))){
_arg1.StopLoop(agony_loop);
};
};
};
};
return (true);
}
function (){
stop();
}
public function OnHit(_arg1:State_InGame, _arg2:int):void{
var _local3:ColorTransform;
switch (_arg2){
case 1:
energy--;
break;
case 2:
energy = (energy - 2);
break;
case 3:
energy = (energy - 6);
break;
case 10:
energy = (energy - 100);
break;
};
if ((((_arg2 == 4)) && ((agonyMode == false)))){
agonyMode = true;
agonySwitch = true;
energy = 1;
= _arg1._time;
} else {
if ((((((agonyMode == false)) && ((dieMode == false)))) && ((energy < 0)))){
if ((((((agonyMode == false)) && ((_arg2 == 1)))) && ((Math.random() < 0.25)))){
agonyMode = true;
agonySwitch = true;
= _arg1._time;
} else {
dieMode = true;
deadlyWeapon = _arg2;
deadTypeCount++;
deadType = deadTypeCount;
};
} else {
if ((((agonyMode == true)) && ((agonySwitch == false)))){
dieMode = true;
deadlyWeapon = _arg2;
} else {
if (dieMode == false){
hitTime = _arg1._time;
_local3 = new ColorTransform(5);
this.transform.colorTransform = _local3;
if (_arg2 != 3){
(_arg1);
previousStatus = iaStatus;
iaStatus = 10;
};
};
};
};
};
}
function (){
stop();
}
function
(){
stop();
}
function frame330(){
stop();
}
function frame576(){
gotoAndPlay(1681);
}
function (){
stop();
}
function frame468(){
gotoAndPlay(1633);
}
function frame900(){
stop();
}
function (){
stop();
}
function frame1020(){
stop();
}
function
(){
gotoAndPlay(1681);
}
function frame240(){
stop();
}
function frame120(){
stop();
}
function frame360(){
stop();
}
function (){
stop();
}
function (){
stop();
}
function frame1608(){
stop();
}
function (){
stop();
}
function frame708(){
stop();
}
function frame270(){
stop();
}
}
}//package ThisGame
Section 78
//RespawnHandler (ThisGame.RespawnHandler)
package ThisGame {
import flash.display.*;
import flash.geom.*;
import com.electrotank.util.*;
public class RespawnHandler {
const _weaponCrateRate:uint = 100;
const _energyCrateRate:uint = 500;
private var :uint;
private var :uint;
private var :uint;
private var :uint;
private var :Boolean;
private var :uint;
private var :uint;
private var :uint;
private var :uint;
private var
:uint;
private var :uint;
private var endOfWave:Boolean;
private var
:Boolean;
private var :uint;
private var :uint;
private var :Boolean;
private var :uint;
private var :State_InGame;
private var :uint;
private var :uint;
private var :uint;
private var :uint;
private var ;
private var
:uint;
private var :Number;
private var :uint;
private var
:Number;
private var :uint;
private var :uint;
private var currentState:uint;
private var :Number;
private var :uint;
private var :Number;
private var :uint;
private var :uint;
private var :uint;
private var :uint;
private var :Boolean;
public var :Number;
private var ;
private var
:uint;
private var :Number;
private var :Number;
private var :uint;
private var :Array;
private var :Point;
private static const STATE_WAVE_END:uint = 2;
private static const STATE_WAVE:uint = 0;
private static const STATE_PAUSE:uint = 1;
private static const STATE_ARENA_STARTED:uint = 3;
public function RespawnHandler(_arg1:State_InGame, _arg2:uint, _arg3:uint=200){
= 500;
= false;
= _arg2;
= 0;
= 0;
= _arg1;
= false;
= new Point(0, 0);
= 50;
= 0;
= 0;
= 0;
= 0;
= 100;
= 0;
= 0;
= 0;
= 0;
= 0;
= 0;
= 0;
= true;
= 2;
= 0;
= 0;
= 1;
= 60;
= 95;
= 1000;
= 0;
endOfWave = false;
currentState = STATE_ARENA_STARTED;
= 5000;
= 1;
= _arg3;
= 0;
= true;
= 0;
= 30000;
= 0;
= 0;
}
public function EnemyKilled(_arg1:uint, _arg2:Number, _arg3:Number, _arg4:Number=0):void{
if (_arg4 == 0){
--;
.x = _arg2;
.y = _arg3;
= true;
++;
} else {
--;
};
if ((((((currentState == STATE_WAVE_END)) && ((
== 0)))) && (( == 0)))){
= 0;
currentState = STATE_PAUSE;
if (.consecutiveDeaths == ){
MemoryCrypto.incrementValue(.app.sounds, (10 * ));
.waveMessage.perfectText.text = "Perfect wave! ";
.waveMessage.perfectText.visible = true;
} else {
.waveMessage.perfectText.visible = false;
= false;
};
};
}
public function InitArray(_arg1):void{
var _local2:DisplayObject;
var _local3:int;
= new Array();
_local3 = 0;
while (_local3 < _arg1.numChildren) {
_local2 = _arg1.getChildAt(_local3);
if ((_local2 is RespawnPoint)){
.push(new Point(_local2.x, _local2.y));
_arg1.removeChild(_local2);
_local3--;
};
_local2 = null;
_local3++;
};
}
private function (_arg1:uint, _arg2, _arg3):void{
var _local4:*;
var _local5:*;
if ((((( % 20) == 0)) && (( < )))){
++;
};
if (( % 20) == 0){
++;
= Math.floor(( / 2));
};
if ( == ){
_local4 = new Cassa_medica_incl();
= 0;
} else {
_local4 = (_arg1);
if (!_local4){
_local5 = (0, 99);
if (_local5 < ){
_local5 = (0, 99);
if (_local5 < ){
_local4 = new Cassa_munizioni_2_incl();
} else {
if (_local5 < ){
_local4 = new Cassa_munizioni_3_incl();
} else {
if (_local5 < ){
_local4 = new Cassa_munizioni_4_incl();
} else {
if (_local5 < ){
_local4 = new Cassa_munizioni_5_incl();
} else {
if (
== 100){
_local4 = new Cassa_munizioni_6_incl();
};
};
};
};
};
} else {
if (_local5 < ){
_local4 = new Cassa_munizioni_7_incl();
} else {
if (_local5 < ){
_local4 = new Cassa_munizioni_8_incl();
} else {
if (_local5 < ){
_local4 = new Cassa_munizioni_9_incl();
} else {
if ( == 100){
_local4 = new Cassa_munizioni_10_incl();
};
};
};
};
};
};
++;
};
_local4.x = .x;
_local4.y = .y;
_arg2.push(_local4);
_arg3.push(_local4);
_arg3.sortOn("y", (Array.NUMERIC | Array.DESCENDING));
_arg2.sortOn("y", (Array.NUMERIC | Array.DESCENDING));
= false;
}
private function (_arg1:uint):Object{
if ( == 8){
return (null);
};
if ( == ){
if ( == 0){
= 80;
= 0;
= 0;
= 0;
= 100;
= 0;
= 0;
= 0;
= 0;
= 100;
++;
return (new Cassa_munizioni_2_incl());
};
if ( == 1){
= 80;
= 0;
= 0;
= 0;
= 100;
= 0;
= 0;
= 0;
= 100;
= 50;
++;
return (new Cassa_munizioni_3_incl());
};
if ( == 2){
= 80;
= 0;
= 0;
= 100;
= 50;
= 0;
= 0;
= 0;
= 100;
= 50;
++;
return (new Cassa_munizioni_8_incl());
};
if ( == 3){
= 80;
= 0;
= 0;
= 100;
= 50;
= 0;
= 0;
= 100;
= 60;
= 30;
++;
return (new Cassa_munizioni_4_incl());
};
if ( == 4){
= 70;
= 0;
= 100;
= 40;
= 20;
= 0;
= 0;
= 100;
= 60;
= 30;
++;
return (new Cassa_munizioni_9_incl());
};
if ( == 5){
= 70;
= 0;
= 100;
= 40;
= 20;
= 0;
= 100;
= 75;
= 50;
= 25;
++;
return (new Cassa_munizioni_5_incl());
};
if ( == 6){
= 70;
= 100;
= 60;
= 40;
= 20;
= 0;
= 100;
= 75;
= 50;
= 25;
++;
return (new Cassa_munizioni_10_incl());
};
if ( == 7){
= 50;
= 100;
= 65;
= 40;
= 20;
= 100;
= 80;
= 60;
= 40;
= 20;
++;
return (new Cassa_munizioni_6_incl());
};
};
return (null);
}
private function
():MovieClip{
var _local1:uint;
_local1 = (0, 100);
if (_local1 < ){
return (new Png_man1());
};
if (_local1 < ){
return (new Png_man2());
};
return (new Png_man2_arrows());
}
public function Update(_arg1, _arg2, _arg3, _arg4, _arg5):Boolean{
var _local6:Boolean;
var _local7:MovieClip;
var _local8:uint;
if ( == 0){
= _arg4;
};
if ((((() && (!(( == ))))) && ((( % 5) == 0)))){
(_arg5, _arg2, _arg3);
= _arg5;
= ;
} else {
if (){
= false;
};
};
_local6 = false;
switch (currentState){
case STATE_ARENA_STARTED:
.startMessage.visible = true;
.waveMessage.visible = false;
= _arg4;
currentState = STATE_WAVE;
break;
case STATE_WAVE:
if (.waveMessage.visible == true){
.startMessage.visible = true;
.waveMessage.visible = false;
= _arg4;
} else {
if ((_arg4 - ) >= 3000){
.startMessage.visible = false;
};
};
if ((_arg4 - ) >= ){
_local8 = (0, (.length - 1));
if ((((((((.app.thisLevel > 2)) || (( >= Math.floor(( / 3)))))) && (((
% 10) == 0)))) && (( < Math.floor((
/ 10)))))){
++;
++;
_local7 = new Png_boss();
_local7.x = [_local8].x;
_local7.y = [_local8].y;
Png_boss(_local7).SetBossLevel(.app.thisLevel, );
= _arg4;
_arg1.push(_local7);
_arg2.push(_local7);
} else {
_local7 =
();
_local7.x = [_local8].x;
_local7.y = [_local8].y;
= _arg4;
_arg1.push(_local7);
_arg2.push(_local7);
++;
++;
};
_local6 = true;
};
if (
== ){
currentState = STATE_WAVE_END;
};
break;
case STATE_WAVE_END:
break;
case STATE_PAUSE:
if (
== 0){
(
= _arg4);
if ( < ){
if (( - ) == 1){
(.waveMessage.waveText.text = "Only 1 wave left!");
} else {
(.waveMessage.waveText.text = (String(( - )) + " waves left!"));
};
} else {
(.waveMessage.waveText.text = "Arena completed!");
if (
){
MemoryCrypto.incrementValue(.app.sounds, (15 * ));
(.waveMessage.perfectText.text = "Perfect! ");
};
};
(.waveMessage.visible = true);
.PlaySound(.endOfWave);
};
if ((_arg4 -
) >= ){
if ( < ){
(
= 0);
++;
(currentState = STATE_WAVE);
( = Math.ceil(( * 1.2)));
( = _arg4);
if (( % 5) == 0){
( = ( * 0.8));
( = ( * 0.8));
};
} else {
(.waveMessage.visible = false);
.ArenaCompleted();
};
};
break;
default:
break;
};
return (_local6);
}
protected function (_arg1:uint, _arg2:uint):uint{
return ((Math.floor((Math.random() * ((_arg2 - _arg1) + 1))) + _arg1));
}
}
}//package ThisGame
Section 79
//RespawnPoint (ThisGame.RespawnPoint)
package ThisGame {
import flash.display.*;
public class RespawnPoint extends MovieClip {
protected var :uint;
private var :Boolean;
protected var :uint;
protected var :uint;
protected var :uint;
protected var :uint;
protected var :uint;
protected var :uint;
protected var :Number;
public function RespawnPoint(){
= false;
= 0;
= 0;
= 0;
= 10;
= 3000;
= 10000;
= 60;
= 95;
}
public function Update(_arg1:Number, _arg2:uint):MovieClip{
var _local3:MovieClip;
(_arg2);
_local3 =
();
_local3.x = this.x;
_local3.y = this.y;
++;
= _arg1;
return (_local3);
}
protected function (_arg1:uint):void{
= _arg1;
}
public function set timePause(_arg1:uint):void{
= _arg1;
}
public function set timeStep(_arg1:uint):void{
= _arg1;
}
public function ():void{
--;
}
public function get spawnNumber():uint{
return ( );
}
protected function
():MovieClip{
var _local1:uint;
_local1 = (0, 100);
if (_local1 < ){
return (new Png_man1());
};
if (_local1 < ){
return (new Png_man2());
};
return (new Png_man2_arrows());
}
public function set maxSpawn(_arg1:uint):void{
= _arg1;
}
protected function (_arg1:uint, _arg2:uint):uint{
return ((Math.floor((Math.random() * ((_arg2 - _arg1) + 1))) + _arg1));
}
}
}//package ThisGame
Section 80
//RespawnPoint2_E (ThisGame.RespawnPoint2_E)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_E extends MovieClip {
}
}//package ThisGame
Section 81
//RespawnPoint2_N (ThisGame.RespawnPoint2_N)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_N extends MovieClip {
}
}//package ThisGame
Section 82
//RespawnPoint2_NE (ThisGame.RespawnPoint2_NE)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_NE extends MovieClip {
}
}//package ThisGame
Section 83
//RespawnPoint2_NW (ThisGame.RespawnPoint2_NW)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_NW extends MovieClip {
}
}//package ThisGame
Section 84
//RespawnPoint2_S (ThisGame.RespawnPoint2_S)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_S extends MovieClip {
}
}//package ThisGame
Section 85
//RespawnPoint2_SE (ThisGame.RespawnPoint2_SE)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_SE extends MovieClip {
}
}//package ThisGame
Section 86
//RespawnPoint2_SW (ThisGame.RespawnPoint2_SW)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_SW extends MovieClip {
}
}//package ThisGame
Section 87
//RespawnPoint2_W (ThisGame.RespawnPoint2_W)
package ThisGame {
import flash.display.*;
public dynamic class RespawnPoint2_W extends MovieClip {
}
}//package ThisGame
Section 88
//State_ArenaBriefing (ThisGame.State_ArenaBriefing)
package ThisGame {
import flash.display.*;
import flash.text.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
public class State_ArenaBriefing implements FSM_State {
const demoVersion:Boolean = true;
private var
;
private var :ArenaBriefing;
private var :TextField;
private var app:Main_Application;
private var :MovieClip;
private var :TextField;
private var :DisplayObjectContainer;
private var
:Array;
private var :TextField;
private var :MovieClip;
public function State_ArenaBriefing(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new collect_crate();
}
function PlayRaffica(_arg1:MouseEvent):void{
if (app.sound){
.play(0, 0, new SoundTransform(1, 0));
};
}
public function Init():void{
= new ArenaBriefing();
.addChild();
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_UP, nextButtonPressed);
.getChildByName("backBtn").addEventListener(MouseEvent.MOUSE_UP, backButtonPressed);
if (app.sound){
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("backBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
= TextField(.getChildByName("arenaTxt"));
switch (app.thisLevel){
case 1:
.text = "Cuttedrock";
break;
case 2:
.text = "The old mine";
break;
case 3:
.text = "The Mission";
break;
case 4:
.text = "Big Town";
break;
};
= MovieClip(.getChildByName("arenaImg"));
.gotoAndStop(app.thisLevel);
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
}
public function Step():void{
}
function nextButtonPressed(_arg1:MouseEvent){
app.GotoPlayState();
}
function backButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_Character(app, ));
}
}
}//package ThisGame
Section 89
//State_Character (ThisGame.State_Character)
package ThisGame {
import flash.display.*;
import flash.text.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
public class State_Character implements FSM_State {
private var
;
private var :CharactersMenu;
private var :TextField;
private var app:Main_Application;
private var :MovieClip;
private var i:int;
private var :DisplayObjectContainer;
private var
:Array;
private var :TextField;
public function State_Character(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new collect_crate();
app.thisPlayer = 1;
}
function (_arg1:MouseEvent){
(1);
}
function PlayRaffica(_arg1:MouseEvent):void{
if (app.sound){
.play(0, 0, new SoundTransform(1, 0));
};
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
}
public function Step():void{
}
private function (_arg1:uint):void{
app.thisPlayer = _arg1;
app.ChangeState(new State_ArenaBriefing(app, ));
}
function (_arg1:MouseEvent){
(2);
}
public function Init():void{
= new CharactersMenu();
.addChild();
.getChildByName("backBtn").addEventListener(MouseEvent.MOUSE_UP, backButtonPressed);
.getChildByName("player1Btn").addEventListener(MouseEvent.MOUSE_UP, );
.getChildByName("player2Btn").addEventListener(MouseEvent.MOUSE_UP, );
.getChildByName("player3Btn").addEventListener(MouseEvent.MOUSE_UP, );
if (app.sound){
.getChildByName("backBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
}
function backButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_MainMenu(app, ));
}
function (_arg1:MouseEvent){
(3);
}
}
}//package ThisGame
Section 90
//State_GameCompletedMenu (ThisGame.State_GameCompletedMenu)
package ThisGame {
import flash.display.*;
import flash.text.*;
import FoofaCore.*;
import flash.events.*;
import CMG_AS3.*;
import com.electrotank.util.*;
public class State_GameCompletedMenu implements FSM_State {
private var :Boolean;
private var :GameCompletedMenu;
private var :TextField;
private var :TextField;
private var app:Main_Application;
private var :TextField;
private var :SimpleButton;
private var :String;
private var :DisplayObjectContainer;
public function State_GameCompletedMenu(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new String("insert name");
}
function hallPressed(_arg1:MouseEvent):void{
ScoreSubmitter.loadHighScorePage();
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
.getChildByName("backBtn").removeEventListener(MouseEvent.MOUSE_UP, backButtonPressed);
.getChildByName("hallBtn").removeEventListener(MouseEvent.MOUSE_UP, hallPressed);
.getChildByName("moreBtn").removeEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
}
function onScoreResponse(_arg1:ServerResponseEvent):void{
switch (_arg1.returnCode){
case ScoreSubmitter.RETURNCODE_WORKING:
.text = "Submitting...";
break;
case ScoreSubmitter.RETURNCODE_SUCCESS:
.text = "Your score has been submitted";
ScoreSubmitter.loadHighScorePage();
break;
case ScoreSubmitter.RETURNCODE_REJECTED:
.text = "The server rejected your score";
break;
case ScoreSubmitter.RETURNCODE_WRONGVERSION:
.text = "Wrong game version visit CrazyMonkeyGames.com";
ScoreSubmitter.loadUpdatePage();
break;
case ScoreSubmitter.RETURNCODE_NETWORKERROR:
.text = "Could not reach the server";
break;
default:
.text = ("Unknown error " + _arg1.returnCode);
break;
};
}
function submitButtonPressed(_arg1:MouseEvent){
var _local2:ScoreSubmitter;
if (MemoryCrypto.getValue(app.sounds) != 0){
if ((( ) && (!((.text == ))))){
.type = TextFieldType.DYNAMIC;
.removeChild();
_local2 = new ScoreSubmitter();
_local2.addEventListener(ScoreSubmitter.SCORE_RESPONSE, onScoreResponse);
_local2.submitScore(.text, MemoryCrypto.getValue(app.sounds));
} else {
.text = ;
};
} else {
.text = "No score to submit";
};
}
function moreButtonPressed(_arg1:MouseEvent):void{
app.goToUrl("http://www.crazymonkeygames.com/");
}
function backButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_MainMenu(app, ));
}
public function Step():void{
}
public function Init():void{
= new GameCompletedMenu();
.addChild();
= SimpleButton(.getChildByName("submitBtn"));
.addEventListener(MouseEvent.MOUSE_UP, submitButtonPressed);
.getChildByName("backBtn").addEventListener(MouseEvent.MOUSE_UP, backButtonPressed);
.getChildByName("hallBtn").addEventListener(MouseEvent.MOUSE_UP, hallPressed);
.getChildByName("moreBtn").addEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
= TextField(.getChildByName("nameText"));
.restrict = "A-Za-z0-9";
.text = ;
.addEventListener(MouseEvent.MOUSE_UP, clickedOnNameField);
= TextField(.getChildByName("submitText"));
.text = " ";
= false;
= TextField(.getChildByName("scoreText"));
.text = ("" + MemoryCrypto.getValue(app.sounds));
}
function clickedOnNameField(_arg1:MouseEvent){
= true;
}
}
}//package ThisGame
Section 91
//State_GameInfo (ThisGame.State_GameInfo)
package ThisGame {
import flash.display.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
public class State_GameInfo implements FSM_State {
private var app:Main_Application;
private var :DisplayObjectContainer;
private var :GameInfo;
private var
;
public function State_GameInfo(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new collect_crate();
}
function abortButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_MainMenu(app, ));
}
function continueButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_SelectControls(app, ));
}
public function End():void{
if (app.sound){
.getChildByName("abortBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
.getChildByName("abortBtn").removeEventListener(MouseEvent.MOUSE_DOWN, abortButtonPressed);
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_UP, continueButtonPressed);
.removeChild();
}
function PlayRaffica(_arg1:MouseEvent):void{
if (app.sound){
.play(0, 0, new SoundTransform(1, 0));
};
}
public function Init():void{
= new GameInfo();
.addChild();
.getChildByName("abortBtn").addEventListener(MouseEvent.MOUSE_UP, abortButtonPressed);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_UP, continueButtonPressed);
if (app.sound){
.getChildByName("abortBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
}
public function Step():void{
}
}
}//package ThisGame
Section 92
//State_GameOverMenu (ThisGame.State_GameOverMenu)
package ThisGame {
import flash.display.*;
import flash.text.*;
import FoofaCore.*;
import flash.events.*;
import CMG_AS3.*;
import com.electrotank.util.*;
public class State_GameOverMenu implements FSM_State {
private var :Boolean;
private var :GameOverMenu;
private var :TextField;
private var :TextField;
private var app:Main_Application;
private var :TextField;
private var :SimpleButton;
private var :String;
private var :DisplayObjectContainer;
public function State_GameOverMenu(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new String("insert name");
}
function hallPressed(_arg1:MouseEvent):void{
ScoreSubmitter.loadHighScorePage();
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
.getChildByName("againBtn").removeEventListener(MouseEvent.MOUSE_UP, nextButtonPressed);
.getChildByName("backBtn").removeEventListener(MouseEvent.MOUSE_UP, backButtonPressed);
.getChildByName("hallBtn").removeEventListener(MouseEvent.MOUSE_UP, hallPressed);
.getChildByName("moreBtn").removeEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
}
function onScoreResponse(_arg1:ServerResponseEvent):void{
switch (_arg1.returnCode){
case ScoreSubmitter.RETURNCODE_WORKING:
.text = "Submitting...";
break;
case ScoreSubmitter.RETURNCODE_SUCCESS:
.text = "Your score has been submitted";
ScoreSubmitter.loadHighScorePage();
break;
case ScoreSubmitter.RETURNCODE_REJECTED:
.text = "The server rejected your score";
break;
case ScoreSubmitter.RETURNCODE_WRONGVERSION:
.text = "Wrong game version visit CrazyMonkeyGames.com";
ScoreSubmitter.loadUpdatePage();
break;
case ScoreSubmitter.RETURNCODE_NETWORKERROR:
.text = "Could not reach the server";
break;
default:
.text = ("Unknown error " + _arg1.returnCode);
break;
};
}
function nextButtonPressed(_arg1:MouseEvent){
MemoryCrypto.setValue(app.sounds, 0);
app.GotoPlayState();
}
function submitButtonPressed(_arg1:MouseEvent){
var _local2:ScoreSubmitter;
if (MemoryCrypto.getValue(app.sounds) != 0){
if ((( ) && (!((.text == ))))){
.type = TextFieldType.DYNAMIC;
.removeChild();
_local2 = new ScoreSubmitter();
_local2.addEventListener(ScoreSubmitter.SCORE_RESPONSE, onScoreResponse);
_local2.submitScore(.text, MemoryCrypto.getValue(app.sounds));
} else {
.text = ;
};
} else {
.text = "No score to submit";
};
}
function moreButtonPressed(_arg1:MouseEvent):void{
app.goToUrl("http://www.crazymonkeygames.com/");
}
function backButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_MainMenu(app, ));
}
public function Step():void{
}
public function Init():void{
= new GameOverMenu();
.addChild();
= SimpleButton(.getChildByName("submitBtn"));
.addEventListener(MouseEvent.MOUSE_UP, submitButtonPressed);
.getChildByName("againBtn").addEventListener(MouseEvent.MOUSE_UP, nextButtonPressed);
.getChildByName("backBtn").addEventListener(MouseEvent.MOUSE_UP, backButtonPressed);
.getChildByName("hallBtn").addEventListener(MouseEvent.MOUSE_UP, hallPressed);
.getChildByName("moreBtn").addEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
= TextField(.getChildByName("nameText"));
.restrict = "A-Za-z0-9";
.text = ;
.addEventListener(MouseEvent.MOUSE_UP, clickedOnNameField);
= TextField(.getChildByName("scoreText"));
.text = ("" + MemoryCrypto.getValue(app.sounds));
= TextField(.getChildByName("submitText"));
.text = " ";
= false;
}
function clickedOnNameField(_arg1:MouseEvent){
= true;
}
}
}//package ThisGame
Section 93
//State_Info (ThisGame.State_Info)
package ThisGame {
import flash.display.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
public class State_Info implements FSM_State {
private var app:Main_Application;
private var :DisplayObjectContainer;
private var
;
private var ;
private var :MovieClip;
public function State_Info(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new collect_crate();
}
function abortButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_MainMenu(app, ));
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_UP, nextButtonPressed);
.getChildByName("abortBtnBTM").removeEventListener(MouseEvent.MOUSE_UP, abortButtonPressed);
if (app.sound){
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("abortBtnBTM").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
}
function PlayRaffica(_arg1:MouseEvent):void{
if (app.sound){
.play(0, 0, new SoundTransform(1, 0));
};
}
public function Init():void{
if (app.inputMode == 1){
= new InfoWnd_K();
} else {
= new InfoWnd_M();
};
.addChild();
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_UP, nextButtonPressed);
.getChildByName("abortBtnBTM").addEventListener(MouseEvent.MOUSE_UP, abortButtonPressed);
= MovieClip(.getChildByName("audioBtn"));
.addEventListener(MouseEvent.CLICK, ToggleSound);
if (app.sound){
.gotoAndStop(2);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("abortBtnBTM").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
} else {
.gotoAndStop(1);
};
}
public function ToggleSound(_arg1:Event):void{
app.sound = !(app.sound);
if (app.sound){
.getChildByName("abortBtnBTM").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.gotoAndStop(2);
if (app.inMenu){
app.menuLoop = app.menuLoopSnd.play();
app.inMenuMusicStarted = true;
};
} else {
.getChildByName("abortBtnBTM").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
if (app.inMenu){
app.menuLoop.stop();
app.inMenuMusicStarted = false;
};
SoundMixer.stopAll();
.gotoAndStop(1);
};
}
public function Step():void{
}
function nextButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_Character(app, ));
}
}
}//package ThisGame
Section 94
//State_InGame (ThisGame.State_InGame)
package ThisGame {
import FoofaGeom.*;
import flash.display.*;
import FoofaAI.*;
import flash.geom.*;
import flash.text.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
import com.electrotank.util.*;
import FoofaView.*;
import flash.utils.*;
import flash.ui.*;
public class State_InGame implements FSM_State {
private const screenHeight:Number = 450;
private const screenWidth:Number = 450;
public var vieni_ucciso:Sound;
public var pain_01:Sound;
public var pain_02:Sound;
public var pain_03:Sound;
public var pain_04:Sound;
public var pain_06:Sound;
public var :Sound;
public var weaponGun_fire:Sound;
public var :Sound;
private var :Boolean;
public var pain_05:Sound;
private var
:TextField;
public var app:Main_Application;
public var pain_10:Sound;
public var :Sound;
private var :DisplayObjectContainer;
public var pain_15:Sound;
public var isoObjectActiveArray:Array;
public var pain_11:Sound;
private var :BitmapData;
public var :Sound;
private var :Number;
public var :Sound;
public var pain_14:Sound;
private var
:Number;
public var :Sound;
public var endOfWave:Sound;
private var :MovieClip;
public var
:Sound;
private var :BitmapData;
public var :Sound;
private var :TextField;
public var enemyActiveArray:Array;
public var pfGrid:PathFindingGrid;
public var :Number;
private var :BitmapData;
private var :BitmapData;
public var bulletArray:Array;
private var :BitmapData;
private var
:BitmapData;
public var lastPfEnemyIndex:Number;
public var grida_medic:Sound;
public var
:Sound;
public var weaponRifle_fire:Sound;
public var :TextField;
private var :BitmapData;
private var :Number;
private var :Rectangle;
private var :Number;
private var :Boolean;
private var :Number;
public var
:Sound;
public var vieni_colpito:Sound;
private var :Number;
private var
:BitmapData;
private var :MovieClip;
private var :BitmapData;
private var :CollisionCircleCircle;
private var
:BitmapData;
public var waveMessage:EndWaveMessage;
public var consecutiveDeaths:uint;
public var
:Sound;
public var
:TriggerManager;
public var
:Sound;
private var
:Number;
private var
:BitmapData;
public var player:Player;
public var gui_weaponPopup:MovieClip;
private var
:CollisionConvexPolyCircle;
public var busyGrid:Array;
private var
:Number;
public var :Sound;
private var :Mirino;
private var :BitmapData;
private var :BitmapData;
public var fai_cilecca:Sound;
private var
:BitmapData;
public var weapon7_boom:Sound;
private var ;
public var :SoundChannel;
public var camera:Camera2d_FollowTargetInBounds;
private var
:Number;
private var :Boolean;
private var :TextField;
private var :Bitmap;
public var :RespawnHandler;
private var :BitmapData;
private var
:DisplayObjectContainer;
public var startMessage:StartWaveMessage;
public var solidActiveArray:Array;
public var :Sound;
private var :FrameRateCounter;
private var
:BitmapData;
private var
:BitmapData;
public var
:MovieClip;
private var
:BitmapData;
public var lastDeathTime:Number;
private var
:Boolean;
private var
:BitmapData;
public var
:Sound;
public var
:DisplayObjectContainer;
public var
:Sound;
private var
:MovieClip;
public var weaponGatling_fire:Sound;
public var comboArray:Array;
private var :BitmapData;
private var :BitmapData;
private var :BitmapData;
public var :Sound;
public var freccia_fire:Sound;
private var :MovieClip;
public var :Sound;
public var _time:Number;
public var :Sound;
private var :Point;
public var explosivesArray:Array;
private var :BitmapData;
private var :MovieClip;
public var box:Sound;
private var :Number;
public var :Number;
private var :Boolean;
private var
:BitmapData;
public var :Sound;
public function State_InGame(_arg1:Main_Application, _arg2:DisplayObjectContainer, _arg3:DisplayObjectContainer):void{
lastDeathTime = getTimer();
app = _arg1;
= _arg2;
= _arg3;
= 0;
weaponGun_fire = new weapon1_rifle();
weaponRifle_fire = new weapon3_shotgun();
weaponGatling_fire = new weapon2_ak47();
weapon7_boom = new weapon6_grenade();
= new weapon7_firegrenade();
= new b52_Aircraft();
= new b52_explosion();
= new artillery_firing();
= new artillery_explosions();
freccia_fire = new freccia();
pain_01 = new scream_01();
pain_02 = new scream_02();
pain_03 = new scream_03();
pain_04 = new scream_04();
pain_05 = new scream_05();
pain_06 = new scream_06();
= new scream_07();
= new scream_08();
= new scream_09();
pain_10 = new scream_10();
pain_11 = new scream_11();
= new scream_12();
= new scream_13();
pain_14 = new scream_14();
pain_15 = new scream_15();
box = new collect_crate();
= new collect_crate();
= new enemy_cannon1();
= new enemy_cannon2();
= new enemy_machinegun();
= new enemy_rocket();
fai_cilecca = new cilecca();
vieni_colpito = new colpito();
vieni_ucciso = new ucciso();
= new bkg_sounds();
grida_medic = new medic();
= new no_weapon();
endOfWave = new EndWaveSound();
= new enemy_crash();
= new collect_crate();
= 0;
}
public function EnemyKilled(_arg1:uint, _arg2:Number, _arg3:Number):void{
if ((enemyActiveArray[_arg1] is Png_boss)){
.EnemyKilled(_arg1, _arg2, _arg3, 1);
} else {
.EnemyKilled(_arg1, _arg2, _arg3);
};
}
public function PlaySound(_arg1:Sound, _arg2:Number=1):void{
if (app.sound){
_arg1.play(0, 0, new SoundTransform(_arg2, 0));
};
}
public function PlayLoop(_arg1:Sound, _arg2:Number=1):SoundChannel{
if (app.sound){
return (_arg1.play(0, 99999, new SoundTransform(_arg2, 0)));
};
return (new SoundChannel());
}
private function UpdateInput():void{
var _local1:Number;
var _local2:Number;
if (((( == false)) && (Key.isDown(27)))){
= _time;
= true;
.stage.quality = StageQuality.HIGH;
.addChild();
} else {
if ( == false){
if (app.inputMode == 1){
player.UpdateInput(Key.isDown(38), Key.isDown(40), Key.isDown(37), Key.isDown(39), Key.isDown(65), Key.isDown(83), true, Key.isDown(32));
} else {
player.UpdateInput(((Key.isDown(Key.W)) || (Key.isDown(38))), ((Key.isDown(Key.S)) || (Key.isDown(40))), ((Key.isDown(Key.A)) || (Key.isDown(37))), ((Key.isDown(Key.D)) || (Key.isDown(39))), , Key.isDown(Key.SPACE), false, false);
};
_local1 = player.selectedWeapon;
_local2 = player.selectedWeapon2;
if (Key.isDown(49)){
if (player.SelectWeapon(1)){
if (_local1 != 1){
PlaySound();
};
.gotoAndStop(1);
} else {
PlaySound();
};
};
if (Key.isDown(50)){
if (player.SelectWeapon(2)){
if (_local1 != 2){
PlaySound();
};
.gotoAndStop(2);
} else {
PlaySound();
};
};
if (Key.isDown(51)){
if (player.SelectWeapon(3)){
if (_local1 != 3){
PlaySound();
};
.gotoAndStop(3);
} else {
PlaySound();
};
};
if (Key.isDown(52)){
if (player.SelectWeapon(4)){
if (_local1 != 4){
PlaySound();
};
.gotoAndStop(4);
} else {
PlaySound();
};
};
if (Key.isDown(53)){
if (player.SelectWeapon(5)){
if (_local1 != 5){
PlaySound();
};
.gotoAndStop(5);
} else {
PlaySound();
};
};
if (Key.isDown(54)){
if (player.SelectWeapon(6)){
if (_local2 != 6){
PlaySound();
};
.gotoAndStop(6);
} else {
PlaySound();
};
};
if (Key.isDown(55)){
if (player.SelectWeapon(7)){
if (_local2 != 7){
PlaySound();
};
.gotoAndStop(7);
} else {
PlaySound();
};
};
if (Key.isDown(56)){
if (player.SelectWeapon(8)){
if (_local2 != 8){
PlaySound();
};
.gotoAndStop(8);
} else {
PlaySound();
};
};
if (Key.isDown(57)){
if (player.SelectWeapon(9)){
if (_local2 != 9){
PlaySound();
};
.gotoAndStop(9);
} else {
PlaySound();
};
};
if (Key.isDown(48)){
if (player.SelectWeapon(10)){
if (_local2 != 10){
PlaySound();
};
.gotoAndStop(10);
} else {
PlaySound();
};
};
} else {
if (!
){
Mouse.show();
= true;
};
};
};
}
public function ():void{
app.ChangeMusic(app.menuMusic);
app.ChangeState(new State_GameOverMenu(app, ));
}
function (_arg1:MouseEvent):void{
= false;
player.LookTowards((_arg1.stageX - camera.ScrollX), (_arg1.stageY - camera.ScrollY));
}
public function ShowWeaponPopup():void{
= true;
= _time;
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:int;
this.
.stage.frameRate = 30;
if (app.inputMode == 0){
= true;
Mouse.show();
.removeEventListener(MouseEvent.MOUSE_DOWN, );
.removeEventListener(MouseEvent.MOUSE_UP, );
.removeEventListener(MouseEvent.MOUSE_MOVE, );
};
if (app.sound){
.getChildByName("abortBtnBTM").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
SoundMixer.stopAll();
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
_local3 = 0;
while (_local3 < bulletArray.length) {
delete bulletArray[_local3];
bulletArray[_local3] = null;
_local3++;
};
_local3 = 0;
while (_local3 < isoObjectActiveArray.length) {
delete isoObjectActiveArray[_local3];
isoObjectActiveArray[_local3] = null;
_local3++;
};
_local3 = 0;
while (_local3 < enemyActiveArray.length) {
delete enemyActiveArray[_local3];
enemyActiveArray[_local3] = null;
_local3++;
};
_local3 = 0;
while (_local3 < solidActiveArray.length) {
delete solidActiveArray[_local3];
solidActiveArray[_local3] = null;
_local3++;
};
bulletArray = null;
solidActiveArray = null;
isoObjectActiveArray = null;
enemyActiveArray = null;
solidActiveArray = null;
pfGrid = null;
busyGrid = null;
.Stop();
.stage.quality = StageQuality.HIGH;
}
public function DrawBlood(_arg1:uint, _arg2:uint, _arg3:Number, _arg4:Number):void{
var _local5:BitmapData;
var _local6:Matrix;
if (_arg2 == 0){
return;
};
if (_arg2 == 30){
return;
};
_local6 = new Matrix();
switch (_arg1){
case 2:
switch (_arg2){
case 1:
_local5 =
;
break;
case 2:
_local5 =
;
break;
case 3:
_local5 = ;
break;
case 4:
_local5 = ;
break;
default:
_local5 =
;
break;
};
break;
case 3:
switch (_arg2){
case 1:
_local5 =
;
break;
case 2:
_local5 =
;
break;
case 3:
_local5 = ;
break;
case 4:
_local5 = ;
break;
default:
_local5 =
;
break;
};
break;
case 4:
switch (_arg2){
case 1:
_local5 =
;
_local6.a = -1;
break;
case 2:
_local5 =
;
_local6.a = -1;
break;
case 3:
_local5 = ;
_local6.a = -1;
break;
case 4:
_local5 = ;
_local6.a = -1;
break;
default:
_local5 =
;
_local6.a = -1;
break;
};
break;
case 5:
switch (_arg2){
case 1:
_local5 =
;
_local6.a = -1;
break;
case 2:
_local5 =
;
_local6.a = -1;
break;
case 3:
_local5 = ;
_local6.a = -1;
break;
case 4:
_local5 = ;
_local6.a = -1;
break;
default:
_local5 =
;
_local6.a = -1;
break;
};
break;
case 6:
switch (_arg2){
case 1:
_local5 = ;
_local6.a = -1;
break;
case 2:
_local5 = ;
_local6.a = -1;
break;
case 3:
_local5 = ;
_local6.a = -1;
break;
case 4:
_local5 =
;
_local6.a = -1;
break;
default:
_local5 = ;
_local6.a = -1;
break;
};
break;
case 7:
switch (_arg2){
case 1:
_local5 = ;
_local6.a = -1;
break;
case 2:
_local5 = ;
_local6.a = -1;
break;
case 3:
_local5 = ;
_local6.a = -1;
break;
case 4:
_local5 =
;
_local6.a = -1;
break;
default:
_local5 = ;
_local6.a = -1;
break;
};
break;
case 0:
switch (_arg2){
case 1:
_local5 = ;
break;
case 2:
_local5 = ;
break;
case 3:
_local5 = ;
break;
case 4:
_local5 =
;
break;
default:
_local5 = ;
break;
};
break;
case 1:
switch (_arg2){
case 1:
_local5 = ;
break;
case 2:
_local5 = ;
break;
case 3:
_local5 = ;
break;
case 4:
_local5 =
;
break;
default:
_local5 = ;
break;
};
break;
};
_local6.tx = _arg3;
_local6.ty = _arg4;
if (_local6.a == -1){
_local6.tx = (_local6.tx + _local5.width);
};
.draw(_local5, _local6);
}
private function ():void{
var _local1:uint;
var _local2:uint;
_local1 = 5;
_local2 = 30;
switch (app.thisLevel){
case 1:
_local1 = 10;
_local2 = 10;
break;
case 2:
_local1 = 15;
_local2 = 10;
break;
case 3:
_local1 = 15;
_local2 = 10;
break;
case 4:
_local1 = 20;
_local2 = 10;
break;
};
= new RespawnHandler(this, _local1, _local2);
enemyActiveArray = new Array();
comboArray = new Array();
}
private function ():void{
var _local1:DisplayObject;
var _local2:int;
_local2 = 0;
while (_local2 <
.numChildren) {
_local1 =
.getChildAt(_local2);
if ((_local1 is Trigger)){
.AddTrigger(Trigger(_local1));
.removeChild(_local1);
_local2--;
};
_local1 = null;
_local2++;
};
}
function PlayRaffica(_arg1:MouseEvent):void{
PlaySound(
);
}
public function Step():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Circle;
var _local5:Point;
var _local6:Circle;
var _local7:Point;
var _local8:Number;
var _local9:Number;
var _local10:Vector2;
.OnFrameStep();
.stage.focus = ;
_time = getTimer();
_time = (_time - );
= (_time - );
if ((((player.dieMode == true)) && (((_time - player.dieTime) > 3000)))){
app.ChangeState(new State_GameOverMenu(app, ));
};
= ( + (
/ ));
= Math.floor( );
= ( - );
= ( + (
/
));
= Math.floor( );
= ( - );
if (bulletArray == null){
return;
};
if ( == false){
_local1 = 0;
while (_local1 < ) {
UpdateInput();
_local1++;
};
_local1 = 0;
while (_local1 < ) {
camera.Update();
player.Step(this);
_local2 = 0;
while (_local2 < bulletArray.length) {
if (bulletArray[_local2].toDispose == true){
delete bulletArray[_local2];
bulletArray.splice(_local2, 1);
_local2--;
} else {
bulletArray[_local2].Step(this);
};
_local2++;
};
_local2 = 0;
while (_local2 < explosivesArray.length) {
if (explosivesArray[_local2].toDispose == true){
delete explosivesArray[_local2];
explosivesArray.splice(_local2, 1);
_local2--;
} else {
explosivesArray[_local2].Step(this);
};
_local2++;
};
_local4 = new Circle(player.collisionCircle.x, player.collisionCircle.y, player.collisionCircle.radius);
_local5 = new Point(.x, .y);
_local6 = new Circle(player.collisionCircle.x, player.collisionCircle.y, player.collisionCircle.radius);
_local7 = new Point(.x, .y);
_local8 = 0;
_local9 = 0;
_local10 = new Vector2();
_local2 = 0;
while (_local2 < solidActiveArray.length) {
if ((solidActiveArray[_local2] is CollisionCircle)){
if ( .test(solidActiveArray[_local2].collisionCircle, _local6, _local7) == true){
_local10 = .getBack();
_local8 = (_local8 + (player.x - _local10.x));
_local9 = (_local9 + (player.y - _local10.y));
};
} else {
if ((solidActiveArray[_local1] is CollisionObject)){
if (
.test(solidActiveArray[_local2].collisionPoly, _local6, _local7) == true){
_local10 =
.getBack();
_local8 = (_local8 + (player.x - _local10.x));
_local9 = (_local9 + (player.y - _local10.y));
};
};
};
_local2++;
};
player.x = (player.x - _local8);
player.y = (player.y - _local9);
_local2 = 0;
while (_local2 < enemyActiveArray.length) {
if (enemyActiveArray[_local2].dieMode != true){
busyGrid[pfGrid.FromPixelPosToGridIndex(new Point(enemyActiveArray[_local2].x, enemyActiveArray[_local2].y))] = enemyActiveArray[_local2].id;
} else {
busyGrid[pfGrid.FromPixelPosToGridIndex(new Point(enemyActiveArray[_local2].x, enemyActiveArray[_local2].y))] = -1;
};
_local2++;
};
_local2 = 0;
while (_local2 < enemyActiveArray.length) {
if (!enemyActiveArray[_local2].Step(this, _local2)){
delete enemyActiveArray[_local2];
enemyActiveArray.splice(_local2, 1);
_local2--;
};
_local2++;
};
lastPfEnemyIndex = (lastPfEnemyIndex + 5);
if (lastPfEnemyIndex >= enemyActiveArray.length){
lastPfEnemyIndex = -1;
};
_local2 = 0;
while (_local2 < comboArray.length) {
if (comboArray[_local2].AnimationEnd()){
comboArray[_local2].Dispose();
delete comboArray[_local2];
comboArray.splice(_local2, 1);
_local2--;
};
_local2++;
};
_local2 = 0;
while (_local2 < isoObjectActiveArray.length) {
if ((isoObjectActiveArray[_local2] is IsoObject)){
if (isoObjectActiveArray[_local2].toDispose != null){
if (isoObjectActiveArray[_local2].toDispose == true){
delete isoObjectActiveArray[_local2];
isoObjectActiveArray[_local2] = null;
isoObjectActiveArray.splice(_local2, 1);
_local2--;
};
};
};
_local2++;
};
if (player.y > camera.bottomBound){
player.y = camera.bottomBound;
};
if (player.y < (camera.topBound + 50)){
player.y = (camera.topBound + 50);
};
if (player.x < camera.leftBound){
player.x = camera.leftBound;
};
if (player.x > camera.rightBound){
player.x = camera.rightBound;
};
_local1++;
};
();
();
();
.text = "";
if (player.GetAmmoForSelectedPrimaryWeapon() != 1000){
.text = ("" + player.GetAmmoForSelectedPrimaryWeapon());
};
.text = ("" + player.GetAmmoForSelectedSecondaryWeapon());
.scaleY = (player.energy / player.maxEnergy);
.text = ("" + MemoryCrypto.getValue(app.sounds));
.x = player.x;
.y = player.y;
.Update(this);
} else {
camera.Update();
UpdateInput();
};
= _time;
}
public function
(_arg1:Event):void{
app.ChangeState(new State_MainMenu(app, ));
}
private function ():void{
var _local1:int;
while (.numChildren > 0) {
.removeChildAt(0);
};
if (((isoObjectActiveArray) && (!((isoObjectActiveArray == null))))){
isoObjectActiveArray.sortOn("y", Array.NUMERIC);
_local1 = 0;
while (_local1 < isoObjectActiveArray.length) {
.addChild(isoObjectActiveArray[_local1]);
_local1++;
};
};
}
public function ArenaCompleted():void{
if (app.thisLevel < app.maxLevel){
app.thisLevel++;
app.Save();
app.ChangeState(new State_ArenaBriefing(app, ));
} else {
app.ChangeState(new State_GameCompletedMenu(app, ));
};
}
private function ():void{
explosivesArray = new Array();
bulletArray = new Array();
}
public function Init():void{
var _local1:int;
app.inMenu = false;
app.inMenuMusicStarted = false;
= false;
if (app.menuLoop){
app.menuLoop.stop();
};
.stage.quality = StageQuality.LOW;
.addChild(
);
if (app.inputMode == 0){
.addEventListener(MouseEvent.MOUSE_DOWN, );
.addEventListener(MouseEvent.MOUSE_UP, );
.addEventListener(MouseEvent.MOUSE_MOVE, );
.addEventListener(MouseEvent.MOUSE_WHEEL, );
= false;
Mouse.hide();
= new Mirino();
.addChild();
};
= new MovieClip();
= new MovieClip();
= new BitmapData(
.width,
.height, true, 0xFFFFFF);
= new Bitmap(
);
= new patacca_E_sbudellato(100, 100);
= new patacca_SE_sbudellato(100, 100);
= new patacca_S_sbudellato(100, 100);
= new patacca_N_sbudellato(100, 100);
= new patacca_NE_sbudellato(100, 100);
= new patacca_E_fronte(100, 100);
= new patacca_SE_fronte(100, 100);
= new patacca_S_fronte(100, 100);
= new patacca_N_fronte(100, 100);
= new patacca_NE_fronte(100, 100);
= new patacca_E_esplosione(100, 100);
= new patacca_SE_esplosione(100, 100);
= new patacca_S_esplosione(100, 100);
= new patacca_N_esplosione(100, 100);
= new patacca_NE_esplosione(100, 100);
= new patacca_E_terra(100, 100);
= new patacca_SE_terra(100, 100);
= new patacca_S_terra(100, 100);
= new patacca_N_terra(100, 100);
= new patacca_NE_terra(100, 100);
= new Point(0, 0);
= new FrameRateCounter();
= new TextField();
.width = 300;
switch (app.thisPlayer){
case 1:
player = Player(new MainPG_indiano());
break;
case 2:
player = Player(new MainPG());
break;
case 3:
player = Player(new MainPG_messicano());
break;
};
= new Point((
.width / 2), (
.height / 2));
player.x = .x;
player.y = .y;
= new Rectangle(100, 100, (
.width - 200), (
.height - 200));
camera = new Camera2d_FollowTargetInBounds(
, , screenWidth, screenHeight, );
= new _gui();
= MovieClip(
.getChildByName("gino"));
= MovieClip(
.getChildByName("pino"));
= TextField(
.getChildByName("ammoCounter"));
= TextField(
.getChildByName("ammoCounter2"));
= TextField(
.getChildByName("scoreTxt"));
= MovieClip(MovieClip(
.getChildByName("healthBar")).getChildByName("maskLife"));
gui_weaponPopup = MovieClip(
.getChildByName("mcPopup_weapons"));
.addChild(
);
.addChild();
.addChild();
.addChild(
);
this.
.stage.frameRate = 120;
this.
.stage.stageFocusRect = false;
Key.initialize(
.stage);
Key.ClearKeys();
= getTimer();
= 15;
= 0;
= 0;
= 30;
= new CollisionConvexPolyCircle();
= new CollisionCircleCircle();
= new TriggerManager();
();
();
();
();
();
();
isoObjectActiveArray.sortOn("y", (Array.NUMERIC | Array.DESCENDING));
();
busyGrid = new Array((pfGrid.xCellCount * pfGrid.yCellCount));
_local1 = 0;
while (_local1 < (pfGrid.xCellCount * pfGrid.yCellCount)) {
busyGrid[_local1] = -1;
_local1++;
};
= false;
if (app.inputMode == 1){
= new InfoWnd_K();
} else {
= new InfoWnd_M();
};
= MovieClip(.getChildByName("audioBtn"));
.addEventListener(MouseEvent.CLICK, ToggleSound);
.getChildByName("abortBtnBTM").addEventListener(MouseEvent.MOUSE_UP,
);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_UP, );
if (app.sound){
.gotoAndStop(2);
.getChildByName("abortBtnBTM").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
} else {
.gotoAndStop(1);
};
.Play();
= 0;
player.SelectWeapon(1);
player.SelectWeapon(7);
.gotoAndStop(1);
.gotoAndStop(7);
app.killCount = 0;
= 0;
= PlayLoop(
);
= false;
waveMessage = new EndWaveMessage();
waveMessage.x = 225;
waveMessage.y = 100;
waveMessage.getChildByName("perfectText").visible = false;
waveMessage.visible = false;
.addChild(waveMessage);
startMessage = new StartWaveMessage();
startMessage.x = 225;
startMessage.y = 100;
startMessage.visible = false;
.addChild(startMessage);
}
function (_arg1:MouseEvent):void{
var _local2:uint;
var _local3:int;
_local2 = player.selectedWeapon;
if ((((_arg1.delta < 0)) && ((_local2 > 0)))){
_local3 = player.SelectPreviousPrimaryWeapon();
if (_local3 >= 0){
PlaySound();
.gotoAndStop(_local3);
};
} else {
if ((((_arg1.delta > 0)) && ((_local2 < 5)))){
_local3 = player.SelectNextPrimaryWeapon();
if (_local3 >= 0){
PlaySound();
.gotoAndStop(_local3);
};
};
};
}
public function
():void{
if ((_time -
) > 4000){
= false;
};
if (((( == true)) && ((gui_weaponPopup.y > 380)))){
gui_weaponPopup.y = (gui_weaponPopup.y - FoofaGeomUtils.Trim(((gui_weaponPopup.y - 380) / 10), 2, 30));
if (gui_weaponPopup.y < 351){
gui_weaponPopup.y = 350;
};
} else {
if (((( == false)) && ((gui_weaponPopup.y < 455)))){
gui_weaponPopup.y = (gui_weaponPopup.y + FoofaGeomUtils.Trim(((455 - gui_weaponPopup.y) / 10), 3, 30));
};
};
}
public function
(_arg1:String):Png{
var _local2:*;
_local2 = 0;
while (_local2 < enemyActiveArray.length) {
if (enemyActiveArray[_local2].name == _arg1){
return (enemyActiveArray[_local2]);
};
_local2++;
};
return (null);
}
private function
():void{
.InitArray(
);
}
function (_arg1:MouseEvent):void{
= true;
}
function (_arg1:MouseEvent):void{
.x = _arg1.stageX;
.y = (_arg1.stageY - 15);
player.LookTowards((_arg1.stageX - camera.ScrollX), (_arg1.stageY - camera.ScrollY));
}
private function
():void{
var _local1:CollisionClip;
var _local2:Object;
var _local3:Object;
var _local4:int;
var _local5:int;
_local2 = {walkable:true, cost:1, busy:-1};
_local3 = {walkable:false, cost:1, busy:-1};
_local4 = 25;
pfGrid = new PathFindingGrid(_local4, _local4, Math.floor((
.width / _local4)), Math.floor((
.height / _local4)), new Array());
pfGrid.Init(_local2);
_local5 = 0;
while (_local5 < solidActiveArray.length) {
if ((solidActiveArray[_local5] is CollisionCircle)){
pfGrid.DrawCircle(solidActiveArray[_local5].collisionCircle, _local3);
} else {
if ((solidActiveArray[_local5] is CollisionObject)){
pfGrid.DrawRectangle(solidActiveArray[_local5].collisionPoly.GetPointArray(), _local3);
};
};
_local5++;
};
lastPfEnemyIndex = -1;
}
private function ():void{
var _local1:DisplayObject;
var _local2:int;
solidActiveArray = new Array();
_local2 = 0;
while (_local2 <
.numChildren) {
_local1 =
.getChildAt(_local2);
if ((_local1 is CollisionObject)){
solidActiveArray.push(_local1);
.removeChild(_local1);
_local2--;
if ((_local1 is Collider_basso)){
Collider_basso(_local1).h = 15;
};
};
_local1 = null;
_local2++;
};
solidActiveArray.sortOn("y", (Array.NUMERIC | Array.DESCENDING));
}
public function (_arg1:Event):void{
if (app.inputMode == 0){
= false;
Mouse.hide();
};
= ( + (_time - ));
= false;
.removeChild();
.stage.quality = StageQuality.LOW;
}
private function ():void{
var _local1:DisplayObject;
var _local2:int;
var _local3:int;
isoObjectActiveArray = new Array();
_local2 = 0;
while (_local2 <
.numChildren) {
_local1 =
.getChildAt(_local2);
if ((_local1 is IsoObject)){
isoObjectActiveArray.push(_local1);
};
_local2++;
};
_local3 = 0;
while (_local3 < isoObjectActiveArray.length) {
.removeChild(isoObjectActiveArray[_local3]);
_local3++;
};
isoObjectActiveArray.push(player);
}
public function StopLoop(_arg1:SoundChannel):void{
if (app.sound){
if (_arg1){
_arg1.stop();
};
};
}
public function ToggleSound(_arg1:Event):void{
app.sound = !(app.sound);
if (app.sound){
.getChildByName("abortBtnBTM").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.gotoAndStop(2);
= PlayLoop(
);
} else {
.getChildByName("abortBtnBTM").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
SoundMixer.stopAll();
.gotoAndStop(1);
};
}
private function ():void{
var _local1:uint;
var _local2:Boolean;
_local1 = MemoryCrypto.getValue(app.sounds);
_local2 = .Update(enemyActiveArray, isoObjectActiveArray, bulletArray, _time, _local1);
if (_local2){
enemyActiveArray.sortOn("y", (Array.NUMERIC | Array.DESCENDING));
};
}
}
}//package ThisGame
Section 95
//State_MainMenu (ThisGame.State_MainMenu)
package ThisGame {
import flash.display.*;
import flash.text.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
import CMG_AS3.*;
import com.electrotank.util.*;
import flash.net.*;
public class State_MainMenu implements FSM_State {
private var :DisplayObject;
private var :DisplayObjectContainer;
private var :DisplayObject;
private var
;
private var app:Main_Application;
private var :DisplayObjectContainer;
public function State_MainMenu(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new MainMenu();
}
function PlayRaffica(_arg1:MouseEvent):void{
if (app.sound){
.play(0, 0, new SoundTransform(1, 0));
};
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
if (app.sound){
.getChildByName("moreBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("hallBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("playBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
.getChildByName("moreBtn").removeEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
.getChildByName("mcBtn_foofa").removeEventListener(MouseEvent.MOUSE_UP, );
.getChildByName("mcBtn_CMG").removeEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
.getChildByName("playBtn").removeEventListener(MouseEvent.MOUSE_UP, );
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_UP, continueButtonPressed);
.getChildByName("hallBtn").removeEventListener(MouseEvent.MOUSE_UP, );
if (!app.nextIsMenu){
app.inMenuMusicStarted = false;
};
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
}
function (_arg1:MouseEvent):void{
ScoreSubmitter.loadHighScorePage();
}
public function Step():void{
}
function (_arg1:MouseEvent):void{
app.goToFoofaNet();
}
function (_arg1:MouseEvent){
app.ResetLevel();
app.nextIsMenu = true;
app.ChangeState(new State_GameInfo(app, ));
}
function continueButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_SelectControls(app, ));
}
public function Init():void{
.addChild();
app.inMenu = true;
= new collect_crate();
.getChildByName("mcBtn_CMG").addEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
.getChildByName("moreBtn").addEventListener(MouseEvent.MOUSE_UP, moreButtonPressed);
.getChildByName("playBtn").addEventListener(MouseEvent.MOUSE_UP, );
.getChildByName("hallBtn").addEventListener(MouseEvent.MOUSE_UP, );
.getChildByName("mcBtn_foofa").addEventListener(MouseEvent.MOUSE_UP, );
TextField(.getChildByName("version")).text = Main_Application.gameVersion;
app.Load();
if (app.thisLevel > 1){
.getChildByName("continueBtn").alpha = 1;
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_UP, continueButtonPressed);
} else {
.getChildByName("continueBtn").alpha = 0.4;
.getChildByName("continueBtn").removeEventListener(MouseEvent.MOUSE_UP, continueButtonPressed);
};
MemoryCrypto.setValue(app.sounds, 0);
if (app.sound){
.getChildByName("playBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("hallBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("moreBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
.getChildByName("continueBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
if (!app.inMenuMusicStarted){
if (!app.menuLoopSnd){
app.menuLoopSnd = new menu_loop();
};
app.menuLoop = app.menuLoopSnd.play(0, 99999, new SoundTransform(1, 0));
app.inMenuMusicStarted = true;
};
};
}
function moreButtonPressed(_arg1:MouseEvent):void{
app.goToUrl("http://www.crazymonkeygames.com/");
}
}
}//package ThisGame
Section 96
//State_SelectControls (ThisGame.State_SelectControls)
package ThisGame {
import flash.display.*;
import FoofaCore.*;
import flash.events.*;
import flash.media.*;
public class State_SelectControls implements FSM_State {
private var app:Main_Application;
private var :DisplayObjectContainer;
private var :ControlsWnd;
private var
;
public function State_SelectControls(_arg1:Main_Application, _arg2:DisplayObjectContainer):void{
app = _arg1;
= _arg2;
= new collect_crate();
}
function abortButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_MainMenu(app, ));
}
function (_arg1:MouseEvent){
app.inputMode = 1;
app.ChangeState(new State_Info(app, ));
}
public function End():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
if (app.sound){
.getChildByName("abortBtn").removeEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
.getChildByName("abortBtn").removeEventListener(MouseEvent.MOUSE_DOWN, abortButtonPressed);
.getChildByName("mouseBtn").removeEventListener(MouseEvent.MOUSE_DOWN, );
.getChildByName("keyboardBtn").removeEventListener(MouseEvent.MOUSE_UP, );
_local1 = new Array();
_local1.push();
while (_local1.length > 0) {
_local2 = _local1.pop();
if ((_local2 is DisplayObjectContainer)){
_local3 = 0;
while (_local3 < _local2.numChildren) {
_local1.push(_local2.getChildAt(_local3));
_local2.removeChildAt(_local3);
_local3++;
};
};
_local2 = null;
};
}
function PlayRaffica(_arg1:MouseEvent):void{
if (app.sound){
.play(0, 0, new SoundTransform(1, 0));
};
}
public function Init():void{
= new ControlsWnd();
.addChild();
.getChildByName("abortBtn").addEventListener(MouseEvent.MOUSE_UP, abortButtonPressed);
.getChildByName("mouseBtn").addEventListener(MouseEvent.MOUSE_UP, );
.getChildByName("keyboardBtn").addEventListener(MouseEvent.MOUSE_UP, );
if (app.sound){
.getChildByName("abortBtn").addEventListener(MouseEvent.MOUSE_OVER, PlayRaffica);
};
}
function (_arg1:MouseEvent){
app.inputMode = 0;
app.ChangeState(new State_Info(app, ));
}
function nextButtonPressed(_arg1:MouseEvent){
app.ChangeState(new State_Character(app, ));
}
public function Step():void{
}
}
}//package ThisGame
Section 97
//Trap (ThisGame.Trap)
package ThisGame {
import FoofaGeom.*;
import flash.display.*;
import flash.geom.*;
public class Trap extends IsoObject {
const squaredRadius:int = 1000;
const squaredActivationRadius:int = 400;
public var senderIsPlayer:Boolean;
var kabooming:Boolean;
var vSpeed:Number;
var startTime:int;
public function Trap():void{
senderIsPlayer = false;
kabooming = false;
}
public function Step(_arg1:State_InGame):void{
var _local2:int;
var _local3:Point;
if (kabooming == false){
(_arg1);
} else {
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
_local3 = new Point(_arg1.enemyActiveArray[_local2].x, _arg1.enemyActiveArray[_local2].y);
if ((((_local3.x - x) * (_local3.x - x)) + ((_local3.y - y) * (_local3.y - y))) < squaredRadius){
_arg1.enemyActiveArray[_local2].OnHit(_arg1, 4);
};
_local2++;
};
toDispose = true;
};
}
private function
(_arg1:State_InGame):void{
var _local2:int;
var _local3:Point;
if (senderIsPlayer){
_local2 = 0;
while (_local2 < _arg1.enemyActiveArray.length) {
_local3 = new Point(_arg1.enemyActiveArray[_local2].x, _arg1.enemyActiveArray[_local2].y);
if ((((_local3.x - x) * (_local3.x - x)) + ((_local3.y - y) * (_local3.y - y))) < squaredActivationRadius){
kabooming = true;
};
_local2++;
};
if (((((_arg1._time - startTime) > 3000)) && (((((_arg1.player.x - x) * (_arg1.player.x - x)) + ((_arg1.player.y - y) * (_arg1.player.y - y))) < squaredActivationRadius)))){
kabooming = true;
_arg1.player.OnHit(_arg1, 20);
};
};
}
public function Init(_arg1:State_InGame, _arg2:Number=0, _arg3:Number=0):void{
startTime = _arg1._time;
}
}
}//package ThisGame
Section 98
//WeaponFactory (ThisGame.WeaponFactory)
package ThisGame {
class WeaponFactory {
public static function GetWeaponProperties(_arg1:int):GunProperties{
var _local2:GunProperties;
_local2 = new GunProperties();
switch (_arg1){
case 1:
_local2.rotSpeed = 5;
_local2.fireRate = 300;
_local2.firstReloadTime = 5;
break;
case 2:
_local2.rotSpeed = 5;
_local2.fireRate = 200;
_local2.firstReloadTime = 5;
break;
case 3:
_local2.rotSpeed = 5;
_local2.fireRate = 800;
_local2.firstReloadTime = 5;
break;
case 4:
_local2.rotSpeed = 5;
_local2.fireRate = 300;
_local2.firstReloadTime = 5;
break;
case 5:
_local2.rotSpeed = 5;
_local2.fireRate = 800;
_local2.firstReloadTime = 5;
break;
case 6:
_local2.rotSpeed = 1;
_local2.fireRate = 50;
_local2.firstReloadTime = 5;
break;
case 7:
_local2.rotSpeed = 5;
_local2.fireRate = 400;
_local2.firstReloadTime = 5;
break;
case 8:
_local2.rotSpeed = 5;
_local2.fireRate = 400;
_local2.firstReloadTime = 5;
break;
case 9:
_local2.rotSpeed = 5;
_local2.fireRate = 400;
_local2.firstReloadTime = 5;
break;
case 10:
_local2.rotSpeed = 5;
_local2.fireRate = 400;
_local2.firstReloadTime = 5;
break;
};
return (_local2);
}
}
}//package ThisGame
Section 99
//_gui (_gui)
package {
import flash.display.*;
import flash.text.*;
public dynamic class _gui extends MovieClip {
public var healthBar:MovieClip;
public var gino:gun1;
public var ammoCounter:TextField;
public var mcPopup_weapons:PopupWeapon;
public var medipacksText:TextField;
public var pino:gun1;
public var ammoCounter2:TextField;
public var scoreTxt:TextField;
public var mcPopup:MovieClip;
}
}//package
Section 100
//agave_1 (agave_1)
package {
import ThisGame.*;
public dynamic class agave_1 extends IsoObject {
}
}//package
Section 101
//agave_2 (agave_2)
package {
import ThisGame.*;
public dynamic class agave_2 extends IsoObject {
}
}//package
Section 102
//agave_3 (agave_3)
package {
import ThisGame.*;
public dynamic class agave_3 extends IsoObject {
}
}//package
Section 103
//albero_1 (albero_1)
package {
import ThisGame.*;
public dynamic class albero_1 extends IsoObject {
}
}//package
Section 104
//albero_2 (albero_2)
package {
import ThisGame.*;
public dynamic class albero_2 extends IsoObject {
}
}//package
Section 105
//albero_3 (albero_3)
package {
import ThisGame.*;
public dynamic class albero_3 extends IsoObject {
}
}//package
Section 106
//albero_secco_1 (albero_secco_1)
package {
import ThisGame.*;
public dynamic class albero_secco_1 extends IsoObject {
}
}//package
Section 107
//albero_secco_2 (albero_secco_2)
package {
import ThisGame.*;
public dynamic class albero_secco_2 extends IsoObject {
}
}//package
Section 108
//albero_secco_3 (albero_secco_3)
package {
import ThisGame.*;
public dynamic class albero_secco_3 extends IsoObject {
}
}//package
Section 109
//albero_secco_gufo (albero_secco_gufo)
package {
import ThisGame.*;
public dynamic class albero_secco_gufo extends IsoObject {
}
}//package
Section 110
//albero_secco_gufo_2 (albero_secco_gufo_2)
package {
import ThisGame.*;
public dynamic class albero_secco_gufo_2 extends IsoObject {
}
}//package
Section 111
//albero_secco_impiccato_1 (albero_secco_impiccato_1)
package {
import ThisGame.*;
public dynamic class albero_secco_impiccato_1 extends IsoObject {
}
}//package
Section 112
//albero_secco_impiccato_2 (albero_secco_impiccato_2)
package {
import ThisGame.*;
public dynamic class albero_secco_impiccato_2 extends IsoObject {
}
}//package
Section 113
//albero_secco_impiccato_3 (albero_secco_impiccato_3)
package {
import ThisGame.*;
public dynamic class albero_secco_impiccato_3 extends IsoObject {
}
}//package
Section 114
//Arch_E (Arch_E)
package {
import ThisGame.*;
public dynamic class Arch_E extends IsoObject {
}
}//package
Section 115
//Arch_S (Arch_S)
package {
import ThisGame.*;
public dynamic class Arch_S extends IsoObject {
}
}//package
Section 116
//Arch_SE (Arch_SE)
package {
import ThisGame.*;
public dynamic class Arch_SE extends IsoObject {
}
}//package
Section 117
//ArenaBriefing (ArenaBriefing)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ArenaBriefing extends MovieClip {
public var backBtn:SimpleButton;
public var continueBtn:SimpleButton;
public var arenaImg:ChooseArena;
public var arenaTxt:TextField;
}
}//package
Section 118
//artillery_explosions (artillery_explosions)
package {
import flash.media.*;
public dynamic class artillery_explosions extends Sound {
}
}//package
Section 119
//artillery_firing (artillery_firing)
package {
import flash.media.*;
public dynamic class artillery_firing extends Sound {
}
}//package
Section 120
//b52_Aircraft (b52_Aircraft)
package {
import flash.media.*;
public dynamic class b52_Aircraft extends Sound {
}
}//package
Section 121
//b52_explosion (b52_explosion)
package {
import flash.media.*;
public dynamic class b52_explosion extends Sound {
}
}//package
Section 122
//bank_E (bank_E)
package {
import ThisGame.*;
public dynamic class bank_E extends IsoObject {
}
}//package
Section 123
//bank_N (bank_N)
package {
import ThisGame.*;
public dynamic class bank_N extends IsoObject {
}
}//package
Section 124
//bank_NE (bank_NE)
package {
import ThisGame.*;
public dynamic class bank_NE extends IsoObject {
}
}//package
Section 125
//bank_S (bank_S)
package {
import ThisGame.*;
public dynamic class bank_S extends IsoObject {
}
}//package
Section 126
//bank_SE (bank_SE)
package {
import ThisGame.*;
public dynamic class bank_SE extends IsoObject {
}
}//package
Section 127
//bank_SW (bank_SW)
package {
import ThisGame.*;
public dynamic class bank_SW extends IsoObject {
}
}//package
Section 128
//bkg_sounds (bkg_sounds)
package {
import flash.media.*;
public dynamic class bkg_sounds extends Sound {
}
}//package
Section 129
//Bullet_pg (Bullet_pg)
package {
import ThisGame.*;
public dynamic class Bullet_pg extends Bullet {
public function Bullet_pg(){
addFrameScript(0, frame1, 3, frame4);
}
function frame4(){
stop();
}
function frame1(){
stop();
}
}
}//package
Section 130
//cactus_1 (cactus_1)
package {
import ThisGame.*;
public dynamic class cactus_1 extends IsoObject {
}
}//package
Section 131
//cactus_2 (cactus_2)
package {
import ThisGame.*;
public dynamic class cactus_2 extends IsoObject {
}
}//package
Section 132
//cactus_3 (cactus_3)
package {
import ThisGame.*;
public dynamic class cactus_3 extends IsoObject {
}
}//package
Section 133
//cactus_4 (cactus_4)
package {
import ThisGame.*;
public dynamic class cactus_4 extends IsoObject {
}
}//package
Section 134
//cactus_5 (cactus_5)
package {
import ThisGame.*;
public dynamic class cactus_5 extends IsoObject {
}
}//package
Section 135
//cactus_6 (cactus_6)
package {
import ThisGame.*;
public dynamic class cactus_6 extends IsoObject {
}
}//package
Section 136
//cactus_7 (cactus_7)
package {
import ThisGame.*;
public dynamic class cactus_7 extends IsoObject {
}
}//package
Section 137
//cactus_8 (cactus_8)
package {
import ThisGame.*;
public dynamic class cactus_8 extends IsoObject {
}
}//package
Section 138
//cactus_9 (cactus_9)
package {
import ThisGame.*;
public dynamic class cactus_9 extends IsoObject {
}
}//package
Section 139
//carrello_E (carrello_E)
package {
import ThisGame.*;
public dynamic class carrello_E extends IsoObject {
}
}//package
Section 140
//carrello_N (carrello_N)
package {
import ThisGame.*;
public dynamic class carrello_N extends IsoObject {
}
}//package
Section 141
//carrello_NE (carrello_NE)
package {
import ThisGame.*;
public dynamic class carrello_NE extends IsoObject {
}
}//package
Section 142
//carrello_SE (carrello_SE)
package {
import ThisGame.*;
public dynamic class carrello_SE extends IsoObject {
}
}//package
Section 143
//casa_1_E (casa_1_E)
package {
import ThisGame.*;
public dynamic class casa_1_E extends IsoObject {
}
}//package
Section 144
//casa_1_N (casa_1_N)
package {
import ThisGame.*;
public dynamic class casa_1_N extends IsoObject {
}
}//package
Section 145
//casa_1_NE (casa_1_NE)
package {
import ThisGame.*;
public dynamic class casa_1_NE extends IsoObject {
}
}//package
Section 146
//casa_1_S (casa_1_S)
package {
import ThisGame.*;
public dynamic class casa_1_S extends IsoObject {
}
}//package
Section 147
//casa_1_SE (casa_1_SE)
package {
import ThisGame.*;
public dynamic class casa_1_SE extends IsoObject {
}
}//package
Section 148
//casa_2_E (casa_2_E)
package {
import ThisGame.*;
public dynamic class casa_2_E extends IsoObject {
}
}//package
Section 149
//casa_2_N (casa_2_N)
package {
import ThisGame.*;
public dynamic class casa_2_N extends IsoObject {
}
}//package
Section 150
//casa_2_NE (casa_2_NE)
package {
import ThisGame.*;
public dynamic class casa_2_NE extends IsoObject {
}
}//package
Section 151
//casa_2_S (casa_2_S)
package {
import ThisGame.*;
public dynamic class casa_2_S extends IsoObject {
}
}//package
Section 152
//casa_2_SE (casa_2_SE)
package {
import ThisGame.*;
public dynamic class casa_2_SE extends IsoObject {
}
}//package
Section 153
//Cassa_medica_incl (Cassa_medica_incl)
package {
import ThisGame.*;
public dynamic class Cassa_medica_incl extends Medipack {
}
}//package
Section 154
//Cassa_medica_oriz (Cassa_medica_oriz)
package {
import ThisGame.*;
public dynamic class Cassa_medica_oriz extends Medipack {
}
}//package
Section 155
//Cassa_munizioni_10_incl (Cassa_munizioni_10_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_10_incl extends AmmoCrate10 {
}
}//package
Section 156
//Cassa_munizioni_2_incl (Cassa_munizioni_2_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_2_incl extends AmmoCrate2 {
}
}//package
Section 157
//Cassa_munizioni_3_incl (Cassa_munizioni_3_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_3_incl extends AmmoCrate3 {
}
}//package
Section 158
//Cassa_munizioni_4_incl (Cassa_munizioni_4_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_4_incl extends AmmoCrate4 {
}
}//package
Section 159
//Cassa_munizioni_5_incl (Cassa_munizioni_5_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_5_incl extends AmmoCrate5 {
}
}//package
Section 160
//Cassa_munizioni_6_incl (Cassa_munizioni_6_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_6_incl extends AmmoCrate6 {
}
}//package
Section 161
//Cassa_munizioni_7_incl (Cassa_munizioni_7_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_7_incl extends AmmoCrate7 {
}
}//package
Section 162
//Cassa_munizioni_8_incl (Cassa_munizioni_8_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_8_incl extends AmmoCrate8 {
}
}//package
Section 163
//Cassa_munizioni_9_incl (Cassa_munizioni_9_incl)
package {
import ThisGame.*;
public dynamic class Cassa_munizioni_9_incl extends AmmoCrate9 {
}
}//package
Section 164
//CharactersMenu (CharactersMenu)
package {
import flash.display.*;
public dynamic class CharactersMenu extends MovieClip {
public var backBtn:SimpleButton;
public var player2Btn:SimpleButton;
public var player3Btn:SimpleButton;
public var player1Btn:SimpleButton;
}
}//package
Section 165
//chiesa_E (chiesa_E)
package {
import ThisGame.*;
public dynamic class chiesa_E extends IsoObject {
}
}//package
Section 166
//chiesa_N (chiesa_N)
package {
import ThisGame.*;
public dynamic class chiesa_N extends IsoObject {
}
}//package
Section 167
//chiesa_NE (chiesa_NE)
package {
import ThisGame.*;
public dynamic class chiesa_NE extends IsoObject {
}
}//package
Section 168
//chiesa_S (chiesa_S)
package {
import ThisGame.*;
public dynamic class chiesa_S extends IsoObject {
}
}//package
Section 169
//chiesa_SE (chiesa_SE)
package {
import ThisGame.*;
public dynamic class chiesa_SE extends IsoObject {
}
}//package
Section 170
//ChooseArena (ChooseArena)
package {
import flash.display.*;
public dynamic class ChooseArena extends MovieClip {
public function ChooseArena(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 171
//cilecca (cilecca)
package {
import flash.media.*;
public dynamic class cilecca extends Sound {
}
}//package
Section 172
//CircleCollider (CircleCollider)
package {
import ThisGame.*;
public dynamic class CircleCollider extends CollisionCircle {
}
}//package
Section 173
//cisterna_E (cisterna_E)
package {
import ThisGame.*;
public dynamic class cisterna_E extends IsoObject {
}
}//package
Section 174
//cisterna_N (cisterna_N)
package {
import ThisGame.*;
public dynamic class cisterna_N extends IsoObject {
}
}//package
Section 175
//cisterna_NE (cisterna_NE)
package {
import ThisGame.*;
public dynamic class cisterna_NE extends IsoObject {
}
}//package
Section 176
//cisterna_S (cisterna_S)
package {
import ThisGame.*;
public dynamic class cisterna_S extends IsoObject {
}
}//package
Section 177
//cisterna_SE (cisterna_SE)
package {
import ThisGame.*;
public dynamic class cisterna_SE extends IsoObject {
}
}//package
Section 178
//collect_crate (collect_crate)
package {
import flash.media.*;
public dynamic class collect_crate extends Sound {
}
}//package
Section 179
//Collider (Collider)
package {
import ThisGame.*;
public dynamic class Collider extends CollisionClip {
}
}//package
Section 180
//Collider_basso (Collider_basso)
package {
import ThisGame.*;
public dynamic class Collider_basso extends CollisionClip {
}
}//package
Section 181
//colpito (colpito)
package {
import flash.media.*;
public dynamic class colpito extends Sound {
}
}//package
Section 182
//ControlsWnd (ControlsWnd)
package {
import flash.display.*;
public dynamic class ControlsWnd extends MovieClip {
public var keyboardBtn:SimpleButton;
public var abortBtn:SimpleButton;
public var mouseBtn:SimpleButton;
}
}//package
Section 183
//corral_E (corral_E)
package {
import ThisGame.*;
public dynamic class corral_E extends IsoObject {
}
}//package
Section 184
//corral_N (corral_N)
package {
import ThisGame.*;
public dynamic class corral_N extends IsoObject {
}
}//package
Section 185
//corral_NE (corral_NE)
package {
import ThisGame.*;
public dynamic class corral_NE extends IsoObject {
}
}//package
Section 186
//corral_S (corral_S)
package {
import ThisGame.*;
public dynamic class corral_S extends IsoObject {
}
}//package
Section 187
//corral_SE (corral_SE)
package {
import ThisGame.*;
public dynamic class corral_SE extends IsoObject {
}
}//package
Section 188
//emporio_E (emporio_E)
package {
import ThisGame.*;
public dynamic class emporio_E extends IsoObject {
}
}//package
Section 189
//emporio_N (emporio_N)
package {
import ThisGame.*;
public dynamic class emporio_N extends IsoObject {
}
}//package
Section 190
//emporio_NE (emporio_NE)
package {
import ThisGame.*;
public dynamic class emporio_NE extends IsoObject {
}
}//package
Section 191
//emporio_S (emporio_S)
package {
import ThisGame.*;
public dynamic class emporio_S extends IsoObject {
}
}//package
Section 192
//emporio_SE (emporio_SE)
package {
import ThisGame.*;
public dynamic class emporio_SE extends IsoObject {
}
}//package
Section 193
//emporio_SW (emporio_SW)
package {
import ThisGame.*;
public dynamic class emporio_SW extends IsoObject {
}
}//package
Section 194
//EndWaveMessage (EndWaveMessage)
package {
import flash.display.*;
import flash.text.*;
public dynamic class EndWaveMessage extends MovieClip {
public var waveText:TextField;
public var perfectText:TextField;
}
}//package
Section 195
//EndWaveSound (EndWaveSound)
package {
import flash.media.*;
public dynamic class EndWaveSound extends Sound {
}
}//package
Section 196
//enemy_cannon1 (enemy_cannon1)
package {
import flash.media.*;
public dynamic class enemy_cannon1 extends Sound {
}
}//package
Section 197
//enemy_cannon2 (enemy_cannon2)
package {
import flash.media.*;
public dynamic class enemy_cannon2 extends Sound {
}
}//package
Section 198
//enemy_crash (enemy_crash)
package {
import flash.media.*;
public dynamic class enemy_crash extends Sound {
}
}//package
Section 199
//enemy_explosion (enemy_explosion)
package {
import flash.media.*;
public dynamic class enemy_explosion extends Sound {
}
}//package
Section 200
//enemy_machinegun (enemy_machinegun)
package {
import flash.media.*;
public dynamic class enemy_machinegun extends Sound {
}
}//package
Section 201
//enemy_rocket (enemy_rocket)
package {
import flash.media.*;
public dynamic class enemy_rocket extends Sound {
}
}//package
Section 202
//entrata_corral_E (entrata_corral_E)
package {
import ThisGame.*;
public dynamic class entrata_corral_E extends IsoObject {
}
}//package
Section 203
//entrata_corral_N (entrata_corral_N)
package {
import ThisGame.*;
public dynamic class entrata_corral_N extends IsoObject {
}
}//package
Section 204
//entrata_corral_NE (entrata_corral_NE)
package {
import ThisGame.*;
public dynamic class entrata_corral_NE extends IsoObject {
}
}//package
Section 205
//entrata_corral_S (entrata_corral_S)
package {
import ThisGame.*;
public dynamic class entrata_corral_S extends IsoObject {
}
}//package
Section 206
//entrata_corral_SE (entrata_corral_SE)
package {
import ThisGame.*;
public dynamic class entrata_corral_SE extends IsoObject {
}
}//package
Section 207
//erba (erba)
package {
import flash.display.*;
public dynamic class erba extends BitmapData {
public function erba(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 208
//freccia (freccia)
package {
import flash.media.*;
public dynamic class freccia extends Sound {
}
}//package
Section 209
//fuoco_2 (fuoco_2)
package {
import ThisGame.*;
public dynamic class fuoco_2 extends IsoObject {
}
}//package
Section 210
//fuoco_3 (fuoco_3)
package {
import ThisGame.*;
public dynamic class fuoco_3 extends IsoObject {
}
}//package
Section 211
//fuoco_grande_1 (fuoco_grande_1)
package {
import ThisGame.*;
public dynamic class fuoco_grande_1 extends IsoObject {
}
}//package
Section 212
//fuoco_grande_2 (fuoco_grande_2)
package {
import ThisGame.*;
public dynamic class fuoco_grande_2 extends IsoObject {
}
}//package
Section 213
//fuoco_grande_3 (fuoco_grande_3)
package {
import ThisGame.*;
public dynamic class fuoco_grande_3 extends IsoObject {
}
}//package
Section 214
//GameCompletedMenu (GameCompletedMenu)
package {
import flash.display.*;
import flash.text.*;
public dynamic class GameCompletedMenu extends MovieClip {
public var backBtn:SimpleButton;
public var submitBtn:SimpleButton;
public var nameText:TextField;
public var hallBtn:SimpleButton;
public var submitText:TextField;
public var moreBtn:SimpleButton;
public var scoreText:TextField;
}
}//package
Section 215
//GameInfo (GameInfo)
package {
import flash.display.*;
public dynamic class GameInfo extends MovieClip {
public var abortBtn:SimpleButton;
public var continueBtn:SimpleButton;
}
}//package
Section 216
//GameOverMenu (GameOverMenu)
package {
import flash.display.*;
import flash.text.*;
public dynamic class GameOverMenu extends MovieClip {
public var backBtn:SimpleButton;
public var againBtn:SimpleButton;
public var submitBtn:SimpleButton;
public var nameText:TextField;
public var hallBtn:SimpleButton;
public var submitText:TextField;
public var moreBtn:SimpleButton;
public var scoreText:TextField;
}
}//package
Section 217
//gun1 (gun1)
package {
import flash.display.*;
public dynamic class gun1 extends MovieClip {
public function gun1(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, , 5, , 6, , 7, , 8,
, 9, );
}
function (){
stop();
}
function frame3(){
stop();
}
function (){
stop();
}
function (){
stop();
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function (){
stop();
}
function
(){
stop();
}
function (){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 218
//InfoWnd_K (InfoWnd_K)
package {
import flash.display.*;
public dynamic class InfoWnd_K extends MovieClip {
public var continueBtn:SimpleButton;
public var audioBtn:MovieClip;
public var abortBtnBTM:SimpleButton;
}
}//package
Section 219
//InfoWnd_M (InfoWnd_M)
package {
import flash.display.*;
public dynamic class InfoWnd_M extends MovieClip {
public var continueBtn:SimpleButton;
public var audioBtn:MovieClip;
public var abortBtnBTM:SimpleButton;
}
}//package
Section 220
//lapide_1_E (lapide_1_E)
package {
import ThisGame.*;
public dynamic class lapide_1_E extends IsoObject {
}
}//package
Section 221
//lapide_1_N (lapide_1_N)
package {
import ThisGame.*;
public dynamic class lapide_1_N extends IsoObject {
}
}//package
Section 222
//lapide_1_NE (lapide_1_NE)
package {
import ThisGame.*;
public dynamic class lapide_1_NE extends IsoObject {
}
}//package
Section 223
//lapide_1_S (lapide_1_S)
package {
import ThisGame.*;
public dynamic class lapide_1_S extends IsoObject {
}
}//package
Section 224
//lapide_1_SE (lapide_1_SE)
package {
import ThisGame.*;
public dynamic class lapide_1_SE extends IsoObject {
}
}//package
Section 225
//lapide_2_E (lapide_2_E)
package {
import ThisGame.*;
public dynamic class lapide_2_E extends IsoObject {
}
}//package
Section 226
//lapide_2_N (lapide_2_N)
package {
import ThisGame.*;
public dynamic class lapide_2_N extends IsoObject {
}
}//package
Section 227
//lapide_2_NE (lapide_2_NE)
package {
import ThisGame.*;
public dynamic class lapide_2_NE extends IsoObject {
}
}//package
Section 228
//lapide_2_S (lapide_2_S)
package {
import ThisGame.*;
public dynamic class lapide_2_S extends IsoObject {
}
}//package
Section 229
//lapide_2_SE (lapide_2_SE)
package {
import ThisGame.*;
public dynamic class lapide_2_SE extends IsoObject {
}
}//package
Section 230
//lapide_3_E (lapide_3_E)
package {
import ThisGame.*;
public dynamic class lapide_3_E extends IsoObject {
}
}//package
Section 231
//lapide_3_N (lapide_3_N)
package {
import ThisGame.*;
public dynamic class lapide_3_N extends IsoObject {
}
}//package
Section 232
//lapide_3_NE (lapide_3_NE)
package {
import ThisGame.*;
public dynamic class lapide_3_NE extends IsoObject {
}
}//package
Section 233
//lapide_3_S (lapide_3_S)
package {
import ThisGame.*;
public dynamic class lapide_3_S extends IsoObject {
}
}//package
Section 234
//lapide_3_SE (lapide_3_SE)
package {
import ThisGame.*;
public dynamic class lapide_3_SE extends IsoObject {
}
}//package
Section 235
//lapide_4_E (lapide_4_E)
package {
import ThisGame.*;
public dynamic class lapide_4_E extends IsoObject {
}
}//package
Section 236
//lapide_4_N (lapide_4_N)
package {
import ThisGame.*;
public dynamic class lapide_4_N extends IsoObject {
}
}//package
Section 237
//lapide_4_NE (lapide_4_NE)
package {
import ThisGame.*;
public dynamic class lapide_4_NE extends IsoObject {
}
}//package
Section 238
//lapide_4_S (lapide_4_S)
package {
import ThisGame.*;
public dynamic class lapide_4_S extends IsoObject {
}
}//package
Section 239
//lapide_4_SE (lapide_4_SE)
package {
import ThisGame.*;
public dynamic class lapide_4_SE extends IsoObject {
}
}//package
Section 240
//Level_1 (Level_1)
package {
import flash.display.*;
public dynamic class Level_1 extends MovieClip {
public function Level_1(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package
Section 241
//Level_2 (Level_2)
package {
import flash.display.*;
public dynamic class Level_2 extends MovieClip {
public function Level_2(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package
Section 242
//Level_3 (Level_3)
package {
import flash.display.*;
public dynamic class Level_3 extends MovieClip {
public function Level_3(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package
Section 243
//Level_4 (Level_4)
package {
import flash.display.*;
public dynamic class Level_4 extends MovieClip {
public function Level_4(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package
Section 244
//MainMenu (MainMenu)
package {
import flash.display.*;
import flash.text.*;
public dynamic class MainMenu extends MovieClip {
public var version:TextField;
public var continueBtn:SimpleButton;
public var mcBtn_CMG:SimpleButton;
public var hallBtn:SimpleButton;
public var mcBtn_foofa:SimpleButton;
public var playBtn:SimpleButton;
public var moreBtn:SimpleButton;
}
}//package
Section 245
//MainPG (MainPG)
package {
import ThisGame.*;
public dynamic class MainPG extends Player {
public function MainPG(){
addFrameScript(29, frame30, 59, frame60, 89, frame90, 119, frame120, 149, frame150, 179, frame180, 209, frame210, 239, frame240, 275, frame276, 311, frame312, 347, frame348, 383, frame384, 419, frame420, 455, frame456, 491, frame492, 527, frame528);
}
function frame276(){
stop();
}
function frame180(){
stop();
}
function frame30(){
stop();
}
function frame528(){
stop();
}
function frame420(){
stop();
}
function frame60(){
stop();
}
function frame312(){
stop();
}
function frame456(){
stop();
}
function frame90(){
stop();
}
function frame348(){
stop();
}
function frame210(){
stop();
}
function frame240(){
stop();
}
function frame120(){
stop();
}
function frame492(){
stop();
}
function frame384(){
stop();
}
function frame150(){
stop();
}
}
}//package
Section 246
//MainPG_indiano (MainPG_indiano)
package {
import ThisGame.*;
public dynamic class MainPG_indiano extends Player {
public function MainPG_indiano(){
addFrameScript(29, frame30, 59, frame60, 89, frame90, 119, frame120, 149, frame150, 179, frame180, 209, frame210, 239, frame240, 275, frame276, 311, frame312, 347, frame348, 383, frame384, 419, frame420, 455, frame456, 491, frame492, 527, frame528);
}
function frame276(){
stop();
}
function frame180(){
stop();
}
function frame30(){
stop();
}
function frame528(){
stop();
}
function frame420(){
stop();
}
function frame60(){
stop();
}
function frame312(){
stop();
}
function frame456(){
stop();
}
function frame90(){
stop();
}
function frame348(){
stop();
}
function frame210(){
stop();
}
function frame240(){
stop();
}
function frame120(){
stop();
}
function frame492(){
stop();
}
function frame384(){
stop();
}
function frame150(){
stop();
}
}
}//package
Section 247
//MainPG_messicano (MainPG_messicano)
package {
import ThisGame.*;
public dynamic class MainPG_messicano extends Player {
public function MainPG_messicano(){
addFrameScript(29, frame30, 59, frame60, 89, frame90, 119, frame120, 149, frame150, 179, frame180, 209, frame210, 239, frame240, 275, frame276, 311, frame312, 347, frame348, 383, frame384, 419, frame420, 455, frame456, 491, frame492, 527, frame528);
}
function frame276(){
stop();
}
function frame180(){
stop();
}
function frame30(){
stop();
}
function frame528(){
stop();
}
function frame420(){
stop();
}
function frame60(){
stop();
}
function frame312(){
stop();
}
function frame456(){
stop();
}
function frame90(){
stop();
}
function frame348(){
stop();
}
function frame210(){
stop();
}
function frame240(){
stop();
}
function frame120(){
stop();
}
function frame492(){
stop();
}
function frame384(){
stop();
}
function frame150(){
stop();
}
}
}//package
Section 248
//medic (medic)
package {
import flash.media.*;
public dynamic class medic extends Sound {
}
}//package
Section 249
//menu_loop (menu_loop)
package {
import flash.media.*;
public dynamic class menu_loop extends Sound {
}
}//package
Section 250
//miniera_E (miniera_E)
package {
import ThisGame.*;
public dynamic class miniera_E extends IsoObject {
}
}//package
Section 251
//miniera_N (miniera_N)
package {
import ThisGame.*;
public dynamic class miniera_N extends IsoObject {
}
}//package
Section 252
//miniera_NE (miniera_NE)
package {
import ThisGame.*;
public dynamic class miniera_NE extends IsoObject {
}
}//package
Section 253
//miniera_S (miniera_S)
package {
import ThisGame.*;
public dynamic class miniera_S extends IsoObject {
}
}//package
Section 254
//miniera_SE (miniera_SE)
package {
import ThisGame.*;
public dynamic class miniera_SE extends IsoObject {
}
}//package
Section 255
//Mirino (Mirino)
package {
import flash.display.*;
public dynamic class Mirino extends MovieClip {
}
}//package
Section 256
//missione_NE (missione_NE)
package {
import ThisGame.*;
public dynamic class missione_NE extends IsoObject {
}
}//package
Section 257
//missione_S (missione_S)
package {
import ThisGame.*;
public dynamic class missione_S extends IsoObject {
}
}//package
Section 258
//missione_SE (missione_SE)
package {
import ThisGame.*;
public dynamic class missione_SE extends IsoObject {
}
}//package
Section 259
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("core.mochibot.com");
Security.allowInsecureDomain("core.mochibot.com");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 260
//monument_valley_1 (monument_valley_1)
package {
import ThisGame.*;
public dynamic class monument_valley_1 extends IsoObject {
}
}//package
Section 261
//monument_valley_2 (monument_valley_2)
package {
import ThisGame.*;
public dynamic class monument_valley_2 extends IsoObject {
}
}//package
Section 262
//monument_valley_3 (monument_valley_3)
package {
import ThisGame.*;
public dynamic class monument_valley_3 extends IsoObject {
}
}//package
Section 263
//mucchio_terra_1 (mucchio_terra_1)
package {
import ThisGame.*;
public dynamic class mucchio_terra_1 extends IsoObject {
}
}//package
Section 264
//mucchio_terra_2 (mucchio_terra_2)
package {
import ThisGame.*;
public dynamic class mucchio_terra_2 extends IsoObject {
}
}//package
Section 265
//mucchio_terra_3 (mucchio_terra_3)
package {
import ThisGame.*;
public dynamic class mucchio_terra_3 extends IsoObject {
}
}//package
Section 266
//muretto_pietra_NE (muretto_pietra_NE)
package {
import ThisGame.*;
public dynamic class muretto_pietra_NE extends IsoObject {
}
}//package
Section 267
//muretto_pietra_oriz (muretto_pietra_oriz)
package {
import ThisGame.*;
public dynamic class muretto_pietra_oriz extends IsoObject {
}
}//package
Section 268
//muretto_pietra_SE (muretto_pietra_SE)
package {
import ThisGame.*;
public dynamic class muretto_pietra_SE extends IsoObject {
}
}//package
Section 269
//muretto_pietra_vert (muretto_pietra_vert)
package {
import ThisGame.*;
public dynamic class muretto_pietra_vert extends IsoObject {
}
}//package
Section 270
//no_weapon (no_weapon)
package {
import flash.media.*;
public dynamic class no_weapon extends Sound {
}
}//package
Section 271
//palla_erba_1 (palla_erba_1)
package {
import ThisGame.*;
public dynamic class palla_erba_1 extends IsoObject {
}
}//package
Section 272
//palla_erba_2 (palla_erba_2)
package {
import ThisGame.*;
public dynamic class palla_erba_2 extends IsoObject {
}
}//package
Section 273
//palla_erba_3 (palla_erba_3)
package {
import ThisGame.*;
public dynamic class palla_erba_3 extends IsoObject {
}
}//package
Section 274
//patacca_E_esplosione (patacca_E_esplosione)
package {
import flash.display.*;
public dynamic class patacca_E_esplosione extends BitmapData {
public function patacca_E_esplosione(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 275
//patacca_E_fronte (patacca_E_fronte)
package {
import flash.display.*;
public dynamic class patacca_E_fronte extends BitmapData {
public function patacca_E_fronte(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 276
//patacca_E_sbudellato (patacca_E_sbudellato)
package {
import flash.display.*;
public dynamic class patacca_E_sbudellato extends BitmapData {
public function patacca_E_sbudellato(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 277
//patacca_E_terra (patacca_E_terra)
package {
import flash.display.*;
public dynamic class patacca_E_terra extends BitmapData {
public function patacca_E_terra(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 278
//patacca_N_esplosione (patacca_N_esplosione)
package {
import flash.display.*;
public dynamic class patacca_N_esplosione extends BitmapData {
public function patacca_N_esplosione(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 279
//patacca_N_fronte (patacca_N_fronte)
package {
import flash.display.*;
public dynamic class patacca_N_fronte extends BitmapData {
public function patacca_N_fronte(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 280
//patacca_N_sbudellato (patacca_N_sbudellato)
package {
import flash.display.*;
public dynamic class patacca_N_sbudellato extends BitmapData {
public function patacca_N_sbudellato(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 281
//patacca_N_terra (patacca_N_terra)
package {
import flash.display.*;
public dynamic class patacca_N_terra extends BitmapData {
public function patacca_N_terra(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 282
//patacca_NE_esplosione (patacca_NE_esplosione)
package {
import flash.display.*;
public dynamic class patacca_NE_esplosione extends BitmapData {
public function patacca_NE_esplosione(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 283
//patacca_NE_fronte (patacca_NE_fronte)
package {
import flash.display.*;
public dynamic class patacca_NE_fronte extends BitmapData {
public function patacca_NE_fronte(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 284
//patacca_NE_sbudellato (patacca_NE_sbudellato)
package {
import flash.display.*;
public dynamic class patacca_NE_sbudellato extends BitmapData {
public function patacca_NE_sbudellato(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 285
//patacca_NE_terra (patacca_NE_terra)
package {
import flash.display.*;
public dynamic class patacca_NE_terra extends BitmapData {
public function patacca_NE_terra(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 286
//patacca_S_esplosione (patacca_S_esplosione)
package {
import flash.display.*;
public dynamic class patacca_S_esplosione extends BitmapData {
public function patacca_S_esplosione(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 287
//patacca_S_fronte (patacca_S_fronte)
package {
import flash.display.*;
public dynamic class patacca_S_fronte extends BitmapData {
public function patacca_S_fronte(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 288
//patacca_S_sbudellato (patacca_S_sbudellato)
package {
import flash.display.*;
public dynamic class patacca_S_sbudellato extends BitmapData {
public function patacca_S_sbudellato(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 289
//patacca_S_terra (patacca_S_terra)
package {
import flash.display.*;
public dynamic class patacca_S_terra extends BitmapData {
public function patacca_S_terra(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 290
//patacca_SE_esplosione (patacca_SE_esplosione)
package {
import flash.display.*;
public dynamic class patacca_SE_esplosione extends BitmapData {
public function patacca_SE_esplosione(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 291
//patacca_SE_fronte (patacca_SE_fronte)
package {
import flash.display.*;
public dynamic class patacca_SE_fronte extends BitmapData {
public function patacca_SE_fronte(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 292
//patacca_SE_sbudellato (patacca_SE_sbudellato)
package {
import flash.display.*;
public dynamic class patacca_SE_sbudellato extends BitmapData {
public function patacca_SE_sbudellato(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 293
//patacca_SE_terra (patacca_SE_terra)
package {
import flash.display.*;
public dynamic class patacca_SE_terra extends BitmapData {
public function patacca_SE_terra(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 294
//point (point)
package {
import flash.display.*;
public dynamic class point extends MovieClip {
}
}//package
Section 295
//PopupWeapon (PopupWeapon)
package {
import flash.display.*;
public dynamic class PopupWeapon extends MovieClip {
public var recharge_0:MovieClip;
public var recharge_2:MovieClip;
public var recharge_5:MovieClip;
public var recharge_7:MovieClip;
public var recharge_9:MovieClip;
public var recharge_6:MovieClip;
public var recharge_8:MovieClip;
public var recharge_3:MovieClip;
public var recharge_4:MovieClip;
public var weapon_0:MovieClip;
public var weapon_2:MovieClip;
public var weapon_3:MovieClip;
public var weapon_5:MovieClip;
public var weapon_6:MovieClip;
public var weapon_8:MovieClip;
public var weapon_9:MovieClip;
public var weapon_4:MovieClip;
}
}//package
Section 296
//Preloader (Preloader)
package {
import flash.display.*;
import flash.text.*;
public dynamic class Preloader extends MovieClip {
public var bar:MovieClip;
public var percText:TextField;
public var pupille:MovieClip;
}
}//package
Section 297
//pulsanteschermataintro (pulsanteschermataintro)
package {
import flash.display.*;
public dynamic class pulsanteschermataintro extends SimpleButton {
}
}//package
Section 298
//raffica (raffica)
package {
import flash.media.*;
public dynamic class raffica extends Sound {
}
}//package
Section 299
//roccia_1 (roccia_1)
package {
import ThisGame.*;
public dynamic class roccia_1 extends IsoObject {
}
}//package
Section 300
//roccia_2 (roccia_2)
package {
import ThisGame.*;
public dynamic class roccia_2 extends IsoObject {
}
}//package
Section 301
//roccia_3 (roccia_3)
package {
import ThisGame.*;
public dynamic class roccia_3 extends IsoObject {
}
}//package
Section 302
//roccia_4 (roccia_4)
package {
import ThisGame.*;
public dynamic class roccia_4 extends IsoObject {
}
}//package
Section 303
//roccia_grande_1 (roccia_grande_1)
package {
import ThisGame.*;
public dynamic class roccia_grande_1 extends IsoObject {
}
}//package
Section 304
//roccia_grande_2 (roccia_grande_2)
package {
import ThisGame.*;
public dynamic class roccia_grande_2 extends IsoObject {
}
}//package
Section 305
//roccia_grande_3 (roccia_grande_3)
package {
import ThisGame.*;
public dynamic class roccia_grande_3 extends IsoObject {
}
}//package
Section 306
//roccia_grande_mon_valley_1 (roccia_grande_mon_valley_1)
package {
import ThisGame.*;
public dynamic class roccia_grande_mon_valley_1 extends IsoObject {
}
}//package
Section 307
//roccia_grande_mon_valley_2 (roccia_grande_mon_valley_2)
package {
import ThisGame.*;
public dynamic class roccia_grande_mon_valley_2 extends IsoObject {
}
}//package
Section 308
//saloon_E (saloon_E)
package {
import ThisGame.*;
public dynamic class saloon_E extends IsoObject {
}
}//package
Section 309
//saloon_N (saloon_N)
package {
import ThisGame.*;
public dynamic class saloon_N extends IsoObject {
}
}//package
Section 310
//saloon_NE (saloon_NE)
package {
import ThisGame.*;
public dynamic class saloon_NE extends IsoObject {
}
}//package
Section 311
//saloon_S (saloon_S)
package {
import ThisGame.*;
public dynamic class saloon_S extends IsoObject {
}
}//package
Section 312
//saloon_SE (saloon_SE)
package {
import ThisGame.*;
public dynamic class saloon_SE extends IsoObject {
}
}//package
Section 313
//saloon_SW (saloon_SW)
package {
import ThisGame.*;
public dynamic class saloon_SW extends IsoObject {
}
}//package
Section 314
//sceriffo_E (sceriffo_E)
package {
import ThisGame.*;
public dynamic class sceriffo_E extends IsoObject {
}
}//package
Section 315
//sceriffo_N (sceriffo_N)
package {
import ThisGame.*;
public dynamic class sceriffo_N extends IsoObject {
}
}//package
Section 316
//sceriffo_NW (sceriffo_NW)
package {
import ThisGame.*;
public dynamic class sceriffo_NW extends IsoObject {
}
}//package
Section 317
//sceriffo_S (sceriffo_S)
package {
import ThisGame.*;
public dynamic class sceriffo_S extends IsoObject {
}
}//package
Section 318
//sceriffo_SE (sceriffo_SE)
package {
import ThisGame.*;
public dynamic class sceriffo_SE extends IsoObject {
}
}//package
Section 319
//sceriffo_SW (sceriffo_SW)
package {
import ThisGame.*;
public dynamic class sceriffo_SW extends IsoObject {
}
}//package
Section 320
//scream_01 (scream_01)
package {
import flash.media.*;
public dynamic class scream_01 extends Sound {
}
}//package
Section 321
//scream_02 (scream_02)
package {
import flash.media.*;
public dynamic class scream_02 extends Sound {
}
}//package
Section 322
//scream_03 (scream_03)
package {
import flash.media.*;
public dynamic class scream_03 extends Sound {
}
}//package
Section 323
//scream_04 (scream_04)
package {
import flash.media.*;
public dynamic class scream_04 extends Sound {
}
}//package
Section 324
//scream_05 (scream_05)
package {
import flash.media.*;
public dynamic class scream_05 extends Sound {
}
}//package
Section 325
//scream_06 (scream_06)
package {
import flash.media.*;
public dynamic class scream_06 extends Sound {
}
}//package
Section 326
//scream_07 (scream_07)
package {
import flash.media.*;
public dynamic class scream_07 extends Sound {
}
}//package
Section 327
//scream_08 (scream_08)
package {
import flash.media.*;
public dynamic class scream_08 extends Sound {
}
}//package
Section 328
//scream_09 (scream_09)
package {
import flash.media.*;
public dynamic class scream_09 extends Sound {
}
}//package
Section 329
//scream_10 (scream_10)
package {
import flash.media.*;
public dynamic class scream_10 extends Sound {
}
}//package
Section 330
//scream_11 (scream_11)
package {
import flash.media.*;
public dynamic class scream_11 extends Sound {
}
}//package
Section 331
//scream_12 (scream_12)
package {
import flash.media.*;
public dynamic class scream_12 extends Sound {
}
}//package
Section 332
//scream_13 (scream_13)
package {
import flash.media.*;
public dynamic class scream_13 extends Sound {
}
}//package
Section 333
//scream_14 (scream_14)
package {
import flash.media.*;
public dynamic class scream_14 extends Sound {
}
}//package
Section 334
//scream_15 (scream_15)
package {
import flash.media.*;
public dynamic class scream_15 extends Sound {
}
}//package
Section 335
//stalla_E (stalla_E)
package {
import ThisGame.*;
public dynamic class stalla_E extends IsoObject {
}
}//package
Section 336
//stalla_N (stalla_N)
package {
import ThisGame.*;
public dynamic class stalla_N extends IsoObject {
}
}//package
Section 337
//stalla_NE (stalla_NE)
package {
import ThisGame.*;
public dynamic class stalla_NE extends IsoObject {
}
}//package
Section 338
//stalla_S (stalla_S)
package {
import ThisGame.*;
public dynamic class stalla_S extends IsoObject {
}
}//package
Section 339
//stalla_SE (stalla_SE)
package {
import ThisGame.*;
public dynamic class stalla_SE extends IsoObject {
}
}//package
Section 340
//stalla_SW (stalla_SW)
package {
import ThisGame.*;
public dynamic class stalla_SW extends IsoObject {
}
}//package
Section 341
//StartWaveMessage (StartWaveMessage)
package {
import flash.display.*;
public dynamic class StartWaveMessage extends MovieClip {
}
}//package
Section 342
//stazione_E (stazione_E)
package {
import ThisGame.*;
public dynamic class stazione_E extends IsoObject {
}
}//package
Section 343
//stazione_NE (stazione_NE)
package {
import ThisGame.*;
public dynamic class stazione_NE extends IsoObject {
}
}//package
Section 344
//stazione_NW (stazione_NW)
package {
import ThisGame.*;
public dynamic class stazione_NW extends IsoObject {
}
}//package
Section 345
//stazione_S (stazione_S)
package {
import ThisGame.*;
public dynamic class stazione_S extends IsoObject {
}
}//package
Section 346
//stazione_SE (stazione_SE)
package {
import ThisGame.*;
public dynamic class stazione_SE extends IsoObject {
}
}//package
Section 347
//stazione_SW (stazione_SW)
package {
import ThisGame.*;
public dynamic class stazione_SW extends IsoObject {
}
}//package
Section 348
//Symbol1 (Symbol1)
package {
import flash.display.*;
import ThisGame.*;
import flash.events.*;
import flash.ui.*;
public dynamic class Symbol1 extends MovieClip {
public var app:Main_Application;
public function Symbol1(){
addFrameScript(0, frame1);
}
public function
(_arg1:Event):void{
app.Loop();
}
function frame1(){
contextMenu = new ContextMenu();
contextMenu.hideBuiltInItems();
app = Main_Application.GetInstance();
app.ChangeState(new State_MainMenu(app, this));
this.addEventListener(Event.ENTER_FRAME,
);
app.InitMusics();
stop();
}
}
}//package
Section 349
//Telegrafo_incl_SE (Telegrafo_incl_SE)
package {
import ThisGame.*;
public dynamic class Telegrafo_incl_SE extends IsoObject {
}
}//package
Section 350
//Telegrafo_incl_SW (Telegrafo_incl_SW)
package {
import ThisGame.*;
public dynamic class Telegrafo_incl_SW extends IsoObject {
}
}//package
Section 351
//Telegrafo_oriz (Telegrafo_oriz)
package {
import ThisGame.*;
public dynamic class Telegrafo_oriz extends IsoObject {
}
}//package
Section 352
//tenda_indiana_E (tenda_indiana_E)
package {
import ThisGame.*;
public dynamic class tenda_indiana_E extends IsoObject {
}
}//package
Section 353
//tenda_indiana_N (tenda_indiana_N)
package {
import ThisGame.*;
public dynamic class tenda_indiana_N extends IsoObject {
}
}//package
Section 354
//tenda_indiana_S (tenda_indiana_S)
package {
import ThisGame.*;
public dynamic class tenda_indiana_S extends IsoObject {
}
}//package
Section 355
//tenda_indiana_SE (tenda_indiana_SE)
package {
import ThisGame.*;
public dynamic class tenda_indiana_SE extends IsoObject {
}
}//package
Section 356
//totem_1 (totem_1)
package {
import ThisGame.*;
public dynamic class totem_1 extends IsoObject {
}
}//package
Section 357
//totem_2 (totem_2)
package {
import ThisGame.*;
public dynamic class totem_2 extends IsoObject {
}
}//package
Section 358
//totem_3 (totem_3)
package {
import ThisGame.*;
public dynamic class totem_3 extends IsoObject {
}
}//package
Section 359
//ucciso (ucciso)
package {
import flash.media.*;
public dynamic class ucciso extends Sound {
}
}//package
Section 360
//weapon1_rifle (weapon1_rifle)
package {
import flash.media.*;
public dynamic class weapon1_rifle extends Sound {
}
}//package
Section 361
//weapon2_ak47 (weapon2_ak47)
package {
import flash.media.*;
public dynamic class weapon2_ak47 extends Sound {
}
}//package
Section 362
//weapon3_shotgun (weapon3_shotgun)
package {
import flash.media.*;
public dynamic class weapon3_shotgun extends Sound {
}
}//package
Section 363
//weapon4_flamethrower (weapon4_flamethrower)
package {
import flash.media.*;
public dynamic class weapon4_flamethrower extends Sound {
}
}//package
Section 364
//weapon5_rocketlauncher (weapon5_rocketlauncher)
package {
import flash.media.*;
public dynamic class weapon5_rocketlauncher extends Sound {
}
}//package
Section 365
//weapon6_grenade (weapon6_grenade)
package {
import flash.media.*;
public dynamic class weapon6_grenade extends Sound {
}
}//package
Section 366
//weapon7_firegrenade (weapon7_firegrenade)
package {
import flash.media.*;
public dynamic class weapon7_firegrenade extends Sound {
}
}//package