STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228109
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/51132742?noj=FRM51132742-8DC" width="1" height="1"></div>

Zombie Invaders.swf

This is the info page for
Flash #210796

(Click the ID number above for more basic data on this flash file.)


Text
<p align="left"><font face="Zombie" size="35" color="#1f48e9" letterSpacing="0.000000" kerning="1"><b>5</b></font></p>

x

<p align="left"><font face="Zombie" size="20" color="#cccc99" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="left"></p>

<p align="left"><font face="Zombie" size="20" color="#cc3300" letterSpacing="0.000000" kerning="1">27</font></p>

+

<p align="left"><font face="Zombie" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">playername</font></p>

NEW game

NEW game

OPTIONS

options

options

back

back

high

high

medium

medium

low

low

QUALITY

music

<p align="left"><font face="Zombie" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">100%</font></p>

sound

<p align="left"><font face="Zombie" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">100%</font></p>

credits

credits

highscores

highscores

difficulty

difficulty

instructions

instructions

instructions

more games

more games

easy

easy

normal

normal

hard

hard

Difficulty

view
Highscores

PROGRAMMING

<p align="center"><font face="Zombie" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="mailto:mortikor@gmail.com" target = "_blank">Evgeny Bornyakov &nbsp;</a></font></p>

ART

<p align="center"><font face="Zombie" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="http://kornushin.com" target = "_blank">konstantin kornushin &nbsp;</a></font></p>

music

<p align="center"><font face="Zombie" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="mailto:balint@pochta.ru" target = "_blank"> Alexander Balint</a></font></p>

you must
destroy tombs
and collect
skulls.
earn weapons
and other
bonuses!

enter your name

view highscore

submit

<p align="center"><font face="Zombie" size="27" color="#996600" letterSpacing="0.000000" kerning="1"><b>12346</b></font></p>

<p align="right"><font face="Zombie" size="27" color="#d63a3a" letterSpacing="0.000000" kerning="1"><b>55</b></font></p>

<p align="left"><font face="Zombie" size="27" color="#5fe225" letterSpacing="0.000000" kerning="1"><b>27</b></font></p>

x

x

GAME
OVER

MaIN menu

SEND SCORE

ActionScript [AS3]

