Section 1
//AuxFunctions (caurina.transitions.AuxFunctions)
package caurina.transitions {
public class AuxFunctions {
public static function getObjectLength(_arg1:Object):uint{
var _local3:String;
var _local2:uint;
for (_local3 in _arg1) {
_local2++;
};
return (_local2);
}
public static function numberToG(_arg1:Number):Number{
return (((_arg1 & 0xFF00) >> 8));
}
public static function numberToB(_arg1:Number):Number{
return ((_arg1 & 0xFF));
}
public static function numberToR(_arg1:Number):Number{
return (((_arg1 & 0xFF0000) >> 16));
}
public static function concatObjects(... _args):Object{
var _local3:Object;
var _local5:String;
var _local2:Object = {};
var _local4:int;
while (_local4 < _args.length) {
_local3 = _args[_local4];
for (_local5 in _local3) {
if (_local3[_local5] == null){
delete _local2[_local5];
} else {
_local2[_local5] = _local3[_local5];
};
};
_local4++;
};
return (_local2);
}
}
}//package caurina.transitions
Section 2
//Equations (caurina.transitions.Equations)
package caurina.transitions {
public class Equations {
public function Equations(){
trace("Equations is a static class and should not be instantiated.");
}
public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
if (_arg1 < (1 / 2.75)){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
};
if (_arg1 < (2 / 2.75)){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
};
if (_arg1 < (2.5 / 2.75)){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
};
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
}
public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
};
--_arg1;
return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2));
};
_arg1 = (_arg1 - 2);
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function init():void{
Tweener.registerTransition("easenone", easeNone);
Tweener.registerTransition("linear", easeNone);
Tweener.registerTransition("easeinquad", easeInQuad);
Tweener.registerTransition("easeoutquad", easeOutQuad);
Tweener.registerTransition("easeinoutquad", easeInOutQuad);
Tweener.registerTransition("easeoutinquad", easeOutInQuad);
Tweener.registerTransition("easeincubic", easeInCubic);
Tweener.registerTransition("easeoutcubic", easeOutCubic);
Tweener.registerTransition("easeinoutcubic", easeInOutCubic);
Tweener.registerTransition("easeoutincubic", easeOutInCubic);
Tweener.registerTransition("easeinquart", easeInQuart);
Tweener.registerTransition("easeoutquart", easeOutQuart);
Tweener.registerTransition("easeinoutquart", easeInOutQuart);
Tweener.registerTransition("easeoutinquart", easeOutInQuart);
Tweener.registerTransition("easeinquint", easeInQuint);
Tweener.registerTransition("easeoutquint", easeOutQuint);
Tweener.registerTransition("easeinoutquint", easeInOutQuint);
Tweener.registerTransition("easeoutinquint", easeOutInQuint);
Tweener.registerTransition("easeinsine", easeInSine);
Tweener.registerTransition("easeoutsine", easeOutSine);
Tweener.registerTransition("easeinoutsine", easeInOutSine);
Tweener.registerTransition("easeoutinsine", easeOutInSine);
Tweener.registerTransition("easeincirc", easeInCirc);
Tweener.registerTransition("easeoutcirc", easeOutCirc);
Tweener.registerTransition("easeinoutcirc", easeInOutCirc);
Tweener.registerTransition("easeoutincirc", easeOutInCirc);
Tweener.registerTransition("easeinexpo", easeInExpo);
Tweener.registerTransition("easeoutexpo", easeOutExpo);
Tweener.registerTransition("easeinoutexpo", easeInOutExpo);
Tweener.registerTransition("easeoutinexpo", easeOutInExpo);
Tweener.registerTransition("easeinelastic", easeInElastic);
Tweener.registerTransition("easeoutelastic", easeOutElastic);
Tweener.registerTransition("easeinoutelastic", easeInOutElastic);
Tweener.registerTransition("easeoutinelastic", easeOutInElastic);
Tweener.registerTransition("easeinback", easeInBack);
Tweener.registerTransition("easeoutback", easeOutBack);
Tweener.registerTransition("easeinoutback", easeInOutBack);
Tweener.registerTransition("easeoutinback", easeOutInBack);
Tweener.registerTransition("easeinbounce", easeInBounce);
Tweener.registerTransition("easeoutbounce", easeOutBounce);
Tweener.registerTransition("easeinoutbounce", easeInOutBounce);
Tweener.registerTransition("easeoutinbounce", easeOutInBounce);
}
public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001)));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2));
}
public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
}
public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2));
}
public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
--_arg1;
return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005)));
};
--_arg1;
return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
}
}//package caurina.transitions
Section 3
//PropertyInfoObj (caurina.transitions.PropertyInfoObj)
package caurina.transitions {
public class PropertyInfoObj {
public var modifierParameters:Array;
public var isSpecialProperty:Boolean;
public var valueComplete:Number;
public var modifierFunction:Function;
public var extra:Object;
public var valueStart:Number;
public var hasModifier:Boolean;
public var arrayIndex:Number;
public var originalValueComplete:Object;
public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){
valueStart = _arg1;
valueComplete = _arg2;
originalValueComplete = _arg3;
arrayIndex = _arg4;
extra = _arg5;
isSpecialProperty = _arg6;
hasModifier = Boolean(_arg7);
modifierFunction = _arg7;
modifierParameters = _arg8;
}
public function toString():String{
var _local1 = "\n[PropertyInfoObj ";
_local1 = (_local1 + ("valueStart:" + String(valueStart)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("valueComplete:" + String(valueComplete)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("arrayIndex:" + String(arrayIndex)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("extra:" + String(extra)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("hasModifier:" + String(hasModifier)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierFunction:" + String(modifierFunction)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierParameters:" + String(modifierParameters)));
_local1 = (_local1 + "]\n");
return (_local1);
}
public function clone():PropertyInfoObj{
var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters);
return (_local1);
}
}
}//package caurina.transitions
Section 4
//SpecialProperty (caurina.transitions.SpecialProperty)
package caurina.transitions {
public class SpecialProperty {
public var parameters:Array;
public var getValue:Function;
public var preProcess:Function;
public var setValue:Function;
public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){
getValue = _arg1;
setValue = _arg2;
parameters = _arg3;
preProcess = _arg4;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialProperty ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("setValue:" + String(setValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("preProcess:" + String(preProcess)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 5
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier)
package caurina.transitions {
public class SpecialPropertyModifier {
public var getValue:Function;
public var modifyValues:Function;
public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){
modifyValues = _arg1;
getValue = _arg2;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertyModifier ");
_local1 = (_local1 + ("modifyValues:" + String(modifyValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 6
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter)
package caurina.transitions {
public class SpecialPropertySplitter {
public var parameters:Array;
public var splitValues:Function;
public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){
splitValues = _arg1;
parameters = _arg2;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertySplitter ");
_local1 = (_local1 + ("splitValues:" + String(splitValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 7
//Tweener (caurina.transitions.Tweener)
package caurina.transitions {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Tweener {
private static var _timeScale:Number = 1;
private static var _currentTimeFrame:Number;
private static var _specialPropertySplitterList:Object;
public static var autoOverwrite:Boolean = true;
private static var _engineExists:Boolean = false;
private static var _currentTime:Number;
private static var _tweenList:Array;
private static var _specialPropertyModifierList:Object;
private static var _specialPropertyList:Object;
private static var _transitionList:Object;
private static var _inited:Boolean = false;
private static var __tweener_controller__:MovieClip;
public function Tweener(){
trace("Tweener is a static class and should not be instantiated.");
}
public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{
if (!_inited){
init();
};
var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3);
_specialPropertyModifierList[_arg1] = _local4;
}
public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{
if (!_inited){
init();
};
var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5);
_specialPropertyList[_arg1] = _local6;
}
public static function init(... _args):void{
_inited = true;
_transitionList = new Object();
Equations.init();
_specialPropertyList = new Object();
_specialPropertyModifierList = new Object();
_specialPropertySplitterList = new Object();
}
private static function updateTweens():Boolean{
var _local1:int;
if (_tweenList.length == 0){
return (false);
};
_local1 = 0;
while (_local1 < _tweenList.length) {
if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){
if (!updateTweenByIndex(_local1)){
removeTweenByIndex(_local1);
};
if (_tweenList[_local1] == null){
removeTweenByIndex(_local1, true);
_local1--;
};
};
_local1++;
};
return (true);
}
public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local3:Number;
var _local4:Array;
var _local8:Function;
var _local9:TweenListObj;
var _local10:Number;
var _local11:String;
if (!Boolean(_arg1)){
return (false);
};
if ((_arg1 is Array)){
_local4 = _arg1.concat();
} else {
_local4 = [_arg1];
};
var _local5:Object = _arg2;
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time;
var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay;
if (typeof(_local5.transition) == "string"){
_local11 = _local5.transition.toLowerCase();
_local8 = _transitionList[_local11];
} else {
_local8 = _local5.transition;
};
if (!Boolean(_local8)){
_local8 = _transitionList["easeoutexpo"];
};
_local3 = 0;
while (_local3 < _local4.length) {
if (_local5.useFrames == true){
_local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams);
} else {
_local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams);
};
_local9.properties = null;
_local9.onStart = _local5.onStart;
_local9.onUpdate = _local5.onUpdate;
_local9.onComplete = _local5.onComplete;
_local9.onOverwrite = _local5.onOverwrite;
_local9.onStartParams = _local5.onStartParams;
_local9.onUpdateParams = _local5.onUpdateParams;
_local9.onCompleteParams = _local5.onCompleteParams;
_local9.onOverwriteParams = _local5.onOverwriteParams;
_local9.onStartScope = _local5.onStartScope;
_local9.onUpdateScope = _local5.onUpdateScope;
_local9.onCompleteScope = _local5.onCompleteScope;
_local9.onOverwriteScope = _local5.onOverwriteScope;
_local9.onErrorScope = _local5.onErrorScope;
_local9.isCaller = true;
_local9.count = _local5.count;
_local9.waitFrames = _local5.waitFrames;
_tweenList.push(_local9);
if ((((_local6 == 0)) && ((_local7 == 0)))){
_local10 = (_tweenList.length - 1);
updateTweenByIndex(_local10);
removeTweenByIndex(_local10);
};
_local3++;
};
return (true);
}
public static function pauseAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
pauseTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function removeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local5:SpecialPropertySplitter;
var _local6:Array;
var _local7:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
if (_specialPropertySplitterList[_args[_local4]]){
_local5 = _specialPropertySplitterList[_args[_local4]];
_local6 = _local5.splitValues(_arg1, null);
_local7 = 0;
while (_local7 < _local6.length) {
_local3.push(_local6[_local7].name);
_local7++;
};
} else {
_local3.push(_args[_local4]);
};
};
_local4++;
};
return (affectTweens(removeTweenByIndex, _arg1, _local3));
}
public static function updateFrame():void{
_currentTimeFrame++;
}
public static function splitTweens(_arg1:Number, _arg2:Array):uint{
var _local5:uint;
var _local6:String;
var _local7:Boolean;
var _local3:TweenListObj = _tweenList[_arg1];
var _local4:TweenListObj = _local3.clone(false);
_local5 = 0;
while (_local5 < _arg2.length) {
_local6 = _arg2[_local5];
if (Boolean(_local3.properties[_local6])){
_local3.properties[_local6] = undefined;
delete _local3.properties[_local6];
};
_local5++;
};
for (_local6 in _local4.properties) {
_local7 = false;
_local5 = 0;
while (_local5 < _arg2.length) {
if (_arg2[_local5] == _local6){
_local7 = true;
break;
};
_local5++;
};
if (!_local7){
_local4.properties[_local6] = undefined;
delete _local4.properties[_local6];
};
};
_tweenList.push(_local4);
return ((_tweenList.length - 1));
}
public static function resumeTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (!(_local2.isPaused)))){
return (false);
};
var _local3:Number = getCurrentTweeningTime(_local2);
_local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused));
_local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused));
_local2.timePaused = undefined;
_local2.isPaused = false;
return (true);
}
public static function getVersion():String{
return ("AS3 1.33.74");
}
public static function onEnterFrame(_arg1:Event):void{
updateTime();
updateFrame();
var _local2:Boolean;
_local2 = updateTweens();
if (!_local2){
stopEngine();
};
}
public static function updateTime():void{
_currentTime = getTimer();
}
private static function updateTweenByIndex(_arg1:Number):Boolean{
var tTweening:TweenListObj;
var mustUpdate:Boolean;
var nv:Number;
var t:Number;
var b:Number;
var c:Number;
var d:Number;
var pName:String;
var eventScope:Object;
var tScope:Object;
var tProperty:Object;
var pv:Number;
var i = _arg1;
tTweening = _tweenList[i];
if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){
return (false);
};
var isOver:Boolean;
var cTime:Number = getCurrentTweeningTime(tTweening);
if (cTime >= tTweening.timeStart){
tScope = tTweening.scope;
if (tTweening.isCaller){
do {
t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1));
b = tTweening.timeStart;
c = (tTweening.timeComplete - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
} while (!(cTime >= nv));
} else {
mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates)));
if (cTime >= tTweening.timeComplete){
isOver = true;
mustUpdate = true;
};
if (!tTweening.hasStarted){
if (Boolean(tTweening.onStart)){
eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope;
try {
tTweening.onStart.apply(eventScope, tTweening.onStartParams);
} catch(e2:Error) {
handleError(tTweening, e2, "onStart");
};
};
for (pName in tTweening.properties) {
if (tTweening.properties[pName].isSpecialProperty){
if (Boolean(_specialPropertyList[pName].preProcess)){
tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra);
};
pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
pv = tScope[pName];
};
tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv;
};
mustUpdate = true;
tTweening.hasStarted = true;
};
if (mustUpdate){
for (pName in tTweening.properties) {
tProperty = tTweening.properties[pName];
if (isOver){
nv = tProperty.valueComplete;
} else {
if (tProperty.hasModifier){
t = (cTime - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams);
nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters);
} else {
t = (cTime - tTweening.timeStart);
b = tProperty.valueStart;
c = (tProperty.valueComplete - tProperty.valueStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d, tTweening.transitionParams);
};
};
if (tTweening.rounded){
nv = Math.round(nv);
};
if (tProperty.isSpecialProperty){
_specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
tScope[pName] = nv;
};
};
tTweening.updatesSkipped = 0;
if (Boolean(tTweening.onUpdate)){
eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope;
try {
tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams);
} catch(e3:Error) {
handleError(tTweening, e3, "onUpdate");
};
};
} else {
tTweening.updatesSkipped++;
};
};
if (((isOver) && (Boolean(tTweening.onComplete)))){
eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope;
try {
tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams);
} catch(e4:Error) {
handleError(tTweening, e4, "onComplete");
};
};
return (!(isOver));
};
return (true);
}
public static function setTimeScale(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
if (isNaN(_arg1)){
_arg1 = 1;
};
if (_arg1 < 1E-5){
_arg1 = 1E-5;
};
if (_arg1 != _timeScale){
if (_tweenList != null){
_local2 = 0;
while (_local2 < _tweenList.length) {
_local3 = getCurrentTweeningTime(_tweenList[_local2]);
_tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1));
_tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1));
if (_tweenList[_local2].timePaused != undefined){
_tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1));
};
_local2++;
};
};
_timeScale = _arg1;
};
}
public static function resumeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
resumeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{
var eventScope:Object;
var pTweening = _arg1;
var pError = _arg2;
var pCallBackName = _arg3;
if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){
eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope;
try {
pTweening.onError.apply(eventScope, [pTweening.scope, pError]);
} catch(metaError:Error) {
printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace()));
};
} else {
if (!Boolean(pTweening.onError)){
printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace()));
};
};
}
private static function startEngine():void{
_engineExists = true;
_tweenList = new Array();
__tweener_controller__ = new MovieClip();
__tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
_currentTimeFrame = 0;
updateTime();
}
public static function removeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
removeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Array;
var _local13:Function;
var _local14:Object;
var _local15:TweenListObj;
var _local16:Number;
var _local17:Array;
var _local18:Array;
var _local19:Array;
var _local20:String;
if (!Boolean(_arg1)){
return (false);
};
if ((_arg1 is Array)){
_local6 = _arg1.concat();
} else {
_local6 = [_arg1];
};
var _local7:Object = TweenListObj.makePropertiesChain(_arg2);
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time;
var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay;
var _local10:Array = new Array();
var _local11:Object = {overwrite:true, time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true};
var _local12:Object = new Object();
for (_local5 in _local7) {
if (!_local11[_local5]){
if (_specialPropertySplitterList[_local5]){
_local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters);
_local3 = 0;
while (_local3 < _local17.length) {
if (_specialPropertySplitterList[_local17[_local3].name]){
_local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters);
_local4 = 0;
while (_local4 < _local18.length) {
_local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false};
_local4++;
};
} else {
_local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false};
};
_local3++;
};
} else {
if (_specialPropertyModifierList[_local5] != undefined){
_local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]);
_local3 = 0;
while (_local3 < _local19.length) {
_local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue};
_local3++;
};
} else {
_local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]};
};
};
};
};
for (_local5 in _local10) {
if (_specialPropertyList[_local5] != undefined){
_local10[_local5].isSpecialProperty = true;
} else {
if (_local6[0][_local5] == undefined){
printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property."));
};
};
};
for (_local5 in _local12) {
if (_local10[_local5] != undefined){
_local10[_local5].modifierParameters = _local12[_local5].modifierParameters;
_local10[_local5].modifierFunction = _local12[_local5].modifierFunction;
};
};
if (typeof(_local7.transition) == "string"){
_local20 = _local7.transition.toLowerCase();
_local13 = _transitionList[_local20];
} else {
_local13 = _local7.transition;
};
if (!Boolean(_local13)){
_local13 = _transitionList["easeoutexpo"];
};
_local3 = 0;
while (_local3 < _local6.length) {
_local14 = new Object();
for (_local5 in _local10) {
_local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters);
};
if (_local7.useFrames == true){
_local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams);
} else {
_local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams);
};
_local15.properties = _local14;
_local15.onStart = _local7.onStart;
_local15.onUpdate = _local7.onUpdate;
_local15.onComplete = _local7.onComplete;
_local15.onOverwrite = _local7.onOverwrite;
_local15.onError = _local7.onError;
_local15.onStartParams = _local7.onStartParams;
_local15.onUpdateParams = _local7.onUpdateParams;
_local15.onCompleteParams = _local7.onCompleteParams;
_local15.onOverwriteParams = _local7.onOverwriteParams;
_local15.onStartScope = _local7.onStartScope;
_local15.onUpdateScope = _local7.onUpdateScope;
_local15.onCompleteScope = _local7.onCompleteScope;
_local15.onOverwriteScope = _local7.onOverwriteScope;
_local15.onErrorScope = _local7.onErrorScope;
_local15.rounded = _local7.rounded;
_local15.skipUpdates = _local7.skipUpdates;
if (((_local7.overwrite == undefined)) ? autoOverwrite : _local7.overwrite){
removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete);
};
_tweenList.push(_local15);
if ((((_local8 == 0)) && ((_local9 == 0)))){
_local16 = (_tweenList.length - 1);
updateTweenByIndex(_local16);
removeTweenByIndex(_local16);
};
_local3++;
};
return (true);
}
public static function registerTransition(_arg1:String, _arg2:Function):void{
if (!_inited){
init();
};
_transitionList[_arg1] = _arg2;
}
public static function printError(_arg1:String):void{
trace(("## [Tweener] Error: " + _arg1));
}
private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{
var _local5:uint;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local4:Boolean;
if (!Boolean(_tweenList)){
return (false);
};
_local5 = 0;
while (_local5 < _tweenList.length) {
if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){
if (_arg3.length == 0){
_arg1(_local5);
_local4 = true;
} else {
_local6 = new Array();
_local7 = 0;
while (_local7 < _arg3.length) {
if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){
_local6.push(_arg3[_local7]);
};
_local7++;
};
if (_local6.length > 0){
_local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties);
if (_local8 == _local6.length){
_arg1(_local5);
_local4 = true;
} else {
_local9 = splitTweens(_local5, _local6);
_arg1(_local9);
_local4 = true;
};
};
};
};
_local5++;
};
return (_local4);
}
public static function getTweens(_arg1:Object):Array{
var _local2:uint;
var _local3:String;
if (!Boolean(_tweenList)){
return ([]);
};
var _local4:Array = new Array();
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
for (_local3 in _tweenList[_local2].properties) {
_local4.push(_local3);
};
};
_local2++;
};
return (_local4);
}
public static function isTweening(_arg1:Object):Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
return (true);
};
_local2++;
};
return (false);
}
public static function pauseTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (_local2.isPaused))){
return (false);
};
_local2.timePaused = getCurrentTweeningTime(_local2);
_local2.isPaused = true;
return (true);
}
public static function getCurrentTweeningTime(_arg1:Object):Number{
return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime);
}
public static function getTweenCount(_arg1:Object):Number{
var _local2:uint;
if (!Boolean(_tweenList)){
return (0);
};
var _local3:Number = 0;
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
_local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties));
};
_local2++;
};
return (_local3);
}
private static function stopEngine():void{
_engineExists = false;
_tweenList = null;
_currentTime = 0;
_currentTimeFrame = 0;
__tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
__tweener_controller__ = null;
}
public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{
var removedLocally:Boolean;
var i:uint;
var pName:String;
var eventScope:Object;
var p_scope = _arg1;
var p_properties = _arg2;
var p_timeStart = _arg3;
var p_timeComplete = _arg4;
var removed:Boolean;
var tl:uint = _tweenList.length;
i = 0;
while (i < tl) {
if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){
if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){
removedLocally = false;
for (pName in _tweenList[i].properties) {
if (Boolean(p_properties[pName])){
if (Boolean(_tweenList[i].onOverwrite)){
eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope;
try {
_tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams);
} catch(e:Error) {
handleError(_tweenList[i], e, "onOverwrite");
};
};
_tweenList[i].properties[pName] = undefined;
delete _tweenList[i].properties[pName];
removedLocally = true;
removed = true;
};
};
if (removedLocally){
if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){
removeTweenByIndex(i);
};
};
};
};
i = (i + 1);
};
return (removed);
}
public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{
if (!_inited){
init();
};
var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3);
_specialPropertySplitterList[_arg1] = _local4;
}
public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{
_tweenList[_arg1] = null;
if (_arg2){
_tweenList.splice(_arg1, 1);
};
return (true);
}
public static function resumeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(resumeTweenByIndex, _arg1, _local3));
}
public static function pauseTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(pauseTweenByIndex, _arg1, _local3));
}
}
}//package caurina.transitions
Section 8
//TweenListObj (caurina.transitions.TweenListObj)
package caurina.transitions {
public class TweenListObj {
public var hasStarted:Boolean;
public var onUpdate:Function;
public var useFrames:Boolean;
public var count:Number;
public var onOverwriteParams:Array;
public var timeStart:Number;
public var timeComplete:Number;
public var onStartParams:Array;
public var onUpdateScope:Object;
public var rounded:Boolean;
public var onUpdateParams:Array;
public var properties:Object;
public var onComplete:Function;
public var transitionParams:Object;
public var updatesSkipped:Number;
public var onStart:Function;
public var onOverwriteScope:Object;
public var skipUpdates:Number;
public var onStartScope:Object;
public var scope:Object;
public var isCaller:Boolean;
public var timePaused:Number;
public var transition:Function;
public var onCompleteParams:Array;
public var onError:Function;
public var timesCalled:Number;
public var onErrorScope:Object;
public var onOverwrite:Function;
public var isPaused:Boolean;
public var waitFrames:Boolean;
public var onCompleteScope:Object;
public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){
scope = _arg1;
timeStart = _arg2;
timeComplete = _arg3;
useFrames = _arg4;
transition = _arg5;
transitionParams = _arg6;
properties = new Object();
isPaused = false;
timePaused = undefined;
isCaller = false;
updatesSkipped = 0;
timesCalled = 0;
skipUpdates = 0;
hasStarted = false;
}
public function clone(_arg1:Boolean):TweenListObj{
var _local3:String;
var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams);
_local2.properties = new Array();
for (_local3 in properties) {
_local2.properties[_local3] = properties[_local3].clone();
};
_local2.skipUpdates = skipUpdates;
_local2.updatesSkipped = updatesSkipped;
if (!_arg1){
_local2.onStart = onStart;
_local2.onUpdate = onUpdate;
_local2.onComplete = onComplete;
_local2.onOverwrite = onOverwrite;
_local2.onError = onError;
_local2.onStartParams = onStartParams;
_local2.onUpdateParams = onUpdateParams;
_local2.onCompleteParams = onCompleteParams;
_local2.onOverwriteParams = onOverwriteParams;
_local2.onStartScope = onStartScope;
_local2.onUpdateScope = onUpdateScope;
_local2.onCompleteScope = onCompleteScope;
_local2.onOverwriteScope = onOverwriteScope;
_local2.onErrorScope = onErrorScope;
};
_local2.rounded = rounded;
_local2.isPaused = isPaused;
_local2.timePaused = timePaused;
_local2.isCaller = isCaller;
_local2.count = count;
_local2.timesCalled = timesCalled;
_local2.waitFrames = waitFrames;
_local2.hasStarted = hasStarted;
return (_local2);
}
public function toString():String{
var _local3:String;
var _local1 = "\n[TweenListObj ";
_local1 = (_local1 + ("scope:" + String(scope)));
_local1 = (_local1 + ", properties:");
var _local2:Boolean;
for (_local3 in properties) {
if (!_local2){
_local1 = (_local1 + ",");
};
_local1 = (_local1 + ("[name:" + properties[_local3].name));
_local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart));
_local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete));
_local1 = (_local1 + "]");
_local2 = false;
};
_local1 = (_local1 + (", timeStart:" + String(timeStart)));
_local1 = (_local1 + (", timeComplete:" + String(timeComplete)));
_local1 = (_local1 + (", useFrames:" + String(useFrames)));
_local1 = (_local1 + (", transition:" + String(transition)));
_local1 = (_local1 + (", transitionParams:" + String(transitionParams)));
if (skipUpdates){
_local1 = (_local1 + (", skipUpdates:" + String(skipUpdates)));
};
if (updatesSkipped){
_local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped)));
};
if (Boolean(onStart)){
_local1 = (_local1 + (", onStart:" + String(onStart)));
};
if (Boolean(onUpdate)){
_local1 = (_local1 + (", onUpdate:" + String(onUpdate)));
};
if (Boolean(onComplete)){
_local1 = (_local1 + (", onComplete:" + String(onComplete)));
};
if (Boolean(onOverwrite)){
_local1 = (_local1 + (", onOverwrite:" + String(onOverwrite)));
};
if (Boolean(onError)){
_local1 = (_local1 + (", onError:" + String(onError)));
};
if (onStartParams){
_local1 = (_local1 + (", onStartParams:" + String(onStartParams)));
};
if (onUpdateParams){
_local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams)));
};
if (onCompleteParams){
_local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams)));
};
if (onOverwriteParams){
_local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams)));
};
if (onStartScope){
_local1 = (_local1 + (", onStartScope:" + String(onStartScope)));
};
if (onUpdateScope){
_local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope)));
};
if (onCompleteScope){
_local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope)));
};
if (onOverwriteScope){
_local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope)));
};
if (onErrorScope){
_local1 = (_local1 + (", onErrorScope:" + String(onErrorScope)));
};
if (rounded){
_local1 = (_local1 + (", rounded:" + String(rounded)));
};
if (isPaused){
_local1 = (_local1 + (", isPaused:" + String(isPaused)));
};
if (timePaused){
_local1 = (_local1 + (", timePaused:" + String(timePaused)));
};
if (isCaller){
_local1 = (_local1 + (", isCaller:" + String(isCaller)));
};
if (count){
_local1 = (_local1 + (", count:" + String(count)));
};
if (timesCalled){
_local1 = (_local1 + (", timesCalled:" + String(timesCalled)));
};
if (waitFrames){
_local1 = (_local1 + (", waitFrames:" + String(waitFrames)));
};
if (hasStarted){
_local1 = (_local1 + (", hasStarted:" + String(hasStarted)));
};
_local1 = (_local1 + "]\n");
return (_local1);
}
public static function makePropertiesChain(_arg1:Object):Object{
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local2:Object = _arg1.base;
if (_local2){
_local3 = {};
if ((_local2 is Array)){
_local4 = [];
_local8 = 0;
while (_local8 < _local2.length) {
_local4.push(_local2[_local8]);
_local8++;
};
} else {
_local4 = [_local2];
};
_local4.push(_arg1);
_local6 = _local4.length;
_local7 = 0;
while (_local7 < _local6) {
if (_local4[_local7]["base"]){
_local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]);
} else {
_local5 = _local4[_local7];
};
_local3 = AuxFunctions.concatObjects(_local3, _local5);
_local7++;
};
if (_local3["base"]){
delete _local3["base"];
};
return (_local3);
//unresolved jump
};
return (_arg1);
}
}
}//package caurina.transitions
Section 9
//MD5 (com.adobe.crypto.MD5)
package com.adobe.crypto {
import flash.utils.*;
import com.adobe.utils.*;
public class MD5 {
public static var digest:ByteArray;
public static function hash(_arg1:String):String{
var _local2:ByteArray = new ByteArray();
_local2.writeUTFBytes(_arg1);
return (hashBinary(_local2));
}
public static function hashBytes(_arg1:ByteArray):String{
return (hashBinary(_arg1));
}
public static function hashBinary(_arg1:ByteArray):String{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local2 = 1732584193;
var _local3 = -271733879;
var _local4 = -1732584194;
var _local5 = 271733878;
var _local10:Array = createBlocks(_arg1);
var _local11:int = _local10.length;
var _local12:int;
while (_local12 < _local11) {
_local6 = _local2;
_local7 = _local3;
_local8 = _local4;
_local9 = _local5;
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551);
_local2 = (_local2 + _local6);
_local3 = (_local3 + _local7);
_local4 = (_local4 + _local8);
_local5 = (_local5 + _local9);
_local12 = (_local12 + 16);
};
digest = new ByteArray();
digest.writeInt(_local2);
digest.writeInt(_local3);
digest.writeInt(_local4);
digest.writeInt(_local5);
digest.position = 0;
return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5)));
}
private static function f(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg2) | (~(_arg1) & _arg3)));
}
private static function g(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg3) | (_arg2 & ~(_arg3))));
}
private static function h(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 ^ _arg2) ^ _arg3));
}
private static function i(_arg1:int, _arg2:int, _arg3:int):int{
return ((_arg2 ^ (_arg1 | ~(_arg3))));
}
private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{
var _local9:int = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8);
return ((IntUtil.rol(_local9, _arg7) + _arg3));
}
private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function createBlocks(_arg1:ByteArray):Array{
var _local2:Array = new Array();
var _local3:int = (_arg1.length * 8);
var _local4 = 0xFF;
var _local5:int;
while (_local5 < _local3) {
_local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32)));
_local5 = (_local5 + 8);
};
_local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32)));
_local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3;
return (_local2);
}
}
}//package com.adobe.crypto
Section 10
//PNGEncoder (com.adobe.images.PNGEncoder)
package com.adobe.images {
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
public class PNGEncoder {
private static var crcTable:Array;
private static var crcTableComputed:Boolean = false;
public static function encode(_arg1:BitmapData):ByteArray{
var _local6:uint;
var _local7:int;
var _local2:ByteArray = new ByteArray();
_local2.writeUnsignedInt(2303741511);
_local2.writeUnsignedInt(218765834);
var _local3:ByteArray = new ByteArray();
_local3.writeInt(_arg1.width);
_local3.writeInt(_arg1.height);
_local3.writeUnsignedInt(134610944);
_local3.writeByte(0);
writeChunk(_local2, 1229472850, _local3);
var _local4:ByteArray = new ByteArray();
var _local5:int;
while (_local5 < _arg1.height) {
_local4.writeByte(0);
if (!_arg1.transparent){
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | 0xFF)));
_local7++;
};
} else {
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel32(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | (_local6 >>> 24))));
_local7++;
};
};
_local5++;
};
_local4.compress();
writeChunk(_local2, 1229209940, _local4);
writeChunk(_local2, 1229278788, null);
return (_local2);
}
private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{
var _local8:uint;
var _local9:uint;
var _local10:uint;
if (!crcTableComputed){
crcTableComputed = true;
crcTable = [];
_local9 = 0;
while (_local9 < 0x0100) {
_local8 = _local9;
_local10 = 0;
while (_local10 < 8) {
if ((_local8 & 1)){
_local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1))));
} else {
_local8 = uint((_local8 >>> 1));
};
_local10++;
};
crcTable[_local9] = _local8;
_local9++;
};
};
var _local4:uint;
if (_arg3 != null){
_local4 = _arg3.length;
};
_arg1.writeUnsignedInt(_local4);
var _local5:uint = _arg1.position;
_arg1.writeUnsignedInt(_arg2);
if (_arg3 != null){
_arg1.writeBytes(_arg3);
};
var _local6:uint = _arg1.position;
_arg1.position = _local5;
_local8 = 4294967295;
var _local7:int;
while (_local7 < (_local6 - _local5)) {
_local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8))));
_local7++;
};
_local8 = uint((_local8 ^ uint(4294967295)));
_arg1.position = _local6;
_arg1.writeUnsignedInt(_local8);
}
}
}//package com.adobe.images
Section 11
//JSON (com.adobe.serialization.json.JSON)
package com.adobe.serialization.json {
public class JSON {
public static function encode(_arg1:Object):String{
var _local2:JSONEncoder = new JSONEncoder(_arg1);
return (_local2.getString());
}
public static function decode(_arg1:String){
var _local2:JSONDecoder = new JSONDecoder(_arg1);
return (_local2.getValue());
}
}
}//package com.adobe.serialization.json
Section 12
//JSONDecoder (com.adobe.serialization.json.JSONDecoder)
package com.adobe.serialization.json {
public class JSONDecoder {
private var value;
private var tokenizer:JSONTokenizer;
private var token:JSONToken;
public function JSONDecoder(_arg1:String){
this.tokenizer = new JSONTokenizer(_arg1);
this.nextToken();
this.value = this.parseValue();
}
public function getValue(){
return (this.value);
}
private function nextToken():JSONToken{
return ((this.token = this.tokenizer.getNextToken()));
}
private function parseArray():Array{
var _local1:Array = new Array();
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACKET){
return (_local1);
};
while (true) {
_local1.push(this.parseValue());
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACKET){
return (_local1);
};
if (this.token.type == JSONTokenType.COMMA){
this.nextToken();
} else {
this.tokenizer.parseError(("Expecting ] or , but found " + this.token.value));
};
};
return (null);
}
private function parseObject():Object{
var _local2:String;
var _local1:Object = new Object();
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACE){
return (_local1);
};
while (true) {
if (this.token.type == JSONTokenType.STRING){
_local2 = String(this.token.value);
this.nextToken();
if (this.token.type == JSONTokenType.COLON){
this.nextToken();
_local1[_local2] = this.parseValue();
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACE){
return (_local1);
};
if (this.token.type == JSONTokenType.COMMA){
this.nextToken();
} else {
this.tokenizer.parseError(("Expecting } or , but found " + this.token.value));
};
} else {
this.tokenizer.parseError(("Expecting : but found " + this.token.value));
};
} else {
this.tokenizer.parseError(("Expecting string but found " + this.token.value));
};
};
return (null);
}
private function parseValue():Object{
if (this.token == null){
this.tokenizer.parseError("Unexpected end of input");
};
switch (this.token.type){
case JSONTokenType.LEFT_BRACE:
return (this.parseObject());
case JSONTokenType.LEFT_BRACKET:
return (this.parseArray());
case JSONTokenType.STRING:
case JSONTokenType.NUMBER:
case JSONTokenType.TRUE:
case JSONTokenType.FALSE:
case JSONTokenType.NULL:
return (this.token.value);
default:
this.tokenizer.parseError(("Unexpected " + this.token.value));
};
return (null);
}
}
}//package com.adobe.serialization.json
Section 13
//JSONEncoder (com.adobe.serialization.json.JSONEncoder)
package com.adobe.serialization.json {
import flash.utils.*;
public class JSONEncoder {
private var jsonString:String;
public function JSONEncoder(_arg1){
this.jsonString = this.convertToString(_arg1);
}
public function getString():String{
return (this.jsonString);
}
private function convertToString(_arg1):String{
if ((_arg1 is String)){
return (this.escapeString((_arg1 as String)));
};
if ((_arg1 is Number)){
return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null");
} else {
if ((_arg1 is Boolean)){
return ((_arg1) ? "true" : "false");
} else {
if ((_arg1 is Array)){
return (this.arrayToString((_arg1 as Array)));
};
if ((((_arg1 is Object)) && (!((_arg1 == null))))){
return (this.objectToString(_arg1));
};
};
};
return ("null");
}
private function escapeString(_arg1:String):String{
var _local3:String;
var _local6:String;
var _local7:String;
var _local2 = "";
var _local4:Number = _arg1.length;
var _local5:int;
while (_local5 < _local4) {
_local3 = _arg1.charAt(_local5);
switch (_local3){
case "\"":
_local2 = (_local2 + "\\\"");
break;
case "\\":
_local2 = (_local2 + "\\\\");
break;
case "\b":
_local2 = (_local2 + "\\b");
break;
case "\f":
_local2 = (_local2 + "\\f");
break;
case "\n":
_local2 = (_local2 + "\\n");
break;
case "\r":
_local2 = (_local2 + "\\r");
break;
case "\t":
_local2 = (_local2 + "\\t");
break;
default:
if (_local3 < " "){
_local6 = _local3.charCodeAt(0).toString(16);
_local7 = ((_local6.length == 2)) ? "00" : "000";
_local2 = (_local2 + (("\\u" + _local7) + _local6));
} else {
_local2 = (_local2 + _local3);
};
};
_local5++;
};
return ((("\"" + _local2) + "\""));
}
private function arrayToString(_arg1:Array):String{
var _local2 = "";
var _local3:int;
while (_local3 < _arg1.length) {
if (_local2.length > 0){
_local2 = (_local2 + ",");
};
_local2 = (_local2 + this.convertToString(_arg1[_local3]));
_local3++;
};
return ((("[" + _local2) + "]"));
}
private function objectToString(_arg1:Object):String{
var value:Object;
var key:String;
var v:XML;
var o = _arg1;
var s = "";
var classInfo:XML = describeType(o);
if (classInfo.@name.toString() == "Object"){
for (key in o) {
value = o[key];
if ((value is Function)){
} else {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((this.escapeString(key) + ":") + this.convertToString(value)));
};
};
} else {
for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((this.escapeString(v.@name.toString()) + ":") + this.convertToString(o[v.@name])));
};
};
return ((("{" + s) + "}"));
}
}
}//package com.adobe.serialization.json
Section 14
//JSONParseError (com.adobe.serialization.json.JSONParseError)
package com.adobe.serialization.json {
public class JSONParseError extends Error {
private var _location:int;
private var _text:String;
public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){
super(_arg1);
name = "JSONParseError";
this._location = _arg2;
this._text = _arg3;
}
public function get location():int{
return (this._location);
}
public function get text():String{
return (this._text);
}
}
}//package com.adobe.serialization.json
Section 15
//JSONToken (com.adobe.serialization.json.JSONToken)
package com.adobe.serialization.json {
public class JSONToken {
private var _type:int;
private var _value:Object;
public function JSONToken(_arg1:int=-1, _arg2:Object=null){
this._type = _arg1;
this._value = _arg2;
}
public function get type():int{
return (this._type);
}
public function set type(_arg1:int):void{
this._type = _arg1;
}
public function get value():Object{
return (this._value);
}
public function set value(_arg1:Object):void{
this._value = _arg1;
}
}
}//package com.adobe.serialization.json
Section 16
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer)
package com.adobe.serialization.json {
public class JSONTokenizer {
private var obj:Object;
private var jsonString:String;
private var loc:int;
private var ch:String;
public function JSONTokenizer(_arg1:String){
this.jsonString = _arg1;
this.loc = 0;
this.nextChar();
}
public function getNextToken():JSONToken{
var _local2:String;
var _local3:String;
var _local4:String;
var _local1:JSONToken = new JSONToken();
this.skipIgnored();
switch (this.ch){
case "{":
_local1.type = JSONTokenType.LEFT_BRACE;
_local1.value = "{";
this.nextChar();
break;
case "}":
_local1.type = JSONTokenType.RIGHT_BRACE;
_local1.value = "}";
this.nextChar();
break;
case "[":
_local1.type = JSONTokenType.LEFT_BRACKET;
_local1.value = "[";
this.nextChar();
break;
case "]":
_local1.type = JSONTokenType.RIGHT_BRACKET;
_local1.value = "]";
this.nextChar();
break;
case ",":
_local1.type = JSONTokenType.COMMA;
_local1.value = ",";
this.nextChar();
break;
case ":":
_local1.type = JSONTokenType.COLON;
_local1.value = ":";
this.nextChar();
break;
case "t":
_local2 = ((("t" + this.nextChar()) + this.nextChar()) + this.nextChar());
if (_local2 == "true"){
_local1.type = JSONTokenType.TRUE;
_local1.value = true;
this.nextChar();
} else {
this.parseError(("Expecting 'true' but found " + _local2));
};
break;
case "f":
_local3 = (((("f" + this.nextChar()) + this.nextChar()) + this.nextChar()) + this.nextChar());
if (_local3 == "false"){
_local1.type = JSONTokenType.FALSE;
_local1.value = false;
this.nextChar();
} else {
this.parseError(("Expecting 'false' but found " + _local3));
};
break;
case "n":
_local4 = ((("n" + this.nextChar()) + this.nextChar()) + this.nextChar());
if (_local4 == "null"){
_local1.type = JSONTokenType.NULL;
_local1.value = null;
this.nextChar();
} else {
this.parseError(("Expecting 'null' but found " + _local4));
};
break;
case "\"":
_local1 = this.readString();
break;
default:
if (((this.isDigit(this.ch)) || ((this.ch == "-")))){
_local1 = this.readNumber();
} else {
if (this.ch == ""){
return (null);
};
this.parseError((("Unexpected " + this.ch) + " encountered"));
};
};
return (_local1);
}
private function readString():JSONToken{
var _local3:String;
var _local4:int;
var _local1:JSONToken = new JSONToken();
_local1.type = JSONTokenType.STRING;
var _local2 = "";
this.nextChar();
while (((!((this.ch == "\""))) && (!((this.ch == ""))))) {
if (this.ch == "\\"){
this.nextChar();
switch (this.ch){
case "\"":
_local2 = (_local2 + "\"");
break;
case "/":
_local2 = (_local2 + "/");
break;
case "\\":
_local2 = (_local2 + "\\");
break;
case "b":
_local2 = (_local2 + "\b");
break;
case "f":
_local2 = (_local2 + "\f");
break;
case "n":
_local2 = (_local2 + "\n");
break;
case "r":
_local2 = (_local2 + "\r");
break;
case "t":
_local2 = (_local2 + "\t");
break;
case "u":
_local3 = "";
_local4 = 0;
while (_local4 < 4) {
if (!this.isHexDigit(this.nextChar())){
this.parseError((" Excepted a hex digit, but found: " + this.ch));
};
_local3 = (_local3 + this.ch);
_local4++;
};
_local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16)));
break;
default:
_local2 = (_local2 + ("\\" + this.ch));
};
} else {
_local2 = (_local2 + this.ch);
};
this.nextChar();
};
if (this.ch == ""){
this.parseError("Unterminated string literal");
};
this.nextChar();
_local1.value = _local2;
return (_local1);
}
private function readNumber():JSONToken{
var _local1:JSONToken = new JSONToken();
_local1.type = JSONTokenType.NUMBER;
var _local2 = "";
if (this.ch == "-"){
_local2 = (_local2 + "-");
this.nextChar();
};
if (!this.isDigit(this.ch)){
this.parseError("Expecting a digit");
};
if (this.ch == "0"){
_local2 = (_local2 + this.ch);
this.nextChar();
if (this.isDigit(this.ch)){
this.parseError("A digit cannot immediately follow 0");
};
} else {
while (this.isDigit(this.ch)) {
_local2 = (_local2 + this.ch);
this.nextChar();
};
};
if (this.ch == "."){
_local2 = (_local2 + ".");
this.nextChar();
if (!this.isDigit(this.ch)){
this.parseError("Expecting a digit");
};
while (this.isDigit(this.ch)) {
_local2 = (_local2 + this.ch);
this.nextChar();
};
};
if ((((this.ch == "e")) || ((this.ch == "E")))){
_local2 = (_local2 + "e");
this.nextChar();
if ((((this.ch == "+")) || ((this.ch == "-")))){
_local2 = (_local2 + this.ch);
this.nextChar();
};
if (!this.isDigit(this.ch)){
this.parseError("Scientific notation number needs exponent value");
};
while (this.isDigit(this.ch)) {
_local2 = (_local2 + this.ch);
this.nextChar();
};
};
var _local3:Number = Number(_local2);
if (((isFinite(_local3)) && (!(isNaN(_local3))))){
_local1.value = _local3;
return (_local1);
};
this.parseError((("Number " + _local3) + " is not valid!"));
return (null);
}
private function nextChar():String{
return ((this.ch = this.jsonString.charAt(this.loc++)));
}
private function skipIgnored():void{
var _local1:int;
do {
_local1 = this.loc;
this.skipWhite();
this.skipComments();
} while (_local1 != this.loc);
}
private function skipComments():void{
if (this.ch == "/"){
this.nextChar();
switch (this.ch){
case "/":
do {
this.nextChar();
} while (((!((this.ch == "\n"))) && (!((this.ch == "")))));
this.nextChar();
break;
case "*":
this.nextChar();
while (true) {
if (this.ch == "*"){
this.nextChar();
if (this.ch == "/"){
this.nextChar();
break;
};
} else {
this.nextChar();
};
if (this.ch == ""){
this.parseError("Multi-line comment not closed");
};
};
break;
default:
this.parseError((("Unexpected " + this.ch) + " encountered (expecting '/' or '*' )"));
};
};
}
private function skipWhite():void{
while (this.isWhiteSpace(this.ch)) {
this.nextChar();
};
}
private function isWhiteSpace(_arg1:String):Boolean{
return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r"))));
}
private function isDigit(_arg1:String):Boolean{
return ((((_arg1 >= "0")) && ((_arg1 <= "9"))));
}
private function isHexDigit(_arg1:String):Boolean{
var _local2:String = _arg1.toUpperCase();
return (((this.isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F"))))));
}
public function parseError(_arg1:String):void{
throw (new JSONParseError(_arg1, this.loc, this.jsonString));
}
}
}//package com.adobe.serialization.json
Section 17
//JSONTokenType (com.adobe.serialization.json.JSONTokenType)
package com.adobe.serialization.json {
public class JSONTokenType {
public static const UNKNOWN:int = -1;
public static const COMMA:int = 0;
public static const LEFT_BRACE:int = 1;
public static const RIGHT_BRACE:int = 2;
public static const LEFT_BRACKET:int = 3;
public static const RIGHT_BRACKET:int = 4;
public static const COLON:int = 6;
public static const TRUE:int = 7;
public static const FALSE:int = 8;
public static const NULL:int = 9;
public static const STRING:int = 10;
public static const NUMBER:int = 11;
}
}//package com.adobe.serialization.json
Section 18
//IntUtil (com.adobe.utils.IntUtil)
package com.adobe.utils {
public class IntUtil {
private static var hexChars:String = "0123456789abcdef";
public static function rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
public static function toHex(_arg1:int, _arg2:Boolean=false):String{
var _local4:int;
var _local5:int;
var _local3 = "";
if (_arg2){
_local4 = 0;
while (_local4 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15))));
_local4++;
};
} else {
_local5 = 0;
while (_local5 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15))));
_local5++;
};
};
return (_local3);
}
}
}//package com.adobe.utils
Section 19
//APIConnector (com.newgrounds.components.APIConnector)
package com.newgrounds.components {
import com.newgrounds.*;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class APIConnector extends MovieClip {
public var errorDialog:MovieClip;
public var background:MovieClip;
public var viewLatestButton:SimpleButton;
public var closeButton:SimpleButton;
public var viewAuthorizedButton:SimpleButton;
private var _initialized:Boolean;
private var _movieId:String;
private var _encryptionKey:String;
private var _movieVersion:String;
private var _showConnectingPopup:Boolean;// = true
private var _useErrorPopup:Boolean;// = true
private var _medalPopup:MedalPopup;
private var _popDelay:Timer;
public function APIConnector(){
this._popDelay = new Timer(3000, 1);
super();
addFrameScript(0, this.frame1, 6, this.frame7, 7, this.frame8);
if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){
return;
};
this.useErrorPopup = true;
this.useMedalPopup = true;
this._popDelay.addEventListener(TimerEvent.TIMER, this.errorTimerHandler);
addEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
if (stage){
addEventListener(Event.RENDER, this.renderHandler);
stage.invalidate();
} else {
this.clear();
};
}
public function get movieId():String{
return (this._movieId);
}
public function set movieId(_arg1:String):void{
this._movieId = _arg1;
}
public function get encryptionKey():String{
return (this._encryptionKey);
}
public function set encryptionKey(_arg1:String):void{
this._encryptionKey = _arg1;
}
public function get movieVersion():String{
return (this._movieVersion);
}
public function set movieVersion(_arg1:String):void{
this._movieVersion = _arg1;
}
public function get debugMode():Boolean{
return (API.debugMode);
}
public function set debugMode(_arg1:Boolean):void{
API.debugMode = true;
}
public function get useFakeSession():Boolean{
return (API.getFakeSession());
}
public function set useFakeSession(_arg1:Boolean):void{
API.setFakeSession(true);
}
public function get useMedalPopup():Boolean{
return (!((this._medalPopup == null)));
}
public function set useMedalPopup(_arg1:Boolean):void{
if (((_arg1) && (!(this._medalPopup)))){
this._medalPopup = new MedalPopup();
addChild(this._medalPopup);
} else {
if (((!(_arg1)) && (this._medalPopup))){
removeChild(this._medalPopup);
this._medalPopup = null;
};
};
}
public function get useErrorPopup():Boolean{
return (this._useErrorPopup);
}
public function set useErrorPopup(_arg1:Boolean):void{
this._useErrorPopup = _arg1;
API.addEventListener(APIEvent.API_CONNECTED, this.movieConnectedHandler);
if (this._useErrorPopup){
API.addEventListener(APIEvent.NEW_VERSION_AVAILABLE, this.newVersionAvailableHandler);
API.addEventListener(APIEvent.HOST_BLOCKED, this.hostBlockedHandler);
} else {
API.removeEventListener(APIEvent.NEW_VERSION_AVAILABLE, this.newVersionAvailableHandler);
API.removeEventListener(APIEvent.HOST_BLOCKED, this.hostBlockedHandler);
};
}
public function get showConnectingPopup():Boolean{
return (this._showConnectingPopup);
}
public function set showConnectingPopup(_arg1:Boolean):void{
this._showConnectingPopup = _arg1;
if (((!(_arg1)) && ((((currentLabel == "connecting")) || ((currentLabel == "connected")))))){
this.clear();
};
}
public function clear():void{
gotoAndStop("idle");
}
public function connect():void{
API.setVersion(this._movieVersion);
API.connect(root.loaderInfo, this._movieId, this._encryptionKey);
visible = true;
if (this.showConnectingPopup){
gotoAndStop("connecting");
};
}
private function renderHandler(_arg1:Event):void{
removeEventListener(Event.RENDER, this.renderHandler);
this.clear();
this.connect();
}
private function movieConnectedHandler(_arg1:APIEvent):void{
if (_arg1.success){
if (((((((API.isPublishedHost()) && (API.hostIsCompatible()))) && (!(API.hasUserSession())))) && (!(API.debugMode)))){
gotoAndStop("no_login");
this._popDelay.start();
visible = true;
} else {
if (this.showConnectingPopup){
gotoAndStop("connected");
};
};
} else {
gotoAndStop("no_connect");
this._popDelay.start();
visible = true;
};
}
private function newVersionAvailableHandler(_arg1:APIEvent):void{
gotoAndStop("new_version");
visible = true;
this.centerOnStage();
}
private function hostBlockedHandler(_arg1:APIEvent):void{
gotoAndStop("bad_host");
visible = true;
this.centerOnStage();
}
private function closeButtonClickHandler(_arg1:Event):void{
this.clear();
}
private function officialVersionClickHandler(_arg1:Event):void{
API.loadOfficialURL();
}
private function enterFrameHandler(_arg1:Event):void{
this.forceAlwaysOnTop();
}
private function initButtons():void{
if (this.viewLatestButton){
this.viewLatestButton.addEventListener(MouseEvent.CLICK, this.officialVersionClickHandler);
};
if (this.viewAuthorizedButton){
this.viewAuthorizedButton.addEventListener(MouseEvent.CLICK, this.officialVersionClickHandler);
};
if (this.closeButton){
this.closeButton.addEventListener(MouseEvent.CLICK, this.closeButtonClickHandler);
};
}
private function forceAlwaysOnTop():void{
var myIndex:uint;
var topIndex:uint;
if (((parent) && (visible))){
try {
myIndex = parent.getChildIndex(this);
topIndex = (parent.numChildren - 1);
if (myIndex != topIndex){
parent.setChildIndex(this, topIndex);
};
} catch(e:Error) {
};
};
}
private function centerOnStage():void{
if (stage){
x = (stage.stageWidth / 2);
y = (stage.stageHeight / 2);
};
}
private function errorTimerHandler(_arg1:TimerEvent):void{
if (this.errorDialog){
this.errorDialog.gotoAndPlay("closeme");
} else {
this.clear();
};
}
function frame1(){
stop();
}
function frame7(){
this.initButtons();
}
function frame8(){
this.initButtons();
}
}
}//package com.newgrounds.components
Section 20
//FlashAd (com.newgrounds.components.FlashAd)
package com.newgrounds.components {
import com.newgrounds.*;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class FlashAd extends Sprite {
public var background:MovieClip;
private var _showBackground:Boolean;
private var _adURLLoader:URLLoader;
private var _adRect:Sprite;
private var _mask:Shape;
private var _ad:Loader;
private static const DEBUG_AD_URL:String = "http://www.ngads.com/adtest.php";
private static const REMOVED_FROM_STAGE:String = "removedFromStage";
private static var _adResetTime:uint = 0;
private static var _adURL:URLRequest;
public function FlashAd(_arg1:Boolean=true){
if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){
return;
};
Security.allowDomain("server.cpmstar.com");
this._adRect = new Sprite();
this._adRect.graphics.beginFill(0);
this._adRect.graphics.moveTo(0, 0);
this._adRect.graphics.lineTo(300, 0);
this._adRect.graphics.lineTo(300, 250);
this._adRect.graphics.lineTo(0, 250);
this._adRect.graphics.lineTo(0, 0);
this._adRect.graphics.endFill();
this._mask = new Shape();
this._mask.graphics.beginFill(0);
this._mask.graphics.moveTo(0, 0);
this._mask.graphics.lineTo(300, 0);
this._mask.graphics.lineTo(300, 250);
this._mask.graphics.lineTo(0, 250);
this._mask.graphics.lineTo(0, 0);
this._mask.graphics.endFill();
addChild(this._adRect);
this._adRect.addChild(this._mask);
this._adRect.visible = false;
x = Math.round(x);
y = Math.round(y);
scaleX = 1;
scaleY = 1;
if (this.background){
if (this.background.ngLinkButton){
this.background.ngLinkButton.addEventListener(MouseEvent.CLICK, this.linkClickHandler);
};
if (this.background.loadingClip){
this.background.loadingClip.visible = false;
};
};
if (API.isFlashVersion(9, 0, 28)){
addEventListener(REMOVED_FROM_STAGE, this.onRemovedFromStage);
};
if (API.adsApproved){
this.loadAdFeed(API.adFeedURL);
} else {
API.addEventListener(APIEvent.ADS_APPROVED, this.onAdsApproved, false, 0, true);
};
this.showBackground = _arg1;
}
public function get showBackground():Boolean{
return (this._showBackground);
}
public function set showBackground(_arg1:Boolean):void{
this._showBackground = _arg1;
if (this.background){
this.background.visible = _arg1;
this._adRect.mask = (_arg1) ? this.background.adMask : null;
};
}
public function removeAd():void{
removeEventListener(REMOVED_FROM_STAGE, this.onRemovedFromStage);
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = false;
};
if (this._adURLLoader){
try {
this._adURLLoader.close();
} catch(e:Error) {
};
};
if (this._adRect){
this._adRect.visible = false;
};
if (this._ad){
trace("[NewgroundsAPI] :: Ad removed");
try {
this._ad.close();
} catch(e:Error) {
};
try {
Object(this._ad).unloadAndStop(true);
} catch(e:Error) {
_ad.unload();
};
if (this._ad.parent){
this._ad.parent.removeChild(this._ad);
};
};
this._ad = null;
}
private function onAdsApproved(_arg1:APIEvent):void{
API.removeEventListener(APIEvent.ADS_APPROVED, this.onAdsApproved, false);
if (_arg1.success){
this.loadAdFeed(API.adFeedURL);
} else {
trace("[NewgroundsAPI] :: No ad feed URL supplied to Newgrounds API ad!");
};
}
private function loadAdFeed(_arg1:String):void{
var adFeedURL = _arg1;
this._adURLLoader = new URLLoader();
this._adURLLoader.addEventListener(Event.COMPLETE, this.onAdFeedLoaded);
this._adURLLoader.addEventListener(IOErrorEvent.IO_ERROR, this.onAdError);
this._adURLLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onAdError);
if (!adFeedURL){
trace("[Newgrounds API] :: Invalid feed URL!");
return;
};
if (this.hasAdElapsed){
if (adFeedURL.indexOf("?") > -1){
_adURL = new URLRequest(((adFeedURL + "&random=") + Math.random()));
} else {
_adURL = new URLRequest(((adFeedURL + "?random=") + Math.random()));
};
};
try {
this._adURLLoader.load(_adURL);
} catch(e:Error) {
onAdError(null);
};
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = true;
};
}
private function loadAd(_arg1:String):void{
var url = _arg1;
if (this._ad){
this.removeAd();
};
this._ad = new Loader();
this._ad.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onAdLoaded);
this._ad.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.onAdError);
try {
Object(this._ad.contentLoaderInfo).uncaughtErrorEvents.addEventListener("uncaughtError", function (_arg1:Event):void{
});
} catch(error:Error) {
};
this._ad.load(new URLRequest(url), new LoaderContext(false, new ApplicationDomain(null)));
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = true;
};
}
private function onAdFeedLoaded(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
if (((_local2.data) && (!((_local2.data == ""))))){
this.loadAd((_local2.data as String));
} else {
dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad")));
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = false;
};
};
}
private function onAdFeedError(_arg1:Event):void{
trace("[NewgroundsAPI] :: Unable to load ad feed!");
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = false;
};
}
private function onAdError(_arg1:Event):void{
dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad")));
this.removeAd();
}
private function onAdLoaded(_arg1:Event):void{
this._adRect.addChild(this._ad);
this._ad.mask = this._mask;
this._adRect.visible = true;
if (this.background){
if (this._showBackground){
this._adRect.mask = this.background.adMask;
};
if (this.background.loadingClip){
this.background.loadingClip.visible = false;
};
};
trace("[NewgroundsAPI] :: Ad loaded!");
dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, true));
}
private function onRemovedFromStage(_arg1:Event):void{
this.removeAd();
}
private function get hasAdElapsed():Boolean{
if (getTimer() >= _adResetTime){
_adResetTime = (getTimer() + ((1000 * 60) * 5));
return (true);
};
return (false);
}
private function linkClickHandler(_arg1:MouseEvent):void{
API.loadNewgrounds();
}
}
}//package com.newgrounds.components
Section 21
//MedalPopup (com.newgrounds.components.MedalPopup)
package com.newgrounds.components {
import com.newgrounds.*;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
public class MedalPopup extends MovieClip {
public var medalNameText:TextField;
public var medalValueText:TextField;
public var medalContainer:Sprite;
private var _initialized:Boolean;
private var _medal:Medal;
private var _medalIcon:Bitmap;
private var _medalQueue:Array;
private var _popDelay:Timer;
public function MedalPopup(){
this._medalQueue = [];
this._popDelay = new Timer(3000, 1);
super();
addFrameScript(0, this.frame1, 9, this.frame10, 18, this.frame19);
if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){
return;
};
visible = false;
addEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
stop();
API.addEventListener(APIEvent.MEDAL_UNLOCKED, this.onMedalUnlocked, false, 0, true);
this._popDelay.addEventListener(TimerEvent.TIMER, this.timerHandler);
}
public function get popupTime():Number{
return ((this._popDelay.delay / 1000));
}
public function set popupTime(_arg1:Number):void{
if (isNaN(_arg1)){
_arg1 = 3;
};
this._popDelay.delay = (_arg1 * 1000);
}
private function enterFrameHandler(_arg1:Event):void{
var myIndex:uint;
var topIndex:uint;
var event = _arg1;
if (((this._medalQueue.length) && (!(visible)))){
this._medal = this._medalQueue.pop();
this._popDelay.start();
gotoAndPlay("medal_show");
visible = true;
};
if (((visible) && (parent))){
try {
myIndex = parent.getChildIndex(this);
topIndex = (parent.numChildren - 1);
if (myIndex != topIndex){
parent.setChildIndex(this, topIndex);
};
} catch(error:Error) {
};
};
}
private function onMedalUnlocked(_arg1:APIEvent):void{
if (((((_arg1.success) && (_arg1.data))) && ((_arg1.data.medal is Medal)))){
this._medalQueue.push(Medal(_arg1.data.medal));
};
}
private function showMedalInfo():void{
if (!this._medal){
return;
};
if (this.medalContainer){
this._medalIcon = this._medal.createIconBitmap();
this.medalContainer.addChild(this._medalIcon);
};
if (this.medalNameText){
this.medalNameText.text = this._medal.name;
};
if (this.medalValueText){
this.medalValueText.text = (this._medal.value.toString() + "pts");
};
this._popDelay.start();
stop();
}
private function timerHandler(_arg1:TimerEvent):void{
if (((this._medalIcon) && (this._medalIcon.parent))){
this._medalIcon.parent.removeChild(this._medalIcon);
this._medalIcon = null;
};
gotoAndPlay("medal_hide");
this._popDelay.stop();
}
function frame1(){
stop();
}
function frame10(){
this.showMedalInfo();
stop();
}
function frame19(){
stop();
visible = false;
}
}
}//package com.newgrounds.components
Section 22
//API (com.newgrounds.API)
package com.newgrounds {
import flash.display.*;
import flash.events.*;
import com.newgrounds.components.*;
import flash.utils.*;
import com.adobe.serialization.json.*;
import flash.net.*;
import com.adobe.crypto.*;
import com.adobe.images.*;
import flash.system.*;
public class API {
public static const VERSION:String = "2.4.18";
private static const GATEWAY_URL:String = "http://www.ngads.com/gateway_v2.php";
private static const AD_TERMS_URL:String = "http://www.newgrounds.com/wiki/flashads/terms/";
private static const COMMANDS_WIKI_URL:String = "http://www.newgrounds.com/wiki/flashapi/commands/";
private static var do_echo:Boolean = false;
private static var _debug:Boolean = true;
private static var _connected:Boolean = false;
private static var _isMetadataLoaded:Boolean = false;
private static var _preloadComplete:Boolean = false;
private static var _adsApproved:Boolean = false;
private static var _saveGroupId:uint;
private static var _saveFileId:uint;
private static var _trackerId:uint;
private static var _movieId:String;
private static var _encryptionKey:String;
private static var _url:String;
private static var _host:String;
private static var connected:Boolean;
private static var version:String;
private static var ad_url:String;
private static var _fakeSession:Boolean = false;
private static var publisher_id:uint;
private static var session_id:String;
private static var user_email:String;
private static var user_name:String;
private static var user_id:uint;
private static var userpage_format:String;
private static var _medals:Array;
private static var timeoutTimer:Timer = new Timer(8000, 1);
private static var _userpageFormat:String;
private static var _scoreboards:Array = new Array();
private static var _bridge:Bridge;
private static var save_file:SaveFile;
private static var _imageFilePath:String;
private static var _saveFilePath:String;
private static var _saveGroups:Array = [];
private static var root:DisplayObject;
private static var _eventDispatcher:EventDispatcher = new EventDispatcher();
private static var score_page_counts:Object = new Object();
private static var compression_radix:String = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
private static var compressor:BaseN = new BaseN(compression_radix);
public static var errors:Dictionary = APIError.init_codes();
private static var sharedObjects:Dictionary = new Dictionary();
private static var _preloadAssets:Array = [];
public static var periods:Object = getPeriodAliases();
private static var period_aliases:Object = {t:{name:"Today", alias:"TODAY"}, p:{name:"Yesterday", alias:"YESTERDAY"}, w:{name:"This Week", alias:"THIS_WEEK"}, m:{name:"This Month", alias:"THIS_MONTH"}, y:{name:"This Year", alias:"THIS_YEAR"}, a:{name:"All-Time", alias:"ALL_TIME"}};
private static var secureCommand:String;
public static function get adFeedURL():String{
return (ad_url);
}
public static function get preloadComplete():Boolean{
return (_preloadComplete);
}
private static function assertConnected():Boolean{
if (!_connected){
return (false);
};
return (true);
}
public static function setVersion(_arg1:String):void{
if (((_arg1) && (!((_arg1 == ""))))){
version = _arg1;
};
}
public static function setUserEmail(_arg1:String):void{
user_email = _arg1;
}
public static function setFakeSession(_arg1:Boolean):void{
_fakeSession = _arg1;
}
public static function getFakeSession():Boolean{
return (_fakeSession);
}
public static function get debugMode():Boolean{
return (_debug);
}
public static function set debugMode(_arg1:Boolean):void{
_debug = _arg1;
}
public static function getTrackerID():uint{
return (_trackerId);
}
public static function getUserID():uint{
return (user_id);
}
public static function getUserName():String{
return (user_name);
}
public static function isConnected():Boolean{
return (_connected);
}
public static function getID():uint{
return (_trackerId);
}
public static function getOfficialURL():String{
var _local1:String = ((((((GATEWAY_URL + "?tracker_id=") + _movieId) + "&command_id=") + getCommandID("loadOfficalVersion")) + "&seed=") + Math.random());
if (debugMode){
_local1 = (_local1 + "&debug=1");
};
return (_local1);
}
public static function get adsApproved():Boolean{
return (_adsApproved);
}
public static function hasUserSession():Boolean{
return (((((!((session_id == null))) && (!((session_id == ""))))) && (!((publisher_id == 0)))));
}
public static function isNewgrounds():Boolean{
return ((((publisher_id == 1)) || (((_host) && ((_host.toLowerCase().indexOf("ungrounded.net") > -1))))));
}
public static function hostIsCompatible():Boolean{
return (!((publisher_id == 0)));
}
public static function hasUserEmail():Boolean{
return (((!((user_email == null))) && (!((user_email == "")))));
}
public static function connectionTimeOut(_arg1:Event=null):void{
dispatchEvent(new APIEvent(APIEvent.API_CONNECTED, false, new APIError("CONNECTION_FAILED", "Connection to NewgroundsAPI gateway timed out.")));
}
public static function connect(_arg1:LoaderInfo, _arg2:String, _arg3:String=null):void{
var loaderInfo = _arg1;
var m_id = _arg2;
var encrypt_key = _arg3;
if (!loaderInfo){
fatalError("Null loaderInfo paremeter passed in to connectMovie!", "");
return;
};
try {
if (loaderInfo.loader){
loaderInfo = loaderInfo.loader.loaderInfo;
};
} catch(error:Error) {
};
_url = loaderInfo.url;
_host = _url;
if ((((_host.indexOf("http://") > -1)) || ((_host.indexOf("https://") > -1)))){
_host = _host.split("/")[2].toLowerCase();
} else {
_host = "localhost";
};
var flashVars:Object = loaderInfo.parameters;
if (isPublishedHost()){
debugMode = false;
};
if (((!(debugMode)) && (flashVars))){
if (flashVars.NewgroundsAPI_UserName){
user_name = flashVars.NewgroundsAPI_UserName;
};
if (flashVars.NewgroundsAPI_UserID){
user_id = flashVars.NewgroundsAPI_UserID;
};
if (flashVars.NewgroundsAPI_PublisherID){
publisher_id = flashVars.NewgroundsAPI_PublisherID;
} else {
publisher_id = 0;
};
if (flashVars.NewgroundsAPI_UserpageFormat){
_userpageFormat = flashVars.NewgroundsAPI_UserpageFormat;
};
if (flashVars.NewgroundsAPI_SessionID){
session_id = flashVars.NewgroundsAPI_SessionID;
};
if (flashVars.NewgroundsAPI_SaveGroupID){
_saveGroupId = flashVars.NewgroundsAPI_SaveGroupID;
};
if (flashVars.NewgroundsAPI_SaveFileID){
_saveFileId = flashVars.NewgroundsAPI_SaveFileID;
};
if (flashVars.NewgroundsAPI_SandboxID){
_bridge = new Bridge(flashVars.NewgroundsAPI_SandboxID);
};
} else {
publisher_id = 1;
if (_fakeSession){
session_id = "D3bu64p1U53R";
user_id = 10;
user_name = "API-Debugger";
};
};
if (connected){
fatalError("NewgroundsAPI.connect() - connection already in progress", "connect");
return;
};
timeoutTimer.start();
if (!m_id){
fatalError("NewgroundsAPI.connectMovie() - missing required movieId parameter", "connectMovie");
};
_movieId = String(m_id);
_trackerId = uint(_movieId.substring(0, _movieId.indexOf(":")));
_encryptionKey = encrypt_key;
connected = true;
sendCommand("connectMovie", {host:getHost(), movie_version:version});
}
private static function getHost():String{
return (_host);
}
public static function isPublishedHost():Boolean{
return (((!((getHost() == "localhost"))) && ((getHost().indexOf("file://") == -1))));
}
public static function loadUserPage(_arg1:uint=0, _arg2:String=null):Boolean{
var _local3:String;
if ((((_arg1 == 0)) && ((_arg2 == null)))){
if (hasUserSession()){
_arg1 = user_id;
_arg2 = user_name;
} else {
return (false);
};
};
if (publisher_id == 1){
_local3 = (("http://" + _arg2.toLowerCase()) + ".newgrounds.com");
navigateToURL(new URLRequest(_local3), "_blank");
return (true);
};
if (userpage_format){
_local3 = userpage_format;
_local3 = _local3.split(":user_id:").join(_arg1.toString());
_local3 = _local3.split(":user_name:").join(escape(_arg2));
navigateToURL(new URLRequest(_local3), "_blank");
return (true);
};
return (false);
}
public static function loadNewgrounds():void{
sendCommand("loadNewgrounds", {host:getHost()}, true);
}
public static function loadOfficialURL():void{
navigateToURL(new URLRequest(getOfficialURL()));
}
public static function loadMySite():void{
sendCommand("loadMySite", {host:getHost()}, true);
}
public static function loadCustomLink(_arg1:String):void{
sendCommand("loadCustomLink", {host:getHost(), link:_arg1}, true);
}
public static function logCustomEvent(_arg1:String):void{
sendCommand("logCustomEvent", {host:getHost(), event:_arg1});
}
public static function getScoreBoard(_arg1:String):ScoreBoard{
var _local2:ScoreBoard;
for each (_local2 in _scoreboards) {
if (_local2.name == _arg1){
return (_local2);
};
};
return (null);
}
public static function getScoreBoardById(_arg1:uint):ScoreBoard{
var _local2:ScoreBoard;
for each (_local2 in _scoreboards) {
if (_local2.id == _arg1){
return (_local2);
};
};
return (null);
}
public static function postScore(_arg1:String, _arg2:uint, _arg3:String=""):void{
if (((!(_arg1)) || ((_arg1 == "")))){
sendError({command_id:getCommandID("postScore")}, new APIError("MISSING_PARAM", "missing required parameter(s)"));
return;
};
if (_arg3 == null){
_arg3 = "";
};
sendSecureCommand("postScore", {user_name:user_name, board:_arg1, value:_arg2, publisher_id:publisher_id, tag:_arg3});
}
public static function loadScores(_arg1:String, _arg2:String=null, _arg3:String=null):void{
var _local4 = "loadScores";
var _local5:ScoreBoard = getScoreBoard(_arg1);
if (((!(_local5)) || (!(_local5.id)))){
sendError({command_id:getCommandID(_local4)}, new APIError("MISSING_PARAM", "missing required ScoreBoard instance"));
return;
};
var _local6:Object = {};
_local6.publisher_id = publisher_id;
if (_arg2){
_local6.period = _arg2;
} else {
_local6.period = _local5.period;
};
_local6.board = _local5.id;
_local6.num_results = _local5.num_results;
_local6.page = _local5.page;
if (((!(_arg3)) || ((_arg3 == "")))){
_local6.tag = _local5.tag;
} else {
_local6.tag = _arg3;
};
sendCommand(_local4, _local6);
}
public static function loadScoresInRange(_arg1:String, _arg2:String="All-Time", _arg3:uint=1, _arg4:uint=10):void{
if (((!(_arg1)) || ((_arg1 == "")))){
sendError({command_id:getCommandID("postScore")}, new APIError("MISSING_PARAM", "missing required parameter(s)"));
return;
};
var _local5:ScoreBoard = getScoreBoard(_arg1);
if (_local5){
_local5.loadScoresInRange(_arg2, _arg3, _arg4);
} else {
sendWarning((("loadScoresInRange: Scoreboard " + _arg1) + " could not be found."));
};
}
private static function populateMedals(_arg1:Array):void{
var _local2:uint;
var _local3:Object;
if (_medals === null){
_medals = new Array();
_local2 = 0;
while (_local2 < _arg1.length) {
_local3 = _arg1[_local2];
_medals.push(Medal.createFromObject(_local3));
_local2++;
};
};
sendMessage("Medals loaded!");
}
private static function populateSaveGroups(_arg1:Array):void{
var _local3:SaveGroup;
_saveGroups = [];
var _local2:uint;
while (_local2 < _arg1.length) {
_local3 = SaveGroup.createFromObject(_arg1[_local2]);
_saveGroups.push(_local3);
_local2++;
};
}
private static function populateScoreBoards(_arg1:Array):void{
_scoreboards = [];
var _local2:uint;
while (_local2 < _arg1.length) {
_scoreboards.push(new ScoreBoard(_arg1[_local2].id, _arg1[_local2].name, ""));
_local2++;
};
}
public static function getMedals():Array{
return (_medals);
}
public static function getMedalById(_arg1:uint):Medal{
var _local2:Medal;
for each (_local2 in _medals) {
if (_local2.id == _arg1){
return (_local2);
};
};
return (null);
}
public static function getMedal(_arg1:String):Medal{
var _local2:Medal;
for each (_local2 in _medals) {
if (_local2.name == _arg1){
return (_local2);
};
};
return (null);
}
public static function unlockMedal(_arg1:String):void{
var _local3:Object;
var _local4:Object;
if (((!(_arg1)) || ((_arg1 == "")))){
sendError({command_id:getCommandID("unlockMedal")}, new APIError("MISSING_PARAM", "missing required medal name"));
return;
};
var _local2:Medal = getMedal(_arg1);
if (!_local2){
sendMessage(("No medal with name: " + _arg1));
return;
};
if (((hasUserSession()) || (debugMode))){
sendMessage((("Attempting to unlock '" + _local2.name) + "'"));
if (_local2.unlocked){
sendWarning((("Medal '" + _local2.name) + "' is already unlocked!"));
return;
};
_local3 = new Object();
_local3.medal_id = _local2.id;
sendSecureCommand("unlockMedal", _local3);
} else {
sendMessage(("Locally unlocking " + _local2.name));
if (_local2.unlocked){
sendWarning((("Medal '" + _local2.name) + "' is already unlocked!"));
return;
};
_local2.unlocked = true;
_local4 = loadLocal("medals_unlocked");
if (!_local4){
_local4 = new Object();
};
_local4[_local2.id.toString()] = true;
saveLocal("medals_unlocked", _local4);
callListener(APIEvent.UNLOCK_MEDAL, true, {medal:_local2});
};
}
public static function loadMedals():void{
if (_medals){
dispatchEvent(new APIEvent(APIEvent.MEDALS_LOADED, true, {medals:getMedals()}));
return;
};
var _local1:Object = new Object();
if (hasUserSession()){
_local1.publisher_id = publisher_id;
_local1.user_id = user_id;
};
sendCommand("getMedals", _local1);
}
public static function saveLocal(_arg1:String, _arg2:Object, _arg3:uint=0):void{
var sharedObj:SharedObject;
var save_id = _arg1;
var save_data = _arg2;
var size_allocation = _arg3;
try {
if (!sharedObjects[save_id]){
sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id));
};
sharedObj = sharedObjects[save_id];
sharedObj.data[save_id] = encodeData(save_data);
sharedObj.flush();
} catch(e:Error) {
sendWarning(("saveLocal ERROR: " + e));
};
}
public static function loadLocal(_arg1:String):Object{
var sharedObj:SharedObject;
var save_id = _arg1;
try {
if (!sharedObjects[save_id]){
sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id));
};
sharedObj = sharedObjects[save_id];
if (((((sharedObj) && (sharedObj.data))) && (sharedObj.data[save_id]))){
return (decodeData(sharedObj.data[save_id]));
} else {
return (null);
};
} catch(e:Error) {
sendWarning(("loadLocal ERROR: " + e));
};
return (null);
}
public static function encodeData(_arg1:Object):String{
return (compressHex(RC4.encrypt(JSON.encode(_arg1), _encryptionKey)));
}
public static function decodeData(_arg1:String){
return (JSON.decode(RC4.decrypt(uncompressHex(_arg1), _encryptionKey)));
}
private static function compressHex(_arg1:String):String{
var _local2:uint = (_arg1.length % 6);
var _local3 = "";
var _local4:uint;
while (_local4 < _arg1.length) {
_local3 = (_local3 + compressor.encode(uint(("0x" + _arg1.substr(_local4, 6))), 4));
_local4 = (_local4 + 6);
};
return ((_local2.toString() + _local3));
}
private static function uncompressHex(_arg1:String):String{
var _local4:uint;
var _local6:String;
var _local7:uint;
var _local8:String;
var _local2:uint = uint(_arg1.charAt(0));
var _local3 = "";
var _local5:uint = 1;
while (_local5 < _arg1.length) {
_local6 = _arg1.substr(_local5, 4);
_local7 = uint(compressor.decode(_local6));
_local8 = _local7.toString(16);
if ((_local5 + 4) < _arg1.length){
_local4 = 6;
} else {
_local4 = _local2;
};
while (_local8.length < _local4) {
_local8 = ("0" + _local8);
};
_local3 = (_local3 + _local8);
_local5 = (_local5 + 4);
};
return (_local3);
}
public static function getSaveGroupById(_arg1:uint):SaveGroup{
if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){
sendWarning("No save groups found");
return (null);
};
var _local2:uint;
while (_local2 < _saveGroups.length) {
if (_saveGroups[_local2].id == _arg1){
return (_saveGroups[_local2]);
};
_local2++;
};
return (null);
}
public static function getSaveGroup(_arg1:String):SaveGroup{
if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){
sendWarning("No save groups found");
return (null);
};
var _local2:uint;
while (_local2 < _saveGroups.length) {
if (_saveGroups[_local2].name == _arg1){
return (_saveGroups[_local2]);
};
_local2++;
};
return (null);
}
public static function getCurrentSaveFile(){
return (save_file);
}
public static function setCurrentSaveFile(_arg1:SaveFile){
save_file = _arg1;
}
public static function newSaveQuery(_arg1:String):SaveGroupQuery{
var _local2:SaveGroup = getSaveGroup(_arg1);
if (_local2){
return (_local2.newQuery());
};
return (null);
}
public static function executeSaveQuery(_arg1:SaveGroupQuery):void{
sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.groupId, query:JSON.encode(_arg1.toObject())}, false, null, _arg1);
}
public static function lookupSaveFiles(_arg1:SaveGroup):void{
var _local2:SaveGroupQuery = _arg1.getQuery(false);
sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.id, query:_local2.toObject()}, false, null, _local2);
}
public static function checkFilePrivledges(_arg1:SaveFile):void{
sendCommand("checkFilePrivs", {group:_arg1.groupId, filename:_arg1.name, user_id:(user_id) ? user_id : 0, publisher_id:publisher_id});
}
public static function newSaveFile(_arg1:String):SaveFile{
var _local2:SaveGroup = getSaveGroup(_arg1);
if (_local2){
return (new SaveFile(_local2));
};
sendError({command_id:"newSaveFile"}, new APIError("INVALID_SAVE_GROUP", (("'" + _local2) + "' is not a valid save group.")));
return (null);
}
public static function saveFile(_arg1:SaveFile, _arg2:Boolean=false, _arg3:Boolean=false):void{
var _local4:Object = _arg1.toObject();
_local4.user_name = user_name;
if (_arg1.id){
_local4.save_id = _arg1.id;
};
_local4.overwrite = (_arg2) ? 1 : 0;
if (_arg3){
_local4.draft = 1;
};
var _local5:ByteArray = new ByteArray();
if ((_arg1.contents is ByteArray)){
_local5.writeByte(0);
_local5.writeBytes(_arg1.contents);
} else {
_local5.writeByte(1);
_local5.writeObject(_arg1.contents);
};
_local5.compress();
var _local6:Object = new Object();
_local6.file = _local5;
if (_arg1.thumbnail){
_local6.thumbnail = PNGEncoder.encode(_arg1.thumbnail);
};
save_file = _arg1;
sendSecureCommand("saveFile", _local4, null, _local6, _arg1);
}
public static function rateSaveFile(_arg1:SaveFile, _arg2:SaveRating, _arg3:Number):void{
sendSecureCommand("rateSaveFile", {group:_arg1.groupId, save_id:_arg1.id, rating_id:_arg2.id, vote:_arg3, user_id:user_id}, null, null, _arg1);
}
public static function loadSaveFile(_arg1:Number, _arg2:Boolean=true){
var _local3:Object = {publisher_id:publisher_id, save_id:_arg1, get_contents:_arg2};
save_file = null;
sendCommand("loadSaveFile", _local3);
}
public static function loadFilesByDate(_arg1:String, _arg2:Boolean=true, _arg3:String=null, _arg4=null):void{
var _local7:*;
var _local5:SaveGroup = getSaveGroup(_arg1);
if (!_local5){
_local7 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByDate"}, _local7);
return;
};
var _local6:SaveGroupQuery = _local5.newQuery();
if (_arg3){
_local6.addKeyCondition(_arg3, "=", _arg4);
};
_local6.sortOn(SaveGroupQuery.CREATED_ON, _arg2);
_local6.execute();
}
public static function loadFilesByViews(_arg1:String, _arg2:Boolean=true, _arg3:String=null, _arg4=null):void{
var _local7:*;
var _local5:SaveGroup = getSaveGroup(_arg1);
if (!_local5){
_local7 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByViews"}, _local7);
return;
};
var _local6:SaveGroupQuery = _local5.newQuery();
if (_arg3){
_local6.addKeyCondition(_arg3, "=", _arg4);
};
_local6.sortOn(SaveGroupQuery.TOTAL_VIEWS, _arg2);
_local6.execute();
}
public static function loadFilesByRating(_arg1:String, _arg2:String, _arg3:Boolean=true, _arg4:String=null, _arg5=null):void{
var _local8:*;
var _local6:SaveGroup = getSaveGroup(_arg1);
if (!_local6){
_local8 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByDate"}, _local8);
return;
};
var _local7:SaveGroupQuery = _local6.newQuery();
if (_arg4){
_local7.addKeyCondition(_arg4, "=", _arg5);
};
_local7.sortOnRating(_arg2, _arg3);
_local7.execute();
}
public static function onRemoteAuthentication(_arg1:String){
var _local2:Object = JSON.decode(RC4.decrypt(_arg1, _encryptionKey));
user_id = _local2.NewgroundsAPI_UserID;
user_name = _local2.NewgroundsAPI_UserName;
session_id = _local2.NewgroundsAPI_SessionID;
publisher_id = _local2.NewgroundsAPI_PublisherID;
}
private static function doEvent(_arg1:Object):void{
var _local2:String;
var _local3:Object;
var _local4:String;
var _local5:Boolean;
var _local6:ScoreBoard;
var _local7:Array;
var _local8:*;
var _local9:String;
var _local10:Medal;
var _local11:SaveGroup;
var _local12:Object;
var _local13:Object;
var _local14:Object;
var _local15:SaveFile;
var _local16:uint;
var _local17:Object;
var _local18:uint;
var _local19:APIError;
var _local20:Object;
switch (getCommandName(_arg1.command_id)){
case "connectMovie":
timeoutTimer.stop();
if (_arg1.success){
sendMessage("You have successfully connected to the Newgrounds API Gateway");
sendMessage((("Movie identified as \"" + _arg1.movie_name) + "\""));
callListener(APIEvent.API_CONNECTED, _arg1.success, {title:_arg1.movie_name});
} else {
callListener(APIEvent.API_CONNECTED, _arg1.success, {});
return;
};
_local5 = false;
if (_arg1.ad_status === -1){
_local2 = "This movie was not approved to run Flash Ads.";
sendWarning(_local2);
sendWarning((("visit " + AD_TERMS_URL) + " to view our approval guidelines"));
if (!_arg1.ad_url){
callListener(APIEvent.ADS_APPROVED, false, new APIError("FLASH_ADS_NOT_APPROVED", _local2));
} else {
_local5 = true;
};
} else {
if (_arg1.ad_status === 0){
_local2 = "Flash Ads are currently awaiting approval.";
sendNotice(_local2);
if (!_arg1.ad_url){
callListener(APIEvent.ADS_APPROVED, false, new APIError("FLASH_ADS_NOT_APPROVED", _local2));
} else {
_local5 = true;
};
};
};
if (_arg1.ad_url){
ad_url = unescape(_arg1.ad_url);
if (!_local5){
sendMessage("This movie has been approved to run Flash Ads!");
};
_adsApproved = true;
callListener(APIEvent.ADS_APPROVED, true);
};
if (_arg1.deny_host){
_local2 = (getHost() + " does not have permission to run this movie!");
sendWarning(_local2);
sendWarning(("\tUpdate your API configuration to unblock " + getHost()));
callListener(APIEvent.HOST_BLOCKED, true, {real_url:unescape(_arg1.movie_url), url:getOfficialURL()});
};
if (_arg1.movie_version){
sendWarning("According to your API Configuration, this version is out of date.");
if (version){
sendWarning(("\tThe this movie is version " + version));
};
sendWarning(("\tThe most current version is " + _arg1.movie_version));
callListener(APIEvent.NEW_VERSION_AVAILABLE, true, {version:_arg1.movie_version, real_url:unescape(_arg1.movie_url), url:getOfficialURL()});
};
if (_arg1.request_portal_url){
sendCommand("setPortalID", {portal_url:_url});
};
sendCommand("preloadSettings", {publisher_id:publisher_id, user_id:user_id});
break;
case "preloadSettings":
if (_arg1.medals){
populateMedals(_arg1.medals);
if (((!(hasUserSession())) && (!(debugMode)))){
echo("Checking for SharedObject Medals...");
_local8 = loadLocal("medals_unlocked");
if (_local8){
for (_local9 in _local8) {
if (_local8[_local9]){
_local10 = getMedalById(uint(_local9));
echo(("Now unlocking " + _local10.name));
_local10.unlocked = true;
};
};
};
};
};
if (_arg1.save_groups){
populateSaveGroups(_arg1.save_groups);
};
if (_arg1.save_file_path){
_saveFilePath = (_arg1.save_file_path + "/");
};
if (_arg1.image_file_path){
_imageFilePath = (_arg1.image_file_path + "/");
};
if (_arg1.score_boards){
populateScoreBoards(_arg1.score_boards);
};
sendMessage("Metadata loaded!");
callListener(APIEvent.METADATA_LOADED, _arg1.success);
if (((_saveFileId) && (_saveGroupId))){
_local11 = getSaveGroupById(_saveGroupId);
if (_local11){
callListener(APIEvent.FILE_REQUESTED, true, {save_id:_saveFileId, group:_local11});
};
};
_preloadComplete = true;
break;
case "logCustomEvent":
if (_arg1.success){
sendMessage((("Event '" + _arg1.event) + "' was logged."));
};
callListener(APIEvent.EVENT_LOGGED, _arg1.success, {event:_arg1.event});
break;
case "postScore":
if (_arg1.success){
_local4 = "User";
if (user_email){
_local4 = user_email;
} else {
if (user_name){
_local4 = user_name;
};
};
_local6 = getScoreBoardById(_arg1.board);
if (_local6){
sendMessage((((((_local4 + " posted ") + _arg1.value) + " to '") + _local6.name) + "'"));
};
if (_arg1.best_scores){
_local12 = {today:_arg1.best_scores.D, yesterday:_arg1.best_scores.P, week:_arg1.best_scores.W, year:_arg1.best_scores.Y, all_time:_arg1.best_scores.A};
} else {
_local12 = {};
};
if (_arg1.best_ranks){
_local13 = {today:_arg1.best_ranks.D, yesterday:_arg1.best_ranks.P, week:_arg1.best_ranks.W, year:_arg1.best_ranks.Y, all_time:_arg1.best_ranks.A};
} else {
_local13 = {};
};
if (_arg1.num_scores){
_local14 = {today:_arg1.num_scores.D, yesterday:_arg1.num_scores.P, week:_arg1.num_scores.W, year:_arg1.num_scores.Y, all_time:_arg1.num_scores.A};
} else {
_local14 = {};
};
_local3 = {score:_arg1.score, value:_arg1.value, username:_local4, best_scores:_local12, best_ranks:_local13, num_scores:_local14};
};
callListener(APIEvent.SCORE_POSTED, _arg1.success, _local3);
break;
case "loadScores":
_local3 = new Object();
_local6 = getScoreBoardById(_arg1.board);
if (_local6){
_local6.setScores(_arg1.scores, _arg1.period, _arg1.page, _arg1.num_results, _arg1.num_scores);
};
callListener(APIEvent.SCORES_LOADED, _arg1.success, {board:_local6});
break;
case "unlockMedal":
if (_medals){
_local10 = getMedal(_arg1.medal_name);
if (_local10.unlocked){
return;
};
_local10.unlocked = true;
callListener(APIEvent.MEDAL_UNLOCKED, _arg1.success, {medal_id:_local10.id, medal:_local10});
};
break;
case "getMedals":
if (_arg1.success){
populateMedals(_arg1.medals);
};
callListener(APIEvent.MEDALS_LOADED, _arg1.success, _local3);
break;
case "loadSaveFile":
if (_arg1.success){
_local11 = getSaveGroupById(_arg1.group_id);
_local15 = new SaveFile(_local11);
_local15.id = _arg1.file.save_id;
_local15.name = _arg1.file.filename;
_local15.fileUrl = (_saveFilePath + _arg1.file.file);
_local15.thumbnailUrl = (_imageFilePath + _arg1.file.thumb);
_local15.authorName = _arg1.file.user_name;
_local15.authorId = _arg1.file.user_id;
_local15.setStatus(_arg1.file.status);
_local15.description = _arg1.file.description;
_local15.setFileSize(_arg1.file.file_size);
if (((_arg1.file.keys) && (_arg1.file.keys.length))){
_local16 = 0;
while (_local16 < _arg1.file.keys.length) {
_local15.setKey(_arg1.file.keys[_local16].id, _arg1.file.keys[_local16].value);
_local16++;
};
};
if (((_arg1.file.ratings) && (_arg1.file.ratings.length))){
_local16 = 0;
while (_local16 < _arg1.file.ratings.length) {
_local15.setRating(_arg1.file.ratings[_local16].id, _arg1.file.ratings[_local16].votes, _arg1.file.ratings[_local16].score);
_local16++;
};
};
if (_arg1.get_contents){
_local15.loadContents();
};
};
save_file = _local15;
callListener(APIEvent.FILE_INITIALIZED, _arg1.success, {save_id:_local15.id, file:_local15});
break;
case "lookupSaveFiles":
_local7 = [];
if (((_arg1.success) && (_arg1.files))){
_local16 = 0;
while (_local16 < _arg1.files.length) {
_local17 = _arg1.files[_local16];
_local15 = new SaveFile(getSaveGroupById(_arg1.group_id));
_local15.name = _local17.filename;
_local15.id = _local17.save_id;
_local15.description = _local17.description;
_local15.thumbnailUrl = (_imageFilePath + _local17.thumb);
_local15.fileUrl = (_saveFilePath + _local17.file);
_local15.authorName = _local17.user_name;
_local15.authorId = _local17.user_id;
_local15.setStatus(_local17.status);
_local15.setFileSize(_local17.file_size);
if (((_local17.keys) && (_local17.keys.length))){
_local18 = 0;
while (_local18 < _local17.keys.length) {
_local15.setKey(_local17.keys[_local18].id, _local17.keys[_local18].value);
_local18++;
};
};
if (((_local17.ratings) && (_local17.ratings.length))){
_local18 = 0;
while (_local18 < _local17.ratings.length) {
_local15.setRating(_local17.ratings[_local18].id, _local17.ratings[_local18].votes, _local17.ratings[_local18].score);
_local18++;
};
};
_local7.push(_local15);
_local16++;
};
};
_arg1.owner.setResults(_local7);
_arg1.owner.dispatchEvent(new APIEvent(APIEvent.QUERY_COMPLETE, _arg1.success, {query:_arg1.owner}));
callListener(APIEvent.QUERY_COMPLETE, _arg1.success, {query:_arg1.owner});
break;
case "rateSaveFile":
_local15 = _arg1.owner;
_arg1.success = ((_arg1.success) && (!(_arg1.already_voted)));
if (_arg1.success){
_local15.setRating(_arg1.rating_id, _arg1.votes, _arg1.score);
};
_arg1.file = _local15;
if (_arg1.already_voted){
_local19 = new APIError("PERMISSION_DENIED", "You have already voted on this item today");
_local15.dispatchEvent(new APIEvent(APIEvent.VOTE_COMPLETE, _arg1.success, {error:_local19, file:_local15, save_id:_local15.id}));
callListener(APIEvent.VOTE_COMPLETE, _arg1.success, _arg1);
} else {
_local20 = _local15.getRating(_arg1.rating_id);
_local15.dispatchEvent(new APIEvent(APIEvent.VOTE_COMPLETE, _arg1.success, {rating:_local20, file:_local15, save_id:_local15.id}));
API.callListener(APIEvent.VOTE_COMPLETE, _arg1.success, {rating:_local20, file:_local15, save_id:_local15.id});
};
break;
case "saveFile":
_local3 = {};
if (_arg1.success){
_local3 = {save_id:_arg1.save_id, filename:_arg1.filename, file_url:_arg1.file_url, thumbnail:_arg1.thumbnail, icon:_arg1.icon};
SaveFile(_arg1.owner).fileSaved(_local3);
};
_arg1.owner.dispatchEvent(new APIEvent(APIEvent.FILE_SAVED, _arg1.success, {save_id:save_file.id, file:save_file}));
callListener(APIEvent.FILE_SAVED, _arg1.success, {save_id:save_file.id, file:save_file});
save_file = null;
break;
case "checkFilePrivs":
_local3 = {filename:_arg1.filename, folder:_arg1.folder, can_read:_arg1.can_read, can_write:_arg1.can_write};
callListener(APIEvent.FILE_PRIVS_LOADED, _arg1.success, _local3);
break;
};
}
public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:uint=0, _arg5:Boolean=false):void{
_eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public static function hasEventListener(_arg1:String):Boolean{
return (_eventDispatcher.hasEventListener(_arg1));
}
public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
_eventDispatcher.removeEventListener(_arg1, _arg2, _arg3);
}
private static function dispatchEvent(_arg1:Event):void{
_eventDispatcher.dispatchEvent(_arg1);
echo(("Fired Event: " + _arg1.type));
}
static function callListener(_arg1:String, _arg2:Boolean=true, _arg3=undefined):void{
dispatchEvent(new APIEvent(_arg1, _arg2, _arg3));
if (_bridge){
_bridge.sendEvent(_arg1, {success:_arg2, data:_arg3});
};
}
private static function getCommandName(_arg1:String):String{
return (_arg1);
}
private static function getCommandID(_arg1:String):String{
return (_arg1);
}
private static function getPeriodAliases():Object{
var _local2:String;
var _local1:Object = new Object();
for (_local2 in period_aliases) {
_local1[period_aliases[_local2].alias] = _local2;
};
return (_local1);
}
public static function getPeriodName(_arg1:String):String{
var _local2:String;
for (_local2 in period_aliases) {
if (_local2 == _arg1){
return (period_aliases[_local2].name);
};
};
return (null);
}
public static function getPeriodAlias(_arg1:String):String{
var _local2:String;
for (_local2 in period_aliases) {
if (_local2 == _arg1){
return (period_aliases[_local2].alias);
};
};
return (null);
}
private static function sendError(_arg1:Object, _arg2:APIError):void{
var _local3:String = ((((("[NewgroundsAPI ERROR] :: " + getCommandName(_arg1.command_id)) + "() - ") + _arg2.name) + ":\n\t\t\t\t") + _arg2.message);
trace(_local3);
if (_bridge){
_bridge.sendEvent("trace", {data:_local3});
};
}
private static function sendWarning(_arg1:String, _arg2:String=null):void{
if (_arg2){
_arg1 = (_arg1 + ((("\n[NewgroundsAPI WARNING] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information."));
};
trace(_arg1);
if (_bridge){
_bridge.sendEvent("trace", {data:_arg1});
};
}
private static function sendNotice(_arg1:String, _arg2:String=null):void{
var _local3:String;
if (_arg2){
_arg1 = (_arg1 + ((("\n[NewgroundsAPI NOTICE] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information."));
};
trace(_arg1);
if (_bridge){
_bridge.sendEvent("trace", {data:_arg1});
};
}
private static function fatalError(_arg1:String, _arg2:String):void{
if (_arg2){
_arg1 = (_arg1 + ((("\n\tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information."));
};
trace(("***ERROR*** class=API\n\n" + _arg1));
}
public static function openLoginPage(){
if (hasUserSession()){
return;
};
}
public static function sendSecureCommand(_arg1:String, _arg2:Object, _arg3:Object=null, _arg4:Object=null, _arg5=null):void{
if (((((!(debugMode)) && (!(hasUserSession())))) && (!(hasUserEmail())))){
sendError({command_id:getCommandID(_arg1)}, new APIError("IDENTIFICATION_REQUIRED", (("You must be logged in or provide an e-mail address ( using NewgroundsAPI.setUserEmail(\"name@domain.com\"); ) to use " + _arg1) + "().")));
return;
};
if (!_arg1){
fatalError("Missing command", "sendSecureCommand");
};
if (!_arg2){
fatalError("Missing secure_params", "sendSecureCommand");
};
if (!_arg3){
_arg3 = new Object();
};
var _local6 = "";
var _local7:uint;
while (_local7 < 16) {
_local6 = (_local6 + compression_radix.charAt(Math.floor((Math.random() * compression_radix.length))));
_local7++;
};
if (((debugMode) && (!(session_id)))){
_arg2.session_id = "";
} else {
_arg2.session_id = session_id;
};
_arg2.as_version = 3;
_arg2.user_email = user_email;
_arg2.publisher_id = publisher_id;
_arg2.seed = _local6;
_arg2.command_id = getCommandID(_arg1);
var _local8:String = MD5.hash(_local6);
var _local9:String = RC4.encrypt(JSON.encode(_arg2), _encryptionKey);
var _local10:String = (_local8 + _local9);
_arg3.secure = compressHex(_local10);
secureCommand = _arg1;
sendCommand("securePacket", _arg3, false, _arg4, _arg5);
}
public static function stopPendingCommands():void{
SmartURLLoader.closeAll();
}
private static function onCommandComplete(_arg1:Event):void{
var response:Object;
var error:APIError;
var e = _arg1;
var loader:SmartURLLoader = SmartURLLoader(e.target);
echo((("INPUT: \n" + loader.response) + "\n"));
var i:uint;
while (i < _preloadAssets.length) {
if (_preloadAssets[i] == loader){
_preloadAssets.splice(i, 1);
break;
};
i = (i + 1);
};
try {
response = JSON.decode(loader.response);
} catch(error:Error) {
};
if (!response){
response = {command_id:loader._command, success:false};
};
response.owner = loader.owner;
if (((!(response)) || (!(response.success)))){
if (response.command_id == "connectMovie"){
connected = false;
};
error = new APIError(response.error_code, response.error_msg);
sendError(response, error);
if (response.command_id){
doEvent(response);
};
} else {
doEvent(response);
};
}
private static function onCommandError(_arg1:Event):void{
var _local2:Object = {success:false};
var _local3:SmartURLLoader = SmartURLLoader(_arg1.target);
_local2.owner = _local3.owner;
var _local4:uint;
while (_local4 < _preloadAssets.length) {
if (_preloadAssets[_local4] == _local3){
_preloadAssets.splice(_local4, 1);
break;
};
_local4++;
};
if (_local3._command){
_local2.command_id = _local3._command;
if (_local2.command_id == "connectMovie"){
connected = false;
};
doEvent(_local2);
};
}
private static function sendCommand(_arg1:String, _arg2:Object, _arg3:Boolean=false, _arg4:Object=null, _arg5=null):void{
var _local7:String;
var _local8:String;
var _local9:String;
if (((!(connected)) && (!((_arg1 == "connectMovie"))))){
_local7 = (("NewgroundsAPI." + _arg1) + "() - NewgroundsAPI.connectMovie() must be called before this command can be called\n");
fatalError(_local7, "connectMovie");
};
var _local6:SmartURLLoader = new SmartURLLoader();
_local6.addVariable("command_id", getCommandID(_arg1));
_local6.addVariable("tracker_id", _movieId);
if (debugMode){
_local6.addVariable("debug", 1);
};
if (_arg2){
for (_local8 in _arg2) {
_local6.addVariable(_local8, _arg2[_local8]);
};
};
if (_arg4){
for (_local9 in _arg4) {
_local6.addFile(_local9, _arg4[_local9], _local9);
};
};
if (_arg3){
_local6.method = URLRequestMethod.GET;
} else {
_local6.method = URLRequestMethod.POST;
};
_local6.preventCache = true;
if (_arg3){
_local6.openBrowser = true;
_local6.method = URLRequestMethod.GET;
} else {
_local6.addEventListener(Event.COMPLETE, onCommandComplete);
_local6.addEventListener(IOErrorEvent.IO_ERROR, onCommandError);
_local6.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onCommandError);
_local6.method = URLRequestMethod.POST;
};
if (_arg2.secure){
_local6._command = secureCommand;
} else {
_local6._command = getCommandID(_arg1);
};
_local6.owner = _arg5;
_local6.load(GATEWAY_URL);
}
public static function isFlashVersion(_arg1:uint, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0):Boolean{
var _local6:Array = Capabilities.version.split(" ")[1].split(",");
var _local7:Array = arguments;
var _local8:uint;
while (_local8 < _local7.length) {
_local6[_local8] = uint(_local6[_local8]);
_local8++;
};
_local8 = 0;
while (_local8 < _local7.length) {
if (_local6[_local8] > _local7[_local8]){
return (true);
};
if (_local6[_local8] < _local7[_local8]){
return (false);
};
_local8++;
};
return (true);
}
public static function createAd():FlashAd{
sendMessage("You may see a security sandbox violation. This is normal!");
return (new FlashAd());
}
public static function sendMessage(_arg1:String, _arg2:Boolean=false):void{
var _local3:String = ("[NewgroundsAPI] :: " + _arg1);
trace(_local3);
if (_bridge){
_bridge.sendEvent("trace", {data:_local3});
};
}
private static function echo(_arg1:String):void{
if (do_echo){
trace(_arg1);
};
}
}
}//package com.newgrounds
Section 23
//APIError (com.newgrounds.APIError)
package com.newgrounds {
import flash.utils.*;
public class APIError {
public var code:Number;// = 0
public var message:String;
public var name:String;
public var alias:String;
public static const aliases:Array = new Array("UNKNOWN_ERROR", "INVALID_API_ID", "MISSING_PARAM", "INVALID_STAT_ID", "INVALID_COMMAND_ID", "FLASH_ADS_NOT_APPROVED", "PERMISSION_DENIED", "IDENTIFICATION_REQUIRED", "INVALID_EMAIL_ADDRESS", "BANNED_USER", "SESSION_EXPIRED", "INVALID_SCORE", "INVALID_MEDAL", "INVALID_FOLDER", "FILE_NOT_FOUND", "SITE_ID_REQUIRED", "UPLOAD_IN_PROGRESS", "USER_CANCELLED", "CONFIRM_REQUEST", "CONNECTION_FAILED");
private static const always_caps:Array = new Array("API", "URL", "ID");
public static const error_codes:Object = init_codes();
public static const error_names:Object = init_names();
public function APIError(_arg1, _arg2:String){
if ((_arg1 is String)){
_arg1 = error_codes[_arg1];
} else {
if (!(_arg1 is uint)){
_arg1 = 0;
};
};
this.code = _arg1;
this.message = _arg2;
this.name = error_names[_arg1];
this.alias = aliases[_arg1];
}
public function isError():Boolean{
return (true);
}
public static function init_codes():Dictionary{
var _local1:Dictionary = new Dictionary();
var _local2:uint;
while (_local2 < aliases.length) {
_local1[aliases[_local2]] = _local2;
_local2++;
};
return (_local1);
}
private static function init_names():Array{
var _local3:Array;
var _local4:uint;
var _local5:String;
var _local1:Array = new Array();
var _local2:uint;
while (_local2 < aliases.length) {
_local3 = aliases[_local2].toLowerCase().split("_");
_local4 = 0;
while (_local4 < _local3.length) {
_local3[_local4] = (_local3[_local4].substr(0, 1).toUpperCase() + _local3[_local4].substr(1, _local3[_local4].length));
for each (_local5 in always_caps) {
if (_local3[_local4].toUpperCase() == _local5){
_local3[_local4] = _local3[_local4].toUpperCase();
};
};
_local4++;
};
_local1[_local2] = _local3.join(" ");
_local2++;
};
return (_local1);
}
}
}//package com.newgrounds
Section 24
//APIEvent (com.newgrounds.APIEvent)
package com.newgrounds {
import flash.events.*;
public class APIEvent extends Event {
private var _data;
private var _success:Boolean;
private var _target;
private var _error:APIError;
public static const API_CONNECTED:String = "movieConnected";
public static const ADS_APPROVED:String = "adsApproved";
public static const AD_ATTACHED:String = "adAttached";
public static const HOST_BLOCKED:String = "hostBlocked";
public static const NEW_VERSION_AVAILABLE:String = "newVersionAvailable";
public static const EVENT_LOGGED:String = "eventLogged";
public static const SCORE_POSTED:String = "scorePosted";
public static const SCORES_LOADED:String = "scoresLoaded";
public static const UNLOCK_MEDAL:String = "unlockMedal";
public static const MEDAL_UNLOCKED:String = "medalUnlocked";
public static const MEDALS_LOADED:String = "medalsLoaded";
public static const METADATA_LOADED:String = "metadataLoaded";
public static const FILE_PRIVS_LOADED:String = "filePrivsLoaded";
public static const FILE_SAVED:String = "fileSaved";
public static const FILE_LOADED:String = "fileLoaded";
public static const FILE_INITIALIZED:String = "fileInitialized";
public static const FILE_REQUESTED:String = "fileRequested";
public static const QUERY_COMPLETE:String = "queryComplete";
public static const VOTE_COMPLETE:String = "voteComplete";
public function APIEvent(_arg1:String, _arg2:Boolean=true, _arg3=undefined){
super(_arg1);
this._data = _arg3;
this._success = _arg2;
}
public function get success():Boolean{
return (this._success);
}
public function get data(){
return (this._data);
}
}
}//package com.newgrounds
Section 25
//BaseN (com.newgrounds.BaseN)
package com.newgrounds {
import flash.utils.*;
public class BaseN {
private var _hashIndex:String;
private var _hashVal:Dictionary;
private var _base:Number;
public function BaseN(_arg1:String=null){
if (_arg1){
this._hashIndex = _arg1;
} else {
this._hashIndex = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/";
};
this._base = this._hashIndex.length;
this._hashVal = new Dictionary();
var _local2:uint;
while (_local2 < this._base) {
this._hashVal[this._hashIndex.charAt(_local2)] = _local2;
_local2++;
};
}
public function encode(_arg1:Number, _arg2:uint=1):String{
var _local3:String = _arg1.toString();
var _local4 = "";
if (_local3.charAt(0) == "-"){
_local4 = "-";
_local3 = _local3.substring(1);
};
var _local5:Array = _local3.split(".", 2);
_local4 = (_local4 + this.baseNEncoder(_local5[0], _arg2));
if (_local5.length > 1){
_local4 = (_local4 + ("." + this.baseNEncoder(_local5[1])));
};
return (_local4);
}
public function decode(_arg1:String):Number{
var _local2 = "";
if (_arg1.charAt(0) == "-"){
_local2 = "-";
_arg1 = _arg1.substring(1);
};
var _local3:Array = _arg1.split(".", 2);
_local2 = (_local2 + this.baseNDecoder(_local3[0]));
if (_local3.length > 1){
_local2 = (_local2 + ".");
_local2 = (_local2 + this.baseNDecoder(_local3[1]));
};
return (Number(_local2));
}
private function baseNEncoder(_arg1:uint, _arg2:uint=1):String{
var _local3 = "";
var _local4:uint = _arg1;
while (_local4 != 0) {
_local3 = (this._hashIndex.charAt((_local4 % this._base)) + _local3);
_local4 = (_local4 / this._base);
};
if (_arg2){
while (_local3.length < _arg2) {
_local3 = (this._hashIndex.charAt(0) + _local3);
};
};
return (_local3);
}
private function baseNDecoder(_arg1:String):uint{
var _local2:uint;
var _local3:uint;
while (_local3 < _arg1.length) {
_local2 = (_local2 * this._base);
_local2 = (_local2 + this._hashVal[_arg1.charAt(_local3)]);
_local3++;
};
return (_local2);
}
}
}//package com.newgrounds
Section 26
//Bridge (com.newgrounds.Bridge)
package com.newgrounds {
import flash.events.*;
import flash.net.*;
public class Bridge {
private var _inConnection:LocalConnection;
private var _outConnection:LocalConnection;
private var _widgetId:String;
public function Bridge(_arg1:String){
this._widgetId = _arg1;
this._inConnection = new LocalConnection();
this._outConnection = new LocalConnection();
this._inConnection.client = this;
this._inConnection.connect(("rec_" + this._widgetId));
this._outConnection.addEventListener(StatusEvent.STATUS, this.onStatus);
}
public function sendCommand(_arg1:String, _arg2:Object):void{
if (this._outConnection){
this._outConnection.send(this._widgetId, "sendCommand", _arg1, this.scrubParameters(_arg2));
};
}
public function sendEvent(_arg1:String, _arg2:Object):void{
if (this._outConnection){
this._outConnection.send(this._widgetId, "sendEvent", _arg1, this.scrubParameters(_arg2));
};
}
public function receiveEvent(_arg1:String, _arg2:Object):void{
API.callListener(_arg1, _arg2.success, _arg2.data);
}
public function scrubParameters(_arg1:Object):Object{
var _local3:String;
var _local2:Object = new Object();
for (_local3 in _arg1) {
if ((((((((((_arg1[_local3] is String)) || ((_arg1[_local3] is Number)))) || ((_arg1[_local3] is uint)))) || ((_arg1[_local3] is int)))) || ((_arg1[_local3] is Boolean)))){
_local2[_local3] = _arg1[_local3];
};
};
return (_local2);
}
private function onStatus(_arg1:Event):void{
}
}
}//package com.newgrounds
Section 27
//Medal (com.newgrounds.Medal)
package com.newgrounds {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class Medal {
private var _id:uint;
private var _name:String;
private var _value:uint;
private var _difficultyId:uint;
private var _unlocked:Boolean;// = false
private var _iconUrl:URLRequest;
private var _iconLoader:Loader;
private var _icon:BitmapData;
private static const DEFAULT_ICON:BitmapData = new BitmapData(50, 50, false, 0);
private static const DIFFICULT_NAMES:Array = [null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal"];
public function Medal(_arg1:uint, _arg2:String, _arg3:uint, _arg4:uint, _arg5:Boolean, _arg6:String){
var id = _arg1;
var name = _arg2;
var value = _arg3;
var difficulty = _arg4;
var unlocked = _arg5;
var iconUrl = _arg6;
this._icon = DEFAULT_ICON;
super();
this._id = id;
this._name = name;
this._value = value;
this._difficultyId = difficulty;
this._unlocked = unlocked;
if (iconUrl){
this._iconUrl = new URLRequest(iconUrl);
this._iconLoader = new Loader();
this._iconLoader.contentLoaderInfo.addEventListener(Event.INIT, this.onIconLoaderInit);
this._iconLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.onIconLoaderError);
this._iconLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onIconLoaderError);
this._iconLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onIconLoaderComplete);
try {
this._iconLoader.load(this._iconUrl, new LoaderContext(true));
} catch(e:Error) {
onIconLoaderError(null);
};
};
}
public function get difficulty():String{
return (DIFFICULT_NAMES[this._difficultyId]);
}
public function get difficultyId():uint{
return (this._difficultyId);
}
public function get icon():BitmapData{
return (this._icon);
}
public function get id():uint{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get unlocked():Boolean{
return (this._unlocked);
}
public function isUnlocked():Boolean{
return (this._unlocked);
}
public function set unlocked(_arg1:Boolean):void{
this._unlocked = _arg1;
}
public function get value():uint{
return (this._value);
}
public function get bytesLoaded():uint{
return ((this._iconLoader) ? this._iconLoader.contentLoaderInfo.bytesLoaded : 0);
}
public function get bytesTotal():uint{
return ((this._iconLoader) ? this._iconLoader.contentLoaderInfo.bytesTotal : 0);
}
public function getID():uint{
return (this._id);
}
public function getName():String{
return (this._name);
}
public function getValue():uint{
return (this._value);
}
public function getDifficulty():String{
return (DIFFICULT_NAMES[this._difficultyId]);
}
private function onIconLoaderInit(_arg1:Event):void{
}
private function onIconLoaderError(_arg1:IOErrorEvent):void{
trace((((("[NewgroundsAPI WARNING] :: Failed to load medal icon for " + this.name) + " (") + this._iconUrl.url.split("/").pop()) + ")"));
this._iconLoader.unload();
this._iconLoader = null;
}
private function onIconLoaderComplete(_arg1:Event):void{
var _local2:Bitmap = (this._iconLoader.content as Bitmap);
this._icon = _local2.bitmapData;
this._iconLoader.unload();
this._iconLoader = null;
}
public function unlock():void{
if (!this._unlocked){
API.unlockMedal(this._name);
};
}
public function createIconBitmap():Bitmap{
return (new Bitmap(this.icon));
}
public function toString():String{
return (this._name);
}
public static function createFromObject(_arg1:Object):Medal{
return (new Medal(_arg1.medal_id, _arg1.medal_name, _arg1.medal_value, _arg1.medal_difficulty, _arg1.medal_unlocked, _arg1.medal_icon));
}
}
}//package com.newgrounds
Section 28
//RC4 (com.newgrounds.RC4)
package com.newgrounds {
public class RC4 {
private static var sbox:Array = new Array(0xFF);
private static var mykey:Array = new Array(0xFF);
public static function encrypt(_arg1:String, _arg2:String):String{
var _local3:Array = strToChars(_arg1);
var _local4:Array = strToChars(_arg2);
var _local5:Array = calculate(_local3, _local4);
return (charsToHex(_local5));
}
public static function encryptbin(_arg1:String, _arg2:String):Array{
var _local3:Array = strToChars(_arg1);
var _local4:Array = strToChars(_arg2);
var _local5:Array = calculate(_local3, _local4);
return (_local5);
}
public static function decrypt(_arg1:String, _arg2:String):String{
var _local3:Array = hexToChars(_arg1);
var _local4:Array = strToChars(_arg2);
var _local5:Array = calculate(_local3, _local4);
return (charsToStr(_local5));
}
private static function initialize(_arg1:Array):void{
var _local3:uint;
var _local2:uint;
var _local4:uint = _arg1.length;
var _local5:uint;
while (_local5 <= 0xFF) {
mykey[_local5] = _arg1[(_local5 % _local4)];
sbox[_local5] = _local5;
_local5++;
};
_local5 = 0;
while (_local5 <= 0xFF) {
_local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100);
_local3 = sbox[_local5];
sbox[_local5] = sbox[_local2];
sbox[_local2] = _local3;
_local5++;
};
}
private static function calculate(_arg1:Array, _arg2:Array):Array{
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local10:uint;
initialize(_arg2);
var _local3:uint;
var _local4:uint;
var _local5:Array = new Array();
var _local9:uint;
while (_local9 < _arg1.length) {
_local3 = ((_local3 + 1) % 0x0100);
_local4 = ((_local4 + sbox[_local3]) % 0x0100);
_local7 = sbox[_local3];
sbox[_local3] = sbox[_local4];
sbox[_local4] = _local7;
_local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100);
_local6 = sbox[_local10];
_local8 = (_arg1[_local9] ^ _local6);
_local5.push(_local8);
_local9++;
};
return (_local5);
}
private static function charsToHex(_arg1:Array):String{
var _local2:String = new String("");
var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
var _local4:uint;
while (_local4 < _arg1.length) {
_local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)]));
_local4++;
};
return (_local2);
}
private static function hexToChars(_arg1:String):Array{
var _local2:Array = new Array();
var _local3:uint = ((_arg1.substr(0, 2))=="0x") ? 2 : 0;
while (_local3 < _arg1.length) {
_local2.push(parseInt(_arg1.substr(_local3, 2), 16));
_local3 = (_local3 + 2);
};
return (_local2);
}
private static function charsToStr(_arg1:Array):String{
var _local2:String = new String("");
var _local3:uint;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(_arg1[_local3]));
_local3++;
};
return (_local2);
}
private static function strToChars(_arg1:String):Array{
var _local2:Array = new Array();
var _local3:uint;
while (_local3 < _arg1.length) {
_local2.push(_arg1.charCodeAt(_local3));
_local3++;
};
return (_local2);
}
}
}//package com.newgrounds
Section 29
//SaveFile (com.newgrounds.SaveFile)
package com.newgrounds {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class SaveFile extends EventDispatcher {
private var _filename:String;
private var _id:uint;
private var _description:String;
private var _contents;
private var _loader:SmartURLLoader;
private var _group:SaveGroup;
private var _keys:Dictionary;
private var _ratings:Dictionary;
private var _fileUrl:String;
private var _thumbnail:BitmapData;
private var _thumbnailUrl:String;
private var _authorId:uint;
private var _authorName:String;
private var _contentSize:uint;
private var _locked:Boolean;
private var _status:uint;
private var duplicate_id:uint;
private var _draft:Boolean;
public static const STATUS_PRIVATE = 1;
public static const STATUS_SHARED = 2;
public static const STATUS_UNAPPROVED = 3;
public static const STATUS_APPROVED = 4;
public function SaveFile(_arg1:SaveGroup){
this._keys = new Dictionary();
this._ratings = new Dictionary();
this._group = _arg1;
this._description = "";
}
public function get name():String{
return (this._filename);
}
public function set name(_arg1:String):void{
this._filename = _arg1;
}
public function get id():uint{
return (this._id);
}
public function set id(_arg1:uint):void{
this._id = _arg1;
}
public function get description():String{
return (this._description);
}
public function set description(_arg1:String):void{
this._description = _arg1;
}
public function get contents(){
return (this._contents);
}
public function set contents(_arg1):void{
this._contents = _arg1;
this._contentSize = 0;
}
public function get thumbnailUrl():String{
return (this._thumbnailUrl);
}
public function set thumbnailUrl(_arg1:String):void{
this._thumbnailUrl = _arg1;
}
public function get fileUrl():String{
return (this._fileUrl);
}
public function set fileUrl(_arg1:String):void{
this._fileUrl = _arg1;
}
public function get thumbnail():BitmapData{
return (this._thumbnail);
}
public function set thumbnail(_arg1:BitmapData):void{
if (this._thumbnail){
this._thumbnail.dispose();
};
this._thumbnail = _arg1.clone();
}
public function loadThumbnail():Loader{
var _local1:Loader = new Loader();
if (this._thumbnailUrl){
_local1.load(new URLRequest(this._thumbnailUrl));
};
return (_local1);
}
public function get bytesLoaded():uint{
return ((this._loader) ? this._loader.bytesLoaded : this._contentSize);
}
public function get bytesTotal():uint{
return (this._contentSize);
}
public function get status():uint{
return (this._status);
}
function setStatus(_arg1:uint):void{
this._status = _arg1;
}
public function get groupId():uint{
return (this._group.id);
}
public function get groupName():String{
return (this._group.name);
}
public function get groupType():uint{
return (this._group.type);
}
public function get authorName():String{
return (this._authorName);
}
public function set authorName(_arg1:String):void{
this._authorName = _arg1;
}
public function get authorId():uint{
return (this._authorId);
}
public function set authorId(_arg1:uint):void{
this._authorId = _arg1;
}
public function get draft():Boolean{
return (this._draft);
}
public function set draft(_arg1:Boolean):void{
this._draft = _arg1;
}
public function get locked():Boolean{
return (this._locked);
}
public function get shared():Boolean{
return ((this._status == STATUS_SHARED));
}
public function get isPrivate():Boolean{
return ((this._status == STATUS_PRIVATE));
}
public function get isPublic():Boolean{
if (this.isPrivate){
return (false);
};
if (((this._group.isType("SYSTEM")) || (this._group.isType("PRIVATE")))){
return (false);
};
if (this._group.isType("PUBLIC")){
return (true);
};
if (this.approved){
return (true);
};
return (false);
}
public function get approved():Boolean{
return ((this._status > STATUS_UNAPPROVED));
}
public function get keys():Dictionary{
return (this._keys);
}
public function get ratings():Dictionary{
return (this._ratings);
}
function setPermissions(_arg1:uint, _arg2:Boolean){
_arg2 = this._locked;
this._status = _arg1;
}
function setFileSize(_arg1:uint):void{
this._contentSize = _arg1;
}
public function isLocked():Boolean{
return (this._locked);
}
public function getDescription():String{
return (this._description);
}
public function getShared():Boolean{
return (this._draft);
}
public function getDuplicateID():uint{
return (this.duplicate_id);
}
public function getKeys():Dictionary{
return (this._keys);
}
public function getRatings():Dictionary{
return (this._ratings);
}
public function setKey(_arg1, _arg2):void{
var _local3:SaveKey;
if ((_arg1 is String)){
_local3 = this._group.getKeyName(_arg1);
} else {
_local3 = this._group.getKeyID(_arg1);
};
if (_local3){
switch (_local3.type){
case SaveKey.TYPE_BOOLEAN:
this._keys[_local3] = {id:_local3.id, value:Boolean(int(_arg2))};
break;
case SaveKey.TYPE_FLOAT:
this._keys[_local3] = {id:_local3.id, value:Number(_arg2)};
break;
case SaveKey.TYPE_INTEGER:
this._keys[_local3] = {id:_local3.id, value:int(_arg2)};
break;
case SaveKey.TYPE_STRING:
default:
this._keys[_local3] = {id:_local3.id, value:_arg2.toString()};
break;
};
};
}
public function getKey(_arg1){
var _local2:SaveKey;
if ((_arg1 is String)){
_local2 = this._group.getKeyName(_arg1);
} else {
_local2 = this._group.getKeyID(_arg1);
};
if (_local2){
return (this._keys[_local2]);
};
return (null);
}
public function setRating(_arg1, _arg2:Number, _arg3:Number):void{
var _local4:SaveRating;
if ((_arg1 is String)){
_local4 = this._group.getRatingName(_arg1);
} else {
_local4 = this._group.getRatingID(_arg1);
};
if (_local4){
this._ratings[_local4] = {id:_local4.id, name:_local4.name, votes:_arg2, score:_arg3};
};
}
public function getRating(_arg1):Object{
var _local2:SaveRating;
if ((_arg1 is String)){
_local2 = this._group.getRatingName(_arg1);
} else {
_local2 = this._group.getRatingID(_arg1);
};
if (_local2){
return (this._ratings[_local2]);
};
return (null);
}
public function sendRating(_arg1:String, _arg2:Number):void{
var _local3:SaveRating = this._group.getRatingName(_arg1);
if (!_local3){
trace((("[NewgroundsAPISaveFile] " + _arg1) + " is not a recognized save file"));
return;
};
if ((((_arg2 < _local3.minValue)) || ((_arg2 > _local3.maxValue)))){
trace(((("[NewgroundsAPISaveFile] Vote must be between " + _local3.minValue) + " and ") + _local3.maxValue));
return;
};
_local3.voted = true;
API.rateSaveFile(this, _local3, _arg2);
}
override public function toString():String{
var _local2:Object;
var _local3:Object;
var _local1 = (((((("Save File " + this._filename) + " ID: ") + this._id) + "\n ") + this._description) + "\n");
for each (_local2 in this._keys) {
_local1 = (_local1 + ((((" " + this._group.getKeyID(_local2.id).name) + ": ") + _local2.val) + "\n"));
};
for each (_local3 in this._ratings) {
_local1 = (_local1 + ((((((" " + this._group.getRatingID(_local3.id).name) + "\n Score: ") + _local3.score) + " Votes: ") + _local3.votes) + "\n"));
};
return (_local1);
}
public function toObject():Object{
var _local2:Object;
var _local1:Object = {group:this.groupId, filename:this.name, description:this.description, shared:true};
_local1.keys = [];
for each (_local2 in this._keys) {
_local1.keys.push({id:_local2.id, value:_local2.val});
};
return (_local1);
}
public function save(_arg1:Boolean=false, _arg2:Boolean=false):void{
API.saveFile(this, _arg1, _arg2);
}
public function loadContents():void{
if (this._fileUrl){
this._loader = new SmartURLLoader();
this._loader.responseFormat = URLLoaderDataFormat.BINARY;
this._loader.addEventListener(Event.COMPLETE, this.onContentsLoaded);
this._loader.addEventListener(IOErrorEvent.IO_ERROR, this.onContentsError);
this._loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onContentsError);
this._loader.load(this._fileUrl);
};
}
private function onContentsError(_arg1:Event):void{
this._loader = null;
dispatchEvent(new APIEvent(APIEvent.FILE_LOADED, false));
API.callListener(APIEvent.FILE_LOADED, false);
}
private function onContentsLoaded(_arg1:Event):void{
var _local2:ByteArray = _arg1.target.response;
this._contentSize = _local2.length;
_local2.uncompress();
var _local3:uint = _local2.readUnsignedByte();
if (_local3 == 0){
this._contents = new ByteArray();
this._contents.writeBytes(_local2, 1);
} else {
this._contents = _local2.readObject();
};
this._loader = null;
dispatchEvent(new APIEvent(APIEvent.FILE_LOADED, true, {file:this}));
API.callListener(APIEvent.FILE_LOADED, true, {file:this});
}
public function loadAuthorPage(){
API.loadUserPage(this._authorId, this._authorName);
}
function fileSaved(_arg1:Object):void{
this._id = _arg1.save_id;
this._thumbnailUrl = _arg1.thumbnail;
this._fileUrl = _arg1.file_url;
}
}
}//package com.newgrounds
Section 30
//SaveGroup (com.newgrounds.SaveGroup)
package com.newgrounds {
public class SaveGroup {
private var _name:String;
private var _id:uint;
private var _type:uint;
private var _keys:Array;
private var _ratings:Array;
private var _files:Array;
private var _query:SaveGroupQuery;
public static const TYPE_SYSTEM:uint = 0;
public static const TYPE_PRIVATE:uint = 1;
public static const TYPE_PUBLIC:uint = 2;
public static const TYPE_MODERATED:uint = 3;
public static const KEY_TYPES:Array = [null, "float", "integer", "string", "boolean"];
public static const TYPES:Object = {SYSTEM:0, PRIVATE:1, PUBLIC:2, MODERATED:3};
public function SaveGroup(_arg1:uint, _arg2:String, _arg3:uint){
this._name = _arg2;
this._id = _arg1;
this._type = _arg3;
this._ratings = [];
this._keys = [];
this._files = [];
this._query = new SaveGroupQuery(this);
}
public function get name():String{
return (this._name);
}
public function get id():uint{
return (this._id);
}
public function get type():uint{
return (this._type);
}
public function get keys():Array{
return (this._keys);
}
public function get ratings():Array{
return (this._ratings);
}
public function get group_id():uint{
return (this._id);
}
public function get group_name():String{
return (this._name);
}
public function addRating(_arg1:SaveRating):void{
this._ratings.push(_arg1);
}
function getRating(_arg1):SaveRating{
var _local2:uint;
while (_local2 < this._ratings.length) {
if ((((((((_arg1 is uint)) || ((_arg1 is int)))) || ((_arg1 is Number)))) && ((this._ratings[_local2].rating_id == _arg1)))){
return (this._ratings[_local2]);
};
if (this._ratings[_local2].name == _arg1){
return (this._ratings[_local2]);
};
_local2++;
};
return (null);
}
public function getRatingID(_arg1:uint):SaveRating{
var _local2:uint;
while (_local2 < this._ratings.length) {
if (this._ratings[_local2].id == _arg1){
return (this._ratings[_local2]);
};
_local2++;
};
return (null);
}
public function getRatingName(_arg1:String):SaveRating{
var _local2:uint;
while (_local2 < this._ratings.length) {
if (this._ratings[_local2].name == _arg1){
return (this._ratings[_local2]);
};
_local2++;
};
return (null);
}
public function addKey(_arg1:SaveKey):void{
this._keys.push(_arg1);
}
public function getKey(_arg1):SaveKey{
var _local2:uint;
while (_local2 < this._keys.length) {
if ((((((((_arg1 is Number)) || ((_arg1 is uint)))) || ((_arg1 is int)))) && ((this._keys[_local2].key_id == _arg1)))){
return (this._keys[_local2]);
};
if (this._keys[_local2].key_name == _arg1){
return (this._keys[_local2]);
};
_local2++;
};
return (null);
}
public function getKeyID(_arg1:uint):SaveKey{
var _local2:uint;
while (_local2 < this._keys.length) {
if (this._keys[_local2].id == _arg1){
return (this._keys[_local2]);
};
_local2++;
};
return (null);
}
public function getKeyType(_arg1:String, _arg2:Boolean=false){
var _local3:SaveKey = this.getKey(_arg1);
if (_local3){
return ((_arg2) ? KEY_TYPES[_local3.key_type] : _local3.key_type);
};
return (null);
}
public function getKeyName(_arg1:String):SaveKey{
var _local2:uint;
while (_local2 < this._keys.length) {
if (this._keys[_local2].name == _arg1){
return (this._keys[_local2]);
};
_local2++;
};
return (null);
}
public function isType(_arg1:String):Boolean{
return ((TYPES[this._type] == _arg1));
}
public function getID():uint{
return (this._id);
}
public function getName():String{
return (this._name);
}
public function getQuery(_arg1:Boolean=false){
return ((_arg1) ? this._query.toObject() : this._query);
}
public function newQuery():SaveGroupQuery{
return (new SaveGroupQuery(this));
}
public function newFile():SaveFile{
return (new SaveFile(this));
}
public function toString():String{
return ((((((("SaveGroup { name: " + this._name) + ", id: ") + this._id) + ", keys: ") + this._keys) + "}"));
}
public static function createFromObject(_arg1:Object):SaveGroup{
var _local4:Object;
var _local5:Object;
var _local2:SaveGroup = new SaveGroup(_arg1.group_id, _arg1.group_name, _arg1.group_type);
var _local3:uint;
while (_local3 < _arg1.keys.length) {
_local4 = _arg1.keys[_local3];
_local2.addKey(new SaveKey(_local4.id, _local4.name, _local4.type));
_local3++;
};
_local3 = 0;
while (_local3 < _arg1.ratings.length) {
_local5 = _arg1.ratings[_local3];
_local2.addRating(new SaveRating(_local5.id, _local5.name, _local5.float, _local5.min, _local5.max));
_local3++;
};
return (_local2);
}
}
}//package com.newgrounds
Section 31
//SaveGroupQuery (com.newgrounds.SaveGroupQuery)
package com.newgrounds {
import flash.events.*;
public class SaveGroupQuery extends EventDispatcher {
private var _group:SaveGroup;
private var _groupBy:Array;
private var _lookupKeys:Array;
private var _lookupRatings:Array;
private var _fileConditions:Array;
private var _keyConditions:Array;
private var _ratingConditions:Array;
private var _sortConditions:Array;
private var _page:uint;
private var _resultsPerPage:uint;
private var _randomizeResults:Boolean;
private var _results:Array;
public static const TABLE_FILES:uint = 1;
public static const TABLE_KEYS:uint = 2;
public static const TABLE_RATINGS:uint = 3;
public static const FILE_ID:uint = 0;
public static const AUTHOR_ID:uint = 1;
public static const AUTHOR_NAME:uint = 2;
public static const FILE_NAME:uint = 3;
public static const CREATED_ON:uint = 4;
public static const UPDATED_ON:uint = 5;
public static const TOTAL_VIEWS:uint = 6;
public static const FILE_STATUS:uint = 7;
public static const SCORE:String = "score";
public static const TOTAL_VOTES:String = "votes";
public function SaveGroupQuery(_arg1:SaveGroup){
this._results = [];
super();
this._group = _arg1;
this.reset();
}
public function clearCache():void{
this._results = [];
}
public function get group():SaveGroup{
return (this._group);
}
public function get groupId():uint{
return (this._group.id);
}
public function get resultsPerPage():uint{
return (this._resultsPerPage);
}
public function set resultsPerPage(_arg1:uint):void{
this._resultsPerPage = _arg1;
}
public function get page():uint{
return (this._page);
}
public function set page(_arg1:uint):void{
this._page = _arg1;
}
public function get randomized():Boolean{
return (this._randomizeResults);
}
public function set randomized(_arg1:Boolean):void{
this._randomizeResults = _arg1;
}
public function get results():Array{
return (this._results);
}
public function reset():void{
this._fileConditions = [];
this._keyConditions = [];
this._ratingConditions = [];
this._sortConditions = [];
this._groupBy = [];
this._lookupKeys = [];
this._lookupRatings = [];
this._randomizeResults = false;
this._resultsPerPage = 20;
this._page = 1;
this.clearCache();
}
function getGroup():SaveGroup{
return (this._group);
}
function getGroupID():uint{
return (this._group.getID());
}
public function includeKey(_arg1:String):void{
var _local2:SaveKey = this._group.getKeyName(_arg1);
if (_local2){
this._lookupKeys.push(_local2.id);
};
}
public function isRandomized():Boolean{
return (this._randomizeResults);
}
public function includeRating(_arg1:String):void{
var _local2:SaveRating = this._group.getRatingName(_arg1);
if (_local2){
this._lookupRatings.push(_local2.id);
};
}
public function excludeKey(_arg1:String):void{
var _local2:SaveKey = this._group.getKeyName(_arg1);
var _local3:uint;
while (_local3 < this._lookupKeys.length) {
if (this._lookupKeys[_local3] == _local2.id){
this._lookupKeys.splice(_local3, 1);
return;
};
_local3++;
};
}
public function excludeRating(_arg1:String):void{
var _local2:SaveRating = this._group.getRatingName(_arg1);
var _local3:uint;
while (_local3 < this._lookupRatings.length) {
if (this._lookupRatings[_local3] == _local2.id){
this._lookupRatings.splice(_local3, 1);
return;
};
_local3++;
};
}
public function groupBy(_arg1:uint):void{
this._groupBy.push({table:TABLE_FILES, field:_arg1});
}
public function groupByRating(_arg1:String):void{
var _local2:SaveRating = this._group.getRatingName(_arg1);
if (!_local2){
return;
};
this._groupBy.push({table:TABLE_RATINGS, field:_local2.id});
}
public function groupByKey(_arg1:String):void{
var _local2:SaveKey = this._group.getKeyName(_arg1);
if (!_local2){
return;
};
this._groupBy.push({table:TABLE_KEYS, field:_local2.id});
}
public function addFileCondition(_arg1:uint, _arg2:String, _arg3):void{
this._fileConditions.push({field:_arg1, operator:_arg2, value:_arg3});
}
public function addKeyCondition(_arg1:String, _arg2:String, _arg3):void{
var _local4:SaveKey = this._group.getKeyName(_arg1);
if (!_local4){
return;
};
if (!this.checkValue(_arg3, _local4.type)){
return;
};
this._keyConditions.push({key_id:_local4.id, operator:_arg2, value:_arg3});
}
public function addRatingCondition(_arg1:String, _arg2:String, _arg3, _arg4:String="score"):void{
var _local5:SaveRating = this._group.getRatingName(_arg1);
if (!_local5){
return;
};
this._ratingConditions.push({rating_id:_local5.id, operator:_arg2, value:_arg3, column:_arg4});
}
private function addSortCondition(_arg1:uint, _arg2:uint, _arg3:Boolean=false, _arg4=null):void{
var _local5:Object = {table:_arg1, field:_arg2, desc:_arg3};
if (_arg4){
_local5.extra = _arg4;
};
this._sortConditions.push(_local5);
}
public function sortOn(_arg1:uint, _arg2:Boolean=false):void{
this.addSortCondition(TABLE_FILES, _arg1, _arg2);
}
public function sortOnKey(_arg1:String, _arg2:Boolean=false):void{
this.addSortCondition(TABLE_KEYS, this._group.getKeyName(_arg1).id, _arg2);
}
public function sortOnRating(_arg1:String, _arg2:Boolean=false, _arg3:String="score"):void{
this.addSortCondition(TABLE_RATINGS, this._group.getRatingName(_arg1).id, _arg2, _arg3);
}
public function sortOnRatingScore(_arg1:String, _arg2:Boolean){
this.sortOnRating(_arg1, _arg2, SCORE);
}
public function sortOnRatingVotes(_arg1:String, _arg2:Boolean){
this.sortOnRating(_arg1, _arg2, TOTAL_VOTES);
}
public function setResultsPerPage(_arg1:uint){
this._resultsPerPage = _arg1;
this.clearCache();
}
public function setPage(_arg1:Number){
this._page = _arg1;
this.clearCache();
}
public function setRandomize(_arg1:Boolean):void{
this._randomizeResults = _arg1;
}
public function execute():void{
API.executeSaveQuery(this);
}
private function checkValue(_arg1, _arg2:uint):Boolean{
return (true);
}
function setResults(_arg1:Array):void{
this._results = _arg1;
}
override public function toString():String{
return ("");
}
public function toObject():Object{
var _local1:Object = {page:this._page, num_results:this._resultsPerPage};
if (this.isRandomized()){
_local1.randomize = 1;
};
if (((this._fileConditions) && ((this._fileConditions.length > 0)))){
_local1.file_conditions = this._fileConditions;
};
if (((this._keyConditions) && ((this._keyConditions.length > 0)))){
_local1.key_conditions = this._keyConditions;
};
if (((this._ratingConditions) && ((this._ratingConditions.length > 0)))){
_local1.rating_conditions = this._ratingConditions;
};
if (((this._sortConditions) && ((this._sortConditions.length > 0)))){
_local1.sort_conditions = this._sortConditions;
};
if (((this._lookupKeys) && ((this._lookupKeys.length > 0)))){
_local1.lookup_keys = this._lookupKeys;
};
if (((this._lookupRatings) && ((this._lookupRatings.length > 0)))){
_local1.lookup_ratings = this._lookupRatings;
};
if (((this._groupBy) && ((this._groupBy.length > 0)))){
_local1.group_by = this._groupBy;
};
return (_local1);
}
}
}//package com.newgrounds
Section 32
//SaveKey (com.newgrounds.SaveKey)
package com.newgrounds {
public class SaveKey {
private var _id:uint;
private var _name:String;
private var _type:uint;
public static const TYPE_FLOAT:uint = 1;
public static const TYPE_INTEGER:uint = 2;
public static const TYPE_STRING:uint = 3;
public static const TYPE_BOOLEAN:uint = 4;
public function SaveKey(_arg1:uint, _arg2:String, _arg3:uint){
this._id = _arg1;
this._name = _arg2;
this._type = _arg3;
}
public function get id():uint{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get type():uint{
return (this._type);
}
public function get key_id():uint{
return (this._id);
}
public function get key_name():String{
return (this._name);
}
public function get key_type():uint{
return (this._type);
}
public function isValueValid(_arg1):Boolean{
if (this._type == TYPE_INTEGER){
return ((((_arg1 is int)) || ((_arg1 is uint))));
};
if (this._type == TYPE_FLOAT){
return ((((((_arg1 is int)) || ((_arg1 is uint)))) || ((_arg1 is Number))));
};
if (this._type == TYPE_STRING){
return ((_arg1 is String));
};
if (this._type == TYPE_BOOLEAN){
return ((((((((_arg1 is Boolean)) || ((_arg1 === 0)))) || ((_arg1 === 1)))) || ((_arg1 == ""))));
};
return (false);
}
public function toString():String{
return (this._name);
}
}
}//package com.newgrounds
Section 33
//SaveRating (com.newgrounds.SaveRating)
package com.newgrounds {
public class SaveRating {
private var _id:uint;
private var _name:String;
private var _minValue:Number;
private var _maxValue:Number;
private var _isFloat:Boolean;
private var _voted:Boolean;
public function SaveRating(_arg1:uint, _arg2:String, _arg3:Boolean, _arg4:Number=-INF, _arg5:Number=INF){
this._id = _arg1;
this._name = _arg2;
this._isFloat = _arg3;
this._minValue = _arg4;
this._maxValue = _arg5;
}
public function get rating_id():uint{
return (this._id);
}
public function get rating_name():String{
return (this._name);
}
public function get id():uint{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get minValue():Number{
return (this._minValue);
}
public function get maxValue():Number{
return (this._maxValue);
}
public function get isFloat():Boolean{
return (this._isFloat);
}
public function get voted():Boolean{
return (this._voted);
}
public function set voted(_arg1:Boolean):void{
this._voted = _arg1;
}
public function toString():String{
return (this._name);
}
}
}//package com.newgrounds
Section 34
//Score (com.newgrounds.Score)
package com.newgrounds {
public class Score {
private var _board:ScoreBoard;
private var _position:uint;
private var _username:String;
private var _value:String;
private var _numeric_value:uint;
private var _tag:String;
public function Score(_arg1:ScoreBoard, _arg2:Number, _arg3:String, _arg4:String, _arg5:uint, _arg6:String){
this._board = _arg1;
this._position = _arg2;
this._username = _arg3;
this._value = _arg4;
this._numeric_value = _arg5;
this._tag = _arg6;
}
public function get board():ScoreBoard{
return (this._board);
}
public function get position():uint{
return (this._position);
}
public function get username():String{
return (this._username);
}
public function get value():String{
return (this._value);
}
public function get numeric_value():uint{
return (this._numeric_value);
}
public function get tag():String{
return (this._tag);
}
}
}//package com.newgrounds
Section 35
//ScoreBoard (com.newgrounds.ScoreBoard)
package com.newgrounds {
import flash.events.*;
public class ScoreBoard extends EventDispatcher {
private var _name:String;
private var _id:uint;
private var _scores:Array;
private var _period:String;// = "Today"
private var _num_results:uint;// = 10
private var _numScores:uint;
private var _desiredNumResults:uint;
private var _startRank:uint;
private var _endRank:uint;
private var _page:uint;// = 1
private var _tag:String;
public function ScoreBoard(_arg1:uint, _arg2:String, _arg3:String){
this._name = _arg2;
this._id = _arg1;
this._scores = [];
this._tag = _arg3;
}
public function exists():Boolean{
return ((this._id > 0));
}
public function get id():Number{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get period():String{
return (this._period);
}
public function get page():uint{
return (this._page);
}
public function get num_results():uint{
return (this._num_results);
}
public function get scores():Array{
return (this._scores);
}
public function get tag():String{
return (this._tag);
}
public function get num_scores():uint{
return (this._numScores);
}
public function postScore(_arg1:uint, _arg2:String=null):void{
if (_arg2){
this._tag = _arg2;
};
API.postScore(this._name, _arg1);
}
public function loadScores(_arg1:String="Today", _arg2:uint=1, _arg3:uint=10):void{
this._period = _arg1;
if (((!(this._period)) || ((this._period == "")))){
this._period = ScoreBoardPeriod.TODAY;
};
this._page = _arg2;
this._num_results = _arg3;
this._desiredNumResults = 0;
API.loadScores(this.name);
}
public function loadScoresInRange(_arg1:String="Today", _arg2:uint=1, _arg3:uint=10):void{
if (_arg2 == 0){
_arg2 = 1;
};
if (_arg3 < _arg2){
_arg3 = _arg2;
};
this._period = _arg1;
if (((!(this._period)) || ((this._period == "")))){
this._period = ScoreBoardPeriod.TODAY;
};
this._desiredNumResults = ((_arg3 - _arg2) + 1);
this._num_results = this._desiredNumResults;
while (int(((_arg2 - 1) / this._num_results)) != int(((_arg3 - 1) / this._num_results))) {
this._num_results++;
};
this._page = ((_arg2 - 1) / this._num_results);
this._startRank = _arg2;
this._endRank = _arg3;
this._page++;
API.loadScores(this.name);
}
function setScores(_arg1:Array, _arg2:String, _arg3:Number, _arg4:Number, _arg5:uint):void{
var _local7:uint;
this._period = _arg2;
this._page = _arg3;
this._num_results = _arg4;
this._numScores = _arg5;
this._scores = [];
var _local6:uint;
while (_local6 < _arg1.length) {
_local7 = (((this._num_results * (this._page - 1)) + 1) + _local6);
if (((!(this._desiredNumResults)) || ((((_local7 >= this._startRank)) && ((_local7 <= this._endRank)))))){
this._scores.push(new Score(this, _local7, _arg1[_local6].username, _arg1[_local6].value, _arg1[_local6].numeric_value, _arg1[_local6].tag));
};
_local6++;
};
this._num_results = this._scores.length;
}
}
}//package com.newgrounds
Section 36
//ScoreBoardPeriod (com.newgrounds.ScoreBoardPeriod)
package com.newgrounds {
public class ScoreBoardPeriod {
public static const TODAY:String = "Today";
public static const WEEK:String = "This Week";
public static const MONTH:String = "This Month";
public static const YEAR:String = "This Year";
public static const ALL_TIME:String = "All-Time";
}
}//package com.newgrounds
Section 37
//SmartURLLoader (com.newgrounds.SmartURLLoader)
package com.newgrounds {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
public class SmartURLLoader extends EventDispatcher {
private var _variables:Dictionary;
private var _files:Dictionary;
private var _hasVariables:Boolean;
private var _method:String;// = "GET"
private var _urlRequest:URLRequest;
private var _urlLoader:URLLoader;
private var _dataFormat:String;// = "text"
private var _openBrowser:Boolean;// = false
private var _preventCache:Boolean;// = false
var _command:String;
public var owner;
private static const CRLF:String = "
";
private static var _loaders:Dictionary = new Dictionary();
public function SmartURLLoader(){
this._urlRequest = new URLRequest();
this._variables = new Dictionary();
}
public function get responseFormat():String{
return (this._dataFormat);
}
public function set responseFormat(_arg1:String):void{
this._dataFormat = _arg1;
}
public function get response(){
return (this._urlLoader.data);
}
public function get hasFiles():Boolean{
return (Boolean(this._files));
}
public function get method():String{
return (this._method);
}
public function set method(_arg1:String):void{
if (((this.hasFiles) && ((_arg1 == URLRequestMethod.GET)))){
throw (new IllegalOperationError("GET cannot be used to upload files."));
};
this._method = _arg1;
}
public function get openBrowser():Boolean{
return (this._openBrowser);
}
public function set openBrowser(_arg1:Boolean):void{
this._openBrowser = _arg1;
}
public function get preventCache():Boolean{
return (this._preventCache);
}
public function set preventCache(_arg1:Boolean):void{
this._preventCache = _arg1;
}
public function get bytesLoaded():uint{
return ((this._urlLoader) ? this._urlLoader.bytesLoaded : 0);
}
public function get bytesTotal():uint{
return ((this._urlLoader) ? this._urlLoader.bytesTotal : 0);
}
public function addVariable(_arg1:String, _arg2=""):void{
this._variables[_arg1] = _arg2;
if (_arg2){
this._hasVariables = true;
};
}
public function addFile(_arg1:String, _arg2:ByteArray, _arg3:String, _arg4:String="application/octet-stream"):void{
this.method = URLRequestMethod.POST;
if (!this._files){
this._files = new Dictionary();
};
this._files[_arg1] = new File(_arg1, _arg2, _arg3, _arg4);
}
public function clearVariables():void{
this._variables = new Dictionary();
}
public function clearFiles():void{
this._files = null;
}
public function load(_arg1:String):void{
var urlVariables:URLVariables;
var key:String;
var boundary:String;
var i:uint;
var event:SecurityErrorEvent;
var url = _arg1;
this._urlRequest.url = url;
if (this._preventCache){
url = (url + ("?seed=" + Math.random()));
if (this._hasVariables){
url = (url + "&");
};
};
this._urlRequest.method = this._method;
if ((((this._urlRequest.method == URLRequestMethod.GET)) || (!(this.hasFiles)))){
this._urlRequest.contentType = "application/x-www-form-urlencoded";
if (this._hasVariables){
urlVariables = new URLVariables();
for (key in this._variables) {
urlVariables[key] = this._variables[key];
};
this._urlRequest.data = urlVariables;
};
} else {
boundary = "";
i = 0;
while (i < 32) {
boundary = (boundary + String.fromCharCode(uint((97 + (Math.random() * 25)))));
i = (i + 1);
};
this._urlRequest.contentType = (("multipart/form-data; boundary=\"" + boundary) + "\"");
this._urlRequest.data = this.buildMultipartData(boundary);
};
if (this.openBrowser){
navigateToURL(this._urlRequest, "_blank");
} else {
this._urlLoader = new URLLoader();
this._urlLoader.dataFormat = this._dataFormat;
this._urlLoader.addEventListener(Event.COMPLETE, this.onComplete);
this._urlLoader.addEventListener(ProgressEvent.PROGRESS, this.onProgress);
this._urlLoader.addEventListener(IOErrorEvent.IO_ERROR, this.onIOError);
this._urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHTTPStatus);
this._urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError);
_loaders[this._urlLoader] = this;
try {
this._urlLoader.load(this._urlRequest);
} catch(error:Error) {
event = new SecurityErrorEvent(SecurityErrorEvent.SECURITY_ERROR, false, false, error.message);
onSecurityError(event);
};
};
}
public function close():void{
try {
this._urlLoader.close();
} catch(e:Error) {
};
}
public function dispose():void{
this.close();
this._files = null;
this._variables = null;
if (this._urlLoader){
this._urlLoader.removeEventListener(Event.COMPLETE, this.onComplete);
this._urlLoader.removeEventListener(ProgressEvent.PROGRESS, this.onProgress);
this._urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, this.onIOError);
this._urlLoader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHTTPStatus);
this._urlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError);
this._urlLoader = null;
};
this._urlRequest = null;
delete _loaders[this];
}
private function buildMultipartData(_arg1:String):ByteArray{
var _local3:String;
var _local4:File;
var _local2:ByteArray = new ByteArray();
_local2.endian = Endian.BIG_ENDIAN;
_arg1 = ("--" + _arg1);
for (_local3 in this._variables) {
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(((("Content-Disposition: form-data; name=\"" + _local3) + "\"") + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeUTFBytes((this._variables[_local3] + CRLF));
};
if (this.hasFiles){
for each (_local4 in this._files) {
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Filename\"" + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeUTFBytes((_local4.fileName + CRLF));
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(((((("Content-Disposition: form-data; name=\"" + _local4.dataField) + "\"; filename=\"") + _local4.fileName) + "\"") + CRLF));
_local2.writeUTFBytes((("Content-Type: " + _local4.contentType) + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeBytes(_local4.data);
_local2.writeUTFBytes(CRLF);
};
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Upload\"" + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeUTFBytes(("Submit Query" + CRLF));
};
_local2.writeUTFBytes((_arg1 + "--"));
_local2.position = 0;
_local2.position = 0;
return (_local2);
}
private function onComplete(_arg1:Event):void{
dispatchEvent(_arg1);
this.dispose();
}
private function onProgress(_arg1:ProgressEvent):void{
dispatchEvent(_arg1);
}
private function onIOError(_arg1:IOErrorEvent):void{
dispatchEvent(_arg1);
this.dispose();
}
private function onSecurityError(_arg1:SecurityErrorEvent):void{
dispatchEvent(_arg1);
this.dispose();
}
private function onHTTPStatus(_arg1:HTTPStatusEvent):void{
dispatchEvent(_arg1);
}
public static function closeAll():void{
var _local1:SmartURLLoader;
for each (_local1 in _loaders) {
if (_local1){
_local1.dispose();
};
};
_loaders = new Dictionary();
}
}
}//package com.newgrounds
import flash.utils.*;
class File {
private var fileName:String;
private var data:ByteArray;
private var dataField:String;
private var contentType:String;
private function File(_arg1:String, _arg2:ByteArray, _arg3:String="Filedata", _arg4:String="application/octet-stream"){
this.fileName = _arg1;
this.data = _arg2;
this.dataField = _arg3;
this.contentType = _arg4;
}
}
Section 38
//MainTimeline (Fly_fla.MainTimeline)
package Fly_fla {
import com.newgrounds.*;
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import com.newgrounds.components.*;
import flash.utils.*;
import fog.as3.*;
import flash.geom.*;
import flash.accessibility.*;
import flash.text.*;
import flash.net.*;
import flash.media.*;
import flash.system.*;
import flash.errors.*;
import flash.filters.*;
import adobe.utils.*;
import flash.external.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var keyIsPressed:String;
public var earthShakerPrice_txt:TextField;
public var homingPrice_txt:TextField;
public var magnet_btn:MovieClip;
public var playerAmmo3Array:Array;
public var bushmaterOrigY:Number;
public var missileRelease4Snd:Sound;
public var bushmaterOrigX:Number;
public var marker11_mc:MovieClip;
public var ground3b_mc:MovieClip;
public var scoreObjectTwo:Object;
public var award7Des:String;
public var magnetName_txt:TextField;
public var specialUIContainer1_mc:MovieClip;
public var __setPropDict:Dictionary;
public var marker3_mc:MovieClip;
public var waveMax_lvl1:Number;
public var waveMax_lvl2:Number;
public var waveMax_lvl3:Number;
public var waveMax_lvl5:Number;
public var waveMax_lvl6:Number;
public var waveMax_lvl7:Number;
public var waveMax_lvl4:Number;
public var award4_Name:String;
public var award11_Name:String;
public var gun4Des:String;
public var awardNext_btn:MovieClip;
public var playerAmmo4Array:Array;
public var award13_mc:MovieClip;
public var homingDes:String;
public var ground2b_mc:MovieClip;
public var award2_mc:MovieClip;
public var enemyCrashArray:Array;
public var earthShakerOrigX:Number;
public var earthShakerOrigY:Number;
public var bushmasterAvailability:String;
public var gun3Price_txt:TextField;
public var gun1Name_txt:TextField;
public var levelKills_txt:TextField;
public var waveTimer_lvl2:Timer;
public var prelevelBack_btn:MovieClip;
public var waveTimer_lvl5:Timer;
public var waveTimer_lvl6:Timer;
public var waveTimer_lvl1:Timer;
public var repairUsed:String;
public var waveTimer_lvl3:Timer;
public var waveTimer_lvl4:Timer;
public var postWinPanel_mc:MovieClip;
public var waveTimer_lvl7:Timer;
public var gun5Availability:String;
public var pauseScreen_mc:MovieClip;
public var award9Des:String;
public var userPrompt1Snd:Sound;
public var award12_Name:String;
public var lifeDenom:Number;
public var ammo2Gap:Number;
public var missileDes:String;
public var postWinAnimationCounter:Number;
public var magnetName:String;
public var coinSnd:Sound;
public var award5_Name:String;
public var marker5_mc:MovieClip;
public var ground1b_mc:MovieClip;
public var bushmasterPrice:Number;
public var award15_mc:MovieClip;
public var award4_mc:MovieClip;
public var bushmasterDes:String;
public var specialContainer_mc:MovieClip;
public var moneyArray:Array;
public var gun2Price:Number;
public var rotatingRays_mc:MovieClip;
public var award11Des:String;
public var playerV1Special2Rof:Number;
public var missileAvailability:String;
public var missileReleaseSnd:Sound;
public var award13_Name:String;
public var award6_Name:String;
public var killsOverall:Number;
public var repairPrice:Number;
public var userPrompt3Snd:Sound;
public var awardSnd:Sound;
public var wave_lvl1:Number;
public var wave_lvl2:Number;
public var wave_lvl3:Number;
public var marker7_mc:MovieClip;
public var wave_lvl4:Number;
public var wave_lvl6:Number;
public var V1SpecialActivated:String;
public var magnetAvailability:String;
public var pointsOverall:Number;
public var gun4Price_txt:TextField;
public var wave_lvl7:Number;
public var crump1_mc:MovieClip;
public var wave_lvl5:Number;
public var gun5_btn:MovieClip;
public var gun3Price:Number;
public var award6_mc:MovieClip;
public var polarisrName:String;
public var v2_mc:MovieClip;
public var toPostLevelTimer:Timer;
public var award14_Name:String;
public var gameStateCode:Number;
public var award13Des:String;
public var award7_Name:String;
public var award2Des:String;
public var fireBushmasterTmrObj:Timer;
public var polarisAvailability:String;
public var gun4Availability:String;
public var money_txt:TextField;
public var specialAttackArray:Array;
public var gun4_btn:MovieClip;
public var marker9_mc:MovieClip;
public var earthShakerName:String;
public var playerAmmo4Rof:Number;
public var playerV1Special1Array:Array;
public var gun4Price:Number;
public var playerSpecial3aArray:Array;
public var waveInterval:Number;
public var award8_mc:MovieClip;
public var award15_Name:String;
public var lifeNum:Number;
public var bossArray:Array;
public var itemName_txt:TextField;
public var award8_Name:String;
public var gun5Price_txt:TextField;
public var howToBack_btn:MovieClip;
public var gun3_btn:MovieClip;
public var postLostNext_btn:MovieClip;
public var award15Des:String;
public var howToNext_btn:MovieClip;
public var award4Des:String;
public var gun5Name:String;
public var lifebar_mc:MovieClip;
public var vehicleCode:Number;
public var prelevelStart_btn:MovieClip;
public var bushmasterPrice_txt:TextField;
public var gun5Price:Number;
public var gun1Des:String;
public var layer1b:MovieClip;
public var layer1c:MovieClip;
public var backToHowTo_btn:MovieClip;
public var layer1a:MovieClip;
public var playerV1Special2Array:Array;
public var moneyOverall:Number;
public var playerSpecial3bArray:Array;
public var musicShow_txt:TextField;
public var award10_mc:MovieClip;
public var layer2a:MovieClip;
public var layer2b:MovieClip;
public var layer2c:MovieClip;
public var level:Number;
public var qualityCode:Number;
public var award9_Name:String;
public var gun2_btn:MovieClip;
public var whiteFlash_mc:MovieClip;
public var kills_level:Number;
public var loadGame_btn:MovieClip;
public var gun4Name:String;
public var gamesScreenSnd:Sound;
public var highScore_btn:MovieClip;
public var killed_txt:TextField;
public var powerUpArray:Array;
public var allowJayIsGame:Boolean;
public var nonGameScreenSnd:Sound;
public var healthRepairUI_mc:MovieClip;
public var ground3a_mc:MovieClip;
public var marker10_mc:MovieClip;
public var missileRelease3Snd:Sound;
public var levelContainer_mc:MovieClip;
public var missile_btn:MovieClip;
public var award6Des:String;
public var vSelectionBG_mc:MovieClip;
public var barrelSnd:Sound;
public var sonicWaveSnd:Sound;
public var gun3Availability:String;
public var vFinalSelection_mc:MovieClip;
public var fireWeapon:String;
public var magnetRange:Number;
public var itemDesc_txt:TextField;
public var earthShakerName_txt:TextField;
public var marker2_mc:MovieClip;
public var magnetPrice:Number;
public var moreGames_btn:MovieClip;
public var gun1_btn:MovieClip;
public var dropSnd:Sound;
public var gun3Name:String;
public var gun3Des:String;
public var countCoins:Number;
public var scoreObjectOne:Object;
public var award12_mc:MovieClip;
public var ground2a_mc:MovieClip;
public var award1_mc:MovieClip;
public var explosionArray:Array;
public var qualityShow_txt:TextField;
public var playerSpecial1aArray:Array;
public var awards_btn:MovieClip;
public var magnetDes:String;
public var playerV2Special1Array:Array;
public var __id0_:APIConnector;
public var dead:String;
public var marker12_mc:MovieClip;
public var ground3c_mc:MovieClip;
public var award8Des:String;
public var FogAPI:FogDevAPI;
public var gun2Name:String;
public var coins_txt:TextField;
public var specialUIContainer2_mc:MovieClip;
public var homingName_txt:TextField;
public var marker4_mc:MovieClip;
public var ground1a_mc:MovieClip;
public var newGamePrompt_mc:MovieClip;
public var explodeSnd:Sound;
public var homingPrice:Number;
public var gun5Name_txt:TextField;
public var special4used:String;
public var levelComplete:Boolean;
public var missileName:String;
public var enemyLifebar_mc:MovieClip;
public var gun5Des:String;
public var playerSpecial1bArray:Array;
public var award14_mc:MovieClip;
public var ground2c_mc:MovieClip;
public var award3_mc:MovieClip;
public var playerV2Special2Array:Array;
public var fader_mc:MovieClip;
public var points_txt:TextField;
public var earthShakeTmrObj:Timer;
public var earthShakerDes:String;
public var gun1Name:String;
public var points_level:Number;
public var mouseFollowSpeed:Number;
public var award10Des:String;
public var polarisPrice:Number;
public var repairDes:String;
public var moreGames_btn2:MovieClip;
public var special3used:String;
public var homingAvailability:String;
public var V3SpecialInventory:Number;
public var userPrompt2Snd:Sound;
public var repairName_txt:TextField;
public var repairPrice_txt:TextField;
public var playerAmmo2b_Rof:Number;
public var ammo3Gap:Number;
public var marker6_mc:MovieClip;
public var ground1c_mc:MovieClip;
public var gun2Availability:String;
public var repairAvailability:String;
public var firePolarisTmrObj:Timer;
public var playerAmmo1Rof:Number;
public var musicCode:Number;
public var award5_mc:MovieClip;
public var homingOrigX:Number;
public var homingOrigY:Number;
public var gun4Name_txt:TextField;
public var V3SpecialActivated:String;
public var special2used:String;
public var v1_mc:MovieClip;
public var postLostAnimationCounter:Number;
public var playerAmmo2a_Rof:Number;
public var award12Des:String;
public var missileName_txt:TextField;
public var playerV3Special1Array:Array;
public var award1Des:String;
public var playerAmmo3b_Rof:Number;
public var explosionSnd:Sound;
public var userPrompt4Snd:Sound;
public var music:String;
public var smokeArray:Array;
public var polarisOrigX:Number;
public var magnetPrice_txt:TextField;
public var marker8_mc:MovieClip;
public var polarisOrigY:Number;
public var newGame_btn:MovieClip;
public var postWinNext_btn:MovieClip;
public var special1used:String;
public var levelLength_mc:MovieClip;
public var polarisPrice_txt:TextField;
public var award7_mc:MovieClip;
public var homingName:String;
public var backToSelectVehicle_btn:MovieClip;
public var playerAmmo3a_Rof:Number;
public var fab_so:SharedObject;
public var award1_Name:String;
public var v3_mc:MovieClip;
public var enemyAmmo1Array:Array;
public var repair_btn:MovieClip;
public var playerAmmo1Array:Array;
public var award14Des:String;
public var bossSnd:Sound;
public var award3Des:String;
public var gun3Name_txt:TextField;
public var fader1_mc:MovieClip;
public var earthShakerXpos:Number;
public var playerSpecial4Array:Array;
public var char_mc:MovieClip;
public var bushmasterName_txt:TextField;
public var polarisrDes:String;
public var incomingMissileSnd:Sound;
public var jIsGame_mc:MovieClip;
public var award2_Name:String;
public var award9_mc:MovieClip;
public var enemyAmmo2Array:Array;
public var money_level:Number;
public var playerAmmo2Array:Array;
public var missileRelease2Snd:Sound;
public var preloadBG_mc:MovieClip;
public var award5Des:String;
public var postFinNext_btn:MovieClip;
public var mouseOverSnd:Sound;
public var earthShakerAvailability:String;
public var playerSpecial2aArray:Array;
public var fireHomingTmrObj:Timer;
public var marker1_mc:MovieClip;
public var gun2Price_txt:TextField;
public var enemyArray:Array;
public var repairName:String;
public var gun2Des:String;
public var toPostCounter:Number;
public var missilePrice:Number;
public var polarisName_txt:TextField;
public var award10_Name:String;
public var earthShakerPrice:Number;
public var award3_Name:String;
public var gun2Name_txt:TextField;
public var gameState:String;
public var award11_mc:MovieClip;
public var V2SpecialActivated:String;
public var enemyAmmo3Array:Array;
public var missilePrice_txt:TextField;
public var vehicleSpecialUIContainer_mc:MovieClip;
public var redFlash_mc:MovieClip;
public var bushmasterName:String;
public function MainTimeline(){
__setPropDict = new Dictionary(true);
super();
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17);
}
public function resetHoming(_arg1:TimerEvent){
fireHomingTmrObj.reset();
}
public function toPostCount(_arg1:TimerEvent){
toPostCounter++;
if (toPostCounter == 2){
};
}
public function updateLevel(){
toPostLevelTimer.start();
levelComplete = true;
}
function frame10(){
stop();
initGame();
}
function frame11(){
stop();
initGame();
}
function frame12(){
stop();
initGame();
}
function frame13(){
stop();
initGame();
}
function frame14(){
stop();
initFader();
updateQualityAndMusicDisplay();
navButtons(postWinNext_btn, "prelevel");
postWinAnimationCounter = 0;
stage.addEventListener(Event.ENTER_FRAME, postWinLooper);
trace(("Score that is to be submmited" + fab_so.data.pointsOveralll_so));
scoreObjectOne = {score:String(fab_so.data.pointsOveralll_so)};
FogAPI.LibraryCall("ScoresUpdate", scoreObjectOne);
}
function frame15(){
stop();
initFader();
updateQualityAndMusicDisplay();
navButtons(postLostNext_btn, "prelevel");
postLostAnimationCounter = 0;
char_mc.y = -124;
Tweener.addTween(char_mc, {y:0x0100, time:1.6, transition:"easeOutBounce"});
stage.addEventListener(Event.ENTER_FRAME, postLostLooper);
}
function frame16(){
stop();
initFader();
levelAwards();
updateQualityAndMusicDisplay();
navButtons(postFinNext_btn, "title");
stage.addEventListener(Event.ENTER_FRAME, postFinLooper);
trace(("Score that is to be submmited" + fab_so.data.pointsOveralll_so));
scoreObjectTwo = {score:String(fab_so.data.pointsOveralll_so)};
FogAPI.LibraryCall("ScoresUpdate", scoreObjectTwo);
}
function frame17(){
stop();
initFader();
updateQualityAndMusicDisplay();
navButtons(awardNext_btn, "title");
initAwardsScreen();
_setAwardsNameDesc(award1_mc, award1_Name, award1Des);
_setAwardsNameDesc(award2_mc, award2_Name, award2Des);
_setAwardsNameDesc(award3_mc, award3_Name, award3Des);
_setAwardsNameDesc(award4_mc, award4_Name, award4Des);
_setAwardsNameDesc(award5_mc, award5_Name, award5Des);
_setAwardsNameDesc(award6_mc, award6_Name, award6Des);
_setAwardsNameDesc(award7_mc, award7_Name, award7Des);
_setAwardsNameDesc(award8_mc, award8_Name, award8Des);
_setAwardsNameDesc(award9_mc, award9_Name, award9Des);
_setAwardsNameDesc(award10_mc, award10_Name, award10Des);
_setAwardsNameDesc(award11_mc, award11_Name, award11Des);
_setAwardsNameDesc(award12_mc, award12_Name, award12Des);
_setAwardsNameDesc(award13_mc, award13_Name, award13Des);
_setAwardsNameDesc(award14_mc, award14_Name, award14Des);
_setAwardsNameDesc(award15_mc, award15_Name, award15Des);
stage.addEventListener(Event.ENTER_FRAME, awardLooper);
}
public function resetPolaris(_arg1:TimerEvent){
firePolarisTmrObj.reset();
}
public function postWinLooper(_arg1:Event){
if (currentFrame == 12){
postWinAnimationCounter++;
if (postWinAnimationCounter < 40){
postWinPanel_mc.killed_txt.text = String(randomGenerator(1000, 9000));
postWinPanel_mc.coins_txt.text = String(randomGenerator(1000, 9000));
postWinPanel_mc.points_txt.text = String(randomGenerator(1000, 9000));
} else {
if (postWinAnimationCounter < 60){
postWinPanel_mc.killed_txt.text = String(kills_level);
postWinPanel_mc.coins_txt.text = String(randomGenerator(1000, 9000));
postWinPanel_mc.points_txt.text = String(randomGenerator(1000, 9000));
} else {
if (postWinAnimationCounter < 80){
postWinPanel_mc.killed_txt.text = String(kills_level);
postWinPanel_mc.coins_txt.text = String(money_level);
postWinPanel_mc.points_txt.text = String(randomGenerator(1000, 9000));
} else {
if (postWinAnimationCounter < 100){
postWinPanel_mc.killed_txt.text = String(kills_level);
postWinPanel_mc.coins_txt.text = String(money_level);
postWinPanel_mc.points_txt.text = String(fab_so.data.pointsOveralll_so);
};
};
};
};
rotatingRays_mc.rotation = (rotatingRays_mc.rotation + 0.5);
} else {
stage.removeEventListener(Event.ENTER_FRAME, postWinLooper);
};
}
public function removeFromArray(_arg1:Array, _arg2:MovieClip){
var _local3:Number = (_arg1.length - 1);
while (_local3 >= 0) {
if (_arg1[_local3] == _arg2){
_arg1.splice(_local3, 1);
levelContainer_mc.removeChild(_arg2);
break;
};
_local3--;
};
}
public function attPlayerV2Special2_secondLayer(){
var _local3:PlayerV2Special2;
var _local1:Number = -50;
var _local2:Number = 0;
while (_local2 < 50) {
_local1 = (_local1 + 50);
_local3 = new PlayerV2Special2(_local1, -150, randomGenerator(90, 100));
_local3.main = this;
levelContainer_mc.addChild(_local3);
playerV2Special2Array.push(_local3);
_local2++;
};
}
public function collideWithTarget(_arg1){
var btn = _arg1;
var collideChecker:Function = function (_arg1:MovieClip):Boolean{
if (_arg1.hitTestObject(specialContainer_mc.target1_mc)){
if (specialAttackArray[0] == "1"){
_arg1.x = specialContainer_mc.target1_mc.x;
_arg1.y = specialContainer_mc.target1_mc.y;
specialArrayValueChecker();
return (true);
};
specialArrayValueChecker();
return (false);
//unresolved jump
};
if (_arg1.hitTestObject(specialContainer_mc.target2_mc)){
if (specialAttackArray[1] == "2"){
_arg1.x = specialContainer_mc.target2_mc.x;
_arg1.y = specialContainer_mc.target2_mc.y;
specialArrayValueChecker();
return (true);
};
specialArrayValueChecker();
return (false);
//unresolved jump
};
specialArrayValueChecker();
return (false);
};
switch (btn){
case specialContainer_mc.bushmaster_btn:
if (collideChecker(btn) == false){
specialContainer_mc.bushmaster_btn.x = bushmaterOrigX;
specialContainer_mc.bushmaster_btn.y = bushmaterOrigY;
specialArrayValueChecker();
};
break;
case specialContainer_mc.polaris_btn:
if (collideChecker(btn) == false){
specialContainer_mc.polaris_btn.x = polarisOrigX;
specialContainer_mc.polaris_btn.y = polarisOrigY;
specialArrayValueChecker();
};
break;
case specialContainer_mc.earthShaker_btn:
if (collideChecker(btn) == false){
specialContainer_mc.earthShaker_btn.x = earthShakerOrigX;
specialContainer_mc.earthShaker_btn.y = earthShakerOrigY;
specialArrayValueChecker();
};
break;
case specialContainer_mc.homing_btn:
if (collideChecker(btn) == false){
specialContainer_mc.homing_btn.x = homingOrigX;
specialContainer_mc.homing_btn.y = homingOrigY;
specialArrayValueChecker();
};
break;
};
}
public function navButtons(_arg1:MovieClip, _arg2:String){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
var whereTo = _arg2;
movr = function (_arg1:MouseEvent){
};
mout = function (_arg1:MouseEvent){
};
mclck = function (_arg1:MouseEvent){
gotoAndStop(whereTo);
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function playMouseOverSnd(){
mouseOverSnd.play();
}
public function playBossSnd(){
SoundMixer.stopAll();
bossSnd.play(0, int.MAX_VALUE);
}
public function resetBushmaster(_arg1:TimerEvent){
fireBushmasterTmrObj.reset();
}
public function attPlayerAmmo2a(){
var _local1:PlayerAmmo2;
playerAmmo2a_Rof--;
if (playerAmmo2a_Rof <= 0){
_local1 = new PlayerAmmo2(levelContainer_mc.player_mc.x, (levelContainer_mc.player_mc.y - ammo2Gap), 358);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerAmmo2Array.push(_local1);
playerAmmo2a_Rof = 3;
};
}
public function attPlayerAmmo2b(){
var _local1:PlayerAmmo2;
playerAmmo2b_Rof--;
if (playerAmmo2b_Rof <= 0){
_local1 = new PlayerAmmo2(levelContainer_mc.player_mc.x, (levelContainer_mc.player_mc.y + ammo2Gap), 2);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerAmmo2Array.push(_local1);
playerAmmo2b_Rof = 3;
};
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function attPlayerAmmo3b(){
var _local1:PlayerAmmo3;
playerAmmo3b_Rof--;
if (playerAmmo3b_Rof <= 0){
_local1 = new PlayerAmmo3(levelContainer_mc.player_mc.x, (levelContainer_mc.player_mc.y + ammo3Gap), 4);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerAmmo3Array.push(_local1);
playerAmmo3b_Rof = 3;
};
}
public function attPlayerAmmo3a(){
var _local1:PlayerAmmo3;
playerAmmo3a_Rof--;
if (playerAmmo3a_Rof <= 0){
_local1 = new PlayerAmmo3(levelContainer_mc.player_mc.x, (levelContainer_mc.player_mc.y - ammo3Gap), 356);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerAmmo3Array.push(_local1);
playerAmmo3a_Rof = 3;
};
}
public function checkHit(_arg1:Array, _arg2:Array, _arg3:Number){
var _local5:Number;
var _local4:Number = (_arg1.length - 1);
while (_local4 >= 0) {
_local5 = (_arg2.length - 1);
while (_local5 >= 0) {
if (_arg1[_local4].hitBox_mc.hitTestObject(_arg2[_local5].hitBox_mc)){
if ((_arg1[_local4] is PlayerSpecial4)){
attExplosion(_arg1[_local4]);
};
if ((_arg1[_local4] is PlayerSpecial3b)){
} else {
_arg1[_local4].destruct("");
};
_arg2[_local5].life = (_arg2[_local5].life - _arg3);
_arg2[_local5].flash_mc.gotoAndPlay(2);
break;
};
_local5--;
};
_local4--;
};
}
public function shootEarthShaker(_arg1:TimerEvent){
var _local4:PlayerSpecial3b;
playMissileRelease4Snd();
earthShakerXpos = (earthShakerXpos + 50);
var _local2:Number = 300;
var _local3:Number = 0;
while (_local3 < 3) {
_local2 = (_local2 + 100);
_local4 = new PlayerSpecial3b(earthShakerXpos, _local2, 270);
_local4.main = this;
_local4.flame_mc.gotoAndPlay(randomGenerator(1, 10));
levelContainer_mc.addChild(_local4);
playerSpecial3bArray.push(_local4);
_local3++;
};
}
public function playIncomingMissileSnd(){
incomingMissileSnd.play();
}
public function whenEnemyDies(_arg1:MovieClip){
attCoin(_arg1);
attExplosion(_arg1);
kills_level++;
if ((_arg1 is Enemy1)){
points_level = (points_level + 20);
} else {
if ((_arg1 is Enemy2)){
points_level = (points_level + 22);
} else {
if ((_arg1 is Enemy3)){
points_level = (points_level + 23);
} else {
if ((_arg1 is Enemy4)){
points_level = (points_level + 24);
} else {
if ((_arg1 is Enemy5)){
points_level = (points_level + 25);
} else {
if ((_arg1 is Enemy6)){
points_level = (points_level + 26);
} else {
if ((_arg1 is Enemy7)){
points_level = (points_level + 27);
} else {
if ((_arg1 is Enemy8)){
points_level = (points_level + 28);
} else {
if ((_arg1 is Enemy9)){
points_level = (points_level + 29);
} else {
if ((_arg1 is Enemy10)){
points_level = (points_level + 30);
} else {
if ((_arg1 is Enemy11)){
points_level = (points_level + 31);
} else {
if ((_arg1 is Enemy12)){
points_level = (points_level + 32);
} else {
if ((_arg1 is Enemy13)){
points_level = (points_level + 33);
} else {
if ((_arg1 is Enemy14)){
points_level = (points_level + 34);
} else {
if ((_arg1 is Enemy15)){
points_level = (points_level + 35);
} else {
if ((_arg1 is Enemy16)){
points_level = (points_level + 36);
} else {
if ((_arg1 is Boss1)){
points_level = (points_level + 41);
} else {
if ((_arg1 is Boss2)){
points_level = (points_level + 42);
} else {
if ((_arg1 is Boss3)){
points_level = (points_level + 43);
} else {
if ((_arg1 is Boss4)){
points_level = (points_level + 44);
} else {
if ((_arg1 is Boss5)){
points_level = (points_level + 45);
} else {
if ((_arg1 is Boss6)){
points_level = (points_level + 46);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function postFinLooper(_arg1:Event){
if (currentFrame == 14){
rotatingRays_mc.rotation = (rotatingRays_mc.rotation + 0.5);
} else {
stage.removeEventListener(Event.ENTER_FRAME, postFinLooper);
};
}
public function dragAndDrop(_arg1:MovieClip){
var klik:Function;
var drag:Function;
var drop:Function;
var btn = _arg1;
klik = function (_arg1:MouseEvent){
specialContainer_mc.setChildIndex(specialContainer_mc.bushmaster_btn, (specialContainer_mc.numChildren - 1));
};
drag = function (_arg1:MouseEvent){
specialContainer_mc.setChildIndex(btn, (specialContainer_mc.numChildren - 1));
switch (btn){
case specialContainer_mc.bushmaster_btn:
if (bushmasterAvailability == "sold"){
btn.startDrag();
};
break;
case specialContainer_mc.polaris_btn:
if (polarisAvailability == "sold"){
btn.startDrag();
};
break;
case specialContainer_mc.earthShaker_btn:
if (earthShakerAvailability == "sold"){
btn.startDrag();
};
break;
case specialContainer_mc.homing_btn:
if (homingAvailability == "sold"){
btn.startDrag();
};
break;
};
};
drop = function (_arg1:MouseEvent){
switch (btn){
case specialContainer_mc.bushmaster_btn:
if (bushmasterAvailability == "sold"){
trace("baby");
collideWithTarget(btn);
_arg1.target.stopDrag();
};
break;
case specialContainer_mc.polaris_btn:
if (polarisAvailability == "sold"){
collideWithTarget(btn);
_arg1.target.stopDrag();
};
break;
case specialContainer_mc.earthShaker_btn:
if (earthShakerAvailability == "sold"){
collideWithTarget(btn);
_arg1.target.stopDrag();
};
break;
case specialContainer_mc.homing_btn:
if (homingAvailability == "sold"){
collideWithTarget(btn);
_arg1.target.stopDrag();
};
break;
};
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.CLICK, klik);
btn.addEventListener(MouseEvent.MOUSE_DOWN, drag);
btn.addEventListener(MouseEvent.MOUSE_UP, drop);
}
public function playMissileRelease2Snd(){
missileRelease2Snd.play();
}
public function playUserPrompt2Snd(){
userPrompt2Snd.play();
}
public function attEnemy10(_arg1:Number, _arg2:Number){
var _local3:Enemy10 = new Enemy10(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy11(_arg1:Number, _arg2:Number){
var _local3:Enemy11 = new Enemy11(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy12(_arg1:Number, _arg2:Number){
var _local3:Enemy12 = new Enemy12(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy13(_arg1:Number, _arg2:Number){
var _local3:Enemy13 = new Enemy13(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy15(_arg1:Number, _arg2:Number){
var _local3:Enemy15 = new Enemy15(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy14(_arg1:Number, _arg2:Number){
var _local3:Enemy14 = new Enemy14(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy16(){
var _local4:Enemy16;
var _local1:Number = randomGenerator(800, 900);
var _local2:Number = 0;
var _local3:Number = 0;
while (_local3 < 8) {
_local2 = (_local2 + 40);
_local4 = new Enemy16(_local1, _local2);
_local4.main = this;
levelContainer_mc.addChild(_local4);
enemyArray.push(_local4);
_local3++;
};
}
public function fogLink(_arg1:MouseEvent){
FogAPI.Tracking.GotoURL("http://www.freeonlinegames.com/tag/Shooting_Games");
}
public function attEnemyAmmo2(_arg1:MovieClip, _arg2:Number){
var _local3:EnemyAmmo2 = new EnemyAmmo2(_arg1.x, _arg1.y, _arg2);
levelContainer_mc.addChild(_local3);
enemyAmmo2Array.push(_local3);
}
public function screenShake(){
Earthquake.go(this, 10, 0.5);
}
public function attEnemyAmmo3(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:MovieClip, _arg5:Number){
var _local6:EnemyAmmo3 = new EnemyAmmo3(_arg1, _arg2, _arg3, _arg4);
levelContainer_mc.addChild(_local6);
enemyArray.push(_local6);
}
public function resetEarthShaker(_arg1:TimerEvent){
earthShakerXpos = 200;
earthShakeTmrObj.reset();
}
public function backToHowTo(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
};
mout = function (_arg1:MouseEvent){
};
mclck = function (_arg1:MouseEvent){
Tweener.addTween(v1_mc, {y:-259.9, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v2_mc, {y:-259.9, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v3_mc, {y:-259.9, time:0.5, transition:"easeInStrong"});
Tweener.addTween(vSelectionBG_mc, {y:800, time:0.5, transition:"easeInStrong"});
Tweener.addTween(backToHowTo_btn, {y:474, time:0.5, transition:"easeInStrong"});
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function looper(_arg1:Event){
var _local2:Number;
if (gameState == "start"){
if ((((level == 1)) && ((levelComplete == false)))){
if ((((((wave_lvl1 >= waveMax_lvl1)) && ((enemyArray.length == 0)))) && ((bossArray.length == 0)))){
trace("Game OVER 1");
updateLevel();
};
};
if ((((level == 2)) && ((levelComplete == false)))){
if ((((((wave_lvl2 >= waveMax_lvl2)) && ((enemyArray.length == 0)))) && ((bossArray.length == 0)))){
trace("Game OVER 2------");
updateLevel();
};
};
if ((((level == 3)) && ((levelComplete == false)))){
if ((((((wave_lvl3 >= waveMax_lvl3)) && ((enemyArray.length == 0)))) && ((bossArray.length == 0)))){
trace("Game OVER 3");
updateLevel();
};
};
if ((((level == 4)) && ((levelComplete == false)))){
if ((((((wave_lvl4 >= waveMax_lvl4)) && ((enemyArray.length == 0)))) && ((bossArray.length == 0)))){
trace("Game OVER 4");
updateLevel();
};
};
if ((((level == 5)) && ((levelComplete == false)))){
if ((((((wave_lvl5 >= waveMax_lvl5)) && ((enemyArray.length == 0)))) && ((bossArray.length == 0)))){
trace("Game OVER 5");
updateLevel();
};
};
if ((((level == 6)) && ((levelComplete == false)))){
if ((((((wave_lvl6 >= waveMax_lvl6)) && ((enemyArray.length == 0)))) && ((bossArray.length == 0)))){
trace("Game OVER 6");
updateLevel();
};
};
if ((((level == 7)) && ((levelComplete == false)))){
if ((((((wave_lvl7 >= waveMax_lvl7)) && ((enemyArray.length == 0)))) && ((bossArray.length == 0)))){
trace("Game OVER 7");
updateLevel();
};
};
instanceLooper(playerAmmo1Array);
instanceLooper(playerAmmo2Array);
instanceLooper(playerAmmo3Array);
instanceLooper(playerAmmo4Array);
instanceLooper(playerV1Special1Array);
instanceLooper(playerV1Special2Array);
instanceLooper(playerV2Special1Array);
instanceLooper(playerV2Special2Array);
instanceLooper(playerV3Special1Array);
instanceLooper(playerSpecial1aArray);
instanceLooper(playerSpecial1bArray);
instanceLooper(playerSpecial2aArray);
instanceLooper(playerSpecial3aArray);
instanceLooper(playerSpecial3bArray);
instanceLooper(playerSpecial4Array);
instanceLooper(enemyArray);
instanceLooper(bossArray);
instanceLooper(enemyAmmo1Array);
instanceLooper(enemyAmmo2Array);
instanceLooper(enemyAmmo3Array);
instanceLooper(moneyArray);
instanceLooper(smokeArray);
instanceLooper(powerUpArray);
checkHit(playerAmmo1Array, enemyArray, 2);
checkHit(playerAmmo2Array, enemyArray, 0.1);
checkHit(playerAmmo3Array, enemyArray, 0.1);
checkHit(playerAmmo4Array, enemyArray, 1);
checkHit(playerV1Special2Array, enemyArray, 2);
checkHit(playerV2Special2Array, enemyArray, 2);
checkHit(playerV3Special1Array, enemyArray, 1);
checkHit(playerSpecial1bArray, enemyArray, 1);
checkHit(playerSpecial2aArray, enemyArray, 1);
checkHit(playerSpecial3aArray, enemyArray, 1);
checkHit(playerSpecial3bArray, enemyArray, 1);
checkHit(playerSpecial4Array, enemyArray, 1);
checkHit(playerAmmo1Array, bossArray, 1);
checkHit(playerAmmo2Array, bossArray, 1);
checkHit(playerAmmo3Array, bossArray, 1);
checkHit(playerAmmo4Array, bossArray, 1);
checkHit(playerV1Special2Array, bossArray, 1);
checkHit(playerV2Special2Array, bossArray, 1);
checkHit(playerV3Special1Array, bossArray, 1);
checkHit(playerSpecial1aArray, bossArray, 1);
checkHit(playerSpecial1bArray, bossArray, 1);
checkHit(playerSpecial2aArray, bossArray, 1);
checkHit(playerSpecial3bArray, bossArray, 1);
checkHit(playerSpecial4Array, bossArray, 1);
pCheckHit(enemyArray, 15);
pCheckHit(bossArray, 1);
pCheckHit(enemyAmmo1Array, 15);
pCheckHit(enemyAmmo2Array, 15);
pCheckHit(enemyAmmo3Array, 15);
if (dead == "false"){
levelContainer_mc.player_mc.x = ((mouseFollowSpeed * (levelContainer_mc.player_mc.x - mouseX)) + mouseX);
levelContainer_mc.player_mc.y = ((mouseFollowSpeed * (levelContainer_mc.player_mc.y - mouseY)) + mouseY);
};
if (fireWeapon == "open"){
if (dead == "false"){
attPlayerAmmo1();
if (gun2Availability == "sold"){
attPlayerAmmo2a();
};
if (gun3Availability == "sold"){
attPlayerAmmo2b();
};
if (gun4Availability == "sold"){
attPlayerAmmo3a();
};
if (gun5Availability == "sold"){
attPlayerAmmo3b();
};
if (missileAvailability == "sold"){
attPlayerAmmo4();
};
};
};
scroller(ground1a_mc, ground1b_mc, ground1c_mc, 10);
scroller(ground2a_mc, ground2b_mc, ground2c_mc, 8);
scroller(ground3a_mc, ground3b_mc, ground3c_mc, 6);
scroller(layer1a, layer1b, layer1c, 4);
scroller(layer2a, layer2b, layer2c, 2);
if (dead == "false"){
_local2 = 75;
if (levelContainer_mc.player_mc.x <= ((levelContainer_mc.player_mc.width / 2) + _local2)){
levelContainer_mc.player_mc.x = ((levelContainer_mc.player_mc.width / 2) + _local2);
};
if (levelContainer_mc.player_mc.y <= (levelContainer_mc.player_mc.height / 2)){
levelContainer_mc.player_mc.y = (levelContainer_mc.player_mc.height / 2);
};
if (levelContainer_mc.player_mc.x >= (700 - (levelContainer_mc.player_mc.width / 2))){
levelContainer_mc.player_mc.x = (700 - (levelContainer_mc.player_mc.width / 2));
};
if (levelContainer_mc.player_mc.y >= (400 - (levelContainer_mc.player_mc.height / 2))){
levelContainer_mc.player_mc.y = (400 - (levelContainer_mc.player_mc.height / 2));
};
};
if (V3SpecialActivated == "yes"){
attPlayerV3Special1();
};
switch (level){
case 1:
levelLength_mc.bar_mc.scaleX = (wave_lvl1 / waveMax_lvl1);
break;
case 2:
levelLength_mc.bar_mc.scaleX = (wave_lvl2 / waveMax_lvl2);
break;
case 3:
levelLength_mc.bar_mc.scaleX = (wave_lvl3 / waveMax_lvl3);
break;
case 4:
levelLength_mc.bar_mc.scaleX = (wave_lvl4 / waveMax_lvl4);
break;
case 5:
levelLength_mc.bar_mc.scaleX = (wave_lvl5 / waveMax_lvl5);
break;
case 6:
levelLength_mc.bar_mc.scaleX = (wave_lvl6 / waveMax_lvl6);
break;
case 7:
levelLength_mc.bar_mc.scaleX = (wave_lvl7 / waveMax_lvl7);
break;
};
levelLength_mc.icon_mc.x = (levelLength_mc.bar_mc.x + levelLength_mc.bar_mc.width);
if (levelLength_mc.bar_mc.scaleX >= 1){
levelLength_mc.bar_mc.scaleX = 1;
};
lifebar_mc.bar_mc.scaleX = (lifeNum / lifeDenom);
if (lifeNum <= 0){
if ((((repairAvailability == "sold")) && ((repairUsed == "no")))){
attPlackard("health");
lifeNum = (lifeDenom * 0.5);
healthRepairUI_mc.gotoAndStop(1);
repairUsed = "yes";
} else {
if (dead == "false"){
attExplosion(levelContainer_mc.player_mc);
levelContainer_mc.player_mc.x = -1000;
dead = "true";
toPostLevelTimer.start();
};
lifeNum = 0;
};
};
levelKills_txt.text = String(("Kills: " + kills_level));
killsAwards();
};
this.setChildIndex(pauseScreen_mc, (this.numChildren - 1));
}
public function playMissileRelease4Snd(){
missileRelease4Snd.play();
}
public function playUserPrompt4Snd(){
userPrompt4Snd.play();
}
public function toPostLevel(_arg1:TimerEvent){
playNonGameScreenSnd();
wave_lvl1 = 0;
wave_lvl2 = 0;
wave_lvl3 = 0;
wave_lvl4 = 0;
wave_lvl5 = 0;
wave_lvl6 = 0;
wave_lvl7 = 0;
waveTimer_lvl1.reset();
waveTimer_lvl2.reset();
waveTimer_lvl3.reset();
waveTimer_lvl4.reset();
waveTimer_lvl5.reset();
waveTimer_lvl6.reset();
waveTimer_lvl7.reset();
toPostCounter = 0;
stage.removeEventListener(Event.ENTER_FRAME, looper);
toPostLevelTimer.reset();
endLevelCleanUpArray(playerAmmo1Array);
endLevelCleanUpArray(playerAmmo2Array);
endLevelCleanUpArray(playerAmmo3Array);
endLevelCleanUpArray(playerAmmo4Array);
endLevelCleanUpArray(playerV1Special1Array);
endLevelCleanUpArray(playerV1Special2Array);
endLevelCleanUpArray(playerV2Special1Array);
endLevelCleanUpArray(playerV2Special2Array);
endLevelCleanUpArray(playerV3Special1Array);
endLevelCleanUpArray(playerSpecial1aArray);
endLevelCleanUpArray(playerSpecial1bArray);
endLevelCleanUpArray(playerSpecial2aArray);
endLevelCleanUpArray(playerSpecial3aArray);
endLevelCleanUpArray(playerSpecial3bArray);
endLevelCleanUpArray(playerSpecial4Array);
endLevelCleanUpArray(enemyArray);
endLevelCleanUpArray(bossArray);
endLevelCleanUpArray(enemyAmmo1Array);
endLevelCleanUpArray(enemyAmmo2Array);
endLevelCleanUpArray(enemyAmmo3Array);
endLevelCleanUpArray(explosionArray);
endLevelCleanUpArray(moneyArray);
endLevelCleanUpArray(enemyCrashArray);
endLevelCleanUpArray(powerUpArray);
endLevelCleanUpArray(smokeArray);
if (lifeNum > 0){
moneyOverall = (moneyOverall + money_level);
killsOverall = (killsOverall + kills_level);
pointsOverall = (pointsOverall + points_level);
level++;
if (level < 8){
stage.quality = "high";
gotoAndStop("postWin");
} else {
stage.quality = "high";
level = 7;
gotoAndStop("postFin");
};
Mouse.show();
} else {
money_level = Math.floor((money_level - (money_level * 0.5)));
moneyOverall = (moneyOverall + money_level);
killsOverall = (killsOverall + kills_level);
Mouse.show();
stage.quality = "high";
gotoAndStop("postLost");
};
saveToLSO();
}
public function attPlayerV3Special1(){
var _local1:PlayerV3Special1;
V3SpecialInventory--;
if (V3SpecialInventory > 0){
_local1 = new PlayerV3Special1(levelContainer_mc.player_mc.x, levelContainer_mc.player_mc.y, 0);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerV3Special1Array.push(_local1);
};
}
public function shootHoming(_arg1:TimerEvent){
var _local2:PlayerSpecial4 = new PlayerSpecial4(levelContainer_mc.player_mc);
_local2.main = this;
_local2.x = levelContainer_mc.player_mc.x;
_local2.y = levelContainer_mc.player_mc.y;
levelContainer_mc.addChild(_local2);
playerSpecial4Array.push(_local2);
}
public function killsAwards(){
if (fab_so.data.award9_so == undefined){
if (kills_level >= 10){
API.unlockMedal(award9_Name);
fab_so.data.award9_so = 2;
promptAchievement(award9_Name);
};
} else {
if (fab_so.data.award10_so == undefined){
if (kills_level >= 80){
API.unlockMedal(award10_Name);
fab_so.data.award10_so = 2;
promptAchievement(award10_Name);
};
} else {
if (fab_so.data.award11_so == undefined){
if (kills_level >= 100){
API.unlockMedal(String((award11_Name + 2)));
fab_so.data.award11_so = 3;
promptAchievement(award11_Name);
};
} else {
if (fab_so.data.award12_so == undefined){
if (kills_level >= 120){
API.unlockMedal(award12_Name);
fab_so.data.award12_so = 4;
promptAchievement(award12_Name);
};
} else {
if (fab_so.data.award13_so == undefined){
if (kills_level >= 140){
API.unlockMedal(award13_Name);
fab_so.data.award13_so = 5;
promptAchievement(award13_Name);
};
} else {
if (fab_so.data.award14_so == undefined){
if (kills_level >= 150){
API.unlockMedal(award14_Name);
fab_so.data.award14_so = 6;
promptAchievement(award14_Name);
};
} else {
if (fab_so.data.award15_so == undefined){
if (kills_level >= 160){
API.unlockMedal(award15_Name);
fab_so.data.award15_so = 2;
promptAchievement(award15_Name);
};
};
};
};
};
};
};
};
}
public function deployEnemy_Lvl1(_arg1:TimerEvent){
wave_lvl1++;
switch (wave_lvl1){
case 1:
attEnemy1(marker4()[0], marker4()[1]);
attEnemy1(marker7()[0], marker7()[1]);
attEnemy2(marker3()[0], marker1()[1]);
attEnemy2(marker12()[0], marker12()[1]);
break;
case 2:
attEnemy16();
attEnemy1(marker10()[0], marker10()[1]);
break;
case 3:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy1(marker12()[0], marker12()[1]);
break;
case 4:
attEnemy3(marker1()[0], marker1()[1]);
attEnemy3(marker10()[0], marker10()[1]);
break;
case 5:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy2(marker3()[0], marker1()[1]);
attEnemy2(marker12()[0], marker12()[1]);
break;
case 6:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 7:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy1(marker12()[0], marker12()[1]);
break;
case 8:
attEnemy1(marker4()[0], marker4()[1]);
attEnemy2(marker12()[0], marker12()[1]);
break;
case 9:
attHealth();
attEnemy2(marker4()[0], marker4()[1]);
attEnemy1(marker12()[0], marker12()[1]);
break;
case 10:
attEnemy1(marker4()[0], marker4()[1]);
attEnemy1(marker7()[0], marker7()[1]);
attEnemy2(marker3()[0], marker1()[1]);
attEnemy2(marker12()[0], marker12()[1]);
break;
case 11:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy1(marker3()[0], marker1()[1]);
attEnemy1(marker12()[0], marker12()[1]);
break;
case 12:
attEnemy16();
attEnemy1(marker4()[0], marker4()[1]);
attEnemy2(marker12()[0], marker12()[1]);
break;
case 13:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy1(marker12()[0], marker12()[1]);
break;
case 14:
attEnemy1(marker4()[0], marker4()[1]);
attEnemy2(marker12()[0], marker12()[1]);
break;
case 15:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy1(marker12()[0], marker12()[1]);
break;
case 16:
attEnemy1(marker4()[0], marker4()[1]);
attEnemy1(marker7()[0], marker7()[1]);
attEnemy2(marker3()[0], marker1()[1]);
attEnemy2(marker12()[0], marker12()[1]);
break;
case 17:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy1(marker12()[0], marker12()[1]);
break;
case 18:
attEnemy1(marker4()[0], marker4()[1]);
attEnemy2(marker12()[0], marker12()[1]);
attBoss1(845, 200);
break;
default:
break;
};
}
public function deployEnemy_Lvl2(_arg1:TimerEvent){
wave_lvl2++;
switch (wave_lvl2){
case 1:
attEnemy1(marker6()[0], marker6()[1]);
attEnemy1(marker9()[0], marker9()[1]);
attEnemy2(marker1()[0], marker1()[1]);
attEnemy2(marker10()[0], marker10()[1]);
break;
case 2:
attEnemy16();
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 3:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 4:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 5:
attEnemy1(marker6()[0], marker6()[1]);
attEnemy1(marker9()[0], marker9()[1]);
attEnemy2(marker1()[0], marker1()[1]);
attEnemy2(marker10()[0], marker10()[1]);
break;
case 6:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 7:
attEnemyAmmo2_carpetBombing();
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 8:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 9:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 10:
attEnemy1(marker6()[0], marker6()[1]);
attEnemy1(marker9()[0], marker9()[1]);
attEnemy2(marker1()[0], marker1()[1]);
attEnemy2(marker10()[0], marker10()[1]);
break;
case 11:
attEnemy16();
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 12:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 13:
attHealth();
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 14:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 15:
attEnemy1(marker6()[0], marker6()[1]);
attEnemy1(marker9()[0], marker9()[1]);
attEnemy2(marker1()[0], marker1()[1]);
attEnemy2(marker10()[0], marker10()[1]);
break;
case 16:
attEnemy16();
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 17:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 18:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 19:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 20:
attEnemy1(marker6()[0], marker6()[1]);
attEnemy1(marker9()[0], marker9()[1]);
attEnemy2(marker1()[0], marker1()[1]);
attEnemy2(marker10()[0], marker10()[1]);
break;
case 21:
attEnemy16();
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 22:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 23:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 24:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
break;
case 25:
attEnemy1(marker6()[0], marker6()[1]);
attEnemy1(marker9()[0], marker9()[1]);
attEnemy2(marker1()[0], marker1()[1]);
attEnemy2(marker10()[0], marker10()[1]);
break;
case 26:
attEnemy3(marker6()[0], marker6()[1]);
attEnemy3(marker9()[0], marker9()[1]);
attBoss2(845, 200);
break;
default:
break;
};
}
public function deployEnemy_Lvl5(_arg1:TimerEvent){
wave_lvl5++;
switch (wave_lvl5){
case 1:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 2:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 3:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 4:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 5:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 6:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 7:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 8:
attEnemyAmmo2_carpetBombing();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 9:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 10:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 11:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 12:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 13:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 14:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 15:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 16:
attSpecial();
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 17:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 18:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 19:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 20:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 21:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 22:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 23:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 24:
attHealth();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 25:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 26:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 27:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 28:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 29:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 30:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 31:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 32:
attSpecial();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 33:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 34:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 35:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 36:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 37:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 38:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 39:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 40:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 41:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 42:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 43:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 44:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 45:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy4(marker7()[0], marker7()[1]);
attEnemy5(marker3()[0], marker1()[1]);
attEnemy5(marker12()[0], marker12()[1]);
break;
case 46:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 47:
attEnemyAmmo2_carpetBombing();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 48:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attBoss5(845, 200);
break;
};
}
public function playNonGameScreenSnd(){
SoundMixer.stopAll();
nonGameScreenSnd.play(0, int.MAX_VALUE);
}
public function deployEnemy_Lvl7(_arg1:TimerEvent){
wave_lvl7++;
switch (wave_lvl7){
case 1:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 2:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 3:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 4:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 5:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 6:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 7:
attEnemy16();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 8:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 9:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 10:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 11:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 12:
attEnemyAmmo2_carpetBombing();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 13:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 14:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 15:
attSpecial();
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 16:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 17:
attEnemy16();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 18:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 19:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 20:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 21:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 22:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 23:
attEnemy16();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 24:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 25:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 26:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 27:
attEnemyAmmo2_carpetBombing();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 28:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 29:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 30:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 31:
attHealth();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 32:
attEnemy16();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 33:
attEnemy16();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 34:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 35:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 36:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 37:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 38:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 39:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 40:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 41:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 42:
attEnemy16();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 43:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 44:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 45:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 46:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 47:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 48:
attEnemyAmmo2_carpetBombing();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 49:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 50:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 51:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 52:
attSpecial();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 53:
attEnemy16();
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 54:
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 55:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 56:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 57:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 58:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 59:
attEnemy16();
attEnemy14(marker4()[0], marker4()[1]);
attEnemy15(marker7()[0], marker7()[1]);
break;
case 60:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy6(marker7()[0], marker7()[1]);
attEnemy7(marker3()[0], marker1()[1]);
attEnemy7(marker12()[0], marker12()[1]);
break;
case 61:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 62:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
attBoss7(845, 200);
break;
};
}
public function playBarrelSnd(){
barrelSnd.play();
}
public function deployEnemy_Lvl6(_arg1:TimerEvent){
wave_lvl6++;
switch (wave_lvl6){
case 1:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 2:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 3:
attEnemy16();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 4:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 5:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 6:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 7:
attEnemy16();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 8:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 9:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 10:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 11:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 12:
attEnemyAmmo2_carpetBombing();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 13:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 14:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 15:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 16:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 17:
attEnemy16();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 18:
attSpecial();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 19:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 20:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 21:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 22:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 23:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 24:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 25:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 26:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 27:
attEnemy16();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 28:
attHealth();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 29:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 30:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 31:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 32:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 33:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 34:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 35:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 36:
attSpecial();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 37:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 38:
attEnemy16();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 39:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 40:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 41:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 42:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 43:
attEnemy16();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 44:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 45:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 46:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 47:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 48:
attEnemy16();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 49:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 50:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 51:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 52:
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 53:
attEnemyAmmo2_carpetBombing();
attEnemy10(marker4()[0], marker4()[1]);
attEnemy11(marker7()[0], marker7()[1]);
break;
case 54:
attEnemy12(marker4()[0], marker4()[1]);
attEnemy13(marker7()[0], marker7()[1]);
break;
case 55:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
break;
case 56:
attEnemy5(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
attEnemy6(marker3()[0], marker1()[1]);
attEnemy6(marker12()[0], marker12()[1]);
attBoss6(845, 200);
break;
};
}
public function playExplodeSnd(){
explodeSnd.play();
}
public function deployEnemy_Lvl3(_arg1:TimerEvent){
wave_lvl3++;
switch (wave_lvl3){
case 1:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 2:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 3:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 4:
attEnemy16();
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 5:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 6:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 7:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 8:
attEnemy16();
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
break;
case 9:
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 10:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 11:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 12:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 13:
attEnemy16();
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
break;
case 14:
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 15:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 16:
attHealth();
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 17:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 18:
attEnemy16();
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
break;
case 19:
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 20:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 21:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 22:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 23:
attEnemy16();
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
break;
case 24:
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 25:
attEnemyAmmo2_carpetBombing();
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 26:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 27:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 28:
attEnemy16();
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
break;
case 29:
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 30:
attEnemy2(marker4()[0], marker4()[1]);
attEnemy2(marker7()[0], marker7()[1]);
attEnemy3(marker3()[0], marker1()[1]);
attEnemy3(marker12()[0], marker12()[1]);
break;
case 31:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 32:
attBoss3(845, 200);
break;
};
}
public function deployEnemy_Lvl4(_arg1:TimerEvent){
wave_lvl4++;
switch (wave_lvl4){
case 1:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 2:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 3:
attEnemy16();
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 4:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 5:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 6:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 7:
attEnemy16();
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 8:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 9:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 10:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 11:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 12:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 13:
attSpecial();
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 14:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 15:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 16:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 17:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 18:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 19:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 20:
attHealth();
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 21:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 22:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 23:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 24:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 25:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 26:
attSpecial();
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 27:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 28:
attEnemy16();
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 29:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 30:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 31:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 32:
attEnemyAmmo2_carpetBombing();
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 33:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 34:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 35:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
break;
case 36:
attEnemy4(marker4()[0], marker4()[1]);
attEnemy5(marker7()[0], marker7()[1]);
break;
case 37:
attEnemy6(marker4()[0], marker4()[1]);
attEnemy7(marker7()[0], marker7()[1]);
break;
case 38:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 39:
attEnemy8(marker4()[0], marker4()[1]);
attEnemy9(marker7()[0], marker7()[1]);
break;
case 40:
attEnemy3(marker4()[0], marker4()[1]);
attEnemy3(marker7()[0], marker7()[1]);
attEnemy4(marker3()[0], marker1()[1]);
attEnemy4(marker12()[0], marker12()[1]);
attBoss4(845, 200);
break;
};
}
public function marker1():Array{
var _local1:Array = new Array();
_local1[0] = marker1_mc.x;
_local1[1] = marker1_mc.y;
return (_local1);
}
public function marker2():Array{
var _local1:Array = new Array();
_local1[0] = marker2_mc.x;
_local1[1] = marker2_mc.y;
return (_local1);
}
public function marker3():Array{
var _local1:Array = new Array();
_local1[0] = marker3_mc.x;
_local1[1] = marker3_mc.y;
return (_local1);
}
public function marker4():Array{
var _local1:Array = new Array();
_local1[0] = marker4_mc.x;
_local1[1] = marker4_mc.y;
return (_local1);
}
public function marker5():Array{
var _local1:Array = new Array();
_local1[0] = marker5_mc.x;
_local1[1] = marker5_mc.y;
return (_local1);
}
public function marker6():Array{
var _local1:Array = new Array();
_local1[0] = marker6_mc.x;
_local1[1] = marker6_mc.y;
return (_local1);
}
public function marker7():Array{
var _local1:Array = new Array();
_local1[0] = marker7_mc.x;
_local1[1] = marker7_mc.y;
return (_local1);
}
public function marker9():Array{
var _local1:Array = new Array();
_local1[0] = marker9_mc.x;
_local1[1] = marker9_mc.y;
return (_local1);
}
public function playCoinSnd(){
coinSnd.play();
}
public function marker8():Array{
var _local1:Array = new Array();
_local1[0] = marker8_mc.x;
_local1[1] = marker8_mc.y;
return (_local1);
}
public function attSmoke(_arg1:MovieClip){
var _local2:Smoke = new Smoke();
_local2.main = this;
_local2.x = _arg1.x;
_local2.y = _arg1.y;
levelContainer_mc.addChild(_local2);
smokeArray.push(_local2);
}
public function attPlayerAmmo4(){
var _local1:PlayerAmmo4;
playerAmmo4Rof--;
if (playerAmmo4Rof <= 0){
_local1 = new PlayerAmmo4(levelContainer_mc.player_mc.x, levelContainer_mc.player_mc.y, randomGenerator(175, 185));
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerAmmo4Array.push(_local1);
playerAmmo4Rof = 10;
};
}
public function updateQualityAndMusicDisplay(){
if (musicCode == 1){
musicShow_txt.text = "[M] - MUSIC - OFF";
};
if (musicCode == 2){
musicShow_txt.text = "[M] - MUSIC - ON";
};
}
public function attPlayerAmmo1(){
var _local1:PlayerAmmo1;
playerAmmo1Rof--;
if (playerAmmo1Rof <= 0){
playBarrelSnd();
_local1 = new PlayerAmmo1(levelContainer_mc.player_mc.x, levelContainer_mc.player_mc.y, 0);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerAmmo1Array.push(_local1);
playerAmmo1Rof = 3;
};
}
public function attEnemy2(_arg1:Number, _arg2:Number){
var _local3:Enemy2 = new Enemy2(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy6(_arg1:Number, _arg2:Number){
var _local3:Enemy6 = new Enemy6(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy9(_arg1:Number, _arg2:Number){
var _local3:Enemy9 = new Enemy9(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy3(_arg1:Number, _arg2:Number){
var _local3:Enemy3 = new Enemy3(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attPlayerV2Special1(){
var _local1:PlayerV2Special1 = new PlayerV2Special1(levelContainer_mc.player_mc.x, levelContainer_mc.player_mc.y, 270);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerV2Special1Array.push(_local1);
}
public function mousePressed(_arg1:MouseEvent){
fireWeapon = "open";
}
public function attEnemy1(_arg1:Number, _arg2:Number){
var _local3:Enemy1 = new Enemy1(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy4(_arg1:Number, _arg2:Number){
var _local3:Enemy4 = new Enemy4(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function attEnemy7(_arg1:Number, _arg2:Number){
var _local3:Enemy7 = new Enemy7(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function eraseItemNameAndDescription(){
itemName_txt.text = "Item Name";
itemDesc_txt.text = "Item Description";
}
public function attPlayerV2Special2(){
var _local3:PlayerV2Special2;
var _local1:Number = 0;
var _local2:Number = 0;
while (_local2 < 50) {
_local1 = (_local1 + 50);
_local3 = new PlayerV2Special2(_local1, -50, randomGenerator(90, 100));
_local3.main = this;
levelContainer_mc.addChild(_local3);
playerV2Special2Array.push(_local3);
_local2++;
};
attPlayerV2Special2_secondLayer();
}
public function shootBushmaster(_arg1:TimerEvent){
var _local2:Number = randomGenerator(200, 600);
var _local3:PlayerSpecial1a = new PlayerSpecial1a(levelContainer_mc.player_mc.x, levelContainer_mc.player_mc.y, 0, _local2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
playerSpecial1aArray.push(_local3);
}
public function attEnemy8(_arg1:Number, _arg2:Number){
var _local3:Enemy8 = new Enemy8(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function marker11():Array{
var _local1:Array = new Array();
_local1[0] = marker11_mc.x;
_local1[1] = marker11_mc.y;
return (_local1);
}
public function marker12():Array{
var _local1:Array = new Array();
_local1[0] = marker12_mc.x;
_local1[1] = marker12_mc.y;
return (_local1);
}
public function acquireMagnet(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
switch (btn){
case magnet_btn:
itemNameAndDescription(magnetName, magnetDes);
break;
case repair_btn:
itemNameAndDescription(repairName, repairDes);
break;
};
};
mout = function (_arg1:MouseEvent){
eraseItemNameAndDescription();
};
mclck = function (_arg1:MouseEvent){
switch (btn){
case repair_btn:
if (repairAvailability == "available"){
trace((moneyOverall >= repairPrice));
if (moneyOverall >= repairPrice){
repairAvailability = "sold";
updateMoney(moneyOverall, repairPrice, repairPrice_txt);
};
};
break;
case magnet_btn:
if (magnetAvailability == "available"){
trace((moneyOverall >= magnetPrice));
if (moneyOverall >= magnetPrice){
magnetAvailability = "sold";
updateMoney(moneyOverall, magnetPrice, magnetPrice_txt);
};
};
};
saveToLSO();
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function attEnemy5(_arg1:Number, _arg2:Number){
var _local3:Enemy5 = new Enemy5(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
enemyArray.push(_local3);
}
public function marker10():Array{
var _local1:Array = new Array();
_local1[0] = marker10_mc.x;
_local1[1] = marker10_mc.y;
return (_local1);
}
public function attEnemyAmmo2_carpetBombing(){
var _local5:EnemyAmmo2;
var _local1:Number = 100;
var _local2:Number = -100;
var _local3:Number = -100;
var _local4:Number = 0;
while (_local4 < 10) {
_local1 = (_local1 + 80);
_local3 = randomGenerator(100, 120);
_local5 = new EnemyAmmo2(_local1, _local2, _local3);
_local5.spd = 5;
levelContainer_mc.addChild(_local5);
enemyAmmo2Array.push(_local5);
_local4++;
};
}
public function endLevelCleanUpArray(_arg1:Array){
var _local2:Number = (_arg1.length - 1);
while (_local2 >= 0) {
_arg1[_local2].destruct("");
_local2--;
};
}
public function toVehicleSelectionBtn(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
};
mout = function (_arg1:MouseEvent){
};
mclck = function (_arg1:MouseEvent){
Tweener.addTween(v1_mc, {y:200, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v2_mc, {y:200, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v3_mc, {y:200, time:0.5, transition:"easeInStrong"});
Tweener.addTween(vSelectionBG_mc, {y:200, time:0.5, transition:"easeInStrong"});
Tweener.addTween(backToHowTo_btn, {y:384, time:0.5, transition:"easeInStrong"});
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function acquireWeapons(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
switch (btn){
case gun1_btn:
itemNameAndDescription(gun1Name, gun1Des);
break;
case gun2_btn:
itemNameAndDescription(gun2Name, gun2Des);
break;
case gun3_btn:
itemNameAndDescription(gun3Name, gun3Des);
break;
case gun4_btn:
itemNameAndDescription(gun4Name, gun4Des);
break;
case gun5_btn:
itemNameAndDescription(gun5Name, gun5Des);
break;
case missile_btn:
itemNameAndDescription(missileName, missileDes);
break;
};
};
mout = function (_arg1:MouseEvent){
eraseItemNameAndDescription();
};
mclck = function (_arg1:MouseEvent){
switch (btn){
case gun1_btn:
break;
case gun2_btn:
if (gun2Availability == "available"){
trace((moneyOverall >= gun2Price));
if (moneyOverall >= gun2Price){
gun2Availability = "sold";
updateMoney(moneyOverall, gun2Price, gun2Price_txt);
};
};
break;
case gun3_btn:
if (gun3Availability == "available"){
trace((moneyOverall >= gun3Price));
if (moneyOverall >= gun3Price){
gun3Availability = "sold";
updateMoney(moneyOverall, gun3Price, gun3Price_txt);
};
};
break;
case gun4_btn:
if (gun4Availability == "available"){
trace((moneyOverall >= gun4Price));
if (moneyOverall >= gun4Price){
gun4Availability = "sold";
updateMoney(moneyOverall, gun4Price, gun4Price_txt);
};
};
break;
case gun5_btn:
if (gun5Availability == "available"){
trace((moneyOverall >= gun5Price));
if (moneyOverall >= gun5Price){
gun5Availability = "sold";
updateMoney(moneyOverall, gun5Price, gun5Price_txt);
};
};
break;
case missile_btn:
if (missileAvailability == "available"){
trace((moneyOverall >= missilePrice));
if (moneyOverall >= missilePrice){
missileAvailability = "sold";
updateMoney(moneyOverall, missilePrice, missilePrice_txt);
};
};
break;
};
saveToLSO();
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function initShop(){
initFader();
money_txt.text = String(("$" + moneyOverall));
gun2Price_txt.text = String(("$" + gun2Price));
gun3Price_txt.text = String(("$" + gun3Price));
gun4Price_txt.text = String(("$" + gun4Price));
gun5Price_txt.text = String(("$" + gun5Price));
missilePrice_txt.text = String(("$" + missilePrice));
magnetPrice_txt.text = String(("$" + magnetPrice));
repairPrice_txt.text = String(("$" + repairPrice));
bushmasterPrice_txt.text = String(("$" + bushmasterPrice));
polarisPrice_txt.text = String(("$" + polarisPrice));
earthShakerPrice_txt.text = String(("$" + earthShakerPrice));
homingPrice_txt.text = String(("$" + homingPrice));
gun2Name_txt.text = String(gun2Name);
gun3Name_txt.text = String(gun3Name);
gun4Name_txt.text = String(gun4Name);
gun5Name_txt.text = String(gun5Name);
missileName_txt.text = String(missileName);
magnetName_txt.text = String(magnetName);
repairName_txt.text = String(repairName);
bushmasterName_txt.text = String(bushmasterName);
polarisName_txt.text = String(polarisrName);
earthShakerName_txt.text = String(earthShakerName);
homingName_txt.text = String(homingName);
if (gun2Availability == "sold"){
itemIsSold(gun2Price_txt);
};
if (gun3Availability == "sold"){
itemIsSold(gun3Price_txt);
};
if (gun4Availability == "sold"){
itemIsSold(gun4Price_txt);
};
if (gun5Availability == "sold"){
itemIsSold(gun5Price_txt);
};
if (missileAvailability == "sold"){
itemIsSold(missilePrice_txt);
};
if (magnetAvailability == "sold"){
itemIsSold(magnetPrice_txt);
};
if (repairAvailability == "sold"){
itemIsSold(repairPrice_txt);
};
if (bushmasterAvailability == "sold"){
itemIsSold(bushmasterPrice_txt);
};
if (polarisAvailability == "sold"){
itemIsSold(polarisPrice_txt);
};
if (earthShakerAvailability == "sold"){
itemIsSold(earthShakerPrice_txt);
};
if (homingAvailability == "sold"){
itemIsSold(homingPrice_txt);
};
if (specialAttackArray[0] == bushmasterName){
placeSpecialToTarget(specialContainer_mc.bushmaster_btn, specialContainer_mc.target1_mc);
} else {
if (specialAttackArray[0] == polarisrName){
placeSpecialToTarget(specialContainer_mc.polaris_btn, specialContainer_mc.target1_mc);
} else {
if (specialAttackArray[0] == earthShakerName){
placeSpecialToTarget(specialContainer_mc.earthShaker_btn, specialContainer_mc.target1_mc);
} else {
if (specialAttackArray[0] == homingName){
placeSpecialToTarget(specialContainer_mc.homing_btn, specialContainer_mc.target1_mc);
};
};
};
};
if (specialAttackArray[1] == bushmasterName){
placeSpecialToTarget(specialContainer_mc.bushmaster_btn, specialContainer_mc.target2_mc);
} else {
if (specialAttackArray[1] == polarisrName){
placeSpecialToTarget(specialContainer_mc.polaris_btn, specialContainer_mc.target2_mc);
} else {
if (specialAttackArray[1] == earthShakerName){
placeSpecialToTarget(specialContainer_mc.earthShaker_btn, specialContainer_mc.target2_mc);
} else {
if (specialAttackArray[1] == homingName){
placeSpecialToTarget(specialContainer_mc.homing_btn, specialContainer_mc.target2_mc);
};
};
};
};
}
public function scroller(_arg1:MovieClip, _arg2:MovieClip, _arg3:MovieClip, _arg4:Number){
var _local5:Number = -690;
_arg1.x = (_arg1.x - _arg4);
_arg2.x = (_arg2.x - _arg4);
_arg3.x = (_arg3.x - _arg4);
if (_arg1.x <= _local5){
_arg1.x = ((_arg3.x + _arg3.width) - 5);
};
if (_arg2.x <= _local5){
_arg2.x = ((_arg1.x + _arg1.width) - 5);
};
if (_arg3.x <= _local5){
_arg3.x = ((_arg1.x + _arg1.width) - 5);
};
}
public function attBoss1(_arg1:Number, _arg2:Number){
playBossSnd();
var _local3:Boss1 = new Boss1(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
bossArray.push(_local3);
}
public function attBoss3(_arg1:Number, _arg2:Number){
playBossSnd();
var _local3:Boss3 = new Boss3(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
bossArray.push(_local3);
}
public function attBoss4(_arg1:Number, _arg2:Number){
playBossSnd();
var _local3:Boss4 = new Boss4(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
bossArray.push(_local3);
}
public function attBoss5(_arg1:Number, _arg2:Number){
playBossSnd();
var _local3:Boss5 = new Boss5(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
bossArray.push(_local3);
}
public function attBoss7(_arg1:Number, _arg2:Number){
playBossSnd();
var _local3:Boss7 = new Boss7(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
bossArray.push(_local3);
}
public function attBoss2(_arg1:Number, _arg2:Number){
playBossSnd();
var _local3:Boss2 = new Boss2(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
bossArray.push(_local3);
}
public function attBoss6(_arg1:Number, _arg2:Number){
playBossSnd();
var _local3:Boss6 = new Boss6(_arg1, _arg2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
bossArray.push(_local3);
}
public function attHealth(){
var _local1:Health = new Health();
_local1.x = randomGenerator(450, 600);
_local1.y = randomGenerator(-100, -50);
_local1.main = this;
levelContainer_mc.addChild(_local1);
powerUpArray.push(_local1);
}
function frame2(){
if ((((__setPropDict[__id0_] == undefined)) || (!((((int(__setPropDict[__id0_]) >= 1)) && ((int(__setPropDict[__id0_]) <= 2))))))){
__setPropDict[__id0_] = currentFrame;
__setProp___id0__preload_ng_0();
};
music = "on";
musicCode = 0;
qualityCode = 0;
gameStateCode = 0;
gamesScreenSnd = new GamesScreenSnd();
nonGameScreenSnd = new NonGameScreenSnd();
bossSnd = new BossSnd();
explosionSnd = new ExplosionSnd();
explodeSnd = new ExplodeSnd();
missileReleaseSnd = new MissileReleaseSnd();
missileRelease2Snd = new MissileRelease2Snd();
missileRelease3Snd = new MissileRelease3Snd();
missileRelease4Snd = new MissileRelease4Snd();
incomingMissileSnd = new IncomingMissileSnd();
userPrompt1Snd = new UserPrompt1Snd();
userPrompt2Snd = new UserPrompt2Snd();
userPrompt3Snd = new UserPrompt3Snd();
userPrompt4Snd = new UserPrompt4Snd();
barrelSnd = new BarrelSnd();
mouseOverSnd = new MouseOverSnd();
coinSnd = new CoinSnd();
awardSnd = new AwardSnd();
sonicWaveSnd = new SonicWaveSnd();
dropSnd = new DropSnd();
allowJayIsGame = true;
}
function frame3(){
stage.quality = "high";
playerAmmo1Array = new Array();
playerAmmo2Array = new Array();
playerAmmo3Array = new Array();
playerAmmo4Array = new Array();
playerV1Special1Array = new Array();
playerV1Special2Array = new Array();
playerV2Special1Array = new Array();
playerV2Special2Array = new Array();
playerV3Special1Array = new Array();
playerSpecial1aArray = new Array();
playerSpecial1bArray = new Array();
playerSpecial2aArray = new Array();
playerSpecial3aArray = new Array();
playerSpecial3bArray = new Array();
playerSpecial4Array = new Array();
enemyArray = new Array();
bossArray = new Array();
enemyAmmo1Array = new Array();
enemyAmmo2Array = new Array();
enemyAmmo3Array = new Array();
explosionArray = new Array();
moneyArray = new Array();
enemyCrashArray = new Array();
powerUpArray = new Array();
smokeArray = new Array();
mouseFollowSpeed = 0.9;
lifeDenom = 100;
lifeNum = lifeDenom;
dead = "false";
magnetRange = 0;
money_level = 0;
moneyOverall = 0;
kills_level = 0;
killsOverall = 0;
points_level = 0;
pointsOverall = 0;
keyIsPressed = "false";
gameState = "passive";
fireWeapon = "cease";
special1used = "no";
special2used = "no";
special3used = "no";
special4used = "no";
countCoins = 0;
specialAttackArray = ["1", "2"];
gun2Availability = "available";
gun3Availability = "available";
gun4Availability = "available";
gun5Availability = "available";
missileAvailability = "available";
magnetAvailability = "available";
repairAvailability = "available";
repairUsed = "no";
bushmasterAvailability = "available";
polarisAvailability = "available";
earthShakerAvailability = "available";
homingAvailability = "available";
levelComplete = false;
fab_so = SharedObject.getLocal("fabSavedData");
LSO_Checker();
bushmasterName = "Bushmaster";
polarisrName = "Polaris";
earthShakerName = "Earth Shaker";
homingName = "Homing ";
bushmasterDes = "Fires a high exploding rounds that contains tiny destructive pellets.";
polarisrDes = "This weapon contains dozens of two-stage solid-fuel nuclear-armed ballistic missile. Good for obliterating clusters of enemies.";
earthShakerDes = "An air-to-surface missile capable of destorying anything on its path.";
homingDes = "As the name suggests,A missile integrated with guidance system. ";
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
playerAmmo1Rof = 1;
ammo2Gap = 10;
playerAmmo2a_Rof = 1;
playerAmmo2b_Rof = 1;
ammo3Gap = 15;
playerAmmo3a_Rof = 1;
playerAmmo3b_Rof = 1;
playerAmmo4Rof = 1;
playerV1Special2Rof = 1;
V1SpecialActivated = "no";
V2SpecialActivated = "no";
V3SpecialInventory = 150;
V3SpecialActivated = "no";
fireBushmasterTmrObj = new Timer(100, 10);
fireBushmasterTmrObj.addEventListener(TimerEvent.TIMER, shootBushmaster);
fireBushmasterTmrObj.addEventListener(TimerEvent.TIMER_COMPLETE, resetBushmaster);
firePolarisTmrObj = new Timer(10, 75);
firePolarisTmrObj.addEventListener(TimerEvent.TIMER, shootPolaris);
firePolarisTmrObj.addEventListener(TimerEvent.TIMER_COMPLETE, resetPolaris);
earthShakeTmrObj = new Timer(10, 50);
earthShakeTmrObj.addEventListener(TimerEvent.TIMER, shootEarthShaker);
earthShakeTmrObj.addEventListener(TimerEvent.TIMER_COMPLETE, resetEarthShaker);
earthShakerXpos = 100;
fireHomingTmrObj = new Timer(100, 20);
fireHomingTmrObj.addEventListener(TimerEvent.TIMER, shootHoming);
fireHomingTmrObj.addEventListener(TimerEvent.TIMER_COMPLETE, resetHoming);
waveInterval = 3000;
wave_lvl1 = 0;
waveMax_lvl1 = 18;
waveTimer_lvl1 = new Timer(waveInterval, waveMax_lvl1);
waveTimer_lvl1.addEventListener(TimerEvent.TIMER, deployEnemy_Lvl1);
wave_lvl2 = 0;
waveMax_lvl2 = 26;
waveTimer_lvl2 = new Timer(waveInterval, waveMax_lvl2);
waveTimer_lvl2.addEventListener(TimerEvent.TIMER, deployEnemy_Lvl2);
wave_lvl3 = 0;
waveMax_lvl3 = 32;
waveTimer_lvl3 = new Timer(waveInterval, waveMax_lvl3);
waveTimer_lvl3.addEventListener(TimerEvent.TIMER, deployEnemy_Lvl3);
wave_lvl4 = 0;
waveMax_lvl4 = 40;
waveTimer_lvl4 = new Timer(waveInterval, waveMax_lvl4);
waveTimer_lvl4.addEventListener(TimerEvent.TIMER, deployEnemy_Lvl4);
wave_lvl5 = 0;
waveMax_lvl5 = 48;
waveTimer_lvl5 = new Timer(waveInterval, waveMax_lvl5);
waveTimer_lvl5.addEventListener(TimerEvent.TIMER, deployEnemy_Lvl5);
wave_lvl6 = 0;
waveMax_lvl6 = 56;
waveTimer_lvl6 = new Timer(waveInterval, waveMax_lvl6);
waveTimer_lvl6.addEventListener(TimerEvent.TIMER, deployEnemy_Lvl6);
wave_lvl7 = 0;
waveMax_lvl7 = 62;
waveTimer_lvl7 = new Timer(waveInterval, waveMax_lvl7);
waveTimer_lvl7.addEventListener(TimerEvent.TIMER, deployEnemy_Lvl7);
toPostCounter = 0;
toPostLevelTimer = new Timer(1000, 4);
toPostLevelTimer.addEventListener(TimerEvent.TIMER, toPostCount);
toPostLevelTimer.addEventListener(TimerEvent.TIMER_COMPLETE, toPostLevel);
award1_Name = "LAPU LAPU";
award2_Name = "BONIFACIO";
award3_Name = "RIZAL";
award4_Name = "MABINI";
award5_Name = "LUNA";
award6_Name = "LAKANDULA";
award7_Name = "DIEGO SILANG";
award8_Name = "DEL PILAR";
award9_Name = "JACINTO";
award10_Name = "FELIPE";
award11_Name = "JACINTO";
award12_Name = "GOMBURZA";
award13_Name = "PONCE";
award14_Name = "PIRA";
award15_Name = "EDSA";
award1Des = "Reaching Level 1";
award2Des = "Reaching Level 2";
award3Des = "Reaching Level 3";
award4Des = "Reaching Level 4";
award5Des = "Reaching Level 5";
award6Des = "Reaching Level 6";
award7Des = "Reaching Level 7";
award8Des = "Finishing The Game";
award9Des = "Killing 60 Enemies";
award10Des = "Killing 80 Enemies";
award11Des = "Killing 100 Enemies";
award12Des = "Killing 120 Enemies";
award13Des = "Killing 140 Enemies";
award14Des = "Killing 150 Enemies";
award15Des = "Killing 160 Enemies";
}
function frame5(){
stop();
initFader();
vehicleCode = 0;
updateQualityAndMusicDisplay();
navButtons(howToBack_btn, "title");
toVehicleSelectionBtn(howToNext_btn);
preSelectBtn(v1_mc);
preSelectBtn(v2_mc);
preSelectBtn(v3_mc);
preSelectBtn(vFinalSelection_mc);
backToVehicleSelectionBtn(backToSelectVehicle_btn);
backToHowTo(backToHowTo_btn);
}
function frame6(){
stop();
updateQualityAndMusicDisplay();
navButtons(prelevelBack_btn, "title");
toGameScreen(prelevelStart_btn);
gun2Price = 120;
gun3Price = 125;
gun4Price = 145;
gun5Price = 155;
missilePrice = 210;
magnetPrice = 200;
repairPrice = 150;
bushmasterPrice = 250;
polarisPrice = 270;
earthShakerPrice = 300;
homingPrice = 350;
gun1Name = "Mini Gun";
gun2Name = "M1919 ";
gun3Name = "FN_Minimi";
gun4Name = "M 60";
gun5Name = "Stoner";
missileName = "Missile";
magnetName = "Magnet";
repairName = "Repair Kit";
gun1Des = "With a high amount of damage and rate of fire. The Minigun is able to cut down enemies like a hot knife thorugh a butter.";
gun2Des = "This baby is capable of firing 50 caliber rounds, meaning extreme damage.";
gun3Des = "Deadly and automatic. The FN_Minimi is remowned for it durability.";
gun4Des = "Fast rate of fire and high damage make the M 60 a very dangerous support machine gun.";
gun5Des = "Fast and powerful. The Stoner is highly effective at pulverizing enemies.";
missileDes = "A supporting equipment that releases mini missiles.";
magnetDes = "Allows you to attract gems or coins. So you can focus more on killing your enemies.";
repairDes = "A state of the art nano-pack, Able to repair any damage to your vehicle using cutting edge nano technology.";
initShop();
acquireWeapons(gun1_btn);
acquireWeapons(gun2_btn);
acquireWeapons(gun3_btn);
acquireWeapons(gun4_btn);
acquireWeapons(gun5_btn);
acquireWeapons(missile_btn);
acquireMagnet(magnet_btn);
acquireMagnet(repair_btn);
acquireSpecials(specialContainer_mc.bushmaster_btn);
acquireSpecials(specialContainer_mc.polaris_btn);
acquireSpecials(specialContainer_mc.earthShaker_btn);
acquireSpecials(specialContainer_mc.homing_btn);
bushmaterOrigX = -115;
bushmaterOrigY = -60;
polarisOrigX = -35;
polarisOrigY = -60;
earthShakerOrigX = 45;
earthShakerOrigY = -60;
homingOrigX = 115;
homingOrigY = -60;
dragAndDrop(specialContainer_mc.bushmaster_btn);
dragAndDrop(specialContainer_mc.polaris_btn);
dragAndDrop(specialContainer_mc.earthShaker_btn);
dragAndDrop(specialContainer_mc.homing_btn);
moreGames_btn2.buttonMode = true;
moreGames_btn2.addEventListener(MouseEvent.CLICK, fogLink);
}
public function preSelectBtn(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
if (btn != vFinalSelection_mc){
btn.flash_mc.gotoAndPlay(2);
};
};
mout = function (_arg1:MouseEvent){
};
mclck = function (_arg1:MouseEvent){
var _local2:Number = 1.2;
if (btn == v1_mc){
playUserPrompt1Snd();
btn.flash_mc.gotoAndPlay(2);
vehicleCode = 1;
Tweener.addTween(v1_mc, {x:350, scaleX:_local2, scaleY:_local2, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v2_mc, {x:-750, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v3_mc, {x:1250, time:0.5, transition:"easeInStrong"});
vSelectionBG_mc.desc_txt.textColor = 52479;
vSelectionBG_mc.stats_txt.textColor = 52479;
vSelectionBG_mc.desc_txt.text = "The Harrier, informally referred to as the Jump Jet, is a family of British-designed military jet aircraft capable of Vertical/short takeoff and landing (V/STOL) via thrust vectoring. \n With all F-22 and F-14 destroyed during alien invasion. this could be the only suitable replacement for heavy aerial warfare.";
vSelectionBG_mc.stats_txt.text = "DURABILITY - 5 out of 5 \nAGILITY - 1 out of 5 \n\nEmergEncy Armament: Metal Storm";
vSelectionBG_mc.vehicleSpecialUIContainer_mc.gotoAndStop(2);
} else {
if (btn == v2_mc){
playUserPrompt1Snd();
btn.flash_mc.gotoAndPlay(2);
vehicleCode = 2;
Tweener.addTween(v2_mc, {x:350, scaleX:_local2, scaleY:_local2, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v1_mc, {x:-750, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v3_mc, {x:1250, time:0.5, transition:"easeInStrong"});
vSelectionBG_mc.desc_txt.textColor = 0x66CC00;
vSelectionBG_mc.stats_txt.textColor = 0x66CC00;
vSelectionBG_mc.desc_txt.text = "A four-blade, twin-engine attack helicopter with tailwheel-type landing gear arrangement. The Apache is adaptable to numerous different roles and has a customizable weapons loadout for the role desired.";
vSelectionBG_mc.stats_txt.text = "DURABILITY - 3 out of 5 \nAGILITY - 3 out of 5 \n\nEmergEncy Armament: Air Support";
vSelectionBG_mc.vehicleSpecialUIContainer_mc.gotoAndStop(3);
} else {
if (btn == v3_mc){
playUserPrompt1Snd();
btn.flash_mc.gotoAndPlay(2);
vehicleCode = 3;
Tweener.addTween(v3_mc, {x:350, scaleX:_local2, scaleY:_local2, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v2_mc, {x:-750, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v1_mc, {x:1250, time:0.5, transition:"easeInStrong"});
vSelectionBG_mc.desc_txt.textColor = 12123347;
vSelectionBG_mc.stats_txt.textColor = 12123347;
vSelectionBG_mc.desc_txt.text = "The Proto type Armor is comprised of chemically treated synthentic Mono-Crystalline Iron microplates linked into a similar way to skin cells. The Metal is resistant to heat, cold, various forms of natural and radioactive energy, acidic attacks, and most kinds of small and medium caliber firearm projectiles.";
vSelectionBG_mc.stats_txt.text = "DURABILITY - 1 out of 5 \nAGILITY - 5 out of 5 \n\nEmergEncy Armament: Sonic Wave Emmiter";
vSelectionBG_mc.vehicleSpecialUIContainer_mc.gotoAndStop(4);
} else {
if (btn == vFinalSelection_mc){
playUserPrompt2Snd();
gotoAndStop("prelevel");
};
};
};
};
Tweener.addTween(backToHowTo_btn, {y:474, time:0.5, transition:"easeInStrong"});
Tweener.addTween(backToSelectVehicle_btn, {y:384, time:0.5, transition:"easeInStrong"});
Tweener.addTween(vFinalSelection_mc, {y:378, time:0.5, transition:"easeInStrong"});
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
function frame1(){
if ((((__setPropDict[__id0_] == undefined)) || (!((((int(__setPropDict[__id0_]) >= 1)) && ((int(__setPropDict[__id0_]) <= 2))))))){
__setPropDict[__id0_] = currentFrame;
__setProp___id0__preload_ng_0();
};
stage.scaleMode = StageScaleMode.NO_SCALE;
FogAPI = new FogDevAPI({id:"4d89891b32780", root:root});
FogAPI.Preloader.Start(init);
FogAPI.Preloader.SetBackground(preloadBG_mc);
}
function frame4(){
stop();
if (allowJayIsGame == false){
jIsGame_mc.alpha = 0;
};
updateQualityAndMusicDisplay();
initTitle();
if (fab_so.data.gameDataExist != undefined){
specialForLoadNavButtons(loadGame_btn.hitBox_mc, "prelevel");
loadGame_btn.alpha = 1;
trace("game exist");
} else {
loadGame_btn.alpha = 0;
trace("game doesn't exist");
};
navButtons(awards_btn.hitBox_mc, "awards");
newGameBtn(newGame_btn.hitBox_mc, "howTo");
newGameBtn(newGamePrompt_mc.yes_btn.hitBox_mc, "howTo");
newGameBtn(newGamePrompt_mc.no_btn.hitBox_mc, "");
highScore_btn.buttonMode = true;
highScore_btn.GotoURL = FogAPI.Tracking.FGFYWURL;
highScore_btn.addEventListener(MouseEvent.CLICK, FogAPI.Tracking.Click);
moreGames_btn.buttonMode = true;
moreGames_btn.addEventListener(MouseEvent.CLICK, fogLink);
stage.addEventListener(Event.ENTER_FRAME, titleLooper);
}
function frame7(){
stop();
initGame();
}
function frame9(){
stop();
initGame();
}
function frame8(){
stop();
initGame();
}
public function attPlayerV1Special1(){
var _local4:PlayerV1Special1;
var _local1:Number = -600;
var _local2:Number = 0;
var _local3:Number = 0;
while (_local3 < 4) {
_local1 = (_local1 + 150);
_local2 = (_local2 + 20);
_local4 = new PlayerV1Special1(_local1, _local2, 0);
_local4.main = this;
levelContainer_mc.addChild(_local4);
playerV1Special1Array.push(_local4);
_local3++;
};
}
public function attPlayerV1Special2(_arg1:MovieClip){
var _local2:PlayerV1Special2;
playerV1Special2Rof--;
if (playerV1Special2Rof <= 0){
_local2 = new PlayerV1Special2(_arg1.x, _arg1.y, randomGenerator(40, 50));
_local2.main = this;
levelContainer_mc.addChild(_local2);
playerV1Special2Array.push(_local2);
playerV1Special2Rof = 3;
};
}
public function keyReleased(_arg1:KeyboardEvent){
keyIsPressed = "false";
}
public function keyPressed(_arg1:KeyboardEvent){
if (keyIsPressed == "false"){
if (_arg1.keyCode == 80){
if (levelComplete == false){
if ((((currentFrame >= 5)) && ((currentFrame <= 11)))){
gameStateCode++;
if (gameStateCode == 1){
switch (level){
case 1:
waveTimer_lvl1.stop();
break;
case 2:
waveTimer_lvl2.stop();
break;
case 3:
waveTimer_lvl3.stop();
break;
case 4:
waveTimer_lvl4.stop();
break;
case 5:
waveTimer_lvl5.stop();
break;
case 6:
waveTimer_lvl6.stop();
break;
case 7:
waveTimer_lvl7.stop();
break;
};
pauseScreen_mc.y = 200;
gameState = "passive";
Tweener.pauseAllTweens();
SoundMixer.soundTransform = new SoundTransform(0);
};
if (gameStateCode == 2){
switch (level){
case 1:
waveTimer_lvl1.start();
break;
case 2:
waveTimer_lvl2.start();
break;
case 3:
waveTimer_lvl3.start();
break;
case 4:
waveTimer_lvl4.start();
break;
case 5:
waveTimer_lvl5.start();
break;
case 6:
waveTimer_lvl6.start();
break;
case 7:
waveTimer_lvl7.start();
break;
};
pauseScreen_mc.y = -500;
gameState = "start";
Tweener.resumeAllTweens();
gameStateCode = 0;
if (musicShow_txt.text == "[ M ] - MUSIC - ON"){
SoundMixer.soundTransform = new SoundTransform(1);
};
};
};
};
};
if (_arg1.keyCode == 77){
musicCode++;
if (musicCode == 1){
SoundMixer.soundTransform = new SoundTransform(0);
musicShow_txt.text = "[ M ] - MUSIC - OFF";
};
if (musicCode == 2){
SoundMixer.soundTransform = new SoundTransform(1);
musicShow_txt.text = "[ M ] - MUSIC - ON";
musicCode = 0;
};
};
if (dead == "false"){
if (_arg1.keyCode == 32){
switch (vehicleCode){
case 1:
if (V1SpecialActivated == "no"){
attPlackard("metalstorm");
playMissileRelease4Snd();
vehicleSpecialUIContainer_mc.gotoAndStop(1);
attPlayerV2Special1();
V1SpecialActivated = "yes";
};
break;
case 2:
if (V2SpecialActivated == "no"){
attPlackard("aircav");
playIncomingMissileSnd();
vehicleSpecialUIContainer_mc.gotoAndStop(1);
attPlayerV1Special1();
V2SpecialActivated = "yes";
};
break;
case 3:
if (V3SpecialActivated == "no"){
attPlackard("sonicwave");
playSonicWaveSnd();
vehicleSpecialUIContainer_mc.gotoAndStop(1);
attPlayerV3Special1();
V3SpecialActivated = "yes";
};
break;
};
};
if (_arg1.keyCode == 49){
if ((((specialAttackArray[0] == bushmasterName)) && ((special1used == "no")))){
attPlackard("bushmaster");
fireBushmasterTmrObj.start();
specialUIContainer1_mc.gotoAndStop(1);
special1used = "yes";
} else {
if ((((specialAttackArray[0] == polarisrName)) && ((special2used == "no")))){
attPlackard("polaris");
playMissileRelease2Snd();
firePolarisTmrObj.start();
specialUIContainer1_mc.gotoAndStop(1);
special2used = "yes";
} else {
if ((((specialAttackArray[0] == earthShakerName)) && ((special3used == "no")))){
attPlackard("earthshaker");
playMissileRelease4Snd();
attPlayerSpecial3a();
specialUIContainer1_mc.gotoAndStop(1);
special3used = "yes";
} else {
if ((((specialAttackArray[0] == homingName)) && ((special4used == "no")))){
attPlackard("homing");
playMissileRelease4Snd();
fireHomingTmrObj.start();
specialUIContainer1_mc.gotoAndStop(1);
special4used = "yes";
};
};
};
};
};
if (_arg1.keyCode == 50){
if ((((specialAttackArray[1] == bushmasterName)) && ((special1used == "no")))){
attPlackard("bushmaster");
fireBushmasterTmrObj.start();
specialUIContainer2_mc.gotoAndStop(1);
special1used = "yes";
} else {
if ((((specialAttackArray[1] == polarisrName)) && ((special2used == "no")))){
attPlackard("polaris");
playMissileRelease2Snd();
firePolarisTmrObj.start();
specialUIContainer2_mc.gotoAndStop(1);
special2used = "yes";
} else {
if ((((specialAttackArray[1] == earthShakerName)) && ((special3used == "no")))){
attPlackard("earthshaker");
playMissileRelease4Snd();
attPlayerSpecial3a();
specialUIContainer2_mc.gotoAndStop(1);
special3used = "yes";
} else {
if ((((specialAttackArray[1] == homingName)) && ((special4used == "no")))){
attPlackard("homing");
playMissileRelease4Snd();
fireHomingTmrObj.start();
specialUIContainer2_mc.gotoAndStop(1);
special4used = "yes";
};
};
};
};
};
};
keyIsPressed = "true";
};
}
public function attCoin(_arg1:MovieClip){
var _local2:Number;
var _local4:Number;
var _local5:Number;
var _local6:Coin;
if ((((_arg1 is Enemy1)) || ((_arg1 is Enemy2)))){
_local2 = 4;
} else {
if ((((((((_arg1 is Enemy3)) || ((_arg1 is Enemy4)))) || ((_arg1 is Enemy5)))) || ((_arg1 is Enemy16)))){
_local2 = 6;
} else {
if ((((((_arg1 is Enemy6)) || ((_arg1 is Enemy7)))) || ((_arg1 is Enemy8)))){
_local2 = 8;
} else {
if ((((((((_arg1 is Enemy9)) || ((_arg1 is Enemy10)))) || ((_arg1 is Enemy11)))) || ((_arg1 is Enemy12)))){
_local2 = 10;
} else {
if ((((((_arg1 is Enemy13)) || ((_arg1 is Enemy14)))) || ((_arg1 is Enemy15)))){
_local2 = 15;
} else {
if ((_arg1 is Boss1)){
_local2 = 100;
} else {
if ((_arg1 is Boss2)){
_local2 = 120;
} else {
if ((_arg1 is Boss3)){
_local2 = 150;
} else {
if ((_arg1 is Boss4)){
_local2 = 175;
} else {
if ((_arg1 is Boss5)){
_local2 = 200;
} else {
if ((_arg1 is Boss6)){
_local2 = 250;
} else {
if ((_arg1 is Boss7)){
_local2 = 250;
};
};
};
};
};
};
};
};
};
};
};
};
var _local3:Number = 0;
while (_local3 < _local2) {
_local4 = (_arg1.x + randomGenerator(-50, 50));
_local5 = (_arg1.y + randomGenerator(-50, 50));
_local6 = new Coin(_local4, _local5, 180);
_local6.main = this;
levelContainer_mc.addChild(_local6);
moneyArray.push(_local6);
countCoins++;
_local3++;
};
}
public function playMissileReleaseSnd(){
missileReleaseSnd.play();
}
public function mouseReleased(_arg1:MouseEvent){
fireWeapon = "cease";
}
public function attBossExplosion(_arg1:MovieClip){
var bossExplosionTImer:Timer;
var attRapidExplosion:Function;
var stopRapidExplosion:Function;
var mc = _arg1;
attRapidExplosion = function (_arg1:TimerEvent){
playExplodeSnd();
var _local2:Explosion = new Explosion(mc);
_local2.x = (mc.x - randomGenerator(-20, 20));
_local2.y = (mc.y - randomGenerator(-20, 20));
_local2.rotation = randomGenerator(0, 360);
levelContainer_mc.addChild(_local2);
};
stopRapidExplosion = function (_arg1:TimerEvent){
bossExplosionTImer.reset();
bossExplosionTImer.removeEventListener(TimerEvent.TIMER, attRapidExplosion);
bossExplosionTImer.removeEventListener(TimerEvent.TIMER_COMPLETE, stopRapidExplosion);
};
bossExplosionTImer = new Timer(200, 8);
bossExplosionTImer.addEventListener(TimerEvent.TIMER, attRapidExplosion);
bossExplosionTImer.addEventListener(TimerEvent.TIMER_COMPLETE, stopRapidExplosion);
bossExplosionTImer.start();
}
public function init(_arg1:Event=null):void{
gotoAndPlay(2);
}
function __setProp___id0__preload_ng_0(){
try {
__id0_["componentInspectorSetting"] = true;
} catch(e:Error) {
};
__id0_.movieId = "17777:lZwlCyo1";
__id0_.debugMode = true;
__id0_.encryptionKey = "bADjPwFcDOzr3RzNOZHMSHPrOXYTqBYO";
__id0_.movieVersion = "";
__id0_.showConnectingPopup = true;
__id0_.useErrorPopup = true;
__id0_.useMedalPopup = true;
__id0_.useFakeSession = true;
try {
__id0_["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
public function playAwardSnd(){
awardSnd.play();
}
public function initGame(){
updateQualityAndMusicDisplay();
playGamesScreenSnd();
initFader();
levelAwards();
stage.quality = "low";
money_level = 0;
kills_level = 0;
points_level = 0;
levelComplete = false;
dead = "false";
special1used = "no";
special2used = "no";
special3used = "no";
special4used = "no";
repairUsed = "no";
V1SpecialActivated = "no";
V2SpecialActivated = "no";
V3SpecialActivated = "no";
playerV1Special2Rof = 1;
V1SpecialActivated = "no";
V2SpecialActivated = "no";
V3SpecialInventory = 150;
V3SpecialActivated = "no";
levelKills_txt.text = String(("Kills: " + kills_level));
levelContainer_mc.player_mc.vehicleSprite_mc.gotoAndStop(vehicleCode);
switch (vehicleCode){
case 1:
lifeDenom = 150;
lifeNum = lifeDenom;
mouseFollowSpeed = 0.9;
break;
case 2:
lifeDenom = 100;
lifeNum = lifeDenom;
mouseFollowSpeed = 0.8;
break;
case 3:
lifeDenom = 75;
lifeNum = lifeDenom;
mouseFollowSpeed = 0.7;
break;
};
if (vehicleCode == 1){
vehicleSpecialUIContainer_mc.gotoAndStop(2);
} else {
if (vehicleCode == 2){
vehicleSpecialUIContainer_mc.gotoAndStop(3);
} else {
if (vehicleCode == 3){
vehicleSpecialUIContainer_mc.gotoAndStop(4);
};
};
};
if (specialAttackArray[0] == bushmasterName){
specialUIContainer1_mc.gotoAndStop(2);
} else {
if (specialAttackArray[0] == polarisrName){
specialUIContainer1_mc.gotoAndStop(3);
} else {
if (specialAttackArray[0] == earthShakerName){
specialUIContainer1_mc.gotoAndStop(4);
} else {
if (specialAttackArray[0] == homingName){
specialUIContainer1_mc.gotoAndStop(5);
};
};
};
};
if (specialAttackArray[1] == bushmasterName){
specialUIContainer2_mc.gotoAndStop(2);
} else {
if (specialAttackArray[1] == polarisrName){
specialUIContainer2_mc.gotoAndStop(3);
} else {
if (specialAttackArray[1] == earthShakerName){
specialUIContainer2_mc.gotoAndStop(4);
} else {
if (specialAttackArray[1] == homingName){
specialUIContainer2_mc.gotoAndStop(5);
};
};
};
};
if (repairAvailability == "sold"){
healthRepairUI_mc.gotoAndStop(2);
};
if (magnetAvailability == "sold"){
magnetRange = 40;
};
gameState = "start";
stage.addEventListener(Event.ENTER_FRAME, looper);
switch (level){
case 1:
waveTimer_lvl1.start();
break;
case 2:
waveTimer_lvl2.start();
break;
case 3:
waveTimer_lvl3.start();
break;
case 4:
waveTimer_lvl4.start();
break;
case 5:
waveTimer_lvl5.start();
break;
case 6:
waveTimer_lvl6.start();
break;
case 7:
waveTimer_lvl7.start();
break;
};
}
public function playSonicWaveSnd(){
sonicWaveSnd.play();
}
public function backToVehicleSelectionBtn(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
};
mout = function (_arg1:MouseEvent){
};
mclck = function (_arg1:MouseEvent){
var _local2:Number = 1;
Tweener.addTween(v1_mc, {x:115, y:200, scaleX:_local2, scaleY:_local2, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v2_mc, {x:350, y:200, scaleX:_local2, scaleY:_local2, time:0.5, transition:"easeInStrong"});
Tweener.addTween(v3_mc, {x:585, y:200, scaleX:_local2, scaleY:_local2, time:0.5, transition:"easeInStrong"});
Tweener.addTween(vFinalSelection_mc, {y:524.9, time:0.5, transition:"easeInStrong"});
Tweener.addTween(backToHowTo_btn, {y:384, time:0.5, transition:"easeInStrong"});
Tweener.addTween(backToSelectVehicle_btn, {y:474.1, time:0.5, transition:"easeInStrong"});
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function playUserPrompt1Snd(){
userPrompt1Snd.play();
}
public function attExplosion(_arg1:MovieClip){
var _local2:Explosion = new Explosion(_arg1);
if ((((((((((((((((((((((((((((((((((((((((((((((((((_arg1 is Enemy1)) || ((_arg1 is Enemy2)))) || ((_arg1 is Enemy3)))) || ((_arg1 is Enemy4)))) || ((_arg1 is Enemy5)))) || ((_arg1 is Enemy6)))) || ((_arg1 is Enemy7)))) || ((_arg1 is Enemy8)))) || ((_arg1 is Enemy9)))) || ((_arg1 is Enemy10)))) || ((_arg1 is Enemy11)))) || ((_arg1 is Enemy12)))) || ((_arg1 is Enemy13)))) || ((_arg1 is Enemy14)))) || ((_arg1 is Enemy15)))) || ((_arg1 is Enemy16)))) || ((_arg1 is Boss1)))) || ((_arg1 is Boss2)))) || ((_arg1 is Boss3)))) || ((_arg1 is Boss4)))) || ((_arg1 is Boss5)))) || ((_arg1 is Boss6)))) || ((_arg1 is Boss7)))) || ((_arg1 is EnemyAmmo2)))) || ((_arg1 is EnemyAmmo3)))){
playExplodeSnd();
_local2.spd = 10;
} else {
playExplodeSnd();
_local2.spd = 25;
};
_local2.main = this;
levelContainer_mc.addChild(_local2);
explosionArray.push(_local2);
}
public function updateMoney(_arg1:Number, _arg2:Number, _arg3:TextField){
playUserPrompt3Snd();
moneyOverall = (_arg1 - _arg2);
money_txt.text = String(("" + moneyOverall));
_arg3.text = "SOLD";
_arg3.textColor = 0xFF0000;
}
public function itemNameAndDescription(_arg1:String, _arg2:String){
itemName_txt.text = _arg1;
itemDesc_txt.text = _arg2;
}
public function attPlayerSpecial6(){
lifeNum = lifeDenom;
}
public function acquireSpecials(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
switch (btn){
case specialContainer_mc.bushmaster_btn:
itemNameAndDescription(bushmasterName, bushmasterDes);
break;
case specialContainer_mc.polaris_btn:
itemNameAndDescription(polarisrName, polarisrDes);
break;
case specialContainer_mc.earthShaker_btn:
itemNameAndDescription(earthShakerName, earthShakerDes);
break;
case specialContainer_mc.homing_btn:
itemNameAndDescription(homingName, homingDes);
break;
};
};
mout = function (_arg1:MouseEvent){
eraseItemNameAndDescription();
};
mclck = function (_arg1:MouseEvent){
switch (btn){
case specialContainer_mc.repair_btn:
if (repairAvailability == "available"){
trace((moneyOverall >= repairPrice));
if (moneyOverall >= repairPrice){
repairAvailability = "sold";
updateMoney(moneyOverall, repairPrice, repairPrice_txt);
};
};
break;
case specialContainer_mc.bushmaster_btn:
if (bushmasterAvailability == "available"){
trace((moneyOverall >= bushmasterPrice));
if (moneyOverall >= bushmasterPrice){
bushmasterAvailability = "sold";
updateMoney(moneyOverall, bushmasterPrice, bushmasterPrice_txt);
};
};
break;
case specialContainer_mc.polaris_btn:
if (polarisAvailability == "available"){
trace((moneyOverall >= polarisPrice));
if (moneyOverall >= polarisPrice){
polarisAvailability = "sold";
updateMoney(moneyOverall, polarisPrice, polarisPrice_txt);
};
};
break;
case specialContainer_mc.earthShaker_btn:
if (earthShakerAvailability == "available"){
trace((moneyOverall >= earthShakerPrice));
if (moneyOverall >= earthShakerPrice){
earthShakerAvailability = "sold";
updateMoney(moneyOverall, earthShakerPrice, earthShakerPrice_txt);
};
};
break;
case specialContainer_mc.homing_btn:
if (homingAvailability == "available"){
trace((moneyOverall >= homingPrice));
if (moneyOverall >= homingPrice){
homingAvailability = "sold";
updateMoney(moneyOverall, homingPrice, homingPrice_txt);
};
};
break;
};
saveToLSO();
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function pCheckHit(_arg1:Array, _arg2:Number){
var _local3:Number = (_arg1.length - 1);
while (_local3 >= 0) {
if (levelContainer_mc.player_mc.hitBox_mc.hitTestObject(_arg1[_local3].hitBox_mc)){
attExplosion(levelContainer_mc.player_mc);
lifeNum = (lifeNum - _arg2);
screenShake();
redFlash_mc.gotoAndPlay(2);
points_level--;
if (_arg1 != bossArray){
_arg1[_local3].destruct("");
};
break;
};
_local3--;
};
}
public function LSO_Checker(){
if (fab_so.data.gameDataExist != undefined){
level = fab_so.data.level_so;
vehicleCode = fab_so.data.vehicleCode_so;
moneyOverall = fab_so.data.moneyOverall_so;
killsOverall = fab_so.data.killsOveralll_so;
pointsOverall = fab_so.data.pointsOveralll_so;
specialAttackArray = fab_so.data.specialAttackArray_so;
gun2Availability = fab_so.data.gun2Availability_so;
gun3Availability = fab_so.data.gun3Availability_so;
gun4Availability = fab_so.data.gun4Availability_so;
gun5Availability = fab_so.data.gun5Availability_so;
missileAvailability = fab_so.data.missileAvailability_so;
magnetAvailability = fab_so.data.magnetAvailability_so;
repairAvailability = fab_so.data.repairAvailability_so;
bushmasterAvailability = fab_so.data.bushmasterAvailability_so;
polarisAvailability = fab_so.data.polarisAvailability_so;
earthShakerAvailability = fab_so.data.earthShakerAvailability_so;
homingAvailability = fab_so.data.homingAvailability_so;
} else {
vehicleCode = 1;
level = 1;
lifeDenom = 100;
lifeNum = lifeDenom;
moneyOverall = 100;
killsOverall = 0;
pointsOverall = 100;
specialAttackArray = ["1", "2"];
gun2Availability = "available";
gun3Availability = "available";
gun4Availability = "available";
gun5Availability = "available";
missileAvailability = "available";
magnetAvailability = "available";
repairAvailability = "available";
bushmasterAvailability = "available";
polarisAvailability = "available";
earthShakerAvailability = "available";
homingAvailability = "available";
};
}
public function playMissileRelease3Snd(){
missileRelease3Snd.play();
}
public function itemIsSold(_arg1:TextField){
_arg1.text = "SOLD";
_arg1.textColor = 0xFF0000;
}
public function _setAwardsNameDesc(_arg1:MovieClip, _arg2:String, _arg3:String){
_arg1.name_txt.text = _arg2;
_arg1.desc_txt.text = _arg3;
switch (_arg1){
case award1_mc:
_arg1.icon_mc.gotoAndStop(1);
break;
case award2_mc:
_arg1.icon_mc.gotoAndStop(2);
break;
case award3_mc:
_arg1.icon_mc.gotoAndStop(3);
break;
case award4_mc:
_arg1.icon_mc.gotoAndStop(4);
break;
case award5_mc:
_arg1.icon_mc.gotoAndStop(5);
break;
case award6_mc:
_arg1.icon_mc.gotoAndStop(6);
break;
case award7_mc:
_arg1.icon_mc.gotoAndStop(7);
break;
case award8_mc:
_arg1.icon_mc.gotoAndStop(8);
break;
case award9_mc:
_arg1.icon_mc.gotoAndStop(9);
break;
case award10_mc:
_arg1.icon_mc.gotoAndStop(10);
break;
case award11_mc:
_arg1.icon_mc.gotoAndStop(11);
break;
case award12_mc:
_arg1.icon_mc.gotoAndStop(12);
break;
case award13_mc:
_arg1.icon_mc.gotoAndStop(13);
break;
case award14_mc:
_arg1.icon_mc.gotoAndStop(14);
break;
case award15_mc:
_arg1.icon_mc.gotoAndStop(15);
break;
};
}
public function playUserPrompt3Snd(){
trace("huhu");
userPrompt3Snd.play();
}
public function deleteLSO(){
delete fab_so.data.gameDataExist;
delete fab_so.data.vehicleCode_so;
delete fab_so.data.level_so;
delete fab_so.data.moneyOverall_so;
delete fab_so.data.killsOveralll_so;
delete fab_so.data.pointsOverall;
delete fab_so.data.specialAttackArray_so;
delete fab_so.data.gun2Availability_so;
delete fab_so.data.gun3Availability_so;
delete fab_so.data.gun4Availability_so;
delete fab_so.data.gun5Availability_so;
delete fab_so.data.missileAvailability_so;
delete fab_so.data.magnetAvailability_so;
delete fab_so.data.repairAvailability_so;
delete fab_so.data.bushmasterAvailability_so;
delete fab_so.data.polarisAvailability_so;
delete fab_so.data.earthShakerAvailability_so;
delete fab_so.data.homingAvailability_so;
}
public function playDropSnd(){
dropSnd.play();
}
public function specialArrayValueChecker(){
if (specialContainer_mc.target1_mc.hitTestObject(specialContainer_mc.bushmaster_btn)){
playDropSnd();
specialAttackArray[0] = bushmasterName;
} else {
if (specialContainer_mc.target1_mc.hitTestObject(specialContainer_mc.polaris_btn)){
playDropSnd();
specialAttackArray[0] = polarisrName;
} else {
if (specialContainer_mc.target1_mc.hitTestObject(specialContainer_mc.earthShaker_btn)){
playDropSnd();
specialAttackArray[0] = earthShakerName;
} else {
if (specialContainer_mc.target1_mc.hitTestObject(specialContainer_mc.homing_btn)){
playDropSnd();
specialAttackArray[0] = homingName;
} else {
specialAttackArray[0] = "1";
};
};
};
};
if (specialContainer_mc.target2_mc.hitTestObject(specialContainer_mc.bushmaster_btn)){
playDropSnd();
specialAttackArray[1] = bushmasterName;
} else {
if (specialContainer_mc.target2_mc.hitTestObject(specialContainer_mc.polaris_btn)){
playDropSnd();
specialAttackArray[1] = polarisrName;
} else {
if (specialContainer_mc.target2_mc.hitTestObject(specialContainer_mc.earthShaker_btn)){
playDropSnd();
specialAttackArray[1] = earthShakerName;
} else {
if (specialContainer_mc.target2_mc.hitTestObject(specialContainer_mc.homing_btn)){
playDropSnd();
specialAttackArray[1] = homingName;
} else {
specialAttackArray[1] = "2";
};
};
};
};
}
public function attPlayerSpecial3a(){
var _local1:PlayerSpecial3a = new PlayerSpecial3a(levelContainer_mc.player_mc.x, levelContainer_mc.player_mc.y, 0);
_local1.main = this;
levelContainer_mc.addChild(_local1);
playerSpecial3aArray.push(_local1);
}
public function initFader(){
fader_mc.gotoAndPlay(1);
}
public function levelAwards(){
if (fab_so.data.award1_so == undefined){
if (level == 1){
API.unlockMedal(award1_Name);
fab_so.data.award1_so = 1;
promptAchievement(award1_Name);
};
};
if (fab_so.data.award2_so == undefined){
if (level == 2){
API.unlockMedal(award2_Name);
fab_so.data.award2_so = 2;
promptAchievement(award2_Name);
};
};
if (fab_so.data.award3_so == undefined){
if (level == 3){
API.unlockMedal(award3_Name);
fab_so.data.award3_so = 3;
promptAchievement(award3_Name);
};
};
if (fab_so.data.award4_so == undefined){
if (level == 4){
API.unlockMedal(award4_Name);
fab_so.data.award4_so = 4;
promptAchievement(award4_Name);
};
};
if (fab_so.data.award5_so == undefined){
if (level == 5){
API.unlockMedal(award5_Name);
fab_so.data.award5_so = 5;
promptAchievement(award5_Name);
};
};
if (fab_so.data.award6_so == undefined){
if (level == 6){
API.unlockMedal(award6_Name);
fab_so.data.award6_so = 6;
promptAchievement(award6_Name);
};
};
if (fab_so.data.award7_so == undefined){
if (level == 7){
API.unlockMedal(award7_Name);
fab_so.data.award7_so = 2;
promptAchievement(award7_Name);
};
};
if (fab_so.data.award8_so == undefined){
if (currentFrame == 14){
API.unlockMedal(award8_Name);
fab_so.data.award8_so = 2;
promptAchievement(award8_Name);
};
};
}
public function attEnemyAmmo1_1(_arg1:MovieClip, _arg2:Number){
var _local3:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, _arg2);
levelContainer_mc.addChild(_local3);
enemyAmmo1Array.push(_local3);
}
public function attEnemyAmmo1_5(_arg1:MovieClip, _arg2:Number){
var _local3:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, _arg2);
levelContainer_mc.addChild(_local3);
enemyAmmo1Array.push(_local3);
var _local4:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, (_arg2 + 10));
levelContainer_mc.addChild(_local4);
enemyAmmo1Array.push(_local4);
var _local5:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, (_arg2 - 10));
levelContainer_mc.addChild(_local5);
enemyAmmo1Array.push(_local5);
var _local6:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, (_arg2 + 20));
levelContainer_mc.addChild(_local6);
enemyAmmo1Array.push(_local6);
var _local7:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, (_arg2 - 20));
levelContainer_mc.addChild(_local7);
enemyAmmo1Array.push(_local7);
}
public function attEnemyAmmo1_3(_arg1:MovieClip, _arg2:Number){
var _local3:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, _arg2);
levelContainer_mc.addChild(_local3);
enemyAmmo1Array.push(_local3);
var _local4:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, (_arg2 + 10));
levelContainer_mc.addChild(_local4);
enemyAmmo1Array.push(_local4);
var _local5:EnemyAmmo1 = new EnemyAmmo1(_arg1.x, _arg1.y, (_arg2 - 10));
levelContainer_mc.addChild(_local5);
enemyAmmo1Array.push(_local5);
}
public function titleLooper(_arg1:Event){
if (currentFrame == 2){
rotatingRays_mc.rotation = (rotatingRays_mc.rotation + 0.5);
} else {
stage.removeEventListener(Event.ENTER_FRAME, titleLooper);
};
}
public function attSpecial(){
}
public function initAwardsScreen(){
var _local1:Number = 0.2;
award1_mc.icon_mc.alpha = _local1;
award2_mc.icon_mc.alpha = _local1;
award3_mc.icon_mc.alpha = _local1;
award4_mc.icon_mc.alpha = _local1;
award5_mc.icon_mc.alpha = _local1;
award6_mc.icon_mc.alpha = _local1;
award7_mc.icon_mc.alpha = _local1;
award8_mc.icon_mc.alpha = _local1;
award9_mc.icon_mc.alpha = _local1;
award10_mc.icon_mc.alpha = _local1;
award11_mc.icon_mc.alpha = _local1;
award12_mc.icon_mc.alpha = _local1;
award13_mc.icon_mc.alpha = _local1;
award14_mc.icon_mc.alpha = _local1;
award15_mc.icon_mc.alpha = _local1;
if (fab_so.data.award1_so != undefined){
award1_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award2_so != undefined){
award2_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award3_so != undefined){
award3_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award4_so != undefined){
award4_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award5_so != undefined){
award5_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award6_so != undefined){
award6_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award7_so != undefined){
award7_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award8_so != undefined){
award8_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award9_so != undefined){
award9_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award10_so != undefined){
award10_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award11_so != undefined){
award11_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award12_so != undefined){
award12_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award13_so != undefined){
award13_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award14_so != undefined){
award14_mc.icon_mc.alpha = 1;
};
if (fab_so.data.award15_so != undefined){
award15_mc.icon_mc.alpha = 1;
};
}
public function awardLooper(_arg1:Event){
if (currentFrame == 15){
rotatingRays_mc.rotation = (rotatingRays_mc.rotation + 0.5);
} else {
stage.removeEventListener(Event.ENTER_FRAME, awardLooper);
};
}
public function promptAchievement(_arg1:String){
var _local2:Number;
switch (_arg1){
case award1_Name:
_local2 = 1;
break;
case award2_Name:
_local2 = 2;
break;
case award3_Name:
_local2 = 3;
break;
case award4_Name:
_local2 = 4;
break;
case award5_Name:
_local2 = 5;
break;
case award6_Name:
_local2 = 6;
break;
case award7_Name:
_local2 = 7;
break;
case award8_Name:
_local2 = 8;
break;
case award9_Name:
_local2 = 9;
break;
case award10_Name:
_local2 = 10;
break;
case award11_Name:
_local2 = 11;
break;
case award12_Name:
_local2 = 12;
break;
case award13_Name:
_local2 = 13;
break;
case award14_Name:
_local2 = 14;
break;
case award15_Name:
_local2 = 15;
break;
};
playAwardSnd();
var _local3:AwardPrompt = new AwardPrompt();
_local3.icon_mc.gotoAndStop(_local2);
_local3.x = 370;
_local3.y = -50;
levelContainer_mc.addChild(_local3);
}
public function initTitle(){
newGame_btn.y = -100;
loadGame_btn.y = -100;
highScore_btn.y = -100;
moreGames_btn.y = -100;
awards_btn.y = -100;
Tweener.addTween(newGame_btn, {y:200, time:0.8, transition:"easeOutElastic"});
Tweener.addTween(loadGame_btn, {y:250, time:1, transition:"easeOutElastic", delay:0.4});
Tweener.addTween(highScore_btn, {y:205, time:1.2, transition:"easeOutElastic", delay:0.8});
Tweener.addTween(moreGames_btn, {y:260, time:1.4, transition:"easeOutElastic", delay:0.12});
Tweener.addTween(awards_btn, {y:320, time:1.6, transition:"easeOutElastic", delay:0.16});
}
public function instanceLooper(_arg1:Array){
var _local2:Number = (_arg1.length - 1);
while (_local2 >= 0) {
_arg1[_local2].looper();
_local2--;
};
}
public function newGameBtn(_arg1:MovieClip, _arg2:String){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
var whereTo = _arg2;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
Tweener.addTween(btn.stars_mc, {x:-170, time:0.4, transition:"easeOutStrong"});
Tweener.addTween(btn.stars_mc, {alpha:1, time:0.4, transition:"easeOutStrong"});
};
mout = function (_arg1:MouseEvent){
Tweener.addTween(btn.stars_mc, {x:0, time:0.4, transition:"easeOutStrong"});
Tweener.addTween(btn.stars_mc, {alpha:0, time:0.4, transition:"easeOutStrong"});
};
mclck = function (_arg1:MouseEvent){
if (btn == newGame_btn.hitBox_mc){
trace("why");
if (fab_so.data.gameDataExist != undefined){
trace("data exist");
newGamePrompt_mc.x = 350;
newGamePrompt_mc.scaleX = 0;
newGamePrompt_mc.scaleY = 0;
Tweener.addTween(newGamePrompt_mc, {scaleX:1, scaleY:1, time:0.4, transition:"easeOutBack"});
} else {
playNonGameScreenSnd();
trace("no data exist");
LSO_Checker();
gotoAndStop(whereTo);
};
} else {
if (btn == newGamePrompt_mc.yes_btn.hitBox_mc){
playNonGameScreenSnd();
deleteLSO();
LSO_Checker();
gotoAndStop(whereTo);
} else {
if (btn == newGamePrompt_mc.no_btn.hitBox_mc){
Tweener.addTween(newGamePrompt_mc, {x:-420, time:0.4, transition:"easeOutStrong"});
} else {
gotoAndStop(whereTo);
};
};
};
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function postLostLooper(_arg1:Event){
if (currentFrame == 13){
postLostAnimationCounter++;
if (postLostAnimationCounter < 40){
killed_txt.text = String(randomGenerator(1000, 9000));
coins_txt.text = String(randomGenerator(1000, 9000));
points_txt.text = String(randomGenerator(1000, 9000));
} else {
if (postLostAnimationCounter < 60){
killed_txt.text = String(kills_level);
coins_txt.text = String(randomGenerator(1000, 9000));
points_txt.text = String(randomGenerator(1000, 9000));
} else {
if (postLostAnimationCounter < 80){
killed_txt.text = String(kills_level);
coins_txt.text = String(money_level);
points_txt.text = String(randomGenerator(1000, 9000));
} else {
if (postLostAnimationCounter < 100){
killed_txt.text = String(kills_level);
coins_txt.text = String(money_level);
points_txt.text = String(points_level);
};
};
};
};
rotatingRays_mc.rotation = (rotatingRays_mc.rotation + 0.5);
char_mc.eye1_mc.rotation = (char_mc.eye1_mc.rotation + 5);
char_mc.eye2_mc.rotation = (char_mc.eye2_mc.rotation + 5);
} else {
stage.removeEventListener(Event.ENTER_FRAME, postLostLooper);
};
}
public function playExplosionSnd(){
explosionSnd.play();
}
public function placeSpecialToTarget(_arg1:MovieClip, _arg2:MovieClip){
_arg1.x = _arg2.x;
_arg1.y = _arg2.y;
}
public function shootPolaris(_arg1:TimerEvent){
var _local2:Number = randomGenerator(290, 340);
var _local3:PlayerSpecial2a = new PlayerSpecial2a(levelContainer_mc.player_mc.x, levelContainer_mc.player_mc.y, _local2);
_local3.main = this;
levelContainer_mc.addChild(_local3);
playerSpecial2aArray.push(_local3);
}
public function saveToLSO(){
trace("LSO");
fab_so.data.gameDataExist = "true";
fab_so.data.vehicleCode_so = vehicleCode;
fab_so.data.level_so = level;
fab_so.data.moneyOverall_so = moneyOverall;
fab_so.data.killsOveralll_so = killsOverall;
fab_so.data.pointsOveralll_so = pointsOverall;
fab_so.data.specialAttackArray_so = specialAttackArray;
fab_so.data.gun2Availability_so = gun2Availability;
fab_so.data.gun3Availability_so = gun3Availability;
fab_so.data.gun4Availability_so = gun4Availability;
fab_so.data.gun5Availability_so = gun5Availability;
fab_so.data.missileAvailability_so = missileAvailability;
fab_so.data.magnetAvailability_so = magnetAvailability;
fab_so.data.repairAvailability_so = repairAvailability;
fab_so.data.bushmasterAvailability_so = bushmasterAvailability;
fab_so.data.polarisAvailability_so = polarisAvailability;
fab_so.data.earthShakerAvailability_so = earthShakerAvailability;
fab_so.data.homingAvailability_so = homingAvailability;
fab_so.flush();
}
public function toGameScreen(_arg1:MovieClip){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
movr = function (_arg1:MouseEvent){
playMouseOverSnd();
itemName_txt.text = "Next Level ----";
switch (level){
case 1:
itemDesc_txt.text = "One: Pampanga";
break;
case 2:
itemDesc_txt.text = "Two: Palawan";
break;
case 3:
itemDesc_txt.text = "Three: Aurora";
break;
case 4:
itemDesc_txt.text = "Four: Quezon";
break;
case 5:
itemDesc_txt.text = "Five: Tagaytay";
break;
case 6:
itemDesc_txt.text = "Six: Makati";
break;
case 7:
itemDesc_txt.text = "Seven: Pasay";
break;
};
};
mout = function (_arg1:MouseEvent){
if (currentFrame == 4){
itemName_txt.text = "Item Name";
itemDesc_txt.text = "Item Description";
};
};
mclck = function (_arg1:MouseEvent){
playUserPrompt4Snd();
gotoAndStop(String(("level" + level)));
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function specialForLoadNavButtons(_arg1:MovieClip, _arg2:String){
var movr:Function;
var mout:Function;
var mclck:Function;
var btn = _arg1;
var whereTo = _arg2;
movr = function (_arg1:MouseEvent){
};
mout = function (_arg1:MouseEvent){
};
mclck = function (_arg1:MouseEvent){
playNonGameScreenSnd();
gotoAndStop(whereTo);
};
btn.buttonMode = true;
btn.addEventListener(MouseEvent.MOUSE_OVER, movr);
btn.addEventListener(MouseEvent.MOUSE_OUT, mout);
btn.addEventListener(MouseEvent.CLICK, mclck);
}
public function attPlackard(_arg1:String){
var _local2:Plackard = new Plackard();
_local2.icon_mc.gotoAndStop(_arg1);
_local2.x = 350;
_local2.y = 450;
addChild(_local2);
}
public function playGamesScreenSnd(){
SoundMixer.stopAll();
gamesScreenSnd.play(0, int.MAX_VALUE);
}
}
}//package Fly_fla
Section 39
//mc_awardIcon_138 (Fly_fla.mc_awardIcon_138)
package Fly_fla {
import flash.display.*;
public dynamic class mc_awardIcon_138 extends MovieClip {
public function mc_awardIcon_138(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 40
//mc_b1flash_160 (Fly_fla.mc_b1flash_160)
package Fly_fla {
import flash.display.*;
public dynamic class mc_b1flash_160 extends MovieClip {
public function mc_b1flash_160(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 41
//mc_b2flash_162 (Fly_fla.mc_b2flash_162)
package Fly_fla {
import flash.display.*;
public dynamic class mc_b2flash_162 extends MovieClip {
public function mc_b2flash_162(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 42
//mc_b3flash_164 (Fly_fla.mc_b3flash_164)
package Fly_fla {
import flash.display.*;
public dynamic class mc_b3flash_164 extends MovieClip {
public function mc_b3flash_164(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 43
//mc_b4flash_166 (Fly_fla.mc_b4flash_166)
package Fly_fla {
import flash.display.*;
public dynamic class mc_b4flash_166 extends MovieClip {
public function mc_b4flash_166(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 44
//mc_b5flash_168 (Fly_fla.mc_b5flash_168)
package Fly_fla {
import flash.display.*;
public dynamic class mc_b5flash_168 extends MovieClip {
public function mc_b5flash_168(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 45
//mc_b6flash_170 (Fly_fla.mc_b6flash_170)
package Fly_fla {
import flash.display.*;
public dynamic class mc_b6flash_170 extends MovieClip {
public function mc_b6flash_170(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 46
//mc_b7flash_172 (Fly_fla.mc_b7flash_172)
package Fly_fla {
import flash.display.*;
public dynamic class mc_b7flash_172 extends MovieClip {
public function mc_b7flash_172(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 47
//mc_bulletSprite_149 (Fly_fla.mc_bulletSprite_149)
package Fly_fla {
import flash.display.*;
public dynamic class mc_bulletSprite_149 extends MovieClip {
public function mc_bulletSprite_149(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 48
//mc_coinAnimation_142 (Fly_fla.mc_coinAnimation_142)
package Fly_fla {
import flash.display.*;
public dynamic class mc_coinAnimation_142 extends MovieClip {
public function mc_coinAnimation_142(){
addFrameScript(159, frame160);
}
function frame160(){
stop();
trace("(=-)");
}
}
}//package Fly_fla
Section 49
//mc_e10flash_192 (Fly_fla.mc_e10flash_192)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e10flash_192 extends MovieClip {
public function mc_e10flash_192(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 50
//mc_e11flash_194 (Fly_fla.mc_e11flash_194)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e11flash_194 extends MovieClip {
public function mc_e11flash_194(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 51
//mc_e12flash_196 (Fly_fla.mc_e12flash_196)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e12flash_196 extends MovieClip {
public function mc_e12flash_196(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 52
//mc_e13flash_198 (Fly_fla.mc_e13flash_198)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e13flash_198 extends MovieClip {
public function mc_e13flash_198(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 53
//mc_e14flash_200 (Fly_fla.mc_e14flash_200)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e14flash_200 extends MovieClip {
public function mc_e14flash_200(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 54
//mc_e15flash_202 (Fly_fla.mc_e15flash_202)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e15flash_202 extends MovieClip {
public function mc_e15flash_202(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 55
//mc_e16flash_204 (Fly_fla.mc_e16flash_204)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e16flash_204 extends MovieClip {
public function mc_e16flash_204(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 56
//mc_e1flash_174 (Fly_fla.mc_e1flash_174)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e1flash_174 extends MovieClip {
public function mc_e1flash_174(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 57
//mc_e2flash_176 (Fly_fla.mc_e2flash_176)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e2flash_176 extends MovieClip {
public function mc_e2flash_176(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 58
//mc_e3flash_178 (Fly_fla.mc_e3flash_178)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e3flash_178 extends MovieClip {
public function mc_e3flash_178(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 59
//mc_e4flash_180 (Fly_fla.mc_e4flash_180)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e4flash_180 extends MovieClip {
public function mc_e4flash_180(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 60
//mc_e5flash_182 (Fly_fla.mc_e5flash_182)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e5flash_182 extends MovieClip {
public function mc_e5flash_182(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 61
//mc_e6flash_184 (Fly_fla.mc_e6flash_184)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e6flash_184 extends MovieClip {
public function mc_e6flash_184(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 62
//mc_e7flash_186 (Fly_fla.mc_e7flash_186)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e7flash_186 extends MovieClip {
public function mc_e7flash_186(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 63
//mc_e8flash_188 (Fly_fla.mc_e8flash_188)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e8flash_188 extends MovieClip {
public function mc_e8flash_188(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 64
//mc_e9flash_190 (Fly_fla.mc_e9flash_190)
package Fly_fla {
import flash.display.*;
public dynamic class mc_e9flash_190 extends MovieClip {
public function mc_e9flash_190(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 65
//mc_enemyAmmo3Flash_207 (Fly_fla.mc_enemyAmmo3Flash_207)
package Fly_fla {
import flash.display.*;
public dynamic class mc_enemyAmmo3Flash_207 extends MovieClip {
public function mc_enemyAmmo3Flash_207(){
addFrameScript(0, frame1, 5, frame6);
}
function frame6(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 66
//mc_fader_72 (Fly_fla.mc_fader_72)
package Fly_fla {
import flash.display.*;
public dynamic class mc_fader_72 extends MovieClip {
public function mc_fader_72(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package Fly_fla
Section 67
//mc_faderWithGraphicTitle_27 (Fly_fla.mc_faderWithGraphicTitle_27)
package Fly_fla {
import flash.display.*;
public dynamic class mc_faderWithGraphicTitle_27 extends MovieClip {
public function mc_faderWithGraphicTitle_27(){
addFrameScript(28, frame29);
}
function frame29(){
stop();
}
}
}//package Fly_fla
Section 68
//mc_pauseScreen_71 (Fly_fla.mc_pauseScreen_71)
package Fly_fla {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.accessibility.*;
import flash.text.*;
import flash.net.*;
import flash.media.*;
import flash.system.*;
import flash.errors.*;
import flash.filters.*;
import adobe.utils.*;
import flash.external.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class mc_pauseScreen_71 extends MovieClip {
public var moreGames_btn:MovieClip;
public function mc_pauseScreen_71(){
addFrameScript(0, frame1);
}
function frame1(){
moreGames_btn.buttonMode = true;
moreGames_btn.addEventListener(MouseEvent.CLICK, MovieClip(parent).fogLink);
}
}
}//package Fly_fla
Section 69
//mc_playerChar_59 (Fly_fla.mc_playerChar_59)
package Fly_fla {
import flash.display.*;
public dynamic class mc_playerChar_59 extends MovieClip {
public function mc_playerChar_59(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package Fly_fla
Section 70
//mc_redSplash_61 (Fly_fla.mc_redSplash_61)
package Fly_fla {
import flash.display.*;
public dynamic class mc_redSplash_61 extends MovieClip {
public function mc_redSplash_61(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 71
//mc_repairUIContainer_67 (Fly_fla.mc_repairUIContainer_67)
package Fly_fla {
import flash.display.*;
public dynamic class mc_repairUIContainer_67 extends MovieClip {
public function mc_repairUIContainer_67(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 72
//mc_specialUIContainer_66 (Fly_fla.mc_specialUIContainer_66)
package Fly_fla {
import flash.display.*;
public dynamic class mc_specialUIContainer_66 extends MovieClip {
public function mc_specialUIContainer_66(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 73
//mc_title_5 (Fly_fla.mc_title_5)
package Fly_fla {
import flash.display.*;
public dynamic class mc_title_5 extends MovieClip {
public function mc_title_5(){
addFrameScript(59, frame60);
}
function frame60(){
stop();
}
}
}//package Fly_fla
Section 74
//mc_vehicleSelectionFlash_22 (Fly_fla.mc_vehicleSelectionFlash_22)
package Fly_fla {
import flash.display.*;
public dynamic class mc_vehicleSelectionFlash_22 extends MovieClip {
public function mc_vehicleSelectionFlash_22(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 75
//mc_vehicleSpecialUIContainer_20 (Fly_fla.mc_vehicleSpecialUIContainer_20)
package Fly_fla {
import flash.display.*;
public dynamic class mc_vehicleSpecialUIContainer_20 extends MovieClip {
public function mc_vehicleSpecialUIContainer_20(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 76
//mc_whiteSplash_63 (Fly_fla.mc_whiteSplash_63)
package Fly_fla {
import flash.display.*;
public dynamic class mc_whiteSplash_63 extends MovieClip {
public function mc_whiteSplash_63(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
stop();
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package Fly_fla
Section 77
//LogoFly (fog.as3.assets.LogoFly)
package fog.as3.assets {
import flash.display.*;
import flash.events.*;
import fog.as3.*;
public dynamic class LogoFly extends MovieClip {
private var speed:Number;
private var targetY:Number;
private var LogoFlySprite:Class;
private var grow:Number;
private var targetX:Number;
private var fade:Boolean;
private var Core:FogDevAPI;
public function LogoFly(_arg1:FogDevAPI, _arg2:Number, _arg3:Number){
LogoFlySprite = LogoFly_LogoFlySprite;
super();
this.Core = _arg1;
this.x = _arg2;
this.y = _arg3;
this.scaleX = 0;
this.scaleY = 0;
this.alpha = 0;
this.speed = 100;
this.grow = (Math.random() / 100);
this.fade = false;
this.cacheAsBitmap = true;
this.gotoAndStop(((Math.random() * 10) + 1));
targetX = (Math.random() * 10);
targetY = 0;
if (targetX < 5){
targetX = (Math.random() * 10);
if (targetX < 5){
targetX = -100;
} else {
targetX = (_arg1.Width + 100);
};
targetY = (Math.random() * _arg1.Height);
} else {
targetY = (Math.random() * 10);
if (targetY < 5){
targetY = -100;
} else {
targetY = (_arg1.Height + 100);
};
};
targetX = (Math.random() * _arg1.Width);
var _local4:MovieClip = (new LogoFlySprite() as MovieClip);
(new LogoFlySprite() as MovieClip).x = -((_local4.width / 2));
_local4.y = -((_local4.height / 2));
_local4.cacheAsBitmap = true;
addChild(_local4);
addEventListener(Event.ADDED_TO_STAGE, onAddToStage);
}
private function onAddToStage(_arg1:Event):void{
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(_arg1:Event):void{
this.x = (this.x + (((this.targetX - this.x) / this.speed) * 0.5));
this.y = (this.y + (((this.targetY - this.y) / this.speed) * 0.5));
this.speed = (this.speed * 0.99);
this.scaleX = (this.scaleY = (this.scaleY + (this.grow * 2)));
if ((((this.alpha < 1)) && (!(this.fade)))){
this.alpha = (this.alpha + 0.01);
};
if ((((((((((this.x < -50)) || ((this.y < -50)))) || ((this.x > (this.Core.Width + 50))))) || ((this.y > (this.Core.Height + 50))))) || ((this.scaleX > 2)))){
this.fade = true;
};
if (this.fade){
this.alpha = (this.alpha - 0.05);
if (this.alpha <= 0){
this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
this.parent.removeChild(this);
};
};
}
}
}//package fog.as3.assets
Section 78
//LogoFly_LogoFlySprite (fog.as3.assets.LogoFly_LogoFlySprite)
package fog.as3.assets {
import flash.display.*;
import mx.core.*;
public class LogoFly_LogoFlySprite extends MovieClipAsset {
public var DisplayText:DisplayObject;
}
}//package fog.as3.assets
Section 79
//Debug (fog.as3.utils.Debug)
package fog.as3.utils {
public class Debug {
public static var Enabled:Boolean = true;
public static function log(_arg1, _arg2="", _arg3="", _arg4="", _arg5="", _arg6="", _arg7=""):void{
if (!Debug.Enabled){
return;
};
var _local9 = 1;
while (_local9 < arguments.length) {
_arg1 = (_arg1 + (" " + arguments[_local9]));
_local9++;
};
trace(_arg1);
}
}
}//package fog.as3.utils
Section 80
//FogDevAPI (fog.as3.FogDevAPI)
package fog.as3 {
import flash.display.*;
import flash.events.*;
import fog.as3.utils.*;
import flash.ui.*;
public class FogDevAPI extends MovieClip {
public var Height:int;
private var TestID:String;// = "4d4018e4964ac"
public var Game:Object;
public var Build:String;// = "0.15.0.0"
public var Preloader:FogDevPreloader;
public var Tracking:FogDevTracking;
public var ID:String;// = ""
public var Assets:FogDevAssets;
public var Width:int;
public var Sandbox:Boolean;// = false
public var Locked:Boolean;// = false
public var Clip:Object;
public var Version:String;// = "2.1"
public var Options:Object;
public function FogDevAPI(_arg1:Object){
var opt = _arg1;
Clip = new Object();
Options = new Object();
Game = new Object();
super();
var defaults:Object = {};
Options = parseOptions(opt, defaults);
Clip = Options.root;
Game.URL = "";
Game.Tag = "";
Game.Title = "";
Game.Related = new Array();
ID = (Options.id) ? Options.id : "";
Sandbox = (Options.sandbox) ? true : false;
if (ID == "YOUR_ID_HERE"){
ID = TestID;
};
if (!ID){
Locked = true;
};
Clip.stage.addChild(this);
Width = 700;
Height = 400;
this.Preloader = new FogDevPreloader(this);
this.Tracking = new FogDevTracking(this);
this.Assets = new FogDevAssets(this);
var ctxMenu:ContextMenu = new ContextMenu();
ctxMenu.hideBuiltInItems();
var ctx1:ContextMenuItem = new ContextMenuItem("Play More Games");
ctx1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function (_arg1:ContextMenuEvent):void{
Tracking.GotoURL();
});
var ctx2:ContextMenuItem = new ContextMenuItem("Free Games For Your Website");
ctx2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function (_arg1:ContextMenuEvent):void{
Tracking.GotoURL("http://www.freegamesforyourwebsite.com/");
});
var ctx3:ContextMenuItem = new ContextMenuItem("Copyright © Free Online Games");
ctx3.separatorBefore = true;
var ctx4:ContextMenuItem = new ContextMenuItem(("FOG API Version " + Version));
ctx4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function (_arg1:ContextMenuEvent):void{
Tracking.GotoURL(Tracking.DevURL);
});
ctxMenu.customItems.push(ctx1, ctx2, ctx3, ctx4);
Clip.contextMenu = ctxMenu;
Debug.log(" ");
Debug.log("- *", " ", (((("Welcome to FogDevAPI v" + this.Version) + " (Build ") + this.Build) + ")"));
Debug.log("- *", " ", "If you need assistance or examples for this API, please visit:");
Debug.log("- *", " ", "; http://www.marcqualie.com/projects/fogdev/");
Debug.log("- *");
Debug.log("- *", " ", "ID:", ID, (Sandbox) ? " (This Game is running in Sandbox Mode)" : "");
Debug.log("- *", " ", "Domain:", (((Tracking.Info.domain + " (") + (Tracking.isFogDomain()) ? "Internal" : "External") + ")"));
Debug.log("- *", " ", "Resolution:", Width, " x ", Height);
if (ID == TestID){
Debug.log(" ");
Debug.log("- *", " ", "=| This is a Demo ID. Please update your ID as soon as possible! |=");
};
}
public function debug(_arg1:String):void{
return (Debug.log(_arg1));
}
public function LibraryCall(_arg1:String, _arg2:Object){
var f = _arg1;
var o = _arg2;
try {
if (Tracking.Library[f]){
return (Tracking.Library[f](o));
} else {
trace((("> Library Error: " + f) + " function not found"));
};
} catch(e:Error) {
trace(("> Fatal Library Error: " + e.message));
};
}
private function parseOptions(_arg1:Object, _arg2:Object):Object{
var _local4:String;
var _local3:Object = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
return (_local3);
}
public function SiteLock():void{
Locked = true;
}
}
}//package fog.as3
Section 81
//FogDevAssets (fog.as3.FogDevAssets)
package fog.as3 {
import flash.display.*;
public class FogDevAssets extends MovieClip {
private var MiniLogoClass:Class;
private var Core:FogDevAPI;
public function FogDevAssets(_arg1:FogDevAPI){
MiniLogoClass = FogDevAssets_MiniLogoClass;
super();
Core = _arg1;
}
public function MiniLogo():MovieClip{
var _local1:MovieClip = (new MiniLogoClass() as MovieClip);
return (_local1);
}
}
}//package fog.as3
Section 82
//FogDevAssets_MiniLogoClass (fog.as3.FogDevAssets_MiniLogoClass)
package fog.as3 {
import flash.display.*;
import mx.core.*;
public class FogDevAssets_MiniLogoClass extends MovieClipAsset {
public var DisplayText:DisplayObject;
}
}//package fog.as3
Section 83
//FogDevPreloader (fog.as3.FogDevPreloader)
package fog.as3 {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import fog.as3.assets.*;
public class FogDevPreloader extends MovieClip {
public const VoiceOver:Class;
public const ProgressBar:Class;
public const ProgressText:Class;
public const LogoStill:Class;
public const PreloaderHolder:Class;
public const LogoSpin:Class;
public var IDE:String;
public var Percent:int;
public var PercentGame:Number;
public var ProgBar:MovieClip;
public var Duration:int;// = 5000
public var TimerStart:int;
public var Core:FogDevAPI;
public var PercentDura:Number;
public var PreloaderClip:MovieClip;
public var Logo2:MovieClip;
public var Density:int;// = 10
public var DurationWait:int;// = 5000
public var Logo:MovieClip;
public var Background:Sprite;
public var DurationFade:int;// = 1000
public var Button:MovieClip;
public var ProgText:MovieClip;
private var g:Graphics;
public var FadeSteps:int;// = 50
public var PreloaderSize:int;// = 0
public function FogDevPreloader(_arg1:FogDevAPI){
LogoSpin = FogDevPreloader_LogoSpin;
LogoStill = FogDevPreloader_LogoStill;
PreloaderHolder = FogDevPreloader_PreloaderHolder;
ProgressBar = FogDevPreloader_ProgressBar;
ProgressText = FogDevPreloader_ProgressText;
VoiceOver = FogDevPreloader_VoiceOver;
Background = new Sprite();
super();
Core = _arg1;
SetBackgroundColor(0);
}
public function SetBackground(_arg1:MovieClip):void{
Background.addChild(_arg1);
}
public function FadeOut():void{
var i:int;
setTimeout(Clean, 1000);
Core.dispatchEvent(new Event("loaded"));
if (DurationWait < 1){
return;
};
alpha = 1;
var l:int = FadeSteps;
while (i < l) {
setTimeout(function (_arg1:DisplayObject):void{
if (_arg1){
_arg1.alpha = (_arg1.alpha - (1 / FadeSteps));
};
}, ((DurationFade / FadeSteps) * i), this);
i = (i + 1);
};
}
private function Unload():void{
if (Core.Game.Disabled){
trace("> Game will never start! :)");
} else {
if (Core.Tracking.Library){
Core.Tracking.LibraryCall("LoadHandle", {});
} else {
FadeOut();
};
};
}
public function Clean(_arg1:Boolean=false):void{
Button.removeEventListener(MouseEvent.CLICK, Core.Tracking.Click);
var _local2:int;
while (_local2 < numChildren) {
removeChildAt(0);
_local2++;
};
Core.removeChild(this);
Core.dispatchEvent(new Event("cleaned"));
}
public function SpinLogo():void{
Logo2 = (new LogoSpin() as MovieClip);
Logo2.x = Logo.x;
Logo2.y = Logo.y;
addChild(Logo2);
Logo2.play();
removeChild(Logo);
swapChildren(Button, Logo2);
}
private function loadingBar(_arg1:Event):void{
var _local2:LogoFly;
if ((getTimer() % Math.round((root.stage.frameRate / Density))) === 0){
_local2 = new LogoFly(Core, (Core.Width / 2), (Core.Height / 2));
Background.addChild(_local2);
};
}
public function addObject(_arg1):void{
addChild(_arg1);
}
public function SetBackgroundColor(_arg1:int):void{
g = Background.graphics;
g.clear();
g.beginFill(_arg1);
g.drawRect(0, 0, Core.Width, Core.Height);
g.endFill();
}
public function Start(_arg1=null):void{
var F = _arg1;
if (typeof(F) == "function"){
Core.addEventListener("loaded", F);
} else {
Core.addEventListener("loaded", function (_arg1:Event):void{
Core.Clip.play();
});
};
TimerStart = getTimer();
Core.Tracking.Ping();
Core.addChild(this);
PreloaderSize = root.loaderInfo.bytesLoaded;
if (PreloaderSize == root.loaderInfo.bytesTotal){
PreloaderSize = 0;
};
addChild(Background);
Logo = (new LogoStill() as MovieClip);
Logo.x = (Core.Width / 2);
Logo.y = ((Core.Height / 2) - (Logo.height / 4));
addChild(Logo);
PreloaderClip = (new PreloaderHolder() as MovieClip);
PreloaderClip.x = Logo.x;
PreloaderClip.y = ((Logo.y + (Logo.height / 2)) + (PreloaderClip.height / 2));
addChild(PreloaderClip);
ProgBar = (new ProgressBar() as MovieClip);
ProgBar.x = -39;
ProgBar.y = -8.1;
PreloaderClip.addChild(ProgBar);
ProgText = (new ProgressText() as MovieClip);
ProgText.stop();
ProgText.x = -62.8;
ProgText.y = -14.1;
ProgText.width = 17.6;
ProgText.height = 21.1;
PreloaderClip.addChild(ProgText);
Button = new MovieClip();
Button.buttonMode = true;
g = Button.graphics;
g.beginFill(0);
g.drawRect(0, 0, Core.Width, Core.Height);
g.endFill();
Button.alpha = 0;
Button.GotoURL = Core.Tracking.HomeURL;
Button.addEventListener(MouseEvent.CLICK, Core.Tracking.Click);
addChild(Button);
if (DurationFade > Duration){
Duration = DurationFade;
};
Core.Clip.stop();
FadeIn();
stage.addEventListener(Event.ENTER_FRAME, showProgress);
}
private function showProgress(_arg1:Event):void{
PercentGame = Math.floor((((root.loaderInfo.bytesLoaded - PreloaderSize) / (root.loaderInfo.bytesTotal - PreloaderSize)) * 100));
PercentDura = Math.floor((((getTimer() - TimerStart) / Duration) * 100));
Percent = Math.round(Math.min(Math.min(PercentGame, PercentDura), 100));
ProgText.gotoAndStop((Percent + 1));
ProgBar.width = (Percent * 0.98);
if (Percent > 99){
stage.removeEventListener(Event.ENTER_FRAME, showProgress);
SpinLogo();
Wait();
};
loadingBar(_arg1);
}
private function Wait():void{
setTimeout(Unload, DurationWait);
}
private function FadeIn():void{
var i:int;
if (DurationFade < 1){
return;
};
alpha = 0;
var l:int = FadeSteps;
while (i < l) {
setTimeout(function (_arg1:DisplayObject):void{
if (_arg1){
_arg1.alpha = (_arg1.alpha + (1 / FadeSteps));
};
}, ((DurationFade / FadeSteps) * i), this);
i = (i + 1);
};
}
}
}//package fog.as3
Section 84
//FogDevPreloader_LogoSpin (fog.as3.FogDevPreloader_LogoSpin)
package fog.as3 {
import mx.core.*;
public class FogDevPreloader_LogoSpin extends MovieClipAsset {
}
}//package fog.as3
Section 85
//FogDevPreloader_LogoStill (fog.as3.FogDevPreloader_LogoStill)
package fog.as3 {
import mx.core.*;
public class FogDevPreloader_LogoStill extends MovieClipAsset {
}
}//package fog.as3
Section 86
//FogDevPreloader_PreloaderHolder (fog.as3.FogDevPreloader_PreloaderHolder)
package fog.as3 {
import flash.display.*;
import mx.core.*;
public class FogDevPreloader_PreloaderHolder extends MovieClipAsset {
public var DisplayText:DisplayObject;
}
}//package fog.as3
Section 87
//FogDevPreloader_ProgressBar (fog.as3.FogDevPreloader_ProgressBar)
package fog.as3 {
import mx.core.*;
public class FogDevPreloader_ProgressBar extends MovieClipAsset {
}
}//package fog.as3
Section 88
//FogDevPreloader_ProgressText (fog.as3.FogDevPreloader_ProgressText)
package fog.as3 {
import flash.display.*;
import mx.core.*;
public class FogDevPreloader_ProgressText extends MovieClipAsset {
public var DisplayText:DisplayObject;
}
}//package fog.as3
Section 89
//FogDevPreloader_VoiceOver (fog.as3.FogDevPreloader_VoiceOver)
package fog.as3 {
import mx.core.*;
public class FogDevPreloader_VoiceOver extends SoundAsset {
}
}//package fog.as3
Section 90
//FogDevTracking (fog.as3.FogDevTracking)
package fog.as3 {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import fog.as3.utils.*;
import flash.system.*;
public class FogDevTracking {
private var LibFile:String;// = "api/library-v2.swf"
private var rRequest:URLRequest;
public var DevURL:String;// = "http://www.fogdev.com/"
public var Info:Object;
public var WalkthroughURL:String;// = "http://www.freeonlinegames.com/walkthrough/{game.url}.html"
public var TagURL:String;// = "http://www.freeonlinegames.com/tag/{game.tag}/"
public var Library:MovieClip;
public var LocalMode:Boolean;// = false
public var Server:String;// = "x.fogdev.com"
private var rLoader:Loader;
public var FGFYWURL:String;// = "http://www.freegamesforyourwebsite.com/game/{game.url}/"
public var HomeURL:String;// = "http://www.freeonlinegames.com/"
private var LibPath:String;// = ""
public var GameURL:String;// = "http://www.freeonlinegames.com/game/{game.url}.html"
private var Core:FogDevAPI;
public function FogDevTracking(_arg1:FogDevAPI){
Info = new Object();
super();
Core = _arg1;
Info = GetUrlInfo(Core.root.loaderInfo.url);
}
public function isFogDomain():Boolean{
return (((((((((Info.domain.indexOf("freeonlinegames.com") > -1)) || ((Info.domain.indexOf("fog.com") > -1)))) || ((Info.domain.indexOf("fogdev.com") > -1)))) || ((Info.domain.indexOf("freegamesforyourwebsite.com") > -1)))) ? true : false);
}
public function Ping(_arg1:String=""):void{
var t = _arg1;
Debug.log(" ");
Debug.log("Remote Tracking");
if (Core.Sandbox){
Debug.log("> Disabled due Sandbox. Try correcting your ID?");
return;
};
Security.allowDomain(Server);
Security.loadPolicyFile((("http://" + Server) + "/crossdomain.xml"));
LibPath = ((((((("http://" + Server) + "/") + LibFile) + "?v=") + Core.Version) + "&c=") + Math.random());
Debug.log(("> SWF: " + LibPath));
rLoader = new Loader();
rRequest = new URLRequest(LibPath);
rLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (_arg1:Event):void{
var e = _arg1;
Library = MovieClip(e.target.content);
try {
Library.Connect(Core);
} catch(e:Error) {
Library = null;
Debug.log("> Corrupt Library: ", e.message);
};
});
rLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
Debug.log(("> IO Error (SWF): " + _arg1.text));
});
rLoader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, function (_arg1:HTTPStatusEvent):void{
});
rLoader.load(rRequest);
}
public function LibraryCall(_arg1:String, _arg2:Object){
return (Core.LibraryCall(_arg1, _arg2));
}
private function GetUrlInfo(_arg1:String):Object{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
LocalMode = new RegExp("file://").test(_arg1);
var _local2 = "";
var _local3 = "";
if (LocalMode){
_local2 = "local";
_local3 = "";
} else {
_local4 = (_arg1.indexOf("://") + 3);
_local5 = _arg1.indexOf("/", _local4);
_local2 = _arg1.substring(_local4, _local5);
_local6 = (_local2.lastIndexOf(".") - 1);
_local7 = (_local2.lastIndexOf(".", _local6) + 1);
_local3 = _arg1.substr(_local5);
};
return ({domain:_local2, uri:_local3});
}
public function Click(_arg1:MouseEvent):void{
var _local2:String = _arg1.currentTarget.GotoURL;
GotoURL(_local2);
}
public function GotoURL(_arg1:String=""):void{
var _local2:String = (_arg1) ? _arg1 : HomeURL;
if (_local2.indexOf("{game.url}") > -1){
if (Core.Game.URL.length > 0){
_local2 = _local2.replace("{game.url}", Core.Game.URL);
_local2 = _local2.replace("{game.tag}", Core.Game.Tag);
} else {
trace("> Tracking Error: FogAPI.Game.URL is not defined");
_local2 = _local2.replace("{game.url}", Core.ID);
};
};
if (_local2.indexOf("{game.tag}") > -1){
if (Core.Game.Tag.length > 0){
trace(("Tag: " + Core.Game.Tag));
_local2 = _local2.replace("{game.tag}", Core.Game.Tag);
} else {
trace("> Tracking Error: FogAPI.Game.Tag is not defined");
_local2 = _local2.replace("{game.tag}", "misc-games");
};
};
var _local3:String = ((("?utm_source=" + Info.domain) + "&utm_medium=api-game&utm_campaign=") + Core.ID);
if (isFogDomain()){
_local3 = "";
};
var _local4:String = (_local2 + _local3);
trace(" ");
trace("Tracking: ", _local4);
var _local5:Boolean = (Core.ID) ? Core.LibraryCall("GotoURL", {url:_local4}) : false;
if (!_local5){
trace(("GotoURL (Local): " + _local4));
if (Core.Sandbox){
return;
};
navigateToURL(new URLRequest(_local4), "_blank");
};
}
}
}//package fog.as3
Section 91
//NewgroundsAPIAsset_API_Conencted_7 (MedalPopup_fla.NewgroundsAPIAsset_API_Conencted_7)
package MedalPopup_fla {
import flash.display.*;
import com.newgrounds.components.*;
public dynamic class NewgroundsAPIAsset_API_Conencted_7 extends MovieClip {
public function NewgroundsAPIAsset_API_Conencted_7(){
addFrameScript(36, this.frame37);
}
function frame37(){
APIConnector(parent).clear();
}
}
}//package MedalPopup_fla
Section 92
//NewgroundsAPIAsset_ConnectingAPI_5 (MedalPopup_fla.NewgroundsAPIAsset_ConnectingAPI_5)
package MedalPopup_fla {
import flash.display.*;
public dynamic class NewgroundsAPIAsset_ConnectingAPI_5 extends MovieClip {
public function NewgroundsAPIAsset_ConnectingAPI_5(){
addFrameScript(9, this.frame10);
}
function frame10(){
stop();
}
}
}//package MedalPopup_fla
Section 93
//NewgroundsAPIAsset_Connection_Error_10 (MedalPopup_fla.NewgroundsAPIAsset_Connection_Error_10)
package MedalPopup_fla {
import flash.display.*;
import com.newgrounds.components.*;
public dynamic class NewgroundsAPIAsset_Connection_Error_10 extends MovieClip {
public function NewgroundsAPIAsset_Connection_Error_10(){
addFrameScript(9, this.frame10, 20, this.frame21);
}
function frame10(){
stop();
}
function frame21(){
APIConnector(parent).clear();
}
}
}//package MedalPopup_fla
Section 94
//NewgroundsAPIAsset_FlashAd_Container_26 (MedalPopup_fla.NewgroundsAPIAsset_FlashAd_Container_26)
package MedalPopup_fla {
import com.newgrounds.*;
import flash.display.*;
import flash.events.*;
public dynamic class NewgroundsAPIAsset_FlashAd_Container_26 extends MovieClip {
public var adMask:MovieClip;
public var ngLinkButton:SimpleButton;
public function NewgroundsAPIAsset_FlashAd_Container_26(){
addFrameScript(0, this.frame1, 10, this.frame11);
}
public function onNGLinkClicked(_arg1:MouseEvent):void{
API.loadNewgrounds();
}
function frame1(){
this.ngLinkButton.addEventListener(MouseEvent.CLICK, this.onNGLinkClicked);
}
function frame11(){
gotoAndPlay(1);
}
}
}//package MedalPopup_fla
Section 95
//NewgroundsAPIAsset_Load_Indicator_6 (MedalPopup_fla.NewgroundsAPIAsset_Load_Indicator_6)
package MedalPopup_fla {
import flash.display.*;
import flash.events.*;
public dynamic class NewgroundsAPIAsset_Load_Indicator_6 extends MovieClip {
public function NewgroundsAPIAsset_Load_Indicator_6(){
addFrameScript(0, this.frame1);
}
public function onEnterFrame(_arg1:Event):void{
if (((visible) && (stage))){
rotation = (rotation + 30);
} else {
removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
};
}
function frame1(){
addEventListener(Event.ENTER_FRAME, this.onEnterFrame);
}
}
}//package MedalPopup_fla
Section 96
//NewgroundsAPIAsset_Login_Warning_8 (MedalPopup_fla.NewgroundsAPIAsset_Login_Warning_8)
package MedalPopup_fla {
import flash.display.*;
import com.newgrounds.components.*;
public dynamic class NewgroundsAPIAsset_Login_Warning_8 extends MovieClip {
public function NewgroundsAPIAsset_Login_Warning_8(){
addFrameScript(9, this.frame10, 20, this.frame21);
}
function frame10(){
stop();
}
function frame21(){
APIConnector(parent).clear();
}
}
}//package MedalPopup_fla
Section 97
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.left = _arg1;
this.top = _arg2;
this.right = _arg3;
this.bottom = _arg4;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 98
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexMovieClip(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 99
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 100
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 101
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(_arg1:Point):Point;
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(_arg1:String):void;
function set scaleX(_arg1:Number):void;
function set scaleY(_arg1:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(_arg1:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(_arg1:Point):Point;
function get height():Number;
function set blendMode(_arg1:String):void;
function get parent():DisplayObjectContainer;
function getBounds(_arg1:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(_arg1:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(_arg1:Number):void;
function set accessibilityProperties(_arg1:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(_arg1:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(_arg1:Number):void;
function set mask(_arg1:DisplayObject):void;
function getRect(_arg1:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(_arg1:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(_arg1:DisplayObject):Boolean;
function set opaqueBackground(_arg1:Object):void;
function set visible(_arg1:Boolean):void;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function set y(_arg1:Number):void;
function get transform():Transform;
function set filters(_arg1:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(_arg1:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 102
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(_arg1:Array):void;
function get isDocument():Boolean;
function set repeaters(_arg1:Array):void;
function initializeRepeaterArrays(_arg1:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(_arg1:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 103
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function MovieClipAsset(){
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 104
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 105
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 106
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import flash.utils.*;
import mx.core.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.0.0.0";
private static var counter:int = 0;
public static function displayObjectToString(_arg1:DisplayObject):String{
var _local2:String;
var _local4:String;
var _local5:Array;
var _local3:DisplayObject = _arg1;
while (_local3 != null) {
if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){
break;
};
_local4 = _local3.name;
if ((_local3 is IRepeaterClient)){
_local5 = IRepeaterClient(_local3).instanceIndices;
if (_local5){
_local4 = (_local4 + (("[" + _local5.join("][")) + "]"));
};
};
_local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2);
_local3 = _local3.parent;
};
return (_local2);
}
public static function createUniqueName(_arg1:Object):String{
if (!_arg1){
return (null);
};
var _local2:String = getQualifiedClassName(_arg1);
var _local3:int = _local2.indexOf("::");
if (_local3 != -1){
_local2 = _local2.substr((_local3 + 2));
};
var _local4:int = _local2.charCodeAt((_local2.length - 1));
if ((((_local4 >= 48)) && ((_local4 <= 57)))){
_local2 = (_local2 + "_");
};
return ((_local2 + counter++));
}
}
}//package mx.utils
Section 107
//AwardPrompt (AwardPrompt)
package {
import flash.display.*;
import caurina.transitions.*;
public dynamic class AwardPrompt extends MovieClip {
public var icon_mc:MovieClip;
public function AwardPrompt(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
Tweener.addTween(this, {y:40, time:1, onComplete:_goToPlayer, transition:"easeOutElastic"});
}
public function _goToPlayer(){
Tweener.addTween(this, {y:-50, time:1, onComplete:_disappear, transition:"easeInBack"});
}
public function _disappear(){
MovieClip(parent).removeChild(this);
}
}
}//package
Section 108
//AwardSnd (AwardSnd)
package {
import flash.media.*;
public dynamic class AwardSnd extends Sound {
}
}//package
Section 109
//BarrelSnd (BarrelSnd)
package {
import flash.media.*;
public dynamic class BarrelSnd extends Sound {
}
}//package
Section 110
//Boss1 (Boss1)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Boss1 extends MovieClip {
public var hitBox_mc:MovieClip;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var lifeDenom:Number;
public var movTmrObj:Timer;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var attackCounter:Number;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var pointer:Number;
public function Boss1(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
lifeDenom = 100;
life = lifeDenom;
spd = 1;
attackCounter = 0;
movTmrObj = new Timer(2000, 0);
movTmrObj.addEventListener(TimerEvent.TIMER, mov);
movTmrObj.start();
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.enemyLifebar_mc.bar_mc.scaleX = 0;
main.whenEnemyDies(this);
main.attBossExplosion(this);
destruct("");
} else {
main.enemyLifebar_mc.y = 12;
main.enemyLifebar_mc.bar_mc.scaleX = (life / lifeDenom);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.bossArray, this);
}
public function mov(_arg1:TimerEvent){
if (main.gameState == "start"){
Tweener.addTween(this, {x:randomGenerator(450, 650), y:randomGenerator(30, 350), time:3, transition:"easeOutStrong"});
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
attackCounter++;
if (attackCounter < 7){
main.attEnemyAmmo1_3(this, 180);
};
if (attackCounter == 9){
main.attEnemyAmmo1_3(this, pointer);
};
if (attackCounter > 10){
attackCounter = 0;
};
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
}
}//package
Section 111
//Boss2 (Boss2)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Boss2 extends MovieClip {
public var hitBox_mc:MovieClip;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var lifeDenom:Number;
public var movTmrObj:Timer;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var attackCounter:Number;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var pointer:Number;
public function Boss2(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
lifeDenom = 150;
life = lifeDenom;
spd = 1;
attackCounter = 0;
movTmrObj = new Timer(2000, 0);
movTmrObj.addEventListener(TimerEvent.TIMER, mov);
movTmrObj.start();
attackTmrObj = new Timer(800, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.enemyLifebar_mc.bar_mc.scaleX = 0;
main.whenEnemyDies(this);
main.attBossExplosion(this);
destruct("");
} else {
main.enemyLifebar_mc.y = 12;
main.enemyLifebar_mc.bar_mc.scaleX = (life / lifeDenom);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.bossArray, this);
}
public function mov(_arg1:TimerEvent){
if (main.gameState == "start"){
Tweener.addTween(this, {x:randomGenerator(450, 650), y:randomGenerator(30, 350), time:3, transition:"easeOutStrong"});
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
attackCounter++;
if (attackCounter < 6){
main.attEnemyAmmo1_3(this, 180);
} else {
if (attackCounter < 10){
main.attEnemyAmmo1_3(this, 180);
main.attEnemyAmmo2(this, 180);
} else {
if (attackCounter == 10){
main.attEnemyAmmo1_5(this, pointer);
main.attEnemyAmmo1_3(this, 180);
};
};
};
if (attackCounter > 12){
attackCounter = 0;
};
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
}
}//package
Section 112
//Boss3 (Boss3)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Boss3 extends MovieClip {
public var hitBox_mc:MovieClip;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var lifeDenom:Number;
public var movTmrObj:Timer;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var attackCounter:Number;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var pointer:Number;
public function Boss3(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
lifeDenom = 200;
life = lifeDenom;
spd = 1;
attackCounter = 0;
movTmrObj = new Timer(2000, 0);
movTmrObj.addEventListener(TimerEvent.TIMER, mov);
movTmrObj.start();
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.enemyLifebar_mc.bar_mc.scaleX = 0;
main.whenEnemyDies(this);
main.attBossExplosion(this);
destruct("");
} else {
main.enemyLifebar_mc.y = 12;
main.enemyLifebar_mc.bar_mc.scaleX = (life / lifeDenom);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.bossArray, this);
}
public function mov(_arg1:TimerEvent){
if (main.gameState == "start"){
Tweener.addTween(this, {x:randomGenerator(450, 650), y:randomGenerator(30, 350), time:3, transition:"easeOutStrong"});
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
attackCounter++;
if (attackCounter < 6){
main.attEnemyAmmo1_3(this, 180);
} else {
if (attackCounter < 10){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo2(this, 180);
} else {
if (attackCounter == 10){
main.attEnemyAmmo1_5(this, pointer);
main.attEnemyAmmo2(this, 180);
};
};
};
if (attackCounter > 12){
attackCounter = 0;
};
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
}
}//package
Section 113
//Boss4 (Boss4)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Boss4 extends MovieClip {
public var hitBox_mc:MovieClip;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var lifeDenom:Number;
public var movTmrObj:Timer;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var attackCounter:Number;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var pointer:Number;
public function Boss4(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
lifeDenom = 250;
life = lifeDenom;
spd = 1;
attackCounter = 0;
movTmrObj = new Timer(2000, 0);
movTmrObj.addEventListener(TimerEvent.TIMER, mov);
movTmrObj.start();
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.enemyLifebar_mc.bar_mc.scaleX = 0;
main.whenEnemyDies(this);
main.attBossExplosion(this);
destruct("");
} else {
main.enemyLifebar_mc.y = 12;
main.enemyLifebar_mc.bar_mc.scaleX = (life / lifeDenom);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.bossArray, this);
}
public function mov(_arg1:TimerEvent){
if (main.gameState == "start"){
Tweener.addTween(this, {x:randomGenerator(450, 650), y:randomGenerator(30, 350), time:3, transition:"easeOutStrong"});
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
attackCounter++;
if (attackCounter < 6){
main.attEnemyAmmo1_5(this, 180);
} else {
if (attackCounter < 10){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo2(this, 180);
} else {
if (attackCounter == 10){
main.attEnemyAmmo1_5(this, pointer);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
};
};
if (attackCounter > 12){
attackCounter = 0;
};
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
}
}//package
Section 114
//Boss5 (Boss5)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Boss5 extends MovieClip {
public var hitBox_mc:MovieClip;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var lifeDenom:Number;
public var movTmrObj:Timer;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var attackCounter:Number;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var pointer:Number;
public function Boss5(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
lifeDenom = 300;
life = lifeDenom;
spd = 1;
attackCounter = 0;
movTmrObj = new Timer(2000, 0);
movTmrObj.addEventListener(TimerEvent.TIMER, mov);
movTmrObj.start();
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.enemyLifebar_mc.bar_mc.scaleX = 0;
main.whenEnemyDies(this);
main.attBossExplosion(this);
destruct("");
} else {
main.enemyLifebar_mc.y = 12;
main.enemyLifebar_mc.bar_mc.scaleX = (life / lifeDenom);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.bossArray, this);
}
public function mov(_arg1:TimerEvent){
if (main.gameState == "start"){
Tweener.addTween(this, {x:randomGenerator(450, 650), y:randomGenerator(30, 350), time:3, transition:"easeOutStrong"});
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
attackCounter++;
if (attackCounter < 6){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo2(this, 180);
} else {
if (attackCounter < 10){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
} else {
if (attackCounter == 10){
main.attEnemyAmmo1_5(this, pointer);
main.attEnemyAmmo2(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
};
};
if (attackCounter > 12){
attackCounter = 0;
};
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
}
}//package
Section 115
//Boss6 (Boss6)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Boss6 extends MovieClip {
public var hitBox_mc:MovieClip;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var lifeDenom:Number;
public var movTmrObj:Timer;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var attackCounter:Number;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var pointer:Number;
public function Boss6(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
lifeDenom = 350;
life = lifeDenom;
spd = 1;
attackCounter = 0;
movTmrObj = new Timer(2000, 0);
movTmrObj.addEventListener(TimerEvent.TIMER, mov);
movTmrObj.start();
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.enemyLifebar_mc.bar_mc.scaleX = 0;
main.whenEnemyDies(this);
main.attBossExplosion(this);
destruct("");
} else {
main.enemyLifebar_mc.y = 12;
main.enemyLifebar_mc.bar_mc.scaleX = (life / lifeDenom);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.bossArray, this);
}
public function mov(_arg1:TimerEvent){
if (main.gameState == "start"){
Tweener.addTween(this, {x:randomGenerator(450, 650), y:randomGenerator(30, 350), time:3, transition:"easeOutStrong"});
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
attackCounter++;
if (attackCounter < 6){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo2(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
} else {
if (attackCounter < 10){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo2(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
} else {
if (attackCounter == 10){
main.attEnemyAmmo1_5(this, pointer);
main.attEnemyAmmo2(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
};
};
if (attackCounter > 12){
attackCounter = 0;
};
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
}
}//package
Section 116
//Boss7 (Boss7)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Boss7 extends MovieClip {
public var hitBox_mc:MovieClip;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var lifeDenom:Number;
public var movTmrObj:Timer;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var attackCounter:Number;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var pointer:Number;
public function Boss7(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
lifeDenom = 400;
life = lifeDenom;
spd = 1;
attackCounter = 0;
movTmrObj = new Timer(2000, 0);
movTmrObj.addEventListener(TimerEvent.TIMER, mov);
movTmrObj.start();
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.enemyLifebar_mc.bar_mc.scaleX = 0;
main.whenEnemyDies(this);
main.attBossExplosion(this);
destruct("");
} else {
main.enemyLifebar_mc.y = 12;
main.enemyLifebar_mc.bar_mc.scaleX = (life / lifeDenom);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.bossArray, this);
}
public function mov(_arg1:TimerEvent){
if (main.gameState == "start"){
Tweener.addTween(this, {x:randomGenerator(450, 650), y:randomGenerator(30, 350), time:3, transition:"easeOutStrong"});
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
attackCounter++;
if (attackCounter < 6){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo2(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
} else {
if (attackCounter < 10){
main.attEnemyAmmo1_5(this, 180);
main.attEnemyAmmo2(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
} else {
if (attackCounter == 10){
main.attEnemyAmmo1_3(this, pointer);
main.attEnemyAmmo2(this, 180);
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
};
};
if (attackCounter > 12){
attackCounter = 0;
};
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
}
}//package
Section 117
//BossSnd (BossSnd)
package {
import flash.media.*;
public dynamic class BossSnd extends Sound {
}
}//package
Section 118
//Coin (Coin)
package {
import flash.display.*;
import flash.events.*;
public class Coin extends MovieClip {
public var hitBox_mc:MovieClip;
public var speed:int;
public var xSpd:Number;
public var angle:Number;
public var _angle:Number;
public var a_x:Number;
public var a_y:Number;
public var spd:Number;
public var ySpd:Number;
public var animation_mc:MovieClip;
public var followSpd:Number;
public var main:MovieClip;
public var pointer:Number;// = 0
public function Coin(_arg1:Number, _arg2:Number, _arg3:Number){
addFrameScript(0, frame1);
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
init();
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (this.animation_mc.currentFrame == 160){
trace("-----");
this.animation_mc.stop();
destruct("");
} else {
if (MovieClip(parent.parent).levelContainer_mc.player_mc.hitBox_mc.hitTestObject(this.hitBox_mc)){
this.stop();
MovieClip(parent.parent).points_level = (MovieClip(parent.parent).points_level + 2);
MovieClip(parent.parent).playCoinSnd();
MovieClip(parent.parent).money_level++;
destruct("");
} else {
if (this.x < 0){
this.stop();
destruct("");
} else {
if (calDist(this.x, this.y, main.levelContainer_mc.player_mc.x, main.levelContainer_mc.player_mc.y) < main.magnetRange){
changeDirection();
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
} else {
angle = ((180 / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
};
};
};
};
}
public function destruct(_arg1:String){
MovieClip(parent.parent).removeFromArray(MovieClip(parent.parent).moneyArray, this);
}
public function init(){
followSpd = 8;
spd = 1.5;
angle = ((this.rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function calDist(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number = ((_arg1 - _arg3) * (_arg1 - _arg3));
var _local6:Number = ((_arg2 - _arg4) * (_arg2 - _arg4));
var _local7:Number = Math.sqrt((_local5 + _local6));
return (_local7);
}
function frame1(){
stop();
animation_mc.gotoAndPlay(randomGenerator(2, 15));
}
public function changeDirection(){
pointTowardPlayer(MovieClip(parent).player_mc);
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * followSpd);
ySpd = (Math.sin(angle) * followSpd);
}
public function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
this.rotation = pointer;
}
}
}//package
Section 119
//CoinSnd (CoinSnd)
package {
import flash.media.*;
public dynamic class CoinSnd extends Sound {
}
}//package
Section 120
//DropSnd (DropSnd)
package {
import flash.media.*;
public dynamic class DropSnd extends Sound {
}
}//package
Section 121
//Earthquake (Earthquake)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Earthquake {
private static const FRAME_RATE:int = 30;
private static var timer:Timer;
private static var originalX:int;
private static var originalY:int;
private static var intensityOffset:int;
private static var intensity:int;
private static var image:DisplayObject;
private static function cleanup():void{
timer = null;
image = null;
}
public static function go(_arg1:DisplayObject, _arg2:Number=10, _arg3:Number=1):void{
if (timer){
timer.stop();
};
image = _arg1;
originalX = 0;
originalY = 0;
intensity = _arg2;
intensityOffset = (intensity / 2);
var _local4:int = int((1000 / FRAME_RATE));
var _local5:int = int(((_arg3 * 1000) / _local4));
timer = new Timer(_local4, _local5);
timer.addEventListener(TimerEvent.TIMER, quake);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, resetImage);
timer.start();
}
public static function temp():void{
}
private static function quake(_arg1:TimerEvent):void{
var _local2:int = ((originalX + (Math.random() * intensity)) - intensityOffset);
var _local3:int = ((originalY + (Math.random() * intensity)) - intensityOffset);
image.x = _local2;
image.y = _local3;
}
private static function resetImage(_arg1:TimerEvent=null):void{
image.x = originalX;
image.y = originalY;
cleanup();
}
}
}//package
Section 122
//Enemy1 (Enemy1)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy1 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy1(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 3;
spd = 3;
attackTmrObj = new Timer(1800, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_1(this, 180);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 123
//Enemy10 (Enemy10)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy10 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy10(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 12;
spd = 1;
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), delay:2, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), delay:4, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(-600, -400), y:randomGenerator(50, 350), delay:6, time:4, transition:"easeInStrong"});
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_5(this, 180);
};
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
};
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 124
//Enemy11 (Enemy11)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy11 extends MovieClip {
public var life:Number;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
private var minYpos:Number;
private var ySpd:Number;
private var yDir:String;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
private var maxYpos:Number;
public function Enemy11(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 12;
spd = 1;
ySpd = (Math.floor((Math.random() * (8 - 3))) + 8);
minYpos = 50;
maxYpos = 380;
yDir = "down";
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
private function wobbleMovement(){
if (this.y < minYpos){
yDir = "down";
} else {
if (this.y > maxYpos){
yDir = "up";
};
};
if (yDir == "up"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y - ySpd);
} else {
if (yDir == "down"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y + ySpd);
};
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
wobbleMovement();
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 125
//Enemy12 (Enemy12)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy12 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy12(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 15;
spd = 1;
attackTmrObj = new Timer(1500, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_5(this, 180);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 126
//Enemy13 (Enemy13)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy13 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy13(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 15;
spd = 1;
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(200, 350), time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(200, 350), delay:2, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(200, 350), delay:4, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(-600, -400), y:randomGenerator(100, 350), delay:6, time:4, transition:"easeInStrong"});
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
};
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 127
//Enemy14 (Enemy14)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy14 extends MovieClip {
public var life:Number;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
private var minYpos:Number;
private var ySpd:Number;
private var yDir:String;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
private var maxYpos:Number;
public function Enemy14(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 18;
spd = 1;
ySpd = (Math.floor((Math.random() * (8 - 3))) + 8);
minYpos = 50;
maxYpos = 380;
yDir = "down";
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
private function wobbleMovement(){
if (this.y < minYpos){
yDir = "down";
} else {
if (this.y > maxYpos){
yDir = "up";
};
};
if (yDir == "up"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y - ySpd);
} else {
if (yDir == "down"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y + ySpd);
};
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_5(this, 180);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
wobbleMovement();
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 128
//Enemy15 (Enemy15)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy15 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy15(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 18;
spd = 1;
attackTmrObj = new Timer(1500, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 129
//Enemy16 (Enemy16)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy16 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy16(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 4;
spd = 4;
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
}
public function attackTmr(_arg1:TimerEvent){
trace("shoot");
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 130
//Enemy2 (Enemy2)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy2 extends MovieClip {
public var life:Number;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
private var minYpos:Number;
private var ySpd:Number;
private var yDir:String;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
private var maxYpos:Number;
public function Enemy2(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 3;
spd = 5;
ySpd = (Math.floor((Math.random() * (8 - 3))) + 8);
minYpos = 50;
maxYpos = 380;
yDir = "down";
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
private function wobbleMovement(){
if (this.y < minYpos){
yDir = "down";
} else {
if (this.y > maxYpos){
yDir = "up";
};
};
if (yDir == "up"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y - ySpd);
} else {
if (yDir == "down"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y + ySpd);
};
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_1(this, 180);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
wobbleMovement();
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 131
//Enemy3 (Enemy3)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy3 extends MovieClip {
public var a_x:Number;
public var _angle:Number;
public var pointer:Number;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var a_y:Number;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy3(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 3;
spd = 3;
pointer = 0;
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_1(this, pointer);
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 132
//Enemy4 (Enemy4)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy4 extends MovieClip {
public var a_x:Number;
public var _angle:Number;
public var pointer:Number;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var a_y:Number;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy4(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 6;
spd = 3;
pointer = 0;
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_3(this, 180);
};
}
private function pointTowardPlayer(_arg1:MovieClip, _arg2:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 133
//Enemy5 (Enemy5)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy5 extends MovieClip {
public var life:Number;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
private var minYpos:Number;
private var ySpd:Number;
private var yDir:String;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
private var maxYpos:Number;
public function Enemy5(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 6;
spd = 1;
ySpd = (Math.floor((Math.random() * (8 - 3))) + 8);
minYpos = 50;
maxYpos = 380;
yDir = "down";
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
private function wobbleMovement(){
if (this.y < minYpos){
yDir = "down";
} else {
if (this.y > maxYpos){
yDir = "up";
};
};
if (yDir == "up"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y - ySpd);
} else {
if (yDir == "down"){
ySpd = (Math.floor((Math.random() * (7 - 4))) + 4);
this.y = (this.y + ySpd);
};
};
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_3(this, 180);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
wobbleMovement();
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 134
//Enemy6 (Enemy6)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy6 extends MovieClip {
public var a_x:Number;
public var _angle:Number;
public var pointer:Number;
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var a_y:Number;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy6(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 9;
spd = 1;
pointer = 0;
attackTmrObj = new Timer(1000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_3(this, pointer);
};
}
private function pointTowardPlayer(_arg1:MovieClip){
a_x = (_arg1.x - this.x);
a_y = (_arg1.y - this.y);
_angle = ((180 * Math.atan2(a_y, a_x)) / Math.PI);
pointer = _angle;
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
pointTowardPlayer(main.levelContainer_mc.player_mc);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 135
//Enemy7 (Enemy7)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy7 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy7(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 9;
spd = 1;
attackTmrObj = new Timer(3000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo3(this.x, this.y, 180, main.levelContainer_mc.player_mc, 1);
};
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
};
};
}
public function destruct(_arg1:String){
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 136
//Enemy8 (Enemy8)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy8 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy8(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 12;
spd = 1;
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), delay:2, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), delay:4, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(-600, -400), y:randomGenerator(50, 350), delay:6, time:4, transition:"easeInStrong"});
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_1(this, 180);
};
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
};
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 137
//Enemy9 (Enemy9)
package {
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.*;
import flash.filters.*;
public class Enemy9 extends MovieClip {
public var flash_mc:MovieClip;
public var attackTmrObj:Timer;
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public var hitBox_mc:MovieClip;
public function Enemy9(_arg1:Number, _arg2:Number){
this.x = _arg1;
this.y = _arg2;
life = 12;
spd = 1;
attackTmrObj = new Timer(2000, 0);
attackTmrObj.addEventListener(TimerEvent.TIMER, attackTmr);
attackTmrObj.start();
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), delay:2, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(500, 650), y:randomGenerator(50, 350), delay:4, time:2, transition:"easeOutStrong"});
Tweener.addTween(this, {x:randomGenerator(-600, -400), y:randomGenerator(50, 350), delay:6, time:4, transition:"easeInStrong"});
}
public function attackTmr(_arg1:TimerEvent){
if (main.gameState == "start"){
main.attEnemyAmmo1_3(this, 180);
};
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (life <= 0){
main.whenEnemyDies(this);
destruct("");
} else {
if (this.x < -100){
destruct("");
};
};
}
public function destruct(_arg1:String){
Tweener.removeTweens(this);
attackTmrObj.stop();
attackTmrObj.removeEventListener(TimerEvent.TIMER, attackTmr);
main.removeFromArray(main.enemyArray, this);
}
}
}//package
Section 138
//EnemyAmmo1 (EnemyAmmo1)
package {
import flash.display.*;
import flash.events.*;
public class EnemyAmmo1 extends MovieClip {
public var hitBox_mc:MovieClip;
public var speed:int;
public var xSpd:Number;
public var angle:Number;
public var spd:Number;
public var ySpd:Number;
public function EnemyAmmo1(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
init();
}
public function destruct(_arg1:String){
MovieClip(parent.parent).removeFromArray(MovieClip(parent.parent).enemyAmmo1Array, this);
}
public function init(){
spd = 8;
angle = ((this.rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function looper(){
if ((((((((this.y < -10)) || ((this.y > 590)))) || ((this.x < -10)))) || ((this.x > 690)))){
destruct("");
} else {
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 139
//EnemyAmmo2 (EnemyAmmo2)
package {
import flash.display.*;
import flash.events.*;
public class EnemyAmmo2 extends MovieClip {
public var life:Number;// = 2
public var speed:int;
public var ySpd:Number;
public var xSpd:Number;
public var angle:Number;
public var spd:Number;
public var hitBox_mc:MovieClip;
public function EnemyAmmo2(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
init();
}
public function destruct(_arg1:String){
MovieClip(parent.parent).removeFromArray(MovieClip(parent.parent).enemyAmmo2Array, this);
}
public function looper(){
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
if ((((life < 0)) || ((this.y > 350)))){
MovieClip(parent.parent).attExplosion(this);
destruct("");
} else {
if ((((this.x < -10)) || ((this.x > 690)))){
destruct("");
} else {
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
};
}
public function init(){
spd = 10;
angle = ((this.rotation / 180) * Math.PI);
}
}
}//package
Section 140
//EnemyAmmo3 (EnemyAmmo3)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.filters.*;
public class EnemyAmmo3 extends MovieClip {
public var flash_mc:MovieClip;
private var dir:Point;
public var xSpd:Number;
public var target:MovieClip;
public var angle:Number;
public var mc:MovieClip;
public var rot:Number;
private var turnDelayCounter:Number;// = 0
public var spd:Number;
public var ySpd:Number;
public var grvty:Number;
public var life:Number;
public var hitBox_mc:MovieClip;
public function EnemyAmmo3(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:MovieClip){
dir = new Point(0, 0);
super();
life = 1;
this.x = _arg1;
this.y = _arg2;
target = _arg4;
init();
spd = 6;
angle = ((_arg3 / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = ((Math.random() * (_arg2 - _arg1)) + _arg1);
return (_local3);
}
public function looper(){
var _local1:Point;
if ((((((this.x < -200)) || ((this.x > 1020)))) || ((this.y > 750)))){
destruct("");
} else {
if (life <= 0){
MovieClip(parent.parent).attExplosion(this);
destruct("");
} else {
_local1 = new Point((target.x - this.x), (target.y - this.y));
_local1.normalize(2);
dir = dir.add(_local1);
dir.normalize(7);
this.x = (this.x + dir.x);
this.y = (this.y + dir.y);
this.rotation = ((Math.atan2(dir.y, dir.x) * 180) / Math.PI);
};
};
}
public function destruct(_arg1:String){
MovieClip(parent.parent).removeFromArray(MovieClip(parent.parent).enemyArray, this);
}
}
}//package
Section 141
//ExplodeSnd (ExplodeSnd)
package {
import flash.media.*;
public dynamic class ExplodeSnd extends Sound {
}
}//package
Section 142
//Explosion (Explosion)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class Explosion extends MovieClip {
public var spd:Number;
public var main:MovieClip;
public var life:Number;
public function Explosion(_arg1:MovieClip){
addFrameScript(13, frame14);
this.x = _arg1.x;
this.y = _arg1.y;
life = 3;
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = (Math.floor((Math.random() * (_arg2 - _arg1))) + _arg1);
return (_local3);
}
public function looper(){
if (this.currentFrame >= 14){
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
this.x = (this.x - spd);
};
};
}
public function destruct(_arg1:String){
main.removeFromArray(main.explosionArray, this);
}
function frame14(){
stop();
}
}
}//package
Section 143
//ExplosionSnd (ExplosionSnd)
package {
import flash.media.*;
public dynamic class ExplosionSnd extends Sound {
}
}//package
Section 144
//GamesScreenSnd (GamesScreenSnd)
package {
import flash.media.*;
public dynamic class GamesScreenSnd extends Sound {
}
}//package
Section 145
//Health (Health)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class Health extends MovieClip {
public var life:Number;
public var attackTmrObj:Timer;
public var ySpd:Number;
public var xSpd:Number;
public var main:MovieClip;
public function Health(){
xSpd = 3;
ySpd = 2;
}
public function looper(){
if (this.hitTestObject(main.levelContainer_mc.player_mc)){
main.attPlackard("health");
main.lifeNum = (main.lifeNum + (main.lifeDenom * 0.75));
if (main.lifeNum >= main.lifeDenom){
main.lifeNum = main.lifeDenom;
};
destruct("");
} else {
if (this.x < -100){
destruct("");
} else {
if (this.y > 350){
main.attExplosion(this);
destruct("");
} else {
this.x = (this.x - xSpd);
this.y = (this.y + ySpd);
};
};
};
}
public function destruct(_arg1:String){
main.removeFromArray(main.powerUpArray, this);
}
}
}//package
Section 146
//IncomingMissileSnd (IncomingMissileSnd)
package {
import flash.media.*;
public dynamic class IncomingMissileSnd extends Sound {
}
}//package
Section 147
//MissileRelease2Snd (MissileRelease2Snd)
package {
import flash.media.*;
public dynamic class MissileRelease2Snd extends Sound {
}
}//package
Section 148
//MissileRelease3Snd (MissileRelease3Snd)
package {
import flash.media.*;
public dynamic class MissileRelease3Snd extends Sound {
}
}//package
Section 149
//MissileRelease4Snd (MissileRelease4Snd)
package {
import flash.media.*;
public dynamic class MissileRelease4Snd extends Sound {
}
}//package
Section 150
//MissileReleaseSnd (MissileReleaseSnd)
package {
import flash.media.*;
public dynamic class MissileReleaseSnd extends Sound {
}
}//package
Section 151
//MouseOverSnd (MouseOverSnd)
package {
import flash.media.*;
public dynamic class MouseOverSnd extends Sound {
}
}//package
Section 152
//NewgroundsAPIAsset_big_popup_background (NewgroundsAPIAsset_big_popup_background)
package {
import flash.display.*;
public dynamic class NewgroundsAPIAsset_big_popup_background extends MovieClip {
public var tl:MovieClip;
public var br:MovieClip;
public var tr:MovieClip;
public var l:MovieClip;
public var shadow:MovieClip;
public var r:MovieClip;
public var b:MovieClip;
public var bl:MovieClip;
public var t:MovieClip;
public var c:MovieClip;
}
}//package
Section 153
//NonGameScreenSnd (NonGameScreenSnd)
package {
import flash.media.*;
public dynamic class NonGameScreenSnd extends Sound {
}
}//package
Section 154
//Plackard (Plackard)
package {
import flash.display.*;
import caurina.transitions.*;
public dynamic class Plackard extends MovieClip {
public var icon_mc:MovieClip;
public function Plackard(){
addFrameScript(0, frame1);
}
public function _disappear(){
MovieClip(parent).removeChild(this);
}
function frame1(){
stop();
Tweener.addTween(this, {rotation:180, time:1, transition:"easeOutElastic"});
Tweener.addTween(this, {rotation:350, time:1, delay:1.5, onComplete:_disappear, transition:"easeInBack"});
}
}
}//package
Section 155
//PlayerAmmo1 (PlayerAmmo1)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerAmmo1 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerAmmo1(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerAmmo1Array, this);
}
public function looper(){
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 156
//PlayerAmmo2 (PlayerAmmo2)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerAmmo2 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerAmmo2(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerAmmo2Array, this);
}
public function looper(){
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 157
//PlayerAmmo3 (PlayerAmmo3)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerAmmo3 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerAmmo3(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerAmmo3Array, this);
}
public function looper(){
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 158
//PlayerAmmo4 (PlayerAmmo4)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerAmmo4 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerAmmo4(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
spd = 18;
grvty = 1.5;
angle = ((_arg3 / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerAmmo4Array, this);
}
public function looper(){
if (this.x > 700){
destruct("");
} else {
if (this.y > 356){
destruct("");
} else {
main.attSmoke(this);
xSpd = (xSpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y - ySpd);
};
};
}
}
}//package
Section 159
//PlayerSpecial1a (PlayerSpecial1a)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerSpecial1a extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var maxXpos:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerSpecial1a(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
maxXpos = _arg4;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerSpecial1aArray, this);
}
public function looper(){
var _local1:Number;
var _local2:Number;
var _local3:PlayerSpecial1b;
if (this.x > maxXpos){
main.playMissileRelease4Snd();
main.attExplosion(this);
_local1 = 30;
_local2 = 0;
while (_local2 < 12) {
_local1 = (_local1 + 30);
_local3 = new PlayerSpecial1b(this.x, this.y, _local1);
_local3.main = main;
MovieClip(parent).addChild(_local3);
main.playerSpecial1bArray.push(_local3);
_local2++;
};
destruct("");
} else {
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
};
}
}
}//package
Section 160
//PlayerSpecial1b (PlayerSpecial1b)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerSpecial1b extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerSpecial1b(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerSpecial1bArray, this);
}
public function looper(){
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 161
//PlayerSpecial2a (PlayerSpecial2a)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerSpecial2a extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerSpecial2a(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 1.5;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerSpecial2aArray, this);
}
public function looper(){
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
destruct("");
} else {
main.attSmoke(this);
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 162
//PlayerSpecial3a (PlayerSpecial3a)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerSpecial3a extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerSpecial3a(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 10;
grvty = 1.5;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerSpecial3aArray, this);
}
public function looper(){
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
main.screenShake();
main.earthShakeTmrObj.start();
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 163
//PlayerSpecial3b (PlayerSpecial3b)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerSpecial3b extends MovieClip {
public var flame_mc:MovieClip;
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerSpecial3b(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerSpecial3bArray, this);
}
public function looper(){
if ((((((this.x < -500)) || ((this.x > 700)))) || ((this.y < -500)))){
destruct("");
} else {
if (this.y > 0){
};
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 164
//PlayerSpecial4 (PlayerSpecial4)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.filters.*;
public class PlayerSpecial4 extends MovieClip {
public var life:Number;// = 10
public var norm2:Number;
private var shootInterval:Number;
public var driftDX:Number;// = 0
public var dir:Number;// = 0
public var tangentialAcceleration:Number;// = 0.0174532925199433
public var target:MovieClip;
public var dx:Number;// = 0
public var dy:Number;// = 0
public var mc:MovieClip;
public var vel:Point;
public var rotationalVelocity:Number;// = 0
public var myEnemyArr:Array;
public var maxDist:Number;
public var drawingLine:MovieClip;
public var traction;// = 3
public var main:MovieClip;
public var drag;// = 0.9
public var emptyThrustSpeed:Number;// = 0
public var distanceTravelled:Number;// = 0
public var smokeCounter:Number;// = 10
public var speed:Number;// = 0
public var fillThrustSpeed:Number;
private var _dir:Point;
public var thrustSpeed:Number;// = 0
public var pos:Point;
public var mini:MovieClip;
public var rotationalVelocityMax:Number;// = 0.0872664625997165
public var mat:Matrix;
public var shootDist:Number;
public var direksyon_2:Point;
private var shootTimer:Timer;
public var s:Shape;
public var norm1:Number;
public var velMag:Number;
public var myBossArr:Array;
public var hitBox_mc:MovieClip;
public var driftDY:Number;// = 0
public function PlayerSpecial4(_arg1:MovieClip){
fillThrustSpeed = randomGenerator(2, 5);
direksyon_2 = new Point(0, 0);
norm1 = randomGenerator(1, 2);
norm2 = randomGenerator(5, 7);
pos = new Point();
vel = new Point();
mat = new Matrix();
s = new Shape();
drawingLine = new MovieClip();
_dir = new Point(0, 0);
myEnemyArr = new Array();
myBossArr = new Array();
super();
thrustSpeed = fillThrustSpeed;
maxDist = (Math.floor((Math.random() * (200 - 100))) + 100);
shootDist = 300;
pos.x = 250;
pos.y = 250;
vel.x = (Math.PI * 2);
vel.y = (Math.PI * 2);
velMag = 5;
if (myEnemyArr.length == 0){
dir = _arg1.rotation;
this.rotation = _arg1.rotation;
} else {
if (myBossArr.length == 0){
dir = _arg1.rotation;
this.rotation = _arg1.rotation;
};
};
}
public function randomGenerator(_arg1:Number, _arg2:Number):Number{
var _local3:Number = ((Math.random() * (_arg2 - _arg1)) + _arg1);
return (_local3);
}
public function calDist(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number = ((_arg1 - _arg3) * (_arg1 - _arg3));
var _local6:Number = ((_arg2 - _arg4) * (_arg2 - _arg4));
var _local7:Number = Math.sqrt((_local5 + _local6));
return (_local7);
}
public function turn(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local1 = dir;
_local1 = (_local1 - 90);
_local2 = ((_local1 * Math.PI) / 180);
speed = ((dx * dx) + (dy * dy));
_local3 = Math.cos(_local2);
_local4 = Math.sin(_local2);
_local3 = (_local3 * speed);
_local4 = (_local4 * speed);
_local5 = (thrustSpeed * Math.cos(_local2));
_local6 = (thrustSpeed * Math.sin(_local2));
dx = (dx + _local5);
dy = (dy + _local6);
dx = (dx * drag);
dy = (dy * drag);
}
public function initLine(){
MovieClip(parent).addChild(drawingLine);
}
public function followTarget(_arg1:MovieClip){
var _local2:Point = new Point((_arg1.x - this.x), (_arg1.y - this.y));
_local2.normalize(norm1);
direksyon_2 = direksyon_2.add(_local2);
direksyon_2.normalize(norm2);
var _local3:Number = ((Math.atan2(direksyon_2.y, direksyon_2.x) * 180) / Math.PI);
dir = (_local3 + 90);
this.rotation = _local3;
}
public function rotateBody(_arg1:MovieClip, _arg2:MovieClip){
var _local3:Number = (_arg1.x - (this.x + _arg2.x));
var _local4:Number = (_arg1.y - (this.y + _arg2.y));
var _local5:Number = ((180 * Math.atan2(_local4, _local3)) / Math.PI);
_arg2.rotation = _local5;
}
public function shoot(_arg1:TimerEvent){
if (calDist(this.x, this.y, target.x, target.y) <= shootDist){
MovieClip(parent.parent).attEnemyAmmo1(this);
};
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerSpecial4Array, this);
}
function drwLine(){
var _local1:Number = 10;
var _local2:Number = this.rotation;
var _local3:Number = (this.x + (_local1 * Math.cos(((_local2 * Math.PI) / 180))));
var _local4:Number = (this.y + (_local1 * Math.sin(((_local2 * Math.PI) / 180))));
drawingLine.graphics.clear();
drawingLine.graphics.lineStyle(3);
drawingLine.graphics.moveTo(_local3, _local4);
drawingLine.graphics.lineTo(target.x, target.y);
}
function movMinimapElement(){
mini.x = (this.x * 0.1);
mini.y = (this.y * 0.1);
}
public function looper(){
if (life <= 0){
destruct("");
} else {
if ((((((((this.x < -50)) || ((this.x > 1020)))) || ((this.y < -50)))) || ((this.y > 750)))){
destruct("");
} else {
MovieClip(parent.parent).attSmoke(this);
whichEnemyToEngage();
turn();
Move();
};
};
}
public function whichEnemyToEngage(){
var _local1:Number;
var _local2:Object;
var _local3:Number;
var _local4:Object;
if (MovieClip(parent.parent).enemyArray.length > 0){
_local1 = 0;
while (_local1 < MovieClip(parent.parent).enemyArray.length) {
_local2 = {mc:MovieClip(parent.parent).enemyArray[_local1], dis:calDist(MovieClip(parent.parent).enemyArray[_local1].x, MovieClip(parent.parent).enemyArray[_local1].y, this.x, this.y)};
myEnemyArr.push(_local2);
_local1++;
};
};
if (MovieClip(parent.parent).bossArray.length > 0){
_local3 = 0;
while (_local3 < MovieClip(parent.parent).bossArray.length) {
_local4 = {mc:MovieClip(parent.parent).bossArray[_local3], dis:calDist(MovieClip(parent.parent).bossArray[_local3].x, MovieClip(parent.parent).bossArray[_local3].y, this.x, this.y)};
myEnemyArr.push(_local4);
_local3++;
};
};
myEnemyArr.sortOn("dis", Array.NUMERIC);
if (myEnemyArr.length > 0){
followTarget(myEnemyArr[0].mc);
};
myEnemyArr.splice(0, myEnemyArr.length);
}
public function Move(){
this.x = (this.x + (driftDX * traction));
this.y = (this.y + (driftDY * traction));
this.x = (this.x + ((dx * 1) / traction));
this.y = (this.y + ((dy * 1) / traction));
}
}
}//package
Section 165
//PlayerV1Special1 (PlayerV1Special1)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerV1Special1 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerV1Special1(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 10;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerV1Special1Array, this);
}
public function looper(){
if ((((this.x > 800)) || ((this.y > 400)))){
destruct("");
} else {
main.playBarrelSnd();
main.attPlayerV1Special2(this);
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 166
//PlayerV1Special2 (PlayerV1Special2)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerV1Special2 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerV1Special2(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerV1Special2Array, this);
}
public function looper(){
if ((((((((this.x < 0)) || ((this.x > 700)))) || ((this.y < 0)))) || ((this.y > 400)))){
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 167
//PlayerV2Special1 (PlayerV2Special1)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerV2Special1 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerV2Special1(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 25;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerV2Special1Array, this);
}
public function looper(){
if ((((((this.x > 700)) || ((this.y > 400)))) || ((this.y < 0)))){
main.playIncomingMissileSnd();
main.attPlayerV2Special2();
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 168
//PlayerV2Special2 (PlayerV2Special2)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerV2Special2 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerV2Special2(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 12;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerV2Special2Array, this);
}
public function looper(){
if ((((this.x > 700)) || ((this.y > 400)))){
destruct("");
} else {
main.attSmoke(this);
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
};
}
}
}//package
Section 169
//PlayerV3Special1 (PlayerV3Special1)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
public class PlayerV3Special1 extends MovieClip {
public var spd:Number;
public var xSpd:Number;
public var grvty:Number;
public var angle:Number;
public var ySpd:Number;
public var mc:MovieClip;
public var rot:Number;
public var main:MovieClip;
public var hitBox_mc:MovieClip;
public function PlayerV3Special1(_arg1:Number, _arg2:Number, _arg3:Number){
this.x = _arg1;
this.y = _arg2;
this.rotation = _arg3;
spd = 30;
grvty = 0;
angle = ((MovieClip(this).rotation / 180) * Math.PI);
xSpd = (Math.cos(angle) * spd);
ySpd = (Math.sin(angle) * spd);
}
public function destruct(_arg1:String){
main.removeFromArray(main.playerV3Special1Array, this);
}
public function looper(){
if ((((((this.x > 700)) || ((this.y > 400)))) || ((this.y < 0)))){
destruct("");
} else {
ySpd = (ySpd + grvty);
this.x = (this.x + xSpd);
this.y = (this.y + ySpd);
this.rotation = ((Math.atan2(ySpd, xSpd) * 180) / Math.PI);
this.y = main.levelContainer_mc.player_mc.y;
};
}
}
}//package
Section 170
//Smoke (Smoke)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.accessibility.*;
import flash.text.*;
import flash.net.*;
import flash.media.*;
import flash.system.*;
import flash.errors.*;
import flash.filters.*;
import adobe.utils.*;
import flash.external.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Smoke extends MovieClip {
public var sprite_mc:MovieClip;
public var main:MovieClip;
public function Smoke(){
addFrameScript(0, frame1);
}
public function looper(){
if (sprite_mc.scaleX <= 0){
main.removeFromArray(main.smokeArray, this);
} else {
this.x = (this.x - 1);
sprite_mc.rotation = (sprite_mc.rotation - 10);
sprite_mc.scaleX = (sprite_mc.scaleX - 0.1);
sprite_mc.scaleY = (sprite_mc.scaleY - 0.1);
};
}
function frame1(){
}
public function destruct(_arg1:String){
main.removeFromArray(main.smokeArray, this);
}
}
}//package
Section 171
//SonicWaveSnd (SonicWaveSnd)
package {
import flash.media.*;
public dynamic class SonicWaveSnd extends Sound {
}
}//package
Section 172
//Special (Special)
package {
import flash.display.*;
public dynamic class Special extends MovieClip {
}
}//package
Section 173
//UserPrompt1Snd (UserPrompt1Snd)
package {
import flash.media.*;
public dynamic class UserPrompt1Snd extends Sound {
}
}//package
Section 174
//UserPrompt2Snd (UserPrompt2Snd)
package {
import flash.media.*;
public dynamic class UserPrompt2Snd extends Sound {
}
}//package
Section 175
//UserPrompt3Snd (UserPrompt3Snd)
package {
import flash.media.*;
public dynamic class UserPrompt3Snd extends Sound {
}
}//package
Section 176
//UserPrompt4Snd (UserPrompt4Snd)
package {
import flash.media.*;
public dynamic class UserPrompt4Snd extends Sound {
}
}//package