Section 1
//ColorShortcuts (caurina.transitions.properties.ColorShortcuts)
package caurina.transitions.properties {
import flash.geom.*;
import caurina.transitions.*;
import flash.filters.*;
public class ColorShortcuts {
private static var LUMINANCE_B:Number = 0.072169;
private static var LUMINANCE_G:Number = 0.71516;
private static var LUMINANCE_R:Number = 0.212671;
public function ColorShortcuts(){
trace("This is an static class and should not be instantiated.");
}
public static function _color_splitter(_arg1, _arg2:Array):Array{
var _local3:Array = new Array();
if (_arg1 == null){
_local3.push({name:"_color_redMultiplier", value:1});
_local3.push({name:"_color_redOffset", value:0});
_local3.push({name:"_color_greenMultiplier", value:1});
_local3.push({name:"_color_greenOffset", value:0});
_local3.push({name:"_color_blueMultiplier", value:1});
_local3.push({name:"_color_blueOffset", value:0});
} else {
_local3.push({name:"_color_redMultiplier", value:0});
_local3.push({name:"_color_redOffset", value:AuxFunctions.numberToR(_arg1)});
_local3.push({name:"_color_greenMultiplier", value:0});
_local3.push({name:"_color_greenOffset", value:AuxFunctions.numberToG(_arg1)});
_local3.push({name:"_color_blueMultiplier", value:0});
_local3.push({name:"_color_blueOffset", value:AuxFunctions.numberToB(_arg1)});
};
return (_local3);
}
public static function _contrast_set(_arg1:Object, _arg2:Number, _arg3:Array, _arg4:Object=null):void{
var _local5:Number;
var _local6:Number;
_local5 = (_arg2 + 1);
_local6 = Math.round((_arg2 * -128));
var _local7:ColorTransform = new ColorTransform(_local5, _local5, _local5, 1, _local6, _local6, _local6, 0);
_arg1.transform.colorTransform = _local7;
}
public static function _brightness_get(_arg1:Object, _arg2:Array, _arg3:Object=null):Number{
var _local4:Boolean = _arg2[0];
var _local5:ColorTransform = _arg1.transform.colorTransform;
var _local6:Number = (1 - (((_local5.redMultiplier + _local5.greenMultiplier) + _local5.blueMultiplier) / 3));
var _local7:Number = (((_local5.redOffset + _local5.greenOffset) + _local5.blueOffset) / 3);
if (_local4){
return (((_local7 > 0)) ? (_local7 / 0xFF) : -(_local6));
//unresolved jump
};
return ((_local7 / 100));
}
public static function _saturation_get(_arg1:Object, _arg2:Array, _arg3:Object=null):Number{
var _local4:Array = getObjectMatrix(_arg1);
var _local5:Boolean = _arg2[0];
var _local6:Number = (_local5) ? (1 / 3) : LUMINANCE_R;
var _local7:Number = (_local5) ? (1 / 3) : LUMINANCE_G;
var _local8:Number = (_local5) ? (1 / 3) : LUMINANCE_B;
var _local9:Number = (((((_local4[0] - _local6) / (1 - _local6)) + ((_local4[6] - _local7) / (1 - _local7))) + ((_local4[12] - _local8) / (1 - _local8))) / 3);
var _local10:Number = (1 - (((((((_local4[1] / _local7) + (_local4[2] / _local8)) + (_local4[5] / _local6)) + (_local4[7] / _local8)) + (_local4[10] / _local6)) + (_local4[11] / _local7)) / 6));
return (((_local9 + _local10) / 2));
}
public static function _oldColor_property_get(_arg1:Object, _arg2:Array, _arg3:Object=null):Number{
return ((_arg1.transform.colorTransform[_arg2[0]] * 100));
}
public static function _brightness_set(_arg1:Object, _arg2:Number, _arg3:Array, _arg4:Object=null):void{
var _local6:Number;
var _local7:Number;
var _local5:Boolean = _arg3[0];
if (_local5){
_local6 = (1 - Math.abs(_arg2));
_local7 = ((_arg2 > 0)) ? Math.round((_arg2 * 0xFF)) : 0;
} else {
_local6 = 1;
_local7 = Math.round((_arg2 * 100));
};
var _local8:ColorTransform = new ColorTransform(_local6, _local6, _local6, 1, _local7, _local7, _local7, 0);
_arg1.transform.colorTransform = _local8;
}
public static function _saturation_set(_arg1:Object, _arg2:Number, _arg3:Array, _arg4:Object=null):void{
var _local5:Boolean = _arg3[0];
var _local6:Number = (_local5) ? (1 / 3) : LUMINANCE_R;
var _local7:Number = (_local5) ? (1 / 3) : LUMINANCE_G;
var _local8:Number = (_local5) ? (1 / 3) : LUMINANCE_B;
var _local9:Number = _arg2;
var _local10:Number = (1 - _local9);
var _local11:Number = (_local6 * _local10);
var _local12:Number = (_local7 * _local10);
var _local13:Number = (_local8 * _local10);
var _local14:Array = [(_local11 + _local9), _local12, _local13, 0, 0, _local11, (_local12 + _local9), _local13, 0, 0, _local11, _local12, (_local13 + _local9), 0, 0, 0, 0, 0, 1, 0];
setObjectMatrix(_arg1, _local14);
}
private static function getObjectMatrix(_arg1:Object):Array{
var _local2:Number = 0;
while (_local2 < _arg1.filters.length) {
if ((_arg1.filters[_local2] is ColorMatrixFilter)){
return (_arg1.filters[_local2].matrix.concat());
};
_local2++;
};
return ([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]);
}
public static function getHueDistance(_arg1:Array, _arg2:Array):Number{
return (((Math.abs((_arg1[0] - _arg2[0])) + Math.abs((_arg1[1] - _arg2[1]))) + Math.abs((_arg1[2] - _arg2[2]))));
}
public static function _hue_set(_arg1:Object, _arg2:Number, _arg3:Array, _arg4:Object=null):void{
setObjectMatrix(_arg1, getHueMatrix(_arg2));
}
public static function _hue_get(_arg1:Object, _arg2:Array, _arg3:Object=null):Number{
var _local6:Number;
var _local8:Number;
var _local4:Array = getObjectMatrix(_arg1);
var _local5:Array = [];
_local5[0] = {angle:-179.9, matrix:getHueMatrix(-179.9)};
_local5[1] = {angle:180, matrix:getHueMatrix(180)};
_local6 = 0;
while (_local6 < _local5.length) {
_local5[_local6].distance = getHueDistance(_local4, _local5[_local6].matrix);
_local6++;
};
var _local7:Number = 15;
_local6 = 0;
while (_local6 < _local7) {
if (_local5[0].distance < _local5[1].distance){
_local8 = 1;
} else {
_local8 = 0;
};
_local5[_local8].angle = ((_local5[0].angle + _local5[1].angle) / 2);
_local5[_local8].matrix = getHueMatrix(_local5[_local8].angle);
_local5[_local8].distance = getHueDistance(_local4, _local5[_local8].matrix);
_local6++;
};
return (_local5[_local8].angle);
}
public static function getHueMatrix(_arg1:Number):Array{
var _local2:Number = ((_arg1 * Math.PI) / 180);
var _local3:Number = LUMINANCE_R;
var _local4:Number = LUMINANCE_G;
var _local5:Number = LUMINANCE_B;
var _local6:Number = Math.cos(_local2);
var _local7:Number = Math.sin(_local2);
var _local8:Array = [((_local3 + (_local6 * (1 - _local3))) + (_local7 * -(_local3))), ((_local4 + (_local6 * -(_local4))) + (_local7 * -(_local4))), ((_local5 + (_local6 * -(_local5))) + (_local7 * (1 - _local5))), 0, 0, ((_local3 + (_local6 * -(_local3))) + (_local7 * 0.143)), ((_local4 + (_local6 * (1 - _local4))) + (_local7 * 0.14)), ((_local5 + (_local6 * -(_local5))) + (_local7 * -0.283)), 0, 0, ((_local3 + (_local6 * -(_local3))) + (_local7 * -((1 - _local3)))), ((_local4 + (_local6 * -(_local4))) + (_local7 * _local4)), ((_local5 + (_local6 * (1 - _local5))) + (_local7 * _local5)), 0, 0, 0, 0, 0, 1, 0];
return (_local8);
}
public static function _color_property_get(_arg1:Object, _arg2:Array, _arg3:Object=null):Number{
return (_arg1.transform.colorTransform[_arg2[0]]);
}
public static function init():void{
Tweener.registerSpecialProperty("_color_ra", _oldColor_property_get, _oldColor_property_set, ["redMultiplier"]);
Tweener.registerSpecialProperty("_color_rb", _color_property_get, _color_property_set, ["redOffset"]);
Tweener.registerSpecialProperty("_color_ga", _oldColor_property_get, _oldColor_property_set, ["greenMultiplier"]);
Tweener.registerSpecialProperty("_color_gb", _color_property_get, _color_property_set, ["greenOffset"]);
Tweener.registerSpecialProperty("_color_ba", _oldColor_property_get, _oldColor_property_set, ["blueMultiplier"]);
Tweener.registerSpecialProperty("_color_bb", _color_property_get, _color_property_set, ["blueOffset"]);
Tweener.registerSpecialProperty("_color_aa", _oldColor_property_get, _oldColor_property_set, ["alphaMultiplier"]);
Tweener.registerSpecialProperty("_color_ab", _color_property_get, _color_property_set, ["alphaOffset"]);
Tweener.registerSpecialProperty("_color_redMultiplier", _color_property_get, _color_property_set, ["redMultiplier"]);
Tweener.registerSpecialProperty("_color_redOffset", _color_property_get, _color_property_set, ["redOffset"]);
Tweener.registerSpecialProperty("_color_greenMultiplier", _color_property_get, _color_property_set, ["greenMultiplier"]);
Tweener.registerSpecialProperty("_color_greenOffset", _color_property_get, _color_property_set, ["greenOffset"]);
Tweener.registerSpecialProperty("_color_blueMultiplier", _color_property_get, _color_property_set, ["blueMultiplier"]);
Tweener.registerSpecialProperty("_color_blueOffset", _color_property_get, _color_property_set, ["blueOffset"]);
Tweener.registerSpecialProperty("_color_alphaMultiplier", _color_property_get, _color_property_set, ["alphaMultiplier"]);
Tweener.registerSpecialProperty("_color_alphaOffset", _color_property_get, _color_property_set, ["alphaOffset"]);
Tweener.registerSpecialPropertySplitter("_color", _color_splitter);
Tweener.registerSpecialPropertySplitter("_colorTransform", _colorTransform_splitter);
Tweener.registerSpecialProperty("_brightness", _brightness_get, _brightness_set, [false]);
Tweener.registerSpecialProperty("_tintBrightness", _brightness_get, _brightness_set, [true]);
Tweener.registerSpecialProperty("_contrast", _contrast_get, _contrast_set);
Tweener.registerSpecialProperty("_hue", _hue_get, _hue_set);
Tweener.registerSpecialProperty("_saturation", _saturation_get, _saturation_set, [false]);
Tweener.registerSpecialProperty("_dumbSaturation", _saturation_get, _saturation_set, [true]);
}
private static function setObjectMatrix(_arg1:Object, _arg2:Array):void{
var _local6:ColorMatrixFilter;
var _local3:Array = _arg1.filters.concat();
var _local4:Boolean;
var _local5:Number = 0;
while (_local5 < _local3.length) {
if ((_local3[_local5] is ColorMatrixFilter)){
_local3[_local5].matrix = _arg2.concat();
_local4 = true;
};
_local5++;
};
if (!_local4){
_local6 = new ColorMatrixFilter(_arg2);
_local3[_local3.length] = _local6;
};
_arg1.filters = _local3;
}
public static function _color_property_set(_arg1:Object, _arg2:Number, _arg3:Array, _arg4:Object=null):void{
var _local5:ColorTransform = _arg1.transform.colorTransform;
_local5[_arg3[0]] = _arg2;
_arg1.transform.colorTransform = _local5;
}
public static function _oldColor_property_set(_arg1:Object, _arg2:Number, _arg3:Array, _arg4:Object=null):void{
var _local5:ColorTransform = _arg1.transform.colorTransform;
_local5[_arg3[0]] = (_arg2 / 100);
_arg1.transform.colorTransform = _local5;
}
public static function _contrast_get(_arg1:Object, _arg2:Array, _arg3:Object=null):Number{
var _local5:Number;
var _local6:Number;
var _local4:ColorTransform = _arg1.transform.colorTransform;
_local5 = ((((_local4.redMultiplier + _local4.greenMultiplier) + _local4.blueMultiplier) / 3) - 1);
_local6 = ((((_local4.redOffset + _local4.greenOffset) + _local4.blueOffset) / 3) / -128);
return (((_local5 + _local6) / 2));
}
public static function _colorTransform_splitter(_arg1:Object, _arg2:Array):Array{
var _local3:Array = new Array();
if (_arg1 == null){
_local3.push({name:"_color_redMultiplier", value:1});
_local3.push({name:"_color_redOffset", value:0});
_local3.push({name:"_color_greenMultiplier", value:1});
_local3.push({name:"_color_greenOffset", value:0});
_local3.push({name:"_color_blueMultiplier", value:1});
_local3.push({name:"_color_blueOffset", value:0});
} else {
_local3.push({name:"_color_redMultiplier", value:_arg1.redMultiplier});
_local3.push({name:"_color_redOffset", value:_arg1.redOffset});
_local3.push({name:"_color_blueMultiplier", value:_arg1.blueMultiplier});
_local3.push({name:"_color_blueOffset", value:_arg1.blueOffset});
_local3.push({name:"_color_greenMultiplier", value:_arg1.greenMultiplier});
_local3.push({name:"_color_greenOffset", value:_arg1.greenOffset});
_local3.push({name:"_color_alphaMultiplier", value:_arg1.alphaMultiplier});
_local3.push({name:"_color_alphaOffset", value:_arg1.alphaOffset});
};
return (_local3);
}
}
}//package caurina.transitions.properties
Section 2
//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 3
//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 4
//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 5
//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 6
//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 7
//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 8
//Tweener (caurina.transitions.Tweener)
package caurina.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tweener {
private static var _timeScale:Number = 1;
private static var _currentTimeFrame:Number;
private static var _specialPropertySplitterList:Object;
private static var _engineExists:Boolean = false;
private static var _specialPropertyModifierList:Object;
private static var _currentTime:Number;
private static var _tweenList:Array;
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 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 updateFrame():void{
_currentTimeFrame++;
}
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.31.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 = {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;
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 9
//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 10
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent)
package com.kongregate.as3.client.events {
import flash.events.*;
public class KongregateEvent extends Event {
public static const COMPLETE:String = "component_api_available";
public function KongregateEvent(_arg1:String){
super(_arg1);
}
}
}//package com.kongregate.as3.client.events
Section 11
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService)
package com.kongregate.as3.client.services {
import flash.events.*;
public class AbstractShadowService extends EventDispatcher {
protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{
trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4));
}
}
}//package com.kongregate.as3.client.services
Section 12
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow)
package com.kongregate.as3.client.services {
public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices {
private var mode:String;
public function HighScoreServiceShadow(){
mode = "";
}
public function submit(_arg1:Number, _arg2:String=null):void{
alert("IHighScoreServices", "submit", arguments);
}
public function connect():Boolean{
alert("IKongregateServices", "connect");
return (true);
}
public function requestList(_arg1:Function):void{
alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]"));
_arg1({success:false});
}
public function setMode(_arg1:String):void{
alert("IHighScoreServices", "setMode", arguments);
this.mode = _arg1;
}
}
}//package com.kongregate.as3.client.services
Section 13
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices)
package com.kongregate.as3.client.services {
public interface IHighScoreServices {
function setMode(_arg1:String):void;
function submit(_arg1:Number, _arg2:String=null):void;
function requestList(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 14
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices)
package com.kongregate.as3.client.services {
import flash.events.*;
public interface IKongregateServices extends IEventDispatcher {
function getPlayerInfo(_arg1:Function):void;
function connect(_arg1:Number=-1):Boolean;
}
}//package com.kongregate.as3.client.services
Section 15
//IStatServices (com.kongregate.as3.client.services.IStatServices)
package com.kongregate.as3.client.services {
public interface IStatServices {
function submitArray(_arg1:Array):void;
function submit(_arg1:String, _arg2:Number):void;
}
}//package com.kongregate.as3.client.services
Section 16
//IUserServices (com.kongregate.as3.client.services.IUserServices)
package com.kongregate.as3.client.services {
public interface IUserServices {
function getName():String;
function getPlayerInfo(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 17
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow)
package com.kongregate.as3.client.services {
public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices {
public function getName():String{
alert("IKongregateServices", "getName");
return ("Guest");
}
public function connect(_arg1:Number=-1):Boolean{
alert("IKongregateServices", "connect", arguments);
return (true);
}
public function getPlayerInfo(_arg1:Function):void{
alert("IKongregateServices", "getPlayerInfo");
_arg1(new Object());
}
}
}//package com.kongregate.as3.client.services
Section 18
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow)
package com.kongregate.as3.client.services {
public class StatServiceShadow extends AbstractShadowService implements IStatServices {
public function submitArray(_arg1:Array):void{
alert("IStatServices", "submitArray", arguments);
}
public function submit(_arg1:String, _arg2:Number):void{
alert("IStatServices", "submitStat", arguments);
}
}
}//package com.kongregate.as3.client.services
Section 19
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow)
package com.kongregate.as3.client.services {
public class UserServiceShadow extends AbstractShadowService implements IUserServices {
public function getName():String{
alert("UserService", "getName");
return ("Guest");
}
public function getPlayerInfo(_arg1:Function):void{
alert("UserService", "getPlayerInfo");
_arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""});
}
}
}//package com.kongregate.as3.client.services
Section 20
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
public interface IAPIBootstrap {
function init(_arg1:Event=null, _arg2:Stage=null):void;
function hideLog():void;
function showLog(_arg1:int=0):void;
}
}//package com.kongregate.as3.client
Section 21
//KongregateAPI (com.kongregate.as3.client.KongregateAPI)
package com.kongregate.as3.client {
import flash.events.*;
import com.kongregate.as3.client.events.*;
import flash.display.*;
import com.kongregate.as3.client.services.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
import flash.errors.*;
public class KongregateAPI extends Sprite {
private const VERSION:Number = 1;
private var loader:Loader;
private var loadedDomain:ApplicationDomain;
private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
private static var _connected:Boolean;
private static var kUser:IUserServices;
private static var _loaded:Boolean;
private static var kServices:IKongregateServices;
private static var kScores:IHighScoreServices;
private static var mInstance:KongregateAPI;
private static var kStats:IStatServices;
private static var kAPI:IAPIBootstrap;
public function KongregateAPI(){
if (mInstance != null){
throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access."));
};
mInstance = this;
this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function get loaded():Boolean{
return (_loaded);
}
public function get connected():Boolean{
return (_connected);
}
private function alertConnected(_arg1:TimerEvent=null):void{
var _local2:KongregateEvent;
var _local3:Boolean;
_local2 = new KongregateEvent(KongregateEvent.COMPLETE);
_local3 = this.dispatchEvent(_local2);
}
private function init(_arg1:Event):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:LoaderContext;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
_loaded = false;
_connected = false;
_local2 = LoaderInfo(root.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
createShadowServices();
return;
};
Security.allowDomain("*.kongregate.com");
Security.allowDomain("kongregatetrunk.com");
_local4 = new URLRequest(_local3);
_local5 = new LoaderContext(false);
_local5.applicationDomain = ApplicationDomain.currentDomain;
_local5.securityDomain = SecurityDomain.currentDomain;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(_local4, _local5);
}
public function get api():IAPIBootstrap{
return (kAPI);
}
private function loadComplete(_arg1:Event):void{
getServices();
}
public function get scores():IHighScoreServices{
return (kScores);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
throw (new IOError(("API file not found. " + _arg1)));
}
public function get services():IKongregateServices{
return (kServices);
}
public function get stats():IStatServices{
return (kStats);
}
private function createShadowServices():void{
var _local1:Timer;
trace(">>> Kongregate Shadow Services instantiated for local development..");
kServices = new KongregateServiceShadow();
kScores = new HighScoreServiceShadow();
kStats = new StatServiceShadow();
kUser = new UserServiceShadow();
_local1 = new Timer(200, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected);
_local1.start();
_connected = true;
}
public function get user():IUserServices{
return (kUser);
}
private function getServices():void{
var _local1:ApplicationDomain;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = ApplicationDomain.currentDomain;
kAPI = IAPIBootstrap(loader.getChildAt(0));
this.addChild(loader);
_local2 = _local1.getDefinition(CLASS_SERVICES);
trace(_local2);
kServices = _local2.getInstance();
_local3 = _local1.getDefinition(CLASS_SCORES);
kScores = _local3.getInstance();
_local4 = _local1.getDefinition(CLASS_STATS);
kStats = _local4.getInstance();
_local5 = _local1.getDefinition(CLASS_USER);
kUser = _local5.getInstance();
kServices.connect(VERSION);
_loaded = true;
_connected = true;
alertConnected();
}
public static function getInstance():KongregateAPI{
if (!mInstance){
throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it."));
};
return (mInstance);
}
}
}//package com.kongregate.as3.client
Section 22
//PseudoRandom (com.urbansquall.chaos.PseudoRandom)
package com.urbansquall.chaos {
public class PseudoRandom {
private var m_initialSeed:uint;
private var m_seed:uint;
private static var m_instance:PseudoRandom;
public function PseudoRandom(_arg1:uint=1){
if ((((_arg1 == 0)) || ((_arg1 >= uint((uint.MAX_VALUE / 2)))))){
_arg1 = 1;
};
seed = _arg1;
}
public function set seed(_arg1:uint):void{
m_initialSeed = (m_seed = _arg1);
}
public function boolean(_arg1:Number=0.5):Boolean{
return ((random() < _arg1));
}
public function reset():void{
m_seed = m_initialSeed;
}
public function get seed():uint{
return (m_initialSeed);
}
public function random():Number{
return ((nextRand() / 2147483647));
}
private function nextRand():uint{
return ((m_seed = ((m_seed * 16807) % 2147483647)));
}
public function randomRange(_arg1:Number, _arg2:Number=NaN):Number{
if (isNaN(_arg2)){
_arg2 = _arg1;
_arg1 = 0;
};
return ((_arg1 + (random() * (_arg2 - _arg1))));
}
public function sign(_arg1:Number=0.5):int{
return (((random() < _arg1)) ? 1 : -1);
}
public static function get seed():uint{
return (instance.seed);
}
public static function random():Number{
return (instance.random());
}
public static function get instance():PseudoRandom{
if (m_instance == null){
m_instance = new (PseudoRandom);
};
return (m_instance);
}
public static function boolean(_arg1:Number=0.5):Boolean{
return (instance.boolean(_arg1));
}
public static function set seed(_arg1:uint):void{
instance.seed = _arg1;
}
public static function randomRange(_arg1:Number, _arg2:Number):Number{
return (instance.randomRange(_arg1, _arg2));
}
public static function sign(_arg1:Number=0.5):int{
return (instance.sign(_arg1));
}
public static function reset():void{
instance.reset();
}
}
}//package com.urbansquall.chaos
Section 23
//WeightedRandom (com.urbansquall.chaos.WeightedRandom)
package com.urbansquall.chaos {
import flash.utils.*;
public class WeightedRandom {
private var m_options:Dictionary;
private var m_random:PseudoRandom;
private var m_totalWeight:Number;
public function WeightedRandom(_arg1:PseudoRandom=null){
if (_arg1 == null){
_arg1 = new PseudoRandom(getTimer());
};
m_random = _arg1;
m_options = new Dictionary(false);
m_totalWeight = 0;
}
public function grabOption():Object{
var _local4:Object;
var _local5:Number;
var _local1:Number = m_random.random();
var _local2:Number = (m_totalWeight * _local1);
var _local3:Number = 0;
for (_local4 in m_options) {
_local5 = m_options[_local4];
_local3 = (_local3 + _local5);
if (_local3 >= _local2){
return (_local4);
};
};
return (null);
}
public function dispose():void{
var _local1:String;
m_random = null;
for (_local1 in m_options) {
delete m_options[_local1];
};
m_options = null;
}
public function changeWeight(_arg1:Object, _arg2:Number):void{
unregisterOption(_arg1);
registerOption(_arg1, _arg2);
}
public function unregisterOption(_arg1:Object):void{
if (m_options[_arg1] == null){
return;
};
m_totalWeight = (m_totalWeight - m_options[_arg1]);
delete m_options[_arg1];
}
public function registerOption(_arg1:Object, _arg2:Number):void{
if (_arg2 < 0){
trace(("WeightedRandom::registerOption. Bad weight for " + _arg1));
return;
};
m_totalWeight = (m_totalWeight + _arg2);
m_options[_arg1] = _arg2;
}
public function toString():String{
var _local2:Object;
var _local3:Number;
var _local1 = "[WeightedRandom ";
for (_local2 in m_options) {
_local3 = m_options[_local2];
_local1 = (_local1 + (((("{" + _local2) + ":") + _local3) + "}"));
};
_local1 = (_local1 + "]");
return (_local1);
}
public function get totalWeight():Number{
return (m_totalWeight);
}
}
}//package com.urbansquall.chaos
Section 24
//ChannelWrapper (com.urbansquall.echo.ChannelWrapper)
package com.urbansquall.echo {
import flash.events.*;
import flash.media.*;
public class ChannelWrapper extends EventDispatcher {
private var m_volume:Number;
private var m_channel:SoundChannel;
private var m_parent:SoundGroup;
public function ChannelWrapper(_arg1:SoundChannel){
m_channel = _arg1;
m_volume = 1;
m_channel.addEventListener(Event.SOUND_COMPLETE, completeEvent);
}
private function completeEvent(_arg1:Event):void{
this.dispatchEvent(new WrapperEvent(this, WrapperEvent.SOUND_COMPLETE));
}
public function get channel():SoundChannel{
return (m_channel);
}
public function get localVolume():Number{
return (m_volume);
}
public function stop():void{
m_channel.stop();
this.dispatchEvent(new WrapperEvent(this, WrapperEvent.SOUND_STOPPED));
}
public function set localVolume(_arg1:Number):void{
m_volume = _arg1;
updateChannelVolume();
}
public function set parent(_arg1:SoundGroup):void{
m_parent = _arg1;
}
public function updateChannelVolume():void{
var _local1:SoundTransform = m_channel.soundTransform;
_local1.volume = (localVolume * m_parent.volume);
m_channel.soundTransform = _local1;
}
}
}//package com.urbansquall.echo
Section 25
//GroupedSound (com.urbansquall.echo.GroupedSound)
package com.urbansquall.echo {
import flash.media.*;
public class GroupedSound {
private var m_defaultVolume:Number;
private var m_group:SoundGroup;
private var m_sound:Sound;
public function GroupedSound(_arg1:SoundGroup, _arg2:Sound, _arg3:Number=1){
m_group = _arg1;
m_sound = _arg2;
m_defaultVolume = _arg3;
}
public function get sound():Sound{
return (m_sound);
}
public function play(_arg1:int=0, _arg2:int=0, _arg3:SoundTransform=null):ChannelWrapper{
var _local4:SoundChannel = m_sound.play(_arg1, _arg2, _arg3);
var _local5:ChannelWrapper;
if (_local4 != null){
_local5 = new ChannelWrapper(_local4);
m_group.addChild(_local5);
_local5.localVolume = m_defaultVolume;
};
return (_local5);
}
public function set defaultVolume(_arg1:Number):void{
m_defaultVolume = _arg1;
}
public function get defaultVolume():Number{
return (m_defaultVolume);
}
public function get group():SoundGroup{
return (m_group);
}
}
}//package com.urbansquall.echo
Section 26
//Loop (com.urbansquall.echo.Loop)
package com.urbansquall.echo {
import flash.media.*;
public class Loop {
private var m_wrapper:ChannelWrapper;
private var m_groupedSound:GroupedSound;
private var m_volume:Number;
public function Loop(_arg1:SoundGroup, _arg2:Sound){
m_groupedSound = new GroupedSound(_arg1, _arg2);
m_volume = 1;
}
public function isPlaying():Boolean{
return (!((m_wrapper == null)));
}
public function stop():void{
if (m_wrapper != null){
m_wrapper.stop();
};
}
private function wrapperPlaybackEnded(_arg1:WrapperEvent):void{
m_wrapper.removeEventListener(WrapperEvent.SOUND_COMPLETE, wrapperPlaybackEnded);
m_wrapper.removeEventListener(WrapperEvent.SOUND_STOPPED, wrapperPlaybackEnded);
m_wrapper = null;
}
public function play():void{
if (m_wrapper != null){
stop();
};
m_wrapper = m_groupedSound.play(0, int.MAX_VALUE);
if (m_wrapper != null){
m_wrapper.localVolume = m_volume;
m_wrapper.addEventListener(WrapperEvent.SOUND_COMPLETE, wrapperPlaybackEnded);
m_wrapper.addEventListener(WrapperEvent.SOUND_STOPPED, wrapperPlaybackEnded);
};
}
public function set volume(_arg1:Number):void{
m_volume = _arg1;
if (m_wrapper != null){
m_wrapper.localVolume = m_volume;
};
}
public function get volume():Number{
if (m_wrapper != null){
return (m_wrapper.localVolume);
};
return (0);
}
}
}//package com.urbansquall.echo
Section 27
//SoundGroup (com.urbansquall.echo.SoundGroup)
package com.urbansquall.echo {
public class SoundGroup {
private var m_volume:Number;
private var m_children:Array;
public function SoundGroup(){
m_volume = 1;
m_children = new Array();
}
private function childPlaybackEnded(_arg1:WrapperEvent):void{
removeChild(_arg1.channelWrapper);
}
public function get numChildren():int{
return (m_children.length);
}
public function dispose():void{
stopAll();
m_children = null;
}
public function removeChild(_arg1:ChannelWrapper):void{
var _local2:int = m_children.indexOf(_arg1);
if (_local2 == -1){
throw (new Error("SoundGroup:removeChild. Object must be a child of the Group"));
};
m_children.splice(_local2, 1);
_arg1.parent = null;
_arg1.removeEventListener(WrapperEvent.SOUND_COMPLETE, childPlaybackEnded);
_arg1.removeEventListener(WrapperEvent.SOUND_STOPPED, childPlaybackEnded);
}
public function set volume(_arg1:Number):void{
var _local2:ChannelWrapper;
m_volume = _arg1;
for each (_local2 in m_children) {
_local2.updateChannelVolume();
};
}
public function get volume():Number{
return (m_volume);
}
public function addChild(_arg1:ChannelWrapper):void{
m_children.push(_arg1);
_arg1.parent = this;
_arg1.updateChannelVolume();
_arg1.addEventListener(WrapperEvent.SOUND_COMPLETE, childPlaybackEnded);
_arg1.addEventListener(WrapperEvent.SOUND_STOPPED, childPlaybackEnded);
}
public function stopAll():void{
var _local3:ChannelWrapper;
var _local1:Array = new Array(m_children.length);
var _local2:int;
while (_local2 < m_children.length) {
_local1[_local2] = m_children[_local2];
_local2++;
};
for each (_local3 in _local1) {
_local3.stop();
};
}
}
}//package com.urbansquall.echo
Section 28
//WrapperEvent (com.urbansquall.echo.WrapperEvent)
package com.urbansquall.echo {
import flash.events.*;
public class WrapperEvent extends Event {
private var m_wrapper:ChannelWrapper;
public static const SOUND_COMPLETE:String = "wrapper_soundComplete";
public static const SOUND_STOPPED:String = "wrapper_soundStop";
public function WrapperEvent(_arg1:ChannelWrapper, _arg2:String, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg2, _arg3, _arg4);
m_wrapper = _arg1;
}
public function get channelWrapper():ChannelWrapper{
return (m_wrapper);
}
}
}//package com.urbansquall.echo
Section 29
//Animation (com.urbansquall.ginger.Animation)
package com.urbansquall.ginger {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
public class Animation extends EventDispatcher {
var m_frameMap:Dictionary;
private var m_totalFrames:int;
private var m_isLooping:Boolean;
var m_framesOfRotation:int;
var m_fps:int;
var m_frames:Array;
var m_degToRotBy:Number;
public function Animation(_arg1:int, _arg2:int=1){
m_frames = [];
m_frameMap = new Dictionary();
m_fps = _arg1;
m_framesOfRotation = _arg2;
if (m_framesOfRotation < 1){
m_framesOfRotation = 1;
};
m_degToRotBy = (360 / m_framesOfRotation);
}
public function addFrame(_arg1:int, _arg2:BitmapData, _arg3:Rectangle, _arg4:Number=0, _arg5:Number=0, _arg6:String=null):void{
if (_arg6 == ""){
_arg6 = null;
};
var _local7:BitmapData = new BitmapData(_arg3.width, _arg3.height, true, 0);
_local7.copyPixels(_arg2, _arg3, new Point());
m_frames.push(new Frame(_arg1, _local7, m_framesOfRotation, _arg6, _arg4, _arg5));
if (_arg6 != null){
m_frameMap[_arg6] = m_totalFrames;
};
m_totalFrames++;
}
public function set isLooping(_arg1:Boolean):void{
m_isLooping = _arg1;
}
public function get isLooping():Boolean{
return (m_isLooping);
}
public function changeAllOffsets(_arg1:int, _arg2:int):void{
var _local4:Frame;
var _local3:int;
while (_local3 < m_frames.length) {
_local4 = m_frames[_local3];
_local4.offsetX = _arg1;
_local4.offsetY = _arg2;
_local3++;
};
}
}
}//package com.urbansquall.ginger
Section 30
//AnimationBuilder (com.urbansquall.ginger.AnimationBuilder)
package com.urbansquall.ginger {
import flash.display.*;
import flash.geom.*;
public class AnimationBuilder {
public static function importStrip(_arg1:int, _arg2:BitmapData, _arg3:int, _arg4:int, _arg5:int=-1, _arg6:int=0, _arg7:int=0, _arg8:int=1):Animation{
var _local12:Rectangle;
var _local14:int;
var _local15:int;
var _local9:Animation = new Animation(_arg1, _arg8);
var _local10:int = Math.ceil((_arg2.height / _arg4));
var _local11:int = Math.ceil((_arg2.width / _arg3));
if (_arg5 == -1){
_arg5 = (_local10 * _local11);
};
var _local13:int;
while (_local13 < _arg5) {
_local14 = (_local13 % _local11);
_local15 = Math.floor((_local13 / _local11));
_local12 = new Rectangle((_arg6 + (_local14 * _arg3)), (_arg7 + (_local15 * _arg4)), _arg3, _arg4);
_local9.addFrame(1, _arg2, _local12, (_arg3 / 2), (_arg4 / 2));
_local13++;
};
return (_local9);
}
}
}//package com.urbansquall.ginger
Section 31
//AnimationEvent (com.urbansquall.ginger.AnimationEvent)
package com.urbansquall.ginger {
import flash.events.*;
public class AnimationEvent extends Event {
public var begin:Boolean;
public var animationID:String;
public static const CHANGE:String = "animation_event_change";
public function AnimationEvent(_arg1:String, _arg2:Boolean, _arg3:String, _arg4:Boolean=false, _arg5:Boolean=false){
super(_arg1, _arg4, _arg5);
begin = _arg2;
animationID = _arg3;
}
}
}//package com.urbansquall.ginger
Section 32
//AnimationPlayer (com.urbansquall.ginger.AnimationPlayer)
package com.urbansquall.ginger {
import flash.display.*;
import flash.utils.*;
public class AnimationPlayer extends Bitmap {
private var m_animationDelay:int;
private var m_framesMap:Dictionary;
private var m_currentFrame:Frame;
private var m_hasAnimationEnded:Boolean;
private var m_rotation:Number;// = 0
private var m_desiredY:Number;// = 0
private var m_currentAnimation:Animation;
private var m_fps:int;
private var m_desiredX:Number;// = 0
private var m_IDArray:Array;
private var m_defaultAnimationID:String;
private var m_totalFrames:int;
private var m_rotationFrame:int;
private var m_frames:Array;
private var m_framesPassed:int;
private var m_animationMap:Dictionary;
private var m_isPlaying:Boolean;
private var m_isLooping:Boolean;
private var m_hasRotationChanged:Boolean;
private var m_frameIndex:int;
private var m_currentAnimationID:String;
private var m_timeSinceLastUpdate:int;
private var m_animationQueue:Array;
public function AnimationPlayer(_arg1:String="auto", _arg2:Boolean=false){
super(null, _arg1, _arg2);
m_IDArray = [];
m_animationQueue = [];
m_frames = [];
m_animationMap = new Dictionary();
m_framesMap = new Dictionary();
}
public function togglePause():void{
if (m_currentAnimation != null){
m_isPlaying = !(m_isPlaying);
};
}
override public function get rotation():Number{
return (m_rotation);
}
override public function get x():Number{
return (m_desiredX);
}
override public function set width(_arg1:Number):void{
throw (new Error("<AnimationPlayer> Width / Height cannot be changed!"));
}
public function queue(_arg1:String):void{
var _local2:Animation = m_animationMap[_arg1];
if (_local2 == null){
throw (new Error("<AnimationPlayer> Invalid Animation ID!"));
};
m_animationQueue.push(_arg1);
}
public function isPaused():Boolean{
return (m_isPlaying);
}
public function get defaultAnimationID():String{
return (m_defaultAnimationID);
}
public function get offsetY():Number{
return (m_currentFrame.offsetY);
}
private function updateFrame():void{
if (m_currentFrame == null){
return;
};
m_framesPassed++;
if (m_framesPassed > m_currentFrame.numFrames){
m_framesPassed = 0;
if (++m_frameIndex >= m_totalFrames){
if (!m_isLooping){
m_hasAnimationEnded = true;
return;
};
m_frameIndex = 0;
};
m_currentFrame = Frame(m_frames[m_frameIndex]);
bitmapData = (m_currentFrame.bitmapData[m_rotationFrame] as BitmapData);
performOffset();
if (m_currentFrame.frameID != null){
if (hasEventListener(FrameEvent.CHANGE)){
dispatchEvent(new FrameEvent(FrameEvent.CHANGE, true, m_currentFrame.frameID, m_currentAnimationID));
};
};
};
}
public function get offsetX():Number{
return (m_currentFrame.offsetX);
}
override public function set x(_arg1:Number):void{
m_desiredX = _arg1;
performOffset();
}
public function get animationIDs():Array{
return (m_IDArray.slice());
}
public function set defaultAnimationID(_arg1:String):void{
m_defaultAnimationID = _arg1;
}
public function play(_arg1:String):void{
if (m_animationMap[_arg1] == null){
throw (new Error((("<AnimationPlayer> Invalid Animation ID [" + _arg1) + "]")));
};
m_isPlaying = true;
m_hasAnimationEnded = false;
m_currentAnimationID = _arg1;
startNewAnimation(_arg1);
m_animationQueue = [];
m_animationQueue.push(m_currentAnimation);
}
override public function get width():Number{
return (m_currentFrame.width[m_rotationFrame]);
}
override public function get height():Number{
return (m_currentFrame.height[m_rotationFrame]);
}
private function startNewAnimation(_arg1:String):void{
m_timeSinceLastUpdate = 0;
m_currentAnimationID = _arg1;
m_currentAnimation = m_animationMap[m_currentAnimationID];
if (m_currentAnimation == null){
m_currentAnimation = m_animationMap[m_defaultAnimationID];
m_currentAnimationID = m_defaultAnimationID;
};
fps = m_currentAnimation.m_fps;
m_frames = m_currentAnimation.m_frames;
m_framesMap = m_currentAnimation.m_frameMap;
m_isLooping = m_currentAnimation.isLooping;
m_totalFrames = m_frames.length;
m_frameIndex = 0;
m_currentFrame = Frame(m_frames[0]);
bitmapData = m_currentFrame.bitmapData[m_rotationFrame];
performOffset();
if (hasEventListener(AnimationEvent.CHANGE)){
dispatchEvent(new AnimationEvent(AnimationEvent.CHANGE, true, m_currentAnimationID));
};
}
override public function set height(_arg1:Number):void{
throw (new Error("<AnimationPlayer> Width / Height cannot be changed!"));
}
public function update(_arg1:Number):void{
var _local2:AnimationEvent;
if (m_hasAnimationEnded){
_local2 = null;
if (hasEventListener(AnimationEvent.CHANGE)){
_local2 = new AnimationEvent(AnimationEvent.CHANGE, false, m_currentAnimationID);
};
m_animationQueue.shift();
if (((((((!(m_isLooping)) && ((m_animationQueue.length == 0)))) && ((m_animationQueue[0] == undefined)))) && ((m_currentAnimationID == m_defaultAnimationID)))){
m_isPlaying = false;
} else {
startNewAnimation(m_animationQueue[0]);
};
m_hasAnimationEnded = false;
if (_local2 != null){
dispatchEvent(_local2);
};
} else {
if (m_hasRotationChanged){
bitmapData = m_currentFrame.bitmapData[m_rotationFrame];
m_hasRotationChanged = false;
};
};
if (m_isPlaying){
m_timeSinceLastUpdate = (m_timeSinceLastUpdate + _arg1);
if (m_timeSinceLastUpdate > m_animationDelay){
m_timeSinceLastUpdate = (m_timeSinceLastUpdate - m_animationDelay);
updateFrame();
};
};
}
public function gotoFrame(_arg1:String, _arg2:String=null):void{
if (_arg2 != null){
startNewAnimation(_arg2);
};
var _local3:int = m_framesMap[_arg1];
m_currentFrame = Frame(m_frames[_local3]);
performOffset();
bitmapData = (m_currentFrame.bitmapData[m_rotationFrame] as BitmapData);
m_frameIndex = _local3;
m_framesPassed = 0;
m_isPlaying = false;
if (m_currentFrame.frameID != null){
if (hasEventListener(FrameEvent.CHANGE)){
dispatchEvent(new FrameEvent(FrameEvent.CHANGE, true, m_currentFrame.frameID, m_currentAnimationID));
};
};
}
private function performOffset():void{
super.x = (m_desiredX - offsetX);
super.y = (m_desiredY - offsetY);
}
public function set fps(_arg1:int):void{
m_fps = _arg1;
if (_arg1 <= 0){
m_fps = 0;
m_animationDelay = 0;
} else {
m_fps = _arg1;
m_animationDelay = (1000 / _arg1);
};
}
public function addAnimation(_arg1:String, _arg2:Animation):void{
m_IDArray.push(_arg1);
m_animationMap[_arg1] = _arg2;
if (m_defaultAnimationID == null){
m_defaultAnimationID = _arg1;
startNewAnimation(m_defaultAnimationID);
play(_arg1);
performOffset();
};
}
public function get currentAnimationID():String{
return (m_currentAnimationID);
}
public function copy():AnimationPlayer{
var _local3:String;
var _local1:AnimationPlayer = new AnimationPlayer();
var _local2:int;
while (_local2 < m_IDArray.length) {
_local3 = m_IDArray[_local2];
_local1.addAnimation(_local3, m_animationMap[_local3]);
_local2++;
};
_local1.defaultAnimationID = m_defaultAnimationID;
_local1.fps = m_fps;
_local1.play(m_defaultAnimationID);
return (_local1);
}
public function get fps():int{
return (m_fps);
}
override public function set y(_arg1:Number):void{
m_desiredY = _arg1;
performOffset();
}
public function pause():void{
m_isPlaying = false;
}
override public function get y():Number{
return (m_desiredY);
}
override public function set rotation(_arg1:Number):void{
m_rotation = int(_arg1);
m_rotation = (m_rotation % 360);
if (m_rotation < 0){
m_rotation = (m_rotation + 360);
};
m_rotationFrame = Math.round((m_rotation / m_currentAnimation.m_degToRotBy));
if (m_rotationFrame >= m_currentAnimation.m_framesOfRotation){
m_rotationFrame = 0;
};
m_hasRotationChanged = true;
}
public function unpause():void{
if (m_currentAnimation != null){
m_isPlaying = true;
};
}
}
}//package com.urbansquall.ginger
Section 33
//AnimationPlayerFactory (com.urbansquall.ginger.AnimationPlayerFactory)
package com.urbansquall.ginger {
import flash.utils.*;
public class AnimationPlayerFactory {
private var m_animations:Dictionary;
public function AnimationPlayerFactory(){
m_animations = new Dictionary();
}
public function instantiate(_arg1:String):AnimationPlayer{
if (m_animations[_arg1] == null){
throw (new Error((("AnimationFactory:instantiate. There is no animation with the name [" + _arg1) + "]")));
};
var _local2:AnimationPlayer = m_animations[_arg1];
return (_local2.copy());
}
public function register(_arg1:String, _arg2:AnimationPlayer):void{
if (m_animations[_arg1] != null){
throw (new Error((("AnimationFactory:register. There is already an animation with the name [" + _arg1) + "]")));
};
m_animations[_arg1] = _arg2;
}
public function dispose():void{
var _local1:String;
var _local2:AnimationPlayer;
for (_local1 in m_animations) {
_local2 = m_animations[_local1];
delete m_animations[_local1];
};
m_animations = null;
}
}
}//package com.urbansquall.ginger
Section 34
//Frame (com.urbansquall.ginger.Frame)
package com.urbansquall.ginger {
import flash.display.*;
import flash.geom.*;
class Frame {
public var offsetX:Number;
public var width:Array;
public var height:Array;
public var frameID:String;
public var numFrames:int;
public var offsetY:Number;
public var bitmapData:Array;
function Frame(_arg1:int, _arg2:BitmapData, _arg3:int, _arg4:String, _arg5:Number=0, _arg6:Number=0){
numFrames = _arg1;
frameID = _arg4;
bitmapData = [];
width = [];
height = [];
offsetX = _arg5;
offsetY = _arg6;
if (_arg3 == 1){
createFrameWithNoRotation(_arg2);
} else {
createRotatedFrame(_arg2, _arg3);
};
}
private function createRotatedFrame(_arg1:BitmapData, _arg2:int):void{
var _local3:int = _arg1.width;
var _local4:int = _arg1.height;
var _local5:Number = ((_local3 / 2) * Math.SQRT2);
var _local6:Number = ((_local4 / 2) * Math.SQRT2);
var _local7:Number = Math.max(_local5, _local6);
var _local8:Number = Math.ceil((Math.max(_local3, _local4) * Math.SQRT2));
var _local9:Matrix = new Matrix(1, 0, 0, 1, _local7, _local7);
var _local10:BitmapData = new BitmapData(_local8, _local8, true, 0);
var _local11:Sprite = new Sprite();
var _local12:Sprite = new Sprite();
var _local13:BitmapData = new BitmapData(_local3, _local4, true, 0);
var _local14:Bitmap = new Bitmap(_arg1, "auto", true);
_local14.x = -((_local3 / 2));
_local14.y = -((_local4 / 2));
_local12.addChild(_local14);
_local11.addChild(_local12);
var _local15:int;
while (_local15 < _arg2) {
_local10.fillRect(_local10.rect, 0);
_local10.draw(_local11, _local9);
bitmapData[_local15] = _local10.clone();
width[_local15] = _local12.width;
height[_local15] = _local12.height;
_local12.rotation = (_local12.rotation + (360 / _arg2));
_local15++;
};
offsetX = (offsetX + ((_local10.width - _local3) / 2));
offsetY = (offsetY + ((_local10.height - _local4) / 2));
}
private function createFrameWithNoRotation(_arg1:BitmapData):void{
bitmapData[0] = _arg1;
width[0] = _arg1.width;
height[0] = _arg1.height;
}
}
}//package com.urbansquall.ginger
Section 35
//FrameEvent (com.urbansquall.ginger.FrameEvent)
package com.urbansquall.ginger {
import flash.events.*;
public class FrameEvent extends Event {
public var frameID:String;
public var begin:Boolean;
public var animationID:String;
public static const CHANGE:String = "frame_event_change";
public function FrameEvent(_arg1:String, _arg2:Boolean, _arg3:String, _arg4:String, _arg5:Boolean=false, _arg6:Boolean=false){
super(_arg1, _arg5, _arg6);
begin = _arg2;
frameID = _arg3;
animationID = _arg4;
}
}
}//package com.urbansquall.ginger
Section 36
//Ticker (com.urbansquall.metronome.Ticker)
package com.urbansquall.metronome {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Ticker extends EventDispatcher {
private var m_accruedTime:Number;
private var m_running:Boolean;
private var m_shape:Shape;
private var m_delay:Number;
private var m_timeOfLastUpdate:Number;
public function Ticker(_arg1:Number=33){
m_running = false;
m_delay = _arg1;
m_shape = new Shape();
}
public function get delay():int{
return (m_delay);
}
public function stop():void{
m_shape.removeEventListener(Event.ENTER_FRAME, tick);
m_running = false;
}
private function calculateDeltaTime():Number{
var _local1:Number = getTimer();
var _local2:Number = (_local1 - m_timeOfLastUpdate);
m_timeOfLastUpdate = _local1;
return (_local2);
}
public function start():void{
m_running = true;
m_timeOfLastUpdate = getTimer();
m_accruedTime = 0;
m_shape.addEventListener(Event.ENTER_FRAME, tick, false, 0, true);
}
private function tick(_arg1:Event):void{
var _local2:Number = calculateDeltaTime();
if (!m_running){
return;
};
m_accruedTime = (m_accruedTime + _local2);
while (m_accruedTime >= m_delay) {
m_accruedTime = (m_accruedTime - m_delay);
dispatchEvent(new TickerEvent(m_delay));
};
}
public function get running():Boolean{
return (m_running);
}
}
}//package com.urbansquall.metronome
Section 37
//TickerEvent (com.urbansquall.metronome.TickerEvent)
package com.urbansquall.metronome {
import flash.events.*;
public class TickerEvent extends Event {
private var m_interval:Number;
public static const TICK:String = "tick";
public function TickerEvent(_arg1:Number){
super(TICK, false, false);
m_interval = _arg1;
}
public function get interval():Number{
return (m_interval);
}
}
}//package com.urbansquall.metronome
Section 38
//safeint (com.urbansquall.security.safeint)
package com.urbansquall.security {
public class safeint {
private var m_safeVal:int;
private var m_seed:int;
public function safeint(_arg1:int){
m_seed = (Math.random() * int.MAX_VALUE);
this.val = _arg1;
}
public function get val():int{
return ((m_safeVal ^ m_seed));
}
public function set val(_arg1:int):void{
m_safeVal = (_arg1 ^ m_seed);
}
public function toString():String{
return (this.val.toString());
}
}
}//package com.urbansquall.security
Section 39
//SafeSolManager (com.urbansquall.security.SafeSolManager)
package com.urbansquall.security {
import flash.utils.*;
import flash.net.*;
public class SafeSolManager {
private var m_keys:Array;
private var m_hexKey:uint;
private var m_so:SharedObject;
private var m_xorKey:int;
public function SafeSolManager(_arg1:String, _arg2:uint=16753249){
m_so = SharedObject.getLocal(_arg1);
m_hexKey = _arg2;
m_keys = [];
if (m_so.data["ads"] == undefined){
m_so.data["ads"] = new Object();
};
if (readRealData(m_hexKey, int, false) == undefined){
m_xorKey = (Math.random() * int.MAX_VALUE);
writeRealData(m_hexKey, m_xorKey, int, false);
} else {
m_xorKey = readRealData(m_hexKey, int, false);
};
}
private function hexStr(_arg1:uint):String{
return (_arg1.toString(16).toUpperCase());
}
public function flush():void{
m_so.flush();
}
public function readString(_arg1:String):String{
return (read(_arg1, String));
}
public function writeNumber(_arg1:String, _arg2:Number):void{
write(_arg1, _arg2, Number);
}
public function createBool(_arg1:String, _arg2:Boolean, _arg3:Boolean=false):void{
create(_arg1, _arg2, Boolean, _arg3);
}
public function writeInt(_arg1:String, _arg2:int):void{
write(_arg1, _arg2, int);
}
public function createInt(_arg1:String, _arg2:int, _arg3:Boolean=false):void{
create(_arg1, _arg2, int, _arg3);
}
private function readFakeData(_arg1:String){
return (m_so.data[_arg1]);
}
public function writeString(_arg1:String, _arg2:String):void{
write(_arg1, _arg2, String);
}
private function read(_arg1:String, _arg2:Class){
var _local3:int = m_keys.indexOf(_arg1);
if (_local3 < 0){
return (undefined);
};
var _local4:uint = ((m_hexKey + _local3) + 1);
return (readRealData(_local4, _arg2, true));
}
private function readRealData(_arg1:uint, _arg2:Class, _arg3:Boolean){
var _local5:ByteArray;
var _local6:ByteArray;
var _local7:ByteArray;
var _local8:int;
var _local9:int;
var _local4:* = m_so.data["ads"][hexStr(_arg1)];
if (((!((_local4 == undefined))) && (_arg3))){
if (_arg2 == int){
_local4 = (_local4 ^ m_xorKey);
} else {
if (_arg2 == Boolean){
_local5 = new ByteArray();
_local5.writeInt((_local4 ^ m_xorKey));
_local5.position = 0;
_local4 = _local5.readBoolean();
} else {
if (_arg2 == Number){
_local6 = new ByteArray();
_local6.writeInt((_local4 ^ m_xorKey));
_local6.position = 0;
_local4 = _local6.readFloat();
} else {
if (_arg2 == String){
_local7 = new ByteArray();
_local4.position = 0;
_local8 = 0;
while (_local8 < (_local4.length / 4)) {
_local9 = _local4.readInt();
_local7.writeInt((_local9 ^ m_xorKey));
_local8++;
};
_local7.position = 0;
_local4 = _local7.readUTF();
};
};
};
};
};
return (_local4);
}
private function write(_arg1:String, _arg2, _arg3:Class):void{
var _local4:int = m_keys.indexOf(_arg1);
if (_local4 < 0){
throw (new Error((("You did not first call create() for [" + _arg1) + "] so it was not written.")));
};
var _local5:uint = ((m_hexKey + _local4) + 1);
writeRealData(_local5, _arg2, _arg3, true);
if (readFakeData(_arg1) != undefined){
writeFakeData(_arg1, _arg2);
};
}
public function readBool(_arg1:String):Boolean{
return (read(_arg1, Boolean));
}
public function createNumber(_arg1:String, _arg2:Number, _arg3:Boolean=false):void{
create(_arg1, _arg2, Number, _arg3);
}
private function writeRealData(_arg1:uint, _arg2, _arg3:Class, _arg4:Boolean):void{
var _local6:ByteArray;
var _local7:ByteArray;
var _local8:ByteArray;
var _local9:int;
var _local10:int;
var _local11:int;
var _local5:int = _arg2;
if (_arg4){
if (_arg3 == int){
_local5 = (_arg2 ^ m_xorKey);
} else {
if (_arg3 == Boolean){
_local6 = new ByteArray();
_local6.writeBoolean(_arg2);
_local6.writeByte((Math.random() * 0xFF));
_local6.writeByte((Math.random() * 0xFF));
_local6.writeByte((Math.random() * 0xFF));
_local6.position = 0;
_local5 = (_local6.readInt() ^ m_xorKey);
} else {
if (_arg3 == Number){
_local7 = new ByteArray();
_local7.writeFloat(_arg2);
_local7.position = 0;
_local5 = (_local7.readInt() ^ m_xorKey);
} else {
if (_arg3 == String){
_local8 = new ByteArray();
_local8.writeUTF(_arg2);
_local9 = (3 - (_local8.length % 4));
while (_local9 >= 0) {
_local8.writeByte((Math.random() * 0xFF));
_local9--;
};
_local8.position = 0;
_local10 = 0;
while (_local10 < (_local8.length / 4)) {
_local11 = _local8.readInt();
_local8.position = (_local8.position - 4);
_local8.writeInt((_local11 ^ m_xorKey));
_local10++;
};
m_so.data["ads"][hexStr(_arg1)] = _local8;
return;
};
};
};
};
};
m_so.data["ads"][hexStr(_arg1)] = _local5;
}
public function writeBool(_arg1:String, _arg2:Boolean):void{
write(_arg1, _arg2, Boolean);
}
public function createString(_arg1:String, _arg2:String, _arg3:Boolean=false):void{
create(_arg1, _arg2, String, _arg3);
}
private function writeFakeData(_arg1:String, _arg2):void{
m_so.data[_arg1] = _arg2;
}
public function readInt(_arg1:String):int{
return (read(_arg1, int));
}
private function create(_arg1:String, _arg2, _arg3:Class, _arg4:Boolean):void{
m_keys.push(_arg1);
var _local5:uint = (m_hexKey + m_keys.length);
if (readRealData(_local5, _arg3, true) != undefined){
return;
};
writeRealData(_local5, _arg2, _arg3, true);
if (_arg4){
writeFakeData(_arg1, _arg2);
};
}
public function readNumber(_arg1:String):Number{
return (read(_arg1, Number));
}
}
}//package com.urbansquall.security
Section 40
//Hex (com.urbansquall.shex.Hex)
package com.urbansquall.shex {
import flash.display.*;
public class Hex extends Sprite {
public var size:int;
public var col:int;
private var m_image:Sprite;
private var m_possibleIndicator:Sprite;
private var m_goldTile:Sprite;
public var row:int;
private var m_lifeTile:Sprite;
public var dirtyCount:uint;
private var m_deathTile:Sprite;
private var m_data:HexData;
private static const BASE_TILE_1:Class = Hex_BASE_TILE_1;
private static const BASE_TILE_2:Class = Hex_BASE_TILE_2;
private static const BASE_TILE_3:Class = Hex_BASE_TILE_3;
private static const BASE_TILE_4:Class = Hex_BASE_TILE_4;
private static const BASE_TILE_5:Class = Hex_BASE_TILE_5;
private static const BASE_TILE_6:Class = Hex_BASE_TILE_6;
private static const BASE_TILE_7:Class = Hex_BASE_TILE_7;
private static const BASE_TILE_8:Class = Hex_BASE_TILE_8;
private static const BASE_TILE_9:Class = Hex_BASE_TILE_9;
private static const s_deathTileClasses:Array = [DEATH_TILE_1, DEATH_TILE_2, DEATH_TILE_3, DEATH_TILE_4];
private static const BASE_TILE_11:Class = Hex_BASE_TILE_11;
private static const DEATH_TILE_1:Class = Hex_DEATH_TILE_1;
private static const DEATH_TILE_3:Class = Hex_DEATH_TILE_3;
private static const DEATH_TILE_4:Class = Hex_DEATH_TILE_4;
private static const BASE_TILE_10:Class = Hex_BASE_TILE_10;
private static const DEATH_TILE_2:Class = Hex_DEATH_TILE_2;
private static const s_baseTileClasses:Array = [BASE_TILE_1, BASE_TILE_2, BASE_TILE_3, BASE_TILE_4, BASE_TILE_5, BASE_TILE_6, BASE_TILE_7, BASE_TILE_8, BASE_TILE_9, BASE_TILE_10, BASE_TILE_11];
private static const GOLD_TILE:Class = Hex_GOLD_TILE;
public function Hex(_arg1:int, _arg2:int, _arg3:int){
var _local9:Graphics;
super();
dirtyCount = 0;
size = _arg1;
col = _arg2;
row = _arg3;
var _local4:int = Math.floor((s_baseTileClasses.length * Math.random()));
var _local5:Class = s_baseTileClasses[_local4];
m_lifeTile = new (_local5);
m_lifeTile.width = _arg1;
m_lifeTile.height = _arg1;
m_lifeTile.cacheAsBitmap = true;
this.addChild(m_lifeTile);
_local4 = Math.floor((s_deathTileClasses.length * Math.random()));
_local5 = s_deathTileClasses[_local4];
m_deathTile = new (_local5);
m_deathTile.width = _arg1;
m_deathTile.height = _arg1;
m_deathTile.cacheAsBitmap = true;
this.addChild(m_deathTile);
m_goldTile = new GOLD_TILE();
m_goldTile.width = _arg1;
m_goldTile.height = _arg1;
m_goldTile.cacheAsBitmap = true;
this.addChild(m_goldTile);
live();
var _local6:int = _arg1;
var _local7:int = (_local6 / 2);
var _local8:int = (_local7 / 2);
m_possibleIndicator = new Sprite();
m_possibleIndicator.visible = false;
m_possibleIndicator.mouseEnabled = false;
m_possibleIndicator.cacheAsBitmap = true;
this.addChild(m_possibleIndicator);
_local9 = m_possibleIndicator.graphics;
_local9.lineStyle(2, 0xFFFFFF);
_local9.beginFill(0xFFFFFF, 0.35);
_local9.moveTo(_local7, 2);
_local9.lineTo((_local6 - 2), _local8);
_local9.lineTo((_local6 - 2), (_local8 * 3));
_local9.lineTo(_local7, (_local6 - 2));
_local9.lineTo(2, (_local8 * 3));
_local9.lineTo(2, _local8);
_local9.lineTo(_local7, 2);
_local9.endFill();
_local9.lineStyle();
}
public function beGold():void{
m_goldTile.visible = true;
m_lifeTile.visible = false;
m_deathTile.visible = false;
}
public function hidePossibleIndicator():void{
m_possibleIndicator.visible = false;
}
private function addImage(_arg1:Sprite):void{
m_image = _arg1;
this.addChild(m_image);
}
public function set data(_arg1:HexData):void{
if (_arg1 == null){
throw (new Error("Don't set data = null, use clearData()"));
};
if (m_data != null){
clearData();
};
m_data = _arg1;
addImage(m_data.image);
m_data.doTween();
}
public function clearData():HexData{
removeImage();
var _local1:HexData = m_data;
m_data = null;
return (_local1);
}
public function showPossibleIndicator():void{
m_possibleIndicator.visible = true;
}
public function die():void{
m_deathTile.visible = true;
m_lifeTile.visible = false;
m_goldTile.visible = false;
}
public function get isShowingPossibleIndicator():Boolean{
return (m_possibleIndicator.visible);
}
public function tick(_arg1:Number):void{
if (m_data != null){
m_data.tick(_arg1);
};
}
public function get data():HexData{
return (m_data);
}
public function live():void{
m_lifeTile.visible = true;
m_deathTile.visible = false;
m_goldTile.visible = false;
}
private function removeImage():void{
if (m_image == null){
return;
};
this.removeChild(m_image);
m_image = null;
}
}
}//package com.urbansquall.shex
Section 41
//Hex_BASE_TILE_1 (com.urbansquall.shex.Hex_BASE_TILE_1)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_1 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 42
//Hex_BASE_TILE_10 (com.urbansquall.shex.Hex_BASE_TILE_10)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_10 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 43
//Hex_BASE_TILE_11 (com.urbansquall.shex.Hex_BASE_TILE_11)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_11 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 44
//Hex_BASE_TILE_2 (com.urbansquall.shex.Hex_BASE_TILE_2)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_2 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 45
//Hex_BASE_TILE_3 (com.urbansquall.shex.Hex_BASE_TILE_3)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_3 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 46
//Hex_BASE_TILE_4 (com.urbansquall.shex.Hex_BASE_TILE_4)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_4 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 47
//Hex_BASE_TILE_5 (com.urbansquall.shex.Hex_BASE_TILE_5)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_5 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 48
//Hex_BASE_TILE_6 (com.urbansquall.shex.Hex_BASE_TILE_6)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_6 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 49
//Hex_BASE_TILE_7 (com.urbansquall.shex.Hex_BASE_TILE_7)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_7 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 50
//Hex_BASE_TILE_8 (com.urbansquall.shex.Hex_BASE_TILE_8)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_8 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 51
//Hex_BASE_TILE_9 (com.urbansquall.shex.Hex_BASE_TILE_9)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_BASE_TILE_9 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 52
//Hex_DEATH_TILE_1 (com.urbansquall.shex.Hex_DEATH_TILE_1)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_DEATH_TILE_1 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 53
//Hex_DEATH_TILE_2 (com.urbansquall.shex.Hex_DEATH_TILE_2)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_DEATH_TILE_2 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 54
//Hex_DEATH_TILE_3 (com.urbansquall.shex.Hex_DEATH_TILE_3)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_DEATH_TILE_3 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 55
//Hex_DEATH_TILE_4 (com.urbansquall.shex.Hex_DEATH_TILE_4)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_DEATH_TILE_4 extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 56
//Hex_GOLD_TILE (com.urbansquall.shex.Hex_GOLD_TILE)
package com.urbansquall.shex {
import mx.core.*;
public class Hex_GOLD_TILE extends SpriteAsset {
}
}//package com.urbansquall.shex
Section 57
//HexData (com.urbansquall.shex.HexData)
package com.urbansquall.shex {
import flash.display.*;
public class HexData {
protected var m_image:Sprite;
public function HexData(){
m_image = new Sprite();
}
public function doTween():void{
}
public function makeSureYouDie():void{
}
public function doFinalTween(_arg1:Function):void{
_arg1();
}
public function get image():Sprite{
return (m_image);
}
public function tick(_arg1:Number):void{
}
}
}//package com.urbansquall.shex
Section 58
//HexRectGrid (com.urbansquall.shex.HexRectGrid)
package com.urbansquall.shex {
import flash.display.*;
public class HexRectGrid extends Sprite {
private var m_cols:int;
private var m_rows:int;
private var m_hexSize:int;
private var m_hexes:Array;
public function HexRectGrid(_arg1:int, _arg2:int, _arg3:int=56){
var _local5:int;
var _local6:Hex;
super();
m_cols = _arg1;
m_rows = _arg2;
m_hexSize = _arg3;
m_hexes = new Array();
var _local4:int;
while (_local4 < m_rows) {
m_hexes.push(new Array());
_local5 = 0;
while (_local5 < m_cols) {
_local6 = new Hex(m_hexSize, _local5, _local4);
m_hexes[_local4].push(_local6);
this.addChild(_local6);
_local6.mouseChildren = false;
_local6.mouseEnabled = false;
_local6.y = (_local4 * ((_local6.width * 3) / 4));
if ((_local4 % 2) == 0){
_local6.x = ((_local6.width / 2) + (_local5 * _local6.width));
} else {
_local6.x = (_local5 * _local6.width);
};
_local5++;
};
_local4++;
};
}
public function getNeighborsTo(_arg1:int, _arg2:int):Array{
var _local3:Array = [];
if (!isOutOfBounds((_arg1 - 1), _arg2)){
_local3.push(m_hexes[_arg2][(_arg1 - 1)]);
};
if (!isOutOfBounds((_arg1 + 1), _arg2)){
_local3.push(m_hexes[_arg2][(_arg1 + 1)]);
};
if ((_arg2 - 1) >= 0){
if ((_arg2 % 2) == 0){
if (!isOutOfBounds(_arg1, (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][_arg1]);
};
if (!isOutOfBounds((_arg1 + 1), (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][(_arg1 + 1)]);
};
} else {
if (!isOutOfBounds((_arg1 - 1), (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][(_arg1 - 1)]);
};
if (!isOutOfBounds(_arg1, (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][_arg1]);
};
};
};
if ((_arg2 + 1) < m_rows){
if ((_arg2 % 2) == 0){
if (!isOutOfBounds(_arg1, (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][_arg1]);
};
if (!isOutOfBounds((_arg1 + 1), (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][(_arg1 + 1)]);
};
} else {
if (!isOutOfBounds((_arg1 - 1), (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][(_arg1 - 1)]);
};
if (!isOutOfBounds(_arg1, (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][_arg1]);
};
};
};
return (_local3);
}
public function isOutOfBounds(_arg1:int, _arg2:int):Boolean{
return ((((((((_arg1 < 0)) || ((_arg1 >= m_cols)))) || ((_arg2 < 0)))) || ((_arg2 >= m_rows))));
}
public function isHexAdjacentTo(_arg1:Hex, _arg2:Hex):Boolean{
var _local4:Hex;
var _local3:Array = getNeighborsTo(_arg1.col, _arg1.row);
for each (_local4 in _local3) {
if (_local4 == _arg2){
return (true);
};
};
return (false);
}
public function getHexAt(_arg1:int, _arg2:int):Hex{
if (isOutOfBounds(_arg1, _arg2)){
return (null);
};
return (m_hexes[_arg2][_arg1]);
}
public function get numCols():int{
return (m_cols);
}
public function getNeighborsAndNullsTo(_arg1:int, _arg2:int):Array{
var _local3:Array = [];
if (!isOutOfBounds((_arg1 - 1), _arg2)){
_local3.push(m_hexes[_arg2][(_arg1 - 1)]);
} else {
_local3.push(null);
};
if (!isOutOfBounds((_arg1 + 1), _arg2)){
_local3.push(m_hexes[_arg2][(_arg1 + 1)]);
} else {
_local3.push(null);
};
if ((_arg2 - 1) >= 0){
if ((_arg2 % 2) == 0){
if (!isOutOfBounds(_arg1, (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][_arg1]);
} else {
_local3.push(null);
};
if (!isOutOfBounds((_arg1 + 1), (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][(_arg1 + 1)]);
} else {
_local3.push(null);
};
} else {
if (!isOutOfBounds((_arg1 - 1), (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][(_arg1 - 1)]);
} else {
_local3.push(null);
};
if (!isOutOfBounds(_arg1, (_arg2 - 1))){
_local3.push(m_hexes[(_arg2 - 1)][_arg1]);
} else {
_local3.push(null);
};
};
} else {
_local3.push(null);
_local3.push(null);
};
if ((_arg2 + 1) < m_rows){
if ((_arg2 % 2) == 0){
if (!isOutOfBounds(_arg1, (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][_arg1]);
} else {
_local3.push(null);
};
if (!isOutOfBounds((_arg1 + 1), (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][(_arg1 + 1)]);
} else {
_local3.push(null);
};
} else {
if (!isOutOfBounds((_arg1 - 1), (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][(_arg1 - 1)]);
} else {
_local3.push(null);
};
if (!isOutOfBounds(_arg1, (_arg2 + 1))){
_local3.push(m_hexes[(_arg2 + 1)][_arg1]);
} else {
_local3.push(null);
};
};
} else {
_local3.push(null);
_local3.push(null);
};
return (_local3);
}
public function translateMouse(_arg1:int, _arg2:int):Array{
var _local7:int;
var _local8:int;
var _local3:int = (_arg1 / (m_hexSize / 2));
var _local4:int = (_arg2 / (m_hexSize / 4));
var _local5:int = (_local3 / 2);
var _local6:int = (_local4 / 3);
if ((_local4 % 3) == 0){
_local7 = ((_arg1 - (_local3 * (m_hexSize / 2))) / 2);
_local8 = (_arg2 - (_local4 * (m_hexSize / 4)));
if ((_local3 % 2) == (_local6 % 2)){
_local7 = ((m_hexSize / 4) - _local7);
};
if ((_local7 + _local8) <= (m_hexSize / 4)){
_local6--;
};
};
if (((((_local6 % 2) == 0)) && (((_local3 % 2) == 0)))){
_local5--;
};
return ([_local5, _local6]);
}
public function get numRows():int{
return (m_rows);
}
}
}//package com.urbansquall.shex
Section 59
//Delegate (com.urbansquall.utils.Delegate)
package com.urbansquall.utils {
public class Delegate {
public static function create(_arg1, _arg2:Function, ... _args):Function{
var target = _arg1;
var handler = _arg2;
var rest = _args;
var delegate:Function = function (... _args){
var _local2:Array = _args.concat(rest);
return (handler.apply(target, _local2));
};
return (delegate);
}
}
}//package com.urbansquall.utils
Section 60
//ChooseHexEvent (events.ChooseHexEvent)
package events {
public class ChooseHexEvent extends TutorialEvent {
public var col:int;
public var row:int;
public function ChooseHexEvent(_arg1:int, _arg2:int){
super(TutorialEvent.CHOOSE_HEX);
col = _arg1;
row = _arg2;
}
}
}//package events
Section 61
//LevelUpScreenGoneEvent (events.LevelUpScreenGoneEvent)
package events {
public class LevelUpScreenGoneEvent extends TutorialEvent {
public var level:int;
public function LevelUpScreenGoneEvent(_arg1:int){
super(TutorialEvent.LEVEL_UP_SCREEN_GONE);
level = _arg1;
}
}
}//package events
Section 62
//SpecialPowerSelectEvent (events.SpecialPowerSelectEvent)
package events {
public class SpecialPowerSelectEvent extends TutorialEvent {
public var power:String;
public function SpecialPowerSelectEvent(_arg1:String){
super(TutorialEvent.SPECIAL_POWER_SELECT);
power = _arg1;
}
}
}//package events
Section 63
//TutorialEvent (events.TutorialEvent)
package events {
import flash.events.*;
public class TutorialEvent extends Event {
public static var CHOOSE_HEX:String = "choose_hex";
public static var TUTORIAL_POPUP_CLOSE:String = "tutorial_popup_close";
public static var LEVEL_UP_SCREEN_GONE:String = "level_up_screen_gone";
public static var SPECIAL_POWER_SELECT:String = "special_power_select";
public function TutorialEvent(_arg1:String){
super(_arg1);
}
}
}//package events
Section 64
//TutorialPopupCloseEvent (events.TutorialPopupCloseEvent)
package events {
public class TutorialPopupCloseEvent extends TutorialEvent {
public function TutorialPopupCloseEvent(){
super(TutorialEvent.TUTORIAL_POPUP_CLOSE);
}
}
}//package events
Section 65
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return ("3.0 as3");
}
public static function showClickAwayAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = _slot1._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
if (!_slot1.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
_slot1._cleanup(mc);
options.ad_finished();
};
var wh:Array = _slot1._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
_slot1.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
_slot1.rpc(clip, _arg1, _arg2);
};
var sendHostProgress:Boolean;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType == "application"){
return (_local2);
};
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = _slot1._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!_slot1.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
_slot1._cleanup(mc);
options.ad_finished();
};
var wh:Array = _slot1._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
_slot1.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
_slot1.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
_slot1.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
_slot1.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
var _local3:Object = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
var idx:Number = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var clip:Object;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _slot1._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = _slot1.getVersion();
clip = options.clip;
if (!_slot1._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
var depth:Number = options.depth;
delete options.depth;
var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth);
var wh:Array = _slot1._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
} else {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
};
var lv:URLVariables = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
_slot1.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
trace("[MochiAds] Blocked URL");
});
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local6:Array;
var _local3:Object = _arg2.getBounds(_arg2.root);
var _local4:Number = 0;
var _local5:Number = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array = _arg2.split(".");
var _local4:Number = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
_slot1.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = _slot1.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = _slot1.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}};
options = _slot1._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!_slot1.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
_slot1._cleanup(mc);
var fn:Function = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
var wh:Array = _slot1._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = 10;
bar.y = (h - 20);
};
var bar_color:Number = options.color;
delete options.color;
var bar_background:Number = options.background;
delete options.background;
var bar_outline:Number = options.outline;
delete options.outline;
var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1);
var backing:Object = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2);
var inside:Object = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3);
var outline:Object = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
_slot1.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
var f:Function = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
_slot1.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
_slot1.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
_slot1.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local11:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
var _local1:Object = this.parent.parent.root;
var _local2:Object = this.parent._mochiad_ctr;
var _local3:Number = (getTimer() - this.started);
var _local4:Boolean;
var _local5:Number = _local1.loaderInfo.bytesTotal;
var _local6:Number = _local1.loaderInfo.bytesLoaded;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
var _local7:Number = ((100 * _local6) / _local5);
var _local8:Number = ((100 * _local3) / chk.ad_msec);
var _local9:Object = this._mochiad_bar._inside;
var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
options.ad_progress(_local10);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7});
if (_local7 == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local11 > 0){
chk.showing = true;
chk.started = getTimer();
_slot1.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
_slot1.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
_slot1.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var mc = _arg1;
var f:Function = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package mochi.as3
Section 66
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.0.0.0";
public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
}
}//package mx.core
Section 67
//ByteArrayAsset (mx.core.ByteArrayAsset)
package mx.core {
import flash.utils.*;
public class ByteArrayAsset extends ByteArray implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 68
//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 69
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
var bitmapData = _arg1;
var pixelSnapping = _arg2;
var smoothing = _arg3;
super(bitmapData, pixelSnapping, smoothing);
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 70
//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 71
//FlexSprite (mx.core.FlexSprite)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSprite extends Sprite {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexSprite(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 72
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 73
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 74
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 75
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(_arg1:Point):Point;
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(_arg1:String):void;
function set scaleX(_arg1:Number):void;
function set scaleY(_arg1:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(_arg1:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(_arg1:Point):Point;
function get height():Number;
function set blendMode(_arg1:String):void;
function get parent():DisplayObjectContainer;
function getBounds(_arg1:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(_arg1:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(_arg1:Number):void;
function set accessibilityProperties(_arg1:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(_arg1:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(_arg1:Number):void;
function set mask(_arg1:DisplayObject):void;
function getRect(_arg1:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(_arg1:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(_arg1:DisplayObject):Boolean;
function set opaqueBackground(_arg1:Object):void;
function set visible(_arg1:Boolean):void;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function set y(_arg1:Number):void;
function get transform():Transform;
function set filters(_arg1:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(_arg1:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 76
//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 77
//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 78
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject {
protected var initialHeight:Number;// = 0
private var loader:Loader;// = null
private var initialized:Boolean;// = false
protected var initialWidth:Number;// = 0
private var requestedHeight:Number;
private var requestedWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function MovieClipLoaderAsset(){
var _local1:LoaderContext = new LoaderContext();
_local1.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
if (("allowLoadBytesCodeExecution" in _local1)){
_local1["allowLoadBytesCodeExecution"] = true;
};
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.loadBytes(movieClipData, _local1);
addChild(loader);
}
override public function get width():Number{
if (!initialized){
return (initialWidth);
};
return (super.width);
}
override public function set width(_arg1:Number):void{
if (!initialized){
requestedWidth = _arg1;
} else {
loader.width = _arg1;
};
}
override public function get measuredHeight():Number{
return (initialHeight);
}
private function completeHandler(_arg1:Event):void{
initialized = true;
initialWidth = loader.width;
initialHeight = loader.height;
if (!isNaN(requestedWidth)){
loader.width = requestedWidth;
};
if (!isNaN(requestedHeight)){
loader.height = requestedHeight;
};
dispatchEvent(_arg1);
}
override public function set height(_arg1:Number):void{
if (!initialized){
requestedHeight = _arg1;
} else {
loader.height = _arg1;
};
}
override public function get measuredWidth():Number{
return (initialWidth);
}
override public function get height():Number{
if (!initialized){
return (initialHeight);
};
return (super.height);
}
public function get movieClipData():ByteArray{
return (null);
}
}
}//package mx.core
Section 79
//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 80
//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 81
//SpriteAsset (mx.core.SpriteAsset)
package mx.core {
public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function SpriteAsset(){
_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 82
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.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 83
//BasicAttack (powers.BasicAttack)
package powers {
import flash.display.*;
import com.urbansquall.shex.*;
import caurina.transitions.*;
import flash.text.*;
import com.urbansquall.utils.*;
import flash.filters.*;
public class BasicAttack {
private var m_kills:Array;
private var m_game:Game;
protected var m_button:PowerButton;
private var m_cutieTracker:Array;
private var m_countTextField:CustomTextField;
protected var m_searchNum:uint;// = 1
private var m_soulsAbsorbed:int;
private static const s_btn_basic_attack:Class = BasicAttack_s_btn_basic_attack;
public function BasicAttack(){
m_cutieTracker = [];
m_button = new PowerButton(s_btn_basic_attack, this);
}
public function findAffectedCuties(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Array{
if ((_arg2.data is EggData)){
return ([_arg2]);
};
if ((((_arg2.data == null)) || ((_arg2.data is ReaperData)))){
return ([]);
};
var _local4:Array = [];
var _local5:uint = (_arg2.data as ColorData).color;
_local4.push(_arg2);
_arg2.dirtyCount = m_searchNum;
findCutiesRecursion(_local4, _arg1, _local5, _arg2.col, _arg2.row);
m_searchNum = (m_searchNum + 1);
return (_local4);
}
public function get cost():int{
return (0);
}
public function get colorName():String{
return ("red");
}
public function get name():String{
return ("Basic Attack");
}
public function killCuties(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex, _arg4:Function):void{
var _local7:Hex;
var _local8:uint;
var _local5:Array = findAffectedCuties(_arg1, _arg2, _arg3);
m_kills = [];
m_soulsAbsorbed = 0;
m_countTextField = null;
m_cutieTracker = _local5.slice();
var _local6:int;
while (_local6 < _local5.length) {
_local7 = _local5[_local6];
if ((_local7.data is ColorData)){
_local8 = modifyCutieColor((_local7.data as ColorData).color);
countKill(m_kills, _local8);
_local7.data.doFinalTween(Delegate.create(this, showSoulAnimation, _local8, _arg1, _local7, _local6, _arg2, _arg3, _arg4));
} else {
if ((_local7.data is EggData)){
if ((_local7.data as EggData).isGolden){
countKill(m_kills, Game.GOLDEN_EGG);
} else {
countKill(m_kills, Game.EGG);
};
_local7.data.doFinalTween(Delegate.create(this, actuallyClearTheHex, _local7, _local6, _arg2, _arg3, _arg4));
} else {
if (_local7.data == null){
actuallyClearTheHex(_local7, _local6, _arg2, _arg3, _arg4);
};
};
};
_local6++;
};
}
private function showSoulAnimation(_arg1:uint, _arg2:HexRectGrid, _arg3:Hex, _arg4:int, _arg5:Hex, _arg6:Hex, _arg7:Function):void{
var _local24:Sprite;
actuallyClearTheHex(_arg3, _arg4, _arg5, _arg6, _arg7);
var _local8:CutieSoul = new CutieSoul(_arg1, (modifyKillCount(1) > 1));
_local8.mouseEnabled = false;
_local8.x = (_arg3.x + (_arg3.width / 2));
_local8.y = (_arg3.y + (_arg3.height / 4));
_arg2.addChild(_local8);
var _local9 = 5;
Tweener.addTween(_local8, {y:(_local8.y - 40), time:0.75, transition:"easeInQuad"});
Tweener.addTween(_local8, {x:(_local8.x - _local9), delay:0.05, time:0.2, transition:"linear"});
Tweener.addTween(_local8, {x:(_local8.x + (_local9 * 2)), delay:0.25, time:0.2, transition:"linear"});
Tweener.addTween(_local8, {x:(_local8.x - (_local9 * 2)), delay:0.45, time:0.2, transition:"linear"});
Tweener.addTween(_local8, {x:(_local8.x + _local9), delay:0.65, time:0.1, transition:"linear"});
var _local10:Number = _arg5.x;
var _local11:Number = _arg5.y;
if (_arg1 == Game.RED_CUTIE){
m_game.registerRedCutie();
_local10 = -100;
_local11 = -70;
} else {
if (!movesReaper){
_local10 = _arg6.x;
_local11 = _arg6.y;
};
};
var _local12:Number = 300;
var _local13:Number = 0.3;
var _local14:Number = Math.abs((_arg3.x - _local10));
var _local15:Number = Math.abs((_arg3.y - _local11));
var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15)));
_local16 = Math.min(_local16, _local12);
var _local17:Number = 0.75;
var _local18:Number = (_local13 + ((0.5 * _local16) / _local12));
var _local19 = "Circ";
var _local20:Number = 60;
var _local21:Number = _arg3.y;
if ((((_arg3.y > _local11)) && (!((_arg1 == Game.RED_CUTIE))))){
_local21 = _local11;
};
_local21 = (_local21 - _local20);
Tweener.addTween(_local8, {x:(_local10 + (Game.HEX_SIZE / 2)), alpha:0.5, delay:_local17, time:_local18, transition:"linear", onUpdate:orientToPath, onUpdateParams:[_local8]});
Tweener.addTween(_local8, {y:_local21, delay:_local17, time:(_local18 / 2), transition:("easeOut" + _local19)});
Tweener.addTween(_local8, {y:_local11, delay:(_local17 + (_local18 / 2)), time:(_local18 / 2), transition:("easeIn" + _local19)});
Tweener.addTween(_local8, {y:(_local11 + (Game.HEX_SIZE / 2)), delay:(_local17 + _local18), time:0.07, transition:"linear", onComplete:Delegate.create(this, onSoulComplete, _local8)});
if (m_countTextField == null){
_local24 = new Sprite();
m_countTextField = new CustomTextField("", 0xFFFFFF);
m_countTextField.autoSize = TextFieldAutoSize.CENTER;
m_countTextField.mouseEnabled = false;
m_countTextField.alpha = 0;
m_countTextField.filters = [new GlowFilter(_arg1)];
_local24.addChild(m_countTextField);
_arg2.parent.addChild(_local24);
_local24.x = _arg2.x;
_local24.y = _arg2.y;
_local24.mouseEnabled = false;
m_countTextField.x = ((_local10 + (Game.HEX_SIZE / 2)) - (m_countTextField.width / 2));
};
var _local22:Number = 0.4;
var _local23:Number = (_local17 + _local18);
Tweener.addTween(m_countTextField, {delay:_local23, alpha:1, time:0, transition:"linear", onComplete:Delegate.create(this, startTextFieldTween, m_countTextField, _local11, (_arg1 == Game.RED_CUTIE))});
}
protected function endTextFieldTween(_arg1:TextField):void{
if (_arg1.parent.parent != null){
_arg1.parent.parent.removeChild(_arg1.parent);
};
}
private function onSoulComplete(_arg1:CutieSoul):void{
_arg1.parent.removeChild(_arg1);
m_game.useKillsToGainPower(_arg1.color, modifyKillCount(1));
}
private function findCutiesRecursion(_arg1:Array, _arg2:HexRectGrid, _arg3:uint, _arg4:int, _arg5:int):void{
var _local7:Hex;
var _local6:Array = _arg2.getNeighborsTo(_arg4, _arg5);
for each (_local7 in _local6) {
if (_local7.dirtyCount == m_searchNum){
} else {
_local7.dirtyCount = m_searchNum;
if ((((_local7.data is ColorData)) && (((_local7.data as ColorData).color == _arg3)))){
_arg1.push(_local7);
findCutiesRecursion(_arg1, _arg2, _arg3, _local7.col, _local7.row);
};
};
};
}
protected function countKill(_arg1:Array, _arg2:uint):void{
var _local3:Array;
for each (_local3 in _arg1) {
if (_local3[0] == _arg2){
_local3[1] = (_local3[1] + modifyKillCount(1));
return;
};
};
_arg1.push([_arg2, 1]);
}
private function actuallyClearTheHex(_arg1:Hex, _arg2:int, _arg3:Hex, _arg4:Hex, _arg5:Function):void{
var _local8:Boolean;
var _local6 = (_arg1.data == null);
var _local7 = (_arg1.data is EggData);
_arg1.clearData();
if ((((((((_arg2 > 0)) || (!(movesReaper)))) && (!(_local7)))) && (!(_local6)))){
_local8 = (((_arg2 + 1) % 10) == 0);
_arg1.data = new EggData(_local8);
if (_local8){
_arg1.beGold();
};
} else {
_arg1.die();
};
m_cutieTracker.splice(m_cutieTracker.indexOf(_arg1), 1);
if (m_cutieTracker.length == 0){
_arg5(_arg3, _arg4, m_kills);
};
}
public function get color():uint{
return (Game.RED_CUTIE);
}
public function set game(_arg1:Game):void{
m_game = _arg1;
}
private function orientToPath(_arg1:CutieSoul):void{
if (isNaN(_arg1.oldX)){
_arg1.oldX = _arg1.x;
_arg1.oldY = _arg1.y;
return;
};
var _local2:Number = ((Math.atan2((_arg1.oldY - _arg1.y), (_arg1.oldX - _arg1.x)) * (180 / Math.PI)) - 90);
_arg1.rotation = _local2;
_arg1.oldX = _arg1.x;
_arg1.oldY = _arg1.y;
}
protected function startTextFieldTween(_arg1:TextField, _arg2:Number, _arg3:Boolean):void{
m_soulsAbsorbed = (m_soulsAbsorbed + modifyKillCount(1));
Tweener.removeTweens(_arg1, "y");
Tweener.removeTweens(_arg1, "x");
Tweener.removeTweens(_arg1.parent, "scaleX");
Tweener.removeTweens(_arg1.parent, "scaleY");
_arg1.y = _arg2;
_arg1.text = String(m_soulsAbsorbed);
var _local4:Number = 0.6;
var _local5:Number = -80;
if (_arg3){
_local5 = (_local5 * -1);
};
if (_arg3){
_arg1.parent.x = 36;
_arg1.parent.y = 36;
_arg1.x = (-(_arg1.width) / 2);
_arg1.y = (-(_arg1.height) / 2);
Tweener.addTween(_arg1.parent, {scaleX:2, time:(_local4 / 4), transition:"easeInExpo"});
Tweener.addTween(_arg1.parent, {scaleY:2, time:(_local4 / 4), transition:"easeInExpo"});
Tweener.addTween(_arg1.parent, {scaleX:1.5, time:(_local4 / 4), delay:(_local4 / 4), transition:"easeOutExpo"});
Tweener.addTween(_arg1.parent, {scaleY:1.5, time:(_local4 / 4), delay:(_local4 / 4), transition:"easeOutExpo"});
} else {
Tweener.addTween(_arg1, {y:(_arg2 + _local5), time:_local4, transition:"linear"});
};
Tweener.addTween(_arg1, {x:_arg1.x, delay:_local4, transition:"linear", onComplete:Delegate.create(this, endTextFieldTween, _arg1)});
}
public function isValidTarget(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Boolean{
if ((((_arg2 == _arg3)) || ((_arg3.data == null)))){
return (false);
};
return (_arg1.isHexAdjacentTo(_arg2, _arg3));
}
public function get movesReaper():Boolean{
return (true);
}
public function get button():PowerButton{
return (m_button);
}
protected function modifyKillCount(_arg1:int):int{
return (_arg1);
}
public function get description():String{
return ("Kill an adjacent group of cuties. Absorb their souls.");
}
protected function modifyCutieColor(_arg1:uint):uint{
return (_arg1);
}
}
}//package powers
Section 84
//BasicAttack_s_btn_basic_attack (powers.BasicAttack_s_btn_basic_attack)
package powers {
import mx.core.*;
public class BasicAttack_s_btn_basic_attack extends SpriteAsset {
}
}//package powers
Section 85
//EyeLasers (powers.EyeLasers)
package powers {
import com.urbansquall.shex.*;
public class EyeLasers extends BasicAttack {
private static const s_btn_eye_lasers:Class = EyeLasers_s_btn_eye_lasers;
public function EyeLasers(){
m_button = new PowerButton(s_btn_eye_lasers, this);
}
private function laserKill(_arg1:Array, _arg2:HexRectGrid, _arg3:int, _arg4:Hex):void{
var _local5:Array = _arg2.getNeighborsAndNullsTo(_arg4.col, _arg4.row);
var _local6:Hex = _local5[_arg3];
if (_local6 == null){
return;
};
_arg1.push(_local6);
laserKill(_arg1, _arg2, _arg3, _local6);
}
override public function get movesReaper():Boolean{
return (false);
}
override public function isValidTarget(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Boolean{
var _local7:Hex;
if (_arg2 == _arg3){
return (false);
};
var _local4:Array = [];
var _local5:Array = _arg1.getNeighborsAndNullsTo(_arg2.col, _arg2.row);
var _local6:int;
while (_local6 <= 5) {
if (_local5[_local6] == null){
} else {
_local4 = [_local5[_local6]];
laserKill(_local4, _arg1, _local6, _local5[_local6]);
for each (_local7 in _local4) {
if (_local7 == _arg3){
return (true);
};
};
};
_local6++;
};
return (false);
}
override public function findAffectedCuties(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Array{
var _local7:Hex;
var _local4:Array = [];
var _local5:Array = _arg1.getNeighborsAndNullsTo(_arg3.col, _arg3.row);
var _local6:int;
while (_local6 <= 5) {
if (_local5[_local6] == null){
} else {
_local4 = [_local5[_local6]];
laserKill(_local4, _arg1, _local6, _local5[_local6]);
for each (_local7 in _local4) {
if (_local7 == _arg2){
return (_local4);
};
};
};
_local6++;
};
return ([]);
}
override public function get color():uint{
return (Game.BLACK_CUTIE);
}
override public function get name():String{
return ("Eye Lasers");
}
override public function get description():String{
return ("Kill a straight line of cuties. Absorb their souls.");
}
override public function get cost():int{
return (13);
}
override public function get colorName():String{
return ("black");
}
}
}//package powers
Section 86
//EyeLasers_s_btn_eye_lasers (powers.EyeLasers_s_btn_eye_lasers)
package powers {
import mx.core.*;
public class EyeLasers_s_btn_eye_lasers extends SpriteAsset {
}
}//package powers
Section 87
//FireBlast (powers.FireBlast)
package powers {
import com.urbansquall.shex.*;
public class FireBlast extends BasicAttack {
private static const s_btn_fire_blast:Class = FireBlast_s_btn_fire_blast;
public function FireBlast(){
m_button = new PowerButton(s_btn_fire_blast, this);
}
override public function get movesReaper():Boolean{
return (false);
}
override public function isValidTarget(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Boolean{
return (((!((_arg3.data == null))) && (!((_arg3.data is ReaperData)))));
}
override public function get color():uint{
return (Game.BLACK_CUTIE);
}
override public function get name():String{
return ("Fire Blast");
}
override public function get description():String{
return ("Kill a group of cuties any distance away. Absorb their souls.");
}
override public function get cost():int{
return (18);
}
override public function get colorName():String{
return ("black");
}
}
}//package powers
Section 88
//FireBlast_s_btn_fire_blast (powers.FireBlast_s_btn_fire_blast)
package powers {
import mx.core.*;
public class FireBlast_s_btn_fire_blast extends SpriteAsset {
}
}//package powers
Section 89
//Harvest (powers.Harvest)
package powers {
public class Harvest extends BasicAttack {
private static const s_btn_harvest:Class = Harvest_s_btn_harvest;
public function Harvest(){
m_button = new PowerButton(s_btn_harvest, this);
}
override protected function modifyKillCount(_arg1:int):int{
return ((_arg1 * 2));
}
override public function get color():uint{
return (Game.BLUE_CUTIE);
}
override public function get name():String{
return ("Harvest");
}
override public function get description():String{
return ("Kill an adjacent group of cuties. Absorb two souls for each cutie.");
}
override public function get cost():int{
return (23);
}
override public function get colorName():String{
return ("blue");
}
}
}//package powers
Section 90
//Harvest_s_btn_harvest (powers.Harvest_s_btn_harvest)
package powers {
import mx.core.*;
public class Harvest_s_btn_harvest extends SpriteAsset {
}
}//package powers
Section 91
//JumpSlash (powers.JumpSlash)
package powers {
import com.urbansquall.shex.*;
public class JumpSlash extends BasicAttack {
private static const s_btn_jump_slash:Class = JumpSlash_s_btn_jump_slash;
public function JumpSlash(){
m_button = new PowerButton(s_btn_jump_slash, this);
}
override public function isValidTarget(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Boolean{
var _local5:Hex;
if ((((_arg2 == _arg3)) || ((_arg3.data == null)))){
return (false);
};
if (_arg1.isHexAdjacentTo(_arg3, _arg2)){
return (false);
};
var _local4:Array = _arg1.getNeighborsTo(_arg2.col, _arg2.row);
for each (_local5 in _local4) {
if (_arg1.isHexAdjacentTo(_local5, _arg3)){
return (true);
};
};
return (false);
}
override public function get color():uint{
return (Game.BLUE_CUTIE);
}
override public function get name():String{
return ("Jump Slash");
}
override public function get description():String{
return ("Kill a group of cuties two tiles away. Absorb their souls.");
}
override public function get cost():int{
return (9);
}
override public function get colorName():String{
return ("blue");
}
}
}//package powers
Section 92
//JumpSlash_s_btn_jump_slash (powers.JumpSlash_s_btn_jump_slash)
package powers {
import mx.core.*;
public class JumpSlash_s_btn_jump_slash extends SpriteAsset {
}
}//package powers
Section 93
//Transform (powers.Transform)
package powers {
import com.urbansquall.shex.*;
public class Transform extends BasicAttack {
private static const s_btn_transform:Class = Transform_s_btn_transform;
public function Transform(){
m_button = new PowerButton(s_btn_transform, this);
}
override public function get movesReaper():Boolean{
return (false);
}
override public function isValidTarget(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Boolean{
if ((((_arg2 == _arg3)) || (!((_arg3.data is ColorData))))){
return (false);
};
return (_arg1.isHexAdjacentTo(_arg2, _arg3));
}
override public function killCuties(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex, _arg4:Function):void{
var _local10:Hex;
var _local5:Array = [Game.BLACK_CUTIE, Game.BLUE_CUTIE, Game.RED_CUTIE, Game.YELLOW_CUTIE];
var _local6:uint = (_arg2.data as ColorData).color;
_local5.splice(_local5.indexOf(_local6), 1);
var _local7:int = (Math.random() * _local5.length);
var _local8:uint = _local5[_local7];
var _local9:Array = findAffectedCuties(_arg1, _arg2, _arg3);
for each (_local10 in _local9) {
_local10.data = new ColorData(_local8);
};
_arg4(_arg2, _arg3, []);
}
override public function get color():uint{
return (Game.YELLOW_CUTIE);
}
override public function get name():String{
return ("Transform");
}
override public function get description():String{
return ("Randomly change the color of an adjacent group of cuties. They will not be killed.");
}
override public function get cost():int{
return (19);
}
override public function get colorName():String{
return ("yellow");
}
}
}//package powers
Section 94
//Transform_s_btn_transform (powers.Transform_s_btn_transform)
package powers {
import mx.core.*;
public class Transform_s_btn_transform extends SpriteAsset {
}
}//package powers
Section 95
//VampiricTouch (powers.VampiricTouch)
package powers {
import com.urbansquall.shex.*;
import com.urbansquall.utils.*;
public class VampiricTouch extends BasicAttack {
private static const s_btn_vampiric_touch:Class = VampiricTouch_s_btn_vampiric_touch;
public function VampiricTouch(){
m_button = new PowerButton(s_btn_vampiric_touch, this);
}
override public function isValidTarget(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex):Boolean{
if ((((_arg2 == _arg3)) || (!((_arg3.data is ColorData))))){
return (false);
};
if ((_arg3.data as ColorData).color == Game.RED_CUTIE){
return (false);
};
return (_arg1.isHexAdjacentTo(_arg2, _arg3));
}
override public function killCuties(_arg1:HexRectGrid, _arg2:Hex, _arg3:Hex, _arg4:Function):void{
super.killCuties(_arg1, _arg2, _arg3, Delegate.create(this, getKills, _arg4));
}
override protected function modifyCutieColor(_arg1:uint):uint{
return (Game.RED_CUTIE);
}
override public function get color():uint{
return (Game.YELLOW_CUTIE);
}
override public function get name():String{
return ("Vampiric Touch");
}
override public function get description():String{
return ("Kill an adjacent group of cuties. Absorb their souls, which are converted to red souls.");
}
override public function get cost():int{
return (24);
}
override public function get colorName():String{
return ("yellow");
}
private function getKills(_arg1:Hex, _arg2:Hex, _arg3:Array, _arg4:Function):void{
_arg3[0][0] = Game.RED_CUTIE;
_arg4(_arg1, _arg2, _arg3);
}
}
}//package powers
Section 96
//VampiricTouch_s_btn_vampiric_touch (powers.VampiricTouch_s_btn_vampiric_touch)
package powers {
import mx.core.*;
public class VampiricTouch_s_btn_vampiric_touch extends SpriteAsset {
}
}//package powers
Section 97
//ColorData (ColorData)
package {
import flash.display.*;
import com.urbansquall.shex.*;
import com.urbansquall.ginger.*;
import caurina.transitions.*;
public class ColorData extends HexData {
private var m_ring:Sprite;
public var color:uint;
private var m_dieComplete:Function;// = null
private var m_cutie:Sprite;
private var m_animationController:AnimationPlayer;// = null
private var m_bg:Sprite;
private static const PLATE_BLACK_SYMBOL:Class = ColorData_PLATE_BLACK_SYMBOL;
public static const DIE_FPS:int = 30;
private static const PLATE_RED_SYMBOL:Class = ColorData_PLATE_RED_SYMBOL;
public static const NORMAL_FPS:int = 18;
private static const PLATE_YELLOW_SYMBOL:Class = ColorData_PLATE_YELLOW_SYMBOL;
private static const PLATE_BLUE_SYMBOL:Class = ColorData_PLATE_BLUE_SYMBOL;
public function ColorData(_arg1:uint){
var _local2:Class;
super();
color = _arg1;
m_bg = new Sprite();
m_bg.y = 1;
m_image.addChild(m_bg);
switch (color){
case Game.RED_CUTIE:
_local2 = PLATE_RED_SYMBOL;
break;
case Game.BLUE_CUTIE:
_local2 = PLATE_BLUE_SYMBOL;
break;
case Game.BLACK_CUTIE:
_local2 = PLATE_BLACK_SYMBOL;
break;
case Game.YELLOW_CUTIE:
_local2 = PLATE_YELLOW_SYMBOL;
break;
};
var _local3:Sprite = new (_local2);
m_bg.addChild(_local3);
_local3.x = ((Game.HEX_SIZE - _local3.width) / 2);
_local3.y = (((Game.HEX_SIZE - _local3.height) / 2) - 2);
_local3.cacheAsBitmap = true;
_local3.mouseEnabled = false;
createGraphics();
}
override public function doTween():void{
if (Game.IS_FIRST_TIME){
return;
};
m_cutie.y = m_image.height;
m_cutie.scaleY = 0;
m_bg.alpha = 0;
Tweener.addTween(m_cutie, {scaleY:1, y:0, time:0.8, transition:"easeOutExpo"});
Tweener.addTween(m_bg, {alpha:1, time:0.8, transition:"easeOutExpo"});
}
private function callDie():void{
if (m_dieComplete != null){
m_dieComplete();
m_dieComplete = null;
};
}
override public function makeSureYouDie():void{
callDie();
}
public function get animationController():AnimationPlayer{
return (m_animationController);
}
override public function doFinalTween(_arg1:Function):void{
if (m_animationController.currentAnimationID == "die"){
return;
};
m_animationController.play("die");
m_dieComplete = _arg1;
}
private function changeAnimation(_arg1:AnimationEvent):void{
m_animationController.x = (Game.HEX_SIZE / 2);
m_animationController.y = 10;
if (_arg1.animationID == "die"){
m_animationController.fps = DIE_FPS;
if (!_arg1.begin){
callDie();
};
} else {
m_animationController.fps = NORMAL_FPS;
};
}
private function createGraphics():void{
m_cutie = new Sprite();
m_image.addChild(m_cutie);
m_animationController = CutiePopperAnimationFactory.instance.instantiate(String(color));
m_animationController.play("idle");
m_animationController.addEventListener(AnimationEvent.CHANGE, changeAnimation);
var _local1:Number = 32;
var _local2:Number = 48;
m_animationController.x = (Game.HEX_SIZE / 2);
m_animationController.y = 10;
m_cutie.addChild(m_animationController);
}
override public function tick(_arg1:Number):void{
if (m_animationController != null){
m_animationController.update(_arg1);
};
}
}
}//package
Section 98
//ColorData_PLATE_BLACK_SYMBOL (ColorData_PLATE_BLACK_SYMBOL)
package {
import mx.core.*;
public class ColorData_PLATE_BLACK_SYMBOL extends SpriteAsset {
}
}//package
Section 99
//ColorData_PLATE_BLUE_SYMBOL (ColorData_PLATE_BLUE_SYMBOL)
package {
import mx.core.*;
public class ColorData_PLATE_BLUE_SYMBOL extends SpriteAsset {
}
}//package
Section 100
//ColorData_PLATE_RED_SYMBOL (ColorData_PLATE_RED_SYMBOL)
package {
import mx.core.*;
public class ColorData_PLATE_RED_SYMBOL extends SpriteAsset {
}
}//package
Section 101
//ColorData_PLATE_YELLOW_SYMBOL (ColorData_PLATE_YELLOW_SYMBOL)
package {
import mx.core.*;
public class ColorData_PLATE_YELLOW_SYMBOL extends SpriteAsset {
}
}//package
Section 102
//CustomTextField (CustomTextField)
package {
import flash.text.*;
public class CustomTextField extends TextField {
private static const us_customFont:String = "CustomTextField_us_customFont";
public function CustomTextField(_arg1:String="", _arg2:uint=0, _arg3:int=28){
this.autoSize = TextFieldAutoSize.LEFT;
this.selectable = false;
this.embedFonts = true;
this.defaultTextFormat = new TextFormat("us_customFont", _arg3, _arg2);
this.text = _arg1;
}
private function copyTextFormat():TextFormat{
var _local1:TextFormat = this.defaultTextFormat;
_local1 = new TextFormat(_local1.font, _local1.size, _local1.color, _local1.bold, _local1.italic, _local1.underline, _local1.url, _local1.target, _local1.align, _local1.leftMargin, _local1.rightMargin, _local1.indent, _local1.leading);
return (_local1);
}
public function set size(_arg1:int):void{
var _local2:TextFormat = copyTextFormat();
_local2.size = _arg1;
this.defaultTextFormat = _local2;
}
public function set leading(_arg1:int):void{
var _local2:TextFormat = copyTextFormat();
_local2.leading = _arg1;
this.defaultTextFormat = _local2;
}
public function center():void{
var _local1:TextFormat = copyTextFormat();
_local1.align = TextFormatAlign.CENTER;
this.defaultTextFormat = _local1;
}
public function underline():void{
var _local1:TextFormat = copyTextFormat();
_local1.underline = true;
this.defaultTextFormat = _local1;
}
}
}//package
Section 103
//CustomTextField_us_customFont (CustomTextField_us_customFont)
package {
import mx.core.*;
public class CustomTextField_us_customFont extends FontAsset {
}
}//package
Section 104
//CutiePopperAnimationFactory (CutiePopperAnimationFactory)
package {
import flash.display.*;
import flash.geom.*;
import com.urbansquall.ginger.*;
public class CutiePopperAnimationFactory extends AnimationPlayerFactory {
private static const s_idle_box:Class = CutiePopperAnimationFactory_s_idle_box;
private static const s_cutie_black_death:Class = CutiePopperAnimationFactory_s_cutie_black_death;
public static const BABY_REAPER_SKIN:String = "baby_reaper_skin";
public static const MS_REAPER_SKIN:String = "ms_reaper_skin";
private static const s_cutie_red_death:Class = CutiePopperAnimationFactory_s_cutie_red_death;
private static const s_baby_reaper_attack:Class = CutiePopperAnimationFactory_s_baby_reaper_attack;
private static const s_cutie_blue_death:Class = CutiePopperAnimationFactory_s_cutie_blue_death;
private static const s_regular_egg:Class = CutiePopperAnimationFactory_s_regular_egg;
private static const s_golden_egg_crack:Class = CutiePopperAnimationFactory_s_golden_egg_crack;
private static const CUTIES_TILESHEET:Class = CutiePopperAnimationFactory_CUTIES_TILESHEET;
private static const s_golden_egg:Class = CutiePopperAnimationFactory_s_golden_egg;
private static const s_ms_reaper_attack:Class = CutiePopperAnimationFactory_s_ms_reaper_attack;
public static const REAPER_SKIN:String = "reaper_skin";
private static const s_baby_reaper_idle:Class = CutiePopperAnimationFactory_s_baby_reaper_idle;
private static const s_egg_crack:Class = CutiePopperAnimationFactory_s_egg_crack;
private static const s_ms_reaper_idle:Class = CutiePopperAnimationFactory_s_ms_reaper_idle;
private static const s_reaper_idle:Class = CutiePopperAnimationFactory_s_reaper_idle;
private static const s_reaper_attack:Class = CutiePopperAnimationFactory_s_reaper_attack;
private static const s_cutie_yellow_death:Class = CutiePopperAnimationFactory_s_cutie_yellow_death;
private static var s_instance:CutiePopperAnimationFactory;
public function CutiePopperAnimationFactory(){
if (s_instance != null){
throw (new Error("DIIIIIIIE"));
};
s_instance = this;
createCuties();
createReaper();
createEggs();
createBox();
}
private function createCuties():void{
var _local10:AnimationPlayer;
var _local13:uint;
var _local14:Number;
var _local15:Number;
var _local16:int;
var _local17:Rectangle;
var _local18:Animation;
var _local19:Animation;
var _local20:int;
var _local21:Animation;
var _local1:BitmapData = new CUTIES_TILESHEET().bitmapData;
var _local2:BitmapData = new s_cutie_yellow_death().bitmapData;
var _local3:BitmapData = new s_cutie_red_death().bitmapData;
var _local4:BitmapData = new s_cutie_blue_death().bitmapData;
var _local5:BitmapData = new s_cutie_black_death().bitmapData;
var _local6 = 4;
var _local7:int;
var _local8:int;
var _local9:BitmapData;
var _local11:Array = [Game.RED_CUTIE, Game.BLACK_CUTIE, Game.BLUE_CUTIE, Game.YELLOW_CUTIE];
var _local12:int;
while (_local12 < _local11.length) {
_local13 = _local11[_local12];
_local6 = 4;
_local7 = 0;
_local8 = 0;
switch (_local13){
case Game.RED_CUTIE:
_local9 = _local3;
break;
case Game.BLUE_CUTIE:
_local9 = _local4;
_local7 = 4;
break;
case Game.BLACK_CUTIE:
_local9 = _local5;
_local8 = 1;
break;
case Game.YELLOW_CUTIE:
_local9 = _local2;
_local8 = 1;
_local7 = 4;
break;
};
_local14 = 32;
_local15 = 48;
_local16 = ColorData.NORMAL_FPS;
_local17 = new Rectangle((_local7 * _local14), (_local8 * _local15), _local14, _local15);
_local18 = new Animation(_local16);
_local18.addFrame(1, _local1, _local17, (_local14 / 2), (_local15 / 2));
_local18.isLooping = true;
_local19 = AnimationBuilder.importStrip(_local16, _local1, _local14, _local15, 4, (_local7 * _local14), (_local8 * _local15));
_local19.isLooping = false;
_local20 = 6;
_local6 = 12;
_local14 = 64;
_local15 = 80;
_local21 = AnimationBuilder.importStrip(32, _local9, _local14, _local15);
_local21.isLooping = false;
_local10 = new AnimationPlayer();
_local10.addAnimation("idle", _local18);
_local10.addAnimation("hop", _local19);
_local10.addAnimation("die", _local21);
_local10.fps = _local16;
this.register(String(_local13), _local10);
_local12++;
};
_local1.dispose();
_local2.dispose();
_local3.dispose();
_local4.dispose();
_local5.dispose();
}
private function createEggs():void{
var _local1:BitmapData = new s_golden_egg().bitmapData;
var _local2:BitmapData = new s_regular_egg().bitmapData;
var _local3:BitmapData = new s_egg_crack().bitmapData;
var _local4:BitmapData = new s_golden_egg_crack().bitmapData;
var _local5:Number = 32;
var _local6:Number = 32;
var _local7 = 1;
var _local8 = 1;
var _local9:int;
var _local10:Rectangle = new Rectangle();
var _local11:int;
var _local12:int;
var _local13:Animation = AnimationBuilder.importStrip(32, _local2, _local5, _local6);
_local13.isLooping = false;
_local7 = 12;
_local8 = 4;
var _local14:Animation = AnimationBuilder.importStrip(32, _local3, _local5, _local6);
_local14.isLooping = false;
_local7 = 4;
var _local15:Animation = AnimationBuilder.importStrip(12, _local1, _local5, _local6);
_local15.isLooping = true;
_local7 = 12;
_local8 = 6;
_local5 = 64;
_local6 = 48;
var _local16:Animation = AnimationBuilder.importStrip(32, _local4, _local5, _local6);
_local16.changeAllOffsets((_local5 / 2), ((_local6 / 2) + 8));
var _local17:AnimationPlayer = new AnimationPlayer();
_local17.addAnimation("regular", _local13);
_local17.addAnimation("crack", _local14);
_local17.addAnimation("golden", _local15);
_local17.addAnimation("goldenCrack", _local16);
_local17.fps = EggData.NORMAL_FPS;
register("egg", _local17);
_local1.dispose();
_local2.dispose();
_local3.dispose();
}
private function createReaper():void{
var _local5:AnimationPlayer;
var _local6:Animation;
var _local7:Animation;
var _local1:Array = [new s_reaper_idle().bitmapData, new s_ms_reaper_idle().bitmapData, new s_baby_reaper_idle().bitmapData];
var _local2:Array = [new s_reaper_attack().bitmapData, new s_ms_reaper_attack().bitmapData, new s_baby_reaper_attack().bitmapData];
var _local3:Array = [REAPER_SKIN, MS_REAPER_SKIN, BABY_REAPER_SKIN];
var _local4:int;
while (_local4 < _local1.length) {
_local5 = new AnimationPlayer();
_local5.fps = ReaperData.NORMAL_FPS;
_local6 = AnimationBuilder.importStrip(8, _local1[_local4], 48, 64);
_local6.isLooping = true;
_local5.addAnimation("idle", _local6);
_local7 = AnimationBuilder.importStrip(32, _local2[_local4], 96, 96);
_local7.isLooping = false;
_local5.addAnimation("attack", _local7);
register(_local3[_local4], _local5);
_local1[_local4].dispose();
_local2[_local4].dispose();
_local4++;
};
}
private function createBox():void{
var _local1:AnimationPlayer = new AnimationPlayer();
var _local2:BitmapData = new s_idle_box().bitmapData;
var _local3:Animation = AnimationBuilder.importStrip(16, _local2, 48, 64);
_local3.isLooping = true;
_local1.addAnimation("idle", _local3);
register("box", _local1);
_local2.dispose();
}
public static function get instance():CutiePopperAnimationFactory{
return (s_instance);
}
}
}//package
Section 105
//CutiePopperAnimationFactory_CUTIES_TILESHEET (CutiePopperAnimationFactory_CUTIES_TILESHEET)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_CUTIES_TILESHEET extends BitmapAsset {
}
}//package
Section 106
//CutiePopperAnimationFactory_s_baby_reaper_attack (CutiePopperAnimationFactory_s_baby_reaper_attack)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_baby_reaper_attack extends BitmapAsset {
}
}//package
Section 107
//CutiePopperAnimationFactory_s_baby_reaper_idle (CutiePopperAnimationFactory_s_baby_reaper_idle)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_baby_reaper_idle extends BitmapAsset {
}
}//package
Section 108
//CutiePopperAnimationFactory_s_cutie_black_death (CutiePopperAnimationFactory_s_cutie_black_death)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_cutie_black_death extends BitmapAsset {
}
}//package
Section 109
//CutiePopperAnimationFactory_s_cutie_blue_death (CutiePopperAnimationFactory_s_cutie_blue_death)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_cutie_blue_death extends BitmapAsset {
}
}//package
Section 110
//CutiePopperAnimationFactory_s_cutie_red_death (CutiePopperAnimationFactory_s_cutie_red_death)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_cutie_red_death extends BitmapAsset {
}
}//package
Section 111
//CutiePopperAnimationFactory_s_cutie_yellow_death (CutiePopperAnimationFactory_s_cutie_yellow_death)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_cutie_yellow_death extends BitmapAsset {
}
}//package
Section 112
//CutiePopperAnimationFactory_s_egg_crack (CutiePopperAnimationFactory_s_egg_crack)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_egg_crack extends BitmapAsset {
}
}//package
Section 113
//CutiePopperAnimationFactory_s_golden_egg (CutiePopperAnimationFactory_s_golden_egg)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_golden_egg extends BitmapAsset {
}
}//package
Section 114
//CutiePopperAnimationFactory_s_golden_egg_crack (CutiePopperAnimationFactory_s_golden_egg_crack)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_golden_egg_crack extends BitmapAsset {
}
}//package
Section 115
//CutiePopperAnimationFactory_s_idle_box (CutiePopperAnimationFactory_s_idle_box)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_idle_box extends BitmapAsset {
}
}//package
Section 116
//CutiePopperAnimationFactory_s_ms_reaper_attack (CutiePopperAnimationFactory_s_ms_reaper_attack)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_ms_reaper_attack extends BitmapAsset {
}
}//package
Section 117
//CutiePopperAnimationFactory_s_ms_reaper_idle (CutiePopperAnimationFactory_s_ms_reaper_idle)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_ms_reaper_idle extends BitmapAsset {
}
}//package
Section 118
//CutiePopperAnimationFactory_s_reaper_attack (CutiePopperAnimationFactory_s_reaper_attack)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_reaper_attack extends BitmapAsset {
}
}//package
Section 119
//CutiePopperAnimationFactory_s_reaper_idle (CutiePopperAnimationFactory_s_reaper_idle)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_reaper_idle extends BitmapAsset {
}
}//package
Section 120
//CutiePopperAnimationFactory_s_regular_egg (CutiePopperAnimationFactory_s_regular_egg)
package {
import mx.core.*;
public class CutiePopperAnimationFactory_s_regular_egg extends BitmapAsset {
}
}//package
Section 121
//CutieSoul (CutieSoul)
package {
import flash.display.*;
import flash.geom.*;
public class CutieSoul extends Sprite {
private var m_bitmap:Bitmap;
private var m_oldX:Number;// = NAN
private var m_oldY:Number;// = NAN
public var isDoubled:Boolean;
public var color:uint;
public static const WIDTH:int = 32;
public static const HEIGHT:int = 48;
private static const CUTIE_SOUL_PNG:Class = CutieSoul_CUTIE_SOUL_PNG;
private static var s_cutieSoulBitmapData:BitmapData;
public function CutieSoul(_arg1:uint, _arg2:Boolean=false){
var _local7:Bitmap;
super();
color = _arg1;
isDoubled = _arg2;
if (s_cutieSoulBitmapData == null){
s_cutieSoulBitmapData = new CUTIE_SOUL_PNG().bitmapData;
};
m_bitmap = new Bitmap();
addChild(m_bitmap);
m_bitmap.x = (m_bitmap.x - (WIDTH / 2));
m_bitmap.y = (m_bitmap.y - (HEIGHT / 2));
m_bitmap.bitmapData = s_cutieSoulBitmapData;
if (_arg2){
_local7 = new Bitmap();
this.addChild(_local7);
_local7.x = (_local7.x - (WIDTH / 2));
_local7.bitmapData = s_cutieSoulBitmapData;
};
var _local3:Number = WIDTH;
var _local4:Number = HEIGHT;
var _local5:int;
switch (_arg1){
case Game.BLUE_CUTIE:
_local5 = 0;
break;
case Game.RED_CUTIE:
_local5 = 1;
break;
case Game.YELLOW_CUTIE:
_local5 = 2;
break;
case Game.BLACK_CUTIE:
_local5 = 3;
break;
};
var _local6:Rectangle = new Rectangle((_local5 * _local3), 0, _local3, _local4);
m_bitmap.scrollRect = _local6;
if (_arg2){
_local7.scrollRect = _local6;
};
}
public function set oldY(_arg1:Number):void{
m_oldY = _arg1;
}
public function get oldX():Number{
return (m_oldX);
}
public function get oldY():Number{
return (m_oldY);
}
public function set oldX(_arg1:Number):void{
m_oldX = _arg1;
}
}
}//package
Section 122
//CutieSoul_CUTIE_SOUL_PNG (CutieSoul_CUTIE_SOUL_PNG)
package {
import mx.core.*;
public class CutieSoul_CUTIE_SOUL_PNG extends BitmapAsset {
}
}//package
Section 123
//EggData (EggData)
package {
import com.urbansquall.shex.*;
import com.urbansquall.ginger.*;
import caurina.transitions.*;
public class EggData extends HexData {
private var animationController:AnimationPlayer;// = null
private var m_isGolden:Boolean;
private var m_dieComplete:Function;
public static const BREAK_FPS:int = 36;
public static const NORMAL_FPS:int = 32;
public function EggData(_arg1:Boolean){
m_isGolden = _arg1;
m_dieComplete = null;
createGraphics();
m_image.x = (Game.HEX_SIZE / 2);
m_image.y = ((Game.HEX_SIZE / 2) - 6);
if (_arg1){
animationController.play("golden");
};
}
private function callDie():void{
if (m_dieComplete != null){
m_dieComplete();
m_dieComplete = null;
};
}
override public function makeSureYouDie():void{
callDie();
}
private function createGraphics():void{
animationController = CutiePopperAnimationFactory.instance.instantiate("egg");
animationController.addEventListener(AnimationEvent.CHANGE, changeAnimation);
m_image.addChild(animationController);
}
override public function doFinalTween(_arg1:Function):void{
if ((((animationController.currentAnimationID == "crack")) || ((animationController.currentAnimationID == "goldenCrack")))){
return;
};
m_dieComplete = _arg1;
if (m_isGolden){
animationController.play("goldenCrack");
} else {
animationController.play("crack");
};
}
public function get isGolden():Boolean{
return (m_isGolden);
}
private function changeAnimation(_arg1:AnimationEvent):void{
if ((((_arg1.animationID == "crack")) || ((_arg1.animationID == "goldenCrack")))){
animationController.fps = BREAK_FPS;
if (!_arg1.begin){
animationController.pause();
callDie();
};
} else {
animationController.fps = NORMAL_FPS;
};
}
override public function doTween():void{
var _local1 = 20;
animationController.y = (animationController.y - _local1);
Tweener.addTween(animationController, {y:(animationController.y + _local1), time:0.4, transition:"easeOutBounce"});
}
public function play(_arg1:String):void{
animationController.play(_arg1);
}
override public function tick(_arg1:Number):void{
if (animationController != null){
animationController.update(_arg1);
};
}
}
}//package
Section 124
//Game (Game)
package {
import flash.events.*;
import flash.display.*;
import powers.*;
import com.urbansquall.metronome.*;
import com.urbansquall.shex.*;
import caurina.transitions.*;
import flash.text.*;
import com.urbansquall.chaos.*;
import com.urbansquall.echo.*;
import events.*;
import com.urbansquall.utils.*;
import flash.ui.*;
import flash.filters.*;
public class Game extends Sprite {
private const TIME_BETWEEN_CUTIE_ANIMATIONS:int = 1000;
private var m_affected:Array;
private var m_lastGridCoord:Array;
private var m_inputDisabled:Boolean;
private var m_bgMusic:Loop;
private var m_randGen:WeightedRandom;
private var m_transform:GroupedSound;
private var m_ticker:Ticker;
private var m_description:CustomTextField;
private var m_currAttack:BasicAttack;
private var m_animationTimer:int;
private var m_quitFunc:Function;
private var m_isBgDanger:Boolean;
private var m_attacks:Array;
private var m_isGameOverHappening:Boolean;
private var m_laser:GroupedSound;
private var m_lowHealth:Loop;
private var m_buttonFrame:Sprite;
private var m_highlightedIndicator:Sprite;
private var m_screams:Array;
private var m_tutorialManager:TutorialManager;
private var m_flash:Sprite;
private var m_ohNooChannel:ChannelWrapper;
private var m_flyingRedCuties:int;
private var m_ui:GamePanel;
private var m_eggs:Array;
private var m_sfx:SoundGroup;
private var m_isTutorial:Boolean;
private var m_animationIndex:int;
private var m_fireball:GroupedSound;
private var m_levelMap:LevelMap;
private var m_currentHighlight:Array;
private var m_grid:HexRectGrid;
private var m_woosh:GroupedSound;
private var m_reaper:Reaper;
private var m_ohNoo:GroupedSound;
private var m_bgm:SoundGroup;
public static const HEX_SIZE:int = 60;
private static const s_frame_bottom:Class = Game_s_frame_bottom;
public static const EGG_CRUSHER_POINTS:int = -2;
private static const TUTORIAL_CUTIES:Array = [[YELLOW_CUTIE, BLACK_CUTIE, BLACK_CUTIE, RED_CUTIE, RED_CUTIE, RED_CUTIE, YELLOW_CUTIE, YELLOW_CUTIE, YELLOW_CUTIE], [BLUE_CUTIE, YELLOW_CUTIE, BLACK_CUTIE, BLACK_CUTIE, BLUE_CUTIE, BLUE_CUTIE, RED_CUTIE, RED_CUTIE, YELLOW_CUTIE], [BLUE_CUTIE, YELLOW_CUTIE, BLACK_CUTIE, BLUE_CUTIE, BLUE_CUTIE, RED_CUTIE, YELLOW_CUTIE, YELLOW_CUTIE, YELLOW_CUTIE], [BLUE_CUTIE, BLUE_CUTIE, YELLOW_CUTIE, BLUE_CUTIE, BLUE_CUTIE, BLUE_CUTIE, YELLOW_CUTIE, BLACK_CUTIE, BLACK_CUTIE], [BLUE_CUTIE, BLUE_CUTIE, YELLOW_CUTIE, BLACK_CUTIE, RED_CUTIE, BLACK_CUTIE, BLACK_CUTIE, BLACK_CUTIE, BLACK_CUTIE], [YELLOW_CUTIE, YELLOW_CUTIE, YELLOW_CUTIE, YELLOW_CUTIE, BLACK_CUTIE, BLUE_CUTIE, BLACK_CUTIE, BLACK_CUTIE, BLACK_CUTIE], [RED_CUTIE, RED_CUTIE, RED_CUTIE, YELLOW_CUTIE, BLACK_CUTIE, BLUE_CUTIE, BLUE_CUTIE, BLUE_CUTIE, BLUE_CUTIE], [RED_CUTIE, RED_CUTIE, RED_CUTIE, RED_CUTIE, YELLOW_CUTIE, BLACK_CUTIE, BLUE_CUTIE, BLUE_CUTIE, BLUE_CUTIE]];
public static const BLUE_CUTIE:uint = 0xFF;
public static const BLACK_CUTIE:uint = 0;
public static const EGG:uint = 0xFFFFFF;
public static const GOD_MODE:Boolean = false;
public static const GOLDEN_EGG:uint = 16777214;
public static const RED_CUTIE:uint = 0xFF0000;
public static const YELLOW_CUTIE:uint = 0xFFD800;
private static const s_button_frame:Class = Game_s_button_frame;
public static const CHEATS_ON:Boolean = false;
public static var IS_FIRST_TIME:Boolean = true;
public function Game(_arg1:int, _arg2:int, _arg3:Function, _arg4:int, _arg5:String, _arg6:Boolean){
var _local13:PowerButton;
super();
if (CHEATS_ON){
trace("CHEATS ON CHEATS ON CHEATS ON CHEATS ON");
};
m_attacks = [new BasicAttack(), new JumpSlash(), new Harvest(), new Transform(), new VampiricTouch(), new EyeLasers(), new FireBlast()];
m_isGameOverHappening = false;
m_flyingRedCuties = 0;
m_isBgDanger = true;
m_isTutorial = _arg6;
m_quitFunc = _arg3;
m_currAttack = m_attacks[0];
m_currentHighlight = [-1, -1];
m_inputDisabled = false;
m_affected = [];
m_levelMap = new LevelMap();
this.addChild(m_levelMap);
m_bgm = new SoundGroup();
m_sfx = new SoundGroup();
m_ui = new GamePanel(m_levelMap, onNewEnemiesTrigger, onQuit, _arg4, showGameOver, onSfxMute, onBgmMute);
this.addChild(m_ui);
m_levelMap.draw(m_ui.lifeLeft, 0);
m_grid = new HexRectGrid(_arg1, _arg2, HEX_SIZE);
m_grid.x = ((((this.width - m_levelMap.width) - m_grid.width) / 2) + m_levelMap.width);
m_grid.y = ((m_ui.y + m_ui.height) + 8);
m_grid.buttonMode = true;
m_grid.addEventListener(MouseEvent.MOUSE_MOVE, onGridMove);
m_grid.addEventListener(MouseEvent.CLICK, onGridClick);
m_randGen = new WeightedRandom();
m_randGen.registerOption(RED_CUTIE, 5);
m_randGen.registerOption(BLUE_CUTIE, 8);
m_randGen.registerOption(BLACK_CUTIE, 8);
m_randGen.registerOption(YELLOW_CUTIE, 8);
m_reaper = new Reaper(_arg5);
m_reaper.mouseEnabled = false;
m_grid.addChild(m_reaper);
var _local7:Hex = m_grid.getHexAt(m_reaper.col, m_reaper.row);
m_reaper.x = _local7.x;
m_reaper.y = (_local7.y - 8);
_local7.die();
m_ticker = new Ticker();
m_ticker.addEventListener(TickerEvent.TICK, tick);
m_ticker.start();
m_animationTimer = TIME_BETWEEN_CUTIE_ANIMATIONS;
m_animationIndex = 0;
var _local8:Sprite = new Sprite();
_local8.addChild(new s_frame_bottom());
_local8.y = (Main.GAME_HEIGHT - _local8.height);
var _local9:int;
while (_local9 < m_attacks.length) {
_local13 = m_attacks[_local9].button;
m_attacks[_local9].game = this;
_local13.x = (2 + (_local9 * (m_attacks[0].button.width + 3)));
_local13.y = ((_local8.height - m_attacks[0].button.height) - 2);
_local13.addEventListener(MouseEvent.CLICK, Delegate.create(this, onPowerButtonClick, _local9));
_local13.addEventListener(MouseEvent.MOUSE_MOVE, Delegate.create(this, onPowerButtonMove, _local9));
_local13.addEventListener(MouseEvent.MOUSE_OUT, onPowerButtonOut);
_local8.addChild(_local13);
if (_local9 > 0){
_local13.expend();
} else {
_local13.recharge(m_attacks[_local9].cost);
};
_local9++;
};
m_buttonFrame = new Sprite();
m_buttonFrame.addChild(new s_button_frame());
m_buttonFrame.cacheAsBitmap = true;
m_buttonFrame.x = -1;
m_buttonFrame.y = (m_attacks[0].button.y - 4);
_local8.addChild(m_buttonFrame);
m_description = new CustomTextField("Hover over a power to see what it does.", 0xFFFFFF, 16);
m_description.filters = [new GlowFilter(0xDDDDDD, 1, 2, 2, 32), new DropShadowFilter()];
m_description.background = true;
m_description.backgroundColor = 3946595;
m_description.wordWrap = true;
m_description.autoSize = TextFieldAutoSize.NONE;
m_description.width = (Main.GAME_WIDTH - 8);
m_description.height = 22;
m_description.x = 4;
m_description.y = 10;
m_description.mouseEnabled = false;
m_description.visible = false;
_local8.addChild(m_description);
this.addChild(m_grid);
this.addChild(_local8);
fillStartingBoard();
IS_FIRST_TIME = false;
m_flash = new Sprite();
m_flash.graphics.beginFill(0xFFFFFF, 1);
m_flash.graphics.drawRect(0, 0, Main.GAME_WIDTH, Main.GAME_HEIGHT);
m_flash.graphics.endFill();
m_flash.visible = false;
m_flash.mouseEnabled = false;
this.addChild(m_flash);
var _local10:Number = 0.38;
m_bgMusic = new Loop(m_bgm, new SoundLibrary.s_bgm());
m_bgMusic.volume = _local10;
m_ohNoo = new GroupedSound(m_bgm, new SoundLibrary.s_oh_noo());
m_ohNoo.defaultVolume = _local10;
m_lowHealth = new Loop(m_bgm, new SoundLibrary.s_low_health());
m_lowHealth.volume = _local10;
playRegularMusic();
m_woosh = new GroupedSound(m_sfx, new SoundLibrary.s_woosh());
m_fireball = new GroupedSound(m_sfx, new SoundLibrary.s_fireball());
m_laser = new GroupedSound(m_sfx, new SoundLibrary.s_laser());
m_transform = new GroupedSound(m_sfx, new SoundLibrary.s_transform());
m_screams = [];
var _local11:int;
while (_local11 < SoundLibrary.screams.length) {
m_screams.push(new GroupedSound(m_sfx, SoundLibrary.screams[_local11], SoundLibrary.screamVol[_local11]));
_local11++;
};
m_eggs = [];
var _local12:int;
while (_local12 < SoundLibrary.eggs.length) {
m_eggs.push(new GroupedSound(m_sfx, SoundLibrary.eggs[_local12]));
_local12++;
};
if (m_isTutorial){
m_tutorialManager = new TutorialManager(this);
this.addChild(m_tutorialManager);
};
selectAttack();
m_ui.showLevelScreen();
this.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
private function describePower(_arg1:BasicAttack=null):void{
if (_arg1 == null){
_arg1 = m_currAttack;
};
m_description.text = ((_arg1.name + ": ") + _arg1.description);
}
public function showGameOver():void{
var _local1:GameOverScreen;
if (m_isGameOverHappening){
return;
};
m_isGameOverHappening = true;
if (m_isTutorial){
Main.s_safeSolManager.writeInt("tutorialBadges", 1);
onGameOverClick(false);
} else {
playRegularMusic();
_local1 = new GameOverScreen(onGameOverClick, (m_ui.lifeLeft > 0));
this.stage.addChild(_local1);
};
m_ui.submitStats(m_isTutorial);
}
public function enableInput():void{
var _local1:BasicAttack;
var _local2:Array;
for each (_local1 in m_attacks) {
_local1.button.tryEnable();
};
showIndicators(m_currAttack);
_local2 = m_grid.translateMouse(m_grid.mouseX, m_grid.mouseY);
doGridMove(_local2[0], _local2[1]);
m_inputDisabled = false;
}
private function onCutiesDoneDying(_arg1:Hex, _arg2:Hex, _arg3:Array, _arg4:Boolean):void{
if (_arg4){
if (_arg1.data != null){
_arg1.data.makeSureYouDie();
};
_arg1.data = _arg2.clearData();
m_reaper.col = _arg1.col;
m_reaper.row = _arg1.row;
};
if (m_ui.newEnemiesIn == 0){
Tweener.addCaller(this, {onUpdate:finishDoneDying, onUpdateParams:[_arg3], delay:0.5, time:0.5, count:1, transition:"linear"});
} else {
finishDoneDying(_arg3);
};
}
public function useKillsToGainPower(_arg1:uint, _arg2:int):void{
switch (_arg1){
case RED_CUTIE:
m_ui.increaseLife(_arg2);
m_flyingRedCuties = (m_flyingRedCuties - 1);
break;
case BLUE_CUTIE:
m_attacks[1].button.recharge(_arg2);
m_attacks[2].button.recharge(_arg2);
break;
case YELLOW_CUTIE:
m_attacks[3].button.recharge(_arg2);
m_attacks[4].button.recharge(_arg2);
break;
case BLACK_CUTIE:
m_attacks[5].button.recharge(_arg2);
m_attacks[6].button.recharge(_arg2);
break;
};
}
public function get roundsUntilEggsHatch():int{
return (m_ui.newEnemiesIn);
}
private function showIndicators(_arg1:BasicAttack):void{
var _local3:int;
var _local4:int;
var _local5:Hex;
var _local6:Array;
var _local7:Hex;
unhighlightAllIndicators();
unhighlightAllAffected();
var _local2:Hex = m_grid.getHexAt(m_reaper.col, m_reaper.row);
if ((((((_arg1 is JumpSlash)) || ((_arg1 is FireBlast)))) || ((_arg1 is EyeLasers)))){
_local3 = 0;
while (_local3 < m_grid.numCols) {
_local4 = 0;
while (_local4 < m_grid.numRows) {
_local5 = m_grid.getHexAt(_local3, _local4);
if (_arg1.isValidTarget(m_grid, _local2, _local5)){
_local5.showPossibleIndicator();
};
_local4++;
};
_local3++;
};
} else {
_local6 = m_grid.getNeighborsTo(m_reaper.col, m_reaper.row);
for each (_local7 in _local6) {
if (_arg1.isValidTarget(m_grid, _local2, _local7)){
_local7.showPossibleIndicator();
};
};
};
}
private function onBgmMute():void{
m_bgm.volume = (1 - m_bgm.volume);
Main.s_safeSolManager.writeBool("muteBgm", (m_bgm.volume == 0));
}
private function onPowerButtonMove(_arg1:MouseEvent, _arg2:int):void{
describePower(m_attacks[_arg2]);
m_description.visible = true;
}
private function onPowerButtonClick(_arg1:MouseEvent, _arg2:int):void{
selectPowerButton(_arg2);
}
private function onGridMove(_arg1:MouseEvent):void{
if (m_inputDisabled){
return;
};
var _local2:Array = m_grid.translateMouse(_arg1.localX, _arg1.localY);
if ((((_local2[0] == m_currentHighlight[0])) && ((_local2[1] == m_currentHighlight[1])))){
return;
};
doGridMove(_local2[0], _local2[1]);
}
private function playRegularMusic():void{
if (!m_isBgDanger){
return;
};
m_isBgDanger = false;
if (m_ohNooChannel != null){
m_ohNooChannel.stop();
};
if (m_lowHealth.isPlaying()){
m_lowHealth.stop();
};
m_bgMusic.play();
}
private function unhighlightAllIndicators():void{
var _local2:int;
var _local1:int;
while (_local1 < m_grid.numCols) {
_local2 = 0;
while (_local2 < m_grid.numRows) {
m_grid.getHexAt(_local1, _local2).hidePossibleIndicator();
_local2++;
};
_local1++;
};
}
private function removePimpText(_arg1:CustomTextField):void{
if (_arg1.parent != null){
_arg1.parent.removeChild(_arg1);
};
}
private function onNewEnemiesTrigger():void{
var _local2:int;
var _local3:Hex;
var _local1:int;
while (_local1 < m_grid.numCols) {
_local2 = 0;
while (_local2 < m_grid.numRows) {
_local3 = m_grid.getHexAt(_local1, _local2);
if ((_local3.data is EggData)){
_local3.live();
if (m_isTutorial){
_local3.data = new ColorData(TUTORIAL_CUTIES[_local2][_local1]);
} else {
_local3.data = new ColorData((m_randGen.grabOption() as uint));
};
} else {
if (_local3.data == null){
_local3.live();
_local3.data = new EggData(false);
};
};
_local2++;
};
_local1++;
};
m_ui.increaseScore(GamePanel.MORE_CUTIES_SCORE, true);
}
private function onSfxMute():void{
m_sfx.volume = (1 - m_sfx.volume);
Main.s_safeSolManager.writeBool("muteSfx", (m_sfx.volume == 0));
}
private function selectAttack(_arg1:int=-1, _arg2:Boolean=true):void{
if (_arg1 == -1){
_arg1 = m_attacks.indexOf(m_currAttack);
};
m_currAttack = m_attacks[_arg1];
describePower();
var _local3:Number = (m_attacks[_arg1].button.x - 4);
var _local4:Number = (m_attacks[_arg1].button.y - 4);
Tweener.addTween(m_buttonFrame, {x:_local3, y:_local4, time:0.2, transition:"easeInSine"});
if (_arg2){
showIndicators(m_currAttack);
};
}
private function finishDoneDying(_arg1:Array):void{
m_ui.trackStats(_arg1);
m_ui.checkForNewEnemiesTrigger();
checkForValidMoves();
checkForGameOver(_arg1);
m_highlightedIndicator.visible = false;
enableInput();
var _local2:ChooseHexEvent = new ChooseHexEvent(m_lastGridCoord[0], m_lastGridCoord[1]);
this.dispatchEvent(_local2);
}
public function registerRedCutie():void{
m_flyingRedCuties = (m_flyingRedCuties + 1);
}
private function onGameOverClick(_arg1:Boolean):void{
cleanUp();
m_quitFunc(_arg1);
}
private function tick(_arg1:TickerEvent):void{
var _local4:int;
var _local5:Hex;
var _local6:uint;
var _local7:ColorData;
m_reaper.tick(_arg1.interval);
var _local2:Number = _arg1.interval;
var _local3:int;
while (_local3 < m_grid.numCols) {
_local4 = 0;
while (_local4 < m_grid.numRows) {
_local5 = m_grid.getHexAt(_local3, _local4);
_local5.tick(_local2);
_local4++;
};
_local3++;
};
m_animationTimer = (m_animationTimer - _local2);
if (m_animationTimer <= 0){
m_animationTimer = TIME_BETWEEN_CUTIE_ANIMATIONS;
switch (m_animationIndex){
case 0:
_local6 = RED_CUTIE;
break;
case 1:
_local6 = BLUE_CUTIE;
break;
case 2:
_local6 = BLACK_CUTIE;
break;
case 3:
_local6 = YELLOW_CUTIE;
break;
};
_local3 = 0;
while (_local3 < m_grid.numCols) {
_local4 = 0;
while (_local4 < m_grid.numRows) {
_local5 = m_grid.getHexAt(_local3, _local4);
_local7 = (_local5.data as ColorData);
if (_local7 != null){
if (_local7.color == _local6){
if (_local7.animationController.currentAnimationID != "die"){
_local7.animationController.play("hop");
};
};
};
_local4++;
};
_local3++;
};
m_animationIndex++;
if (m_animationIndex == 4){
m_animationIndex = 0;
};
};
}
private function checkForGameOver(_arg1:Array):void{
var _local3:Array;
var _local4:int;
var _local2:int;
for each (_local3 in _arg1) {
if (_local3[0] == RED_CUTIE){
_local2 = _local3[1];
break;
};
};
_local4 = ((m_ui.lifeLeft + _local2) + m_flyingRedCuties);
if (_local4 > 0){
if (_local4 < 6){
m_ui.startHeart();
playDangerMusic();
} else {
m_ui.resetHeart();
playRegularMusic();
};
} else {
showGameOver();
};
}
private function checkForValidMoves():void{
var _local2:Hex;
var _local3:int;
var _local4:int;
if (m_ui.newEnemiesIn == 0){
return;
};
var _local1:Array = m_grid.getNeighborsTo(m_reaper.col, m_reaper.row);
for each (_local2 in _local1) {
if (_local2.data != null){
return;
};
};
_local3 = m_ui.newEnemiesIn;
m_ui.decreaseLife(_local3);
_local4 = 0;
while (_local4 < _local3) {
m_ui.popQueue();
_local4++;
};
m_levelMap.draw(m_ui.lifeLeft, (_local3 - 1));
m_ui.checkForNewEnemiesTrigger();
}
public function disableInput():void{
var _local1:BasicAttack;
m_inputDisabled = true;
unhighlightAllAffected();
unhighlightAllIndicators();
m_highlightedIndicator.visible = false;
m_grid.useHandCursor = false;
for each (_local1 in m_attacks) {
_local1.button.enabled = false;
};
}
private function fillStartingBoard():void{
var _local3:Graphics;
var _local5:int;
var _local6:Hex;
var _local1:int = (HEX_SIZE / 2);
var _local2:int = (_local1 / 2);
var _local4:int;
while (_local4 < m_grid.numCols) {
_local5 = 0;
while (_local5 < m_grid.numRows) {
_local6 = m_grid.getHexAt(_local4, _local5);
if ((((_local4 == m_reaper.col)) && ((_local5 == m_reaper.row)))){
_local6.data = new ReaperData();
} else {
if (m_isTutorial){
_local6.data = new ColorData(TUTORIAL_CUTIES[_local5][_local4]);
} else {
_local6.data = new ColorData((m_randGen.grabOption() as uint));
};
};
_local5++;
};
_local4++;
};
m_highlightedIndicator = new Sprite();
m_highlightedIndicator.mouseEnabled = false;
m_highlightedIndicator.visible = false;
this.addChild(m_highlightedIndicator);
_local3 = m_highlightedIndicator.graphics;
_local3.beginFill(0xFFFFFF, 0.4);
_local3.moveTo(_local1, 0);
_local3.lineTo(Game.HEX_SIZE, _local2);
_local3.lineTo(Game.HEX_SIZE, (_local2 * 3));
_local3.lineTo(_local1, Game.HEX_SIZE);
_local3.lineTo(0, (_local2 * 3));
_local3.lineTo(0, _local2);
_local3.lineTo(_local1, 0);
_local3.endFill();
}
private function cleanUp():void{
var _local2:PowerButton;
m_bgm.stopAll();
m_sfx.stopAll();
m_grid.removeEventListener(MouseEvent.MOUSE_MOVE, onGridMove);
m_grid.removeEventListener(MouseEvent.CLICK, onGridClick);
m_ticker.removeEventListener(TickerEvent.TICK, tick);
var _local1:int;
while (_local1 < m_attacks.length) {
_local2 = m_attacks[_local1].button;
_local2.removeEventListener(MouseEvent.CLICK, Delegate.create(this, onPowerButtonClick, _local1));
_local2.removeEventListener(MouseEvent.MOUSE_MOVE, Delegate.create(this, onPowerButtonMove, _local1));
_local2.removeEventListener(MouseEvent.MOUSE_OUT, onPowerButtonOut);
_local1++;
};
}
private function calculateScore():void{
var _local3:Hex;
var _local4:CustomTextField;
var _local5:CustomTextField;
var _local1:int;
var _local2 = 1;
for each (_local3 in m_affected) {
if ((((_local3.data is EggData)) && ((_local3.data as EggData).isGolden))){
_local4 = new CustomTextField("", 2289186, 20);
_local4.center();
_local4.selectable = false;
_local4.mouseEnabled = false;
_local4.autoSize = TextFieldAutoSize.CENTER;
_local4.text = "Golden Egg!\n+5000";
_local4.x = (_local3.x + ((Game.HEX_SIZE - _local4.width) / 2));
_local4.y = _local3.y;
_local4.filters = [new GlowFilter(0, 1, 2, 2, 32)];
m_grid.addChild(_local4);
Tweener.addTween(_local4, {y:(_local4.y - 40), time:1.3});
Tweener.addTween(_local4, {alpha:0.1, delay:0.5, time:0.8, transition:"linear", onComplete:removePimpText, onCompleteParams:[_local4]});
_local3.die();
m_flash.alpha = 0.3;
m_flash.visible = true;
Tweener.addTween(m_flash, {alpha:0, time:0.4});
m_ui.increaseScore(5000);
} else {
if ((_local3.data is EggData)){
_local5 = new CustomTextField("", 15606306, 20);
_local5.center();
_local5.selectable = false;
_local5.mouseEnabled = false;
_local5.autoSize = TextFieldAutoSize.CENTER;
_local5.text = ("Egg Crusher...\n" + String(EGG_CRUSHER_POINTS));
_local5.x = (_local3.x + ((Game.HEX_SIZE - _local5.width) / 2));
_local5.y = _local3.y;
_local5.filters = [new GlowFilter(0, 1, 2, 2, 32)];
m_grid.addChild(_local5);
Tweener.addTween(_local5, {y:(_local5.y - 40), time:1.3});
Tweener.addTween(_local5, {alpha:0.1, delay:0.5, time:0.8, transition:"linear", onComplete:removePimpText, onCompleteParams:[_local5]});
m_ui.increaseScore(EGG_CRUSHER_POINTS);
} else {
if ((((_local3.data is ColorData)) && (!((m_currAttack is Transform))))){
_local1 = (_local1 + Math.min((GamePanel.PER_CUTIE_RAISE_SCORE * _local2), GamePanel.CUTIE_MAX_SCORE));
_local2 = (_local2 + 1);
};
};
};
};
if (_local1 > 0){
m_ui.increaseScore(_local1);
};
}
private function onQuit():void{
m_ui.submitStats(false);
onGameOverClick(false);
}
private function onKeyDown(_arg1:KeyboardEvent):void{
if (((!((_arg1.keyCode == Keyboard.SPACE))) && (!((_arg1.keyCode == Keyboard.ESCAPE))))){
return;
};
selectPowerButton(0);
}
private function onGridClick(_arg1:MouseEvent):void{
var _local11:int;
var _local12:Number;
var _local13:int;
var _local14:int;
var _local15:int;
var _local16:int;
var _local17:int;
var _local18:Number;
var _local19:Number;
if (m_inputDisabled){
return;
};
var _local2:Array = m_grid.translateMouse(_arg1.localX, _arg1.localY);
var _local3:Hex = m_grid.getHexAt(_local2[0], _local2[1]);
if ((((_local3 == null)) || ((((_local3.data == null)) && (!((m_currAttack is EyeLasers))))))){
return;
};
if ((((_local2[0] == m_reaper.col)) && ((_local2[1] == m_reaper.row)))){
return;
};
var _local4:Hex = m_grid.getHexAt(m_reaper.col, m_reaper.row);
if (!m_currAttack.isValidTarget(m_grid, _local4, _local3)){
return;
};
if (((m_isTutorial) && (!(m_tutorialManager.isChosenHexValid(_local2[0], _local2[1]))))){
return;
};
m_lastGridCoord = _local2;
var _local5 = 1;
if (_local3.x > _local4.x){
_local5 = -1;
};
disableInput();
if (m_currAttack != m_attacks[0]){
m_currAttack.button.expend();
};
var _local6:GroupedSound = m_woosh;
var _local7:Number = 0.45;
if ((m_currAttack is EyeLasers)){
_local6 = m_laser;
_local7 = 0;
} else {
if ((m_currAttack is Transform)){
_local6 = m_transform;
_local7 = 0;
} else {
if ((m_currAttack is FireBlast)){
_local6 = m_fireball;
_local7 = 0;
};
};
};
Tweener.addCaller(this, {onUpdate:_local6.play, delay:_local7, count:1});
var _local8:Array = m_currAttack.findAffectedCuties(m_grid, _local3, _local4);
var _local9:int;
var _local10:int;
if (!(m_currAttack is Transform)){
_local11 = 0;
while (_local11 < _local8.length) {
if ((_local8[_local11].data is ColorData)){
_local9 = (_local9 + 1);
} else {
if ((_local8[_local11].data is EggData)){
_local10 = (_local10 + 1);
};
};
_local11++;
};
};
if (m_sfx.volume != 0){
_local13 = 0;
_local14 = 0;
while (_local14 < _local9) {
if (_local13 > 18){
break;
};
_local16 = (Math.random() * m_screams.length);
_local16 = Math.min(_local16, (m_screams.length - 1));
_local12 = ((_local7 + 0.2) + (Math.random() * 0.1));
Tweener.addCaller(this, {onUpdate:m_screams[_local16].play, delay:_local12, count:1});
_local13 = (_local13 + 1);
_local14++;
};
_local15 = 0;
while (_local15 < _local10) {
if (_local13 > 18){
break;
};
_local17 = (Math.random() * m_eggs.length);
_local12 = ((_local7 + 0.2) + (Math.random() * 0.1));
Tweener.addCaller(this, {onUpdate:m_eggs[_local17].play, delay:_local12, count:1});
_local13 = (_local13 + 1);
_local15++;
};
};
if (m_currAttack.movesReaper){
_local18 = (_local3.x - _local4.x);
_local19 = (_local3.y - _local4.y);
m_reaper.play("attack", _local5);
Tweener.addTween(m_reaper, {x:_local3.x, y:(_local3.y - 8), delay:0.5, time:0.1, transition:"easeOutSine", onComplete:startKillingCuties, onCompleteParams:[_local3, _local4]});
} else {
m_reaper.play("idle", _local5);
startKillingCuties(_local3, _local4);
};
}
private function doGridMove(_arg1:int, _arg2:int):void{
var _local4:Hex;
m_currentHighlight[0] = _arg1;
m_currentHighlight[1] = _arg2;
var _local3:Hex = m_grid.getHexAt(_arg1, _arg2);
if (_local3 == null){
return;
};
unhighlightAllAffected();
m_highlightedIndicator.visible = _local3.isShowingPossibleIndicator;
m_grid.useHandCursor = m_highlightedIndicator.visible;
if (m_highlightedIndicator.visible){
m_highlightedIndicator.x = (m_grid.x + _local3.x);
m_highlightedIndicator.y = (m_grid.y + _local3.y);
m_affected = m_currAttack.findAffectedCuties(m_grid, _local3, m_grid.getHexAt(m_reaper.col, m_reaper.row));
for each (_local4 in m_affected) {
_local4.filters = [new GlowFilter(0xEEEEEE, 0.7, 64, 64, 2, 1, true)];
};
};
}
private function playDangerMusic():void{
if (m_isBgDanger){
return;
};
m_isBgDanger = true;
if (m_bgMusic.isPlaying()){
m_bgMusic.stop();
};
m_ohNooChannel = m_ohNoo.play();
if (m_ohNooChannel != null){
m_ohNooChannel.channel.addEventListener(Event.SOUND_COMPLETE, onOhNooComplete);
};
}
private function onOhNooComplete(_arg1:Event):void{
if (m_ohNooChannel != null){
m_ohNooChannel.channel.removeEventListener(Event.SOUND_COMPLETE, onOhNooComplete);
};
m_lowHealth.play();
}
private function startKillingCuties(_arg1:Hex, _arg2:Hex):void{
if (m_currAttack.movesReaper){
_arg1.die();
};
calculateScore();
m_ui.decreaseLife();
m_ui.popQueue();
m_levelMap.draw(m_ui.lifeLeft, 0);
m_currAttack.killCuties(m_grid, _arg1, _arg2, Delegate.create(this, onCutiesDoneDying, m_currAttack.movesReaper));
selectAttack(0, false);
}
private function unhighlightAllAffected():void{
var _local1:Hex;
for each (_local1 in m_affected) {
_local1.filters = [];
};
}
private function selectPowerButton(_arg1:int):void{
if (m_inputDisabled){
return;
};
if (!m_attacks[_arg1].button.enabled){
return;
};
selectAttack(_arg1);
var _local2:SpecialPowerSelectEvent = new SpecialPowerSelectEvent(m_attacks[_arg1].name);
this.dispatchEvent(_local2);
}
private function onPowerButtonOut(_arg1:MouseEvent):void{
describePower(m_currAttack);
m_description.visible = false;
}
}
}//package
Section 125
//Game_s_button_frame (Game_s_button_frame)
package {
import mx.core.*;
public class Game_s_button_frame extends SpriteAsset {
}
}//package
Section 126
//Game_s_frame_bottom (Game_s_frame_bottom)
package {
import mx.core.*;
public class Game_s_frame_bottom extends BitmapAsset {
}
}//package
Section 127
//GameOverScreen (GameOverScreen)
package {
public class GameOverScreen extends PromptPopup {
private var m_playAgainFunc:Function;
public function GameOverScreen(_arg1:Function, _arg2:Boolean){
m_playAgainFunc = _arg1;
var _local3 = "Game Over";
var _local4 = "You ran out of health. Kill more red cuties next time!\nWould you like to play again?";
if (_arg2){
_local3 = "You Win!";
_local4 = "You managed to survive all the levels! You should try unlimited mode.";
};
super(_local3, _local4, "Again!", "Quit", onAgainClick, onQuitClick);
}
private function onQuitClick():void{
m_playAgainFunc(false);
}
private function onAgainClick():void{
m_playAgainFunc(true);
}
}
}//package
Section 128
//GamePanel (GamePanel)
package {
import flash.events.*;
import flash.display.*;
import caurina.transitions.*;
import com.kongregate.as3.client.*;
import flash.text.*;
import com.urbansquall.security.*;
import com.urbansquall.utils.*;
import flash.filters.*;
public class GamePanel extends Sprite {
private const LIFE_BAR_WIDTH:int = 188;
private var m_lifeLeftText:CustomTextField;
private var m_scoreText:CustomTextField;
private var m_maxLevel:int;
private var m_bgmMuteFunc:Function;
private var m_newEnemiesTriggerFunc:Function;
private var m_biggestCombo:safeint;
private var m_hud:Sprite;
private var m_levelsPushed:int;
private var m_level:safeint;
private var m_hiscoreText:CustomTextField;
private var m_lifeLeft:safeint;
private var m_newEnemiesIn:safeint;
private var m_score:safeint;
private var m_cutiesKilled:safeint;
private var m_levelMap:LevelMap;
private var m_onQuitFunc:Function;
private var m_sfxMuteFunc:Function;
private var m_lastEnemiesSpawnIn:int;
private var m_enemyResetCount:safeint;
private var m_eggsCrushed:safeint;
private var m_hiscore:safeint;
private var m_quit:RegularButton;
private var m_gameOverFunc:Function;
private var m_realtimeEnemiesIn:safeint;
private var m_heart:Sprite;
private static const s_ui_music:Class = GamePanel_s_ui_music;
public static const FIXED_BRONZE:int = 20000;
public static const UNLIMITED_SILVER:int = 70000;
public static const FIXED_GOLD:int = 55000;
private static const s_ui_quit:Class = GamePanel_s_ui_quit;
public static const MAX_LIFE:int = 40;
public static const UNLIMITED_BRONZE:int = 50000;
public static const UNLIMITED_GOLD:int = 100000;
public static const FIXED_SILVER:int = 40000;
private static const s_ui_heart:Class = GamePanel_s_ui_heart;
private static const s_cutie_HUD:Class = GamePanel_s_cutie_HUD;
public static const MAX_RESET_TURNS:int = 38;
private static const s_ui_sound:Class = GamePanel_s_ui_sound;
public static const MORE_CUTIES_SCORE:int = 100;
public static const CUTIE_MAX_SCORE:int = 50;
public static const START_NEW_ENEMIES_IN:int = 4;
private static const s_ui_disabled:Class = GamePanel_s_ui_disabled;
public static const PER_CUTIE_RAISE_SCORE:int = 5;
public function GamePanel(_arg1:LevelMap, _arg2:Function, _arg3:Function, _arg4:int, _arg5:Function, _arg6:Function, _arg7:Function){
m_levelMap = _arg1;
m_newEnemiesTriggerFunc = _arg2;
m_onQuitFunc = _arg3;
m_lastEnemiesSpawnIn = START_NEW_ENEMIES_IN;
m_maxLevel = _arg4;
m_gameOverFunc = _arg5;
m_sfxMuteFunc = _arg6;
m_bgmMuteFunc = _arg7;
m_levelsPushed = 0;
m_level = new safeint(1);
m_lifeLeft = new safeint(20);
m_newEnemiesIn = new safeint(START_NEW_ENEMIES_IN);
m_enemyResetCount = new safeint(0);
m_hiscore = new safeint(0);
m_realtimeEnemiesIn = new safeint(START_NEW_ENEMIES_IN);
m_score = new safeint(0);
m_biggestCombo = new safeint(0);
m_cutiesKilled = new safeint(0);
m_eggsCrushed = new safeint(0);
if (m_maxLevel == 0){
m_hiscore.val = Main.s_safeSolManager.readInt("unlimitedHighScore");
} else {
m_hiscore.val = Main.s_safeSolManager.readInt("fixedHighScore");
};
m_hud = new Sprite();
m_hud.addChild(new s_cutie_HUD());
m_hud.cacheAsBitmap = true;
this.addChild(m_hud);
m_heart = new Sprite();
m_heart.addChild(new s_ui_heart());
m_heart.y = 3;
m_hud.addChild(m_heart);
m_levelMap.push(LevelMap.BIP_HATCH);
var _local8:int;
while (_local8 < (LevelMap.s_bufferSize - 1)) {
fillLevelMap();
_local8++;
};
m_lifeLeftText = new CustomTextField("", 0xFFFFFF, 28);
m_lifeLeftText.autoSize = TextFieldAutoSize.CENTER;
m_lifeLeftText.x = ((m_heart.width / 2) - 2);
m_lifeLeftText.y = 23;
m_lifeLeftText.filters = [new GlowFilter(9643044, 1, 2, 2, 32)];
m_heart.addChild(m_lifeLeftText);
m_scoreText = new CustomTextField("", 0xFFFFFF, 26);
m_scoreText.autoSize = TextFieldAutoSize.RIGHT;
m_scoreText.x = (Main.GAME_WIDTH - 222);
m_scoreText.y = 28;
m_scoreText.filters = [new GlowFilter(9802, 1, 2, 2, 32)];
m_hud.addChild(m_scoreText);
m_hiscoreText = new CustomTextField("", 0xFFFFFF, 20);
m_hiscoreText.autoSize = TextFieldAutoSize.RIGHT;
m_hiscoreText.x = (Main.GAME_WIDTH - 99);
m_hiscoreText.y = 29;
m_hiscoreText.filters = [new GlowFilter(9802, 1, 2, 2, 32)];
m_hud.addChild(m_hiscoreText);
updateText();
var _local9:RegularButton = new RegularButton(s_ui_sound, s_ui_disabled);
_local9.x = ((Main.GAME_WIDTH - _local9.width) - 4);
_local9.y = 4;
m_hud.addChild(_local9);
_local9.addEventListener(MouseEvent.CLICK, onSfxMuteClick);
if (Main.s_safeSolManager.readBool("muteSfx")){
m_sfxMuteFunc();
_local9.toggleOverThings();
};
var _local10:RegularButton = new RegularButton(s_ui_music, s_ui_disabled);
_local10.x = _local9.x;
_local10.y = ((_local9.y + _local9.height) + 1);
m_hud.addChild(_local10);
_local10.addEventListener(MouseEvent.CLICK, onBgmMuteClick);
if (Main.s_safeSolManager.readBool("muteBgm")){
m_bgmMuteFunc();
_local10.toggleOverThings();
};
m_quit = new RegularButton(s_ui_quit);
m_quit.x = _local9.x;
m_quit.y = ((_local10.y + _local10.height) + 1);
m_hud.addChild(m_quit);
m_quit.addEventListener(MouseEvent.CLICK, onQuitClick);
}
private function onBgmMuteClick(_arg1:MouseEvent):void{
m_bgmMuteFunc();
}
private function updateText():void{
m_lifeLeftText.text = m_lifeLeft.toString();
m_scoreText.text = m_score.toString();
m_hiscoreText.text = m_hiscore.toString();
m_heart.x = ((68 - (m_heart.width / 2)) + (LIFE_BAR_WIDTH * (m_lifeLeft.val / MAX_LIFE)));
}
public function trackStats(_arg1:Array):void{
var _local2:int;
var _local3:int;
while (_local3 < _arg1.length) {
if ((((((((_arg1[_local3][0] == Game.RED_CUTIE)) || ((_arg1[_local3][0] == Game.BLUE_CUTIE)))) || ((_arg1[_local3][0] == Game.YELLOW_CUTIE)))) || ((_arg1[_local3][0] == Game.BLACK_CUTIE)))){
_local2 = (_local2 + _arg1[_local3][1]);
} else {
if ((((_arg1[_local3][0] == Game.EGG)) || ((_arg1[_local3][0] == Game.GOLDEN_EGG)))){
m_eggsCrushed.val = (m_eggsCrushed.val + _arg1[_local3][1]);
};
};
_local3++;
};
if (m_biggestCombo.val < _local2){
m_biggestCombo.val = _local2;
};
m_cutiesKilled.val = (m_cutiesKilled.val + _local2);
}
public function get lifeLeft():int{
return (m_lifeLeft.val);
}
public function get newEnemiesIn():int{
return (m_levelMap.nextHatchIn);
}
private function beatHeart():void{
Tweener.addTween(m_heart, {scaleX:1.1, scaleY:1.1, time:0.35, onComplete:unbeatHeart});
}
public function startHeart():void{
if (Tweener.getTweenCount(m_heart) > 0){
return;
};
beatHeart();
}
private function unbeatHeart():void{
Tweener.addTween(m_heart, {scaleX:1, scaleY:1, time:0.35, onComplete:beatHeart});
}
private function resetNewEnemiesIn():void{
var _local1:int;
m_enemyResetCount.val = (m_enemyResetCount.val + 1);
if (m_enemyResetCount.val >= 14){
_local1 = ((m_enemyResetCount.val + 2) / 4);
trace(_local1);
m_newEnemiesIn.val = Math.min((START_NEW_ENEMIES_IN + _local1), MAX_RESET_TURNS);
} else {
if (m_enemyResetCount.val >= 10){
m_newEnemiesIn.val = (START_NEW_ENEMIES_IN + 3);
} else {
if (m_enemyResetCount.val >= 6){
m_newEnemiesIn.val = (START_NEW_ENEMIES_IN + 2);
} else {
if (m_enemyResetCount.val >= 2){
m_newEnemiesIn.val = (START_NEW_ENEMIES_IN + 1);
} else {
m_newEnemiesIn.val = START_NEW_ENEMIES_IN;
};
};
};
};
m_realtimeEnemiesIn.val = m_newEnemiesIn.val;
}
public function decreaseLife(_arg1:int=1):void{
m_lifeLeft.val = Math.max((m_lifeLeft.val - _arg1), 0);
updateText();
}
public function resetHeart():void{
Tweener.removeTweens(m_heart);
m_heart.scaleX = 1;
m_heart.scaleY = 1;
}
public function popQueue():int{
fillLevelMap();
return (m_levelMap.pop());
}
private function delayFlush():void{
Tweener.removeTweens(Main.s_safeSolManager);
if (m_maxLevel == 0){
Main.s_safeSolManager.writeInt("unlimitedHighScore", m_hiscore.val);
} else {
Main.s_safeSolManager.writeInt("fixedHighScore", m_hiscore.val);
};
Main.s_safeSolManager.flush();
}
public function showLevelScreen():void{
this.parent.addChild(new LevelUpScreen(m_level.val, m_lastEnemiesSpawnIn));
if (m_level.val != 1){
submitStats(false);
};
}
private function fillLevelMap():void{
var _local1:int;
if (((!((m_maxLevel == 0))) && ((m_levelsPushed >= m_maxLevel)))){
return;
};
m_newEnemiesIn.val = (m_newEnemiesIn.val - 1);
if (m_newEnemiesIn.val > 0){
m_levelMap.push(LevelMap.BIP_NORMAL);
} else {
_local1 = m_realtimeEnemiesIn.val;
resetNewEnemiesIn();
if (_local1 < m_newEnemiesIn.val){
m_levelsPushed = (m_levelsPushed + 1);
m_levelMap.push(LevelMap.BIP_LEVELUP);
} else {
m_levelMap.push(LevelMap.BIP_HATCH);
};
};
}
public function increaseLife(_arg1:int=1):void{
m_lifeLeft.val = Math.min((m_lifeLeft.val + _arg1), MAX_LIFE);
updateText();
m_levelMap.drawLife(m_lifeLeft.val);
}
public function checkForNewEnemiesTrigger():void{
var _local1:int;
if (m_levelMap.peek() != LevelMap.BIP_NORMAL){
_local1 = m_levelMap.nextHatchIn;
if (m_lastEnemiesSpawnIn != _local1){
m_lastEnemiesSpawnIn = _local1;
m_level.val = (m_level.val + 1);
if (((!((m_maxLevel == 0))) && ((m_level.val > m_maxLevel)))){
m_gameOverFunc();
return;
};
showLevelScreen();
};
m_newEnemiesTriggerFunc();
};
}
private function cleanUp():void{
m_quit.removeEventListener(MouseEvent.CLICK, onQuitClick);
m_onQuitFunc();
}
public function submitStats(_arg1:Boolean):void{
var _local3:KongregateAPI;
var _local4:int;
var _local5:int;
var _local2:Array = [];
_local2.push({name:"CutiesKilled", value:m_cutiesKilled.val});
_local2.push({name:"EggsCrushed", value:m_eggsCrushed.val});
_local2.push({name:"LargestCombo", value:m_biggestCombo.val});
_local2.push({name:"HighestLevel", value:m_level.val});
if (_arg1){
_local2.push({name:"TutorialCompleted", value:1});
};
if (m_maxLevel == 0){
_local2.push({name:"UnlimitedHighScore", value:m_score.val});
} else {
_local2.push({name:"5LevelHighScore", value:m_score.val});
if (m_level.val > m_maxLevel){
_local2.push({name:"5LevelComplete", value:1});
};
};
if (SponsorManager.instance.isKongregate()){
_local3 = KongregateAPI.getInstance();
_local3.stats.submitArray(_local2);
};
if (m_maxLevel == 0){
_local4 = Main.s_safeSolManager.readInt("unlimitedBadges");
if ((((_local4 < 3)) && ((m_score.val >= UNLIMITED_GOLD)))){
Main.s_safeSolManager.writeInt("unlimitedBadges", 3);
} else {
if ((((_local4 < 2)) && ((m_score.val >= UNLIMITED_SILVER)))){
Main.s_safeSolManager.writeInt("unlimitedBadges", 2);
} else {
if ((((_local4 < 1)) && ((m_hiscore.val >= UNLIMITED_BRONZE)))){
Main.s_safeSolManager.writeInt("unlimitedBadges", 1);
};
};
};
} else {
_local5 = Main.s_safeSolManager.readInt("fixedBadges");
if ((((_local5 < 3)) && ((m_score.val >= FIXED_GOLD)))){
Main.s_safeSolManager.writeInt("fixedBadges", 3);
} else {
if ((((_local5 < 2)) && ((m_score.val >= FIXED_SILVER)))){
Main.s_safeSolManager.writeInt("fixedBadges", 2);
} else {
if ((((_local5 < 1)) && ((m_score.val >= FIXED_BRONZE)))){
Main.s_safeSolManager.writeInt("fixedBadges", 1);
};
};
};
};
}
private function onSfxMuteClick(_arg1:MouseEvent):void{
m_sfxMuteFunc();
}
public function increaseScore(_arg1:int, _arg2:Boolean=false):void{
if (_arg2){
_arg1 = (_arg1 * m_level.val);
};
m_score.val = (m_score.val + _arg1);
if (m_score.val > m_hiscore.val){
m_hiscoreText.textColor = 0xFFFF00;
m_hiscore.val = m_score.val;
Tweener.addTween(Main.s_safeSolManager, {delay:0.5, time:0, transition:"linear", onComplete:Delegate.create(this, delayFlush)});
};
updateText();
}
private function onQuitClick(_arg1:MouseEvent):void{
this.stage.addChild(new QuitPopup(cleanUp));
}
}
}//package
Section 129
//GamePanel_s_cutie_HUD (GamePanel_s_cutie_HUD)
package {
import mx.core.*;
public class GamePanel_s_cutie_HUD extends BitmapAsset {
}
}//package
Section 130
//GamePanel_s_ui_disabled (GamePanel_s_ui_disabled)
package {
import mx.core.*;
public class GamePanel_s_ui_disabled extends SpriteAsset {
}
}//package
Section 131
//GamePanel_s_ui_heart (GamePanel_s_ui_heart)
package {
import mx.core.*;
public class GamePanel_s_ui_heart extends SpriteAsset {
}
}//package
Section 132
//GamePanel_s_ui_music (GamePanel_s_ui_music)
package {
import mx.core.*;
public class GamePanel_s_ui_music extends SpriteAsset {
}
}//package
Section 133
//GamePanel_s_ui_quit (GamePanel_s_ui_quit)
package {
import mx.core.*;
public class GamePanel_s_ui_quit extends SpriteAsset {
}
}//package
Section 134
//GamePanel_s_ui_sound (GamePanel_s_ui_sound)
package {
import mx.core.*;
public class GamePanel_s_ui_sound extends SpriteAsset {
}
}//package
Section 135
//KongregateConfirmationPopup (KongregateConfirmationPopup)
package {
public class KongregateConfirmationPopup extends PromptPopup {
public function KongregateConfirmationPopup(_arg1:Boolean=false){
var _local2 = "This is a special feature available only at Kongregate, an awesome flash games site.";
if (_arg1){
_local2 = "The website will open in a new window.";
};
super("Visit kongregate.com ?", _local2, "Go", "Cancel", onGoClick, onNevermindClick);
}
private function onNevermindClick():void{
if (this.parent != null){
this.parent.removeChild(this);
};
}
private function onGoClick():void{
SponsorManager.instance.visitSite();
}
}
}//package
Section 136
//LevelMap (LevelMap)
package {
import flash.display.*;
import caurina.transitions.*;
public class LevelMap extends Sprite {
private var m_lastBipContainer:Sprite;
private var m_lastBip:int;
private var m_theQueue:Array;
private var m_reaperDial:Sprite;
private var m_ripDial:Sprite;
private var m_track:Sprite;
private static const s_ui_boneSmall:Class = LevelMap_s_ui_boneSmall;
private static const s_ui_gameover:Class = LevelMap_s_ui_gameover;
private static const s_spacePerBip:Number = 25.125;
private static const s_bottomPosition:Number = (s_topBuffer + (s_spacePerBip * (s_bufferSize - 1)));
private static const s_ui_boneBig:Class = LevelMap_s_ui_boneBig;
private static const s_reaperReachY:Number = (s_bottomPosition - (s_spacePerBip * 2));
private static const s_ui_skeletonPointer:Class = LevelMap_s_ui_skeletonPointer;
public static const BIP_HATCH:int = 984322;
private static const s_ui_levelUp:Class = LevelMap_s_ui_levelUp;
public static const s_bufferSize:int = 16;
private static const s_panelWidth:int = 74;
private static const s_topBuffer:int = 66;
private static const s_ui_eggsHatch:Class = LevelMap_s_ui_eggsHatch;
private static const s_frame_side:Class = LevelMap_s_frame_side;
public static const BIP_LEVELUP:int = 984323;
public static const BIP_NORMAL:int = 984321;
private static const s_panelHeight:int = 402;
public function LevelMap(){
m_theQueue = [];
var _local1:Sprite = new Sprite();
_local1.cacheAsBitmap = true;
_local1.addChild(new s_frame_side());
this.addChild(_local1);
m_track = new Sprite();
m_track.cacheAsBitmap = true;
m_track.y = (s_topBuffer - s_spacePerBip);
m_track.addChild(new Sprite());
this.addChild(m_track);
m_lastBipContainer = new Sprite();
m_lastBipContainer.cacheAsBitmap = true;
m_lastBipContainer.y = s_bottomPosition;
this.addChild(m_lastBipContainer);
m_lastBipContainer.addChild(new Sprite());
m_reaperDial = new Sprite();
m_reaperDial.cacheAsBitmap = true;
var _local2:Sprite = new Sprite();
_local2.x = -2;
_local2.y = -10;
_local2.addChild(new s_ui_skeletonPointer());
m_reaperDial.addChild(_local2);
m_reaperDial.y = (s_bottomPosition - s_spacePerBip);
m_ripDial = new Sprite();
m_ripDial.cacheAsBitmap = true;
var _local3:Sprite = new Sprite();
_local3.addChild(new s_ui_gameover());
_local3.y = ((-(_local3.height) / 2) + 7);
m_ripDial.addChild(_local3);
m_ripDial.x = m_reaperDial.x;
this.addChild(m_ripDial);
this.addChild(m_reaperDial);
}
public function printQueue():void{
var _local1 = "[";
var _local2:int;
while (_local2 < m_theQueue.length) {
if (m_theQueue[_local2] == BIP_NORMAL){
_local1 = (_local1 + "n");
} else {
if (m_theQueue[_local2] == BIP_HATCH){
_local1 = (_local1 + "H");
} else {
if (m_theQueue[_local2] == BIP_LEVELUP){
_local1 = (_local1 + "L");
};
};
};
if (_local2 == 0){
_local1 = (_local1 + "]");
} else {
_local1 = (_local1 + " ");
};
_local2++;
};
trace(_local1);
}
public function draw(_arg1:int, _arg2:int):void{
var _local3:Number = (s_reaperReachY - (s_spacePerBip * _arg2));
Tweener.addTween(m_reaperDial, {y:_local3, time:0.35});
Tweener.addTween(m_reaperDial, {y:m_reaperDial.y, delay:0.35, time:0.35});
var _local4:Number = (_local3 - (s_spacePerBip * (_arg1 - 1)));
Tweener.addTween(m_ripDial, {y:_local4, delay:0.35, time:0.35});
m_ripDial.visible = (_local4 >= (s_panelHeight - (m_theQueue.length * s_spacePerBip)));
var _local5:Number = (s_spacePerBip * (1 + _arg2));
var _local6:DisplayObject = m_track.getChildAt(0);
Tweener.addTween(_local6, {y:_local5, delay:0.35, time:0.35, onComplete:doneScrolling});
var _local7:DisplayObject = m_lastBipContainer.getChildAt(0);
Tweener.addTween(_local7, {y:(_local7.y + s_spacePerBip), delay:0.35, time:0.35});
}
public function drawLife(_arg1:int):void{
var _local2:Number = (s_reaperReachY - (s_spacePerBip * (_arg1 - 1)));
Tweener.addTween(m_ripDial, {y:_local2, time:0.35});
}
public function get nextHatchIn():int{
var _local1:int;
var _local2 = 1;
while (_local2 < m_theQueue.length) {
_local1 = (_local1 + 1);
if (m_theQueue[_local2] != BIP_NORMAL){
break;
};
_local2++;
};
return (_local1);
}
private function makeSpriteForBip(_arg1:int, _arg2:Boolean):Sprite{
var _local4:Sprite;
var _local5:Sprite;
var _local3:Sprite = new Sprite();
if (_arg1 == BIP_NORMAL){
_local3.addChild(new s_ui_boneSmall());
_local3.x = 10;
_local3.y = (-(_local3.height) / 2);
} else {
if (_arg1 == BIP_HATCH){
_local3.addChild(new s_ui_boneBig());
_local3.y = (-(_local3.height) / 2);
if (_arg2){
_local4 = new Sprite();
_local4.addChild(new s_ui_eggsHatch());
_local4.x = (-(_local4.width) + (_local3.width / 2));
_local4.y = ((-(_local4.height) / 2) - 2);
_local3.addChild(_local4);
};
} else {
if (_arg1 == BIP_LEVELUP){
_local3.addChild(new s_ui_boneBig());
_local3.y = (-(_local3.height) / 2);
if (_arg2){
_local5 = new Sprite();
_local5.addChild(new s_ui_levelUp());
_local5.x = (-(_local5.width) + (_local3.width / 2));
_local5.y = ((-(_local5.height) / 2) - 2);
_local3.addChild(_local5);
};
};
};
};
return (_local3);
}
public function pop():int{
m_lastBip = m_theQueue.shift();
return (m_lastBip);
}
private function doneScrolling():void{
var _local5:Sprite;
var _local1:Sprite = new Sprite();
var _local2:Number = (s_panelWidth / 2);
var _local3:int;
while (_local3 < m_theQueue.length) {
_local5 = makeSpriteForBip(m_theQueue[_local3], !((_local3 == 0)));
makeSpriteForBip(m_theQueue[_local3], !((_local3 == 0))).x = (_local5.x + _local2);
_local5.y = (_local5.y + (s_panelHeight - (s_spacePerBip * (_local3 + (1 / 2)))));
_local1.addChild(_local5);
_local3++;
};
m_track.removeChildAt(0);
m_track.addChildAt(_local1, 0);
var _local4:Sprite = makeSpriteForBip(m_lastBip, false);
makeSpriteForBip(m_lastBip, false).x = (_local4.x + _local2);
_local4.y = (_local4.y + (s_panelHeight - (s_spacePerBip * (_local3 - (1 / 2)))));
m_lastBipContainer.removeChildAt(0);
m_lastBipContainer.addChild(_local4);
}
public function peek():int{
return (m_theQueue[0]);
}
public function push(_arg1:int):void{
m_theQueue.push(_arg1);
}
}
}//package
Section 137
//LevelMap_s_frame_side (LevelMap_s_frame_side)
package {
import mx.core.*;
public class LevelMap_s_frame_side extends BitmapAsset {
}
}//package
Section 138
//LevelMap_s_ui_boneBig (LevelMap_s_ui_boneBig)
package {
import mx.core.*;
public class LevelMap_s_ui_boneBig extends SpriteAsset {
}
}//package
Section 139
//LevelMap_s_ui_boneSmall (LevelMap_s_ui_boneSmall)
package {
import mx.core.*;
public class LevelMap_s_ui_boneSmall extends SpriteAsset {
}
}//package
Section 140
//LevelMap_s_ui_eggsHatch (LevelMap_s_ui_eggsHatch)
package {
import mx.core.*;
public class LevelMap_s_ui_eggsHatch extends SpriteAsset {
}
}//package
Section 141
//LevelMap_s_ui_gameover (LevelMap_s_ui_gameover)
package {
import mx.core.*;
public class LevelMap_s_ui_gameover extends SpriteAsset {
}
}//package
Section 142
//LevelMap_s_ui_levelUp (LevelMap_s_ui_levelUp)
package {
import mx.core.*;
public class LevelMap_s_ui_levelUp extends SpriteAsset {
}
}//package
Section 143
//LevelMap_s_ui_skeletonPointer (LevelMap_s_ui_skeletonPointer)
package {
import mx.core.*;
public class LevelMap_s_ui_skeletonPointer extends SpriteAsset {
}
}//package
Section 144
//LevelUpScreen (LevelUpScreen)
package {
import flash.events.*;
import flash.display.*;
import caurina.transitions.*;
import flash.text.*;
import events.*;
import flash.filters.*;
public class LevelUpScreen extends Sprite {
private var m_level:int;
private var m_turns:int;
private static const s_ui_levelUP:Class = LevelUpScreen_s_ui_levelUP;
public static const s_kong_logo:Class = LevelUpScreen_s_kong_logo;
public function LevelUpScreen(_arg1:int, _arg2:int){
var _local8:Sprite;
super();
m_level = _arg1;
m_turns = _arg2;
var _local3:Sprite = new Sprite();
_local3.graphics.beginFill(0, 0.5);
_local3.graphics.drawRect(0, 0, Main.GAME_WIDTH, Main.GAME_HEIGHT);
_local3.graphics.endFill();
this.addChild(_local3);
var _local4:Sprite = new s_ui_levelUP();
_local4.name = "bg";
_local4.x = ((Main.GAME_WIDTH - _local4.width) / 2);
_local4.y = (-(_local4.height) - 10);
_local4.cacheAsBitmap = true;
_local4.mouseEnabled = false;
_local3.addChild(_local4);
var _local5:CustomTextField = new CustomTextField("", 2289186, 34);
_local5.autoSize = TextFieldAutoSize.CENTER;
_local5.center();
_local5.leading = 13;
_local5.mouseEnabled = false;
_local5.text = (((("Level " + m_level.toString()) + ":\nEggs hatch in ") + m_turns.toString()) + " turns");
_local5.filters = [new GlowFilter(0, 1, 4, 4, 32)];
_local5.x = (((_local4.width - _local5.width) / 2) + 10);
_local5.y = (((_local4.height - _local5.height) / 2) - 2);
_local4.addChild(_local5);
var _local6:CustomTextField = new CustomTextField("Click to continue...", 0xFFFFFF, 16);
_local6.filters = [new GlowFilter(0, 1, 2, 2, 32)];
_local6.mouseEnabled = false;
_local6.x = (((_local4.width - _local6.width) / 2) + 4);
_local6.y = ((_local5.y + _local5.height) + 8);
_local4.addChild(_local6);
var _local7:Number = ((Main.GAME_HEIGHT - _local4.height) / 2);
if (SponsorManager.instance.isFreeKongregateVersion()){
_local8 = new Sprite();
_local8.buttonMode = true;
_local8.addChild(new s_kong_logo());
_local8.x = ((_local4.width - _local8.width) / 2);
_local8.y = (((Main.GAME_HEIGHT - _local7) - _local8.height) - 8);
_local4.addChild(_local8);
_local8.addEventListener(MouseEvent.CLICK, onLogoClick);
};
_local3.buttonMode = true;
_local3.useHandCursor = true;
_local3.addEventListener(MouseEvent.CLICK, removeLevelEarly);
Tweener.addTween(_local4, {y:_local7, time:2, transition:"easeOutBounce"});
Tweener.addTween(_local4, {y:(-(_local4.height) - 10), delay:3.5, time:2, transition:"linear", onComplete:removeLevel, onCompleteParams:[this]});
}
private function removeLevel(_arg1:Sprite):void{
var _local2:LevelUpScreenGoneEvent;
if (_arg1.parent != null){
_local2 = new LevelUpScreenGoneEvent(m_level);
_arg1.parent.dispatchEvent(_local2);
_arg1.parent.removeChild(_arg1);
};
}
private function removeLevelEarly(_arg1:MouseEvent):void{
var _local2:Sprite = (_arg1.target as Sprite);
_local2.removeEventListener(MouseEvent.CLICK, removeLevelEarly);
var _local3:Sprite = (_local2.getChildByName("bg") as Sprite);
Tweener.removeTweens(_local3);
Tweener.addTween(_local3, {y:(-(_local3.height) - 10), time:0.2, transition:"linear", onComplete:removeLevel, onCompleteParams:[this]});
}
private function onLogoClick(_arg1:MouseEvent):void{
_arg1.stopPropagation();
this.parent.addChild(new KongregateConfirmationPopup(true));
}
}
}//package
Section 145
//LevelUpScreen_s_kong_logo (LevelUpScreen_s_kong_logo)
package {
import mx.core.*;
public class LevelUpScreen_s_kong_logo extends BitmapAsset {
}
}//package
Section 146
//LevelUpScreen_s_ui_levelUP (LevelUpScreen_s_ui_levelUP)
package {
import mx.core.*;
public class LevelUpScreen_s_ui_levelUP extends SpriteAsset {
}
}//package
Section 147
//Main (Main)
package {
import flash.events.*;
import com.kongregate.as3.client.events.*;
import flash.display.*;
import caurina.transitions.*;
import com.kongregate.as3.client.*;
import flash.utils.*;
import com.urbansquall.security.*;
import caurina.transitions.properties.*;
import mochi.as3.*;
import flash.ui.*;
public dynamic class Main extends Sprite {
private var m_logo:Sprite;
private static const s_cutie_bg:Class = Main_s_cutie_bg;
public static const GAME_HEIGHT:int = 600;
public static const GAME_WIDTH:int = 700;
public static var s_safeSolManager:SafeSolManager;
public function Main(){
hackPreloader();
}
private function completePreloading():void{
var _local2:KongregateAPI;
s_safeSolManager = new SafeSolManager("bloody_fun_day", 2300338);
s_safeSolManager.createInt("fixedHighScore", 10000, true);
s_safeSolManager.createInt("unlimitedHighScore", 20000, true);
s_safeSolManager.createBool("seenFirstTimeHelp", false);
s_safeSolManager.createInt("tutorialBadges", 0, true);
s_safeSolManager.createInt("fixedBadges", 0, true);
s_safeSolManager.createInt("unlimitedBadges", 0, true);
s_safeSolManager.createBool("muteBgm", false, true);
s_safeSolManager.createBool("muteSfx", false, true);
var _local1:CutiePopperAnimationFactory = new CutiePopperAnimationFactory();
Tweener.init();
ColorShortcuts.init();
if (SponsorManager.instance.isKongregate()){
_local2 = new KongregateAPI();
_local2.addEventListener(KongregateEvent.COMPLETE, onKongregateComplete);
this.addChild(_local2);
} else {
continueLoading();
};
}
private function startAd():void{
}
private function hackPreloader():void{
var _local4:MovieClip;
var _local5:Timer;
var _local1:ContextMenu = new ContextMenu();
_local1.hideBuiltInItems();
this.contextMenu = _local1;
var _local2:SponsorManager = SponsorManager.create(SponsorManager.KONGREGATE, this.stage);
var _local3:Boolean = _local2.isKongregate();
if (((!(_local3)) && (!(_local2.isPlayingOnSponsorSite())))){
this.visible = false;
return;
};
m_logo = SponsorManager.instance.createPreloaderClip();
m_logo.buttonMode = true;
m_logo.addEventListener(MouseEvent.CLICK, onLogoClick);
this.addChild(m_logo);
if ((m_logo is MovieClip)){
_local4 = (m_logo as MovieClip);
this.stage.frameRate = 30;
_local4.addFrameScript((_local4.totalFrames - 1), stopLogoAnimation);
} else {
_local5 = new Timer(3000, 1);
_local5.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
_local5.start();
};
if (SponsorManager.instance.centerSplash){
m_logo.x = (GAME_WIDTH / 2);
m_logo.y = (GAME_HEIGHT / 2);
} else {
m_logo.x = ((GAME_WIDTH - m_logo.width) / 2);
m_logo.y = ((GAME_HEIGHT - m_logo.height) / 2);
};
}
private function finishAd():void{
this.stage.stageFocusRect = false;
this.addChild(new s_cutie_bg());
this.addChild(new Menu());
}
private function stopLogoAnimation():void{
if ((m_logo is MovieClip)){
this.stage.frameRate = 120;
(m_logo as MovieClip).stop();
};
this.removeChild(m_logo);
m_logo = null;
completePreloading();
}
private function onKongregateComplete(_arg1:KongregateEvent):void{
continueLoading();
}
private function continueLoading():void{
if (((Game.CHEATS_ON) || (!(SponsorManager.instance.allowMochi)))){
finishAd();
return;
};
MochiAd.showInterLevelAd({clip:this, id:"170c7da2e40c6b61", res:"700x600", ad_finished:finishAd, ad_started:startAd});
}
private function onLogoClick(_arg1:MouseEvent):void{
SponsorManager.instance.visitSite();
}
private function onTimerComplete(_arg1:TimerEvent):void{
var _local2:Timer = (_arg1.target as Timer);
_local2.stop();
_local2.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
stopLogoAnimation();
}
}
}//package
Section 148
//Main_s_cutie_bg (Main_s_cutie_bg)
package {
import mx.core.*;
public class Main_s_cutie_bg extends BitmapAsset {
}
}//package
Section 149
//Menu (Menu)
package {
import flash.events.*;
import flash.display.*;
import com.urbansquall.metronome.*;
import flash.text.*;
import flash.net.*;
import flash.filters.*;
public class Menu extends Sprite {
private var m_unlimitedHighScore:CustomTextField;
private var m_skin:String;
private var m_tutorialBadge:Sprite;
private var m_fixedHighScore:CustomTextField;
private var m_babyReaper:Reaper;
private var m_ticker:Ticker;
private var m_unlimitedBadges:Array;
private var m_reaper:Reaper;
private var m_msReaper:Reaper;
private var m_fixedBadges:Array;
private var m_mode:int;
private static const FIXED_LEVELS:int = 5;
private static const s_title_5level:Class = Menu_s_title_5level;
private static const s_ultd_bronze:Class = Menu_s_ultd_bronze;
private static const s_title_urbansquall:Class = Menu_s_title_urbansquall;
private static const s_title:Class = Menu_s_title;
private static const s_5level_silver:Class = Menu_s_5level_silver;
private static const s_title_nickEsposito:Class = Menu_s_title_nickEsposito;
private static const s_tutorial_gold:Class = Menu_s_tutorial_gold;
private static const s_ultd_gold:Class = Menu_s_ultd_gold;
private static const s_5level_bronze:Class = Menu_s_5level_bronze;
private static const s_bfd_gameonsite:Class = Menu_s_bfd_gameonsite;
private static const s_5level_gold:Class = Menu_s_5level_gold;
private static const s_title_charselect:Class = Menu_s_title_charselect;
private static const s_title_credits:Class = Menu_s_title_credits;
private static const s_title_unlimited:Class = Menu_s_title_unlimited;
private static const s_title_tutorial:Class = Menu_s_title_tutorial;
private static const VERSION:String = "1.0319.B";
private static const s_ultd_silver:Class = Menu_s_ultd_silver;
public function Menu(){
var _local20:SimpleButton;
var _local21:SimpleButton;
super();
m_mode = FIXED_LEVELS;
m_skin = CutiePopperAnimationFactory.REAPER_SKIN;
m_fixedBadges = [];
m_unlimitedBadges = [];
var _local1:Sprite = new Sprite();
_local1.addChild(new s_title());
_local1.mouseEnabled = false;
_local1.cacheAsBitmap = true;
this.addChild(_local1);
var _local2:Sprite = new Sprite();
_local2.name = "reaperPlate";
_local2.buttonMode = true;
_local2.addChild(new s_title_charselect());
_local2.x = 14;
_local2.y = 252;
this.addChild(_local2);
_local2.addEventListener(MouseEvent.CLICK, onReaperClick);
m_reaper = new Reaper(CutiePopperAnimationFactory.REAPER_SKIN);
m_reaper.buttonMode = true;
m_reaper.x = 28;
m_reaper.y = 226;
this.addChild(m_reaper);
m_reaper.addEventListener(MouseEvent.CLICK, onReaperClick);
var _local3:Sprite = new Sprite();
_local3.buttonMode = true;
_local3.name = "msReaperPlate";
_local3.addChild(new s_title_charselect());
_local3.x = 114;
_local3.y = 252;
this.addChild(_local3);
_local3.addEventListener(MouseEvent.CLICK, onMsReaperClick);
m_msReaper = new Reaper(CutiePopperAnimationFactory.MS_REAPER_SKIN);
m_msReaper.buttonMode = true;
m_msReaper.x = ((m_reaper.x + m_reaper.width) + 52);
m_msReaper.y = (m_reaper.y - (m_msReaper.height - m_reaper.height));
this.addChild(m_msReaper);
m_msReaper.addEventListener(MouseEvent.CLICK, onMsReaperClick);
var _local4:Sprite = new Sprite();
_local4.buttonMode = true;
_local4.name = "babyReaperPlate";
_local4.addChild(new s_title_charselect());
_local4.x = 214;
_local4.y = 252;
this.addChild(_local4);
_local4.addEventListener(MouseEvent.CLICK, onBabyReaperClick);
var _local5:String = CutiePopperAnimationFactory.BABY_REAPER_SKIN;
if (SponsorManager.instance.isFreeKongregateVersion()){
_local5 = "box";
};
m_babyReaper = new Reaper(_local5);
m_babyReaper.buttonMode = true;
m_babyReaper.x = ((m_msReaper.x + m_msReaper.width) + 52);
m_babyReaper.y = (m_reaper.y - (m_babyReaper.height - m_reaper.height));
this.addChild(m_babyReaper);
m_babyReaper.addEventListener(MouseEvent.CLICK, onBabyReaperClick);
if (SponsorManager.instance.isFreeKongregateVersion()){
m_babyReaper.x = (m_babyReaper.x + 8);
m_babyReaper.y = (m_babyReaper.y - 4);
};
m_ticker = new Ticker();
m_ticker.addEventListener(TickerEvent.TICK, tick);
m_ticker.start();
var _local6:SimpleButton = new RegularButton(s_title_tutorial);
_local6.x = 10;
_local6.y = ((m_reaper.y + m_reaper.height) + 28);
this.addChild(_local6);
_local6.addEventListener(MouseEvent.CLICK, onTutorialClick);
m_tutorialBadge = new Sprite();
m_tutorialBadge.mouseEnabled = false;
m_tutorialBadge.addChild(new s_tutorial_gold());
m_tutorialBadge.x = (_local6.x + 164);
m_tutorialBadge.y = (_local6.y + ((_local6.height - m_tutorialBadge.height) / 2));
this.addChild(m_tutorialBadge);
var _local7:SimpleButton = new RegularButton(s_title_5level);
_local7.x = _local6.x;
_local7.y = ((_local6.y + _local6.height) + 4);
this.addChild(_local7);
_local7.addEventListener(MouseEvent.CLICK, onPlayFixedClick);
var _local8:Sprite = new Sprite();
_local8.mouseEnabled = false;
_local8.addChild(new s_5level_bronze());
_local8.x = m_tutorialBadge.x;
_local8.y = ((_local7.y + 4) + ((_local7.height - _local8.height) / 2));
this.addChild(_local8);
m_fixedBadges.push(_local8);
var _local9:Sprite = new Sprite();
_local9.mouseEnabled = false;
_local9.addChild(new s_5level_silver());
_local9.x = ((_local8.x + _local8.width) + 7);
_local9.y = _local8.y;
this.addChild(_local9);
m_fixedBadges.push(_local9);
var _local10:Sprite = new Sprite();
_local10.mouseEnabled = false;
_local10.addChild(new s_5level_gold());
_local10.x = ((_local9.x + _local9.width) + 7);
_local10.y = _local8.y;
this.addChild(_local10);
m_fixedBadges.push(_local10);
var _local11:SimpleButton = new RegularButton(s_title_unlimited);
_local11.x = _local6.x;
_local11.y = ((_local7.y + _local7.height) + 4);
this.addChild(_local11);
_local11.addEventListener(MouseEvent.CLICK, onPlayUnlimitedClick);
var _local12:Sprite = new Sprite();
_local12.mouseEnabled = false;
_local12.addChild(new s_ultd_bronze());
_local12.x = m_tutorialBadge.x;
_local12.y = ((_local11.y + 4) + ((_local11.height - _local12.height) / 2));
this.addChild(_local12);
m_unlimitedBadges.push(_local12);
var _local13:Sprite = new Sprite();
_local13.mouseEnabled = false;
_local13.addChild(new s_ultd_silver());
_local13.x = ((_local12.x + _local12.width) + 7);
_local13.y = _local12.y;
this.addChild(_local13);
m_unlimitedBadges.push(_local13);
var _local14:Sprite = new Sprite();
_local14.mouseEnabled = false;
_local14.addChild(new s_ultd_gold());
_local14.x = ((_local13.x + _local13.width) + 7);
_local14.y = _local12.y;
this.addChild(_local14);
m_unlimitedBadges.push(_local14);
if (((!((SponsorManager.instance.titleClass == null))) && (((SponsorManager.instance.isFreeKongregateVersion()) || (!(SponsorManager.instance.isKongregate())))))){
_local20 = new RegularButton(SponsorManager.instance.titleClass);
_local20.x = _local6.x;
_local20.y = ((_local11.y + _local11.height) + 12);
this.addChild(_local20);
_local20.addEventListener(MouseEvent.CLICK, onLogoClick);
};
m_fixedHighScore = new CustomTextField("", 0xFFD800, 26);
m_fixedHighScore.mouseEnabled = false;
m_fixedHighScore.autoSize = TextFieldAutoSize.RIGHT;
m_fixedHighScore.filters = [new GlowFilter(0, 1, 2, 2, 32)];
m_fixedHighScore.x = (_local7.width - m_fixedHighScore.width);
m_fixedHighScore.y = ((_local7.y - 6) + ((_local7.height - m_fixedHighScore.height) / 2));
m_fixedHighScore.text = "0";
this.addChild(m_fixedHighScore);
m_unlimitedHighScore = new CustomTextField("", 0xFFD800, 26);
m_unlimitedHighScore.mouseEnabled = false;
m_unlimitedHighScore.autoSize = TextFieldAutoSize.RIGHT;
m_unlimitedHighScore.filters = [new GlowFilter(0, 1, 2, 2, 32)];
m_unlimitedHighScore.x = (_local11.width - m_unlimitedHighScore.width);
m_unlimitedHighScore.y = ((_local11.y - 6) + ((_local11.height - m_unlimitedHighScore.height) / 2));
m_unlimitedHighScore.text = "0";
this.addChild(m_unlimitedHighScore);
var _local15:Sprite = new Sprite();
_local15.addChild(new s_title_credits());
this.addChild(_local15);
var _local16:Sprite = new Sprite();
var _local17:SimpleButton = new RegularButton(s_title_nickEsposito);
_local16.addChild(_local17);
_local16.x = 42;
_local16.y = 127;
_local15.addChild(_local16);
_local17.enabled = SponsorManager.instance.allowNickClick;
_local17.addEventListener(MouseEvent.CLICK, onEspoClick);
if (SponsorManager.instance.allowNickClick){
_local16.graphics.lineStyle(1, 0xFFFFFF);
_local16.graphics.moveTo(0, (_local16.height - 2));
_local16.graphics.lineTo(_local16.width, (_local16.height - 2));
_local16.graphics.lineStyle();
};
var _local18:SimpleButton = new RegularButton(s_title_urbansquall);
_local18.x = (_local15.width - 18);
_local18.y = 10;
_local15.addChildAt(_local18, 0);
_local18.enabled = SponsorManager.instance.allowUrbansquallClick;
_local18.addEventListener(MouseEvent.CLICK, onUrbansquallClick);
_local15.x = ((Main.GAME_WIDTH - _local15.width) - 8);
_local15.y = ((Main.GAME_HEIGHT - _local15.height) - 8);
if (SponsorManager.instance.isKongregate()){
_local21 = new RegularButton(s_bfd_gameonsite);
addChild(_local21);
_local21.x = (this.width - _local21.width);
_local21.addEventListener(MouseEvent.CLICK, clickPutThisGameOnYourSite);
};
var _local19:TextField = new TextField();
_local19.autoSize = TextFieldAutoSize.LEFT;
_local19.text = VERSION;
_local19.textColor = 0xFFFFFF;
_local19.setTextFormat(new TextFormat(null, 9));
_local19.x = (Main.GAME_WIDTH - _local19.width);
_local19.y = (Main.GAME_HEIGHT - _local19.height);
this.addChild(_local19);
refreshBadges();
updateHiScore();
updatePlates();
}
private function onTutorialClick(_arg1:MouseEvent):void{
m_mode = FIXED_LEVELS;
startGame(true);
}
private function onLogoClick(_arg1:MouseEvent):void{
SponsorManager.instance.visitSite();
}
private function onBabyReaperClick(_arg1:MouseEvent):void{
if (SponsorManager.instance.isFreeKongregateVersion()){
this.addChild(new KongregateConfirmationPopup());
return;
};
m_skin = CutiePopperAnimationFactory.BABY_REAPER_SKIN;
updatePlates();
}
private function onPlayFixedClick(_arg1:MouseEvent):void{
m_mode = FIXED_LEVELS;
startGame(false);
}
private function updateHiScore():void{
m_fixedHighScore.text = Main.s_safeSolManager.readInt("fixedHighScore").toString();
m_unlimitedHighScore.text = Main.s_safeSolManager.readInt("unlimitedHighScore").toString();
}
private function updatePlates():void{
if (m_skin == CutiePopperAnimationFactory.REAPER_SKIN){
this.getChildByName("reaperPlate").alpha = 1;
this.getChildByName("msReaperPlate").alpha = 0.01;
this.getChildByName("babyReaperPlate").alpha = 0.01;
} else {
if (m_skin == CutiePopperAnimationFactory.MS_REAPER_SKIN){
this.getChildByName("reaperPlate").alpha = 0.01;
this.getChildByName("msReaperPlate").alpha = 1;
this.getChildByName("babyReaperPlate").alpha = 0.01;
} else {
if (m_skin == CutiePopperAnimationFactory.BABY_REAPER_SKIN){
this.getChildByName("reaperPlate").alpha = 0.01;
this.getChildByName("msReaperPlate").alpha = 0.01;
this.getChildByName("babyReaperPlate").alpha = 1;
};
};
};
}
private function onPlayUnlimitedClick(_arg1:MouseEvent):void{
if (((SponsorManager.instance.isFreeKongregateVersion()) && (!(SponsorManager.instance.isNgHack())))){
this.addChild(new KongregateConfirmationPopup());
return;
};
m_mode = 0;
startGame(false);
}
private function onMsReaperClick(_arg1:MouseEvent):void{
m_skin = CutiePopperAnimationFactory.MS_REAPER_SKIN;
updatePlates();
}
private function onReaperClick(_arg1:MouseEvent):void{
m_skin = CutiePopperAnimationFactory.REAPER_SKIN;
updatePlates();
}
private function tick(_arg1:TickerEvent):void{
m_reaper.tick(_arg1.interval);
m_msReaper.tick(_arg1.interval);
m_babyReaper.tick(_arg1.interval);
}
private function onGameOver(_arg1:Boolean):void{
m_ticker.start();
this.parent.removeChildAt((this.parent.numChildren - 1));
this.visible = true;
updateHiScore();
refreshBadges();
if (_arg1){
startGame(false);
};
}
private function refreshBadges():void{
var _local1:Number = 0.1;
m_tutorialBadge.alpha = ((Main.s_safeSolManager.readInt("tutorialBadges"))>0) ? 1 : _local1;
var _local2:int = Main.s_safeSolManager.readInt("fixedBadges");
m_fixedBadges[0].alpha = ((_local2)>0) ? 1 : _local1;
m_fixedBadges[1].alpha = ((_local2)>1) ? 1 : _local1;
m_fixedBadges[2].alpha = ((_local2)>2) ? 1 : _local1;
var _local3:int = Main.s_safeSolManager.readInt("unlimitedBadges");
m_unlimitedBadges[0].alpha = ((_local3)>0) ? 1 : _local1;
m_unlimitedBadges[1].alpha = ((_local3)>1) ? 1 : _local1;
m_unlimitedBadges[2].alpha = ((_local3)>2) ? 1 : _local1;
}
private function clickPutThisGameOnYourSite(_arg1:Event):void{
navigateToURL(new URLRequest("http://www.kongregate.com/games_for_your_site"), "_blank");
}
private function startGame(_arg1:Boolean):void{
m_ticker.stop();
var _local2:Game = new Game(9, 8, onGameOver, m_mode, m_skin, _arg1);
this.parent.addChild(_local2);
this.visible = false;
}
private function onUrbansquallClick(_arg1:MouseEvent):void{
SponsorManager.instance.visitUrbansquall();
}
private function onEspoClick(_arg1:MouseEvent):void{
SponsorManager.instance.visitMusic();
}
}
}//package
Section 150
//Menu_s_5level_bronze (Menu_s_5level_bronze)
package {
import mx.core.*;
public class Menu_s_5level_bronze extends BitmapAsset {
}
}//package
Section 151
//Menu_s_5level_gold (Menu_s_5level_gold)
package {
import mx.core.*;
public class Menu_s_5level_gold extends BitmapAsset {
}
}//package
Section 152
//Menu_s_5level_silver (Menu_s_5level_silver)
package {
import mx.core.*;
public class Menu_s_5level_silver extends BitmapAsset {
}
}//package
Section 153
//Menu_s_bfd_gameonsite (Menu_s_bfd_gameonsite)
package {
import mx.core.*;
public class Menu_s_bfd_gameonsite extends BitmapAsset {
}
}//package
Section 154
//Menu_s_title (Menu_s_title)
package {
import mx.core.*;
public class Menu_s_title extends BitmapAsset {
}
}//package
Section 155
//Menu_s_title_5level (Menu_s_title_5level)
package {
import mx.core.*;
public class Menu_s_title_5level extends BitmapAsset {
}
}//package
Section 156
//Menu_s_title_charselect (Menu_s_title_charselect)
package {
import mx.core.*;
public class Menu_s_title_charselect extends BitmapAsset {
}
}//package
Section 157
//Menu_s_title_credits (Menu_s_title_credits)
package {
import mx.core.*;
public class Menu_s_title_credits extends BitmapAsset {
}
}//package
Section 158
//Menu_s_title_nickEsposito (Menu_s_title_nickEsposito)
package {
import mx.core.*;
public class Menu_s_title_nickEsposito extends BitmapAsset {
}
}//package
Section 159
//Menu_s_title_tutorial (Menu_s_title_tutorial)
package {
import mx.core.*;
public class Menu_s_title_tutorial extends BitmapAsset {
}
}//package
Section 160
//Menu_s_title_unlimited (Menu_s_title_unlimited)
package {
import mx.core.*;
public class Menu_s_title_unlimited extends BitmapAsset {
}
}//package
Section 161
//Menu_s_title_urbansquall (Menu_s_title_urbansquall)
package {
import mx.core.*;
public class Menu_s_title_urbansquall extends BitmapAsset {
}
}//package
Section 162
//Menu_s_tutorial_gold (Menu_s_tutorial_gold)
package {
import mx.core.*;
public class Menu_s_tutorial_gold extends BitmapAsset {
}
}//package
Section 163
//Menu_s_ultd_bronze (Menu_s_ultd_bronze)
package {
import mx.core.*;
public class Menu_s_ultd_bronze extends BitmapAsset {
}
}//package
Section 164
//Menu_s_ultd_gold (Menu_s_ultd_gold)
package {
import mx.core.*;
public class Menu_s_ultd_gold extends BitmapAsset {
}
}//package
Section 165
//Menu_s_ultd_silver (Menu_s_ultd_silver)
package {
import mx.core.*;
public class Menu_s_ultd_silver extends BitmapAsset {
}
}//package
Section 166
//PowerButton (PowerButton)
package {
import flash.display.*;
import flash.geom.*;
import powers.*;
import caurina.transitions.*;
import flash.text.*;
import com.urbansquall.security.*;
import flash.filters.*;
public class PowerButton extends SimpleButton {
private var m_maskHeight:Number;
private var m_costText:CustomTextField;
private var m_power:BasicAttack;
private var m_soul:CutieSoul;
private var m_currentSouls:safeint;
private var m_mask:Sprite;
private var m_cost:safeint;
private static const s_button_mask:Class = PowerButton_s_button_mask;
private static var s_firstCharge:Boolean = true;
public function PowerButton(_arg1:Class, _arg2:BasicAttack){
m_power = _arg2;
m_cost = new safeint(m_power.cost);
m_currentSouls = new safeint(m_power.cost);
var _local3:Sprite = new Sprite();
_local3.addChild(new (_arg1));
_local3.cacheAsBitmap = true;
_local3.filters = [new DropShadowFilter(4, 45, 0, 0.8)];
this.upState = _local3;
var _local4:Sprite = new Sprite();
_local4.addChild(new (_arg1));
_local4.transform.colorTransform = new ColorTransform(1.2, 1.2, 1.2);
_local4.cacheAsBitmap = true;
_local4.filters = [new DropShadowFilter(4, 45, 0, 0.8)];
this.overState = _local4;
var _local5:Sprite = new Sprite();
_local5.x = 2;
_local5.y = 2;
_local5.addChild(new (_arg1));
_local5.transform.colorTransform = new ColorTransform(0.8, 0.8, 0.8);
_local5.cacheAsBitmap = true;
this.downState = _local5;
this.hitTestState = _local3;
this.cacheAsBitmap = true;
this.useHandCursor = true;
m_mask = new Sprite();
m_mask.cacheAsBitmap = true;
_local3.addChild(m_mask);
var _local6:Graphics = m_mask.graphics;
_local6.clear();
_local6.beginFill(0, 0.8);
_local6.lineStyle(1, 0);
_local6.drawRect(0, 0, this.width, this.height);
_local6.lineStyle();
_local6.endFill();
var _local7:Sprite = new Sprite();
_local7.addChild(new s_button_mask());
_local7.cacheAsBitmap = true;
_local3.addChild(_local7);
m_mask.mask = _local7;
m_maskHeight = m_mask.height;
m_costText = new CustomTextField("", 0xFFFFFF, 20);
m_costText.autoSize = TextFieldAutoSize.CENTER;
m_costText.center();
m_costText.leading = -2;
m_costText.filters = [new GlowFilter(0, 1, 2, 2, 32)];
_local3.addChild(m_costText);
m_soul = new CutieSoul(m_power.color);
m_soul.mouseEnabled = false;
m_soul.x = (_local3.width / 2);
m_soul.y = (_local3.height - 22);
if (m_power.color != Game.RED_CUTIE){
_local3.addChild(m_soul);
};
updateText();
}
public function tryEnable():void{
this.enabled = isCharged;
}
public function recharge(_arg1:int):void{
if (_arg1 > 0){
m_currentSouls.val = (m_currentSouls.val + _arg1);
};
updateText();
var _local2:Number = Math.min((m_currentSouls.val / m_cost.val), 1);
if (m_cost.val == 0){
_local2 = 1;
};
this.enabled = (_local2 >= 1);
if (((this.enabled) && ((m_cost.val > 0)))){
};
var _local3:Number = (m_maskHeight * _local2);
Tweener.addTween(m_mask, {y:_local3, height:(m_maskHeight - _local3), time:0.5});
}
public function expend():void{
m_currentSouls.val = 0;
recharge(0);
updateText();
}
public function get isCharged():Boolean{
var _local1:Number = Math.min((m_currentSouls.val / m_cost.val), 1);
if (m_cost.val == 0){
_local1 = 1;
};
return ((_local1 >= 1));
}
private function updateText():void{
var _local1:int = (m_cost.val - m_currentSouls.val);
if (_local1 > 0){
m_costText.size = 20;
m_costText.textColor = 0xFFFFFF;
m_costText.text = (("Get\n" + _local1.toString()) + "\nmore");
m_costText.visible = true;
m_soul.visible = true;
} else {
if (m_cost.val > 0){
m_costText.size = 16;
m_costText.textColor = 2289186;
m_costText.text = "Click to\nactivate !";
m_costText.visible = false;
m_soul.visible = false;
};
};
m_costText.x = ((m_mask.width - m_costText.width) / 2);
m_costText.y = 6;
}
}
}//package
Section 167
//PowerButton_s_button_mask (PowerButton_s_button_mask)
package {
import mx.core.*;
import flash.utils.*;
public class PowerButton_s_button_mask extends MovieClipLoaderAsset {
public var dataClass:Class;
private static var bytes:ByteArray = null;
public function PowerButton_s_button_mask(){
dataClass = PowerButton_s_button_mask_dataClass;
super();
initialWidth = (1920 / 20);
initialHeight = (2080 / 20);
}
override public function get movieClipData():ByteArray{
if (bytes == null){
bytes = ByteArray(new dataClass());
};
return (bytes);
}
}
}//package
Section 168
//PowerButton_s_button_mask_dataClass (PowerButton_s_button_mask_dataClass)
package {
import mx.core.*;
public class PowerButton_s_button_mask_dataClass extends ByteArrayAsset {
}
}//package
Section 169
//PromptPopup (PromptPopup)
package {
import flash.events.*;
import flash.display.*;
import flash.filters.*;
public class PromptPopup extends Sprite {
private var m_button1:TextButton;
private var m_button2:TextButton;
private var m_button1Callback:Function;
private var m_button2Callback:Function;
private var m_popup:Sprite;
public function PromptPopup(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Function, _arg6:Function){
m_button1Callback = _arg5;
m_button2Callback = _arg6;
this.cacheAsBitmap = true;
var _local7:Graphics = this.graphics;
_local7.beginFill(0, 0.5);
_local7.drawRect(0, 0, Main.GAME_WIDTH, Main.GAME_HEIGHT);
_local7.endFill();
m_popup = new Sprite();
m_popup.addChild(new TutorialPopup.s_ui_popup());
m_popup.x = ((this.width - m_popup.width) / 2);
m_popup.y = (((this.height - m_popup.height) / 2) - 35);
this.addChild(m_popup);
var _local8:CustomTextField = new CustomTextField(_arg1, 0xFFFFFF, 30);
_local8.filters = [new GlowFilter(0, 1, 2, 2, 32)];
_local8.width = (m_popup.width - 50);
_local8.x = ((m_popup.width - _local8.width) / 2);
_local8.y = 25;
m_popup.addChild(_local8);
var _local9:CustomTextField = new CustomTextField(_arg2, 0xFFFFFF, 20);
_local9.filters = [new GlowFilter(0, 1, 2, 2, 32)];
_local9.wordWrap = true;
_local9.width = (m_popup.width - 50);
_local9.x = 27;
_local9.y = ((_local8.y + _local8.height) + 8);
m_popup.addChild(_local9);
m_button1 = new TextButton(_arg3);
m_button1.x = (23 + 30);
m_button1.y = ((m_popup.height - m_button1.height) - 40);
m_button1.addEventListener(MouseEvent.CLICK, onButton1Click);
m_popup.addChild(m_button1);
m_button2 = new TextButton(_arg4);
m_button2.x = (((m_popup.width - m_button2.width) - 23) - 30);
m_button2.y = ((m_popup.height - m_button2.height) - 40);
m_button2.addEventListener(MouseEvent.CLICK, onButton2Click);
m_popup.addChild(m_button2);
}
private function cleanUp():void{
m_button1.removeEventListener(MouseEvent.CLICK, onButton1Click);
m_button2.removeEventListener(MouseEvent.CLICK, onButton2Click);
this.parent.removeChild(this);
}
private function onButton2Click(_arg1:MouseEvent):void{
cleanUp();
if (m_button2Callback != null){
m_button2Callback();
};
}
private function onButton1Click(_arg1:MouseEvent):void{
cleanUp();
if (m_button1Callback != null){
m_button1Callback();
};
}
}
}//package
Section 170
//QuitPopup (QuitPopup)
package {
public class QuitPopup extends PromptPopup {
private var m_quitFunc:Function;
public function QuitPopup(_arg1:Function){
m_quitFunc = _arg1;
super("Quit the game ?", "Are you sure you want to end your game?", "Quit", "Play", onQuitClick, onPlayClick);
}
private function onQuitClick():void{
m_quitFunc();
}
private function onPlayClick():void{
}
}
}//package
Section 171
//Reaper (Reaper)
package {
import flash.display.*;
import com.urbansquall.ginger.*;
public class Reaper extends Sprite {
private const REAPER_ROW:int = 4;
private const REAPER_COL:int = 4;
public var col:int;
private var m_wrapper:Sprite;
public var animationController:AnimationPlayer;// = null
private var m_skin:String;
public var row:int;
public function Reaper(_arg1:String){
col = REAPER_COL;
row = REAPER_ROW;
m_skin = _arg1;
m_wrapper = new Sprite();
m_wrapper.mouseEnabled = false;
animationController = CutiePopperAnimationFactory.instance.instantiate(_arg1);
animationController.addEventListener(AnimationEvent.CHANGE, changeAnimation);
animationController.play("idle");
m_wrapper.addChild(animationController);
m_wrapper.x = (Game.HEX_SIZE / 2);
m_wrapper.y = (Game.HEX_SIZE / 2);
this.addChild(m_wrapper);
}
private function changeAnimation(_arg1:AnimationEvent):void{
if (_arg1.begin){
if (_arg1.animationID == "idle"){
animationController.y = -12;
if (m_skin == CutiePopperAnimationFactory.REAPER_SKIN){
animationController.x = -7;
} else {
if (m_skin == CutiePopperAnimationFactory.MS_REAPER_SKIN){
animationController.x = 7;
} else {
if (m_skin == CutiePopperAnimationFactory.BABY_REAPER_SKIN){
animationController.x = 4;
} else {
if (m_skin == "box"){
animationController.x = -5;
animationController.y = -6;
};
};
};
};
} else {
if (_arg1.animationID == "attack"){
if (m_skin == CutiePopperAnimationFactory.REAPER_SKIN){
animationController.x = 1;
animationController.y = -8;
} else {
if (m_skin == CutiePopperAnimationFactory.MS_REAPER_SKIN){
animationController.x = 3;
animationController.y = -11;
} else {
if (m_skin == CutiePopperAnimationFactory.BABY_REAPER_SKIN){
animationController.x = -1;
animationController.y = -9;
};
};
};
};
};
};
}
public function play(_arg1:String, _arg2:int):void{
m_wrapper.scaleX = _arg2;
animationController.play(_arg1);
}
public function tick(_arg1:Number):void{
if (animationController != null){
animationController.update(_arg1);
};
}
}
}//package
Section 172
//ReaperData (ReaperData)
package {
import flash.display.*;
import com.urbansquall.shex.*;
public class ReaperData extends HexData {
private var m_reaper:Sprite;
private var m_bg:Sprite;
public static const NORMAL_FPS:int = 10;
public function ReaperData(){
m_bg = new Sprite();
var _local1:int = (Game.HEX_SIZE / 2);
var _local2:int = (_local1 / 2);
var _local3:Graphics = m_bg.graphics;
_local3.beginFill(0x333333, 0.8);
_local3.moveTo(_local1, 2);
_local3.lineTo((Game.HEX_SIZE - 2), _local2);
_local3.lineTo((Game.HEX_SIZE - 2), (_local2 * 3));
_local3.lineTo(_local1, (Game.HEX_SIZE - 2));
_local3.lineTo(2, (_local2 * 3));
_local3.lineTo(2, _local2);
_local3.lineTo(_local1, 2);
_local3.endFill();
}
}
}//package
Section 173
//RegularButton (RegularButton)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
public class RegularButton extends SimpleButton {
private var m_overThings:Array;
public function RegularButton(_arg1:Class, _arg2:Class=null){
var _local6:Sprite;
var _local7:Sprite;
var _local8:Sprite;
super();
m_overThings = [];
var _local3:Sprite = new Sprite();
_local3.addChild(new (_arg1));
_local3.cacheAsBitmap = true;
this.upState = _local3;
var _local4:Sprite = new Sprite();
_local4.addChild(new (_arg1));
_local4.transform.colorTransform = new ColorTransform(1.3, 1.3, 1.3);
_local4.cacheAsBitmap = true;
this.overState = _local4;
var _local5:Sprite = new Sprite();
_local5.addChild(new (_arg1));
_local5.transform.colorTransform = new ColorTransform(0.8, 0.8, 0.8);
_local5.cacheAsBitmap = true;
this.downState = _local5;
this.hitTestState = _local3;
this.cacheAsBitmap = true;
this.useHandCursor = true;
if (_arg2 != null){
_local6 = new (_arg2);
_local3.addChild(_local6);
_local7 = new (_arg2);
_local4.addChild(_local7);
_local8 = new (_arg2);
_local5.addChild(_local8);
m_overThings = [_local6, _local7, _local8];
toggleOverThings();
this.addEventListener(MouseEvent.CLICK, onClick);
};
}
private function onClick(_arg1:MouseEvent):void{
toggleOverThings();
}
public function toggleOverThings():void{
var _local1:Sprite;
for each (_local1 in m_overThings) {
_local1.visible = !(_local1.visible);
};
}
}
}//package
Section 174
//SoundLibrary (SoundLibrary)
package {
public class SoundLibrary {
public static const s_fireball:Class = SoundLibrary_s_fireball;
public static const s_s14:Class = SoundLibrary_s_s14;
public static const s_s15:Class = SoundLibrary_s_s15;
public static const s_s16:Class = SoundLibrary_s_s16;
public static const eggs:Array = [new s_egg1(), new s_egg2(), new s_egg3()];
public static const s_squish02:Class = SoundLibrary_s_squish02;
public static const s_egg1:Class = SoundLibrary_s_egg1;
public static const s_egg2:Class = SoundLibrary_s_egg2;
public static const s_squish01:Class = SoundLibrary_s_squish01;
public static const s_woosh:Class = SoundLibrary_s_woosh;
public static const s_egg3:Class = SoundLibrary_s_egg3;
public static const screams:Array = [new s_s06(), new s_s07(), new s_s08(), new s_s14(), new s_s15(), new s_s16(), new s_squish01(), new s_squish02()];
public static const s_transform:Class = SoundLibrary_s_transform;
public static const screamVol:Array = [0.5, 0.5, 0.6, 0.4, 0.7, 0.8, 1, 1];
public static const s_s06:Class = SoundLibrary_s_s06;
public static const s_s07:Class = SoundLibrary_s_s07;
public static const s_s08:Class = SoundLibrary_s_s08;
public static const s_low_health:Class = SoundLibrary_s_low_health;
public static const s_oh_noo:Class = SoundLibrary_s_oh_noo;
public static const s_bgm:Class = SoundLibrary_s_bgm;
public static const s_laser:Class = SoundLibrary_s_laser;
}
}//package
Section 175
//SoundLibrary_s_bgm (SoundLibrary_s_bgm)
package {
import mx.core.*;
public class SoundLibrary_s_bgm extends SoundAsset {
}
}//package
Section 176
//SoundLibrary_s_egg1 (SoundLibrary_s_egg1)
package {
import mx.core.*;
public class SoundLibrary_s_egg1 extends SoundAsset {
}
}//package
Section 177
//SoundLibrary_s_egg2 (SoundLibrary_s_egg2)
package {
import mx.core.*;
public class SoundLibrary_s_egg2 extends SoundAsset {
}
}//package
Section 178
//SoundLibrary_s_egg3 (SoundLibrary_s_egg3)
package {
import mx.core.*;
public class SoundLibrary_s_egg3 extends SoundAsset {
}
}//package
Section 179
//SoundLibrary_s_fireball (SoundLibrary_s_fireball)
package {
import mx.core.*;
public class SoundLibrary_s_fireball extends SoundAsset {
}
}//package
Section 180
//SoundLibrary_s_laser (SoundLibrary_s_laser)
package {
import mx.core.*;
public class SoundLibrary_s_laser extends SoundAsset {
}
}//package
Section 181
//SoundLibrary_s_low_health (SoundLibrary_s_low_health)
package {
import mx.core.*;
public class SoundLibrary_s_low_health extends SoundAsset {
}
}//package
Section 182
//SoundLibrary_s_oh_noo (SoundLibrary_s_oh_noo)
package {
import mx.core.*;
public class SoundLibrary_s_oh_noo extends SoundAsset {
}
}//package
Section 183
//SoundLibrary_s_s06 (SoundLibrary_s_s06)
package {
import mx.core.*;
public class SoundLibrary_s_s06 extends SoundAsset {
}
}//package
Section 184
//SoundLibrary_s_s07 (SoundLibrary_s_s07)
package {
import mx.core.*;
public class SoundLibrary_s_s07 extends SoundAsset {
}
}//package
Section 185
//SoundLibrary_s_s08 (SoundLibrary_s_s08)
package {
import mx.core.*;
public class SoundLibrary_s_s08 extends SoundAsset {
}
}//package
Section 186
//SoundLibrary_s_s14 (SoundLibrary_s_s14)
package {
import mx.core.*;
public class SoundLibrary_s_s14 extends SoundAsset {
}
}//package
Section 187
//SoundLibrary_s_s15 (SoundLibrary_s_s15)
package {
import mx.core.*;
public class SoundLibrary_s_s15 extends SoundAsset {
}
}//package
Section 188
//SoundLibrary_s_s16 (SoundLibrary_s_s16)
package {
import mx.core.*;
public class SoundLibrary_s_s16 extends SoundAsset {
}
}//package
Section 189
//SoundLibrary_s_squish01 (SoundLibrary_s_squish01)
package {
import mx.core.*;
public class SoundLibrary_s_squish01 extends SoundAsset {
}
}//package
Section 190
//SoundLibrary_s_squish02 (SoundLibrary_s_squish02)
package {
import mx.core.*;
public class SoundLibrary_s_squish02 extends SoundAsset {
}
}//package
Section 191
//SoundLibrary_s_transform (SoundLibrary_s_transform)
package {
import mx.core.*;
public class SoundLibrary_s_transform extends SoundAsset {
}
}//package
Section 192
//SoundLibrary_s_woosh (SoundLibrary_s_woosh)
package {
import mx.core.*;
public class SoundLibrary_s_woosh extends SoundAsset {
}
}//package
Section 193
//SponsorManager (SponsorManager)
package {
import flash.display.*;
import flash.net.*;
public class SponsorManager {
private var m_allowUrbansquallClick:Boolean;
private var m_allowMochi:Boolean;
private var m_titleClass:Class;
private var m_clickUrl:String;
private var m_stage:Stage;
private var m_preloaderClass:Class;
private var m_centerSplash:Boolean;
private var m_urls:Array;
private var m_sponsorKey:String;
private var m_allowNickClick:Boolean;
private static const s_kong_preloader:Class = SponsorManager_s_kong_preloader;
public static const ARMOR_GAMES:String = "ag";
private static const s_andkon_logo:Class = SponsorManager_s_andkon_logo;
private static const s_andkon_banner:Class = SponsorManager_s_andkon_banner;
private static const s_title_kong:Class = SponsorManager_s_title_kong;
private static const s_ag_intro_mc:Class = SponsorManager_s_ag_intro_mc;
private static const s_armor_logo:Class = SponsorManager_s_armor_logo;
public static const ANDKON:String = "andkon";
public static const KONGREGATE:String = "kong";
private static var s_instance:SponsorManager;
public function SponsorManager(_arg1:String, _arg2:Stage){
m_sponsorKey = _arg1;
m_stage = _arg2;
m_urls = [];
switch (m_sponsorKey){
case ARMOR_GAMES:
m_urls.push("armorgames.com");
m_preloaderClass = s_ag_intro_mc;
m_titleClass = s_armor_logo;
m_centerSplash = true;
m_clickUrl = "http://www.armorgames.com";
m_allowUrbansquallClick = true;
m_allowNickClick = false;
m_allowMochi = false;
break;
case ANDKON:
m_urls.push("andkon.com");
m_preloaderClass = s_andkon_logo;
m_titleClass = s_andkon_banner;
m_centerSplash = false;
m_clickUrl = "http://www.andkon.com/arcade/";
m_allowUrbansquallClick = true;
m_allowNickClick = false;
m_allowMochi = false;
break;
case KONGREGATE:
default:
m_urls.push("kongregate.com");
m_preloaderClass = s_kong_preloader;
m_titleClass = s_title_kong;
m_centerSplash = true;
m_clickUrl = "http://www.kongregate.com/games/urbansquall/bloody-fun-day/?gamereferral=bloody-fun-day";
m_allowUrbansquallClick = true;
m_allowNickClick = true;
m_allowMochi = true;
break;
};
}
public function get titleClass():Class{
return (m_titleClass);
}
public function visitSite():void{
navigateToURL(new URLRequest(m_clickUrl), "_blank");
}
public function isNgHack():Boolean{
return ((getDomain() == "ungrounded.net"));
}
public function get clickUrl():String{
return (m_clickUrl);
}
public function createPreloaderClip():Sprite{
var _local2:Sprite;
if (m_preloaderClass == null){
return (null);
};
var _local1:DisplayObject = new m_preloaderClass();
if ((_local1 is Bitmap)){
_local2 = new Sprite();
_local2.addChild(_local1);
return (_local2);
};
return ((_local1 as Sprite));
}
private function hasKongregateFlashVar():Boolean{
if (m_stage.root.loaderInfo.parameters == null){
return (false);
};
return ((m_stage.root.loaderInfo.parameters.kongregate == "true"));
}
public function get allowUrbansquallClick():Boolean{
return (m_allowUrbansquallClick);
}
public function visitMusic():void{
if (!m_allowNickClick){
return;
};
navigateToURL(new URLRequest("http://www.myspace.com/alphastudionj"), "_blank");
}
public function get allowNickClick():Boolean{
return (m_allowNickClick);
}
public function isPlayingOnSponsorSite():Boolean{
var _local1:String = getDomain();
var _local2:int;
while (_local2 < m_urls.length) {
if (_local1 == m_urls[_local2]){
if (isKongregate()){
return (hasKongregateFlashVar());
};
return (true);
};
_local2++;
};
return (false);
}
public function isKongregate():Boolean{
return ((m_sponsorKey == KONGREGATE));
}
public function isFreeKongregateVersion():Boolean{
return (((!(Game.CHEATS_ON)) && (((isKongregate()) && (!(isPlayingOnSponsorSite()))))));
}
public function visitUrbansquall():void{
if (!m_allowUrbansquallClick){
return;
};
navigateToURL(new URLRequest("http://www.urbansquall.com/?referrer=bloody-fun-day"), "_blank");
}
public function get allowMochi():Boolean{
return (m_allowMochi);
}
private function getDomain():String{
var _local1:String = m_stage.root.loaderInfo.url;
var _local2:int = (_local1.indexOf("://") + 3);
var _local3:int = _local1.indexOf("/", _local2);
var _local4:String = _local1.substring(_local2, _local3);
var _local5:int = (_local4.lastIndexOf(".") - 1);
var _local6:int = (_local4.lastIndexOf(".", _local5) + 1);
_local4 = _local4.substring(_local6, _local4.length);
return (_local4);
}
public function get centerSplash():Boolean{
return (m_centerSplash);
}
public static function get instance():SponsorManager{
return (s_instance);
}
public static function create(_arg1:String, _arg2:Stage):SponsorManager{
s_instance = new SponsorManager(_arg1, _arg2);
return (s_instance);
}
}
}//package
Section 194
//SponsorManager_s_ag_intro_mc (SponsorManager_s_ag_intro_mc)
package {
import mx.core.*;
public class SponsorManager_s_ag_intro_mc extends MovieClipAsset {
}
}//package
Section 195
//SponsorManager_s_andkon_banner (SponsorManager_s_andkon_banner)
package {
import mx.core.*;
public class SponsorManager_s_andkon_banner extends BitmapAsset {
}
}//package
Section 196
//SponsorManager_s_andkon_logo (SponsorManager_s_andkon_logo)
package {
import mx.core.*;
public class SponsorManager_s_andkon_logo extends BitmapAsset {
}
}//package
Section 197
//SponsorManager_s_armor_logo (SponsorManager_s_armor_logo)
package {
import mx.core.*;
public class SponsorManager_s_armor_logo extends BitmapAsset {
}
}//package
Section 198
//SponsorManager_s_kong_preloader (SponsorManager_s_kong_preloader)
package {
import mx.core.*;
public class SponsorManager_s_kong_preloader extends MovieClipAsset {
}
}//package
Section 199
//SponsorManager_s_title_kong (SponsorManager_s_title_kong)
package {
import mx.core.*;
public class SponsorManager_s_title_kong extends BitmapAsset {
}
}//package
Section 200
//TextButton (TextButton)
package {
import flash.display.*;
import flash.filters.*;
public class TextButton extends RegularButton {
private static const s_ui_button:Class = TextButton_s_ui_button;
public function TextButton(_arg1:String){
super(s_ui_button);
var _local2:CustomTextField = new CustomTextField(_arg1, 0xFFFFFF, 24);
_local2.x = ((this.upState.width - _local2.width) / 2);
_local2.y = ((this.upState.height - _local2.height) / 2);
_local2.filters = [new GlowFilter(0, 1, 2, 2, 32)];
(this.upState as Sprite).addChild(_local2);
var _local3:CustomTextField = new CustomTextField(_arg1, 0xFFFFFF, 24);
_local3.x = ((this.overState.width - _local3.width) / 2);
_local3.y = ((this.overState.height - _local3.height) / 2);
_local3.filters = [new GlowFilter(0, 1, 2, 2, 32)];
(this.overState as Sprite).addChild(_local3);
var _local4:CustomTextField = new CustomTextField(_arg1, 0xFFFFFF, 24);
_local4.x = ((this.downState.width - _local4.width) / 2);
_local4.y = ((this.downState.height - _local4.height) / 2);
_local4.filters = [new GlowFilter(0, 1, 2, 2, 32)];
(this.downState as Sprite).addChild(_local4);
}
}
}//package
Section 201
//TextButton_s_ui_button (TextButton_s_ui_button)
package {
import mx.core.*;
public class TextButton_s_ui_button extends SpriteAsset {
}
}//package
Section 202
//TutorialManager (TutorialManager)
package {
import flash.display.*;
import caurina.transitions.*;
import events.*;
import flash.filters.*;
public class TutorialManager extends Sprite {
private var m_game:Game;
private var m_currentCol:int;
private var m_arrow:Sprite;
private var m_currentRow:int;
private static const s_arrow:Class = TutorialManager_s_arrow;
public function TutorialManager(_arg1:Game){
m_game = _arg1;
resetChosenHex();
this.mouseEnabled = false;
m_arrow = new Sprite();
m_arrow.mouseEnabled = false;
m_arrow.filters = [new GlowFilter(0xFFD800)];
var _local2:Sprite = new Sprite();
_local2.addChild(new s_arrow());
_local2.x = -11;
_local2.y = -(_local2.height);
m_arrow.addChild(_local2);
this.addChild(m_arrow);
m_game.addEventListener(TutorialEvent.LEVEL_UP_SCREEN_GONE, onLevel1);
}
private function onPopupCloseEnda(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupCloseEnda);
var _local3:TutorialPopup = new TutorialPopup("Graduation", "This is the end of the tutorial. It's time for you to kill some cuties on your own. Have a Bloody Fun Day!");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupCloseEndb);
}
private function resetChosenHex():void{
m_currentCol = -1;
m_currentRow = -1;
}
private function onPopupClose3c(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose3c);
m_currentCol = 6;
m_currentRow = 3;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex3);
m_game.enableInput();
showArrowAt(486, 237);
}
private function onPopupClose6c(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose6c);
m_currentCol = 3;
m_currentRow = 4;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex6);
m_game.enableInput();
showArrowAt(338, 282);
}
private function onPopupClose3b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose3b);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "Kill this group of yellow cuties.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose3c);
}
private function onPopupClose1a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose1a);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "You can kill adjacent groups of cuties by clicking on them. Click on this blue cutie to kill him.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose1b);
}
private function onChooseHex8(_arg1:ChooseHexEvent):void{
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex8);
hideArrow();
}
private function onPopupClose7a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose7a);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "Kill this group of yellow cuties.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose7b);
}
private function onJumpSlashSelect(_arg1:SpecialPowerSelectEvent):void{
hideArrow();
m_game.removeEventListener(TutorialEvent.SPECIAL_POWER_SELECT, onJumpSlashSelect);
m_game.disableInput();
var _local2:TutorialPopup = new TutorialPopup("Eggs Everywhere!", "Sometimes you need to crush eggs that are in your way. This makes you lose points and prevents eggs from hatching, so you should avoid crushing them.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose6b);
}
private function upTween():void{
Tweener.addTween(m_arrow, {x:(m_arrow.x - 2), y:(m_arrow.y - 10), time:0.5, onComplete:downTween});
}
private function onChooseHex7(_arg1:ChooseHexEvent):void{
var _local2:TutorialPopup;
if (isChosenHexValid(_arg1.col, _arg1.row)){
hideArrow();
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex7);
m_game.disableInput();
_local2 = new TutorialPopup("Shiny!", "There's the golden egg. Unlike normal eggs, if you break this one you will be rewarded with 5,000 points!", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose8a);
};
}
private function onPopupClose8b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose8b);
m_game.addEventListener(TutorialEvent.LEVEL_UP_SCREEN_GONE, onLevel2);
showArrowAt(338, 372);
m_currentCol = 3;
m_currentRow = 6;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex8);
m_game.enableInput();
}
private function onPopupClose6a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose6a);
m_game.addEventListener(TutorialEvent.SPECIAL_POWER_SELECT, onJumpSlashSelect);
m_game.enableInput();
showArrowAt(150, 504);
}
private function onPopupClose6b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose6b);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "Luckily you have your Jump Slash power which will let you jump over the eggs and kill cuties on the other side. Kill this group of black cuties.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose6c);
}
private function onPopupClose4a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose4a);
var _local3:TutorialPopup = new TutorialPopup("Health Meter", "Your health is shown in the top-left. Every time you make an attack your health goes down by one.", true);
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose4b);
}
private function onPopupClose2a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose2a);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "Kill this group of black cuties.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose2b);
}
private function onPopupClose2b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose2b);
m_currentCol = 5;
m_currentRow = 4;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex2);
m_game.enableInput();
showArrowAt(460, 283);
}
private function showArrowAt(_arg1:Number, _arg2:Number):void{
m_arrow.x = _arg1;
m_arrow.y = _arg2;
m_arrow.visible = true;
downTween();
}
private function onPopupClose4b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose4b);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "To get more health, you need to kill red cuties. Kill this group here.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose4c);
}
private function onPopupClose4c(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose4c);
m_currentCol = 5;
m_currentRow = 2;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex4);
m_game.enableInput();
showArrowAt(457, 192);
}
private function onPopupClose8a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose8a);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "All the eggs are about to hatch, including the golden one, so you have to get it this turn.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose8b);
}
private function hideArrow():void{
m_arrow.visible = false;
Tweener.removeTweens(m_arrow);
}
private function downTween():void{
Tweener.addTween(m_arrow, {x:(m_arrow.x + 2), y:(m_arrow.y + 10), time:0.5, onComplete:upTween});
}
private function onPopupCloseEndb(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupCloseEndb);
resetChosenHex();
m_game.showGameOver();
}
private function onChooseHex1(_arg1:ChooseHexEvent):void{
var _local2:TutorialPopup;
if (isChosenHexValid(_arg1.col, _arg1.row)){
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex1);
hideArrow();
m_game.disableInput();
_local2 = new TutorialPopup("Bloody!", "As you kill cuties and collect souls, your special powers at the bottom will charge up.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose2a);
};
}
private function onChooseHex2(_arg1:ChooseHexEvent):void{
var _local2:TutorialPopup;
if (isChosenHexValid(_arg1.col, _arg1.row)){
hideArrow();
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex2);
m_game.disableInput();
m_game.disableInput();
_local2 = new TutorialPopup("Bloody!", "When a cutie dies, it leaves behind an egg. If you wait long enough for the egg to hatch, you can kill that cutie too.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose3a);
};
}
private function onChooseHex4(_arg1:ChooseHexEvent):void{
var _local2:TutorialPopup;
if (isChosenHexValid(_arg1.col, _arg1.row)){
hideArrow();
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex4);
m_game.disableInput();
_local2 = new TutorialPopup("Bloody!", "Not only did you get health back, all the eggs hatched too! The withered spaces also regrew and new eggs appeared on them. They will hatch next time.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose5a);
};
}
private function onChooseHex5(_arg1:ChooseHexEvent):void{
var _local2:TutorialPopup;
if (isChosenHexValid(_arg1.col, _arg1.row)){
hideArrow();
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex5);
m_game.disableInput();
_local2 = new TutorialPopup("Bloody!", "Your Jump Slash special power is now fully charged! Click on the icon to switch to it.");
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose6a);
};
}
private function onChooseHex6(_arg1:ChooseHexEvent):void{
var _local2:TutorialPopup;
if (isChosenHexValid(_arg1.col, _arg1.row)){
hideArrow();
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex6);
m_game.disableInput();
_local2 = new TutorialPopup("Golden Eggs", "This is a big group of yellow cuties! Whenever you kill a group of ten or more cuties, one of their eggs will be golden.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose7a);
};
}
private function onLevel2(_arg1:LevelUpScreenGoneEvent):void{
var _local2:TutorialPopup;
if (_arg1.level == 2){
m_game.removeEventListener(TutorialEvent.LEVEL_UP_SCREEN_GONE, onLevel2);
m_game.disableInput();
_local2 = new TutorialPopup("Power Tips", "The reaper has lots of special powers, be sure to try them all out. If you hover over a button, you can read more about each power.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupCloseEnda);
};
}
private function onChooseHex3(_arg1:ChooseHexEvent):void{
var _local2:TutorialPopup;
if (isChosenHexValid(_arg1.col, _arg1.row)){
hideArrow();
m_game.removeEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex3);
m_game.disableInput();
_local2 = new TutorialPopup("Bloody!", "Every space that you stand on withers and dies. Nothing can live on these spaces until they regrow. Regrowth happens automatically whenever eggs hatch.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose4a);
};
}
private function onPopupClose7b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose7b);
m_currentCol = 3;
m_currentRow = 5;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex7);
m_game.enableInput();
showArrowAt(305, 322);
}
private function onPopupClose5b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose5b);
m_currentCol = 4;
m_currentRow = 2;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex5);
m_game.enableInput();
showArrowAt(398, 193);
}
private function onPopupClose3a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose3a);
var _local3:TutorialPopup = new TutorialPopup("The Schedule", "This bar on the left tells you when the eggs are going to hatch next. The bar moves one notch every time you make an attack.", true);
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose3b);
}
private function onLevel1(_arg1:LevelUpScreenGoneEvent):void{
var _local2:TutorialPopup;
if (_arg1.level == 1){
m_game.removeEventListener(TutorialEvent.LEVEL_UP_SCREEN_GONE, onLevel1);
m_game.disableInput();
_local2 = new TutorialPopup("You're the reaper!", "You like to kill things and harvest their tasty souls.", true);
this.addChild(_local2);
_local2.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose1a);
};
}
private function onPopupClose1b(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose1b);
m_currentCol = 5;
m_currentRow = 5;
m_game.addEventListener(TutorialEvent.CHOOSE_HEX, onChooseHex1);
m_game.enableInput();
showArrowAt(430, 324);
}
public function isChosenHexValid(_arg1:int, _arg2:int):Boolean{
if ((((m_currentCol < 0)) && ((m_currentRow < 0)))){
return (true);
};
return ((((_arg1 == m_currentCol)) && ((_arg2 == m_currentRow))));
}
private function onPopupClose5a(_arg1:TutorialPopupCloseEvent):void{
var _local2:TutorialPopup = (_arg1.target as TutorialPopup);
_local2.removeEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose5a);
var _local3:TutorialPopup = new TutorialPopup("Objective:", "Now let's finish charging up one of your special powers. Kill this group of blue cuties.");
this.addChild(_local3);
_local3.addEventListener(TutorialEvent.TUTORIAL_POPUP_CLOSE, onPopupClose5b);
}
}
}//package
Section 203
//TutorialManager_s_arrow (TutorialManager_s_arrow)
package {
import mx.core.*;
public class TutorialManager_s_arrow extends BitmapAsset {
}
}//package
Section 204
//TutorialPopup (TutorialPopup)
package {
import flash.events.*;
import flash.display.*;
import events.*;
import flash.filters.*;
public class TutorialPopup extends Sprite {
private var m_popup:Sprite;
public static const s_ui_popup:Class = TutorialPopup_s_ui_popup;
public function TutorialPopup(_arg1:String, _arg2:String, _arg3:Boolean=false){
this.graphics.beginFill(0, 0.3);
this.graphics.drawRect(0, 0, Main.GAME_WIDTH, Main.GAME_HEIGHT);
this.graphics.endFill();
m_popup = new Sprite();
m_popup.x = 66;
m_popup.y = 50;
m_popup.filters = [new DropShadowFilter(4)];
m_popup.addChild(new s_ui_popup());
this.addChild(m_popup);
var _local4:CustomTextField = new CustomTextField(_arg1, 0xFFFFFF, 30);
_local4.selectable = false;
_local4.filters = [new GlowFilter(0, 1, 2, 2, 32)];
_local4.width = (m_popup.width - 50);
_local4.x = 25;
_local4.y = 25;
m_popup.addChild(_local4);
var _local5:CustomTextField = new CustomTextField(_arg2, 0xFFFFFF, 20);
_local5.selectable = false;
_local5.filters = [new GlowFilter(0, 1, 2, 2, 32)];
_local5.wordWrap = true;
_local5.width = (m_popup.width - 50);
_local5.x = 25;
_local5.y = ((_local4.y + _local4.height) + 8);
m_popup.addChild(_local5);
var _local6 = "Close";
if (_arg3){
_local6 = "Next";
};
var _local7:TextButton = new TextButton(_local6);
_local7.x = ((m_popup.width - _local7.width) - 23);
_local7.y = ((m_popup.height - _local7.height) - 25);
_local7.addEventListener(MouseEvent.CLICK, onCloseClick);
m_popup.addChild(_local7);
}
private function close():void{
this.parent.removeChild(this);
this.dispatchEvent(new TutorialPopupCloseEvent());
}
private function onCloseClick(_arg1:MouseEvent):void{
close();
}
}
}//package
Section 205
//TutorialPopup_s_ui_popup (TutorialPopup_s_ui_popup)
package {
import mx.core.*;
public class TutorialPopup_s_ui_popup extends SpriteAsset {
}
}//package