Section 1
//ArrayUtilities (ascb.util.ArrayUtilities) package ascb.util { public class ArrayUtilities { public static function duplicate(_arg1:Object, _arg2:Boolean=false):Object{ var _local3:Object; var _local4:String; var _local5:Number; if (_arg2){ if ((_arg1 is Array)){ _local3 = new Array(); _local5 = 0; while (_local5 < _arg1.length) { if ((_arg1[_local5] is Object)){ _local3[_local5] = duplicate(_arg1[_local5]); } else { _local3[_local5] = _arg1[_local5]; }; _local5++; }; return (_local3); } else { _local3 = new Object(); for (_local4 in _arg1) { if ((((((((_arg1[_local4] is Object)) && (!((_arg1[_local4] is String))))) && (!((_arg1[_local4] is Boolean))))) && (!((_arg1[_local4] is Number))))){ _local3[_local4] = duplicate(_arg1[_local4], _arg2); } else { _local3[_local4] = _arg1[_local4]; }; }; return (_local3); }; //unresolved jump }; if ((_arg1 is Array)){ return ((_arg1 as Array).concat()); }; _local3 = new Object(); for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; return (_local3); } public static function max(_arg1:Array):Number{ var _local2:Array; var _local3:Number; _local2 = _arg1.concat(); _local2.sort(Array.NUMERIC); _local3 = Number(_local2.pop()); return (_local3); } public static function findMatchIndex(_arg1:Array, _arg2:Object, ... _args):Number{ var _local4:Number; var _local5:Boolean; var _local6:Boolean; var _local7:Number; _local4 = 0; _local5 = false; if (typeof(_args[0]) == "number"){ _local4 = _args[0]; } else { if (typeof(_args[1]) == "number"){ _local4 = _args[1]; }; }; if (typeof(_args[0]) == "boolean"){ _local5 = _args[0]; }; _local6 = false; _local7 = _local4; while (_local7 < _arg1.length) { if (_local5){ _local6 = !((_arg1[_local7].indexOf(_arg2) == -1)); } else { _local6 = (_arg1[_local7] == _arg2); }; if (_local6){ return (_local7); }; _local7++; }; return (-1); } public static function switchElements(_arg1:Array, _arg2:Number, _arg3:Number):void{ var _local4:Object; var _local5:Object; _local4 = _arg1[_arg2]; _local5 = _arg1[_arg3]; _arg1.splice(_arg2, 1, _local5); _arg1.splice(_arg3, 1, _local4); } public static function toString(_arg1:Object, _arg2:uint=0):String{ var _local3:String; var _local4:Number; var _local5:String; var _local6:String; _local3 = ""; _local4 = 0; while (_local4 < _arg2) { _local3 = (_local3 + "\t"); _local4++; }; _local5 = ""; for (_local6 in _arg1) { if ((_arg1[_local6] is Object)){ _local5 = (((((_local3 + "** ") + _local6) + " **\n") + toString(_arg1[_local6], (_arg2 + 1))) + _local5); } else { _local5 = (_local5 + ((((_local3 + _local6) + ":") + _arg1[_local6]) + "\n")); }; }; return (_local5); } public static function randomize(_arg1:Array):Array{ var _local2:Array; var _local3:Array; var _local4:Object; var _local5:Number; var _local6:Number; _local2 = _arg1.concat(); _local3 = new Array(); _local6 = 0; while (_local6 < _local2.length) { _local5 = NumberUtilities.random(0, (_local2.length - 1)); _local3.push(_local2[_local5]); _local2.splice(_local5, 1); --_local6; _local6++; }; return (_local3); } public static function min(_arg1:Array):Number{ var _local2:Array; var _local3:Number; _local2 = _arg1.concat(); _local2.sort(Array.NUMERIC); _local3 = Number(_local2.shift()); return (_local3); } public static function sum(_arg1:Array):Number{ var _local2:Number; var _local3:Number; _local2 = 0; _local3 = 0; while (_local3 < _arg1.length) { if (typeof(_arg1[_local3]) == "number"){ _local2 = (_local2 + _arg1[_local3]); }; _local3++; }; return (_local2); } public static function findMatchIndices(_arg1:Array, _arg2:Object, _arg3:Boolean=false):Array{ var _local4:Array; var _local5:Number; _local4 = new Array(); _local5 = findMatchIndex(_arg1, _arg2, _arg3); while (_local5 != -1) { _local4.push(_local5); _local5 = findMatchIndex(_arg1, _arg2, _arg3, (_local5 + 1)); }; return (_local4); } public static function findLastMatchIndex(_arg1:Array, _arg2:Object, _arg3:Object):Number{ var _local5:Number; var _local6:Boolean; var _local7:Boolean; var _local8:Number; _local5 = _arg1.length; _local6 = false; if (typeof(arguments[2]) == "number"){ _local5 = arguments[2]; } else { if (typeof(arguments[3]) == "number"){ _local5 = arguments[3]; }; }; if (typeof(arguments[2]) == "boolean"){ _local6 = arguments[2]; }; _local7 = false; _local8 = _local5; while (_local8 >= 0) { if (_local6){ _local7 = !((_arg1[_local8].indexOf(_arg2) == -1)); } else { _local7 = (_arg1[_local8] == _arg2); }; if (_local7){ return (_local8); }; _local8--; }; return (-1); } public static function average(_arg1:Array):Number{ return ((sum(_arg1) / _arg1.length)); } private static function objectEquals(_arg1:Object, _arg2:Object):Boolean{ var _local3:String; for (_local3 in _arg1) { if ((_arg1[_local3] is Object)){ if (!objectEquals(_arg1[_local3], _arg2[_local3])){ return (false); }; } else { if (_arg1[_local3] != _arg2[_local3]){ return (false); }; }; }; return (true); } public static function equals(_arg1:Array, _arg2:Array, _arg3:Boolean, _arg4:Boolean):Boolean{ var _local5:Array; var _local6:Array; var _local7:Number; if (_arg1.length != _arg2.length){ return (false); }; _local5 = _arg1.concat(); _local6 = _arg2.concat(); if (_arg3){ _local5.sort(); _local6.sort(); }; _local7 = 0; while (_local7 < _local5.length) { if ((((_local5[_local7] is Array)) && (_arg4))){ if (!equals(_local5[_local7], _local6[_local7], _arg3, _arg4)){ return (false); }; } else { if ((((_local5[_local7] is Object)) && (_arg4))){ if (!objectEquals(_local5[_local7], _local6[_local7])){ return (false); }; } else { if (_local5[_local7] != _local6[_local7]){ return (false); }; }; }; _local7++; }; return (true); } } }//package ascb.util
Section 2
//DateFormat (ascb.util.DateFormat) package ascb.util { public class DateFormat { private var _sMask:String; public static const DAYSINMONTH:Array = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; public static const MONTHS_ABBREVIATED:Array = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; public static const DAYS_ABBREVIATED:Array = ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"]; public static const MONTHS:Array = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; public static const DAYS:Array = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; public function DateFormat(_arg1:String){ _sMask = _arg1; } public function format(_arg1:Date):String{ var _local2:Array; var _local3:Array; var _local4:Number; var _local5:Number; var _local6:NumberFormat; _local2 = getMaskElements(); _local3 = new Array(); _local4 = 0; while (_local4 < _local2.length) { switch (_local2[_local4].element){ case "a": if (_arg1.getHours() < 12){ _local3.push("am"); } else { _local3.push("pm"); }; break; case "A": if (_arg1.getHours() < 12){ _local3.push("AM"); } else { _local3.push("PM"); }; break; case "d": _local3.push(_arg1.getDate()); break; case "D": _local3.push(DateFormat.DAYS_ABBREVIATED[_arg1.getDay()]); break; case "F": _local3.push(DateFormat.MONTHS[_arg1.getMonth()]); break; case "g": _local5 = _arg1.getHours(); if (_local5 == 12){ _local3.push(12); } else { if (_local5 <= 12){ _local3.push(_local5); } else { _local3.push((_local5 - 12)); }; }; break; case "G": _local3.push(_arg1.getHours()); break; case "h": _local6 = new NumberFormat("00"); _local5 = _arg1.getHours(); if (_local5 == 12){ _local3.push(12); } else { if (_local5 <= 12){ _local3.push(_local6.format(_local5)); } else { _local3.push(_local6.format((_local5 - 12))); }; }; break; case "H": _local6 = new NumberFormat("00"); _local3.push(_local6.format(_arg1.getHours())); break; case "i": _local6 = new NumberFormat("00"); _local3.push(_local6.format(_arg1.getMinutes())); break; case "j": _local3.push(_arg1.getDate()); break; case "l": _local3.push(DateFormat.DAYS[_arg1.getDay()]); break; case "m": _local6 = new NumberFormat("00"); _local3.push(_local6.format((_arg1.getMonth() + 1))); break; case "M": _local3.push(DateFormat.MONTHS_ABBREVIATED[_arg1.getMonth()]); break; case "n": _local3.push((_arg1.getMonth() + 1)); break; case "s": _local6 = new NumberFormat("00"); _local3.push(_local6.format(_arg1.getSeconds())); break; case "t": _local3.push(DateFormat.DAYSINMONTH[_arg1.getMonth()]); break; case "w": _local3.push(_arg1.getDay()); break; case "y": _local3.push(String(_arg1.getFullYear()).substring(2)); break; case "Y": _local3.push(_arg1.getFullYear()); break; case "\\": _local3.push((_local2[_local4].element + ((_local2[(_local4 + 1)].element)==undefined) ? "" : _local2[(_local4 + 1)].element)); _local4++; break; default: _local3.push(_local2[_local4].element); }; _local4++; }; return (_local3.join("")); } public function set mask(_arg1:String):void{ _sMask = _arg1; } private function getMaskElements(_arg1:Boolean=false):Array{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:RegExp; var _local6:Number; var _local7:Number; _local2 = _sMask.split("'"); _local3 = new Array(); _local5 = new RegExp("[a-zA-Z]"); _local6 = 0; while (_local6 < _local2.length) { if ((_local6 % 2) != 0){ _local3.push({type:"quoted", element:_local2[_local6]}); } else { _local4 = _local2[_local6].split(""); _local7 = 0; while (_local7 < _local4.length) { if (((_local5.test(_local4[_local7])) && (_arg1))){ _local3.push({type:"regular", element:_local4[_local7]}); } else { if (!_arg1){ _local3.push({type:"regular", element:_local4[_local7]}); }; }; _local7++; }; }; _local6++; }; return (_local3); } public function parse(_arg1:String):Date{ var _local2:Array; var _local3:Number; var _local4:Number; var _local5:RegExp; var _local6:Array; var _local7:Date; var _local8:String; var _local9:String; var _local10:String; var _local11:Number; _local2 = getMaskElements(true); _local4 = 0; while (_local4 < _local2.length) { _local3 = _arg1.indexOf(_local2[_local4].element); if (_local2[_local4].type == "quoted"){ if (_local3 != -1){ _arg1 = ((_arg1.substring(0, _local3) + " ") + _arg1.substring((_local3 + _local2[_local4].element.length))); _local2.splice(_local4, 1); _local4--; }; }; _local4++; }; _local5 = new RegExp("[^a-zA-Z0-9]+"); _local6 = _arg1.split(_local5); _local7 = new Date(0, 0, 0, 0, 0, 0, 0); _local4 = 0; while (_local4 < _local2.length) { _local9 = String(_local6.shift()); switch (_local2[_local4].element){ case "a": case "A": _local8 = _local9.toLowerCase(); break; case "d": _local7.setDate(parseInt(_local9)); break; case "F": _local10 = _local6.shift().toLowerCase(); _local11 = 0; while (_local11 < DateFormat.MONTHS.length) { if (_local10 == DateFormat.MONTHS[_local11].toLowerCase()){ _local7.setMonth(_local11); break; }; _local11++; }; break; case "g": case "G": case "h": case "H": _local7.setHours(parseInt(_local9)); break; case "i": _local7.setMinutes(parseInt(_local9)); break; case "j": _local7.setDate(parseInt(_local9)); break; case "m": case "n": _local7.setMonth((parseInt(_local9) - 1)); break; case "M": _local10 = _local9.toLowerCase(); _local11 = 0; while (_local11 < DateFormat.MONTHS_ABBREVIATED.length) { if (DateFormat.MONTHS_ABBREVIATED[_local11].toLowerCase() == _local10){ _local7.setMonth(_local11); break; }; _local11++; }; break; case "s": _local7.setSeconds(parseInt(_local9)); break; case "y": _local7.setFullYear((2000 + parseInt(_local9))); break; case "Y": _local7.setFullYear(parseInt(_local9)); break; }; _local4++; }; if (_local8 == "pm"){ if (_local7.getHours() < 12){ _local7.setHours((_local7.getHours() + 12)); }; } else { if (_local8 == "am"){ if (_local7.getHours() == 12){ _local7.setHours(0); }; }; }; return (_local7); } public function get mask():String{ return (_sMask); } public static function formatMilliseconds(_arg1:Number):String{ var _local2:Number; _local2 = (_arg1 / 1000); return (formatSeconds(_local2)); } public static function formatSeconds(_arg1:Number):String{ var _local2:NumberFormat; var _local3:String; var _local4:String; _local2 = new NumberFormat("00"); _local3 = _local2.format(Math.floor((_arg1 / 60))); _local4 = _local2.format(Math.round((_arg1 - (parseInt(_local3) * 60)))); return (((_local3 + ":") + _local4)); } } }//package ascb.util
Section 3
//Locale (ascb.util.Locale) package ascb.util { import flash.system.*; public class Locale { private var _sLanguage:String; private var _sVariant:String; public static const GERMAN:String = "de"; public static const CHINESE:String = "zh"; public static const ENGLISH:String = "en"; public static const SPANISH:String = "es"; public static const UK:String = "UK"; public static const US:String = "US"; public static const FRENCH:String = "fr"; public static const JAPANESE:String = "jp"; private static var __sLanguage:String; private static var __sVariant:String; public function Locale(_arg1:String=null, _arg2:String=null){ _sLanguage = _arg1; _sVariant = _arg2; } public function get variant():String{ if (_sVariant == null){ if (Locale.svariant == null){ if (Capabilities.language.length > 2){ _sVariant = Capabilities.language.substr(3); } else { if (language == ENGLISH){ if (new Date().getTimezoneOffset() > 120){ _sVariant = US; } else { _sVariant = UK; }; } else { if (language == SPANISH){ if (new Date().getTimezoneOffset() > 120){ _sVariant = "MX"; } else { _sVariant = "ES"; }; }; }; }; } else { _sVariant = Locale.svariant; }; }; return (_sVariant); } public function set variant(_arg1:String):void{ _sVariant = _arg1; } public function get languageVariant():String{ var _local1:String; _local1 = language; if (variant != null){ _local1 = (_local1 + ("-" + variant)); }; return (_local1); } public function set language(_arg1:String):void{ _sLanguage = _arg1; } public function reset():void{ _sLanguage = null; _sVariant = null; } public function set languageVariant(_arg1:String):void{ var _local2:Array; _local2 = _arg1.split("-"); _sLanguage = _local2[0]; _sVariant = _local2[1]; } public function get language():String{ if (_sLanguage == null){ if (Locale.slanguage == null){ _sLanguage = Capabilities.language.substr(0, 2); } else { _sLanguage = Locale.slanguage; }; }; return (_sLanguage); } public static function sreset():void{ __sLanguage = null; __sVariant = null; } public static function get slanguage():String{ return (__sLanguage); } public static function set slanguage(_arg1:String):void{ __sLanguage = _arg1; } public static function set svariant(_arg1:String):void{ __sVariant = _arg1; } public static function get svariant():String{ return (__sVariant); } public static function get slanguageVariant():String{ var _local1:String; _local1 = slanguage; if (svariant != null){ _local1 = (_local1 + ("-" + svariant)); }; return (_local1); } public static function set slanguageVariant(_arg1:String):void{ var _local2:Array; _local2 = _arg1.split("-"); __sLanguage = _local2[0]; __sVariant = _local2[1]; } } }//package ascb.util
Section 4
//MathUtilites (ascb.util.MathUtilites) package ascb.util { public class MathUtilites { public static function getDistance(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (Math.sqrt((((_arg1 - _arg3) * (_arg1 - _arg3)) + ((_arg2 - _arg4) * (_arg2 - _arg4))))); } } }//package ascb.util
Section 5
//NumberFormat (ascb.util.NumberFormat) package ascb.util { public class NumberFormat { private var _sMask:String; public function NumberFormat(_arg1:String=null){ _sMask = _arg1; } public function parse(_arg1:String, _arg2:Number, _arg3:Boolean, _arg4:Locale):Number{ var _local5:Object; var _local6:Array; var _local7:Number; if (_arg4 == null){ _arg4 = new Locale(); }; _local5 = getSymbols(_arg3, _arg4); _local6 = _arg1.split(""); if (isNaN(_arg2)){ if (_local6[0] == "O"){ if (_local6[1] == "x"){ _arg2 = 16; } else { _arg2 = 8; }; } else { if (_local6[0] == "#"){ _arg2 = 16; } else { _arg2 = (isNaN(_arg2)) ? 10 : _arg2; }; }; }; _local7 = 0; while (_local7 < _local6.length) { switch (_local6[_local7]){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": break; case _local5.decimal: _local6[_local7] = "."; break; default: if (_arg2 > 10){ if ((((((_local6[_local7].charCodeAt(0) > 64)) && ((_local6[_local7].charCodeAt(0) < 91)))) || ((((_local6[_local7].charCodeAt(0) > 96)) && ((_local6[_local7].charCodeAt(0) < 123)))))){ break; }; }; _local6.splice(_local7, 1); _local7--; }; _local7++; }; if (_arg2 == 10){ return (Number(_local6.join(""))); }; return (parseInt(_local6.join(""), _arg2)); } private function getSymbols(_arg1:Boolean, _arg2:Locale):Object{ var _local3:Object; _local3 = new Object(); switch (_arg2.languageVariant){ case "en-US": _local3.currency = "$"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "en-UK": _local3.currency = "£"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "es-MX": _local3.currency = "$"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "es-ES": _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = false; break; case "fr": _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = false; break; case "sv": _local3.currency = "kr"; _local3.group = (_arg1) ? "," : " "; _local3.decimal = "."; _local3.before = false; break; case "jp": _local3.currency = " 5"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "nl": _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = true; break; default: _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = true; break; }; return (_local3); } public function format(_arg1:Number, _arg2:Object=null, _arg3:Object=null):String{ var _local4:Number; var _local5:Number; var _local6:String; var _local7:Object; var _local8:String; var _local9:String; var _local10:Array; var _local11:Array; var _local12:Array; var _local13:Number; var _local14:String; var _local15:Locale; var _local16:Locale; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:Number; var _local21:Number; var _local22:Array; var _local23:Boolean; var _local24:Number; if (typeof(_arg2) == "number"){ _local13 = Number(_arg2); _local6 = _arg1.toString(_local13); _local14 = ""; if (_local13 == 16){ _local14 = "0x"; }; if (_local13 == 8){ _local14 = "0"; }; if (_arg3 != null){ _local14 = String(_arg3); }; return ((_local14 + _local6.toUpperCase())); }; _local8 = ","; _local9 = "."; if (((!((_arg2 == null))) && (_arg2.hasOwnProperty("group")))){ _local7 = _arg2; } else { _local15 = Locale(_arg2); if (_local15 == null){ _local15 = new Locale(); }; _local16 = Locale(_local15); _local7 = getSymbols(false, _local16); }; _local8 = _local7.decimal; _local9 = _local7.group; _local10 = String(_arg1).split("."); _local11 = _local10[0].split(""); _local12 = ((_local10.length)>1) ? _local10[1].split("") : new Array(); if (_sMask == null){ _local4 = 1; _local11.reverse(); _local5 = 0; while (_local5 < _local11.length) { if (_local4 > 3){ _local4 = 0; _local11.splice(_local5, 0, _local9); }; _local4++; _local5++; }; _local11.reverse(); _local6 = _local11.join(""); if (_local10[1] != null){ _local6 = (_local6 + (_local8 + _local10[1])); }; } else { _local17 = _sMask.split(""); _local5 = 0; while (_local5 < _local17.length) { if (((((!((_local17[_local5] == "0"))) && (!((_local17[_local5] == "#"))))) && (!((_local17[_local5] == "."))))){ _local17.splice(_local5, 1); _local5--; }; _local5++; }; _local17 = _local17.join("").split("."); _local18 = _local17[0].split(""); _local19 = ((_local17.length)>1) ? _local17[1].split("") : new Array(); _local4 = _local18.length; _local20 = 0; _local21 = 0; _local6 = ""; if (_local4 < _local11.length){ _local5 = 0; while (_local5 < (_local11.length - _local4)) { _local6 = (_local6 + _local11[_local5]); _local20++; _local5++; }; } else { if (_local4 > _local11.length){ _local5 = 0; while (_local5 < (_local4 - _local11.length)) { if (_local18[_local5] == "0"){ _local6 = (_local6 + "0"); } else { if (_local18[_local5] == "#"){ _local6 = (_local6 + " "); }; }; _local21++; _local5++; }; }; }; _local23 = false; _local5 = _local21; while (_local5 < _local18.length) { if ((((_local18[_local5] == "0")) || ((_local18[_local5] == "#")))){ _local6 = (_local6 + ((_local11[_local20])==undefined) ? "" : _local11[_local20]); _local20++; }; _local5++; }; _local17 = _sMask.split("."); _local17 = _local17[0].split(""); _local22 = _local6.split(""); _local23 = false; _local5 = 0; while (_local5 < _local17.length) { if (((((!((_local17[_local5] == "0"))) && (!((_local17[_local5] == "#"))))) && (!((_local17[_local5] == "."))))){ if (_local23){ _local22.splice(_local5, 0, _local9); } else { _local22.splice(_local5, 0, " "); }; }; if (((!((_local22[_local5] == " "))) && (!((_local22[_local5] == "0"))))){ _local23 = true; }; _local5++; }; _local6 = _local22.join(""); if (_local19.length > 0){ _local6 = (_local6 + _local8); }; _local5 = 0; while (_local5 < _local19.length) { if (_local12[_local5] == null){ if (_local19[_local5] == "0"){ _local6 = (_local6 + "0"); } else { if (_local19[_local5] == "#"){ _local6 = (_local6 + " "); }; }; } else { _local24 = Number(((_local12[_local5] + "") + _local12[(_local5 + 1)])); if ((((_local5 == (_local19.length - 1))) && (!(isNaN(_local24))))){ _local6 = (_local6 + String(Math.round((_local24 / 10)))); } else { _local6 = (_local6 + _local12[_local5]); }; }; _local5++; }; }; return (_local6); } public function set mask(_arg1:String):void{ _sMask = _arg1; } public function currencyFormat(_arg1:Number, _arg2:Object=null):String{ var _local4:Locale; var _local5:Object; var _local6:String; var _local7:String; var _local8:String; var _local9:String; var _local10:Locale; var _local11:String; var _local12:Array; var _local13:Array; var _local14:Number; var _local15:String; var _local16:Number; _local4 = ((arguments[1] is Locale)) ? arguments[1] : new Locale(); if (((!((_arg2 == null))) && (_arg2.hasOwnProperty("group")))){ _local5 = _arg2; } else { _local5 = getSymbols(true, _local4); }; _local6 = _local5.currency; _local7 = _local5.group; _local8 = _local5.decimal; _local9 = _sMask; _sMask = null; _local10 = new Locale(); _local10.language = "en"; _local10.variant = "US"; _local11 = format(_arg1, _local10); _sMask = _local9; _local12 = _local11.split("."); if (_local12[1] == undefined){ _local12[1] = "00"; } else { _local12[1] = Number(_local12[1]); _local16 = String(_local12[1]).length; if (_local16 > 2){ _local12[1] = (_local12[1] / Math.pow(10, (_local16 - 2))); _local12[1] = Math.round(_local12[1]); }; }; _local11 = _local12.join("."); _local13 = _local11.split(""); _local14 = 0; while (_local14 < _local13.length) { if (_local13[_local14] == ","){ _local13[_local14] = _local7; } else { if (_local13[_local14] == "."){ _local13[_local14] = _local8; }; }; _local14++; }; _local15 = (((_local5.before) ? _local6 : "" + _local13.join("")) + (_local5.before) ? "" : _local6); return (_local15); } public function get mask():String{ return (_sMask); } } }//package ascb.util
Section 6
//NumberUtilities (ascb.util.NumberUtilities) package ascb.util { public class NumberUtilities { private static var _aUniqueIDs:Array; public static function random(_arg1:Number, _arg2:Number=0, _arg3:Number=1):Number{ var _local4:Number; var _local5:Number; var _local6:Number; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local4 = ((_arg2 - _arg1) + (1 * _arg3)); _local5 = (Math.random() * _local4); _local5 = (_local5 + _arg1); return (floor(_local5, _arg3)); } public static function ceil(_arg1:Number, _arg2:Number=1):Number{ return ((Math.ceil((_arg1 / _arg2)) * _arg2)); } public static function getUnique():Number{ var _local1:Date; var _local2:Number; if (_aUniqueIDs == null){ _aUniqueIDs = new Array(); }; _local1 = new Date(); _local2 = _local1.getTime(); while (!(isUnique(_local2))) { _local2 = (_local2 + _slot1.random(_local1.getTime(), (2 * _local1.getTime()))); }; _aUniqueIDs.push(_local2); return (_local2); } private static function isUnique(_arg1:Number):Boolean{ var _local2:Number; _local2 = 0; while (_local2 < _aUniqueIDs.length) { if (_aUniqueIDs[_local2] == _arg1){ return (false); }; _local2++; }; return (true); } public static function floor(_arg1:Number, _arg2:Number=1):Number{ return ((Math.floor((_arg1 / _arg2)) * _arg2)); } public static function round(_arg1:Number, _arg2:Number=1):Number{ return ((Math.round((_arg1 / _arg2)) * _arg2)); } } }//package ascb.util
Section 7
//MD5 (CMG_AS3.MD5) package CMG_AS3 { public class MD5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; _local3 = 1732584193; _local4 = -271733879; _local5 = -1732584194; _local6 = 271733878; _local7 = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function binl2rstr(_arg1:Array):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2binl(_arg1:String):Array{ var _local2:Array; var _local3:Number; _local2 = new Array((_arg1.length >> 2)); _local3 = 0; while (_local3 < _local2.length) { _local2[_local3] = 0; _local3++; }; _local3 = 0; while (_local3 < (_arg1.length * 8)) { _local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | ((_arg1.charCodeAt((_local3 / 8)) & 0xFF) << (_local3 % 32))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2hex(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; _local2 = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; _local3 = ""; _local5 = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function rstr2b64(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; _local3 = ""; _local4 = _arg1.length; _local5 = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number; _local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); _local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function str2rstr_utf8(_arg1:String):String{ var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = ""; _local3 = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; _local4 = new Array(16); _local5 = new Array(16); _local6 = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; _local7 = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local3:Number; var _local4:Array; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local9:Array; var _local10:String; _local3 = _arg2.length; _local4 = []; _local9 = new Array((_arg1.length / 2)); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package CMG_AS3
Section 8
//ScoreSubmitter (CMG_AS3.ScoreSubmitter) package CMG_AS3 { import flash.events.*; import flash.net.*; public class ScoreSubmitter extends EventDispatcher { private var m_UrlLoader:URLLoader;// = null public static const RETURNCODE_SUCCESS = 1; public static const RETURNCODE_REJECTED = 2; public static const RETURNCODE_INTERNALERROR = 5; public static const URL_SUBMITSCORE = "http://scores.crazymonkeygames.com/hs/regscores2.php"; public static const URL_UPDATEGAME = "http://scores.crazymonkeygames.com/hs/pleaseupdate.php"; public static const SCORE_RESPONSE:String = "score_response"; public static const RETURNCODE_WORKING = 0; public static const RETURNCODE_WRONGVERSION = 3; public static const URL_VIEWSCORES = "http://scores.crazymonkeygames.com/hs/listscores.php"; public static const RETURNCODE_NETWORKERROR = 4; public static var gameVersion:String = ""; public static var gameValidationCode:String = ""; public static var gameId:uint = 0; public function ScoreSubmitter(){ m_UrlLoader = null; super(); } private function onIoError(_arg1:Event){ dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_NETWORKERROR)); } public function submitScore(_arg1:String, _arg2, _arg3:String=null):void{ var _local4:*; var _local5:URLRequest; _arg1 = Utilities.trim(_arg1); gameVersion = Utilities.trim(gameVersion); if (_arg3 == null){ _arg3 = ""; } else { _arg3 = Utilities.trim(_arg3); }; gameValidationCode = Utilities.trim(gameValidationCode); if ((((((gameId < 1)) || ((gameVersion == "")))) || ((gameValidationCode == "")))){ trace("ERROR: CMG_AS3.ScoreSubmitter.submitScore: gameId, gameVersion, or gameValidationCode member variables were not set before calling this function!"); dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_REJECTED)); return; }; dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_WORKING)); _local4 = new URLVariables(); _local4.name = _arg1; _local4.score = _arg2; _local4.gameId = gameId; _local4.gameVersion = gameVersion; _local4.special = _arg3; _local4.key = MD5.encrypt(((((((((_arg1 + "|") + _arg2) + "|") + gameId) + "|") + _arg3) + "|") + gameValidationCode)); _local5 = new URLRequest(URL_SUBMITSCORE); _local5.method = URLRequestMethod.POST; _local5.data = _local4; m_UrlLoader = new URLLoader(); m_UrlLoader.addEventListener("complete", onComplete); m_UrlLoader.addEventListener("ioError", onIoError); m_UrlLoader.load(_local5); } private function onComplete(_arg1:Event):void{ var _local2:URLVariables; var _local3:*; _local2 = new URLVariables(m_UrlLoader.data.replace("&", "")); _local3 = Utilities.trim(_local2.ok); if (_local3 == 1){ dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_SUCCESS)); } else { if (_local3 == 0){ dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_REJECTED)); } else { if (_local3 == 2){ dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_WRONGVERSION)); } else { dispatchEvent(new ServerResponseEvent(SCORE_RESPONSE, RETURNCODE_INTERNALERROR)); }; }; }; } public static function loadHighScorePage():void{ Utilities.goToUrl(((URL_VIEWSCORES + "?id=") + gameId)); } public static function loadUpdatePage(){ Utilities.goToUrl(((URL_VIEWSCORES + "?id=") + gameId)); } } }//package CMG_AS3
Section 9
//ServerResponseEvent (CMG_AS3.ServerResponseEvent) package CMG_AS3 { import flash.events.*; public class ServerResponseEvent extends Event { public var returnCode:uint; public function ServerResponseEvent(_arg1:String, _arg2:uint){ super(_arg1, false, false); returnCode = _arg2; } } }//package CMG_AS3
Section 10
//Utilities (CMG_AS3.Utilities) package CMG_AS3 { import flash.net.*; import flash.system.*; import flash.external.*; public class Utilities { public static function trim(_arg1:String):String{ var _local2:*; var _local3:*; _local2 = 0; while (_arg1.charCodeAt(_local2) < 33) { _local2++; }; _local3 = (_arg1.length - 1); while (_arg1.charCodeAt(_local3) < 33) { _local3--; }; return (_arg1.substring(_local2, (_local3 + 1))); } public static function goToUrl(_arg1:String):void{ var success:Boolean; var url = _arg1; success = false; if (((ExternalInterface.available) && (!((Capabilities.playerType == "External"))))){ try { ExternalInterface.call("window.open", url, "win", ""); success = true; } catch(error:Error) { } catch(error:SecurityError) { }; }; if (success != true){ navigateToURL(new URLRequest(url), "_BLANK"); }; } } }//package CMG_AS3
Section 11
//Back (fl.motion.easing.Back) package fl.motion.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } } }//package fl.motion.easing
Section 12
//CMG_Logo_Animation_1 (game_fla.CMG_Logo_Animation_1) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class CMG_Logo_Animation_1 extends MovieClip { public var CMG_MonkeyBlink:MovieClip; public var CMG_HomePageLink:SimpleButton; public var monkeyBlinkCheckTimer:Timer; public var CMG_LoadingWidget:MovieClip; public function CMG_Logo_Animation_1(){ addFrameScript(0, frame1, 80, frame81, 81, frame82); } public function goToUrl(_arg1:String):void{ var success:Boolean; var url = _arg1; success = false; if (((ExternalInterface.available) && (!((Capabilities.playerType == "External"))))){ try { ExternalInterface.call("window.open", url, "win", ""); success = true; } catch(error:Error) { } catch(error:SecurityError) { }; }; if (success != true){ navigateToURL(new URLRequest(url), "_BLANK"); }; } function frame81(){ stop(); monkeyBlinkCheckTimer.addEventListener(TimerEvent.TIMER, onMonkeyBlinkCheckTimer); monkeyBlinkCheckTimer.start(); } function frame82(){ monkeyBlinkCheckTimer.stop(); MovieClip(parent).gotoAndStop("menu"); } public function onMouseUpHandler_CMGHomePageBtn(_arg1:MouseEvent):void{ goToUrl("http://www.crazymonkeygames.com"); } function frame1(){ MovieClip(parent).stop(); CMG_HomePageLink.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler_CMGHomePageBtn); addEventListener(Event.ENTER_FRAME, onEnterFrameHandler_CMGLoader); monkeyBlinkCheckTimer = new Timer(800); } public function onEnterFrameHandler_CMGLoader(_arg1:Event):void{ var _local2:Number; var _local3:Number; _local2 = CMG_HomePageLink.stage.loaderInfo.bytesLoaded; _local3 = CMG_HomePageLink.stage.loaderInfo.bytesTotal; CMG_LoadingWidget.CMG_LoadingBar.bar.scaleX = (_local2 / _local3); if (_local2 == _local3){ CMG_LoadingWidget.nextFrame(); removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler_CMGLoader); }; } public function onMonkeyBlinkCheckTimer(_arg1:TimerEvent):void{ var _local2:Number; _local2 = Math.random(); if (_local2 < 0.3){ CMG_MonkeyBlink.play(); }; } } }//package game_fla
Section 13
//CMG_monkey_blink_19 (game_fla.CMG_monkey_blink_19) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class CMG_monkey_blink_19 extends MovieClip { public function CMG_monkey_blink_19(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game_fla
Section 14
//control_mc_65 (game_fla.control_mc_65) package game_fla { import flash.display.*; import flash.text.*; public dynamic class control_mc_65 extends MovieClip { public var lives:TextField; public var enemy_num:TextField; public var menuoptions_mc:OptionsMenu; public var menu_btn:SimpleButton; public var score:TextField; public var sendscore_btn:SimpleButton; public var gameover_mc:MovieClip; } }//package game_fla
Section 15
//load_barMC_12 (game_fla.load_barMC_12) package game_fla { import flash.display.*; public dynamic class load_barMC_12 extends MovieClip { public var bar:MovieClip; } }//package game_fla
Section 16
//logo_57 (game_fla.logo_57) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class logo_57 extends MovieClip { public var CMG_HomePageLink:SimpleButton; public function logo_57(){ addFrameScript(0, frame1); } public function goToUrl(_arg1:String):void{ var success:Boolean; var url = _arg1; success = false; if (((ExternalInterface.available) && (!((Capabilities.playerType == "External"))))){ try { ExternalInterface.call("window.open", url, "win", ""); success = true; } catch(error:Error) { } catch(error:SecurityError) { }; }; if (success != true){ navigateToURL(new URLRequest(url), "_BLANK"); }; } public function onMouseUpHandler_CMGHomePageBtn(_arg1:MouseEvent):void{ goToUrl("http://www.crazymonkeygames.com"); } function frame1(){ CMG_HomePageLink.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler_CMGHomePageBtn); } } }//package game_fla
Section 17
//MainTimeline (game_fla.MainTimeline) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import mochi.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class MainTimeline extends MovieClip { public function MainTimeline(){ addFrameScript(0, frame1, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); stage.showDefaultContextMenu = false; MochiBot.track(this, "e9414214"); } } }//package game_fla
Section 18
//menudifficulty_mc_52 (game_fla.menudifficulty_mc_52) package game_fla { import flash.display.*; public dynamic class menudifficulty_mc_52 extends MovieClip { public var back_btn:SimpleButton; public var deasy_btn:SimpleButton; public var dnormal_btn:SimpleButton; public var dhard_btn:SimpleButton; public var slider:MovieClip; } }//package game_fla
Section 19
//menuhighscores_mc_56 (game_fla.menuhighscores_mc_56) package game_fla { import flash.display.*; public dynamic class menuhighscores_mc_56 extends MovieClip { public var back_btn:SimpleButton; public var deasy_btn:SimpleButton; public var dnormal_btn:SimpleButton; public var dhard_btn:SimpleButton; } }//package game_fla
Section 20
//menuinstruction_mc_59 (game_fla.menuinstruction_mc_59) package game_fla { import flash.display.*; public dynamic class menuinstruction_mc_59 extends MovieClip { public var back_btn:SimpleButton; } }//package game_fla
Section 21
//Preloader_2 (game_fla.Preloader_2) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class Preloader_2 extends MovieClip { public var CMG_LoadingBar:MovieClip; public var play_btn:SimpleButton; public function Preloader_2(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ trace(this.currentFrame); stop(); } function frame2(){ play_btn.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler_CMGPlayBtn); } public function onMouseUpHandler_CMGPlayBtn(_arg1:MouseEvent):void{ MovieClip(parent).gotoAndStop(82); } } }//package game_fla
Section 22
//rip1_72 (game_fla.rip1_72) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class rip1_72 extends MovieClip { public function rip1_72(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game_fla
Section 23
//rip2_71 (game_fla.rip2_71) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class rip2_71 extends MovieClip { public function rip2_71(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game_fla
Section 24
//rip3_70 (game_fla.rip3_70) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class rip3_70 extends MovieClip { public function rip3_70(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game_fla
Section 25
//Timeline_20 (game_fla.Timeline_20) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class Timeline_20 extends MovieClip { public function Timeline_20(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game_fla
Section 26
//userinput_mc_61 (game_fla.userinput_mc_61) package game_fla { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; public dynamic class userinput_mc_61 extends MovieClip { public var output_txt:TextField; public var submit_btn:SimpleButton; public var view_btn:SimpleButton; public var name_txt:TextField; public function userinput_mc_61(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game_fla
Section 27
//TweenFilterLite (gs.TweenFilterLite) package gs { import flash.display.*; import flash.filters.*; import flash.utils.*; public class TweenFilterLite extends TweenLite { private var _mc:DisplayObject; private var _clrsa:Array; private var _fType:Class; private var _clrMtxTw:TweenLite; public var _matrix:Array; private var _f:BitmapFilter; private var _endMatrix:Array; public static var version:Number = 5.87; private static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; public static var killTweensOf:Function = TweenLite.killTweensOf; public static var delayedCall:Function = TweenLite.delayedCall; private static var _lumB:Number = 0.072169; private static var _lumG:Number = 0.71516; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _lumR:Number = 0.212671; public function TweenFilterLite(_arg1:DisplayObject, _arg2:Number, _arg3:Object){ _fType = _slot1; super(_arg1, _arg2, _arg3); if (_arg1 == null){ return; }; _mc = _arg1; _clrsa = []; if (this.vars.runBackwards == true){ initTweenVals(); }; if ((((TweenLite.version < 5.87)) || (isNaN(TweenLite.version)))){ trace("ERROR! Please update your TweenLite class. TweenFilterLite requires a more recent version. Download updates at http://www.TweenLite.com."); }; } private function setFilter(_arg1:Class, _arg2:Array, _arg3:BitmapFilter):void{ var _local4:Array; var _local5:int; var _local6:Number; var _local7:String; var _local8:Object; var _local9:Object; var _local10:Object; _fType = _arg1; _local4 = _mc.filters; _local5 = 0; while (_local5 < _local4.length) { if ((_local4[_local5] is _arg1)){ _f = _local4[_local5]; break; }; _local5++; }; if (_f == null){ _local4.push(_arg3); _mc.filters = _local4; _f = _arg3; }; _local5 = 0; while (_local5 < _arg2.length) { _local7 = _arg2[_local5]; if (this.tweens[_local7] != undefined){ _local8 = this.tweens[_local7]; delete this.tweens[_local7]; } else { if (this.extraTweens[_local7] != undefined){ _local8 = this.extraTweens[_local7]; } else { _local8 = null; }; }; if (_local8 != null){ if ((((((((((((((_local7 == "brightness")) || ((_local7 == "colorize")))) || ((_local7 == "amount")))) || ((_local7 == "saturation")))) || ((_local7 == "contrast")))) || ((_local7 == "hue")))) || ((_local7 == "threshold")))){ } else { if ((((((_local7 == "color")) || ((_local7 == "highlightColor")))) || ((_local7 == "shadowColor")))){ _local9 = HEXtoRGB(_f[_local7]); _local10 = HEXtoRGB(this.vars[_local7]); _clrsa.push({p:_local7, e:this.vars.ease, sr:_local9.rb, cr:(_local10.rb - _local9.rb), sg:_local9.gb, cg:(_local10.gb - _local9.gb), sb:_local9.bb, cb:(_local10.bb - _local9.bb)}); } else { if ((((((((_local7 == "quality")) || ((_local7 == "inner")))) || ((_local7 == "knockout")))) || ((_local7 == "hideObject")))){ _f[_local7] = this.vars[_local7]; } else { if (typeof(this.vars[_local7]) == "number"){ _local6 = (this.vars[_local7] - _f[_local7]); } else { _local6 = Number(this.vars[_local7]); }; this.tweens[_local7] = {o:_f, p:_local7, s:_f[_local7], c:_local6, e:this.vars.ease}; }; }; }; }; _local5++; }; } override public function render(_arg1:uint):void{ var _local2:Number; var _local3:Number; var _local4:Object; var _local5:String; var _local6:int; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Array; _local2 = ((_arg1 - this.startTime) / 1000); if (_local2 > this.duration){ _local2 = this.duration; }; _local3 = this.vars.ease(_local2, 0, 1, this.duration); for (_local5 in this.tweens) { _local4 = this.tweens[_local5]; _local4.o[_local5] = (_local4.s + (_local3 * _local4.c)); }; if (_mc.parent != null){ _local6 = 0; while (_local6 < _clrsa.length) { _local4 = _clrsa[_local6]; _local7 = (_local4.sr + (_local3 * _local4.cr)); _local8 = (_local4.sg + (_local3 * _local4.cg)); _local9 = (_local4.sb + (_local3 * _local4.cb)); _f[_local4.p] = (((_local7 << 16) | (_local8 << 8)) | _local9); _local6++; }; if (_endMatrix != null){ ColorMatrixFilter(_f).matrix = _matrix; }; _local10 = _mc.filters.slice(); _local6 = (_local10.length - 1); while (_local6 > -1) { if ((_local10[_local6] is _fType)){ _local10[_local6] = _f; break; }; _local6--; }; _mc.filters = _local10; }; if (this.vars.onUpdate != null){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ super.complete(true); }; } public function HEXtoRGB(_arg1:Number):Object{ return ({rb:(_arg1 >> 16), gb:((_arg1 >> 8) & 0xFF), bb:(_arg1 & 0xFF)}); } override public function initTweenVals():void{ var _local1:String; var _local2:Number; if (_mc != null){ super.initTweenVals(); if (this.vars.type != null){ _clrsa = []; _matrix = _idMatrix.slice(); if ((((this.vars.quality == undefined)) || (isNaN(this.vars.quality)))){ this.vars.quality = 2; }; if (this.vars.runBackwards == true){ for (_local1 in this.tweens) { this.tweens[_local1].flipped = true; }; }; switch (this.vars.type.toLowerCase()){ case "blur": setFilter(BlurFilter, ["blurX", "blurY", "quality"], new BlurFilter(0, 0, this.vars.quality)); break; case "glow": setFilter(GlowFilter, ["alpha", "blurX", "blurY", "color", "quality", "strength", "inner", "knockout"], new GlowFilter(0xFFFFFF, 0, 0, 0, ((this.vars.strength) || (1)), this.vars.quality, this.vars.inner, this.vars.knockout)); break; case "colormatrix": case "color": case "colormatrixfilter": case "colorize": setFilter(ColorMatrixFilter, [], new ColorMatrixFilter(_matrix)); _matrix = ColorMatrixFilter(_f).matrix; if (this.vars.relative == true){ _endMatrix = _matrix.slice(); } else { _endMatrix = _idMatrix.slice(); }; _endMatrix = setBrightness(_endMatrix, this.vars.brightness); _endMatrix = setContrast(_endMatrix, this.vars.contrast); _endMatrix = setHue(_endMatrix, this.vars.hue); _endMatrix = setSaturation(_endMatrix, this.vars.saturation); _endMatrix = setThreshold(_endMatrix, this.vars.threshold); if (!isNaN(this.vars.colorize)){ _endMatrix = colorize(_endMatrix, this.vars.colorize, this.vars.amount); } else { if (!isNaN(this.vars.color)){ _endMatrix = colorize(_endMatrix, this.vars.color, this.vars.amount); }; }; _local2 = (this.delay - ((getTimer() - this.initTime) / 1000)); _clrMtxTw = new TweenLite(_matrix, this.duration, {endArray:_endMatrix, ease:this.vars.ease, delay:_local2, overwrite:false, runBackwards:this.vars.runBackwards}); _clrMtxTw.endTarget = _mc; break; case "shadow": case "dropshadow": setFilter(DropShadowFilter, ["alpha", "angle", "blurX", "blurY", "color", "distance", "quality", "strength", "inner", "knockout", "hideObject"], new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, this.vars.quality, this.vars.inner, this.vars.knockout, this.vars.hideObject)); break; case "bevel": setFilter(BevelFilter, ["angle", "blurX", "blurY", "distance", "highlightAlpha", "highlightColor", "quality", "shadowAlpha", "shadowColor", "strength"], new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, this.vars.quality)); break; }; if (this.vars.runBackwards == true){ flipFilterVals(); }; }; }; } private function flipFilterVals():void{ var _local1:Boolean; var _local2:int; var _local3:Object; var _local4:String; var _local5:Array; _local1 = this.active; for (_local4 in this.tweens) { if (this.tweens[_local4].flipped != true){ _local3 = this.tweens[_local4]; _local3.s = (_local3.s + _local3.c); _local3.c = (_local3.c * -1); _local3.o[_local4] = _local3.s; _local3.flipped = true; }; }; _local2 = 0; while (_local2 < _clrsa.length) { _local3 = _clrsa[_local2]; _local3.sr = (_local3.sr + _local3.cr); _local3.cr = (_local3.cr * -1); _local3.sg = (_local3.sg + _local3.cg); _local3.cg = (_local3.cg * -1); _local3.sb = (_local3.sb + _local3.cb); _local3.cb = (_local3.cb * -1); if (!_local1){ _f[_local3.p] = (((_local3.sr << 16) | (_local3.sg << 8)) | _local3.sb); }; _local2++; }; if (((_local1) && (!((this.duration == 0.001))))){ render(getTimer()); } else { if (((!((_mc.parent == null))) && (!((_fType == null))))){ if (_endMatrix != null){ ColorMatrixFilter(_f).matrix = _matrix; }; _local5 = _mc.filters.slice(); _local2 = (_local5.length - 1); while (_local2 > -1) { if ((_local5[_local2] is _fType)){ _local5[_local2] = _f; break; }; _local2--; }; _mc.filters = _local5; }; }; if (this.vars.onUpdate != null){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; } public static function setContrast(_arg1:Array, _arg2:Number):Array{ var _local3:Array; if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 + 0.01); _local3 = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function applyMatrix(_arg1:Array, _arg2:Array):Array{ var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:int; if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (_arg2); }; _local3 = []; _local4 = 0; _local5 = 0; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 5) { if (_local7 == 4){ _local5 = _arg1[(_local4 + 4)]; } else { _local5 = 0; }; _local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5); _local7++; }; _local4 = (_local4 + 5); _local6++; }; return (_local3); } public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=100):Array{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; if (isNaN(_arg2)){ return (_arg1); }; if (isNaN(_arg3)){ _arg3 = 1; }; _local4 = (((_arg2 >> 16) & 0xFF) / 0xFF); _local5 = (((_arg2 >> 8) & 0xFF) / 0xFF); _local6 = ((_arg2 & 0xFF) / 0xFF); _local7 = (1 - _arg3); _local8 = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local8, _arg1)); } public static function setBrightness(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = ((_arg2 * 100) - 100); return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1)); } public static function setSaturation(_arg1:Array, _arg2:Number):Array{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; if (isNaN(_arg2)){ return (_arg1); }; _local3 = (1 - _arg2); _local4 = (_local3 * _lumR); _local5 = (_local3 * _lumG); _local6 = (_local3 * _lumB); _local7 = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local7, _arg1)); } public static function from(_arg1:DisplayObject, _arg2:Number, _arg3:Object):TweenFilterLite{ _arg3.runBackwards = true; return (new TweenFilterLite(_arg1, _arg2, _arg3)); } public static function setThreshold(_arg1:Array, _arg2:Number):Array{ var _local3:Array; if (isNaN(_arg2)){ return (_arg1); }; _local3 = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function setHue(_arg1:Array, _arg2:Number):Array{ var _local3:Number; var _local4:Number; var _local5:Array; if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 * (Math.PI / 180)); _local3 = Math.cos(_arg2); _local4 = Math.sin(_arg2); _local5 = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; return (applyMatrix(_local5, _arg1)); } public static function to(_arg1:DisplayObject, _arg2:Number, _arg3:Object):TweenFilterLite{ return (new TweenFilterLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 28
//TweenLite (gs.TweenLite) package gs { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.media.*; import flash.utils.*; public class TweenLite { public var delay:Number; protected var _endTarget:Object; private var _sound:SoundTransform; public var target:Object; public var duration:Number; public var startTime:uint; public var extraTweens:Object; protected var _color:ColorTransform; protected var _active:Boolean; protected var _endColor:ColorTransform; public var vars:Object; public var tweens:Object; public var initTime:uint; private static var _sprite:Sprite = new Sprite(); private static var _timer:Timer = new Timer(2000); protected static var _all:Dictionary = new Dictionary(); public static var killDelayedCallsTo:Function = killTweensOf; public static var version:Number = 5.87; private static var _listening:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (((((!((_arg3.overwrite == false))) && (!((_arg1 == null))))) || ((_all[_arg1] == undefined)))){ delete _all[_arg1]; _all[_arg1] = new Dictionary(); }; _all[_arg1][this] = this; this.vars = _arg3; this.duration = _arg2; this.delay = ((_arg3.delay) || (0)); if (_arg2 == 0){ this.duration = 0.001; if (this.delay == 0){ this.vars.runBackwards = true; }; }; this.target = (_endTarget = _arg1); if (!(this.vars.ease is Function)){ this.vars.ease = easeOut; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; if (this.vars.mcColor != null){ this.vars.tint = this.vars.mcColor; }; if (!isNaN(Number(this.vars.autoAlpha))){ this.vars.alpha = Number(this.vars.autoAlpha); }; this.tweens = {}; this.extraTweens = {}; this.initTime = getTimer(); if (this.vars.runBackwards == true){ initTweenVals(); }; _active = false; if ((((_arg2 == 0)) && ((this.delay == 0)))){ complete(true); } else { if (!_listening){ _sprite.addEventListener(Event.ENTER_FRAME, executeAll); _timer.addEventListener("timer", killGarbage); _timer.start(); _listening = true; }; }; } public function set endTarget(_arg1:Object):void{ if ((((this.duration == 0.001)) && ((this.delay <= 0)))){ removeTween(this); } else { delete _all[_endTarget][this]; _endTarget = _arg1; if (_all[_arg1] == undefined){ _all[_arg1] = new Dictionary(); }; _all[_arg1][this] = this; }; } public function get colorProxy():Number{ return (0); } public function get endTarget():Object{ return (_endTarget); } public function get active():Boolean{ if (_active){ return (true); }; if (((getTimer() - this.initTime) / 1000) > this.delay){ _active = true; this.startTime = (this.initTime + (this.delay * 1000)); if (this.vars.runBackwards != true){ initTweenVals(); } else { if (typeof(this.vars.autoAlpha) == "number"){ this.target.visible = true; }; }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; return (true); //unresolved jump }; return (false); } public function initTweenVals():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Array; var _local5:int; var _local6:TweenLite; var _local7:TweenLite; var _local8:Object; _local1 = (this.delay - ((getTimer() - this.initTime) / 1000)); if ((this.target is Array)){ _local4 = ((this.vars.endArray) || ([])); _local5 = 0; while (_local5 < _local4.length) { if (((!((this.target[_local5] == _local4[_local5]))) && (!((this.target[_local5] == undefined))))){ this.tweens[_local5.toString()] = {o:this.target, s:this.target[_local5], c:(_local4[_local5] - this.target[_local5])}; }; _local5++; }; } else { for (_local2 in this.vars) { if ((((((((((((((((((((((((((((_local2 == "delay")) || ((_local2 == "ease")))) || ((_local2 == "overwrite")))) || ((_local2 == "onComplete")))) || ((_local2 == "onCompleteParams")))) || ((_local2 == "runBackwards")))) || ((_local2 == "onUpdate")))) || ((_local2 == "onUpdateParams")))) || ((_local2 == "autoAlpha")))) || ((_local2 == "onStart")))) || ((_local2 == "onStartParams")))) || ((_local2 == "easeParams")))) || ((_local2 == "mcColor")))) || ((_local2 == "type")))){ } else { if ((((_local2 == "tint")) && ((this.target is DisplayObject)))){ _color = this.target.transform.colorTransform; _endColor = new ColorTransform(); if (this.vars.alpha != undefined){ _endColor.alphaMultiplier = this.vars.alpha; delete this.vars.alpha; delete this.tweens.alpha; } else { _endColor.alphaMultiplier = this.target.alpha; }; if (((!((this.vars[_local2] == null))) && (!((this.vars[_local2] == ""))))){ _endColor.color = this.vars[_local2]; }; _local6 = new TweenLite(this, this.duration, {colorProxy:1, delay:_local1, overwrite:false, ease:this.vars.ease, runBackwards:this.vars.runBackwards}); _local6.endTarget = this.target; } else { if ((((_local2 == "volume")) && ((this.target is MovieClip)))){ _sound = this.target.soundTransform; _local7 = new TweenLite(this, this.duration, {volumeProxy:this.vars[_local2], ease:easeOut, delay:_local1, overwrite:false, runBackwards:this.vars.runBackwards}); _local7.endTarget = this.target; } else { if (this.target.hasOwnProperty(_local2)){ if (typeof(this.vars[_local2]) == "number"){ _local3 = (this.vars[_local2] - this.target[_local2]); } else { _local3 = Number(this.vars[_local2]); }; this.tweens[_local2] = {o:this.target, s:this.target[_local2], c:_local3}; } else { this.extraTweens[_local2] = {o:this.target, s:0, c:0, v:this.vars[_local2]}; }; }; }; }; }; }; if (this.vars.runBackwards == true){ for (_local2 in this.tweens) { _local8 = this.tweens[_local2]; this.tweens[_local2].s = (_local8.s + _local8.c); _local8.c = (_local8.c * -1); _local8.o[_local2] = _local8.s; }; if (this.vars.onUpdate != null){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; }; if (typeof(this.vars.autoAlpha) == "number"){ this.target.visible = !((((this.vars.runBackwards == true)) && ((this.target.alpha == 0)))); }; } public function render(_arg1:uint):void{ var _local2:Number; var _local3:Number; var _local4:Object; var _local5:String; _local2 = ((_arg1 - this.startTime) / 1000); if (_local2 > this.duration){ _local2 = this.duration; }; _local3 = this.vars.ease(_local2, 0, 1, this.duration); for (_local5 in this.tweens) { _local4 = this.tweens[_local5]; _local4.o[_local5] = (_local4.s + (_local3 * _local4.c)); }; if (this.vars.onUpdate != null){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function set colorProxy(_arg1:Number):void{ var _local2:Number; _local2 = (1 - _arg1); this.target.transform.colorTransform = new ColorTransform(((_color.redMultiplier * _local2) + (_endColor.redMultiplier * _arg1)), ((_color.greenMultiplier * _local2) + (_endColor.greenMultiplier * _arg1)), ((_color.blueMultiplier * _local2) + (_endColor.blueMultiplier * _arg1)), ((_color.alphaMultiplier * _local2) + (_endColor.alphaMultiplier * _arg1)), ((_color.redOffset * _local2) + (_endColor.redOffset * _arg1)), ((_color.greenOffset * _local2) + (_endColor.greenOffset * _arg1)), ((_color.blueOffset * _local2) + (_endColor.blueOffset * _arg1)), ((_color.alphaOffset * _local2) + (_endColor.alphaOffset * _arg1))); } public function get volumeProxy():Number{ return (_sound.volume); } public function set volumeProxy(_arg1:Number):void{ _sound.volume = _arg1; this.target.soundTransform = _sound; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function complete(_arg1:Boolean=false):void{ if (!_arg1){ this.startTime = 0; render((this.duration * 1000)); return; }; if ((((typeof(this.vars.autoAlpha) == "number")) && ((this.target.alpha == 0)))){ this.target.visible = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; removeTween(this); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:false})); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function removeTween(_arg1:TweenLite=null):void{ if (((!((_arg1 == null))) && (!((_all[_arg1.endTarget] == undefined))))){ delete _all[_arg1.endTarget][_arg1]; }; } protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function killGarbage(_arg1:TimerEvent):void{ var _local2:Object; var _local3:uint; var _local4:Boolean; var _local5:Object; var _local6:Object; var _local7:Object; _local2 = _all; _local3 = 0; for (_local5 in _local2) { _local4 = false; for (_local6 in _local2[_local5]) { _local4 = true; break; }; if (!_local4){ delete _local2[_local5]; } else { _local3++; }; }; if (_local3 == 0){ _sprite.removeEventListener(Event.ENTER_FRAME, executeAll); _timer.removeEventListener("timer", killGarbage); _timer.stop(); _listening = false; }; } public static function executeAll(_arg1:Event):void{ var _local2:Object; var _local3:uint; var _local4:Object; var _local5:Object; _local2 = _all; _local3 = getTimer(); for (_local4 in _local2) { for (_local5 in _local2[_local4]) { if (((!((_local2[_local4][_local5] == undefined))) && (_local2[_local4][_local5].active))){ _local2[_local4][_local5].render(_local3); if (_local2[_local4] == undefined){ break; }; }; }; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Object; var _local4:*; if (((!((_arg1 == null))) && (!((_all[_arg1] == undefined))))){ if (_arg2){ _local3 = _all[_arg1]; for (_local4 in _local3) { _local3[_local4].complete(false); }; }; delete _all[_arg1]; }; } } }//package gs
Section 29
//MochiBot (mochi.MochiBot) package mochi { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package mochi
Section 30
//MochiScores (mochi.MochiScores) package mochi { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var options = _arg1; if (options != null){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (_slot1.boardID != null){ options.boardID = _slot1.boardID; }; }; MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local2:Object; var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; _local2 = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (_arg1 != null){ if (_arg1.error != null){ if (_arg1.error == true){ if (onErrorHandler != null){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ _slot1.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi
Section 31
//MochiServices (mochi.MochiServices) package mochi { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _sendChannel:LocalConnection; private static var _rcvChannelName:String; private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; private static var _timer:Timer; private static var _sendChannelName:String; private static var _startTime:Number; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__mochiservices"; private static var _rcvChannel:LocalConnection; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } public static function get id():String{ return (_id); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, _slot1.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function getVersion():String{ return ("1.32"); } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _listenChannel.close(); _rcvChannel.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; Security.allowDomain("*"); Security.allowInsecureDomain("*"); if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; return (_local2); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, _slot1.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, _slot1.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()}); _rcvChannel.addEventListener(StatusEvent.STATUS, _slot1.onStatus); _clip.onReceive = function (_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = this.client._callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ _slot1.onError("IOError"); }; _rcvChannel.connect(_rcvChannelName); trace("connected!"); _connecting = false; _connected = true; _listenChannel.close(); while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ _slot1.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); _rcvChannelName = _arg1; initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var clipname:String; var f:Function; var req:URLRequest; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!_slot1.isNetworkAvailable()){ return (null); }; _slot1.allowDomains(_gatewayURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); _timer = new Timer(1000, 0); _startTime = getTimer(); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); f = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); _slot1.disconnect(); _slot1.onError("IOError"); }; _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_gatewayURL); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _rcvChannel = new LocalConnection(); _rcvChannel.allowDomain("*", "localhost"); _rcvChannel.allowInsecureDomain("*", "localhost"); _rcvChannel.client = _clip; _clip._nextcallbackID = 0; _clip._callbacks = {}; listen(); return (_clip); } public static function bringToTop(_arg1:Event):void{ var e = _arg1; if (_slot1.clip != null){ if (_slot1.childClip != null){ try { if (_slot1.clip.numChildren > 1){ _slot1.clip.setChildIndex(_slot1.childClip, (_slot1.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, _slot1.bringToTop); }; }; }; } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ _slot1.onError = onError; } else { if (_slot1.onError == null){ _slot1.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var mc:MovieClip; var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function connectWait(_arg1:TimerEvent):void{ if ((getTimer() - _startTime) > 10000){ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); _slot1.disconnect(); _slot1.onError("IOError"); }; _timer.stop(); }; } } }//package mochi
Section 32
//AbstractCollection (org.cove.ape.AbstractCollection) package org.cove.ape { import flash.display.*; import flash.utils.*; public class AbstractCollection { private var _sprite:Sprite; private var _isParented:Boolean; private var _particles:Array; private var _constraints:Array; public function AbstractCollection(){ if (getQualifiedClassName(this) == "org.cove.ape::AbstractCollection"){ throw (new ArgumentError("AbstractCollection can't be instantiated directly")); }; _isParented = false; _particles = new Array(); _constraints = new Array(); } public function getAll():Array{ return (particles.concat(constraints)); } function checkCollisionsVsCollection(_arg1:AbstractCollection):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:AbstractParticle; var _local6:int; var _local7:int; var _local8:int; var _local9:AbstractParticle; var _local10:SpringConstraint; var _local11:SpringConstraint; var _local12:int; _local2 = _particles.length; _local3 = 0; while (_local3 < _local2) { _local5 = _particles[_local3]; if (!_local5.collidable){ } else { _local6 = _arg1.particles.length; _local7 = 0; while (_local7 < _local6) { _local9 = _arg1.particles[_local7]; if (_local9.collidable){ CollisionDetector.test(_local5, _local9); }; _local7++; }; _local8 = _arg1.constraints.length; _local7 = 0; while (_local7 < _local8) { _local10 = _arg1.constraints[_local7]; if (((_local10.collidable) && (!(_local10.isConnectedTo(_local5))))){ _local10.scp.updatePosition(); CollisionDetector.test(_local5, _local10.scp); }; _local7++; }; }; _local3++; }; _local4 = _constraints.length; _local3 = 0; while (_local3 < _local4) { _local11 = _constraints[_local3]; if (!_local11.collidable){ } else { _local6 = _arg1.particles.length; _local12 = 0; while (_local12 < _local6) { _local9 = _arg1.particles[_local12]; if (((_local9.collidable) && (!(_local11.isConnectedTo(_local9))))){ _local11.scp.updatePosition(); CollisionDetector.test(_local9, _local11.scp); }; _local12++; }; }; _local3++; }; } public function get sprite():Sprite{ if (_sprite != null){ return (_sprite); }; if (APEngine.container == null){ throw (new Error("The container property of the APEngine class has not been set")); }; _sprite = new Sprite(); APEngine.container.addChild(_sprite); return (_sprite); } function checkInternalCollisions():void{ var _local1:int; var _local2:int; var _local3:AbstractParticle; var _local4:int; var _local5:int; var _local6:int; var _local7:AbstractParticle; var _local8:SpringConstraint; _local1 = _particles.length; _local2 = 0; while (_local2 < _local1) { _local3 = _particles[_local2]; if (!_local3.collidable){ } else { _local4 = (_local2 + 1); while (_local4 < _local1) { _local7 = _particles[_local4]; if (_local7.collidable){ CollisionDetector.test(_local3, _local7); }; _local4++; }; _local5 = _constraints.length; _local6 = 0; while (_local6 < _local5) { _local8 = _constraints[_local6]; if (((_local8.collidable) && (!(_local8.isConnectedTo(_local3))))){ _local8.scp.updatePosition(); CollisionDetector.test(_local3, _local8.scp); }; _local6++; }; }; _local2++; }; } public function addParticle(_arg1:AbstractParticle):void{ particles.push(_arg1); if (isParented){ _arg1.init(); }; } public function removeConstraint(_arg1:AbstractConstraint):void{ var _local2:int; _local2 = constraints.indexOf(_arg1); if (_local2 == -1){ return; }; constraints.splice(_local2, 1); _arg1.cleanup(); } function get isParented():Boolean{ return (_isParented); } public function init():void{ var _local1:int; _local1 = 0; while (_local1 < particles.length) { particles[_local1].init(); _local1++; }; _local1 = 0; while (_local1 < constraints.length) { constraints[_local1].init(); _local1++; }; } function satisfyConstraints():void{ var _local1:int; var _local2:int; var _local3:AbstractConstraint; _local1 = _constraints.length; _local2 = 0; while (_local2 < _local1) { _local3 = _constraints[_local2]; _local3.resolve(); _local2++; }; } public function paint():void{ var _local1:AbstractParticle; var _local2:int; var _local3:int; var _local4:SpringConstraint; _local2 = _particles.length; _local3 = 0; while (_local3 < _local2) { _local1 = _particles[_local3]; if (((!(_local1.fixed)) || (_local1.alwaysRepaint))){ _local1.paint(); }; _local3++; }; _local2 = _constraints.length; _local3 = 0; while (_local3 < _local2) { _local4 = _constraints[_local3]; if (((!(_local4.fixed)) || (_local4.alwaysRepaint))){ _local4.paint(); }; _local3++; }; } public function addConstraint(_arg1:AbstractConstraint):void{ constraints.push(_arg1); if (isParented){ _arg1.init(); }; } function set isParented(_arg1:Boolean):void{ _isParented = _arg1; } public function removeParticle(_arg1:AbstractParticle):void{ var _local2:int; _local2 = particles.indexOf(_arg1); if (_local2 == -1){ return; }; particles.splice(_local2, 1); _arg1.cleanup(); } public function cleanup():void{ var _local1:int; _local1 = 0; while (_local1 < particles.length) { particles[_local1].cleanup(); _local1++; }; _local1 = 0; while (_local1 < constraints.length) { constraints[_local1].cleanup(); _local1++; }; } public function get particles():Array{ return (_particles); } function integrate(_arg1:Number):void{ var _local2:int; var _local3:int; var _local4:AbstractParticle; _local2 = _particles.length; _local3 = 0; while (_local3 < _local2) { _local4 = _particles[_local3]; _local4.update(_arg1); _local3++; }; } public function get constraints():Array{ return (_constraints); } } }//package org.cove.ape
Section 33
//AbstractConstraint (org.cove.ape.AbstractConstraint) package org.cove.ape { import flash.utils.*; public class AbstractConstraint extends AbstractItem { private var _stiffness:Number; public function AbstractConstraint(_arg1:Number){ if (getQualifiedClassName(this) == "org.cove.ape::AbstractConstraint"){ throw (new ArgumentError("AbstractConstraint can't be instantiated directly")); }; this.stiffness = _arg1; setStyle(); } public function get stiffness():Number{ return (_stiffness); } public function set stiffness(_arg1:Number):void{ _stiffness = _arg1; } function resolve():void{ } } }//package org.cove.ape
Section 34
//AbstractItem (org.cove.ape.AbstractItem) package org.cove.ape { import flash.display.*; public class AbstractItem { var lineAlpha:Number; var lineColor:uint; var displayObjectOffset:Vector; var lineThickness:Number; var displayObject:DisplayObject; var fillAlpha:Number; private var _sprite:Sprite; var fillColor:uint; private var _visible:Boolean; private var _alwaysRepaint:Boolean; var displayObjectRotation:Number; public function AbstractItem(){ _visible = true; _alwaysRepaint = false; } public function setLine(_arg1:Number=0, _arg2:uint=0, _arg3:Number=1):void{ lineThickness = _arg1; lineColor = _arg2; lineAlpha = _arg3; } public function set visible(_arg1:Boolean):void{ _visible = _arg1; sprite.visible = _arg1; } public function setFill(_arg1:uint=0xFFFFFF, _arg2:Number=1):void{ fillColor = _arg1; fillAlpha = _arg2; } public function init():void{ } public function get sprite():Sprite{ if (_sprite != null){ return (_sprite); }; if (APEngine.container == null){ throw (new Error("The container property of the APEngine class has not been set")); }; _sprite = new Sprite(); APEngine.container.addChild(_sprite); return (_sprite); } public function paint():void{ } public function cleanup():void{ var _local1:int; sprite.graphics.clear(); _local1 = 0; while (_local1 < sprite.numChildren) { sprite.removeChildAt(_local1); _local1++; }; } public function setStyle(_arg1:Number=0, _arg2:uint=0, _arg3:Number=1, _arg4:uint=0xFFFFFF, _arg5:Number=1):void{ setLine(_arg1, _arg2, _arg3); setFill(_arg4, _arg5); } public function get visible():Boolean{ return (_visible); } final public function set alwaysRepaint(_arg1:Boolean):void{ _alwaysRepaint = _arg1; } final public function get alwaysRepaint():Boolean{ return (_alwaysRepaint); } } }//package org.cove.ape
Section 35
//AbstractParticle (org.cove.ape.AbstractParticle) package org.cove.ape { import flash.display.*; import flash.utils.*; public class AbstractParticle extends AbstractItem { private var _collidable:Boolean; private var _multisample:int; private var collision:Collision; var prev:Vector; private var _kfr:Number; var curr:Vector; private var _invMass:Number; var interval:Interval; private var _mass:Number; private var temp:Vector; private var _friction:Number; private var forces:Vector; var samp:Vector; private var _center:Vector; private var _fixed:Boolean; public function AbstractParticle(_arg1:Number, _arg2:Number, _arg3:Boolean, _arg4:Number, _arg5:Number, _arg6:Number){ if (getQualifiedClassName(this) == "org.cove.ape::AbstractParticle"){ throw (new ArgumentError("AbstractParticle can't be instantiated directly")); }; interval = new Interval(0, 0); curr = new Vector(_arg1, _arg2); prev = new Vector(_arg1, _arg2); samp = new Vector(); temp = new Vector(); fixed = _arg3; forces = new Vector(); collision = new Collision(new Vector(), new Vector()); collidable = true; this.mass = _arg4; this.elasticity = _arg5; this.friction = _arg6; setStyle(); _center = new Vector(); _multisample = 0; } public function set friction(_arg1:Number):void{ if ((((_arg1 < 0)) || ((_arg1 > 1)))){ throw (new ArgumentError("Legal friction must be >= 0 and <=1")); }; _friction = _arg1; } public function get px():Number{ return (curr.x); } public function get py():Number{ return (curr.y); } public function set py(_arg1:Number):void{ curr.y = _arg1; prev.y = _arg1; } function getComponents(_arg1:Vector):Collision{ var _local2:Vector; var _local3:Number; _local2 = velocity; _local3 = _arg1.dot(_local2); collision.vn = _arg1.mult(_local3); collision.vt = _local2.minus(collision.vn); return (collision); } public function set mass(_arg1:Number):void{ if (_arg1 <= 0){ throw (new ArgumentError("mass may not be set <= 0")); }; _mass = _arg1; _invMass = (1 / _mass); } public function get fixed():Boolean{ return (_fixed); } public function set px(_arg1:Number):void{ curr.x = _arg1; prev.x = _arg1; } function initDisplay():void{ displayObject.x = displayObjectOffset.x; displayObject.y = displayObjectOffset.y; displayObject.rotation = displayObjectRotation; sprite.addChild(displayObject); } function get invMass():Number{ return ((fixed) ? 0 : _invMass); } public function setDisplay(_arg1:DisplayObject, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):void{ displayObject = _arg1; displayObjectRotation = _arg4; displayObjectOffset = new Vector(_arg2, _arg3); } public function get position():Vector{ return (new Vector(curr.x, curr.y)); } public function get multisample():int{ return (_multisample); } function resolveCollision(_arg1:Vector, _arg2:Vector, _arg3:Vector, _arg4:Number, _arg5:int, _arg6:AbstractParticle):void{ curr.plusEquals(_arg1); velocity = _arg2; } public function set fixed(_arg1:Boolean):void{ _fixed = _arg1; } public function addMasslessForce(_arg1:Vector):void{ forces.plusEquals(_arg1); } public function set velocity(_arg1:Vector):void{ prev = curr.minus(_arg1); } public function set multisample(_arg1:int):void{ _multisample = _arg1; } public function get elasticity():Number{ return (_kfr); } public function set position(_arg1:Vector):void{ curr.copy(_arg1); prev.copy(_arg1); } public function get center():Vector{ _center.setTo(px, py); return (_center); } public function update(_arg1:Number):void{ var _local2:Vector; if (fixed){ return; }; addForce(APEngine.force); addMasslessForce(APEngine.masslessForce); temp.copy(curr); _local2 = velocity.plus(forces.multEquals(_arg1)); curr.plusEquals(_local2.multEquals(APEngine.damping)); prev.copy(temp); forces.setTo(0, 0); } public function set collidable(_arg1:Boolean):void{ _collidable = _arg1; } public function get velocity():Vector{ return (curr.minus(prev)); } public function get collidable():Boolean{ return (_collidable); } public function addForce(_arg1:Vector):void{ forces.plusEquals(_arg1.mult(invMass)); } public function set elasticity(_arg1:Number):void{ _kfr = _arg1; } public function get friction():Number{ return (_friction); } public function get mass():Number{ return (_mass); } } }//package org.cove.ape
Section 36
//APEngine (org.cove.ape.APEngine) package org.cove.ape { import flash.display.*; public final class APEngine { private static var _container:DisplayObjectContainer; private static var _damping:Number; private static var _constraintCollisionCycles:int; private static var groups:Array; static var masslessForce:Vector; private static var _constraintCycles:int; static var force:Vector; private static var timeStep:Number; private static var numGroups:int; public static function get container():DisplayObjectContainer{ return (_container); } public static function get constraintCollisionCycles():int{ return (_constraintCollisionCycles); } public static function set damping(_arg1:Number):void{ _damping = _arg1; } public static function step():void{ var _local1:int; var _local2:int; integrate(); _local1 = 0; while (_local1 < _constraintCycles) { satisfyConstraints(); _local1++; }; _local2 = 0; while (_local2 < _constraintCollisionCycles) { satisfyConstraints(); checkCollisions(); _local2++; }; } public static function init(_arg1:Number=0.25):void{ timeStep = (_arg1 * _arg1); numGroups = 0; groups = new Array(); force = new Vector(0, 0); masslessForce = new Vector(0, 0); damping = 1; _constraintCycles = 0; _constraintCollisionCycles = 1; } public static function get constraintCycles():int{ return (_constraintCycles); } public static function set constraintCollisionCycles(_arg1:int):void{ _constraintCollisionCycles = _arg1; } public static function set constraintCycles(_arg1:int):void{ _constraintCycles = _arg1; } public static function addForce(_arg1:Vector):void{ force.plusEquals(_arg1); } public static function get damping():Number{ return (_damping); } public static function set container(_arg1:DisplayObjectContainer):void{ _container = _arg1; } public static function addGroup(_arg1:Group):void{ groups.push(_arg1); _arg1.isParented = true; numGroups++; _arg1.init(); } public static function removeGroup(_arg1:Group):void{ var _local2:int; _local2 = groups.indexOf(_arg1); if (_local2 == -1){ return; }; groups.splice(_local2, 1); _arg1.isParented = false; numGroups--; _arg1.cleanup(); } public static function paint():void{ var _local1:int; var _local2:Group; _local1 = 0; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.paint(); _local1++; }; } private static function checkCollisions():void{ var _local1:int; var _local2:Group; _local1 = 0; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.checkCollisions(); _local1++; }; } private static function integrate():void{ var _local1:int; var _local2:Group; _local1 = 0; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.integrate(timeStep); _local1++; }; } private static function satisfyConstraints():void{ var _local1:int; var _local2:Group; _local1 = 0; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.satisfyConstraints(); _local1++; }; } public static function addMasslessForce(_arg1:Vector):void{ masslessForce.plusEquals(_arg1); } } }//package org.cove.ape
Section 37
//CircleParticle (org.cove.ape.CircleParticle) package org.cove.ape { public class CircleParticle extends AbstractParticle { private var _radius:Number; public function CircleParticle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Number=1, _arg6:Number=0.3, _arg7:Number=0){ super(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7); _radius = _arg3; } function getIntervalX():Interval{ interval.min = (curr.x - _radius); interval.max = (curr.x + _radius); return (interval); } function getIntervalY():Interval{ interval.min = (curr.y - _radius); interval.max = (curr.y + _radius); return (interval); } override public function init():void{ cleanup(); if (displayObject != null){ initDisplay(); } else { sprite.graphics.clear(); sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha); sprite.graphics.beginFill(fillColor, fillAlpha); sprite.graphics.drawCircle(0, 0, radius); sprite.graphics.endFill(); }; paint(); } public function set radius(_arg1:Number):void{ _radius = _arg1; } public function get radius():Number{ return (_radius); } function getProjection(_arg1:Vector):Interval{ var _local2:Number; _local2 = samp.dot(_arg1); interval.min = (_local2 - _radius); interval.max = (_local2 + _radius); return (interval); } override public function paint():void{ sprite.x = curr.x; sprite.y = curr.y; } } }//package org.cove.ape
Section 38
//Collision (org.cove.ape.Collision) package org.cove.ape { import org.cove.ape.*; final class Collision { var vn:Vector; var vt:Vector; function Collision(_arg1:Vector, _arg2:Vector){ this.vn = _arg1; this.vt = _arg2; } } }//package org.cove.ape
Section 39
//CollisionDetector (org.cove.ape.CollisionDetector) package org.cove.ape { import org.cove.ape.*; final class CollisionDetector { private static function testOBBvsCircle(_arg1:RectangleParticle, _arg2:CircleParticle):Boolean{ var _local3:Vector; var _local4:Number; var _local5:Array; var _local6:int; var _local7:Number; var _local8:Vector; var _local9:Number; var _local10:Vector; var _local11:Number; _local4 = Number.POSITIVE_INFINITY; _local5 = new Array(2); _local6 = 0; while (_local6 < 2) { _local8 = _arg1.axes[_local6]; _local9 = testIntervals(_arg1.getProjection(_local8), _arg2.getProjection(_local8)); if (_local9 == 0){ return (false); }; if (Math.abs(_local9) < Math.abs(_local4)){ _local3 = _local8; _local4 = _local9; }; _local5[_local6] = _local9; _local6++; }; _local7 = _arg2.radius; if ((((Math.abs(_local5[0]) < _local7)) && ((Math.abs(_local5[1]) < _local7)))){ _local10 = closestVertexOnOBB(_arg2.samp, _arg1); _local3 = _local10.minus(_arg2.samp); _local11 = _local3.magnitude(); _local4 = (_local7 - _local11); if (_local4 > 0){ _local3.divEquals(_local11); } else { return (false); }; }; CollisionResolver.resolveParticleParticle(_arg1, _arg2, _local3, _local4); return (true); } static function test(_arg1:AbstractParticle, _arg2:AbstractParticle):void{ if (((_arg1.fixed) && (_arg2.fixed))){ return; }; if ((((_arg1.multisample == 0)) && ((_arg2.multisample == 0)))){ normVsNorm(_arg1, _arg2); } else { if ((((_arg1.multisample > 0)) && ((_arg2.multisample == 0)))){ sampVsNorm(_arg1, _arg2); } else { if ((((_arg2.multisample > 0)) && ((_arg1.multisample == 0)))){ sampVsNorm(_arg2, _arg1); } else { if (_arg1.multisample == _arg2.multisample){ sampVsSamp(_arg1, _arg2); } else { normVsNorm(_arg1, _arg2); }; }; }; }; } private static function testIntervals(_arg1:Interval, _arg2:Interval):Number{ var _local3:Number; var _local4:Number; if (_arg1.max < _arg2.min){ return (0); }; if (_arg2.max < _arg1.min){ return (0); }; _local3 = (_arg2.max - _arg1.min); _local4 = (_arg2.min - _arg1.max); return (((Math.abs(_local3))<Math.abs(_local4)) ? _local3 : _local4); } private static function normVsNorm(_arg1:AbstractParticle, _arg2:AbstractParticle):void{ _arg1.samp.copy(_arg1.curr); _arg2.samp.copy(_arg2.curr); testTypes(_arg1, _arg2); } private static function testCirclevsCircle(_arg1:CircleParticle, _arg2:CircleParticle):Boolean{ var _local3:Number; var _local4:Number; var _local5:Vector; var _local6:Number; var _local7:Number; _local3 = testIntervals(_arg1.getIntervalX(), _arg2.getIntervalX()); if (_local3 == 0){ return (false); }; _local4 = testIntervals(_arg1.getIntervalY(), _arg2.getIntervalY()); if (_local4 == 0){ return (false); }; _local5 = _arg1.samp.minus(_arg2.samp); _local6 = _local5.magnitude(); _local7 = ((_arg1.radius + _arg2.radius) - _local6); if (_local7 > 0){ _local5.divEquals(_local6); CollisionResolver.resolveParticleParticle(_arg1, _arg2, _local5, _local7); return (true); }; return (false); } private static function testTypes(_arg1:AbstractParticle, _arg2:AbstractParticle):Boolean{ if ((((_arg1 is RectangleParticle)) && ((_arg2 is RectangleParticle)))){ return (testOBBvsOBB((_arg1 as RectangleParticle), (_arg2 as RectangleParticle))); }; if ((((_arg1 is CircleParticle)) && ((_arg2 is CircleParticle)))){ return (testCirclevsCircle((_arg1 as CircleParticle), (_arg2 as CircleParticle))); }; if ((((_arg1 is RectangleParticle)) && ((_arg2 is CircleParticle)))){ return (testOBBvsCircle((_arg1 as RectangleParticle), (_arg2 as CircleParticle))); }; if ((((_arg1 is CircleParticle)) && ((_arg2 is RectangleParticle)))){ return (testOBBvsCircle((_arg2 as RectangleParticle), (_arg1 as CircleParticle))); }; return (false); } private static function sampVsNorm(_arg1:AbstractParticle, _arg2:AbstractParticle):void{ var _local3:Number; var _local4:Number; var _local5:int; _local3 = (1 / (_arg1.multisample + 1)); _local4 = _local3; _arg2.samp.copy(_arg2.curr); _local5 = 0; while (_local5 <= _arg1.multisample) { _arg1.samp.setTo((_arg1.prev.x + (_local4 * (_arg1.curr.x - _arg1.prev.x))), (_arg1.prev.y + (_local4 * (_arg1.curr.y - _arg1.prev.y)))); if (testTypes(_arg1, _arg2)){ return; }; _local4 = (_local4 + _local3); _local5++; }; } private static function closestVertexOnOBB(_arg1:Vector, _arg2:RectangleParticle):Vector{ var _local3:Vector; var _local4:Vector; var _local5:int; var _local6:Number; _local3 = _arg1.minus(_arg2.samp); _local4 = new Vector(_arg2.samp.x, _arg2.samp.y); _local5 = 0; while (_local5 < 2) { _local6 = _local3.dot(_arg2.axes[_local5]); if (_local6 >= 0){ _local6 = _arg2.extents[_local5]; } else { if (_local6 < 0){ _local6 = -(_arg2.extents[_local5]); }; }; _local4.plusEquals(_arg2.axes[_local5].mult(_local6)); _local5++; }; return (_local4); } private static function testOBBvsOBB(_arg1:RectangleParticle, _arg2:RectangleParticle):Boolean{ var _local3:Vector; var _local4:Number; var _local5:int; var _local6:Vector; var _local7:Number; var _local8:Vector; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Boolean; _local4 = Number.POSITIVE_INFINITY; _local5 = 0; while (_local5 < 2) { _local6 = _arg1.axes[_local5]; _local7 = testIntervals(_arg1.getProjection(_local6), _arg2.getProjection(_local6)); if (_local7 == 0){ return (false); }; _local8 = _arg2.axes[_local5]; _local9 = testIntervals(_arg1.getProjection(_local8), _arg2.getProjection(_local8)); if (_local9 == 0){ return (false); }; _local10 = Math.abs(_local7); _local11 = Math.abs(_local9); if ((((_local10 < Math.abs(_local4))) || ((_local11 < Math.abs(_local4))))){ _local12 = (_local10 < _local11); _local3 = (_local12) ? _local6 : _local8; _local4 = (_local12) ? _local7 : _local9; }; _local5++; }; CollisionResolver.resolveParticleParticle(_arg1, _arg2, _local3, _local4); return (true); } private static function sampVsSamp(_arg1:AbstractParticle, _arg2:AbstractParticle):void{ var _local3:Number; var _local4:Number; var _local5:int; _local3 = (1 / (_arg1.multisample + 1)); _local4 = _local3; _local5 = 0; while (_local5 <= _arg1.multisample) { _arg1.samp.setTo((_arg1.prev.x + (_local4 * (_arg1.curr.x - _arg1.prev.x))), (_arg1.prev.y + (_local4 * (_arg1.curr.y - _arg1.prev.y)))); _arg2.samp.setTo((_arg2.prev.x + (_local4 * (_arg2.curr.x - _arg2.prev.x))), (_arg2.prev.y + (_local4 * (_arg2.curr.y - _arg2.prev.y)))); if (testTypes(_arg1, _arg2)){ return; }; _local4 = (_local4 + _local3); _local5++; }; } } }//package org.cove.ape
Section 40
//CollisionResolver (org.cove.ape.CollisionResolver) package org.cove.ape { import org.cove.ape.*; final class CollisionResolver { static function resolveParticleParticle(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:Vector, _arg4:Number):void{ var _local5:Vector; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Collision; var _local10:Collision; var _local11:Vector; var _local12:Vector; var _local13:Vector; var _local14:Vector; _arg1.curr.copy(_arg1.samp); _arg2.curr.copy(_arg2.samp); _local5 = _arg3.mult(_arg4); _local6 = (_arg1.elasticity + _arg2.elasticity); _local7 = (_arg1.invMass + _arg2.invMass); _local8 = clamp((1 - (_arg1.friction + _arg2.friction)), 0, 1); _local9 = _arg1.getComponents(_arg3); _local10 = _arg2.getComponents(_arg3); _local11 = _local10.vn.mult(((_local6 + 1) * _arg1.invMass)).plus(_local9.vn.mult((_arg2.invMass - (_local6 * _arg1.invMass)))).divEquals(_local7); _local12 = _local9.vn.mult(((_local6 + 1) * _arg2.invMass)).plus(_local10.vn.mult((_arg1.invMass - (_local6 * _arg2.invMass)))).divEquals(_local7); _local9.vt.multEquals(_local8); _local10.vt.multEquals(_local8); _local13 = _local5.mult((_arg1.invMass / _local7)); _local14 = _local5.mult((-(_arg2.invMass) / _local7)); _local11.plusEquals(_local9.vt); _local12.plusEquals(_local10.vt); if (!_arg1.fixed){ _arg1.resolveCollision(_local13, _local11, _arg3, _arg4, -1, _arg2); }; if (!_arg2.fixed){ _arg2.resolveCollision(_local14, _local12, _arg3, _arg4, 1, _arg1); }; } static function clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ if (_arg1 > _arg3){ return (_arg3); }; if (_arg1 < _arg2){ return (_arg2); }; return (_arg1); } } }//package org.cove.ape
Section 41
//Composite (org.cove.ape.Composite) package org.cove.ape { public class Composite extends AbstractCollection { private var delta:Vector; public function Composite(){ delta = new Vector(); } private function getRelativeAngle(_arg1:Vector, _arg2:Vector):Number{ delta.setTo((_arg2.x - _arg1.x), (_arg2.y - _arg1.y)); return (Math.atan2(delta.y, delta.x)); } public function rotateByRadian(_arg1:Number, _arg2:Vector):void{ var _local3:AbstractParticle; var _local4:Array; var _local5:int; var _local6:int; var _local7:Number; var _local8:Number; _local4 = particles; _local5 = _local4.length; _local6 = 0; while (_local6 < _local5) { _local3 = _local4[_local6]; _local7 = _local3.center.distance(_arg2); _local8 = (getRelativeAngle(_arg2, _local3.center) + _arg1); _local3.px = ((Math.cos(_local8) * _local7) + _arg2.x); _local3.py = ((Math.sin(_local8) * _local7) + _arg2.y); _local6++; }; } public function rotateByAngle(_arg1:Number, _arg2:Vector):void{ var _local3:Number; _local3 = (_arg1 * MathUtil.PI_OVER_ONE_EIGHTY); rotateByRadian(_local3, _arg2); } public function set fixed(_arg1:Boolean):void{ var _local2:int; _local2 = 0; while (_local2 < particles.length) { particles[_local2].fixed = _arg1; _local2++; }; } public function get fixed():Boolean{ var _local1:int; _local1 = 0; while (_local1 < particles.length) { if (!particles[_local1].fixed){ return (false); }; _local1++; }; return (true); } } }//package org.cove.ape
Section 42
//Group (org.cove.ape.Group) package org.cove.ape { public class Group extends AbstractCollection { private var _collideInternal:Boolean; private var _composites:Array; private var _collisionList:Array; public function Group(_arg1:Boolean=false){ _composites = new Array(); _collisionList = new Array(); this.collideInternal = _arg1; } function checkCollisions():void{ var _local1:int; var _local2:int; var _local3:Group; if (collideInternal){ checkCollisionGroupInternal(); }; _local1 = collisionList.length; _local2 = 0; while (_local2 < _local1) { _local3 = collisionList[_local2]; checkCollisionVsGroup(_local3); _local2++; }; } public function get composites():Array{ return (_composites); } override public function init():void{ var _local1:int; super.init(); _local1 = 0; while (_local1 < composites.length) { composites[_local1].init(); _local1++; }; } public function removeCollidable(_arg1:Group):void{ var _local2:int; _local2 = collisionList.indexOf(_arg1); if (_local2 == -1){ return; }; collisionList.splice(_local2, 1); } private function checkCollisionVsGroup(_arg1:Group):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:Composite; var _local6:int; var _local7:Composite; checkCollisionsVsCollection(_arg1); _local2 = _composites.length; _local3 = _arg1.composites.length; _local4 = 0; while (_local4 < _local2) { _local5 = _composites[_local4]; _local5.checkCollisionsVsCollection(_arg1); _local6 = 0; while (_local6 < _local3) { _local7 = _arg1.composites[_local6]; _local5.checkCollisionsVsCollection(_local7); _local6++; }; _local4++; }; _local6 = 0; while (_local6 < _local3) { _local7 = _arg1.composites[_local6]; checkCollisionsVsCollection(_local7); _local6++; }; } override function satisfyConstraints():void{ var _local1:int; var _local2:int; var _local3:Composite; super.satisfyConstraints(); _local1 = _composites.length; _local2 = 0; while (_local2 < _local1) { _local3 = _composites[_local2]; _local3.satisfyConstraints(); _local2++; }; } public function get collideInternal():Boolean{ return (_collideInternal); } public function addCollidableList(_arg1:Array):void{ var _local2:int; var _local3:Group; _local2 = 0; while (_local2 < _arg1.length) { _local3 = _arg1[_local2]; collisionList.push(_local3); _local2++; }; } public function removeComposite(_arg1:Composite):void{ var _local2:int; _local2 = composites.indexOf(_arg1); if (_local2 == -1){ return; }; composites.splice(_local2, 1); _arg1.isParented = false; _arg1.cleanup(); } override public function cleanup():void{ var _local1:int; super.cleanup(); _local1 = 0; while (_local1 < composites.length) { composites[_local1].cleanup(); _local1++; }; } override public function paint():void{ var _local1:int; var _local2:int; var _local3:Composite; super.paint(); _local1 = _composites.length; _local2 = 0; while (_local2 < _local1) { _local3 = _composites[_local2]; _local3.paint(); _local2++; }; } public function addCollidable(_arg1:Group):void{ collisionList.push(_arg1); } override public function getAll():Array{ return (particles.concat(constraints).concat(composites)); } public function get collisionList():Array{ return (_collisionList); } override function integrate(_arg1:Number):void{ var _local2:int; var _local3:int; var _local4:Composite; super.integrate(_arg1); _local2 = _composites.length; _local3 = 0; while (_local3 < _local2) { _local4 = _composites[_local3]; _local4.integrate(_arg1); _local3++; }; } public function addComposite(_arg1:Composite):void{ composites.push(_arg1); _arg1.isParented = true; if (isParented){ _arg1.init(); }; } private function checkCollisionGroupInternal():void{ var _local1:int; var _local2:int; var _local3:Composite; var _local4:int; var _local5:Composite; checkInternalCollisions(); _local1 = _composites.length; _local2 = 0; while (_local2 < _local1) { _local3 = _composites[_local2]; _local3.checkCollisionsVsCollection(this); _local4 = (_local2 + 1); while (_local4 < _local1) { _local5 = _composites[_local4]; _local3.checkCollisionsVsCollection(_local5); _local4++; }; _local2++; }; } public function set collideInternal(_arg1:Boolean):void{ _collideInternal = _arg1; } } }//package org.cove.ape
Section 43
//Interval (org.cove.ape.Interval) package org.cove.ape { import org.cove.ape.*; final class Interval { var min:Number; var max:Number; function Interval(_arg1:Number, _arg2:Number){ this.min = _arg1; this.max = _arg2; } function toString():String{ return (((min + " : ") + max)); } } }//package org.cove.ape
Section 44
//MathUtil (org.cove.ape.MathUtil) package org.cove.ape { import org.cove.ape.*; final class MathUtil { static var ONE_EIGHTY_OVER_PI:Number = (180 / Math.PI); static var PI_OVER_ONE_EIGHTY:Number = (Math.PI / 180); static function clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ if (_arg1 < _arg2){ return (_arg2); }; if (_arg1 > _arg3){ return (_arg3); }; return (_arg1); } static function sign(_arg1:Number):int{ if (_arg1 < 0){ return (-1); }; return (1); } } }//package org.cove.ape
Section 45
//RectangleParticle (org.cove.ape.RectangleParticle) package org.cove.ape { public class RectangleParticle extends AbstractParticle { private var _axes:Array; private var _radian:Number; private var _extents:Array; public function RectangleParticle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Boolean=false, _arg7:Number=1, _arg8:Number=0.3, _arg9:Number=0){ super(_arg1, _arg2, _arg6, _arg7, _arg8, _arg9); _extents = new Array((_arg3 / 2), (_arg4 / 2)); _axes = new Array(new Vector(0, 0), new Vector(0, 0)); radian = _arg5; } override public function init():void{ var _local1:Number; var _local2:Number; cleanup(); if (displayObject != null){ initDisplay(); } else { _local1 = (extents[0] * 2); _local2 = (extents[1] * 2); sprite.graphics.clear(); sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha); sprite.graphics.beginFill(fillColor, fillAlpha); sprite.graphics.drawRect((-(_local1) / 2), (-(_local2) / 2), _local1, _local2); sprite.graphics.endFill(); }; paint(); } public function set width(_arg1:Number):void{ _extents[0] = (_arg1 / 2); } function get axes():Array{ return (_axes); } public function get height():Number{ return ((_extents[1] * 2)); } function get extents():Array{ return (_extents); } public function set angle(_arg1:Number):void{ radian = (_arg1 * MathUtil.PI_OVER_ONE_EIGHTY); } private function setAxes(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.sin(_arg1); _local3 = Math.cos(_arg1); axes[0].x = _local3; axes[0].y = _local2; axes[1].x = -(_local2); axes[1].y = _local3; } public function get radian():Number{ return (_radian); } public function get width():Number{ return ((_extents[0] * 2)); } public function set height(_arg1:Number):void{ _extents[1] = (_arg1 / 2); } public function get angle():Number{ return ((radian * MathUtil.ONE_EIGHTY_OVER_PI)); } function getProjection(_arg1:Vector):Interval{ var _local2:Number; var _local3:Number; _local2 = ((extents[0] * Math.abs(_arg1.dot(axes[0]))) + (extents[1] * Math.abs(_arg1.dot(axes[1])))); _local3 = samp.dot(_arg1); interval.min = (_local3 - _local2); interval.max = (_local3 + _local2); return (interval); } public function set radian(_arg1:Number):void{ _radian = _arg1; setAxes(_arg1); } override public function paint():void{ sprite.x = curr.x; sprite.y = curr.y; sprite.rotation = angle; } } }//package org.cove.ape
Section 46
//SpringConstraint (org.cove.ape.SpringConstraint) package org.cove.ape { import flash.display.*; public class SpringConstraint extends AbstractConstraint { private var _collidable:Boolean; private var _restLength:Number; private var p1:AbstractParticle; private var p2:AbstractParticle; private var _scp:SpringConstraintParticle; public function SpringConstraint(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:Number=0.5, _arg4:Boolean=false, _arg5:Number=1, _arg6:Number=1, _arg7:Boolean=false){ super(_arg3); this.p1 = _arg1; this.p2 = _arg2; checkParticlesLocation(); _restLength = currLength; setCollidable(_arg4, _arg5, _arg6, _arg7); } public function set rectScale(_arg1:Number):void{ if (scp == null){ return; }; scp.rectScale = _arg1; } override public function init():void{ cleanup(); if (collidable){ scp.init(); } else { if (displayObject != null){ initDisplay(); }; }; paint(); } function initDisplay():void{ if (collidable){ scp.initDisplay(); } else { displayObject.x = displayObjectOffset.x; displayObject.y = displayObjectOffset.y; displayObject.rotation = displayObjectRotation; sprite.addChild(displayObject); }; } private function checkParticlesLocation():void{ if ((((p1.curr.x == p2.curr.x)) && ((p1.curr.y == p2.curr.y)))){ p2.curr.x = (p2.curr.x + 0.0001); }; } public function get radian():Number{ var _local1:Vector; _local1 = delta; return (Math.atan2(_local1.y, _local1.x)); } function get scp():SpringConstraintParticle{ return (_scp); } public function get rectHeight():Number{ return (scp.rectHeight); } public function setDisplay(_arg1:DisplayObject, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):void{ if (collidable){ scp.setDisplay(_arg1, _arg2, _arg3, _arg4); } else { displayObject = _arg1; displayObjectRotation = _arg4; displayObjectOffset = new Vector(_arg2, _arg3); }; } public function set restLength(_arg1:Number):void{ if (_arg1 <= 0){ throw (new ArgumentError("restLength must be greater than 0")); }; _restLength = _arg1; } public function get currLength():Number{ return (p1.curr.distance(p2.curr)); } public function get fixedEndLimit():Number{ return (scp.fixedEndLimit); } public function get rectScale():Number{ return (scp.rectScale); } function get delta():Vector{ return (p1.curr.minus(p2.curr)); } public function get angle():Number{ return ((radian * MathUtil.ONE_EIGHTY_OVER_PI)); } public function get center():Vector{ return (p1.curr.plus(p2.curr).divEquals(2)); } public function set rectHeight(_arg1:Number):void{ if (scp == null){ return; }; scp.rectHeight = _arg1; } public function get restLength():Number{ return (_restLength); } override public function paint():void{ var _local1:Vector; if (collidable){ scp.paint(); } else { if (displayObject != null){ _local1 = center; sprite.x = _local1.x; sprite.y = _local1.y; sprite.rotation = angle; } else { sprite.graphics.clear(); sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha); sprite.graphics.moveTo(p1.px, p1.py); sprite.graphics.lineTo(p2.px, p2.py); }; }; } public function setCollidable(_arg1:Boolean, _arg2:Number, _arg3:Number, _arg4:Boolean=false):void{ _collidable = _arg1; _scp = null; if (_collidable){ _scp = new SpringConstraintParticle(p1, p2, this, _arg2, _arg3, _arg4); }; } public function get collidable():Boolean{ return (_collidable); } public function isConnectedTo(_arg1:AbstractParticle):Boolean{ return ((((_arg1 == p1)) || ((_arg1 == p2)))); } override function resolve():void{ var _local1:Number; var _local2:Number; var _local3:Vector; if (((p1.fixed) && (p2.fixed))){ return; }; _local1 = currLength; _local2 = ((_local1 - restLength) / (_local1 * (p1.invMass + p2.invMass))); _local3 = delta.mult((_local2 * stiffness)); p1.curr.minusEquals(_local3.mult(p1.invMass)); p2.curr.plusEquals(_local3.mult(p2.invMass)); } public function get fixed():Boolean{ return (((p1.fixed) && (p2.fixed))); } public function set fixedEndLimit(_arg1:Number):void{ if (scp == null){ return; }; scp.fixedEndLimit = _arg1; } } }//package org.cove.ape
Section 47
//SpringConstraintParticle (org.cove.ape.SpringConstraintParticle) package org.cove.ape { import flash.display.*; import org.cove.ape.*; class SpringConstraintParticle extends RectangleParticle { private var _fixedEndLimit:Number; private var _rectScale:Number; private var rca:Vector; private var rcb:Vector; private var s:Number; private var parent:SpringConstraint; private var scaleToLength:Boolean; private var p1:AbstractParticle; private var p2:AbstractParticle; private var lambda:Vector; private var avgVelocity:Vector; private var _rectHeight:Number; function SpringConstraintParticle(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:SpringConstraint, _arg4:Number, _arg5:Number, _arg6:Boolean){ super(0, 0, 0, 0, 0, false); this.p1 = _arg1; this.p2 = _arg2; lambda = new Vector(0, 0); avgVelocity = new Vector(0, 0); parent = _arg3; this.rectScale = _arg5; this.rectHeight = _arg4; this.scaleToLength = _arg6; fixedEndLimit = 0; rca = new Vector(); rcb = new Vector(); } private function setCorners(_arg1:RectangleParticle, _arg2:int):void{ var _local3:Number; var _local4:Number; var _local5:Array; var _local6:Array; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local3 = _arg1.curr.x; _local4 = _arg1.curr.y; _local5 = _arg1.axes; _local6 = _arg1.extents; _local7 = (_local5[0].x * _local6[0]); _local8 = (_local5[0].y * _local6[0]); _local9 = (_local5[1].x * _local6[1]); _local10 = (_local5[1].y * _local6[1]); _local11 = (_local7 - _local9); _local12 = (_local8 - _local10); _local13 = (_local7 + _local9); _local14 = (_local8 + _local10); if (_arg2 == 0){ rca.x = (_local3 - _local13); rca.y = (_local4 - _local14); rcb.x = (_local3 + _local11); rcb.y = (_local4 + _local12); } else { if (_arg2 == 1){ rca.x = (_local3 + _local11); rca.y = (_local4 + _local12); rcb.x = (_local3 + _local13); rcb.y = (_local4 + _local14); } else { if (_arg2 == 2){ rca.x = (_local3 + _local13); rca.y = (_local4 + _local14); rcb.x = (_local3 - _local11); rcb.y = (_local4 - _local12); } else { if (_arg2 == 3){ rca.x = (_local3 - _local11); rca.y = (_local4 - _local12); rcb.x = (_local3 - _local13); rcb.y = (_local4 - _local14); }; }; }; }; } override public function init():void{ var _local1:Sprite; var _local2:Number; var _local3:Number; if (displayObject != null){ initDisplay(); } else { _local1 = new Sprite(); parent.sprite.addChild(_local1); _local1.name = "inner"; _local2 = (parent.currLength * rectScale); _local3 = rectHeight; _local1.graphics.clear(); _local1.graphics.lineStyle(parent.lineThickness, parent.lineColor, parent.lineAlpha); _local1.graphics.beginFill(parent.fillColor, parent.fillAlpha); _local1.graphics.drawRect((-(_local2) / 2), (-(_local3) / 2), _local2, _local3); _local1.graphics.endFill(); }; paint(); } function updatePosition():void{ var _local1:Vector; _local1 = parent.center; curr.setTo(_local1.x, _local1.y); width = (scaleToLength) ? (parent.currLength * rectScale) : (parent.restLength * rectScale); height = rectHeight; radian = parent.radian; } private function closestPtSegmentSegment():Number{ var _local1:Vector; var _local2:Vector; var _local3:Vector; var _local4:Vector; var _local5:Vector; var _local6:Vector; var _local7:Vector; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Vector; var _local16:Vector; var _local17:Vector; _local1 = p1.curr; _local2 = p2.curr; _local3 = rca; _local4 = rcb; _local5 = _local2.minus(_local1); _local6 = _local4.minus(_local3); _local7 = _local1.minus(_local3); _local9 = _local5.dot(_local5); _local10 = _local6.dot(_local6); _local11 = _local6.dot(_local7); _local12 = _local5.dot(_local7); _local13 = _local5.dot(_local6); _local14 = ((_local9 * _local10) - (_local13 * _local13)); if (_local14 != 0){ s = MathUtil.clamp((((_local13 * _local11) - (_local12 * _local10)) / _local14), 0, 1); } else { s = 0.5; }; _local8 = (((_local13 * s) + _local11) / _local10); if (_local8 < 0){ _local8 = 0; s = MathUtil.clamp((-(_local12) / _local9), 0, 1); } else { if (_local8 > 0){ _local8 = 1; s = MathUtil.clamp(((_local13 - _local12) / _local9), 0, 1); }; }; _local15 = _local1.plus(_local5.mult(s)); _local16 = _local3.plus(_local6.mult(_local8)); _local17 = _local15.minus(_local16); return (_local15.minus(_local16).dot(_local17)); } function get rectHeight():Number{ return (_rectHeight); } function get fixedEndLimit():Number{ return (_fixedEndLimit); } private function closestParamPoint(_arg1:Vector):Number{ var _local2:Vector; var _local3:Number; _local2 = p2.curr.minus(p1.curr); _local3 = (_local2.dot(_arg1.minus(p1.curr)) / _local2.dot(_local2)); return (MathUtil.clamp(_local3, 0, 1)); } function set rectHeight(_arg1:Number):void{ _rectHeight = _arg1; } override public function paint():void{ var _local1:Vector; var _local2:Sprite; _local1 = parent.center; _local2 = parent.sprite; if (scaleToLength){ _local2.getChildByName("inner").width = (parent.currLength * rectScale); } else { if (displayObject != null){ _local2.getChildByName("inner").width = (parent.restLength * rectScale); }; }; _local2.x = _local1.x; _local2.y = _local1.y; _local2.rotation = parent.angle; } private function getContactPointParam(_arg1:AbstractParticle):Number{ var _local2:Number; var _local3:Number; var _local4:Array; var _local5:Number; var _local6:int; var _local7:Number; if ((_arg1 is CircleParticle)){ _local2 = closestParamPoint(_arg1.curr); } else { if ((_arg1 is RectangleParticle)){ _local4 = new Array(4); _local5 = Number.POSITIVE_INFINITY; _local6 = 0; while (_local6 < 4) { setCorners((_arg1 as RectangleParticle), _local6); _local7 = closestPtSegmentSegment(); if (_local7 < _local5){ _local5 = _local7; _local3 = _local6; _local4[_local6] = s; }; _local6++; }; _local2 = _local4[_local3]; }; }; return (_local2); } function set fixedEndLimit(_arg1:Number):void{ _fixedEndLimit = _arg1; } override function get invMass():Number{ if (((p1.fixed) && (p2.fixed))){ return (0); }; return ((1 / ((p1.mass + p2.mass) / 2))); } override function initDisplay():void{ var _local1:Sprite; displayObject.x = displayObjectOffset.x; displayObject.y = displayObjectOffset.y; displayObject.rotation = displayObjectRotation; _local1 = new Sprite(); _local1.name = "inner"; _local1.addChild(displayObject); parent.sprite.addChild(_local1); } function set rectScale(_arg1:Number):void{ _rectScale = _arg1; } override function resolveCollision(_arg1:Vector, _arg2:Vector, _arg3:Vector, _arg4:Number, _arg5:int, _arg6:AbstractParticle):void{ var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:AbstractParticle; _local7 = getContactPointParam(_arg6); _local8 = (1 - _local7); _local9 = _local7; if (p1.fixed){ if (_local9 <= fixedEndLimit){ return; }; lambda.setTo((_arg1.x / _local9), (_arg1.y / _local9)); p2.curr.plusEquals(lambda); p2.velocity = _arg2; } else { if (p2.fixed){ if (_local8 <= fixedEndLimit){ return; }; lambda.setTo((_arg1.x / _local8), (_arg1.y / _local8)); p1.curr.plusEquals(lambda); p1.velocity = _arg2; } else { _local10 = ((_local8 * _local8) + (_local9 * _local9)); if (_local10 == 0){ return; }; lambda.setTo((_arg1.x / _local10), (_arg1.y / _local10)); p1.curr.plusEquals(lambda.mult(_local8)); p2.curr.plusEquals(lambda.mult(_local9)); if (_local7 == 0.5){ p1.velocity = _arg2; p2.velocity = _arg2; } else { _local11 = ((_local7)<0.5) ? p1 : p2; _local11.velocity = _arg2; }; }; }; } override public function get elasticity():Number{ return (((p1.elasticity + p2.elasticity) / 2)); } function get rectScale():Number{ return (_rectScale); } override public function get velocity():Vector{ var _local1:Vector; var _local2:Vector; _local1 = p1.velocity; _local2 = p2.velocity; avgVelocity.setTo(((_local1.x + _local2.x) / 2), ((_local1.y + _local2.y) / 2)); return (avgVelocity); } override public function get friction():Number{ return (((p1.friction + p2.friction) / 2)); } override public function get mass():Number{ return (((p1.mass + p2.mass) / 2)); } } }//package org.cove.ape
Section 48
//Vector (org.cove.ape.Vector) package org.cove.ape { public class Vector { public var x:Number; public var y:Number; public function Vector(_arg1:Number=0, _arg2:Number=0){ x = _arg1; y = _arg2; } public function cross(_arg1:Vector):Number{ return (((x * _arg1.y) - (y * _arg1.x))); } public function magnitude():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function divEquals(_arg1:Number):Vector{ if (_arg1 == 0){ _arg1 = 0.0001; }; x = (x / _arg1); y = (y / _arg1); return (this); } public function times(_arg1:Vector):Vector{ return (new Vector((x * _arg1.x), (y * _arg1.y))); } public function plusEquals(_arg1:Vector):Vector{ x = (x + _arg1.x); y = (y + _arg1.y); return (this); } public function dot(_arg1:Vector):Number{ return (((x * _arg1.x) + (y * _arg1.y))); } public function toString():String{ return (((x + " : ") + y)); } public function normalize():Vector{ var _local1:Number; _local1 = magnitude(); if (_local1 == 0){ _local1 = 0.0001; }; return (mult((1 / _local1))); } public function copy(_arg1:Vector):void{ x = _arg1.x; y = _arg1.y; } public function minusEquals(_arg1:Vector):Vector{ x = (x - _arg1.x); y = (y - _arg1.y); return (this); } public function minus(_arg1:Vector):Vector{ return (new Vector((x - _arg1.x), (y - _arg1.y))); } public function plus(_arg1:Vector):Vector{ return (new Vector((x + _arg1.x), (y + _arg1.y))); } public function distance(_arg1:Vector):Number{ var _local2:Vector; _local2 = this.minus(_arg1); return (_local2.magnitude()); } public function setTo(_arg1:Number, _arg2:Number):void{ x = _arg1; y = _arg2; } public function multEquals(_arg1:Number):Vector{ x = (x * _arg1); y = (y * _arg1); return (this); } public function mult(_arg1:Number):Vector{ return (new Vector((x * _arg1), (y * _arg1))); } } }//package org.cove.ape
Section 49
//back (back) package { import flash.media.*; public dynamic class back extends Sound { } }//package
Section 50
//Bonus (Bonus) package { import gs.*; import flash.events.*; import flash.display.*; import flash.filters.*; import fl.motion.easing.*; import flash.utils.*; import flash.text.*; public class Bonus extends MovieClip { public var timer:Number;// = 0 private var txtTime:TextField; public var timer_txt:TextField; private var t:Timer; public var type:String; public var m_txt:TextField; public function Bonus(_arg1:String){ timer = 0; super(); txtTime = this["timer_txt"]; txtTime.text = ""; this.type = _arg1; gotoAndStop(_arg1); Game.game.addEventListener("game_pause", onGamePause); Game.game.addEventListener("game_continue", onGameContinue); } private function onGamePause(_arg1:Event):void{ t.stop(); } public function init(_arg1:Number=0):void{ if (timer > 0){ x = 20; } else { this.filters = [new BlurFilter(30, 0, 3)]; TweenLite.to(this, 0.3, {x:20, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(this, 0.3, {type:"Blur", blurX:0, alpha:1, overwrite:false}); }; timer = (timer + _arg1); if (timer > 99){ timer = 99; }; txtTime.text = timer.toString(); if (t){ t.stop(); }; t = new Timer(1000, timer); t.addEventListener(TimerEvent.TIMER, onTimer); t.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete); t.start(); } private function removeClip():void{ try { parent.removeChild(this); } catch(e:Error) { trace("no clip"); }; } private function onGameContinue(_arg1:Event):void{ t.start(); } private function onComplete(_arg1:TimerEvent):void{ Game.game.stopBonus(this); Game.game.removeEventListener("game_pause", onGamePause); Game.game.removeEventListener("game_continue", onGameContinue); } public function setScore(_arg1:Number):void{ var _local2:TextField; _local2 = this["m_txt"]; _local2.text = _arg1.toString(); } public function remove():void{ TweenLite.to(this, 0.3, {x:-20, overwrite:false, onComplete:removeClip}); TweenFilterLite.from(this, 0.3, {type:"Blur", blurX:30, alpha:1, overwrite:false}); } private function onTimer(_arg1:TimerEvent):void{ timer--; txtTime.text = timer.toString(); } } }//package
Section 51
//Breakable (Breakable) package { import ascb.util.*; import gs.*; import flash.display.*; public class Breakable extends MovieClip { private var life:int; private var mcBody:MovieClip; public var fence_left:MovieClip; public var stone:MovieClip; public var fence_right:MovieClip; private var maxlife:int; public var curCell:Cell; public var bush:MovieClip; public function Breakable(_arg1:String){ var _local2:Array; var _local3:Number; super(); _local2 = ["fence_left", "fence_right", "stone", "bush"]; _local3 = 0; while (_local3 < _local2.length) { this[_local2[_local3]].visible = false; _local3++; }; mcBody = this[_arg1]; mcBody.visible = true; maxlife = (life = mcBody.totalFrames); life++; decreaseLife(1); TweenLite.from(this, 1, {alpha:0, delay:(NumberUtilities.random(1, 10) / 10)}); } public function setCell(_arg1:Number, _arg2:Number):void{ curCell = Game.game.field.fieldElements[_arg1][_arg2]; x = curCell.x; y = curCell.y; curCell.object = this; } public function decreaseLife(_arg1:Number):Number{ life = (life - _arg1); mcBody.gotoAndStop(((maxlife - life) + 1)); return (life); } } }//package
Section 52
//Bullet (Bullet) package { import flash.events.*; import flash.display.*; public class Bullet extends MovieClip { private var sounds:SoundController; private var speed:Number;// = 15 public var damage:Number;// = 1 public static var TYPE:String = "bullet"; public function Bullet(){ speed = 15; damage = 1; sounds = SoundController.getInstance(); super(); gotoAndStop(TYPE); sounds.playSound((TYPE + "_snd")); } public function startMove():void{ if (TYPE == "bullet"){ damage = 1; } else { damage = 5; }; addEventListener(Event.ENTER_FRAME, move); } public function remove():void{ removeEventListener(Event.ENTER_FRAME, move); try { parent.removeChild(this); } catch(e:Error) { }; } private function move(_arg1:Event):void{ if (Game.PAUSE){ return; }; y = (y - speed); if (Game.game.allEnemys.hitTestPoint(x, y, true)){ Game.game.hitEnemy(this); }; if (y < 0){ remove(); }; } } }//package
Section 53
//bullet_snd (bullet_snd) package { import flash.media.*; public dynamic class bullet_snd extends Sound { } }//package
Section 54
//catch (catch) package { import flash.media.*; public dynamic class catch extends Sound { } }//package
Section 55
//Cell (Cell) package { import flash.display.*; import flash.text.*; public class Cell extends MovieClip { public var num_txt:TextField; public var object:Object; public var target:Object; public var num:TextField; public var posy:Number; public var posx:Number; public var depth:Number; public function Cell(_arg1:Number, _arg2:Number){ num_txt = this["num"]; posx = _arg1; posy = _arg2; width = (Field.WIDTH / Field.CELL_WIDTH); x = ((width * _arg2) + (width / 2)); height = (Field.HEIGHT / Field.CELL_HEIGHT); y = ((height * _arg1) + (height / 2)); } } }//package
Section 56
//click (click) package { import flash.media.*; public dynamic class click extends Sound { } }//package
Section 57
//CreditsMenu (CreditsMenu) package { import flash.display.*; public class CreditsMenu extends MovieClip { public var back_btn:SimpleButton; public var btnBack:SimpleButton; public function CreditsMenu(){ btnBack = this["back_btn"]; } } }//package
Section 58
//crowd (crowd) package { import flash.media.*; public dynamic class crowd extends Sound { } }//package
Section 59
//Difficulty (Difficulty) package { public class Difficulty { public var maxSpeed:Number; public var obstacles:Number; public var addInTroop:Number; public var speed:Number; public var addTroopCount:Number; public var maxTroopCount:Number; public var enemyCount:Number; public var maxInTroops:Number; public var maxNextStart:Number; public var enemyPerWave:Number; public var obstaclesAppear:Number; public var maxEnemyCount:Number; } }//package
Section 60
//Enemy (Enemy) package { import ascb.util.*; import gs.*; import flash.events.*; import flash.display.*; public class Enemy extends MovieClip { public var life:Number;// = 1 public var path:Array; public var celly:Number; public var lineBar_mc:MovieClip; private var yspeed:Number; public var lineBar:MovieClip; public var cellx:Number; public var maxLife:Number;// = 5 public var direction:Number; private var currentState:int; public var curCell:Cell; private var xspeed:Number; private var directiony:Number;// = 1 private var endX:Number; private var endY:Number; public static var speed:Number = 3; public function Enemy(){ path = []; maxLife = 5; life = 1; directiony = 1; super(); addFrameScript(21, frame22, 43, frame44, 49, frame50, 55, frame56, 90, frame91); lineBar = this["lineBar_mc"]; x = Game.RIGHT; y = 0; direction = 1; Game.game.addEventListener("game_pause", onGamePause); Game.game.addEventListener("game_continue", onGameContinue); } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, move); gotoAndPlay("wait"); curCell.object = null; TweenLite.to(this, 0.5, {alpha:0, delay:((NumberUtilities.random(1, 20) / 10) + 3), onComplete:removeClip}); } private function removeClip():void{ Game.game.removeEventListener("game_pause", onGamePause); Game.game.removeEventListener("game_continue", onGameContinue); try { parent.removeChild(this); } catch(e:Error) { trace("no enemy clip"); }; if (Game.game.getEnemyCount() <= 0){ Game.game.onLoseLife(); }; } private function onGamePause(_arg1:Event):void{ currentState = currentFrame; gotoAndPlay("wait"); } private function onGameContinue(_arg1:Event):void{ gotoAndPlay(currentState); } function frame91(){ gotoAndPlay("wait"); } private function rotate():void{ direction = (direction * -1); if (directiony > 0){ if (direction > 0){ gotoAndPlay("turnleft"); } else { gotoAndPlay("turnright"); }; } else { if (direction < 0){ gotoAndPlay("turnbackleft"); } else { gotoAndPlay("turnbackright"); }; }; } public function startMove():void{ if (celly == 10){ direction = -1; curCell = new Cell(cellx, celly); gotoAndPlay("walkleft"); } else { gotoAndPlay("walkright"); curCell = Game.game.field.fieldElements[cellx][celly]; }; x = curCell.x; y = curCell.y; findNextCell(); addEventListener(Event.ENTER_FRAME, move); } function frame22(){ gotoAndPlay("walkleft"); } public function remove():void{ removeEventListener(Event.ENTER_FRAME, move); Game.game.removeEventListener("game_pause", onGamePause); Game.game.removeEventListener("game_continue", onGameContinue); } public function decreaseLife(_arg1:Number):Number{ life = (life - _arg1); lineBar.scaleX = (life / maxLife); return (life); } function frame44(){ gotoAndPlay("walkright"); } private function findNextCell():void{ var nextCell:Cell; var alpha:Number; try { nextCell = Game.game.field.fieldElements[curCell.posx][(curCell.posy + direction)]; if (((((!(nextCell)) || (((curCell.posy + direction) < 0)))) || (((curCell.posy + direction) > (Field.CELL_WIDTH - 1))))){ if ((curCell.posx + directiony) >= Field.CELL_HEIGHT){ directiony = -1; }; if ((curCell.posx + directiony) <= (Field.CELL_HEIGHT - 6)){ directiony = 1; }; rotate(); nextCell = Game.game.field.fieldElements[(curCell.posx + directiony)][curCell.posy]; } else { if (nextCell.object != null){ if ((((nextCell.object is Enemy)) && (!((Enemy(nextCell.object).direction == direction))))){ nextCell = Game.game.field.fieldElements[(curCell.posx + directiony)][curCell.posy]; rotate(); } else { if (!(nextCell.object is Enemy)){ rotate(); nextCell = Game.game.field.fieldElements[(curCell.posx + directiony)][curCell.posy]; }; }; }; }; endX = nextCell.x; endY = nextCell.y; alpha = Math.atan2((endX - x), (endY - y)); xspeed = (speed * Math.sin(alpha)); yspeed = (speed * Math.cos(alpha)); if ((curCell.object is Enemy)){ curCell.object = null; }; curCell = nextCell; curCell.object = this; } catch(e:Error) { trace("incorrect cell!"); }; } private function move(_arg1:Event):void{ var _local2:Number; if (Game.PAUSE){ return; }; _local2 = MathUtilites.getDistance(x, y, endX, endY); x = (x + xspeed); y = (y + yspeed); if (_local2 < speed){ x = endX; y = endY; findNextCell(); }; } function frame56(){ gotoAndPlay("walkright"); } function frame50(){ gotoAndPlay("walkleft"); } } }//package
Section 61
//Explosion (Explosion) package { import flash.events.*; import flash.display.*; public class Explosion extends MovieClip { public var cell:Cell; public function Explosion(){ addEventListener(Event.ENTER_FRAME, listener); scaleX = (scaleY = 0.5); } public function clearListener():void{ removeEventListener(Event.ENTER_FRAME, listener); addEventListener(Event.ENTER_FRAME, listenerRip); } private function listener(_arg1:Event):void{ if (currentFrame == totalFrames){ parent.removeChild(this); removeEventListener(Event.ENTER_FRAME, listener); Game.game.createRip(cell); }; } private function listenerRip(_arg1:Event):void{ if (currentFrame == totalFrames){ parent.removeChild(this); removeEventListener(Event.ENTER_FRAME, listenerRip); }; } } }//package
Section 62
//Field (Field) package { public class Field { public var fieldElements:Array; public static const CELL_HEIGHT:Number = 19; public static const WIDTH:Number = 640; public static const HEIGHT:Number = 450; public static const CELL_WIDTH:Number = 10; public function Field(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Cell; super(); fieldElements = []; _local1 = 0; _local2 = 0; while (_local2 < (CELL_HEIGHT + 1)) { fieldElements[_local2] = []; _local3 = -1; while (_local3 < (CELL_WIDTH + 1)) { _local4 = new Cell(_local2, _local3); var _temp1 = _local1; _local1 = (_local1 + 1); _local4.depth = _temp1; fieldElements[_local2][_local3] = _local4; _local4.num_txt.text = _local4.depth.toString(); _local3++; }; _local2++; }; } } }//package
Section 63
//FlyScore (FlyScore) package { import gs.*; import flash.display.*; import flash.text.*; public class FlyScore extends MovieClip { public var _txt:TextField; public function init(_arg1:Number):void{ var _local2:TextField; _local2 = this["_txt"]; _local2.text = _arg1.toString(); TweenLite.to(this, 1, {alpha:0.5, y:(y - 20), onComplete:removeClip}); } private function removeClip():void{ parent.removeChild(this); } } }//package
Section 64
//Game (Game) package { import ascb.util.*; import gs.*; import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.filters.*; import fl.motion.easing.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class Game extends MovieClip { private var _lives:Number; private var txtScore:TextField; private var bonusLives:Number; private var troopsCount:Number;// = 0 private var mcOptions:OptionsMenu; public var bg:MovieClip; public var allExplosion:MovieClip; private var txtLives:TextField; private var mcBg:MovieClip; public var waves:Array; private var controlPanel:MovieClip; private var startcell:Number; public var allBullets:MovieClip; private var _ecount:Number; public var allEnemys:MovieClip; private var nextBonus:Number;// = 1 private var btnSendScore:SimpleButton; private var txtEnemyCount:TextField; private var wave:Number;// = 0 public var field:Field; private var troopsFrequency:Number;// = 5000 public var isShoot:Boolean;// = false private var sounds:SoundController; private var soldierInTroop:Number;// = 0 private var bonusTypes:Array; private var mcGameOver:MovieClip; private var bonusGroup:Group; private var difficulty:Difficulty; private var currentBulletInterval:Number; public var control_mc:MovieClip; private var btnMenu:SimpleButton; private var nextWaveCount:Number;// = 0 private var bulletInterval:Number;// = 15 private var scoreMultiplier:Number;// = 1 public var hero:Hero; public static const LEFT:Number = 20; public static const RIGHT:Number = 610; private static var GAME:Game; public static var PAUSE:Boolean = false; public function Game(){ hero = new Hero(); isShoot = false; bulletInterval = 15; bonusTypes = ["machinegun", "rocket", "score"]; scoreMultiplier = 1; wave = 0; waves = []; nextWaveCount = 0; troopsCount = 0; soldierInTroop = 0; troopsFrequency = 5000; nextBonus = 1; sounds = SoundController.getInstance(); super(); setDifficultyVariables(GameMenu.DIFFICULTY); PAUSE = false; GAME = this; Bullet.TYPE = "bullet"; Mouse.hide(); field = new Field(); allEnemys = new MovieClip(); allBullets = new MovieClip(); allExplosion = new MovieClip(); mcBg = this["bg"]; controlPanel = this["control_mc"]; txtEnemyCount = controlPanel["enemy_num"]; txtScore = controlPanel["score"]; txtLives = controlPanel["lives"]; mcGameOver = controlPanel["gameover_mc"]; mcGameOver.x = 235; mcGameOver.y = -130; btnMenu = controlPanel["menu_btn"]; btnMenu.x = -108; btnMenu.y = 366; btnMenu.addEventListener(MouseEvent.CLICK, gotoMenu); btnSendScore = controlPanel["sendscore_btn"]; btnSendScore.x = 753; btnSendScore.y = 425; btnSendScore.addEventListener(MouseEvent.CLICK, sendScore); mcOptions = controlPanel["menuoptions_mc"]; mcOptions.btnBack.addEventListener(MouseEvent.CLICK, onClickBackButton); ecount = 0; txtScore.text = "0"; bonusLives = 0; lives = 3; allEnemys.y = (allBullets.y = (allExplosion.y = 20)); createFieldView(); startLevel(difficulty.enemyCount); addChild(allEnemys); addChild(allBullets); addChild(allExplosion); addChild(hero); setChildIndex(controlPanel, (numChildren - 1)); hero.init(); currentBulletInterval = 1; addEventListener(Event.ENTER_FRAME, gameCycle); initEngine(); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); addEventListener(MouseEvent.MOUSE_UP, onMouseUp); stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } private function removeBonus(_arg1:CircleParticle):void{ bonusGroup.removeParticle(_arg1); _arg1.cleanup(); } public function set lives(_arg1:Number):void{ _lives = _arg1; txtLives.text = _arg1.toString(); } private function gameCycle(_arg1:Event):void{ if (PAUSE){ return; }; if (hero.active){ if ((((((getDecreasedInterval() == 0)) && (isShoot))) && (hero.active))){ currentBulletInterval = bulletInterval; shoot(); }; APEngine.step(); APEngine.paint(); detectBonus(); zSorting(); if (allEnemys.hitTestPoint(hero.x, hero.y, true)){ hitHero(); }; }; } function checkDomain():Boolean{ var _local1:String; var _local2:Number; var _local3:Number; var _local4:String; var _local5:Number; var _local6:Number; _local1 = stage.loaderInfo.url; _local2 = (_local1.indexOf("://") + 3); _local3 = _local1.indexOf("/", _local2); _local4 = _local1.substring(_local2, _local3); _local5 = (_local4.lastIndexOf(".") - 1); _local6 = (_local4.lastIndexOf(".", _local5) + 1); _local4 = _local4.substring(_local6, _local4.length); return ((_local4 == "kornushin.com")); } public function shoot():void{ var _local1:Bullet; _local1 = new Bullet(); _local1.x = (hero.x + 3); _local1.y = (hero.y - 10); allBullets.addChild(_local1); hero.gotoAndPlay("shoot"); _local1.startMove(); } private function hitHero():void{ var _local1:Number; var _local2:Enemy; var _local3:Number; _local1 = 0; while (_local1 < allEnemys.numChildren) { if ((allEnemys.getChildAt(_local1) is Enemy)){ _local2 = Enemy(allEnemys.getChildAt(_local1)); if (((_local2.hitTestObject(hero)) && (hero.active))){ lives--; hero.stopDrag(); hero.gotoAndPlay("lose"); isShoot = false; _local2.remove(); _local2.curCell.object = null; ecount--; allEnemys.removeChildAt(_local1); destroyEnemy(); sounds.playSound("crowd"); sounds.playSound("catch"); _local3 = 0; while (_local3 < waves.length) { Wave(waves[_local3]).stop(); _local3++; }; return; }; }; _local1++; }; } private function setDifficultyVariables(_arg1:Number):void{ difficulty = new Difficulty(); switch (_arg1){ case 1: difficulty.enemyCount = 12; difficulty.maxEnemyCount = 20; difficulty.enemyPerWave = 1; difficulty.speed = 0; difficulty.maxSpeed = 3; difficulty.maxNextStart = 2; difficulty.maxTroopCount = 3; difficulty.addTroopCount = 6; difficulty.obstacles = 4; difficulty.obstaclesAppear = 6; difficulty.maxInTroops = 4; difficulty.addInTroop = 5; break; case 2: difficulty.enemyCount = 15; difficulty.maxEnemyCount = 30; difficulty.enemyPerWave = 2; difficulty.speed = 0.05; difficulty.maxSpeed = 4; difficulty.maxNextStart = 5; difficulty.maxTroopCount = 5; difficulty.addTroopCount = 4; difficulty.obstacles = 8; difficulty.obstaclesAppear = 4; difficulty.maxInTroops = 6; difficulty.addInTroop = 4; break; case 3: difficulty.enemyCount = 20; difficulty.maxEnemyCount = 35; difficulty.enemyPerWave = 2; difficulty.speed = 0.1; difficulty.maxSpeed = 4.5; difficulty.maxNextStart = 8; difficulty.maxTroopCount = 7; difficulty.addTroopCount = 3; difficulty.obstacles = 10; difficulty.obstaclesAppear = 3; difficulty.maxInTroops = 8; difficulty.addInTroop = 3; }; } private function createObstacles(_arg1:Number):void{ var _local2:Breakable; var _local3:Array; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Cell; _local3 = field.fieldElements.concat(); _local3 = ArrayUtilities.randomize(_local3); _local4 = 0; while (_local4 < _arg1) { _local5 = NumberUtilities.random(0, (field.fieldElements.length - 6)); _local6 = NumberUtilities.random(0, (field.fieldElements[_local5].length - 1)); _local7 = Cell(field.fieldElements[_local5][_local6]); if (((((!(_local7.object)) && (!((((_local5 == 0)) && ((_local6 == 0))))))) && (!((((_local5 == 0)) && ((_local6 == 9))))))){ _local2 = new Breakable(((NumberUtilities.random(1, 10) > 5)) ? "bush" : "stone"); _local2.setCell(_local7.posx, _local7.posy); allEnemys.addChild(_local2); }; _local4++; }; } public function getEnemyCount():Number{ var _local1:Number; var _local2:Number; _local1 = 0; _local2 = (allEnemys.numChildren - 1); while (_local2 >= 0) { if ((allEnemys.getChildAt(_local2) is Enemy)){ _local1++; }; _local2--; }; return (_local1); } private function getBonus(_arg1:String):Bonus{ var _local2:Number; var _local3:Bonus; _local2 = (controlPanel.numChildren - 1); while (_local2 >= 0) { if ((((controlPanel.getChildAt(_local2) is Bonus)) && ((Bonus(controlPanel.getChildAt(_local2)).type == _arg1)))){ return (Bonus(controlPanel.getChildAt(_local2))); }; _local2--; }; _local3 = new Bonus(_arg1); controlPanel.addChild(_local3); return (_local3); } private function startLevel(_arg1:int):void{ wave++; startcell = (((wave % 2))==0) ? -1 : 10; new Wave(0, startcell, 100, _arg1); addWave(); Enemy.speed = (Enemy.speed + difficulty.speed); if (Enemy.speed > difficulty.maxSpeed){ Enemy.speed = difficulty.maxSpeed; }; nextWaveCount++; if (nextWaveCount > difficulty.maxNextStart){ nextWaveCount = difficulty.maxNextStart; }; } private function addScore(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:FlyScore; txtScore.text = (Number(txtScore.text) + _arg1).toString(); _local4 = new FlyScore(); _local4.x = _arg2; _local4.y = _arg3; allExplosion.addChild(_local4); _local4.init(_arg1); if (bonusLives != Math.floor((Number(txtScore.text) / 5000))){ lives = (lives + 1); bonusLives = Math.floor((Number(txtScore.text) / 5000)); }; } private function createBonus(_arg1:Number, _arg2:Number):void{ var _local3:CircleParticle; _local3 = new CircleParticle(_arg1, _arg2, 10, false, 0.5, 1); _local3.setDisplay(new Skull()); bonusGroup.addParticle(_local3); _local3.addForce(new Vector(NumberUtilities.random(-20, 20), NumberUtilities.random(-10, -25))); } public function createRip(_arg1:Cell):void{ var _local2:Rip; var _local3:Number; if (!(_arg1.object is Enemy)){ return; }; _local2 = new Rip(); _local3 = 25; if ((_arg1.object is Enemy)){ _local3 = (_local3 * Enemy(_arg1.object).direction); }; _local2.x = (_arg1.x - _local3); _local2.y = _arg1.y; _arg1.object = _local2; _local2.curCell = _arg1; allEnemys.addChild(_local2); } public function onLoseLife():void{ ecount = 0; if (lives > 0){ createObstacles(difficulty.obstacles); hero.init(); startLevel((((difficulty.enemyCount + (wave * difficulty.enemyPerWave)) > difficulty.maxEnemyCount)) ? difficulty.maxEnemyCount : (difficulty.enemyCount + (wave * difficulty.enemyPerWave))); } else { sounds.stopBackground(); sounds.playBackground("vstuplenie"); hero.visible = false; Mouse.show(); mcGameOver.filters = [new BlurFilter(0, 50, 3), new DropShadowFilter(4, 45, 0, 1, 4, 4, 0.3)]; TweenLite.to(mcGameOver, 0.6, {y:163, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(mcGameOver, 0.6, {type:"Blur", blurY:0, ease:Back.easeOut, overwrite:false}); btnMenu.filters = [new BlurFilter(50, 0, 3), new DropShadowFilter(4, 45, 0, 1, 4, 4, 0.3)]; TweenLite.to(btnMenu, 0.6, {x:333, delay:1, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(btnMenu, 0.6, {type:"Blur", delay:1, blurX:0, ease:Back.easeOut, overwrite:false}); btnSendScore.filters = [new BlurFilter(50, 0, 3), new DropShadowFilter(4, 45, 0, 1, 4, 4, 0.3)]; TweenLite.to(btnSendScore, 0.6, {x:333, delay:1, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(btnSendScore, 0.6, {type:"Blur", delay:1, blurX:0, ease:Back.easeOut, overwrite:false}); }; } private function onClickBackButton(_arg1:MouseEvent):void{ PAUSE = false; dispatchEvent(new Event("game_continue", true)); Mouse.hide(); TweenLite.to(btnMenu, 0.6, {x:770, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(btnMenu, 0.6, {type:"Blur", blurX:50, overwrite:false}); TweenLite.to(mcOptions, 0.6, {x:-140, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(mcOptions, 0.6, {type:"Blur", blurX:50, overwrite:false}); hero.init(); sounds.playSound("click"); } private function createExplosionRip(_arg1:Number, _arg2:Number):void{ var _local3:Explosion; _local3 = new Explosion(); _local3.x = _arg1; _local3.y = _arg2; _local3.clearListener(); allExplosion.addChild(_local3); createRuins(_arg1, _arg2); } public function get lives():Number{ return (_lives); } private function createFieldView():void{ var _local1:Breakable; _local1 = new Breakable("fence_left"); _local1.setCell(13, 0); allEnemys.addChild(_local1); _local1 = new Breakable("fence_right"); _local1.setCell(13, 9); allEnemys.addChild(_local1); } private function createRuins(_arg1:Number, _arg2:Number):void{ var _local3:Ruins; _local3 = new Ruins(); _local3.x = _arg1; _local3.y = (_arg2 + 15); mcBg.addChild(_local3); } private function addWave():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; if ((wave % difficulty.addTroopCount) == 0){ troopsCount++; if (troopsCount > difficulty.maxTroopCount){ troopsCount = difficulty.maxTroopCount; }; }; if (((((wave % difficulty.obstaclesAppear) == 0)) || ((wave == 1)))){ createObstacles(difficulty.obstacles); _local2 = 0; while (_local2 < (mcBg.numChildren / 2)) { if ((mcBg.getChildAt(_local2) is Ruins)){ mcBg.removeChildAt(_local2); }; _local2++; }; }; if ((wave % difficulty.addInTroop) == 0){ soldierInTroop++; if (soldierInTroop > difficulty.maxInTroops){ soldierInTroop = difficulty.maxInTroops; }; }; _local1 = 0; while (_local1 < troopsCount) { _local3 = NumberUtilities.random((2 + _local1), (Field.CELL_HEIGHT - 1)); _local4 = ((NumberUtilities.random(1, 10))>5) ? -1 : 10; _local5 = NumberUtilities.random(soldierInTroop, (soldierInTroop + 2)); _local6 = ((troopsFrequency * (_local1 + 1)) + (1000 * NumberUtilities.random(1, 5))); new Wave(_local3, _local4, _local6, _local5); _local1++; }; } private function detectBonus():void{ var _local1:Number; var _local2:CircleParticle; var _local3:String; var _local4:Bonus; _local1 = 0; while (_local1 < bonusGroup.particles.length) { _local2 = bonusGroup.particles[_local1]; if (_local2.sprite.hitTestPoint(hero.x, hero.y, true)){ removeBonus(_local2); sounds.playSound("scull"); _local3 = bonusTypes[NumberUtilities.random(0, (bonusTypes.length - 1))]; _local4 = getBonus(_local3); switch (_local4.type){ case bonusTypes[0]: bulletInterval = 5; _local4.y = 100; _local4.x = -20; _local4.init(20); break; case bonusTypes[1]: _local4.x = -20; Bullet.TYPE = _local4.type; _local4.y = 200; _local4.init(20); break; case bonusTypes[2]: _local4.x = -20; _local4.y = 150; _local4.init(20); if (scoreMultiplier < 5){ scoreMultiplier++; }; _local4.setScore(scoreMultiplier); break; }; }; if (_local2.py >= 480){ removeBonus(_local2); }; _local1++; }; } public function stopBonus(_arg1:Bonus):void{ getBonus(_arg1.type).remove(); switch (_arg1.type){ case bonusTypes[0]: bulletInterval = 15; break; case bonusTypes[1]: Bullet.TYPE = "bullet"; break; case bonusTypes[2]: scoreMultiplier = 1; break; }; } private function onMouseUp(_arg1:MouseEvent):void{ _slot1.game.isShoot = false; } private function gotoMenu(_arg1:MouseEvent):void{ sounds.stopBackground(); LeaderBoards.instance.visible = false; MovieClip(parent).gotoAndStop("menu"); sounds.playSound("click"); } private function initEngine():void{ APEngine.init((1 / 4)); APEngine.addMasslessForce(new Vector(0, 4)); APEngine.container = this; bonusGroup = new Group(); APEngine.addGroup(bonusGroup); } private function createExplosion(_arg1:Cell, _arg2:Number, _arg3:Number):void{ var _local4:Explosion; _local4 = new Explosion(); _local4.x = _arg2; _local4.y = _arg3; _local4.cell = _arg1; allExplosion.addChild(_local4); } public function set ecount(_arg1:Number):void{ _ecount = _arg1; txtEnemyCount.text = _arg1.toString(); } public function zSorting():void{ var _local1:Array; var _local2:Number; var _local3:Number; _local1 = []; _local2 = 0; while (_local2 < allEnemys.numChildren) { _local1.push({item:allEnemys.getChildAt(_local2), name:getQualifiedClassName(allEnemys.getChildAt(_local2)), z:allEnemys.getChildAt(_local2)["curCell"].depth}); _local2++; }; _local1.sortOn(["z", "name"], Array.NUMERIC); _local3 = 0; while (_local3 < _local1.length) { allEnemys.setChildIndex(_local1[_local3].item, _local3); _local3++; }; } private function destroyEnemy():void{ var _local1:Number; var _local2:Number; bonusGroup.cleanup(); _local1 = 0; while (_local1 < bonusGroup.particles.length) { bonusGroup.removeParticle(bonusGroup.particles[_local2]); _local1++; }; _local2 = (allEnemys.numChildren - 1); while (_local2 >= 0) { if ((allEnemys.getChildAt(_local2) is Enemy)){ Enemy(allEnemys.getChildAt(_local2)).destroy(); }; _local2--; }; } private function getDecreasedInterval():Number{ if (--currentBulletInterval < 0){ currentBulletInterval = 0; }; return (currentBulletInterval); } private function onMouseDown(_arg1:MouseEvent):void{ if (hero.active){ _slot1.game.isShoot = true; }; } public function get ecount():Number{ return (_ecount); } private function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ESCAPE){ showMenu(); }; } public function hitEnemy(_arg1:Bullet):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Enemy; var _local6:Rip; var _local7:Breakable; _local2 = _arg1.damage; _local3 = 4; _local4 = 0; while (_local4 < allEnemys.numChildren) { if ((allEnemys.getChildAt(_local4) is Enemy)){ _local5 = Enemy(allEnemys.getChildAt(_local4)); if (_local5.hitTestPoint(_arg1.x, _arg1.y, true)){ _arg1.remove(); sounds.playSound(("hit" + NumberUtilities.random(3, (_local3 + 1)).toString())); if (_local5.decreaseLife(_local2) <= 0){ allEnemys.removeChildAt(_local4); _local5.remove(); ecount--; if (ecount == nextWaveCount){ startLevel((((difficulty.enemyCount + (wave * difficulty.enemyPerWave)) > difficulty.maxEnemyCount)) ? difficulty.maxEnemyCount : (difficulty.enemyCount + (wave * difficulty.enemyPerWave))); }; createExplosion(_local5.curCell, _local5.x, _local5.y); addScore((1 * scoreMultiplier), _local5.x, _local5.y); break; }; }; }; if ((allEnemys.getChildAt(_local4) is Rip)){ _local6 = Rip(allEnemys.getChildAt(_local4)); if (_local6.hitTestPoint(_arg1.x, _arg1.y, true)){ _arg1.remove(); sounds.playSound(("hit" + NumberUtilities.random(1, _local3).toString())); if (_local6.decreaseLife(_local2) <= 0){ _local6.curCell.object = null; createExplosionRip(_local6.x, _local6.y); allEnemys.removeChildAt(_local4); if (--nextBonus == 0){ sounds.playSound("skullapear"); createBonus(_arg1.x, _arg1.y); nextBonus = NumberUtilities.random((5 + Math.floor((wave / 5))), (10 + Math.floor((wave / 5)))); }; addScore((5 * scoreMultiplier), _arg1.x, _arg1.y); break; }; }; } else { if ((allEnemys.getChildAt(_local4) is Breakable)){ _local7 = Breakable(allEnemys.getChildAt(_local4)); if (_local7.hitTestPoint(_arg1.x, (_arg1.y + 20), true)){ _arg1.remove(); sounds.playSound(("hit" + NumberUtilities.random(1, _local3).toString())); if (_local7.decreaseLife(_local2) <= 0){ _local7.curCell.object = null; createExplosionRip(_local7.x, _local7.y); allEnemys.removeChildAt(_local4); addScore((10 * scoreMultiplier), _local7.x, _local7.y); break; }; }; }; }; _local4++; }; } private function sendScore(_arg1:MouseEvent):void{ LeaderBoards.instance.score = Number(txtScore.text); LeaderBoards.instance.showUserName(); sounds.playSound("click"); TweenLite.to(mcGameOver, 0.6, {y:-150, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(mcGameOver, 0.6, {type:"Blur", blurY:30, ease:Back.easeOut, overwrite:false}); TweenLite.to(btnSendScore, 0.6, {x:753, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(btnSendScore, 0.6, {type:"Blur", blurX:50, ease:Back.easeOut, overwrite:false}); } private function showMenu():void{ Mouse.show(); btnMenu.filters = [new BlurFilter(50, 0, 3), new DropShadowFilter(4, 45, 0, 1, 4, 4, 0.3)]; TweenLite.to(btnMenu, 0.6, {x:333, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(btnMenu, 0.6, {type:"Blur", blurX:0, ease:Back.easeOut, overwrite:false}); mcOptions.filters = [new BlurFilter(50, 0, 3), new DropShadowFilter(4, 45, 0, 1, 4, 4, 0.3)]; TweenLite.to(mcOptions, 0.6, {x:333, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(mcOptions, 0.6, {type:"Blur", blurX:0, ease:Back.easeOut, overwrite:false}); PAUSE = true; dispatchEvent(new Event("game_pause", true)); hero.stopDrag(); } public static function get game():Game{ return (GAME); } } }//package
Section 65
//GameMenu (GameMenu) package { import gs.*; import flash.events.*; import flash.display.*; import flash.filters.*; import CMG_AS3.*; import flash.net.*; public class GameMenu extends MovieClip { public var menuinstruction_mc:MovieClip; public var menuhighscores_mc:MovieClip; private var btnInstructions:SimpleButton; private var mcCredits:CreditsMenu; private var mcOptions:OptionsMenu; public var moregames_btn:SimpleButton; private var btnDificulty:SimpleButton; private var btnInstructionsX:Number; private var mcInstructions:MovieClip; public var highscores_btn:SimpleButton; private var t:Number;// = 0.3 private var mcHighscores:MovieClip; private var btnCredits:SimpleButton; private var btnOptions:SimpleButton; public var instructions_btn:SimpleButton; private var btnMoreGamesX:Number; public var start_btn:SimpleButton; public var credits_btn:SimpleButton; private var sounds:SoundController; private var btnStart:SimpleButton; private var btnMoreGames:SimpleButton; public var menuoptions_mc:OptionsMenu; private var btnCreditsX:Number; private var btnDificultyX:Number; public var option_btn:SimpleButton; public var menudifficulty_mc:MovieClip; private var btnHighscoreX:Number; private var btnStartX:Number; private var btnHighscores:SimpleButton; public var difficulty_btn:SimpleButton; private var mcDifficulty:MovieClip; public var menucredits_mc:CreditsMenu; private var btnOptionsX:Number; public static var DIFFICULTY:Number = 2; private static var INSTANCE:GameMenu; public function GameMenu(){ t = 0.3; super(); INSTANCE = this; sounds = SoundController.getInstance(); sounds.playBackground("vstuplenie"); btnStart = this["start_btn"]; btnStart.addEventListener(MouseEvent.CLICK, onClickStartButton); btnHighscores = this["highscores_btn"]; btnHighscores.addEventListener(MouseEvent.CLICK, showLeaderBoards); btnDificulty = this["difficulty_btn"]; btnDificulty.addEventListener(MouseEvent.CLICK, showDifficultMenu); btnInstructions = this["instructions_btn"]; btnInstructions.addEventListener(MouseEvent.CLICK, showInstructios); btnOptions = this["option_btn"]; btnOptions.addEventListener(MouseEvent.CLICK, onClickOptionsButton); btnCredits = this["credits_btn"]; btnCredits.addEventListener(MouseEvent.CLICK, onClickCreditButton); btnMoreGames = this["moregames_btn"]; btnMoreGames.addEventListener(MouseEvent.CLICK, onMoreGames); mcCredits = this["menucredits_mc"]; mcCredits.alpha = 0; mcCredits.btnBack.addEventListener(MouseEvent.CLICK, closeCredits); mcOptions = this["menuoptions_mc"]; mcOptions.alpha = 0; mcOptions.bg.visible = false; mcOptions.btnBack.addEventListener(MouseEvent.CLICK, onClickBackButton); mcDifficulty = this["menudifficulty_mc"]; mcDifficulty.alpha = 0; mcDifficulty["back_btn"].addEventListener(MouseEvent.CLICK, closeDifficultyMenu); mcDifficulty["deasy_btn"].addEventListener(MouseEvent.CLICK, setDifficulty); mcDifficulty["dnormal_btn"].addEventListener(MouseEvent.CLICK, setDifficulty); mcDifficulty["dhard_btn"].addEventListener(MouseEvent.CLICK, setDifficulty); mcHighscores = this["menuhighscores_mc"]; mcHighscores.alpha = 0; mcHighscores["back_btn"].addEventListener(MouseEvent.CLICK, closeHighscoresMenu); mcHighscores["deasy_btn"].addEventListener(MouseEvent.CLICK, showScore); mcHighscores["dnormal_btn"].addEventListener(MouseEvent.CLICK, showScore); mcHighscores["dhard_btn"].addEventListener(MouseEvent.CLICK, showScore); mcInstructions = this["menuinstruction_mc"]; mcInstructions.alpha = 0; mcInstructions["back_btn"].addEventListener(MouseEvent.CLICK, closeInstructions); btnStartX = btnStart.x; btnOptionsX = btnOptions.x; btnCreditsX = btnCredits.x; btnDificultyX = btnDificulty.x; btnHighscoreX = btnHighscores.x; btnInstructionsX = btnInstructions.x; btnMoreGamesX = btnMoreGames.x; alpha = 0; TweenLite.to(this, (t * 2), {alpha:1, overwrite:false}); TweenFilterLite.from(this, (t * 2), {type:"Blur", blurX:50, overwrite:false}); } private function hideMainMenu():void{ btnStart.enabled = (btnOptions.enabled = (btnCredits.enabled = false)); TweenLite.to(btnStart, t, {x:125, overwrite:false, alpha:0}); TweenFilterLite.to(btnStart, t, {type:"Blur", blurX:50, overwrite:false}); TweenLite.to(btnOptions, t, {x:125, overwrite:false, alpha:0}); TweenFilterLite.to(btnOptions, t, {type:"Blur", blurX:50, overwrite:false}); TweenLite.to(btnCredits, t, {x:125, overwrite:false, alpha:0}); TweenFilterLite.to(btnCredits, t, {type:"Blur", blurX:50, overwrite:false}); TweenLite.to(btnHighscores, t, {x:125, overwrite:false, alpha:0}); TweenFilterLite.to(btnHighscores, t, {type:"Blur", blurX:50, overwrite:false}); TweenLite.to(btnDificulty, t, {x:125, overwrite:false, alpha:0}); TweenFilterLite.to(btnDificulty, t, {type:"Blur", blurX:50, overwrite:false}); TweenLite.to(btnInstructions, t, {x:125, overwrite:false, alpha:0}); TweenFilterLite.to(btnInstructions, t, {type:"Blur", blurX:50, overwrite:false}); TweenLite.to(btnMoreGames, t, {x:125, overwrite:false, alpha:0}); TweenFilterLite.to(btnMoreGames, t, {type:"Blur", blurX:50, overwrite:false}); } private function closeHighscoresMenu(_arg1:MouseEvent):void{ showMainMenu(); TweenLite.to(mcHighscores, t, {x:752, alpha:0, overwrite:false}); TweenFilterLite.to(mcHighscores, t, {type:"Blur", blurX:50, overwrite:false}); sounds.playSound("click"); } private function showLeaderBoards(_arg1:MouseEvent):void{ hideMainMenu(); mcHighscores.filters = [new BlurFilter(50, 0, 3)]; TweenLite.to(mcHighscores, t, {x:442, alpha:1, overwrite:false}); TweenFilterLite.to(mcHighscores, t, {type:"Blur", blurX:0, overwrite:false}); sounds.playSound("click"); } private function onClickBackButton(_arg1:Event):void{ showMainMenu(); TweenLite.to(mcOptions, t, {x:752, alpha:0, overwrite:false}); TweenFilterLite.to(mcOptions, t, {type:"Blur", blurX:50, overwrite:false}); sounds.playSound("click"); } private function showMainMenu():void{ btnStart.enabled = (btnOptions.enabled = (btnCredits.enabled = true)); TweenLite.to(btnStart, t, {x:btnStartX, overwrite:false, alpha:1}); TweenFilterLite.to(btnStart, t, {type:"Blur", blurX:0, overwrite:false}); TweenLite.to(btnOptions, t, {x:btnOptionsX, overwrite:false, alpha:1}); TweenFilterLite.to(btnOptions, t, {type:"Blur", blurX:0, overwrite:false}); TweenLite.to(btnCredits, t, {x:btnCreditsX, overwrite:false, alpha:1}); TweenFilterLite.to(btnCredits, t, {type:"Blur", blurX:0, overwrite:false}); TweenLite.to(btnHighscores, t, {x:btnHighscoreX, overwrite:false, alpha:1}); TweenFilterLite.to(btnHighscores, t, {type:"Blur", blurX:0, overwrite:false}); TweenLite.to(btnDificulty, t, {x:btnDificultyX, overwrite:false, alpha:1}); TweenFilterLite.to(btnDificulty, t, {type:"Blur", blurX:0, overwrite:false}); TweenLite.to(btnInstructions, t, {x:btnDificultyX, overwrite:false, alpha:1}); TweenFilterLite.to(btnInstructions, t, {type:"Blur", blurX:0, overwrite:false}); TweenLite.to(btnMoreGames, t, {x:btnMoreGamesX, overwrite:false, alpha:1}); TweenFilterLite.to(btnMoreGames, t, {type:"Blur", blurX:0, overwrite:false}); } private function showDifficultMenu(_arg1:MouseEvent):void{ hideMainMenu(); mcDifficulty.filters = [new BlurFilter(50, 0, 3)]; TweenLite.to(mcDifficulty, t, {x:442, alpha:1, overwrite:false}); TweenFilterLite.to(mcDifficulty, t, {type:"Blur", blurX:0, overwrite:false}); mcDifficulty["slider"].y = (-97 + (25 * (DIFFICULTY - 1))); sounds.playSound("click"); } private function onClickOptionsButton(_arg1:MouseEvent):void{ hideMainMenu(); mcOptions.filters = [new BlurFilter(50, 0, 3)]; TweenLite.to(mcOptions, t, {x:442, alpha:1, overwrite:false}); TweenFilterLite.to(mcOptions, t, {type:"Blur", blurX:0, overwrite:false}); sounds.playSound("click"); } private function onClickCreditButton(_arg1:MouseEvent):void{ hideMainMenu(); mcCredits.filters = [new BlurFilter(50, 0, 3)]; TweenLite.to(mcCredits, t, {x:442, alpha:1, overwrite:false}); TweenFilterLite.to(mcCredits, t, {type:"Blur", blurX:0, overwrite:false}); sounds.playSound("click"); } private function onMoreGames(_arg1:MouseEvent):void{ var url:String; var request:URLRequest; var event = _arg1; url = "http://crazymonkeygames.com"; request = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { }; } private function showInstructios(_arg1:MouseEvent):void{ hideMainMenu(); mcInstructions.filters = [new BlurFilter(50, 0, 3)]; TweenLite.to(mcInstructions, t, {x:442, alpha:1, overwrite:false}); TweenFilterLite.to(mcInstructions, t, {type:"Blur", blurX:0, overwrite:false}); sounds.playSound("click"); } private function startGame():void{ MovieClip(parent).gotoAndStop("game"); } private function closeCredits(_arg1:MouseEvent):void{ showMainMenu(); TweenLite.to(mcCredits, t, {x:752, alpha:0, overwrite:false}); TweenFilterLite.to(mcCredits, t, {type:"Blur", blurX:50, overwrite:false}); sounds.playSound("click"); } private function onClickStartButton(_arg1:MouseEvent):void{ TweenLite.to(this, (t * 3), {alpha:0, overwrite:false}); TweenFilterLite.to(this, (t * 3), {type:"Blur", blurX:50, overwrite:false, onComplete:startGame}); sounds.playSound("click"); sounds.stopBackground(); sounds.playBackground("back"); } private function showScore(_arg1:MouseEvent):void{ var _local2:SimpleButton; _local2 = (_arg1.currentTarget as SimpleButton); switch (_local2.name){ case "deasy_btn": ScoreSubmitter.gameId = 391; break; case "dnormal_btn": ScoreSubmitter.gameId = 392; break; case "dhard_btn": ScoreSubmitter.gameId = 393; break; }; ScoreSubmitter.loadHighScorePage(); } private function setDifficulty(_arg1:MouseEvent):void{ var _local2:SimpleButton; _local2 = (_arg1.currentTarget as SimpleButton); mcDifficulty["slider"].y = (_local2.y + 11); switch (_local2.name){ case "deasy_btn": DIFFICULTY = 1; break; case "dnormal_btn": DIFFICULTY = 2; break; case "dhard_btn": DIFFICULTY = 3; break; }; } private function closeInstructions(_arg1:MouseEvent):void{ showMainMenu(); TweenLite.to(mcInstructions, t, {x:752, alpha:0, overwrite:false}); TweenFilterLite.to(mcInstructions, t, {type:"Blur", blurX:50, overwrite:false}); sounds.playSound("click"); } private function closeDifficultyMenu(_arg1:Event):void{ showMainMenu(); TweenLite.to(mcDifficulty, t, {x:752, alpha:0, overwrite:false}); TweenFilterLite.to(mcDifficulty, t, {type:"Blur", blurX:50, overwrite:false}); sounds.playSound("click"); } public static function getInstance():GameMenu{ return (INSTANCE); } } }//package
Section 66
//Hero (Hero) package { import flash.display.*; import flash.geom.*; public class Hero extends MovieClip { public var active:Boolean; public function Hero(){ addFrameScript(0, frame1, 11, frame12, 19, frame20); } public function init():void{ startDrag(true, new Rectangle(15, 350, 610, 110)); gotoAndStop("stay"); } override public function stopDrag():void{ super.stopDrag(); active = false; } function frame12(){ gotoAndPlay("stay"); } function frame1(){ stop(); } function frame20(){ gotoAndPlay("lose"); } override public function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void{ super.startDrag(_arg1, _arg2); active = true; } } }//package
Section 67
//hit1 (hit1) package { import flash.media.*; public dynamic class hit1 extends Sound { } }//package
Section 68
//hit2 (hit2) package { import flash.media.*; public dynamic class hit2 extends Sound { } }//package
Section 69
//hit3 (hit3) package { import flash.media.*; public dynamic class hit3 extends Sound { } }//package
Section 70
//hit4 (hit4) package { import flash.media.*; public dynamic class hit4 extends Sound { } }//package
Section 71
//hit5 (hit5) package { import flash.media.*; public dynamic class hit5 extends Sound { } }//package
Section 72
//hit6 (hit6) package { import flash.media.*; public dynamic class hit6 extends Sound { } }//package
Section 73
//LeaderBoards (LeaderBoards) package { import ascb.util.*; import gs.*; import flash.events.*; import flash.display.*; import flash.filters.*; import mochi.*; import CMG_AS3.*; import fl.motion.easing.*; import flash.net.*; import flash.text.*; public class LeaderBoards extends MovieClip { public var boardHard:String;// = "8b1df28bd86abee3" private var btnDone:SimpleButton; private var hsOutput:TextField; public var boardEasy:String;// = "e7c10932e596d8be" private var btnMonthly:SimpleButton; private var btnDaily:SimpleButton; private var mcTabDifficult:MovieClip; private var btnWeekly:SimpleButton; private var sounds:SoundController; private var btnNormal:SimpleButton; public var boardNormal:String;// = "06ec0ae0a0897027" private var btnHard:SimpleButton; private var mcBlocker:MovieClip; private var container:MovieClip; private var txtUserName:TextField; public var score:Number; private var btnSubmit:SimpleButton; private var btnEasy:SimpleButton; private var mcTabTime:MovieClip; private var mcUserInput:MovieClip; private var mcWaiting:MovieClip; private var newScores:Object; private var btnViewScore:SimpleButton; private var btnAlltime:SimpleButton; public var userinput_mc:MovieClip; private static var _instance:LeaderBoards; public function LeaderBoards(){ boardNormal = "06ec0ae0a0897027"; boardEasy = "e7c10932e596d8be"; boardHard = "8b1df28bd86abee3"; sounds = SoundController.getInstance(); super(); _instance = this; visible = false; mcUserInput = this["userinput_mc"]; btnSubmit = mcUserInput["submit_btn"]; btnSubmit.addEventListener(MouseEvent.CLICK, submitScore); txtUserName = mcUserInput["name_txt"]; hsOutput = mcUserInput["output_txt"]; btnViewScore = mcUserInput["view_btn"]; btnViewScore.addEventListener(MouseEvent.CLICK, viewScore); } public function showUserName():void{ visible = true; mcUserInput.x = 800; hsOutput.text = ""; mcUserInput.gotoAndStop(1); mcUserInput.filters = [new BlurFilter(50, 0, 3), new DropShadowFilter(4, 45, 0, 1, 4, 4, 0.3)]; TweenLite.to(mcUserInput, 0.6, {x:333, delay:0.5, overwrite:false, ease:Back.easeOut}); TweenFilterLite.to(mcUserInput, 0.6, {type:"Blur", delay:0.5, blurX:0, ease:Back.easeOut, overwrite:false}); } public function changeBoard(_arg1:MouseEvent=null):void{ while (container.numChildren > 0) { container.removeChildAt(0); }; if (_arg1 == null){ getRequest(boardNormal); mcTabDifficult.gotoAndStop(2); return; }; switch (_arg1.currentTarget){ case btnEasy: getRequest(boardEasy); mcTabDifficult.gotoAndStop(1); break; case btnNormal: getRequest(boardNormal); mcTabDifficult.gotoAndStop(2); break; case btnHard: getRequest(boardHard); mcTabDifficult.gotoAndStop(3); break; }; } private function show(_arg1:String):void{ var _local2:TextField; var _local3:*; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:*; var _local8:*; var _local9:TextClip; var _local10:TextClip; var _local11:NumberFormat; var _local12:TextClip; var _local13:Date; var _local14:DateFormat; var _local15:TextClip; var _local16:Loader; var _local17:String; var _local18:URLRequest; _local2 = this["currentplace_txt"]; if (newScores.places != null){ _local2.text = ((txtUserName.text + " ") + newScores.places[_arg1]); if (Number(newScores.places[_arg1]) < 11){ _local2.text = ""; }; } else { _local2.text = ""; }; switch (_arg1){ case "daily": mcTabTime.gotoAndStop(1); break; case "weekly": mcTabTime.gotoAndStop(2); break; case "monthly": mcTabTime.gotoAndStop(3); break; case "alltime": mcTabTime.gotoAndStop(4); break; }; for (_local3 in newScores) { trace(((("myObject." + _local3) + " = ") + newScores[_local3])); for (_local7 in newScores[_local3]) { trace(((((("myObject." + _local3) + ".") + _local7) + " = ") + newScores[_local3][_local7])); for (_local8 in newScores[_local3][_local7]) { trace(((((((("myObject." + _local3) + ".") + _local7) + ".") + _local8) + " = ") + newScores[_local3][_local7][_local8])); }; }; }; while (container.numChildren > 0) { container.removeChildAt(0); }; _local4 = 170; _local5 = ((newScores[_arg1].length)>10) ? 10 : newScores[_arg1].length; _local6 = 0; while (_local6 < _local5) { _local9 = new TextClip((_local6 + 1).toString()); container.addChild(_local9); _local9.x = 100; _local9.y = (_local4 + (_local6 * 20)); _local10 = new TextClip(newScores[_arg1][_local6].name); container.addChild(_local10); _local10.x = 150; _local10.y = (_local4 + (_local6 * 20)); _local11 = new NumberFormat(); _local12 = new TextClip(_local11.format(Number(newScores[_arg1][_local6].score))); container.addChild(_local12); _local12.x = 370; _local12.y = (_local4 + (_local6 * 20)); _local13 = new Date(Number(newScores[_arg1][_local6].timestamp)); _local14 = new DateFormat("M d Y"); _local15 = new TextClip(_local14.format(_local13)); container.addChild(_local15); _local15.x = 440; _local15.y = (_local4 + (_local6 * 20)); _local16 = new Loader(); _local17 = (("http://xs.mochiads.com/static/lib/flags/" + newScores[_arg1][_local6].geo) + ".swf"); _local18 = new URLRequest(_local17); _local16.load(_local18); container.addChild(_local16); _local16.x = 122; _local16.y = ((_local4 + (_local6 * 20)) + 5); _local6++; }; } private function showBoard(_arg1:MouseEvent):void{ switch (_arg1.currentTarget){ case btnDaily: show("daily"); break; case btnWeekly: show("weekly"); break; case btnMonthly: show("monthly"); break; case btnAlltime: show("alltime"); break; }; } private function onScoreResponse(_arg1:ServerResponseEvent):void{ switch (_arg1.returnCode){ case ScoreSubmitter.RETURNCODE_WORKING: hsOutput.text = "Submitting..."; break; case ScoreSubmitter.RETURNCODE_SUCCESS: hsOutput.text = "Your score has been submitted!"; ScoreSubmitter.loadHighScorePage(); break; case ScoreSubmitter.RETURNCODE_REJECTED: hsOutput.text = "The server rejected your score!"; break; case ScoreSubmitter.RETURNCODE_WRONGVERSION: hsOutput.text = "This is the wrong version of the game. Check for the newest version at CrazyMonkeyGames.com"; ScoreSubmitter.loadUpdatePage(); break; case ScoreSubmitter.RETURNCODE_NETWORKERROR: hsOutput.text = "Your score could not reach the server at this time."; break; default: hsOutput.text = ("Unknown error " + _arg1.returnCode); break; }; } private function submitScore(_arg1:MouseEvent):void{ var _local2:ScoreSubmitter; if (txtUserName.text.length > 0){ switch (GameMenu.DIFFICULTY){ case 1: ScoreSubmitter.gameId = 391; ScoreSubmitter.gameVersion = "1.0"; ScoreSubmitter.gameValidationCode = "lege49913861954f34694cea019f9a3be330"; break; case 2: ScoreSubmitter.gameId = 392; ScoreSubmitter.gameVersion = "1.0"; ScoreSubmitter.gameValidationCode = "lege5087c35391082a9c765a9abe2db3ee46"; break; case 3: ScoreSubmitter.gameId = 393; ScoreSubmitter.gameVersion = "1.0"; ScoreSubmitter.gameValidationCode = "legefe0a51d592b10f60ba7612e1bfa96fad"; break; }; _local2 = new ScoreSubmitter(); _local2.addEventListener(ScoreSubmitter.SCORE_RESPONSE, onScoreResponse); _local2.submitScore(txtUserName.text, Number(score)); mcUserInput.gotoAndStop(2); }; } public function getRequest(_arg1:String):void{ while (container.numChildren > 0) { container.removeChildAt(0); }; visible = true; MochiScores.setBoardID(_arg1); MochiScores.requestList(this.parent, "onScoresReceived"); showWaiting(); } private function showWaiting():void{ setChildIndex(mcBlocker, (numChildren - 1)); setChildIndex(btnDone, (numChildren - 1)); mcWaiting.visible = true; } public function onGetPlayerInfo(_arg1:Object):void{ txtUserName.text = _arg1["name"]; } private function onRequest(_arg1:Object):void{ hideWaiting(); this.newScores = _arg1; show("daily"); } private function hideWaiting():void{ setChildIndex(mcBlocker, 0); mcWaiting.visible = false; } public function onSentScore(_arg1:Object):void{ hideWaiting(); this.newScores = MochiScores.scoresArrayToObjects(_arg1.scores); show("daily"); } private function closeBoard(_arg1:MouseEvent):void{ visible = false; if (MovieClip(parent).currentLabel != "menu"){ sounds.stopBackground(); }; MovieClip(parent).gotoAndStop("menu"); } private function viewScore(_arg1:MouseEvent):void{ switch (GameMenu.DIFFICULTY){ case 1: ScoreSubmitter.gameId = 391; break; case 2: ScoreSubmitter.gameId = 392; break; case 3: ScoreSubmitter.gameId = 393; break; }; ScoreSubmitter.loadHighScorePage(); } public static function get instance():LeaderBoards{ return (_instance); } } }//package
Section 74
//OptionsMenu (OptionsMenu) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; public class OptionsMenu extends MovieClip { public var back_btn:SimpleButton; private var sliderMusicVolume:MovieClip; public var slider_music_volume:MovieClip; private var txtMusicVolume:TextField; private var sounds:SoundController; public var bg:MovieClip; public var volume_sound_txt:TextField; public var btnBack:SimpleButton; private var boundsMusic:Rectangle; public var volume_music_txt:TextField; private var btnQMedium:SimpleButton; public var options_menu_bg:MovieClip; private var sliderSoundVolume:MovieClip; private var txtSoundVolume:TextField; public var qlow_btn:SimpleButton; private var btnQLow:SimpleButton; public var slider_quality:MovieClip; private var boundsSounds:Rectangle; public var qhigh_btn:SimpleButton; private var btnQHigh:SimpleButton; public var qmedium_btn:SimpleButton; private var sliderQuality:MovieClip; public var slider_sound_volume:MovieClip; public function OptionsMenu(){ sounds = SoundController.getInstance(); super(); btnQHigh = this["qhigh_btn"]; btnQHigh.addEventListener(MouseEvent.CLICK, onChangeQuality); btnQLow = this["qmedium_btn"]; btnQLow.addEventListener(MouseEvent.CLICK, onChangeQuality); btnQMedium = this["qlow_btn"]; btnQMedium.addEventListener(MouseEvent.CLICK, onChangeQuality); btnBack = this["back_btn"]; bg = this["options_menu_bg"]; txtSoundVolume = this["volume_sound_txt"]; txtMusicVolume = this["volume_music_txt"]; sliderQuality = this["slider_quality"]; sliderQuality.y = (btnQHigh.y + 11); sliderMusicVolume = this["slider_music_volume"]; sliderMusicVolume.buttonMode = true; sliderMusicVolume.addEventListener(MouseEvent.MOUSE_DOWN, onPressMusicVolumeSlider); sliderSoundVolume = this["slider_sound_volume"]; sliderSoundVolume.buttonMode = true; sliderSoundVolume.addEventListener(MouseEvent.MOUSE_DOWN, onPressSoundVolumeSlider); boundsSounds = new Rectangle((sliderSoundVolume.x - 100), sliderSoundVolume.y, 101, 0); boundsMusic = new Rectangle((sliderMusicVolume.x - 100), sliderMusicVolume.y, 101, 0); sliderSoundVolume.x = Math.floor((((sounds.volume / 100) * boundsSounds.width) + boundsSounds.x)); txtSoundVolume.text = (sounds.volume.toString() + "%"); sliderMusicVolume.x = Math.floor((((sounds.musicVolume / 100) * boundsMusic.width) + boundsMusic.x)); txtMusicVolume.text = (sounds.musicVolume.toString() + "%"); } private function onPressSoundVolumeSlider(_arg1:MouseEvent):void{ MovieClip(parent).addEventListener(MouseEvent.MOUSE_UP, onUpSoundVolumeSlider); sliderSoundVolume.addEventListener(MouseEvent.MOUSE_MOVE, onChangeSoundVolume); sliderSoundVolume.startDrag(false, boundsSounds); } private function onChangeSoundVolume(_arg1:MouseEvent):void{ sounds.volume = Math.ceil(((Math.floor((sliderSoundVolume.x - boundsSounds.x)) / boundsSounds.width) * 100)); txtSoundVolume.text = (sounds.volume.toString() + "%"); } private function onPressMusicVolumeSlider(_arg1:MouseEvent):void{ MovieClip(parent).addEventListener(MouseEvent.MOUSE_UP, onUpMusicVolumeSlider); sliderMusicVolume.addEventListener(MouseEvent.MOUSE_MOVE, onChangeMusicVolume); sliderMusicVolume.startDrag(false, boundsMusic); } private function onUpSoundVolumeSlider(_arg1:MouseEvent):void{ sliderSoundVolume.stopDrag(); MovieClip(parent).removeEventListener(MouseEvent.MOUSE_UP, onUpSoundVolumeSlider); sliderSoundVolume.removeEventListener(MouseEvent.MOUSE_MOVE, onChangeSoundVolume); } private function onChangeQuality(_arg1:MouseEvent):void{ var _local2:SimpleButton; _local2 = (_arg1.currentTarget as SimpleButton); sliderQuality.y = (_local2.y + 11); switch (_local2.name){ case btnQHigh.name: stage.quality = StageQuality.HIGH; break; case btnQMedium.name: stage.quality = StageQuality.MEDIUM; break; case btnQLow.name: stage.quality = StageQuality.LOW; break; }; } private function onUpMusicVolumeSlider(_arg1:MouseEvent):void{ sliderMusicVolume.stopDrag(); MovieClip(parent).removeEventListener(MouseEvent.MOUSE_UP, onUpMusicVolumeSlider); sliderMusicVolume.removeEventListener(MouseEvent.MOUSE_MOVE, onChangeMusicVolume); } private function onChangeMusicVolume(_arg1:MouseEvent):void{ sounds.musicVolume = Math.ceil(((Math.floor((sliderMusicVolume.x - boundsMusic.x)) / boundsMusic.width) * 100)); txtMusicVolume.text = (sounds.musicVolume.toString() + "%"); } } }//package
Section 75
//Rip (Rip) package { import ascb.util.*; import flash.display.*; public class Rip extends MovieClip { private var life:Number; private var mcBody:MovieClip; private var maxlife:Number;// = 4 public var curCell:Cell; public var body1:MovieClip; public var body2:MovieClip; public var body3:MovieClip; public function Rip(){ maxlife = 4; super(); life = maxlife; this["body1"].visible = false; this["body2"].visible = false; this["body3"].visible = false; mcBody = this[("body" + NumberUtilities.random(1, 3))]; mcBody.visible = true; mcBody.gotoAndStop(1); } public function decreaseLife(_arg1:Number):Number{ life = (life - _arg1); mcBody.gotoAndStop(((maxlife - life) + 1)); return (life); } } }//package
Section 76
//rocket_snd (rocket_snd) package { import flash.media.*; public dynamic class rocket_snd extends Sound { } }//package
Section 77
//Ruins (Ruins) package { import flash.display.*; public class Ruins extends MovieClip { } }//package
Section 78
//scull (scull) package { import flash.media.*; public dynamic class scull extends Sound { } }//package
Section 79
//Skull (Skull) package { import flash.display.*; public class Skull extends MovieClip { public function Skull(){ scaleX = (scaleY = 0.75); } } }//package
Section 80
//skullapear (skullapear) package { import flash.media.*; public dynamic class skullapear extends Sound { } }//package
Section 81
//SoundController (SoundController) package { import flash.media.*; import flash.utils.*; public class SoundController { public var _musicVolume:Number;// = 50 private var channelBgMisic:SoundChannel; private var _volume:Number;// = 100 public static var __instance:SoundController; public function SoundController(_arg1:SingletonEnforcer){ _volume = 100; _musicVolume = 50; super(); } public function playBackground(_arg1:String):void{ var v:Number; var soundClass:Class; var soundInstance:Sound; var transform:SoundTransform; var soundName = _arg1; v = musicVolume; try { soundClass = (getDefinitionByName(soundName) as Class); soundInstance = new (soundClass); channelBgMisic = soundInstance.play(0, 9999); transform = channelBgMisic.soundTransform; transform.volume = (v / 100); channelBgMisic.soundTransform = transform; } catch(e:Error) { }; } public function stopBackground():void{ try { channelBgMisic.stop(); } catch(e:Error) { }; } public function set volume(_arg1:Number):void{ _volume = _arg1; } public function get volume():Number{ return (_volume); } public function playSound(_arg1:String):void{ var v:Number; var soundClass:Class; var soundInstance:Sound; var channel:SoundChannel; var transform:SoundTransform; var soundName = _arg1; v = volume; try { soundClass = (getDefinitionByName(soundName) as Class); soundInstance = new (soundClass); channel = soundInstance.play(); transform = channel.soundTransform; transform.volume = (v / 100); channel.soundTransform = transform; } catch(e:Error) { }; } public function set musicVolume(_arg1:Number):void{ var _local2:SoundTransform; _musicVolume = _arg1; if (channelBgMisic){ _local2 = channelBgMisic.soundTransform; _local2.volume = (_arg1 / 100); channelBgMisic.soundTransform = _local2; }; } public function get musicVolume():Number{ return (_musicVolume); } public static function getInstance():SoundController{ if (__instance == null){ __instance = new SoundController(new SingletonEnforcer()); }; return (__instance); } } }//package class SingletonEnforcer { private function SingletonEnforcer(){ } }
Section 82
//TextClip (TextClip) package { import flash.display.*; import flash.text.*; public class TextClip extends MovieClip { private var text:TextField; public var txt:TextField; public function TextClip(_arg1:String){ text = this["txt"]; text.text = _arg1; } } }//package
Section 83
//Wave (Wave) package { import flash.events.*; import flash.utils.*; public class Wave { private var startTimer:Timer; private var needStartWave:Boolean;// = false private var delay:Number; private var ecount:Number; private var startx:Number; private var starty:Number; private var needStartEnemy:Boolean;// = false private var enemyTimer:Timer; public function Wave(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ needStartWave = false; needStartEnemy = false; super(); startx = _arg1; starty = _arg2; delay = _arg3; ecount = _arg4; startTimer = new Timer(delay, 1); startTimer.addEventListener(TimerEvent.TIMER, startWave); startTimer.start(); Game.game.waves.push(this); Game.game.addEventListener("game_pause", onGamePause); Game.game.addEventListener("game_continue", onGameContinue); } public function stop():void{ try { Game.game.removeEventListener("game_pause", onGamePause); Game.game.removeEventListener("game_continue", onGameContinue); enemyTimer.stop(); startTimer.stop(); startTimer = null; enemyTimer = null; } catch(e:Error) { trace("broken wave"); }; } private function createEnemys(_arg1:TimerEvent):void{ var _local2:Enemy; if (!Game.game.hero.active){ return; }; _local2 = new Enemy(); Game.game.allEnemys.addChildAt(_local2, 0); _local2.cellx = startx; _local2.celly = starty; _local2.startMove(); } private function onGamePause(_arg1:Event):void{ var event = _arg1; try { if (enemyTimer.running){ needStartEnemy = true; }; enemyTimer.stop(); if (startTimer.running){ needStartWave = true; }; startTimer.stop(); } catch(e:Error) { trace("broken wave"); }; } private function startWave(_arg1:TimerEvent):void{ if (!Game.game.hero.active){ return; }; if (Game.game.ecount >= 50){ startTimer = new Timer(delay, 1); startTimer.addEventListener(TimerEvent.TIMER, startWave); startTimer.start(); return; }; enemyTimer = new Timer(400, ecount); enemyTimer.addEventListener(TimerEvent.TIMER, createEnemys); Game.game.ecount = (Game.game.ecount + ecount); enemyTimer.start(); } private function onGameContinue(_arg1:Event):void{ var event = _arg1; try { if (needStartEnemy){ enemyTimer.start(); }; if (needStartWave){ startTimer.start(); }; } catch(e:Error) { trace("broken wave"); }; } } }//package
Section 84
//vstuplenie (vstuplenie) package { import flash.media.*; public dynamic class vstuplenie extends Sound { } }//package

