Section 1
//MD5 (com.adobe.crypto.MD5)
package com.adobe.crypto {
import com.adobe.utils.*;
public class MD5 {
private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function createBlocks(_arg1:String):Array{
var _local2:Array = new Array();
var _local3:int = (_arg1.length * 8);
var _local4 = 0xFF;
var _local5:int;
while (_local5 < _local3) {
_local2[(_local5 >> 5)] = (_local2[(_local5 >> 5)] | ((_arg1.charCodeAt((_local5 / 8)) & _local4) << (_local5 % 32)));
_local5 = (_local5 + 8);
};
_local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | (128 << (_local3 % 32)));
_local2[((((_local3 + 64) >>> 9) << 4) + 14)] = _local3;
return (_local2);
}
private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function f(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg2) | (~(_arg1) & _arg3)));
}
private static function g(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg3) | (_arg2 & ~(_arg3))));
}
private static function h(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 ^ _arg2) ^ _arg3));
}
private static function i(_arg1:int, _arg2:int, _arg3:int):int{
return ((_arg2 ^ (_arg1 | ~(_arg3))));
}
private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{
var _local9:int = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8);
return ((IntUtil.rol(_local9, _arg7) + _arg3));
}
private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
public static function hash(_arg1:String):String{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local2 = 1732584193;
var _local3 = -271733879;
var _local4 = -1732584194;
var _local5 = 271733878;
var _local10:Array = createBlocks(_arg1);
var _local11:int = _local10.length;
var _local12:int;
while (_local12 < _local11) {
_local6 = _local2;
_local7 = _local3;
_local8 = _local4;
_local9 = _local5;
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 7, -680876936);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 1)], 12, -389564586);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 17, 606105819);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 3)], 22, -1044525330);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 7, -176418897);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 5)], 12, 1200080426);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 17, -1473231341);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 7)], 22, -45705983);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 7, 1770035416);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 9)], 12, -1958414417);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 17, -42063);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 11)], 22, -1990404162);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 7, 1804603682);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 13)], 12, -40341101);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 17, -1502002290);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 15)], 22, 1236535329);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 5, -165796510);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 6)], 9, -1069501632);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 14, 643717713);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 0)], 20, -373897302);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 5, -701558691);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 10)], 9, 38016083);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 14, -660478335);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 4)], 20, -405537848);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 5, 568446438);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 14)], 9, -1019803690);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 14, -187363961);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 8)], 20, 1163531501);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 5, -1444681467);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 2)], 9, -51403784);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 14, 1735328473);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 12)], 20, -1926607734);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 4, -378558);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 8)], 11, -2022574463);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 16, 1839030562);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 14)], 23, -35309556);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 4, -1530992060);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 4)], 11, 1272893353);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 16, -155497632);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 10)], 23, -1094730640);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 4, 681279174);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 0)], 11, -358537222);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 16, -722521979);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 6)], 23, 76029189);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 4, -640364487);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 12)], 11, -421815835);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 16, 530742520);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 2)], 23, -995338651);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 6, -198630844);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 7)], 10, 1126891415);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 15, -1416354905);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 5)], 21, -57434055);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 6, 1700485571);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 3)], 10, -1894986606);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 15, -1051523);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 1)], 21, -2054922799);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 6, 1873313359);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 15)], 10, -30611744);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 15, -1560198380);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 13)], 21, 1309151649);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 6, -145523070);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 11)], 10, -1120210379);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 15, 718787259);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 9)], 21, -343485551);
_local2 = (_local2 + _local6);
_local3 = (_local3 + _local7);
_local4 = (_local4 + _local8);
_local5 = (_local5 + _local9);
_local12 = (_local12 + 16);
};
return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5)));
}
private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
}
}//package com.adobe.crypto
Section 2
//SHA1 (com.adobe.crypto.SHA1)
package com.adobe.crypto {
import flash.utils.*;
import com.adobe.utils.*;
public class SHA1 {
private static function hashBlocks(_arg1:Array):ByteArray{
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:int;
var _local15:int;
var _local16:int;
var _local17:int;
var _local2 = 1732584193;
var _local3:int = 4023233417;
var _local4:int = 2562383102;
var _local5 = 271733878;
var _local6:int = 3285377520;
var _local7:int = _arg1.length;
var _local8:Array = new Array(80);
var _local9:int;
while (_local9 < _local7) {
_local11 = _local2;
_local12 = _local3;
_local13 = _local4;
_local14 = _local5;
_local15 = _local6;
_local16 = 0;
while (_local16 < 80) {
if (_local16 < 16){
_local8[_local16] = _arg1[(_local9 + _local16)];
} else {
_local8[_local16] = IntUtil.rol((((_local8[(_local16 - 3)] ^ _local8[(_local16 - 8)]) ^ _local8[(_local16 - 14)]) ^ _local8[(_local16 - 16)]), 1);
};
_local17 = ((((IntUtil.rol(_local11, 5) + f(_local16, _local12, _local13, _local14)) + _local15) + int(_local8[_local16])) + k(_local16));
_local15 = _local14;
_local14 = _local13;
_local13 = IntUtil.rol(_local12, 30);
_local12 = _local11;
_local11 = _local17;
_local16++;
};
_local2 = (_local2 + _local11);
_local3 = (_local3 + _local12);
_local4 = (_local4 + _local13);
_local5 = (_local5 + _local14);
_local6 = (_local6 + _local15);
_local9 = (_local9 + 16);
};
var _local10:ByteArray = new ByteArray();
_local10.writeInt(_local2);
_local10.writeInt(_local3);
_local10.writeInt(_local4);
_local10.writeInt(_local5);
_local10.writeInt(_local6);
_local10.position = 0;
return (_local10);
}
private static function createBlocksFromByteArray(_arg1:ByteArray):Array{
var _local2:int = _arg1.position;
_arg1.position = 0;
var _local3:Array = new Array();
var _local4:int = (_arg1.length * 8);
var _local5 = 0xFF;
var _local6:int;
while (_local6 < _local4) {
_local3[(_local6 >> 5)] = (_local3[(_local6 >> 5)] | ((_arg1.readByte() & _local5) << (24 - (_local6 % 32))));
_local6 = (_local6 + 8);
};
_local3[(_local4 >> 5)] = (_local3[(_local4 >> 5)] | (128 << (24 - (_local4 % 32))));
_local3[((((_local4 + 64) >> 9) << 4) + 15)] = _local4;
_arg1.position = _local2;
return (_local3);
}
private static function f(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{
if (_arg1 < 20){
return (((_arg2 & _arg3) | (~(_arg2) & _arg4)));
};
if (_arg1 < 40){
return (((_arg2 ^ _arg3) ^ _arg4));
};
if (_arg1 < 60){
return ((((_arg2 & _arg3) | (_arg2 & _arg4)) | (_arg3 & _arg4)));
};
return (((_arg2 ^ _arg3) ^ _arg4));
}
private static function k(_arg1:int):int{
if (_arg1 < 20){
return (1518500249);
};
if (_arg1 < 40){
return (1859775393);
};
if (_arg1 < 60){
return (2400959708);
};
return (3395469782);
}
private static function createBlocksFromString(_arg1:String):Array{
var _local2:Array = new Array();
var _local3:int = (_arg1.length * 8);
var _local4 = 0xFF;
var _local5:int;
while (_local5 < _local3) {
_local2[(_local5 >> 5)] = (_local2[(_local5 >> 5)] | ((_arg1.charCodeAt((_local5 / 8)) & _local4) << (24 - (_local5 % 32))));
_local5 = (_local5 + 8);
};
_local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | (128 << (24 - (_local3 % 32))));
_local2[((((_local3 + 64) >> 9) << 4) + 15)] = _local3;
return (_local2);
}
public static function hashBytes(_arg1:ByteArray):String{
var _local2:Array = SHA1.createBlocksFromByteArray(_arg1);
var _local3:ByteArray = hashBlocks(_local2);
return (((((IntUtil.toHex(_local3.readInt(), true) + IntUtil.toHex(_local3.readInt(), true)) + IntUtil.toHex(_local3.readInt(), true)) + IntUtil.toHex(_local3.readInt(), true)) + IntUtil.toHex(_local3.readInt(), true)));
}
public static function hash(_arg1:String):String{
var _local2:Array = createBlocksFromString(_arg1);
var _local3:ByteArray = hashBlocks(_local2);
return (((((IntUtil.toHex(_local3.readInt(), true) + IntUtil.toHex(_local3.readInt(), true)) + IntUtil.toHex(_local3.readInt(), true)) + IntUtil.toHex(_local3.readInt(), true)) + IntUtil.toHex(_local3.readInt(), true)));
}
}
}//package com.adobe.crypto
Section 3
//IntUtil (com.adobe.utils.IntUtil)
package com.adobe.utils {
public class IntUtil {
private static var hexChars:String = "0123456789abcdef";
public static function toHex(_arg1:int, _arg2:Boolean=false):String{
var _local4:int;
var _local5:int;
var _local3 = "";
if (_arg2){
_local4 = 0;
while (_local4 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15))));
_local4++;
};
} else {
_local5 = 0;
while (_local5 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15))));
_local5++;
};
};
return (_local3);
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
public static function rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
}
}//package com.adobe.utils
Section 4
//BulletHolder (com.doof.shooting.BulletHolder)
package com.doof.shooting {
import flash.display.*;
public class BulletHolder extends MovieClip {
private var _spacing:int;// = 30
private var _bulletsArray:Array;
public var _numBullets:int;
public function BulletHolder(){
_bulletsArray = new Array();
super();
reset();
}
public function clearBullets():void{
var _local1:int;
while (_local1 < _bulletsArray.length) {
this.removeChild(_bulletsArray[_local1]);
_bulletsArray[_local1] = null;
_local1++;
};
_bulletsArray = new Array();
}
public function reset():void{
_numBullets = Config.NUM_BULLETS;
renderBullets();
}
public function get numBullets():int{
return (_numBullets);
}
public function set numBullets(_arg1:int):void{
_numBullets = _arg1;
renderBullets();
}
public function renderBullets():void{
var _local2:DisplayObject;
clearBullets();
var _local1:int;
while (_local1 < _numBullets) {
_local2 = this.addChild(new ReloadBullet());
_local2.x = (_local1 * _spacing);
_local2.visible = true;
_bulletsArray.push(_local2);
_local1++;
};
}
}
}//package com.doof.shooting
Section 5
//Config (com.doof.shooting.Config)
package com.doof.shooting {
public class Config {
public static var LEVEL_3_DATA:Array = [[[2500], [4000]], [[1000], [1200]], [[1000], [1500]], [[1000], [1200]], [[1000], [1200]], [[1000], [1900]], [[900], [2000]], [[1000], [2000]], [[1600], [2000]], [[1000], [2000]], [[1000], [2000]], [[800], [1500]], [[1000], [2000]], [[1000], [2000]], [[1000], [1700]], [[1600], [2000]], [[900], [2000]], [[1600], [2000]], [[1000], [2000]], [[1600], [2000]], [[1600], [2000]], [[900], [2000]], [[900], [2000]], [[1600], [2000]], [[1600], [2000]], [[1600], [2000]], [[900], [2000]], [[900], [1700]], [[1600], [2000]], [[1600], [2000]], [[1600], [2000]], [[2800], [3200]], [[1600], [2000]], [[800], [1500]], [[1600], [2000]], [[1600], [2000]], [[900], [1500]], [[1600], [2000]], [[900], [1500]], [[900], [1500]], [[1600], [2000]], [[1600], [2000]], [[600], [1500]], [[600], [1500]], [[1600], [2000]], [[900], [2000]], [[1600], [2000]], [[1600], [2000]], [[1600], [2000]], [[800], [1000]], [[1600], [2000]], [[900], [2000]], [[1600], [2000]], [[1600], [2000]], [[900], [2000]], [[1600], [2000]], [[2600], [8000]], [[900], [2000]], [[1600], [2000]], [[1600], [2000]], [[1000], [1200]], [[1600], [2000]], [[1600], [2000]], [[2500], [4000]]];
public static var LEVEL_1_ORDER:Array = [42, 40, 41, 32, 46, 45, 37, 38, 43, 22, 2, 8, 3, 4, 5, 7, 6, 24, 25, 23, 42, 45, 46, 32, 17, 13, 9, 10, 13, 11, 1, 47, 0, 24, 25, 16, 17, 18, 19, 21, 20, 42, 40, 48, 45, 33, 24, 4, 28, 2, 8, 7, 6, 4, 5, 0, 22, 31, 44, 39, 23, 36, 42, 46, 30, 1, 17, 9, 13, 12, 11, 13, 10, 42, 48];
public static var LEVEL_2_ORDER:Array = [25, 31, 24, 31, 9, 10, 5, 13, 2, 40, 6, 12, 30, 45, 27, 0, 37, 15, 1, 3, 13, 26, 28, 41, 43, 34, 18, 19, 14, 7, 35, 16, 36, 32, 33, 20, 21, 22, 38, 45, 46, 27, 37, 1, 3, 15, 11, 17, 11, 12, 29, 28, 33, 24, 34, 43, 39, 44, 34, 33, 18, 19, 14, 7, 9, 8, 28, 40, 2, 6, 12, 30, 37, 27, 46, 45];
public static var NUM_BULLETS:int = 8;
public static var PLAY_MODE:Boolean = true;
public static var INIT_LIVES:int = 5;
public static var LEVEL_2_DATA:Array = [[[1200], [2800]], [[1200], [2800]], [[1000], [2800]], [[1200], [2800]], [[1200], [2800]], [[1000], [2800]], [[1000], [2800]], [[1200], [2800]], [[1200], [2800]], [[1200], [2800]], [[1200], [2800]], [[1000], [2800]], [[1000], [2800]], [[1000], [2800]], [[1000], [2800]], [[1200], [2800]], [[1200], [2800]], [[1200], [2800]], [[1000], [2800]], [[1000], [2800]], [[1200], [3200]], [[2800], [4000]], [[1200], [3200]], [[1200], [2800]], [[1200], [2800]], [[1000], [2800]], [[1000], [2800]], [[1200], [2800]], [[2200], [2800]], [[1200], [2800]], [[1200], [2800]], [[2200], [2800]], [[2200], [2800]], [[1000], [2800]], [[1000], [2800]], [[2200], [2800]], [[3200], [2800]], [[1200], [2800]], [[1200], [2800]], [[1200], [2800]], [[1000], [2800]], [[900], [2300]], [[900], [2300]], [[1200], [2500]], [[900], [2300]], [[900], [2300]], [[900], [2300]], [[1200], [2800]]];
public static var LEVEL_3_ORDER:Array = [0, 2, 4, 3, 4, 7, 15, 39, 36, 38, 11, 33, 46, 60, 31, 47, 41, 40, 43, 42, 45, 44, 13, 12, 5, 9, 14, 18, 23, 22, 20, 17, 59, 23, 26, 54, 27, 16, 22, 19, 21, 31, 58, 52, 62, 55, 61, 48, 50, 45, 51, 19, 42, 14, 5, 22, 18, 20, 30, 57, 27, 29, 26, 21, 0, 2, 10, 3, 7, 8, 4, 6, 36, 11, 38, 39, 25, 35, 34, 31, 58, 52, 41, 47, 40, 43, 42, 14, 18, 22, 30, 17, 59, 54];
public static var CAMERA_LAG:int = 53;
public static var GAME_SPEED:Number = 1.22;
public static var LIFE_UP_SCORE:int = 25000;
public static var LEVEL_1_DATA:Array = [[[4000], [7300]], [[3500], [5300]], [[3000], [5300]], [[2000], [5300]], [[500], [5300]], [[500], [7300]], [[1000], [7300]], [[500], [5300]], [[500], [5300]], [[2500], [8300]], [[1000], [4300]], [[1000], [3300]], [[1000], [3300]], [[1000], [3300]], [[1000], [5300]], [[1300], [4300]], [[1400], [3800]], [[2800], [3800]], [[2800], [3300]], [[2800], [3800]], [[900], [3800]], [[900], [2800]], [[1300], [3500]], [[1800], [2800]], [[1800], [2800]], [[2000], [3300]], [[2800], [3800]], [[900], [2300]], [[1000], [3000]], [[1000], [3000]], [[1000], [3000]], [[1000], [3000]], [[1000], [3000]], [[1000], [3000]], [[900], [3300]], [[900], [3300]], [[900], [3300]], [[3500], [5300]], [[3000], [5300]], [[3000], [5300]], [[1500], [5300]], [[1500], [7300]], [[1500], [7300]], [[1500], [5300]], [[1000], [5300]], [[1700], [2000]], [[1000], [2000]], [[1000], [3300]], [[1500], [5300]]];
public static var EDIT_MODE:Boolean = false;
public static var RELOAD_TIME:int = 1000;
public static var CHARACTER_SCALE:Number = 1.2;
}
}//package com.doof.shooting
Section 6
//Game (com.doof.shooting.Game)
package com.doof.shooting {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.ui.*;
public class Game extends MovieClip {
private var targetZoom:Number;// = 1
private var chainLength:int;// = 0
private var zoomAmount:Number;// = 0
private var startReloadTime:int;
public var throwArray:Array;
private var miss:int;// = 0
public var hostagesShot:int;
private var offsetX:Number;// = 0
private var levelOrder:Array;
private var offsetY:Number;// = 0
private var targetNum:int;// = -1
public var spinArray:Array;
public var gun:MovieClip;
private var crossHair:Sprite;
private var levelData:Array;
private var lastBaddyReached:Boolean;// = false
private var lastSwitchTime:Number;
private var lastBaddyTime:int;// = 0
public var zoomHolder:MovieClip;
private var levelMCArray:Array;
public var levelNum:int;// = 0
private var targetsArray:Array;
private var levelMaxCoords:Array;
public var scoreTXT:TextField;
public var score:Number;// = 0
public var reload:MovieClip;
private var targetHolder:Sprite;
private var gameOverSent:Boolean;// = false
private var lastLifeUpScore:int;// = 0
private var reloadStarted:Boolean;// = false
public var numHostages:int;
public var bulletBar:BulletHolderMC;
private var editMode:Boolean;
private var zoom:Number;// = 1
private var levelMinCoords:Array;
public var heartBar:MovieClip;
private var delayTime:Number;
private var cameraDrag:Number;
public function Game():void{
spinArray = new Array();
throwArray = new Array();
targetsArray = new Array();
cameraDrag = Config.CAMERA_LAG;
levelMCArray = new Array();
levelData = new Array();
levelOrder = new Array();
levelMaxCoords = new Array();
levelMinCoords = new Array();
editMode = Config.EDIT_MODE;
super();
levelMCArray.push(new Level1());
levelData.push(Config.LEVEL_1_DATA);
levelOrder.push(Config.LEVEL_1_ORDER);
levelMaxCoords.push(new Point(450, 205));
levelMinCoords.push(new Point(-140, -185));
levelMCArray.push(new Level2());
levelData.push(Config.LEVEL_2_DATA);
levelOrder.push(Config.LEVEL_2_ORDER);
levelMaxCoords.push(new Point(1050, 170));
levelMinCoords.push(new Point(-315, -250));
levelMCArray.push(new Level3());
levelData.push(Config.LEVEL_3_DATA);
levelOrder.push(Config.LEVEL_3_ORDER);
levelMaxCoords.push(new Point(1450, 270));
levelMinCoords.push(new Point(-735, -1270));
}
private function buildTargetsArray():void{
var _local4:Boolean;
var _local5:Boolean;
var _local6:NumberHolder;
var _local7:Number;
var _local8:Number;
var _local1:int;
while (_local1 < targetHolder.numChildren) {
_local4 = (targetHolder.getChildAt(_local1) is Target);
_local5 = (targetHolder.getChildAt(_local1) is Hostage);
if (_local5){
targetHolder.getChildAt(_local1).cacheAsBitmap = true;
numHostages++;
} else {
if (_local4){
Target(targetHolder.getChildAt(_local1)).target.character.cacheAsBitmap = true;
Target(targetHolder.getChildAt(_local1)).target.head.cacheAsBitmap = true;
};
};
if (((_local4) || (_local5))){
MovieClip(targetHolder.getChildAt(_local1)).gotoAndStop("init");
targetsArray.push(targetHolder.getChildAt(_local1));
targetHolder.getChildAt(_local1).scaleX = (targetHolder.getChildAt(_local1).scaleX * Config.CHARACTER_SCALE);
targetHolder.getChildAt(_local1).scaleY = (targetHolder.getChildAt(_local1).scaleY * Config.CHARACTER_SCALE);
if (editMode){
if (!Config.PLAY_MODE){
_local6 = NumberHolder(targetHolder.addChild(new NumberHolder()));
_local6.x = targetsArray[(targetsArray.length - 1)].x;
_local6.y = targetsArray[(targetsArray.length - 1)].y;
_local6.num.text = (targetsArray.length - 1).toString();
} else {
_local6 = NumberHolder(Object(targetHolder.getChildAt(_local1)).target.addChild(new NumberHolder()));
if (_local4){
_local6.x = Target(targetHolder.getChildAt(_local1)).target.head.x;
_local6.y = Target(targetHolder.getChildAt(_local1)).target.head.y;
};
_local6.scaleX = 3;
_local6.scaleY = 3;
if (Object(targetHolder.getChildAt(_local1)).transform.matrix.a < 0){
_local6.scaleX = (_local6.scaleX * -1);
};
_local6.num.text = (targetsArray.length - 1).toString();
};
};
} else {
if ((targetHolder.getChildAt(_local1) is SpinnableObject)){
spinArray.push(targetHolder.getChildAt(_local1));
};
targetHolder.getChildAt(_local1).cacheAsBitmap = true;
};
_local1++;
};
trace(("Num targets: " + targetsArray.length));
var _local2:Array = new Array(targetsArray.length);
_local1 = 0;
while (_local1 < targetsArray.length) {
_local7 = (levelData[(levelNum - 1)][_local1][0] * Config.GAME_SPEED);
_local8 = (levelData[(levelNum - 1)][_local1][1] * Config.GAME_SPEED);
_local2[_local1] = targetsArray[_local1];
_local2[_local1].delayTime = _local7;
_local2[_local1].showTime = _local8;
_local1++;
};
var _local3:Array = new Array();
_local1 = 0;
while (_local1 < levelOrder[(levelNum - 1)].length) {
_local3.push(_local2[levelOrder[(levelNum - 1)][_local1]]);
_local1++;
};
targetsArray = _local3;
}
private function enterFrameHandler(_arg1:Event):void{
var e = _arg1;
try {
moveToTarget();
zoomCamera();
checkSwitchTime();
checkMiss();
positionGun();
Mouse.hide();
} catch(e:Error) {
startLastBaddy();
};
}
private function init():void{
if (zoomHolder.numChildren > 0){
zoomHolder.removeChildAt(0);
};
targetHolder = Sprite(zoomHolder.addChild(levelMCArray[(levelNum - 1)]));
targetHolder.name = "targetHolder";
zoomHolder.x = (stage.stageWidth / 2);
zoomHolder.y = (stage.stageHeight / 2);
lastSwitchTime = getTimer();
}
public function hitTarget():void{
miss--;
chainLength++;
score = (score + (100 * chainLength));
var _local1:ScorePopup = new ScorePopup();
_local1.score.scoreTXT.text = (("100" + "X") + chainLength.toString());
_local1.x = mouseX;
_local1.y = mouseY;
addChild(_local1);
checkLifeUp();
}
private function endLastBaddyTimer():void{
trace("last bad guy finished");
removeEventListener(Event.ENTER_FRAME, checkLastBaddyTimer);
targetNum = -1;
stopHandlers();
destroyAllTargets();
stopThrowObjects();
removeChild(crossHair);
resetMouseGraphics();
SoundMixer.stopAll();
Object(parent).showResults();
}
private function startLastBaddy():void{
if (!lastBaddyReached){
lastBaddyReached = true;
lastBaddyTime = getTimer();
addEventListener(Event.ENTER_FRAME, checkLastBaddyTimer);
};
}
private function checkMiss():void{
if (miss > 0){
chainLength = 0;
miss = 0;
};
}
public function hitTargetHead():void{
miss--;
chainLength++;
score = (score + (200 * chainLength));
var _local1:ScorePopup = new ScorePopup();
_local1.score.scoreTXT.text = (("HEADSHOT!\n200" + "X") + chainLength.toString());
_local1.x = mouseX;
_local1.y = mouseY;
addChild(_local1);
checkLifeUp();
}
private function checkReloadTimer(_arg1:Event):void{
if ((getTimer() - startReloadTime) >= Config.RELOAD_TIME){
endReload();
};
}
private function resetMouseGraphics():void{
if (getChildByName("crossHair")){
removeChild(crossHair);
};
Mouse.show();
}
private function checkSwitchTime():void{
if ((getTimer() - lastSwitchTime) > delayTime){
nextTarget();
if (targetNum >= 0){
targetsArray[targetNum].showTarget();
};
};
}
public function hitHostage():void{
heartBar.heartBar._lives--;
heartBar.heartBar.renderHearts();
heartBar.gotoAndPlay(1);
var _local1:ScorePopup = new ScorePopup();
_local1.score.scoreTXT.text = "CIVILIAN KILLED!";
_local1.x = mouseX;
_local1.y = mouseY;
addChild(_local1);
}
public function reset():void{
stage.quality = "BEST";
resetMouseGraphics();
setupMouseGraphics();
destroyAllTargets();
targetsArray = new Array();
targetNum = -1;
offsetX = 0;
offsetY = 0;
lastSwitchTime = undefined;
delayTime = undefined;
score = 0;
miss = 0;
chainLength = 0;
lastLifeUpScore = 0;
stopHandlers();
numHostages = 0;
hostagesShot = 0;
lastBaddyReached = false;
init();
buildTargetsArray();
delayTime = targetsArray[0].delayTime;
startHandlers();
startMusic();
scoreTXT.text = "";
gun.gotoAndStop("static");
reload.visible = false;
bulletBar.scaleX = 0.55;
bulletBar.scaleY = 0.55;
reloadStarted = false;
bulletBar.reset();
heartBar.gotoAndPlay(1);
}
private function mouseMoveHandler(_arg1:MouseEvent):void{
crossHair.x = mouseX;
crossHair.y = mouseY;
}
private function positionGun():void{
var _local1:Number = (stage.stageWidth / 2);
var _local2:Number = (stage.stageHeight / 2);
var _local3:Number = (stage.mouseX - _local1);
var _local4:Number = (stage.stageHeight - stage.mouseY);
gun.x = (_local1 + (_local3 * 1));
gun.y = (stage.stageHeight - (_local4 * 0.65));
gun.rotation = (0 + (_local4 * 0.05));
if (gun.y < 208.5){
gun.y = 208.5;
};
if (gun.rotation > 16){
gun.rotation = 16;
};
}
private function mouseDownHandler(_arg1:MouseEvent):void{
var _local2:Sound;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Sound;
var _local7:SoundChannel;
var _local8:SoundTransform;
bulletBar._numBullets--;
bulletBar.renderBullets();
if (bulletBar._numBullets >= 0){
gun.gotoAndPlay("fire");
_local2 = new Gunshot();
_local2.play(0, 1);
_local3 = 0;
while (_local3 < targetsArray.length) {
if (targetsArray[_local3].currentLabel == "show"){
if ((((targetsArray[_local3] is Target)) && (PixelPerfectCollisionDetection.isColliding(Object(crossHair).spread, Target(targetsArray[_local3]).target.head, this, true)))){
targetsArray[_local3].headHit();
} else {
if (PixelPerfectCollisionDetection.isColliding(Object(crossHair).spread, targetsArray[_local3], this, true)){
targetsArray[_local3].bodyHit();
if ((targetsArray[_local3] is Hostage)){
hostagesShot++;
};
};
};
};
_local3++;
};
_local4 = 0;
while (_local4 < throwArray.length) {
if (PixelPerfectCollisionDetection.isColliding(Object(crossHair).spread, throwArray[_local4], this, true)){
throwArray[_local4].shot();
throwArray.splice(_local4, 1);
};
_local4++;
};
_local5 = 0;
while (_local5 < spinArray.length) {
if (PixelPerfectCollisionDetection.isColliding(Object(crossHair).spread, spinArray[_local5], this, true)){
spinArray[_local5].shootObject();
if (spinArray[_local5].y > (stage.stageHeight * 2)){
spinArray[_local5].destroy();
};
};
_local5++;
};
miss++;
} else {
_local6 = new Reload();
_local7 = _local6.play(0, 1);
_local8 = _local7.soundTransform;
_local8.volume = 5;
_local7.soundTransform = _local8;
if (!reloadStarted){
reload.visible = true;
reload.play();
};
};
}
private function nextTarget():void{
if (!Config.PLAY_MODE){
return;
};
targetNum++;
if (targetNum >= targetsArray.length){
return;
};
var _local1:int = (targetNum + 1);
if (_local1 >= targetsArray.length){
_local1 = 0;
};
delayTime = targetsArray[_local1].delayTime;
lastSwitchTime = getTimer();
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if ((((((_arg1.keyCode == 32)) && (!(reloadStarted)))) && ((bulletBar._numBullets < Config.NUM_BULLETS)))){
startReload();
};
}
private function endReload():void{
reloadStarted = false;
removeEventListener(Event.ENTER_FRAME, checkReloadTimer);
bulletBar.reset();
reload.stop();
}
public function stopThrowObjects():void{
var _local1:int;
while (_local1 < throwArray.length) {
throwArray[_local1].stopHandlers();
throwArray.splice(_local1, 1);
_local1++;
};
throwArray = new Array();
}
private function checkLastBaddyTimer(_arg1:Event):void{
positionGun();
if ((getTimer() - lastBaddyTime) > 4000){
endLastBaddyTimer();
};
}
private function stopHandlers():void{
removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
}
private function startReload():void{
var _local1:Sound = new ReloadSound();
_local1.play(0, 1);
reloadStarted = true;
reload.visible = false;
startReloadTime = getTimer();
addEventListener(Event.ENTER_FRAME, checkReloadTimer);
bulletBar._numBullets = 0;
bulletBar.renderBullets();
}
public function badShot():void{
var _local1:Sound = new GruntSound();
_local1.play(0, 1);
heartBar.heartBar._lives--;
heartBar.heartBar.renderHearts();
heartBar.gotoAndPlay(1);
addChild(new BloodFlash());
}
private function destroyAllTargets():void{
var _local1:int;
while (_local1 < targetsArray.length) {
targetsArray[_local1].destroy();
_local1++;
};
}
private function onTimerHandler(_arg1:TimerEvent):void{
nextTarget();
}
private function moveToTarget():void{
var _local1:Number;
var _local2:Number;
if (Config.PLAY_MODE){
if (targetNum < 0){
return;
};
_local1 = ((offsetX - targetsArray[targetNum].x) / cameraDrag);
_local2 = ((offsetY - targetsArray[targetNum].y) / cameraDrag);
offsetX = (offsetX - _local1);
offsetY = (offsetY - _local2);
if (offsetX > levelMaxCoords[(levelNum - 1)].x){
offsetX = levelMaxCoords[(levelNum - 1)].x;
};
if (offsetY > levelMaxCoords[(levelNum - 1)].y){
offsetY = levelMaxCoords[(levelNum - 1)].y;
};
if (offsetX < levelMinCoords[(levelNum - 1)].x){
offsetX = levelMinCoords[(levelNum - 1)].x;
};
if (offsetY < levelMinCoords[(levelNum - 1)].y){
offsetY = levelMinCoords[(levelNum - 1)].y;
};
} else {
offsetX = (-(((stage.stageWidth / 2) - mouseX)) * 5);
offsetY = (-(((stage.stageHeight / 2) - mouseY)) * 5);
};
targetHolder.x = Math.round(-(offsetX));
targetHolder.y = Math.round(-(offsetY));
}
private function checkLifeUp():void{
var _local1:ScorePopup;
var _local2:Sound;
if (Math.floor((score / Config.LIFE_UP_SCORE)) != lastLifeUpScore){
lastLifeUpScore = Math.floor((score / Config.LIFE_UP_SCORE));
heartBar.heartBar._lives++;
heartBar.heartBar.renderHearts();
heartBar.gotoAndPlay(1);
_local1 = new ScorePopup();
_local1.score.scoreTXT.text = "LIFE UP!";
_local1.scaleX = 1.75;
_local1.scaleY = 1.75;
_local1.x = mouseX;
_local1.y = mouseY;
addChild(_local1);
_local2 = new LifeUpSound();
_local2.play(0, 1);
};
}
private function setupMouseGraphics():void{
Mouse.hide();
crossHair = new CrossHair();
addChild(crossHair);
setChildIndex(gun, (numChildren - 1));
setChildIndex(reload, (numChildren - 1));
setChildIndex(bulletBar, (numChildren - 1));
}
private function startMusic():void{
var _local1:Sound;
var _local2:SoundChannel;
var _local3:SoundTransform;
SoundMixer.stopAll();
if (levelNum == 1){
_local1 = new Music1();
_local2 = _local1.play(0, 99999999);
_local3 = _local2.soundTransform;
_local3.volume = 1;
_local2.soundTransform = _local3;
};
if (levelNum == 2){
_local1 = new Music2();
_local2 = _local1.play(0, 99999999);
_local3 = _local2.soundTransform;
_local3.volume = 1.5;
_local2.soundTransform = _local3;
};
if (levelNum == 3){
_local1 = new Music3();
_local2 = _local1.play(0, 99999999);
_local3 = _local2.soundTransform;
_local3.volume = 4;
_local2.soundTransform = _local3;
};
}
public function gameOver():void{
if (((!(editMode)) && (!(gameOverSent)))){
stopHandlers();
resetMouseGraphics();
Object(parent).gameOver();
gameOverSent = true;
};
}
private function zoomCamera():void{
var _local1:Number;
if (targetNum < 0){
return;
};
if (zoom != 0){
_local1 = (Math.sqrt((Math.pow((offsetX - targetsArray[targetNum].x), 2) + Math.pow((offsetY - targetsArray[targetNum].y), 2))) * 0.0125);
targetZoom = (1 / _local1);
targetZoom = ((targetZoom * zoomAmount) + (1 * (1 - zoomAmount)));
zoom = (zoom + ((targetZoom - zoom) / cameraDrag));
zoomHolder.scaleX = zoom;
zoomHolder.scaleY = zoom;
};
}
private function startHandlers():void{
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.focus = this;
}
}
}//package com.doof.shooting
Section 7
//HealthBar (com.doof.shooting.HealthBar)
package com.doof.shooting {
import flash.display.*;
public class HealthBar extends MovieClip {
private var _spacing:Number;// = -35
public var _lives:int;
private var _heartsArray:Array;
public function HealthBar():void{
resetLives();
}
public function renderHearts():void{
var _local2:DisplayObject;
clearHearts();
var _local1:int;
while (_local1 < _lives) {
_local2 = this.addChild(new Heart());
_local2.x = (_local1 * _spacing);
_local2.visible = true;
_heartsArray.push(_local2);
_local1++;
};
if (_lives <= 0){
Object(parent.parent).gameOver();
};
}
public function get lives():int{
renderHearts();
return (_lives);
}
public function set lives(_arg1:int):void{
_lives = _arg1;
if (_lives > 10){
_lives = 10;
};
if (_lives <= 0){
Object(parent.parent).gameOver();
};
renderHearts();
}
public function resetLives():void{
_heartsArray = new Array();
_lives = Config.INIT_LIVES;
renderHearts();
}
public function clearHearts():void{
var _local1:int;
while (_local1 < _heartsArray.length) {
this.removeChild(_heartsArray[_local1]);
_heartsArray[_local1] = null;
_local1++;
};
_heartsArray = new Array();
}
}
}//package com.doof.shooting
Section 8
//Hostage (com.doof.shooting.Hostage)
package com.doof.shooting {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.ui.*;
public class Hostage extends MovieClip {
private var timer:Timer;
private var _showTime:Number;
private var showing:Boolean;
private var startTime:Number;
public var delayTime:Number;
public var target:MovieClip;
private var shot:Boolean;// = false
public function Hostage():void{
stop();
gotoAndStop("init");
}
public function destroy():void{
timer.removeEventListener(TimerEvent.TIMER, onTimerHandler);
timer.stop();
removeEventListener(MouseEvent.MOUSE_DOWN, checkHit);
}
private function onTimerHandler(_arg1:TimerEvent):void{
if ((getTimer() - startTime) > showTime){
timer.removeEventListener(TimerEvent.TIMER, onTimerHandler);
timer.stop();
hideTarget();
};
}
public function checkHit(_arg1:MouseEvent):void{
if (showing){
bodyHit();
};
}
public function showTarget():void{
showing = true;
gotoAndPlay("show");
startTime = getTimer();
timer = new Timer(10, 0);
timer.addEventListener(TimerEvent.TIMER, onTimerHandler);
timer.start();
}
public function hideTarget():void{
showing = false;
gotoAndPlay("hide");
}
public function get showTime():Number{
return (_showTime);
}
public function bodyHit():void{
Object(parent.parent.parent).hitHostage();
timer.removeEventListener(TimerEvent.TIMER, onTimerHandler);
timer.stop();
hideTarget();
var _local1:Sound = new NoSound();
_local1.play(0, 1);
}
public function set showTime(_arg1:Number):void{
_showTime = _arg1;
}
}
}//package com.doof.shooting
Section 9
//Main (com.doof.shooting.Main)
package com.doof.shooting {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.system.*;
import flash.net.*;
import flash.ui.*;
public dynamic class Main extends MovieClip {
private var _levelNum:int;// = 0
private var _resultsScreen:RoundResultsScreen;
private var _leaderboard:Leaderboard;
private var _splash:SplashScreen;
private var _finalResultsScreen:FinalResultsScreen;
private var _gameOverScreen:GameOverScreen;
public var _totalScore:int;// = 0
private var _gameScreen:Game;
private var _titleScreen:TitleScreen;
private var _linksEnabled:Boolean;
public var _playerName:String;// = "PLAYER"
private var _levelScoresArray:Array;
private var _introScreen:IntroScreen;
private var _entryScreen:EntryScreen;
public function Main(){
_splash = new SplashScreen();
super();
init();
}
private function getURL(_arg1:String, _arg2:String=null):void{
var url = _arg1;
var window = _arg2;
var req:URLRequest = new URLRequest(url);
try {
navigateToURL(req, window);
} catch(e:Error) {
trace("Navigate to URL failed", e.message);
};
}
private function showLeaderboard(_arg1:MouseEvent):void{
if (_entryScreen.playerNameTXT.text.length > 0){
_playerName = _entryScreen.playerNameTXT.text;
};
removeChild(_entryScreen);
_leaderboard = new Leaderboard();
addChild(_leaderboard);
_leaderboard.startPHP(this);
_leaderboard.nextBTN.addEventListener(MouseEvent.CLICK, showEndScreen);
}
public function showResults():void{
_gameScreen.stopThrowObjects();
_resultsScreen = new RoundResultsScreen();
_resultsScreen.enemyPoints.text = _gameScreen.score.toString();
_resultsScreen.hostagePoints.text = Number(((_gameScreen.numHostages - _gameScreen.hostagesShot) * 100)).toString();
var _local1:Number = (_gameScreen.heartBar.heartBar._lives * 10);
_resultsScreen.bonusPoints.text = _local1.toString();
var _local2:Number = ((_gameScreen.score + _local1) + ((_gameScreen.numHostages - _gameScreen.hostagesShot) * 100));
_resultsScreen.score.text = _local2.toString();
_levelScoresArray.push(_local2);
_resultsScreen.alpha = 0;
_resultsScreen.nextBTN.visible = true;
_resultsScreen.nextBTN.addEventListener(MouseEvent.CLICK, clickNextLevel);
addChild(_resultsScreen);
addEventListener(Event.ENTER_FRAME, resultsShowHandler);
}
private function endGame(_arg1:MouseEvent):void{
_finalResultsScreen.endBTN.visible = false;
removeChild(_finalResultsScreen);
restartGame();
}
private function init():void{
_levelScoresArray = new Array();
SoundMixer.stopAll();
addChild(_splash);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_splash.gotoAndPlay(1);
_splash.mochiId = "8fd2f5b922525b43";
_splash.adFinished = startTitle;
}
private function resultsHideHandler(_arg1:Event):void{
_resultsScreen.alpha = (_resultsScreen.alpha - 0.125);
if (_resultsScreen.alpha <= 0){
removeEventListener(Event.ENTER_FRAME, resultsHideHandler);
_resultsScreen.alpha = 0;
removeChild(_resultsScreen);
};
}
private function doofLinkClickedHandler(_arg1:MouseEvent):void{
getURL("http://www.doof.com/?ref=midnightmassacre", "_blank");
}
public function nextLevel():void{
_levelNum++;
_gameScreen.levelNum = _levelNum;
_gameScreen.visible = true;
_gameScreen.reset();
}
private function gigyaShare(_arg1:MouseEvent):void{
var mcWF:MovieClip;
var e = _arg1;
Security.allowDomain("cdn.gigya.com");
Security.allowInsecureDomain("cdn.gigya.com");
mcWF = new MovieClip();
addChild(mcWF).name = "mcWF";
mcWF.x = 0;
mcWF.y = 0;
var ModuleID = "PostModule1";
var cfg:Object = {};
cfg["width"] = "640";
cfg["height"] = "400";
cfg["bookmarkURL"] = "http://www.doof.com/#/games/Midnight Massacre";
cfg["widgetTitle"] = "Midnight Massacre";
cfg["advancedTracking"] = "true";
cfg["partner"] = "177341";
cfg["UIConfig"] = "<config><display showDesktop=\"true\" showEmail=\"true\" useTransitions=\"true\" showBookmark=\"true\" codeBoxHeight=\"auto\" showCodeBox=\"true\" showCloseButton=\"true\" bulletinChecked=\"false\" networksWithCodeBox=\"\"></display><body corner-roundness=\"8;8;8;8\"><background frame-color=\"Transparent\" gradient-color-begin=\"#353535\" gradient-color-end=\"#606060\" corner-roundness=\"8;8;8;8\"></background><controls size=\"11\" bold=\"true\"><snbuttons iconsOnly=\"false\" type=\"textUnder\" frame-color=\"#6D0000\" background-color=\"#FFFFFF\" over-background-color=\"#FFFFFF\" color=\"#CACACA\" corner-roundness=\"0;8;8;8\" gradient-color-begin=\"#8A8A8A\" gradient-color-end=\"#000000\" font=\"Arial\" size=\"11\" bold=\"false\" over-gradient-color-begin=\"#AAAAAA\" over-gradient-color-end=\"#000000\" over-color=\"#F4F4F4\" down-color=\"#000000\"><more frame-color=\"Transparent\"></more></snbuttons><textboxes frame-color=\"#000000\" color=\"#AAAAAA\" corner-roundness=\"0;0;0;0\" gradient-color-begin=\"#202020\" gradient-color-end=\"#0B0B0B\" font=\"Arial\" bold=\"false\"><codeboxes color=\"#EAEAEA\" frame-color=\"#8A8A8A\" gradient-color-begin=\"#000000\" font=\"Arial\" bold=\"false\"></codeboxes><inputs frame-color=\"#6D0000\"></inputs><dropdowns frame-color=\"#6D0000\" handle-gradient-color-begin=\"#B60000\" handle-gradient-color-end=\"#6D0000\" handle-over-gradient-color-begin=\"#FF0000\" handle-over-gradient-color-end=\"#DA0000\" handle-down-gradient-color-begin=\"#FF0000\" handle-down-gradient-color-end=\"#6D0000\" background-color=\"#6D0000\" gradient-color-begin=\"#000000\" font=\"Arial\" bold=\"false\"></dropdowns></textboxes><buttons frame-color=\"#FF0000\" gradient-color-begin=\"#FF2424\" gradient-color-end=\"#6D0000\" color=\"#F4F4F4\" corner-roundness=\"0;8;8;8\" font=\"Arial\" size=\"10\" bold=\"false\" down-frame-color=\"#000000\" over-gradient-color-begin=\"#DA0000\" down-gradient-color-begin=\"#910000\" over-gradient-color-end=\"#DA0000\" down-gradient-color-end=\"#FF0000\" over-color=\"#F4F4F4\"><post-buttons gradient-color-begin=\"#FF4949\" gradient-color-end=\"#6D0000\"></post-buttons></buttons><listboxes corner-roundness=\"5;5;5;5\"></listboxes><servicemarker gradient-color-begin=\"#DA0000\" gradient-color-end=\"#DA0000\"></servicemarker></controls><texts color=\"#FFFFFF\" font=\"Arial\" size=\"10\"><privacy color=\"#959595\" size=\"11\"></privacy><headers size=\"11\" bold=\"true\"></headers><labels size=\"11\" bold=\"true\"></labels><messages color=\"#D5D5D5\" frame-thickness=\"0\" corner-roundness=\"0;0;0;0\" gradient-color-begin=\"#B60000\" gradient-color-end=\"#000000\" size=\"11\" bold=\"true\"></messages><links color=\"#DFDFDF\" underline=\"false\" size=\"11\" bold=\"true\" over-color=\"#FFFFFF\"></links></texts></body></config>";
cfg["defaultContent"] = "<object width=\"640\" height=\"400\"> <param name=\"movie\" value=\"http://static.doof.com/content/static/games/MidnightMassacre/MidnightMassacre.swf\"></param> <param name=\"wmode\" value=\"transparent\"></param> <embed src=\"http://static.doof.com/content/static/games/MidnightMassacre/MidnightMassacre.swf\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"640\" height=\"400\"></embed></object>";
cfg["onPostProfile"] = function (_arg1:Object):void{
trace(((((("event fired eventObj.type=" + _arg1.type) + " eventObj.network=") + _arg1.network) + " eventObj.partnerData=") + _arg1.partnerData));
};
cfg["onLoad"] = function (_arg1:Object):void{
trace(((("event fired eventObj.type=" + _arg1.type) + "eventObj.ModuleID=") + _arg1.ModuleID));
};
cfg["onClose"] = function (_arg1:Object):void{
mcWF.visible = false;
removeChild(mcWF);
};
var ldr:Loader = new Loader();
var url:String = ("http://cdn.gigya.com/WildFire/swf/wildfireInAS3.swf?ModuleID=" + ModuleID);
var urlReq:URLRequest = new URLRequest(url);
mcWF[ModuleID] = cfg;
ldr.load(urlReq);
mcWF.addChild(ldr);
}
public function restartGame():void{
_levelNum = 0;
_levelScoresArray = new Array();
_totalScore = 0;
_playerName = "PLAYER";
init();
}
private function clickNextLevel(_arg1:MouseEvent):void{
_resultsScreen.nextBTN.visible = false;
_resultsScreen.nextBTN.removeEventListener(MouseEvent.CLICK, clickNextLevel);
addEventListener(Event.ENTER_FRAME, resultsHideHandler);
if (_levelNum >= 3){
gameOver();
} else {
nextLevel();
};
}
private function startIntro(_arg1:MouseEvent):void{
removeChild(_titleScreen);
_introScreen = new IntroScreen();
_introScreen.skipBTN.useHandCursor = true;
_introScreen.skipBTN.buttonMode = true;
_introScreen.skipBTN.addEventListener(MouseEvent.CLICK, startGame);
_introScreen.x = 321;
_introScreen.y = 202;
addChild(_introScreen);
}
public function gameOver():void{
SoundMixer.stopAll();
_gameOverScreen = new GameOverScreen();
addChild(_gameOverScreen);
var _local1:Number = (_gameScreen.heartBar.heartBar._lives * 10);
var _local2:Number = ((_gameScreen.score + _local1) + ((_gameScreen.numHostages - _gameScreen.hostagesShot) * 100));
_levelScoresArray.push(_local2);
}
private function showEndScreen(_arg1:MouseEvent):void{
removeChild(_leaderboard);
}
private function startGame(_arg1:MouseEvent):void{
SoundMixer.stopAll();
removeChild(_introScreen);
_gameScreen = new Game();
addChild(_gameScreen);
_gameScreen.visible = false;
nextLevel();
}
private function startInstructions(_arg1:MouseEvent):void{
_titleScreen.gotoAndPlay("instructions_screen");
}
private function resultsShowHandler(_arg1:Event):void{
Mouse.show();
_resultsScreen.alpha = (_resultsScreen.alpha + 0.125);
if (_resultsScreen.alpha > 1){
removeEventListener(Event.ENTER_FRAME, resultsShowHandler);
_resultsScreen.alpha = 1;
};
}
private function startTitle():void{
_splash.stop();
removeChild(_splash);
_titleScreen = new TitleScreen();
_titleScreen.nextBTN.addEventListener(MouseEvent.CLICK, startInstructions);
_titleScreen.startBTN.addEventListener(MouseEvent.CLICK, startIntro);
_titleScreen.x = -5.1;
if (_linksEnabled){
_titleScreen.doofBTN.useHandCursor = true;
_titleScreen.doofBTN.buttonMode = true;
_titleScreen.doofBTN.addEventListener(MouseEvent.CLICK, doofLinkClickedHandler);
};
addChild(_titleScreen);
}
public function showFinalResults():void{
_finalResultsScreen = new FinalResultsScreen();
removeChild(_gameScreen);
removeChild(_gameOverScreen);
if (_levelScoresArray[0] == null){
_levelScoresArray[0] = 0;
};
if (_levelScoresArray[1] == null){
_levelScoresArray[1] = 0;
};
if (_levelScoresArray[2] == null){
_levelScoresArray[2] = 0;
};
_finalResultsScreen.score1.text = _levelScoresArray[0].toString();
_finalResultsScreen.score2.text = _levelScoresArray[1].toString();
_finalResultsScreen.score3.text = _levelScoresArray[2].toString();
_totalScore = ((_levelScoresArray[0] + _levelScoresArray[1]) + _levelScoresArray[2]);
_finalResultsScreen.total.text = _totalScore.toString();
_finalResultsScreen.x = -5.1;
addChild(_finalResultsScreen);
_finalResultsScreen.endBTN.addEventListener(MouseEvent.CLICK, endGame);
}
}
}//package com.doof.shooting
Section 10
//PHPLeaderboard (com.doof.shooting.PHPLeaderboard)
package com.doof.shooting {
import flash.display.*;
import flash.events.*;
import com.adobe.crypto.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.net.*;
import flash.external.*;
public class PHPLeaderboard extends MovieClip {
public var _team:String;
public var _parentRef:Object;
public var loadingMC:MovieClip;
public var _score:Number;
public var row1:MovieClip;
public var row2:MovieClip;
public var row3:MovieClip;
public var row4:MovieClip;
public var row5:MovieClip;
public var row6:MovieClip;
public var row7:MovieClip;
public var row8:MovieClip;
public var row9:MovieClip;
public var _stats:String;
public var nextBTN:SimpleButton;
public var _hashedKey:String;
public var _timeStamp:String;
public static var key:String = "tof#hn7SRrsnr8h7?ghrioc-xhp9nhnt+h$&";
private function sendCompleteHandler(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
trace(("php sent me: " + _local2.data.toString()));
loadIndividuals();
}
public function displayInd(_arg1:Array):void{
var _local4:int;
var _local2:int;
while ((((_local2 < _arg1.length)) && ((_local2 < 9)))) {
_local4 = (_local2 + 1);
this[("row" + _local4)].gotoAndStop(1);
if ((((_arg1[_local2].score == Object(parent)._totalScore)) && ((_arg1[_local2].name == Object(parent)._playerName)))){
this[("row" + _local4)].gotoAndStop(2);
this[("row" + _local4)].rank.textColor = "0x000000";
this[("row" + _local4)].playerName.textColor = "0x000000";
this[("row" + _local4)].score.textColor = "0x000000";
};
if ((((_arg1[_local2].rank == null)) || ((_arg1[_local2].rank == undefined)))){
_arg1[_local2].rank = "";
};
if ((((_arg1[_local2].name == null)) || ((_arg1[_local2].name == undefined)))){
_arg1[_local2].name = "";
};
if ((((_arg1[_local2].score == null)) || ((_arg1[_local2].score == undefined)))){
_arg1[_local2].score = "";
};
this[("row" + _local4)].rank.text = _arg1[_local2].rank;
this[("row" + _local4)].playerName.text = _arg1[_local2].name;
this[("row" + _local4)].score.text = _arg1[_local2].score;
_local2++;
};
var _local3:int = (_arg1.length + 1);
while (_local3 <= 9) {
this[("row" + _local3)].visible = false;
_local3++;
};
}
private function loadTimeCompleteHandler(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
trace(("time received: " + _local2.data.toString()));
_timeStamp = _local2.data.toString();
buildHashKey();
}
private function individualsCompleteHandler(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:String = _local2.data.toString();
trace(("individual scores received: " + _local3));
loadingMC.visible = false;
var _local4:* = new Array();
_local4 = readIndividualString(_local3);
displayInd(_local4);
}
public function readIndividualString(_arg1:String):Array{
var _local7:Array;
var _local8:Object;
var _local2:String = _arg1;
trace(("string before: " + _local2));
if (_local2.substr(_local2.length, -1) == "|"){
_local2 = _local2.substr(0, (_local2.length - 1));
};
trace(("string after: " + _local2));
var _local3:Array = new Array();
var _local4:Array = _local2.split("|");
var _local5:int;
while (_local5 < _local4.length) {
_local7 = _local4[_local5].split(",");
trace(_local7.toString());
_local8 = {rank:_local7[0], name:_local7[2], score:_local7[1]};
_local3.push(_local8);
_local5++;
};
var _local6:int;
while (_local6 < _local3.length) {
_local8 = _local3[_local6];
trace(_local8.rank);
trace(_local8.name);
trace(_local8.score);
_local6++;
};
return (_local3);
}
public function TestPHPResults():void{
}
private function sendData(_arg1:String, _arg2:Object):void{
var _local3:URLRequest = new URLRequest(_arg1);
var _local4:URLLoader = new URLLoader();
_local4.dataFormat = URLLoaderDataFormat.TEXT;
_local3.data = _arg2;
_local3.method = URLRequestMethod.POST;
_local4.addEventListener(Event.COMPLETE, sendCompleteHandler);
_local4.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_local4.load(_local3);
}
private function loadIndividuals():void{
var _local1:URLVariables = new URLVariables();
_local1.score = _parentRef._totalScore;
_local1.player = _parentRef._playerName;
_local1.gameID = "MidnightMassacre";
_local1.rnd = Math.floor((Math.random() * 1000));
var _local2:URLRequest = new URLRequest("http://apps.doof.com/spoof/leaderboard/index.php/scores/get_individual/");
var _local3:URLLoader = new URLLoader();
_local3.dataFormat = URLLoaderDataFormat.TEXT;
_local2.data = _local1;
_local2.method = URLRequestMethod.POST;
_local3.addEventListener(Event.COMPLETE, individualsCompleteHandler);
_local3.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_local3.load(_local2);
}
private function loadTimeURL(_arg1:String):void{
var urlString = _arg1;
var rnd:Number = Math.floor((Math.random() * 1000));
urlString = urlString.concat(rnd);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadTimeCompleteHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
var request:URLRequest = new URLRequest(urlString);
try {
loader.load(request);
} catch(error:Error) {
trace("Unable to load requested document.");
};
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
trace(("io error generated by " + _arg1.target));
}
private function buildHashKey():void{
var _local1:String = MD5.hash("MidnightMassacre").concat(_timeStamp).concat(_parentRef._totalScore);
trace(("Game name MD5: " + MD5.hash("MidnightMassacre")));
trace(("Hashed key before SHA1 " + _local1));
_local1 = getSHA1(_local1);
_hashedKey = _local1;
trace(("hashed key after SHA1: " + _local1));
sendScore();
}
private function sendScore():void{
var _local1:URLVariables = new URLVariables();
_local1.key = _hashedKey;
_local1.score = _parentRef._totalScore;
_local1.player = _parentRef._playerName;
_local1.gameID = "MidnightMassacre";
_local1.rnd = Math.floor((Math.random() * 1000));
trace(("Flash is sending vars: " + _local1.toString()));
sendData("http://apps.doof.com/spoof/leaderboard/index.php/scores/process/", _local1);
}
private function getSHA1(_arg1:String):String{
var _local2:String = SHA1.hash(_arg1);
return (_local2);
}
public function startPHP(_arg1:Object):void{
_parentRef = _arg1;
trace("starting PHP");
Security.allowDomain("*");
Security.allowInsecureDomain("*");
trace("loading crossdomain policy from http://apps.doof.com/crossdomain.xml");
Security.loadPolicyFile("http://apps.doof.com/crossdomain.xml");
loadTimeURL("http://apps.doof.com/spoof/leaderboard/timestamp/get/");
}
}
}//package com.doof.shooting
Section 11
//PixelPerfectCollisionDetection (com.doof.shooting.PixelPerfectCollisionDetection)
package com.doof.shooting {
import flash.display.*;
import flash.geom.*;
public class PixelPerfectCollisionDetection {
public static function getCollisionRect(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Rectangle{
var _local9:BitmapData;
var _local10:BitmapData;
var _local11:uint;
var _local12:Rectangle;
var _local13:int;
var _local6:Rectangle = _arg1.getBounds(_arg3);
var _local7:Rectangle = _arg2.getBounds(_arg3);
var _local8:Rectangle = _local6.intersection(_local7);
if (_local8.size.length > 0){
if (_arg4){
_local8.width = Math.ceil(_local8.width);
_local8.height = Math.ceil(_local8.height);
_local9 = getAlphaMap(_arg1, _local8, BitmapDataChannel.RED, _arg3);
_local10 = getAlphaMap(_arg2, _local8, BitmapDataChannel.GREEN, _arg3);
_local9.draw(_local10, null, null, BlendMode.LIGHTEN);
if (_arg5 <= 0){
_local11 = 65792;
} else {
if (_arg5 > 1){
_arg5 = 1;
};
_local13 = Math.round((_arg5 * 0xFF));
_local11 = (((_local13 << 16) | (_local13 << 8)) | 0);
};
_local12 = _local9.getColorBoundsRect(_local11, _local11);
_local9.getColorBoundsRect(_local11, _local11).x = (_local12.x + _local8.x);
_local12.y = (_local12.y + _local8.y);
return (_local12);
} else {
return (_local8);
};
//unresolved jump
};
return (null);
}
public static function isColliding(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Boolean{
var _local6:Rectangle = getCollisionRect(_arg1, _arg2, _arg3, _arg4, _arg5);
if (((!((_local6 == null))) && ((_local6.size.length > 0)))){
return (true);
};
return (false);
}
public static function getCollisionPoint(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Point{
var _local7:Number;
var _local8:Number;
var _local6:Rectangle = getCollisionRect(_arg1, _arg2, _arg3, _arg4, _arg5);
if (((!((_local6 == null))) && ((_local6.size.length > 0)))){
_local7 = ((_local6.left + _local6.right) / 2);
_local8 = ((_local6.top + _local6.bottom) / 2);
return (new Point(_local7, _local8));
};
return (null);
}
private static function getAlphaMap(_arg1:DisplayObject, _arg2:Rectangle, _arg3:uint, _arg4:DisplayObjectContainer):BitmapData{
var _local5:Matrix = _arg4.transform.concatenatedMatrix.clone();
_local5.invert();
var _local6:Matrix = _arg1.transform.concatenatedMatrix.clone();
_local6.concat(_local5);
_local6.translate(-(_arg2.x), -(_arg2.y));
var _local7:BitmapData = new BitmapData(_arg2.width, _arg2.height, true, 0);
_local7.draw(_arg1, _local6);
var _local8:BitmapData = new BitmapData(_arg2.width, _arg2.height, false, 0);
_local8.copyChannel(_local7, _local7.rect, new Point(0, 0), BitmapDataChannel.ALPHA, _arg3);
return (_local8);
}
}
}//package com.doof.shooting
Section 12
//SpinnableObject (com.doof.shooting.SpinnableObject)
package com.doof.shooting {
import flash.display.*;
import flash.events.*;
import flash.media.*;
public class SpinnableObject extends MovieClip {
private var beenShot:Boolean;// = false
private var momR:Number;
private var momX:Number;
private var momY:Number;
private var weight:Number;
private var inertia:Number;
private var amount:Number;
public function SpinnableObject():void{
momX = 0;
momY = 0;
momR = 0;
inertia = 0.99;
weight = 0.25;
amount = 7;
}
private function mouseDownHandler(_arg1:MouseEvent):void{
shootObject();
}
private function enterFrameHandler(_arg1:Event):void{
moveObject();
}
private function moveObject():void{
if (beenShot){
momY = (momY + weight);
momX = (momX * inertia);
momY = (momY * inertia);
momR = (momR * inertia);
x = (x + (momX * scaleX));
y = (y + (momY * scaleX));
rotation = (rotation + momR);
};
}
private function destroy():void{
visible = false;
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
public function shootObject():void{
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
beenShot = true;
var _local1:Number = (x - parent.mouseX);
var _local2:Number = ((y - (height / 2)) - parent.mouseY);
var _local3:Number = ((_local1 * _local2) / 150);
momX = (momX + ((_local1 * amount) / 1.25));
momY = (momY + ((_local2 * amount) / 5));
momR = (momR + (_local3 * amount));
var _local4:Sound = new Ricochet();
_local4.play(0, 1);
}
}
}//package com.doof.shooting
Section 13
//Target (com.doof.shooting.Target)
package com.doof.shooting {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.ui.*;
public class Target extends MovieClip {
private var shot:Boolean;// = false
private var timer:Timer;
private var _showTime:Number;
private var showing:Boolean;
private var startTime:Number;
public var target:MovieClip;
private var halfTime:Number;
public var delayTime:Number;
public function Target():void{
gotoAndStop("init");
target.stop();
}
private function onTimerHandler(_arg1:TimerEvent):void{
if (((((getTimer() - startTime) > halfTime)) && (!(shot)))){
shot = true;
if (scaleX < 1.65){
if ((((((this is Mummy)) || ((this is Zombie)))) || ((this is Vampire)))){
target.gotoAndPlay("attack2");
return;
};
};
Object(parent.parent.parent).badShot();
target.gotoAndPlay("attack1");
if ((((((this is Werewolf)) || ((this is Mummy)))) || ((this is Vampire)))){
Object(parent.parent.parent).addChild(new Slash());
};
if ((this is Cerberus)){
Object(parent.parent.parent).addChild(new DogBite());
};
if ((this is Zombie)){
Object(parent.parent.parent).addChild(new ZombieBite());
};
if ((this is Frankenstein)){
Object(parent.parent.parent).addChild(new Punch());
};
};
if ((getTimer() - startTime) > showTime){
timer.removeEventListener(TimerEvent.TIMER, onTimerHandler);
timer.stop();
hideTarget();
};
}
public function headHit():void{
Object(parent.parent.parent).hitTargetHead();
timer.removeEventListener(TimerEvent.TIMER, onTimerHandler);
timer.stop();
dieTarget();
target.gotoAndStop("headShot");
}
public function set showTime(_arg1:Number):void{
_showTime = _arg1;
halfTime = (showTime * 0.5);
}
public function bodyHit():void{
Object(parent.parent.parent).hitTarget();
timer.removeEventListener(TimerEvent.TIMER, onTimerHandler);
timer.stop();
dieTarget();
target.gotoAndStop("bodyShot");
}
public function destroy():void{
timer.removeEventListener(TimerEvent.TIMER, onTimerHandler);
timer.stop();
removeEventListener(MouseEvent.MOUSE_DOWN, checkHit);
target.head.removeEventListener(MouseEvent.MOUSE_DOWN, checkHeadHit);
target.gotoAndStop("standing");
}
public function get showTime():Number{
return (_showTime);
}
public function checkHeadHit(_arg1:MouseEvent):void{
if (showing){
headHit();
};
}
public function showTarget():void{
shot = false;
showing = true;
gotoAndPlay("show");
startTime = getTimer();
timer = new Timer(10, 0);
timer.addEventListener(TimerEvent.TIMER, onTimerHandler);
timer.start();
target.gotoAndStop("standing");
}
public function dieTarget():void{
showing = false;
gotoAndPlay("die");
}
public function checkHit(_arg1:MouseEvent):void{
if (showing){
bodyHit();
};
}
public function hideTarget():void{
showing = false;
gotoAndPlay("hide");
}
}
}//package com.doof.shooting
Section 14
//ThrowObject (com.doof.shooting.ThrowObject)
package com.doof.shooting {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.errors.*;
public class ThrowObject extends MovieClip {
private var shotFrames:int;// = 0
private var thrown:Boolean;// = false
private var momX:int;
private var momY:int;
public function ThrowObject(){
momY = (-(Math.random()) * 10);
momX = (-8 + (Math.random() * 16));
super();
addEventListener(Event.ENTER_FRAME, checkFrame);
}
private function checkFrame(_arg1:Event):void{
var e = _arg1;
try {
x = (x + momX);
y = (y + momY);
if (!thrown){
Object(parent.parent.parent).throwArray.push(this);
thrown = true;
};
if (currentFrame == totalFrames){
removeEventListener(Event.ENTER_FRAME, checkFrame);
Object(parent.parent.parent).badShot();
stop();
visible = false;
};
} catch(e:Error) {
trace("throw object generated the spawn of satan. oops!");
};
}
public function stopHandlers():void{
visible = false;
stop();
removeEventListener(Event.ENTER_FRAME, checkFrame);
removeEventListener(Event.ENTER_FRAME, shotHandler);
}
private function shotHandler(_arg1:Event):void{
if (shotFrames > 100){
stopHandlers();
};
momY = (momY + 4);
y = (y + momY);
x = (x + momX);
rotation = (rotation + (momY / 5));
shotFrames++;
}
public function shot():void{
var _local1:Sound;
if (shotFrames == 0){
stop();
removeEventListener(Event.ENTER_FRAME, checkFrame);
addEventListener(Event.ENTER_FRAME, shotHandler);
shotFrames++;
momX = (-5 + (Math.random() * 10));
momY = 6.5;
_local1 = new Ricochet();
_local1.play(0, 1);
};
}
}
}//package com.doof.shooting
Section 15
//2splash_asset_199 (MidnightMassacre_fla.2splash_asset_199)
package MidnightMassacre_fla {
import flash.display.*;
public dynamic class 2splash_asset_199 extends MovieClip {
public function 2splash_asset_199(){
addFrameScript(49, frame50);
}
function frame50(){
stop();
}
}
}//package MidnightMassacre_fla
Section 16
//bar_individual_183 (MidnightMassacre_fla.bar_individual_183)
package MidnightMassacre_fla {
import flash.display.*;
import flash.text.*;
public dynamic class bar_individual_183 extends MovieClip {
public var score:TextField;
public var rank:TextField;
public var playerName:TextField;
public function bar_individual_183(){
addFrameScript(0, frame1, 1, frame2);
}
function frame2(){
stop();
}
function frame1(){
stop();
}
}
}//package MidnightMassacre_fla
Section 17
//cerberus_44 (MidnightMassacre_fla.cerberus_44)
package MidnightMassacre_fla {
import flash.display.*;
public dynamic class cerberus_44 extends MovieClip {
public var head:MovieClip;
public var character:MovieClip;
public function cerberus_44(){
addFrameScript(0, frame1, 18, frame19, 19, frame20, 20, frame21);
}
function frame1(){
stop();
}
function frame19(){
gotoAndStop("standing");
}
function frame20(){
stop();
}
function frame21(){
stop();
}
}
}//package MidnightMassacre_fla
Section 18
//frank_62 (MidnightMassacre_fla.frank_62)
package MidnightMassacre_fla {
import flash.display.*;
public dynamic class frank_62 extends MovieClip {
public var head:MovieClip;
public var character:MovieClip;
public function frank_62(){
addFrameScript(0, frame1, 17, frame18, 18, frame19, 19, frame20);
}
function frame18(){
gotoAndStop("standing");
}
function frame19(){
stop();
}
function frame20(){
stop();
}
function frame1(){
stop();
}
}
}//package MidnightMassacre_fla
Section 19
//gun_132 (MidnightMassacre_fla.gun_132)
package MidnightMassacre_fla {
import flash.display.*;
public dynamic class gun_132 extends MovieClip {
public function gun_132(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package MidnightMassacre_fla
Section 20
//heartBarAnimation_134 (MidnightMassacre_fla.heartBarAnimation_134)
package MidnightMassacre_fla {
import flash.display.*;
public dynamic class heartBarAnimation_134 extends MovieClip {
public var heartBar:HeartBar;
public function heartBarAnimation_134(){
addFrameScript(79, frame80);
}
function frame80(){
stop();
}
}
}//package MidnightMassacre_fla
Section 21
//mum_36 (MidnightMassacre_fla.mum_36)
package MidnightMassacre_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class mum_36 extends MovieClip {
public var head:MovieClip;
public var character:MovieClip;
public var scarabRef:Scarab;
public function mum_36(){
addFrameScript(0, frame1, 1, frame2, 20, frame21, 41, frame42, 42, frame43, 43, frame44);
}
function frame1(){
stop();
}
function frame2(){
scarabRef = Object(parent.parent).addChild(new Scarab());
scarabRef.x = Object(parent).x;
scarabRef.y = Object(parent).y;
}
function frame42(){
gotoAndStop("standing");
}
function frame43(){
stop();
}
function frame44(){
stop();
}
function frame21(){
gotoAndStop("standing");
}
}
}//package MidnightMassacre_fla
Section 22
//vampire_24 (MidnightMassacre_fla.vampire_24)
package MidnightMassacre_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class vampire_24 extends MovieClip {
public var head:MovieClip;
public var character:MovieClip;
public var batRef:Bat;
public function vampire_24(){
addFrameScript(0, frame1, 19, frame20, 20, frame21, 38, frame39, 39, frame40, 40, frame41);
}
function frame1(){
stop();
}
function frame40(){
stop();
}
function frame41(){
stop();
}
function frame20(){
gotoAndStop("standing");
}
function frame21(){
batRef = Object(parent.parent).addChild(new Bat());
batRef.x = Object(parent).x;
batRef.y = Object(parent).y;
}
function frame39(){
gotoAndStop("standing");
}
}
}//package MidnightMassacre_fla
Section 23
//wolf_53 (MidnightMassacre_fla.wolf_53)
package MidnightMassacre_fla {
import flash.display.*;
public dynamic class wolf_53 extends MovieClip {
public var head:MovieClip;
public var character:MovieClip;
public function wolf_53(){
addFrameScript(0, frame1, 1, frame2, 23, frame24, 24, frame25);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame25(){
stop();
}
function frame24(){
gotoAndStop("standing");
}
}
}//package MidnightMassacre_fla
Section 24
//zombie_16 (MidnightMassacre_fla.zombie_16)
package MidnightMassacre_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class zombie_16 extends MovieClip {
public var head:MovieClip;
public var character:MovieClip;
public var boneRef:Bone;
public function zombie_16(){
addFrameScript(0, frame1, 1, frame2, 19, frame20, 40, frame41, 41, frame42, 42, frame43);
}
function frame1(){
stop();
}
function frame2(){
boneRef = Object(parent.parent).addChild(new Bone());
boneRef.x = Object(parent).x;
boneRef.y = Object(parent).y;
}
function frame41(){
gotoAndStop("standing");
}
function frame42(){
stop();
}
function frame43(){
stop();
}
function frame20(){
gotoAndStop("standing");
}
}
}//package MidnightMassacre_fla
Section 25
//Bat (Bat)
package {
import com.doof.shooting.*;
public dynamic class Bat extends ThrowObject {
}
}//package
Section 26
//bin (bin)
package {
import com.doof.shooting.*;
public dynamic class bin extends SpinnableObject {
}
}//package
Section 27
//BloodFlash (BloodFlash)
package {
import flash.display.*;
public dynamic class BloodFlash extends MovieClip {
public function BloodFlash(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
visible = false;
parent.removeChild(this);
}
}
}//package
Section 28
//Bone (Bone)
package {
import com.doof.shooting.*;
public dynamic class Bone extends ThrowObject {
}
}//package
Section 29
//BulletDamage (BulletDamage)
package {
import flash.display.*;
public dynamic class BulletDamage extends MovieClip {
}
}//package
Section 30
//BulletHolderMC (BulletHolderMC)
package {
import com.doof.shooting.*;
public dynamic class BulletHolderMC extends BulletHolder {
}
}//package
Section 31
//BulletHole (BulletHole)
package {
import flash.display.*;
public dynamic class BulletHole extends MovieClip {
}
}//package
Section 32
//Button_black_downSkin (Button_black_downSkin)
package {
import flash.display.*;
public dynamic class Button_black_downSkin extends MovieClip {
}
}//package
Section 33
//Button_black_overSkin (Button_black_overSkin)
package {
import flash.display.*;
public dynamic class Button_black_overSkin extends MovieClip {
}
}//package
Section 34
//Button_black_upSkin_static (Button_black_upSkin_static)
package {
import flash.display.*;
public dynamic class Button_black_upSkin_static extends MovieClip {
}
}//package
Section 35
//Cerberus (Cerberus)
package {
import com.doof.shooting.*;
public dynamic class Cerberus extends Target {
public function Cerberus(){
addFrameScript(9, frame10, 19, frame20, 44, frame45);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
function frame45(){
stop();
}
}
}//package
Section 36
//CorrectSND (CorrectSND)
package {
import flash.media.*;
public dynamic class CorrectSND extends Sound {
}
}//package
Section 37
//CrossHair (CrossHair)
package {
import flash.display.*;
public dynamic class CrossHair extends MovieClip {
public var spread:MovieClip;
}
}//package
Section 38
//DogBite (DogBite)
package {
import flash.display.*;
public dynamic class DogBite extends MovieClip {
public function DogBite(){
addFrameScript(0, frame1, 14, frame15);
}
function frame15(){
stop();
visible = false;
parent.removeChild(this);
}
function frame1(){
x = (((stage.stageWidth * 0.5) - 25) + (Math.random() * 50));
y = (((stage.stageHeight * 0.5) - 25) + (Math.random() * 50));
rotation = (rotation + (-45 + (Math.random() * 90)));
}
}
}//package
Section 39
//dogYelp (dogYelp)
package {
import flash.media.*;
public dynamic class dogYelp extends Sound {
}
}//package
Section 40
//EntryScreen (EntryScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class EntryScreen extends MovieClip {
public var nextBTN:SimpleButton;
public var doofBTN:MovieClip;
public var playerNameTXT:TextField;
}
}//package
Section 41
//FinalResultsScreen (FinalResultsScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class FinalResultsScreen extends MovieClip {
public var score2:TextField;
public var endBTN:SimpleButton;
public var total:TextField;
public var score3:TextField;
public var score1:TextField;
public function FinalResultsScreen(){
addFrameScript(69, frame70);
}
function frame70(){
stop();
}
}
}//package
Section 42
//Frankenstein (Frankenstein)
package {
import com.doof.shooting.*;
public dynamic class Frankenstein extends Target {
public function Frankenstein(){
addFrameScript(9, frame10, 19, frame20, 44, frame45);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
function frame45(){
stop();
}
}
}//package
Section 43
//GameOverScreen (GameOverScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class GameOverScreen extends MovieClip {
public function GameOverScreen(){
addFrameScript(99, frame100);
}
function frame100(){
stop();
Object(parent).showFinalResults();
}
}
}//package
Section 44
//GruntSound (GruntSound)
package {
import flash.media.*;
public dynamic class GruntSound extends Sound {
}
}//package
Section 45
//Gunshot (Gunshot)
package {
import flash.media.*;
public dynamic class Gunshot extends Sound {
}
}//package
Section 46
//Heart (Heart)
package {
import flash.display.*;
public dynamic class Heart extends MovieClip {
}
}//package
Section 47
//HeartBar (HeartBar)
package {
import com.doof.shooting.*;
public dynamic class HeartBar extends HealthBar {
}
}//package
Section 48
//Hostage1 (Hostage1)
package {
import com.doof.shooting.*;
public dynamic class Hostage1 extends Hostage {
public function Hostage1(){
addFrameScript(9, frame10, 19, frame20);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
}
}//package
Section 49
//Hostage2 (Hostage2)
package {
import com.doof.shooting.*;
public dynamic class Hostage2 extends Hostage {
public function Hostage2(){
addFrameScript(9, frame10, 19, frame20);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
}
}//package
Section 50
//IntroScreen (IntroScreen)
package {
import flash.display.*;
public dynamic class IntroScreen extends MovieClip {
public var skipBTN:MovieClip;
public function IntroScreen(){
addFrameScript(661, frame662);
}
function frame662(){
stop();
}
}
}//package
Section 51
//Leaderboard (Leaderboard)
package {
import com.doof.shooting.*;
public dynamic class Leaderboard extends PHPLeaderboard {
}
}//package
Section 52
//Level1 (Level1)
package {
import flash.display.*;
public dynamic class Level1 extends MovieClip {
}
}//package
Section 53
//Level2 (Level2)
package {
import flash.display.*;
public dynamic class Level2 extends MovieClip {
}
}//package
Section 54
//Level3 (Level3)
package {
import flash.display.*;
public dynamic class Level3 extends MovieClip {
}
}//package
Section 55
//LifeUpSound (LifeUpSound)
package {
import flash.media.*;
public dynamic class LifeUpSound extends Sound {
}
}//package
Section 56
//MochiAd (MochiAd)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
public class MochiAd {
public static function getVersion():String{
return ("2.5");
}
public static function showClickAwayAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
var sendHostProgress:Boolean;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
var _local3:Object = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
var idx:Number = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var clip:Object;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
var depth:Number = options.depth;
delete options.depth;
var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth);
var wh:Array = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
var lv:URLVariables = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local6:Array;
var _local3:Object = _arg2.getBounds(_arg2.root);
var _local4:Number = 0;
var _local5:Number = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array = _arg2.split(".");
var _local4:Number = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
var sendHostProgress:Boolean;
var r:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
setTimeout(options.ad_finished, 100);
return;
};
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
var fn:Function = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = 10;
bar.y = (h - 20);
};
var bar_color:Number = options.color;
delete options.color;
var bar_background:Number = options.background;
delete options.background;
var bar_outline:Number = options.outline;
delete options.outline;
var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1);
var backing:Object = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2);
var inside:Object = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3);
var outline:Object = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
var f:Function = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local11:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
var _local1:Object = this.parent.parent.root;
var _local2:Object = this.parent._mochiad_ctr;
var _local3:Number = (getTimer() - this.started);
var _local4:Boolean;
var _local5:Number = _local1.loaderInfo.bytesTotal;
var _local6:Number = _local1.loaderInfo.bytesLoaded;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
var _local7:Number = ((100 * _local6) / _local5);
var _local8:Number = ((100 * _local3) / chk.ad_msec);
var _local9:Object = this._mochiad_bar._inside;
var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
options.ad_progress(_local10);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7});
if (_local7 == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local11 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var mc = _arg1;
var f:Function = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 57
//Mummy (Mummy)
package {
import com.doof.shooting.*;
public dynamic class Mummy extends Target {
public function Mummy(){
addFrameScript(9, frame10, 19, frame20, 44, frame45);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
function frame45(){
stop();
}
}
}//package
Section 58
//Music1 (Music1)
package {
import flash.media.*;
public dynamic class Music1 extends Sound {
}
}//package
Section 59
//Music2 (Music2)
package {
import flash.media.*;
public dynamic class Music2 extends Sound {
}
}//package
Section 60
//Music3 (Music3)
package {
import flash.media.*;
public dynamic class Music3 extends Sound {
}
}//package
Section 61
//NoSound (NoSound)
package {
import flash.media.*;
public dynamic class NoSound extends Sound {
}
}//package
Section 62
//NumberHolder (NumberHolder)
package {
import flash.display.*;
import flash.text.*;
public dynamic class NumberHolder extends MovieClip {
public var num:TextField;
}
}//package
Section 63
//Punch (Punch)
package {
import flash.display.*;
public dynamic class Punch extends MovieClip {
public function Punch(){
addFrameScript(0, frame1, 14, frame15);
}
function frame15(){
stop();
visible = false;
parent.removeChild(this);
}
function frame1(){
x = (((stage.stageWidth * 0.5) - 25) + (Math.random() * 50));
y = (((stage.stageHeight * 0.5) - 25) + (Math.random() * 50));
rotation = (rotation + (-45 + (Math.random() * 90)));
}
}
}//package
Section 64
//Reload (Reload)
package {
import flash.media.*;
public dynamic class Reload extends Sound {
}
}//package
Section 65
//ReloadBullet (ReloadBullet)
package {
import flash.display.*;
public dynamic class ReloadBullet extends MovieClip {
}
}//package
Section 66
//ReloadSound (ReloadSound)
package {
import flash.media.*;
public dynamic class ReloadSound extends Sound {
}
}//package
Section 67
//Ricochet (Ricochet)
package {
import flash.media.*;
public dynamic class Ricochet extends Sound {
}
}//package
Section 68
//RoundResultsScreen (RoundResultsScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class RoundResultsScreen extends MovieClip {
public var bonusPoints:TextField;
public var nextBTN:SimpleButton;
public var score:TextField;
public var enemyPoints:TextField;
public var hostagePoints:TextField;
}
}//package
Section 69
//Scarab (Scarab)
package {
import com.doof.shooting.*;
public dynamic class Scarab extends ThrowObject {
}
}//package
Section 70
//ScorePopup (ScorePopup)
package {
import flash.display.*;
public dynamic class ScorePopup extends MovieClip {
public var score:MovieClip;
public function ScorePopup(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
visible = false;
parent.removeChild(this);
}
}
}//package
Section 71
//skull_filters (skull_filters)
package {
import com.doof.shooting.*;
public dynamic class skull_filters extends SpinnableObject {
}
}//package
Section 72
//Slash (Slash)
package {
import flash.display.*;
public dynamic class Slash extends MovieClip {
public function Slash(){
addFrameScript(0, frame1, 14, frame15);
}
function frame15(){
stop();
visible = false;
parent.removeChild(this);
}
function frame1(){
x = (((stage.stageWidth * 0.5) - 25) + (Math.random() * 50));
y = (((stage.stageHeight * 0.5) - 25) + (Math.random() * 50));
rotation = (rotation + (-45 + (Math.random() * 90)));
}
}
}//package
Section 73
//SplashScreen (SplashScreen)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class SplashScreen extends MovieClip {
public var background:MovieClip;
public var logo:MovieClip;
public var mochiId:String;
public var adFinished:Function;
public var gameRes:String;
public function SplashScreen(){
addFrameScript(0, frame1, 49, frame50);
}
function frame1(){
background.width = stage.stageWidth;
background.height = stage.stageHeight;
logo.x = (stage.stageWidth / 2);
logo.y = (stage.stageHeight / 2);
this.buttonMode = true;
this.useHandCursor = true;
this.addEventListener(MouseEvent.CLICK, doofLinkHandler);
}
function frame50(){
logo.stop();
gameRes = ((stage.stageWidth + "x") + stage.stageHeight);
MochiAd.showPreGameAd({clip:root, id:mochiId, res:gameRes, ad_finished:adFinished});
}
public function doofLinkHandler(_arg1:MouseEvent):void{
var _local2:URLRequest = new URLRequest("http://www.doof.com");
navigateToURL(_local2, "_blank");
}
}
}//package
Section 74
//TitleScreen (TitleScreen)
package {
import flash.display.*;
public dynamic class TitleScreen extends MovieClip {
public var doofBTN:MovieClip;
public var nextBTN:SimpleButton;
public var startBTN:SimpleButton;
public function TitleScreen(){
addFrameScript(183, frame184, 287, frame288);
}
function frame184(){
stop();
}
function frame288(){
stop();
}
}
}//package
Section 75
//Vampire (Vampire)
package {
import com.doof.shooting.*;
public dynamic class Vampire extends Target {
public function Vampire(){
addFrameScript(9, frame10, 19, frame20, 44, frame45);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
function frame45(){
stop();
}
}
}//package
Section 76
//Werewolf (Werewolf)
package {
import com.doof.shooting.*;
public dynamic class Werewolf extends Target {
public function Werewolf(){
addFrameScript(9, frame10, 19, frame20, 44, frame45);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
function frame45(){
stop();
}
}
}//package
Section 77
//Zombie (Zombie)
package {
import com.doof.shooting.*;
public dynamic class Zombie extends Target {
public function Zombie(){
addFrameScript(9, frame10, 19, frame20, 44, frame45);
}
function frame20(){
stop();
}
function frame10(){
stop();
}
function frame45(){
stop();
}
}
}//package
Section 78
//ZombieBite (ZombieBite)
package {
import flash.display.*;
public dynamic class ZombieBite extends MovieClip {
public function ZombieBite(){
addFrameScript(0, frame1, 14, frame15);
}
function frame15(){
stop();
visible = false;
parent.removeChild(this);
}
function frame1(){
x = (((stage.stageWidth * 0.5) - 25) + (Math.random() * 50));
y = (((stage.stageHeight * 0.5) - 25) + (Math.random() * 50));
rotation = (rotation + (-45 + (Math.random() * 90)));
}
}
}//package