Library Items

Symbol 1 Sound {crowd}Used by:271
Symbol 2 BitmapUsed by:3
Symbol 3 GraphicUses:2Used by:10
Symbol 4 BitmapUsed by:5
Symbol 5 GraphicUses:4Used by:10
Symbol 6 BitmapUsed by:7
Symbol 7 GraphicUses:6Used by:10
Symbol 8 BitmapUsed by:9
Symbol 9 GraphicUses:8Used by:10
Symbol 10 MovieClip {game_fla.rip3_70}Uses:3 5 7 9Used by:29
Symbol 11 BitmapUsed by:12
Symbol 12 GraphicUses:11Used by:19
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:19
Symbol 15 BitmapUsed by:16
Symbol 16 GraphicUses:15Used by:19
Symbol 17 BitmapUsed by:18
Symbol 18 GraphicUses:17Used by:19
Symbol 19 MovieClip {game_fla.rip2_71}Uses:12 14 16 18Used by:29
Symbol 20 BitmapUsed by:21
Symbol 21 GraphicUses:20Used by:28
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:22Used by:28
Symbol 24 BitmapUsed by:25
Symbol 25 GraphicUses:24Used by:28
Symbol 26 BitmapUsed by:27
Symbol 27 GraphicUses:26Used by:28
Symbol 28 MovieClip {game_fla.rip1_72}Uses:21 23 25 27Used by:29
Symbol 29 MovieClip {Rip}Uses:10 19 28
Symbol 30 BitmapUsed by:31 362
Symbol 31 GraphicUses:30Used by:Timeline
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:48
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:48
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:48
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:48
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:48
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:42Used by:48
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClipUses:44Used by:48
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClipUses:46Used by:48
Symbol 48 MovieClipUses:33 35 37 39 41 43 45 47Used by:65
Symbol 49 GraphicUsed by:53
Symbol 50 GraphicUsed by:51 69
Symbol 51 MovieClipUses:50Used by:53
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClip {game_fla.load_barMC_12}Uses:49 51 52Used by:65
Symbol 54 GraphicUsed by:64
Symbol 55 GraphicUsed by:61
Symbol 56 GraphicUsed by:61
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 MovieClipUses:58Used by:61
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:55 56 59 60Used by:64
Symbol 62 GraphicUsed by:64
Symbol 63 GraphicUsed by:64
Symbol 64 ButtonUses:54 61 62 63Used by:65
Symbol 65 MovieClip {game_fla.Preloader_2}Uses:48 53 64Used by:82
Symbol 66 GraphicUsed by:82 339
Symbol 67 GraphicUsed by:82 339
Symbol 68 GraphicUsed by:82 339
Symbol 69 ButtonUses:50Used by:82 339
Symbol 70 SoundUsed by:82
Symbol 71 SoundUsed by:82
Symbol 72 GraphicUsed by:82
Symbol 73 GraphicUsed by:82
Symbol 74 GraphicUsed by:82
Symbol 75 SoundUsed by:82
Symbol 76 GraphicUsed by:82
Symbol 77 GraphicUsed by:82
Symbol 78 GraphicUsed by:81
Symbol 79 GraphicUsed by:81
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClip {game_fla.CMG_monkey_blink_19}Uses:78 79 80Used by:82
Symbol 82 MovieClip {game_fla.CMG_Logo_Animation_1}Uses:65 66 67 68 69 70 71 72 73 74 75 76 77 81Used by:Timeline
Symbol 83 GraphicUsed by:271
Symbol 84 FontUsed by:85 86 87 206 255 305 307 341 343 345 351 354 355 356 370 371 372 373 374 376 379 382
Symbol 85 EditableTextUses:84 205Used by:92
Symbol 86 TextUses:84Used by:92
Symbol 87 EditableTextUses:84 205Used by:92
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:92
Symbol 90 BitmapUsed by:91
Symbol 91 GraphicUses:90Used by:92
Symbol 92 MovieClip {Bonus}Uses:85 86 87 89 91Used by:271
Symbol 93 BitmapUsed by:94
Symbol 94 GraphicUses:93Used by:105
Symbol 95 BitmapUsed by:96
Symbol 96 GraphicUses:95Used by:105
Symbol 97 BitmapUsed by:98
Symbol 98 GraphicUses:97Used by:105
Symbol 99 BitmapUsed by:100
Symbol 100 GraphicUses:99Used by:105
Symbol 101 BitmapUsed by:102
Symbol 102 GraphicUses:101Used by:105
Symbol 103 BitmapUsed by:104
Symbol 104 GraphicUses:103Used by:105
Symbol 105 MovieClipUses:94 96 98 100 102 104Used by:137
Symbol 106 BitmapUsed by:107
Symbol 107 GraphicUses:106Used by:114
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:114
Symbol 110 BitmapUsed by:111
Symbol 111 GraphicUses:110Used by:114
Symbol 112 BitmapUsed by:113
Symbol 113 GraphicUses:112Used by:114
Symbol 114 MovieClipUses:107 109 111 113Used by:137
Symbol 115 BitmapUsed by:116
Symbol 116 GraphicUses:115Used by:125
Symbol 117 BitmapUsed by:118
Symbol 118 GraphicUses:117Used by:125
Symbol 119 BitmapUsed by:120
Symbol 120 GraphicUses:119Used by:125
Symbol 121 BitmapUsed by:122
Symbol 122 GraphicUses:121Used by:125
Symbol 123 BitmapUsed by:124
Symbol 124 GraphicUses:123Used by:125
Symbol 125 MovieClipUses:116 118 120 122 124Used by:137
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:136
Symbol 128 BitmapUsed by:129
Symbol 129 GraphicUses:128Used by:136
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:136
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:136
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:136
Symbol 136 MovieClipUses:127 129 131 133 135Used by:137
Symbol 137 MovieClip {Breakable}Uses:105 114 125 136Used by:271
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:142
Symbol 140 BitmapUsed by:141
Symbol 141 GraphicUses:140Used by:142
Symbol 142 MovieClip {Bullet}Uses:139 141Used by:271
Symbol 143 GraphicUsed by:146
Symbol 144 FontUsed by:145
Symbol 145 EditableTextUses:144Used by:146
Symbol 146 MovieClip {Cell}Uses:143 145Used by:271
Symbol 147 BitmapUsed by:148 163
Symbol 148 GraphicUses:147Used by:191
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClipUses:149Used by:191
Symbol 151 BitmapUsed by:152 164
Symbol 152 GraphicUses:151Used by:191
Symbol 153 BitmapUsed by:154 165
Symbol 154 GraphicUses:153Used by:191
Symbol 155 BitmapUsed by:156 166
Symbol 156 GraphicUses:155Used by:191
Symbol 157 BitmapUsed by:158 167
Symbol 158 GraphicUses:157Used by:191
Symbol 159 BitmapUsed by:160 168
Symbol 160 GraphicUses:159Used by:191
Symbol 161 BitmapUsed by:162 169 170
Symbol 162 GraphicUses:161Used by:191
Symbol 163 GraphicUses:147Used by:191
Symbol 164 GraphicUses:151Used by:191
Symbol 165 GraphicUses:153Used by:191
Symbol 166 GraphicUses:155Used by:191
Symbol 167 GraphicUses:157Used by:191
Symbol 168 GraphicUses:159Used by:191
Symbol 169 GraphicUses:161Used by:191
Symbol 170 GraphicUses:161Used by:191
Symbol 171 BitmapUsed by:172 175 176 177 179 180
Symbol 172 GraphicUses:171Used by:191
Symbol 173 BitmapUsed by:174 178
Symbol 174 GraphicUses:173Used by:191
Symbol 175 GraphicUses:171Used by:191
Symbol 176 GraphicUses:171Used by:191
Symbol 177 GraphicUses:171Used by:191
Symbol 178 GraphicUses:173Used by:191
Symbol 179 GraphicUses:171Used by:191
Symbol 180 GraphicUses:171Used by:191
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:191
Symbol 183 BitmapUsed by:184 188 190
Symbol 184 GraphicUses:183Used by:191
Symbol 185 BitmapUsed by:186 187 189 190
Symbol 186 GraphicUses:185Used by:191
Symbol 187 GraphicUses:185Used by:191
Symbol 188 GraphicUses:183Used by:191
Symbol 189 GraphicUses:185Used by:191
Symbol 190 GraphicUses:185 183Used by:191
Symbol 191 MovieClip {Enemy}Uses:148 150 152 154 156 158 160 162 163 164 165 166 167 168 169 170 172 174 175 176 177 178 179 180 182 184 186 187 188 189 190Used by:271
Symbol 192 BitmapUsed by:193
Symbol 193 GraphicUses:192Used by:204
Symbol 194 BitmapUsed by:195
Symbol 195 GraphicUses:194Used by:204
Symbol 196 BitmapUsed by:197
Symbol 197 GraphicUses:196Used by:204
Symbol 198 BitmapUsed by:199
Symbol 199 GraphicUses:198Used by:204
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:204
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:204
Symbol 204 MovieClip {Explosion}Uses:193 195 197 199 201 203Used by:271
Symbol 205 FontUsed by:85 87 206 255 274 275 278 279 281 288 289 292 293 295 296 298 299 301 304 305 306 307 309 310 312 313 315 316 318 319 320 322 323 326 327 329 330 332 333 335 337 340 341 342 343 344 345 347 370 371 372
Symbol 206 EditableTextUses:84 205Used by:209
Symbol 207 FontUsed by:208
Symbol 208 TextUses:207Used by:209
Symbol 209 MovieClip {FlyScore}Uses:206 208Used by:271
Symbol 210 BitmapUsed by:211
Symbol 211 GraphicUses:210Used by:228
Symbol 212 BitmapUsed by:213
Symbol 213 GraphicUses:212Used by:228
Symbol 214 BitmapUsed by:215
Symbol 215 GraphicUses:214Used by:228
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:228
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:228
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:228
Symbol 222 BitmapUsed by:223
Symbol 223 GraphicUses:222Used by:228
Symbol 224 BitmapUsed by:225
Symbol 225 GraphicUses:224Used by:228
Symbol 226 BitmapUsed by:227
Symbol 227 GraphicUses:226Used by:228
Symbol 228 MovieClip {Hero}Uses:211 213 215 217 219 221 223 225 227Used by:271
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:231
Symbol 231 MovieClip {Ruins}Uses:230Used by:271
Symbol 232 BitmapUsed by:233
Symbol 233 GraphicUses:232Used by:254 302
Symbol 234 BitmapUsed by:235
Symbol 235 GraphicUses:234Used by:254
Symbol 236 BitmapUsed by:237
Symbol 237 GraphicUses:236Used by:254
Symbol 238 BitmapUsed by:239
Symbol 239 GraphicUses:238Used by:254
Symbol 240 BitmapUsed by:241
Symbol 241 GraphicUses:240Used by:254
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:254
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:254
Symbol 246 BitmapUsed by:247 253
Symbol 247 GraphicUses:246Used by:254
Symbol 248 BitmapUsed by:249 252
Symbol 249 GraphicUses:248Used by:254
Symbol 250 BitmapUsed by:251
Symbol 251 GraphicUses:250Used by:254
Symbol 252 GraphicUses:248Used by:254
Symbol 253 GraphicUses:246Used by:254
Symbol 254 MovieClip {Skull}Uses:233 235 237 239 241 243 245 247 249 251 252 253Used by:271
Symbol 255 EditableTextUses:84 205Used by:256
Symbol 256 MovieClip {TextClip}Uses:255Used by:271
Symbol 257 Sound {bullet_snd}Used by:271
Symbol 258 Sound {rocket_snd}Used by:271
Symbol 259 Sound {hit5}Used by:271
Symbol 260 Sound {scull}Used by:271
Symbol 261 Sound {hit1}Used by:271
Symbol 262 Sound {hit4}Used by:271
Symbol 263 Sound {hit3}Used by:271
Symbol 264 Sound {hit2}Used by:271
Symbol 265 Sound {skullapear}Used by:271
Symbol 266 Sound {click}Used by:271
Symbol 267 Sound {hit6}Used by:271
Symbol 268 Sound {vstuplenie}Used by:271
Symbol 269 Sound {catch}Used by:271
Symbol 270 Sound {back}Used by:271
Symbol 271 MovieClip {game_fla.Timeline_20}Uses:83 92 137 142 146 191 204 209 228 231 254 256 257 258 259 1 260 261 262 263 264 265 266 267 268 269 270Used by:Timeline
Symbol 272 BitmapUsed by:273
Symbol 273 GraphicUses:272Used by:349
Symbol 274 TextUses:205Used by:277 314 317 321
Symbol 275 TextUses:205Used by:277
Symbol 276 GraphicUsed by:277 314 317 321
Symbol 277 ButtonUses:274 275 276Used by:349
Symbol 278 TextUses:205Used by:282
Symbol 279 TextUses:205Used by:282
Symbol 280 GraphicUsed by:282 311
Symbol 281 TextUses:205Used by:282 311
Symbol 282 ButtonUses:278 279 280 281Used by:349
Symbol 283 BitmapUsed by:286 352 359 375
Symbol 284 BitmapUsed by:286 375 381
Symbol 285 BitmapUsed by:286 350 359 378
Symbol 286 GraphicUses:283 284 285Used by:287
Symbol 287 MovieClipUses:286Used by:308
Symbol 288 TextUses:205Used by:291 294 297 300 328 331 334
Symbol 289 TextUses:205Used by:291
Symbol 290 GraphicUsed by:291 294 297 300 328 331 334 353
Symbol 291 ButtonUses:288 289 290Used by:308 336 338 346 348
Symbol 292 TextUses:205Used by:294
Symbol 293 TextUses:205Used by:294
Symbol 294 ButtonUses:292 293 290 288Used by:308
Symbol 295 TextUses:205Used by:297
Symbol 296 TextUses:205Used by:297
Symbol 297 ButtonUses:295 296 290 288Used by:308
Symbol 298 TextUses:205Used by:300
Symbol 299 TextUses:205Used by:300
Symbol 300 ButtonUses:298 299 290 288Used by:308
Symbol 301 TextUses:205Used by:308
Symbol 302 MovieClipUses:233Used by:308 336
Symbol 303 GraphicUsed by:308
Symbol 304 TextUses:205Used by:308
Symbol 305 EditableTextUses:84 205Used by:308
Symbol 306 TextUses:205Used by:308
Symbol 307 EditableTextUses:84 205Used by:308
Symbol 308 MovieClip {OptionsMenu}Uses:287 291 294 297 300 301 302 303 304 305 306 307Used by:349 384
Symbol 309 TextUses:205Used by:311
Symbol 310 TextUses:205Used by:311
Symbol 311 ButtonUses:309 310 280 281Used by:349
Symbol 312 TextUses:205Used by:314
Symbol 313 TextUses:205Used by:314
Symbol 314 ButtonUses:312 313 276 274Used by:349
Symbol 315 TextUses:205Used by:317
Symbol 316 TextUses:205Used by:317
Symbol 317 ButtonUses:315 316 276 274Used by:349
Symbol 318 TextUses:205Used by:321
Symbol 319 TextUses:205Used by:321
Symbol 320 TextUses:205Used by:321
Symbol 321 ButtonUses:318 319 320 276 274Used by:349
Symbol 322 TextUses:205Used by:325
Symbol 323 TextUses:205Used by:325
Symbol 324 GraphicUsed by:325
Symbol 325 ButtonUses:322 323 324Used by:349
Symbol 326 TextUses:205Used by:328
Symbol 327 TextUses:205Used by:328
Symbol 328 ButtonUses:326 327 290 288Used by:336 338
Symbol 329 TextUses:205Used by:331
Symbol 330 TextUses:205Used by:331
Symbol 331 ButtonUses:329 330 290 288Used by:336 338
Symbol 332 TextUses:205Used by:334
Symbol 333 TextUses:205Used by:334
Symbol 334 ButtonUses:332 333 290 288Used by:336 338
Symbol 335 TextUses:205Used by:336
Symbol 336 MovieClip {game_fla.menudifficulty_mc_52}Uses:291 328 331 334 335 302Used by:349
Symbol 337 TextUses:205Used by:338
Symbol 338 MovieClip {game_fla.menuhighscores_mc_56}Uses:291 328 331 334 337Used by:349
Symbol 339 MovieClip {game_fla.logo_57}Uses:66 67 68 69Used by:349
Symbol 340 TextUses:205Used by:346
Symbol 341 EditableTextUses:84 205Used by:346
Symbol 342 TextUses:205Used by:346
Symbol 343 EditableTextUses:84 205Used by:346
Symbol 344 TextUses:205Used by:346
Symbol 345 EditableTextUses:84 205Used by:346
Symbol 346 MovieClip {CreditsMenu}Uses:291 340 341 342 343 344 345Used by:349
Symbol 347 TextUses:205Used by:348
Symbol 348 MovieClip {game_fla.menuinstruction_mc_59}Uses:291 347Used by:349
Symbol 349 MovieClip {GameMenu}Uses:273 277 282 308 311 314 317 321 325 336 338 339 346 348Used by:Timeline
Symbol 350 GraphicUses:285Used by:360
Symbol 351 TextUses:84Used by:360
Symbol 352 GraphicUses:283Used by:360
Symbol 353 ButtonUses:290Used by:360
Symbol 354 TextUses:84Used by:360
Symbol 355 EditableTextUses:84Used by:360
Symbol 356 TextUses:84Used by:360
Symbol 357 FontUsed by:358
Symbol 358 EditableTextUses:357Used by:360
Symbol 359 GraphicUses:283 285Used by:360
Symbol 360 MovieClip {game_fla.userinput_mc_61}Uses:350 351 352 353 354 355 356 358 359Used by:361
Symbol 361 MovieClip {LeaderBoards}Uses:360Used by:Timeline
Symbol 362 GraphicUses:30Used by:363
Symbol 363 MovieClipUses:362Used by:385
Symbol 364 BitmapUsed by:366
Symbol 365 BitmapUsed by:366
Symbol 366 GraphicUses:364 365Used by:385
Symbol 367 BitmapUsed by:369
Symbol 368 BitmapUsed by:369
Symbol 369 GraphicUses:367 368Used by:384
Symbol 370 EditableTextUses:84 205Used by:384
Symbol 371 EditableTextUses:84 205Used by:384
Symbol 372 EditableTextUses:84 205Used by:384
Symbol 373 TextUses:84Used by:384
Symbol 374 TextUses:84Used by:384
Symbol 375 GraphicUses:284 283Used by:377
Symbol 376 TextUses:84Used by:377
Symbol 377 MovieClipUses:375 376Used by:384
Symbol 378 GraphicUses:285Used by:380
Symbol 379 TextUses:84Used by:380
Symbol 380 ButtonUses:378 379Used by:384
Symbol 381 GraphicUses:284Used by:383
Symbol 382 TextUses:84Used by:383
Symbol 383 ButtonUses:381 382Used by:384
Symbol 384 MovieClip {game_fla.control_mc_65}Uses:369 370 371 372 373 374 377 380 383 308Used by:385
Symbol 385 MovieClip {Game}Uses:363 366 384Used by:Timeline

Instance Names

"body3"Symbol 29 MovieClip {Rip} Frame 1Symbol 10 MovieClip {game_fla.rip3_70}
"body2"Symbol 29 MovieClip {Rip} Frame 1Symbol 19 MovieClip {game_fla.rip2_71}
"body1"Symbol 29 MovieClip {Rip} Frame 1Symbol 28 MovieClip {game_fla.rip1_72}
"bar"Symbol 53 MovieClip {game_fla.load_barMC_12} Frame 1Symbol 51 MovieClip
"CMG_LoadingBar"Symbol 65 MovieClip {game_fla.Preloader_2} Frame 1Symbol 53 MovieClip {game_fla.load_barMC_12}
"play_btn"Symbol 65 MovieClip {game_fla.Preloader_2} Frame 2Symbol 64 Button
"CMG_LoadingWidget"Symbol 82 MovieClip {game_fla.CMG_Logo_Animation_1} Frame 1Symbol 65 MovieClip {game_fla.Preloader_2}
"CMG_HomePageLink"Symbol 82 MovieClip {game_fla.CMG_Logo_Animation_1} Frame 1Symbol 69 Button
"CMG_MonkeyBlink"Symbol 82 MovieClip {game_fla.CMG_Logo_Animation_1} Frame 81Symbol 81 MovieClip {game_fla.CMG_monkey_blink_19}
"m_txt"Symbol 92 MovieClip {Bonus} Frame 1Symbol 85 EditableText
"timer_txt"Symbol 92 MovieClip {Bonus} Frame 1Symbol 87 EditableText
"fence_left"Symbol 137 MovieClip {Breakable} Frame 1Symbol 105 MovieClip
"fence_right"Symbol 137 MovieClip {Breakable} Frame 1Symbol 114 MovieClip
"stone"Symbol 137 MovieClip {Breakable} Frame 1Symbol 125 MovieClip
"bush"Symbol 137 MovieClip {Breakable} Frame 1Symbol 136 MovieClip
"num"Symbol 146 MovieClip {Cell} Frame 1Symbol 145 EditableText
"lineBar_mc"Symbol 191 MovieClip {Enemy} Frame 1Symbol 150 MovieClip
"_txt"Symbol 209 MovieClip {FlyScore} Frame 1Symbol 206 EditableText
"txt"Symbol 256 MovieClip {TextClip} Frame 1Symbol 255 EditableText
"options_menu_bg"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 287 MovieClip
"back_btn"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 291 Button
"qhigh_btn"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 294 Button
"qmedium_btn"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 297 Button
"qlow_btn"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 300 Button
"slider_quality"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 302 MovieClip
"volume_music_txt"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 305 EditableText
"slider_music_volume"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 302 MovieClip
"volume_sound_txt"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 307 EditableText
"slider_sound_volume"Symbol 308 MovieClip {OptionsMenu} Frame 1Symbol 302 MovieClip
"back_btn"Symbol 336 MovieClip {game_fla.menudifficulty_mc_52} Frame 1Symbol 291 Button
"deasy_btn"Symbol 336 MovieClip {game_fla.menudifficulty_mc_52} Frame 1Symbol 328 Button
"dnormal_btn"Symbol 336 MovieClip {game_fla.menudifficulty_mc_52} Frame 1Symbol 331 Button
"dhard_btn"Symbol 336 MovieClip {game_fla.menudifficulty_mc_52} Frame 1Symbol 334 Button
"slider"Symbol 336 MovieClip {game_fla.menudifficulty_mc_52} Frame 1Symbol 302 MovieClip
"back_btn"Symbol 338 MovieClip {game_fla.menuhighscores_mc_56} Frame 1Symbol 291 Button
"deasy_btn"Symbol 338 MovieClip {game_fla.menuhighscores_mc_56} Frame 1Symbol 328 Button
"dnormal_btn"Symbol 338 MovieClip {game_fla.menuhighscores_mc_56} Frame 1Symbol 331 Button
"dhard_btn"Symbol 338 MovieClip {game_fla.menuhighscores_mc_56} Frame 1Symbol 334 Button
"CMG_HomePageLink"Symbol 339 MovieClip {game_fla.logo_57} Frame 1Symbol 69 Button
"back_btn"Symbol 346 MovieClip {CreditsMenu} Frame 1Symbol 291 Button
"back_btn"Symbol 348 MovieClip {game_fla.menuinstruction_mc_59} Frame 1Symbol 291 Button
"start_btn"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 277 Button
"option_btn"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 282 Button
"menuoptions_mc"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 308 MovieClip {OptionsMenu}
"credits_btn"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 311 Button
"highscores_btn"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 314 Button
"difficulty_btn"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 317 Button
"instructions_btn"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 321 Button
"moregames_btn"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 325 Button
"menudifficulty_mc"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 336 MovieClip {game_fla.menudifficulty_mc_52}
"menuhighscores_mc"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 338 MovieClip {game_fla.menuhighscores_mc_56}
"menucredits_mc"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 346 MovieClip {CreditsMenu}
"menuinstruction_mc"Symbol 349 MovieClip {GameMenu} Frame 1Symbol 348 MovieClip {game_fla.menuinstruction_mc_59}
"view_btn"Symbol 360 MovieClip {game_fla.userinput_mc_61} Frame 1Symbol 353 Button
"output_txt"Symbol 360 MovieClip {game_fla.userinput_mc_61} Frame 1Symbol 355 EditableText
"submit_btn"Symbol 360 MovieClip {game_fla.userinput_mc_61} Frame 1Symbol 353 Button
"name_txt"Symbol 360 MovieClip {game_fla.userinput_mc_61} Frame 1Symbol 358 EditableText
"userinput_mc"Symbol 361 MovieClip {LeaderBoards} Frame 1Symbol 360 MovieClip {game_fla.userinput_mc_61}
"score"Symbol 384 MovieClip {game_fla.control_mc_65} Frame 1Symbol 370 EditableText
"enemy_num"Symbol 384 MovieClip {game_fla.control_mc_65} Frame 1Symbol 371 EditableText
"lives"Symbol 384 MovieClip {game_fla.control_mc_65} Frame 1Symbol 372 EditableText
"gameover_mc"Symbol 384 MovieClip {game_fla.control_mc_65} Frame 1Symbol 377 MovieClip
"menu_btn"Symbol 384 MovieClip {game_fla.control_mc_65} Frame 1Symbol 380 Button
"sendscore_btn"Symbol 384 MovieClip {game_fla.control_mc_65} Frame 1Symbol 383 Button
"menuoptions_mc"Symbol 384 MovieClip {game_fla.control_mc_65} Frame 1Symbol 308 MovieClip {OptionsMenu}
"bg"Symbol 385 MovieClip {Game} Frame 1Symbol 363 MovieClip
"control_mc"Symbol 385 MovieClip {Game} Frame 1Symbol 384 MovieClip {game_fla.control_mc_65}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Tag 0x0FF (255)Timeline Frame 11 bytes " "

Labels

"menu"Frame 3
"game"Frame 4
"score"Symbol 92 MovieClip {Bonus} Frame 1
"machinegun"Symbol 92 MovieClip {Bonus} Frame 12
"rocket"Symbol 92 MovieClip {Bonus} Frame 21
"bush"Symbol 137 MovieClip {Breakable} Frame 1
"bullet"Symbol 142 MovieClip {Bullet} Frame 1
"rocket"Symbol 142 MovieClip {Bullet} Frame 6
"turnright"Symbol 191 MovieClip {Enemy} Frame 1
"walkleft"Symbol 191 MovieClip {Enemy} Frame 7
"turnleft"Symbol 191 MovieClip {Enemy} Frame 23
"walkright"Symbol 191 MovieClip {Enemy} Frame 29
"turnbackleft"Symbol 191 MovieClip {Enemy} Frame 45
"turnbackright"Symbol 191 MovieClip {Enemy} Frame 51
"wait"Symbol 191 MovieClip {Enemy} Frame 57
"stay"Symbol 228 MovieClip {Hero} Frame 1
"shoot"Symbol 228 MovieClip {Hero} Frame 8
"lose"Symbol 228 MovieClip {Hero} Frame 13




http://swfchan.com/43/210796/info.shtml
Created: 8/10 -2018 05:33:56 Last modified: 8/10 -2018 05:33:56 Server time: 08/05 -2024 21:32:09