| STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 233645 |
| /disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2646 · P5291 |
![]() | This is the info page for Flash #264395 |
| HIT ME FOR BIG BONUSES! |
| Fill your star meter to increase the points awarded for each nut |
| Hitting 3 or more nuts earns you stars |
ActionScript [AS3]
Section 1//JSON (com.adobe.serialization.json.JSON) package com.adobe.serialization.json { public class JSON { public static function decode(_arg1:String){ var _local2:JSONDecoder = new JSONDecoder(_arg1); return (_local2.getValue()); } public static function encode(_arg1:Object):String{ var _local2:JSONEncoder = new JSONEncoder(_arg1); return (_local2.getString()); } } }//package com.adobe.serialization.jsonSection 2//JSONDecoder (com.adobe.serialization.json.JSONDecoder) package com.adobe.serialization.json { public class JSONDecoder { private var value; private var tokenizer:JSONTokenizer; private var token:JSONToken; public function JSONDecoder(_arg1:String){ tokenizer = new JSONTokenizer(_arg1); nextToken(); value = parseValue(); } private function parseObject():Object{ var _local2:String; var _local1:Object = new Object(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; while (true) { if (token.type == JSONTokenType.STRING){ _local2 = String(token.value); nextToken(); if (token.type == JSONTokenType.COLON){ nextToken(); _local1[_local2] = parseValue(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting } or , but found " + token.value)); }; } else { tokenizer.parseError(("Expecting : but found " + token.value)); }; } else { tokenizer.parseError(("Expecting string but found " + token.value)); }; }; return (null); } private function parseValue():Object{ if (token == null){ tokenizer.parseError("Unexpected end of input"); }; switch (token.type){ case JSONTokenType.LEFT_BRACE: return (parseObject()); case JSONTokenType.LEFT_BRACKET: return (parseArray()); case JSONTokenType.STRING: case JSONTokenType.NUMBER: case JSONTokenType.TRUE: case JSONTokenType.FALSE: case JSONTokenType.NULL: return (token.value); default: tokenizer.parseError(("Unexpected " + token.value)); }; return (null); } private function nextToken():JSONToken{ return ((token = tokenizer.getNextToken())); } public function getValue(){ return (value); } private function parseArray():Array{ var _local1:Array = new Array(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; while (true) { _local1.push(parseValue()); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting ] or , but found " + token.value)); }; }; return (null); } } }//package com.adobe.serialization.jsonSection 3//JSONEncoder (com.adobe.serialization.json.JSONEncoder) package com.adobe.serialization.json { import flash.utils.*; public class JSONEncoder { private var jsonString:String; public function JSONEncoder(_arg1){ jsonString = convertToString(_arg1); } private function escapeString(_arg1:String):String{ var _local3:String; var _local6:String; var _local7:String; var _local2 = ""; var _local4:Number = _arg1.length; var _local5:int; while (_local5 < _local4) { _local3 = _arg1.charAt(_local5); switch (_local3){ case "\"": _local2 = (_local2 + "\\\""); break; case "\\": _local2 = (_local2 + "\\\\"); break; case "\b": _local2 = (_local2 + "\\b"); break; case "\f": _local2 = (_local2 + "\\f"); break; case "\n": _local2 = (_local2 + "\\n"); break; case "\r": _local2 = (_local2 + "\\r"); break; case "\t": _local2 = (_local2 + "\\t"); break; default: if (_local3 < " "){ _local6 = _local3.charCodeAt(0).toString(16); _local7 = ((_local6.length == 2)) ? "00" : "000"; _local2 = (_local2 + (("\\u" + _local7) + _local6)); } else { _local2 = (_local2 + _local3); }; }; _local5++; }; return ((("\"" + _local2) + "\"")); } private function arrayToString(_arg1:Array):String{ var _local2 = ""; var _local3:int; while (_local3 < _arg1.length) { if (_local2.length > 0){ _local2 = (_local2 + ","); }; _local2 = (_local2 + convertToString(_arg1[_local3])); _local3++; }; return ((("[" + _local2) + "]")); } public function getString():String{ return (jsonString); } private function objectToString(_arg1:Object):String{ var value:Object; var key:String; var v:XML; var o = _arg1; var s = ""; var classInfo:XML = describeType(o); if (classInfo.@name.toString() == "Object"){ for (key in o) { value = o[key]; if ((value is Function)){ } else { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(key) + ":") + convertToString(value))); }; }; } else { for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name]))); }; }; return ((("{" + s) + "}")); } private function convertToString(_arg1):String{ if ((_arg1 is String)){ return (escapeString((_arg1 as String))); }; if ((_arg1 is Number)){ return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null"); } else { if ((_arg1 is Boolean)){ return ((_arg1) ? "true" : "false"); } else { if ((_arg1 is Array)){ return (arrayToString((_arg1 as Array))); }; if ((((_arg1 is Object)) && (!((_arg1 == null))))){ return (objectToString(_arg1)); }; }; }; return ("null"); } } }//package com.adobe.serialization.jsonSection 4//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _location:int; private var _text:String; public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){ super(_arg1); name = "JSONParseError"; _location = _arg2; _text = _arg3; } public function get location():int{ return (_location); } public function get text():String{ return (_text); } } }//package com.adobe.serialization.jsonSection 5//JSONToken (com.adobe.serialization.json.JSONToken) package com.adobe.serialization.json { public class JSONToken { private var _value:Object; private var _type:int; public function JSONToken(_arg1:int=-1, _arg2:Object=null){ _type = _arg1; _value = _arg2; } public function get value():Object{ return (_value); } public function get type():int{ return (_type); } public function set type(_arg1:int):void{ _type = _arg1; } public function set value(_arg1:Object):void{ _value = _arg1; } } }//package com.adobe.serialization.jsonSection 6//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer) package com.adobe.serialization.json { public class JSONTokenizer { private var loc:int; private var ch:String; private var obj:Object; private var jsonString:String; public function JSONTokenizer(_arg1:String){ jsonString = _arg1; loc = 0; nextChar(); } private function skipComments():void{ if (ch == "/"){ nextChar(); switch (ch){ case "/": do { nextChar(); } while (((!((ch == "\n"))) && (!((ch == ""))))); nextChar(); break; case "*": nextChar(); while (true) { if (ch == "*"){ nextChar(); if (ch == "/"){ nextChar(); break; }; } else { nextChar(); }; if (ch == ""){ parseError("Multi-line comment not closed"); }; }; break; default: parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )")); }; }; } private function isDigit(_arg1:String):Boolean{ return ((((_arg1 >= "0")) && ((_arg1 <= "9")))); } private function readString():JSONToken{ var _local3:String; var _local4:int; var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.STRING; var _local2 = ""; nextChar(); while (((!((ch == "\""))) && (!((ch == ""))))) { if (ch == "\\"){ nextChar(); switch (ch){ case "\"": _local2 = (_local2 + "\""); break; case "/": _local2 = (_local2 + "/"); break; case "\\": _local2 = (_local2 + "\\"); break; case "b": _local2 = (_local2 + "\b"); break; case "f": _local2 = (_local2 + "\f"); break; case "n": _local2 = (_local2 + "\n"); break; case "r": _local2 = (_local2 + "\r"); break; case "t": _local2 = (_local2 + "\t"); break; case "u": _local3 = ""; _local4 = 0; while (_local4 < 4) { if (!isHexDigit(nextChar())){ parseError((" Excepted a hex digit, but found: " + ch)); }; _local3 = (_local3 + ch); _local4++; }; _local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16))); break; default: _local2 = (_local2 + ("\\" + ch)); }; } else { _local2 = (_local2 + ch); }; nextChar(); }; if (ch == ""){ parseError("Unterminated string literal"); }; nextChar(); _local1.value = _local2; return (_local1); } private function nextChar():String{ return ((ch = jsonString.charAt(loc++))); } public function getNextToken():JSONToken{ var _local2:String; var _local3:String; var _local4:String; var _local1:JSONToken = new JSONToken(); skipIgnored(); switch (ch){ case "{": _local1.type = JSONTokenType.LEFT_BRACE; _local1.value = "{"; nextChar(); break; case "}": _local1.type = JSONTokenType.RIGHT_BRACE; _local1.value = "}"; nextChar(); break; case "[": _local1.type = JSONTokenType.LEFT_BRACKET; _local1.value = "["; nextChar(); break; case "]": _local1.type = JSONTokenType.RIGHT_BRACKET; _local1.value = "]"; nextChar(); break; case ",": _local1.type = JSONTokenType.COMMA; _local1.value = ","; nextChar(); break; case ":": _local1.type = JSONTokenType.COLON; _local1.value = ":"; nextChar(); break; case "t": _local2 = ((("t" + nextChar()) + nextChar()) + nextChar()); if (_local2 == "true"){ _local1.type = JSONTokenType.TRUE; _local1.value = true; nextChar(); } else { parseError(("Expecting 'true' but found " + _local2)); }; break; case "f": _local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar()); if (_local3 == "false"){ _local1.type = JSONTokenType.FALSE; _local1.value = false; nextChar(); } else { parseError(("Expecting 'false' but found " + _local3)); }; break; case "n": _local4 = ((("n" + nextChar()) + nextChar()) + nextChar()); if (_local4 == "null"){ _local1.type = JSONTokenType.NULL; _local1.value = null; nextChar(); } else { parseError(("Expecting 'null' but found " + _local4)); }; break; case "\"": _local1 = readString(); break; default: if (((isDigit(ch)) || ((ch == "-")))){ _local1 = readNumber(); } else { if (ch == ""){ return (null); }; parseError((("Unexpected " + ch) + " encountered")); }; }; return (_local1); } private function skipWhite():void{ while (isWhiteSpace(ch)) { nextChar(); }; } public function parseError(_arg1:String):void{ throw (new JSONParseError(_arg1, loc, jsonString)); } private function isWhiteSpace(_arg1:String):Boolean{ return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r")))); } private function skipIgnored():void{ var _local1:int; do { _local1 = loc; skipWhite(); skipComments(); } while (_local1 != loc); } private function isHexDigit(_arg1:String):Boolean{ var _local2:String = _arg1.toUpperCase(); return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F")))))); } private function readNumber():JSONToken{ var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.NUMBER; var _local2 = ""; if (ch == "-"){ _local2 = (_local2 + "-"); nextChar(); }; if (!isDigit(ch)){ parseError("Expecting a digit"); }; if (ch == "0"){ _local2 = (_local2 + ch); nextChar(); if (isDigit(ch)){ parseError("A digit cannot immediately follow 0"); }; } else { while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if (ch == "."){ _local2 = (_local2 + "."); nextChar(); if (!isDigit(ch)){ parseError("Expecting a digit"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if ((((ch == "e")) || ((ch == "E")))){ _local2 = (_local2 + "e"); nextChar(); if ((((ch == "+")) || ((ch == "-")))){ _local2 = (_local2 + ch); nextChar(); }; if (!isDigit(ch)){ parseError("Scientific notation number needs exponent value"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; var _local3:Number = Number(_local2); if (((isFinite(_local3)) && (!(isNaN(_local3))))){ _local1.value = _local3; return (_local1); }; parseError((("Number " + _local3) + " is not valid!")); return (null); } } }//package com.adobe.serialization.jsonSection 7//JSONTokenType (com.adobe.serialization.json.JSONTokenType) package com.adobe.serialization.json { public class JSONTokenType { public static const NUMBER:int = 11; public static const FALSE:int = 8; public static const RIGHT_BRACKET:int = 4; public static const NULL:int = 9; public static const TRUE:int = 7; public static const RIGHT_BRACE:int = 2; public static const UNKNOWN:int = -1; public static const COMMA:int = 0; public static const LEFT_BRACKET:int = 3; public static const STRING:int = 10; public static const LEFT_BRACE:int = 1; public static const COLON:int = 6; } }//package com.adobe.serialization.jsonSection 8//DrawEffect (com.flashdynamix.motion.effects.core.DrawEffect) package com.flashdynamix.motion.effects.core { import flash.display.*; import flash.geom.*; import com.flashdynamix.motion.effects.*; public class DrawEffect implements IEffect { public var matrix:Matrix; public var smoothing:Boolean;// = false public var rect:Rectangle; public var colorTransform:ColorTransform; public var blendMode:String;// = "normal" public var source:IBitmapDrawable; public function DrawEffect(_arg1:IBitmapDrawable, _arg2:Matrix=null, _arg3:Rectangle=null, _arg4:ColorTransform=null, _arg5:String="normal", _arg6:Boolean=false){ this.source = _arg1; this.matrix = ((_arg2)==null) ? new Matrix() : _arg2; this.colorTransform = ((_arg4)==null) ? new ColorTransform() : _arg4; this.blendMode = _arg5; this.rect = _arg3; this.smoothing = _arg6; } public function render(_arg1:BitmapData):void{ _arg1.draw(source, matrix, colorTransform, blendMode, rect, smoothing); } } }//package com.flashdynamix.motion.effects.coreSection 9//IEffect (com.flashdynamix.motion.effects.IEffect) package com.flashdynamix.motion.effects { import flash.display.*; public interface IEffect { function render(_arg1:BitmapData):void; } }//package com.flashdynamix.motion.effectsSection 10//Emitter (com.flashdynamix.motion.extras.Emitter) package com.flashdynamix.motion.extras { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import com.flashdynamix.motion.*; import fl.motion.easing.*; import com.flashdynamix.utils.*; import com.flashdynamix.motion.guides.*; public class Emitter extends Sprite { public var random:Number; public var speed:Number; public var endColor:ColorTransform; public var delay:Number;// = 0 public var target:Object; public var angle; private var _doBurst:Boolean; public var frequency:int; public var tween:TweensyGroup; public var holder:Sprite; private var Particle:Class; public var ease:Function; private var pool:MultiTypeObjectPool; public var distance; public var startDistance:Number;// = 0 public var running:Boolean;// = false public function Emitter(_arg1:Class, _arg2:Object=null, _arg3:int=5, _arg4:Number=1, _arg5="0,360", _arg6=20, _arg7:Number=1, _arg8:String="normal"){ ease = Linear.easeNone; super(); this.Particle = _arg1; this.target = _arg2; this.frequency = _arg3; this.random = _arg4; this.angle = _arg5; this.distance = _arg6; this.speed = _arg7; this.blendMode = _arg8; holder = new Sprite(); tween = new TweensyGroup(false, true); pool = new MultiTypeObjectPool(TweensyTimeline, _arg1); _doBurst = false; start(); } public function dispose():void{ removeEvent(this, Event.ENTER_FRAME, draw); pool.dispose(); tween.dispose(); holder = null; pool = null; tween = null; endColor = null; target = null; } public function stop():void{ if (!running){ return; }; running = false; removeEvent(this, Event.ENTER_FRAME, draw); } private function draw(_arg1:Event):void{ var _local5:int; var _local6:DisplayObject; if ((((random < Math.random())) || (tween.paused))){ return; }; var _local2:TweensyTimeline = pool.checkOut(TweensyTimeline); _local2.duration = speed; _local2.ease = ease; _local2.delayStart = delay; var _local3:Array = []; var _local4:Object = {position:1}; _local5 = 0; while (_local5 < frequency) { _local6 = (pool.checkOut(Particle) as DisplayObject); _local6.blendMode = this.blendMode; _local6.transform = this.transform; if (target){ _local2.to(_local6, target, null); }; _local2.to(new Direction2D(_local6, angle, distance, startDistance), _local4); if (endColor){ _local2.to(_local6.transform.colorTransform, endColor, _local6); }; _local3[_local5] = _local6; holder.addChild(_local6); _local5++; }; if (_local2.tweens > 0){ _local2.onComplete = removeChildren; _local2.onCompleteParams = _local3; tween.add(_local2); }; if (_doBurst){ _doBurst = false; stop(); }; } public function resume():void{ tween.resume(); } public function set scale(_arg1:Number):void{ this.scaleY = (this.scaleX = _arg1); } public function get scale():Number{ return (this.scaleY); } public function set secondsPerFrame(_arg1:Number):void{ tween.secondsPerFrame = _arg1; } protected function removeEvent(_arg1:EventDispatcher, _arg2:String, _arg3:Function):void{ _arg1.removeEventListener(_arg2, _arg3); } public function burst(_arg1:int):void{ if (running){ return; }; this.frequency = _arg1; this.random = 1; _doBurst = true; start(); } public function clone():Emitter{ return (new Emitter(Particle, target, frequency, random, angle, distance, speed, blendMode)); } public function start():void{ if (running){ return; }; running = true; addEvent(this, Event.ENTER_FRAME, draw); } public function get secondsPerFrame():Number{ return (tween.secondsPerFrame); } public function set refreshType(_arg1:String):void{ tween.refreshType = _arg1; } private function removeChildren(... _args):void{ var _local3:DisplayObject; var _local4:int; var _local2:int = _args.length; _local4 = 0; while (_local4 < _local2) { _local3 = _args[_local4]; holder.removeChild(_local3); pool.checkIn(_local3); _local4++; }; } public function pause():void{ tween.pause(); } protected function addEvent(_arg1:EventDispatcher, _arg2:String, _arg3:Function, _arg4:int=0, _arg5:Boolean=true):void{ _arg1.addEventListener(_arg2, _arg3, false, _arg4, _arg5); } public function get refreshType():String{ return (tween.refreshType); } } }//package com.flashdynamix.motion.extrasSection 11//Direction2D (com.flashdynamix.motion.guides.Direction2D) package com.flashdynamix.motion.guides { public class Direction2D { private var radDegree:Number;// = 57.2957795130823 private var _position:Number;// = 0 public var item:Object; private var _angle:Number; private var cosA:Number; private var _distance:Number; private var sx:Number; private var sinA:Number; public var autoRotate:Boolean;// = false private var sy:Number; private var degreeRad:Number;// = 0.0174532925199433 public function Direction2D(_arg1:Object, _arg2, _arg3, _arg4=0, _arg5:Boolean=false):void{ this.item = _arg1; _angle = (translate(_arg2) * degreeRad); _distance = translate(_arg3); cosA = Math.cos(_angle); sinA = Math.sin(_angle); var _local6:Number = translate(_arg4); _arg1.x = (_arg1.x + (cosA * _local6)); _arg1.y = (_arg1.y + (sinA * _local6)); sx = _arg1.x; sy = _arg1.y; if (_arg5){ _arg1.rotation = (_angle * radDegree); }; } private function update():void{ var _local1:Number = (distance * _position); item.x = (sx + (cosA * _local1)); item.y = (sy + (sinA * _local1)); } private function translate(_arg1):Number{ var _local2:Array; var _local3:Number; var _local4:Number; if ((_arg1 is String)){ _local2 = String(_arg1).split(","); if (_local2.length == 1){ return (parseFloat(_arg1)); }; _local3 = parseFloat(_local2[0]); _local4 = parseFloat(_local2[1]); return ((_local3 + (Math.random() * (_local4 - _local3)))); //unresolved jump }; return (_arg1); } public function get endX():Number{ return ((sx + (cosA * distance))); } public function get endY():Number{ return ((sy + (sinA * distance))); } public function set position(_arg1:Number):void{ _position = _arg1; update(); } public function get angle():Number{ return ((_angle * radDegree)); } public function set distance(_arg1:Number):void{ _distance = _arg1; update(); } public function set angle(_arg1:Number):void{ _angle = (_arg1 * degreeRad); cosA = Math.cos(_angle); sinA = Math.sin(_angle); if (autoRotate){ item.rotation = (_angle * radDegree); }; update(); } public function get position():Number{ return (_position); } public function get distance():Number{ return (_distance); } } }//package com.flashdynamix.motion.guidesSection 12//BitmapLayer (com.flashdynamix.motion.layers.BitmapLayer) package com.flashdynamix.motion.layers { import flash.events.*; import flash.display.*; import flash.geom.*; import com.flashdynamix.motion.effects.*; import com.flashdynamix.motion.effects.core.*; public class BitmapLayer extends Bitmap { public var clearOnRender:Boolean;// = false private var _scale:Number;// = 1 public var transparent:Boolean;// = false public var bgColor:uint; public var list:Array; private var running:Boolean;// = false public function BitmapLayer(_arg1:Number=500, _arg2:Number=500, _arg3:Number=1, _arg4:uint=0xFFFFFF, _arg5:Boolean=true, _arg6:Boolean=false){ list = []; super(new BitmapData((_arg1 / _arg3), (_arg2 / _arg3), _arg5, _arg4), PixelSnapping.AUTO, _arg6); this.bgColor = _arg4; this.transparent = _arg5; _scale = _arg3; var _local7 = _scale; super.scaleX = _local7; super.scaleY = _local7; startRender(); } protected function updateEffects():void{ var _local2:int; var _local3:DrawEffect; var _local1:int = list.length; _local2 = 0; while (_local2 < _local1) { _local3 = (list[_local2] as DrawEffect); if (_local3){ _local3.rect = bitmapData.rect; _local3.matrix.d = (_local3.matrix.a = (1 / _scale)); _local3.smoothing = smoothing; }; _local2++; }; render(); } public function get scale():Number{ return (_scale); } public function clear():void{ list.length = 0; } public function remove(_arg1:IEffect):Boolean{ var _local2:int = list.indexOf(_arg1); if (_local2 == -1){ return (false); }; list.splice(_local2, 1); return (true); } public function set scale(_arg1:Number):void{ var _local2:Number = (_scale / 1); var _local3 = _arg1; super.scaleX = _local3; super.scaleY = _local3; _scale = _arg1; bitmapData = new BitmapData(((bitmapData.width * _local2) / _scale), ((bitmapData.height * _local2) / _scale), transparent, bgColor); updateEffects(); } public function get layerHeight():int{ return (bitmapData.height); } public function item(_arg1:int):IEffect{ return (list[_arg1]); } public function draw(_arg1:IBitmapDrawable, _arg2:Matrix=null, _arg3:Rectangle=null, _arg4:ColorTransform=null, _arg5:String="normal"):DrawEffect{ if (_arg3 == null){ _arg3 = this.bitmapData.rect; }; if (_arg2 == null){ _arg2 = new Matrix(); _arg2.scale((1 / _scale), (1 / _scale)); }; var _local6:DrawEffect = new DrawEffect(_arg1, _arg2, _arg3, _arg4, _arg5, smoothing); add(_local6); return (_local6); } public function render(_arg1:Event=null):void{ var _local3:int; bitmapData.lock(); if (clearOnRender){ bitmapData.fillRect(bitmapData.rect, bgColor); }; var _local2:int = list.length; _local3 = 0; while (_local3 < _local2) { IEffect(list[_local3]).render(bitmapData); _local3++; }; bitmapData.unlock(); } public function startRender():void{ if (running){ return; }; running = true; addEvent(this, Event.ENTER_FRAME, render); } public function add(_arg1:IEffect):IEffect{ list.push(_arg1); return (_arg1); } public function get length():int{ return (list.length); } override public function set smoothing(_arg1:Boolean):void{ super.smoothing = _arg1; updateEffects(); } public function set layerWidth(_arg1:int):void{ bitmapData = new BitmapData((_arg1 / _scale), bitmapData.height, transparent, bgColor); updateEffects(); } override public function toString():String{ return ((("BitmapLayer {length:" + length) + "}")); } public function dispose():void{ stopRender(); list = null; } public function set layerHeight(_arg1:int):void{ bitmapData = new BitmapData(bitmapData.width, (_arg1 / _scale), transparent, bgColor); updateEffects(); } override public function get smoothing():Boolean{ return (super.smoothing); } public function get layerWidth():int{ return (bitmapData.width); } protected function removeEvent(_arg1:EventDispatcher, _arg2:String, _arg3:Function):void{ _arg1.removeEventListener(_arg2, _arg3); } public function stopRender():void{ if (!running){ return; }; running = false; removeEvent(this, Event.ENTER_FRAME, render); } protected function addEvent(_arg1:EventDispatcher, _arg2:String, _arg3:Function, _arg4:int=0, _arg5:Boolean=true):void{ _arg1.addEventListener(_arg2, _arg3, false, _arg4, _arg5); } } }//package com.flashdynamix.motion.layersSection 13//AbstractTween (com.flashdynamix.motion.plugins.AbstractTween) package com.flashdynamix.motion.plugins { import com.flashdynamix.motion.*; public class AbstractTween { public var timeline:TweensyTimeline; var propNames:Object; protected var _propCount:int;// = 0 public var inited:Boolean;// = false public function AbstractTween(){ propNames = {}; super(); } public function remove(_arg1:String):void{ if (propNames[_arg1] == null){ return; }; delete propNames[_arg1]; _propCount--; } public function match(_arg1:AbstractTween):Boolean{ return ((_arg1.instance == instance)); } public function stop(... _args):void{ var _local3:int; var _local2:int = _args.length; _local3 = 0; while (_local3 < _local2) { remove(_args[_local3]); _local3++; }; } protected function smartRotate(_arg1:Number, _arg2:Number):Number{ var _local3:Number = 180; var _local4:Number = (_local3 * 2); _arg1 = ((Math.abs(_arg1))>_local4) ? ((_arg1)<0) ? ((_arg1 % _local4) + _local4) : (_arg1 % _local4) : _arg1; _arg2 = ((Math.abs(_arg2))>_local4) ? ((_arg2)<0) ? ((_arg2 % _local4) + _local4) : (_arg2 % _local4) : _arg2; _arg2 = (_arg2 + ((Math.abs((_arg2 - _arg1)))<_local3) ? 0 : (((_arg2 - _arg1))>0) ? -(_local4) : _local4); return (_arg2); } public function clear():void{ stopAll(); timeline = null; } protected function translate(_arg1:String, _arg2):Number{ var _local4:Number; var _local5:Array; var _local6:Number; var _local7:Number; var _local3:Number = current[_arg1]; if ((_arg2 is String)){ _local5 = String(_arg2).split(","); if (_local5.length == 1){ _local4 = (_local3 + parseFloat(_arg2)); } else { _local6 = parseFloat(_local5[0]); _local7 = parseFloat(_local5[1]); _local4 = ((_local3 + _local6) + (Math.random() * (_local7 - _local6))); }; } else { _local4 = _arg2; }; return (_local4); } public function update(_arg1:Number):void{ } protected function set from(_arg1:Object):void{ } public function get instance():Object{ return (current); } public function construct(... _args):void{ inited = false; } public function has(_arg1:String):Boolean{ return (!((propNames[_arg1] == null))); } public function fromTarget(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { add(_local2, _arg1[_local2], true); }; } public function dispose():void{ propNames = null; timeline = null; } public function add(_arg1:String, _arg2, _arg3:Boolean):void{ if (_arg3){ to[_arg1] = current[_arg1]; current[_arg1] = translate(_arg1, _arg2); } else { to[_arg1] = translate(_arg1, _arg2); }; if (!propNames[_arg1]){ propNames[_arg1] = true; _propCount++; }; } public function removeOverlap(_arg1:AbstractTween):void{ var _local2:String; if (match(_arg1)){ for (_local2 in _arg1.propNames) { remove(_local2); }; }; } public function updateTo(_arg1:Number, _arg2:Object):void{ var _local3:String; var _local4:Number; var _local5:Number; for (_local3 in _arg2) { if (has(_local3)){ _local4 = _arg2[_local3]; _local5 = ((_local4 - current[_local3]) * (1 / (1 - _arg1))); from[_local3] = (_local4 - _local5); to[_local3] = _local4; }; }; } public function get hasAnimations():Boolean{ return ((_propCount > 0)); } protected function get from():Object{ return (null); } public function toTarget(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { add(_local2, _arg1[_local2], false); }; } public function apply():void{ } protected function get properties():Number{ return (_propCount); } protected function set to(_arg1:Object):void{ } public function swapToFrom():void{ var _local1:Object = to; to = from; from = _local1; } public function get current():Object{ return (null); } protected function get to():Object{ return (null); } public function stopAll():void{ var _local1:String; for (_local1 in propNames) { remove(_local1); }; } } }//package com.flashdynamix.motion.pluginsSection 14//ColorTween (com.flashdynamix.motion.plugins.ColorTween) package com.flashdynamix.motion.plugins { import flash.display.*; import flash.geom.*; public class ColorTween extends AbstractTween { var displayObject:DisplayObject; protected var _from:ColorTransform; private var _current:ColorTransform; protected var _to:ColorTransform; public function ColorTween(){ _to = new ColorTransform(); _from = new ColorTransform(); } override protected function get to():Object{ return (_to); } override protected function set from(_arg1:Object):void{ _from = (_arg1 as ColorTransform); } override public function match(_arg1:AbstractTween):Boolean{ return ((((_arg1 is ColorTween)) && ((((current == _arg1.current)) || (((!(((_arg1 as ColorTween).displayObject == null))) && ((displayObject == (_arg1 as ColorTween).displayObject)))))))); } override protected function get from():Object{ return (_from); } override public function toTarget(_arg1:Object):void{ var _local2:ColorTransform; if ((_arg1 is ColorTransform)){ _local2 = (_arg1 as ColorTransform); add("redOffset", _local2.redOffset, false); add("blueOffset", _local2.blueOffset, false); add("greenOffset", _local2.greenOffset, false); add("alphaOffset", _local2.alphaOffset, false); add("redMultiplier", _local2.redMultiplier, false); add("blueMultiplier", _local2.blueMultiplier, false); add("greenMultiplier", _local2.greenMultiplier, false); add("alphaMultiplier", _local2.alphaMultiplier, false); } else { super.toTarget(_arg1); }; } override public function apply():void{ if (displayObject == null){ return; }; displayObject.transform.colorTransform = _current; } override public function update(_arg1:Number):void{ var _local3:String; var _local2:Number = (1 - _arg1); if (((!(inited)) && ((_propCount > 0)))){ if (displayObject){ _current = displayObject.transform.colorTransform; _from = displayObject.transform.colorTransform; } else { for (_local3 in propNames) { _from[_local3] = _current[_local3]; }; }; inited = true; }; for (_local3 in propNames) { if (_local3 == "redOffset"){ _current.redOffset = ((_from.redOffset * _local2) + (_to.redOffset * _arg1)); } else { if (_local3 == "redMultiplier"){ _current.redMultiplier = ((_from.redMultiplier * _local2) + (_to.redMultiplier * _arg1)); } else { if (_local3 == "greenOffset"){ _current.greenOffset = ((_from.greenOffset * _local2) + (_to.greenOffset * _arg1)); } else { if (_local3 == "greenMultiplier"){ _current.greenMultiplier = ((_from.greenMultiplier * _local2) + (_to.greenMultiplier * _arg1)); } else { if (_local3 == "blueOffset"){ _current.blueOffset = ((_from.blueOffset * _local2) + (_to.blueOffset * _arg1)); } else { if (_local3 == "blueMultiplier"){ _current.blueMultiplier = ((_from.blueMultiplier * _local2) + (_to.blueMultiplier * _arg1)); } else { if (_local3 == "alphaOffset"){ _current.alphaOffset = ((_from.alphaOffset * _local2) + (_to.alphaOffset * _arg1)); } else { if (_local3 == "alphaMultiplier"){ _current.alphaMultiplier = ((_from.alphaMultiplier * _local2) + (_to.alphaMultiplier * _arg1)); } else { _current[_local3] = ((_from[_local3] * _local2) + (_to[_local3] * _arg1)); }; }; }; }; }; }; }; }; if (timeline.snapToClosest){ _current[_local3] = Math.round(_current[_local3]); }; }; apply(); } override public function get instance():Object{ return ((displayObject) ? displayObject : current); } override protected function set to(_arg1:Object):void{ _to = (_arg1 as ColorTransform); } override public function construct(... _args):void{ super.construct(); _current = _args[0]; displayObject = _args[1]; apply(); } override public function get current():Object{ return (_current); } override public function fromTarget(_arg1:Object):void{ var _local2:ColorTransform; if ((_arg1 is ColorTransform)){ _local2 = (_arg1 as ColorTransform); add("redOffset", _local2.redOffset, true); add("blueOffset", _local2.blueOffset, true); add("greenOffset", _local2.greenOffset, true); add("alphaOffset", _local2.alphaOffset, true); add("redMultiplier", _local2.redMultiplier, true); add("blueMultiplier", _local2.blueMultiplier, true); add("greenMultiplier", _local2.greenMultiplier, true); add("alphaMultiplier", _local2.alphaMultiplier, true); } else { super.toTarget(_arg1); }; } override public function dispose():void{ _to = null; _from = null; displayObject = null; _current = null; super.dispose(); } } }//package com.flashdynamix.motion.pluginsSection 15//DisplayTween (com.flashdynamix.motion.plugins.DisplayTween) package com.flashdynamix.motion.plugins { import flash.display.*; public class DisplayTween extends AbstractTween { protected var _to:DisplayTweenObject; protected var _from:DisplayTweenObject; private var _current:DisplayObject; public function DisplayTween(){ _to = new DisplayTweenObject(); _from = new DisplayTweenObject(); } override protected function get to():Object{ return (_to); } override protected function set from(_arg1:Object):void{ _from = (_arg1 as DisplayTweenObject); } override public function match(_arg1:AbstractTween):Boolean{ return ((((_arg1 is DisplayTween)) && (super.match(_arg1)))); } override protected function get from():Object{ return (_from); } override protected function translate(_arg1:String, _arg2):Number{ var _local3:Number = _current[_arg1]; var _local4:Number = super.translate(_arg1, _arg2); if ((((_arg1 == "rotation")) && (timeline.smartRotate))){ _local4 = smartRotate(_local3, _local4); }; return (_local4); } override public function update(_arg1:Number):void{ var _local3:String; var _local2:Number = (1 - _arg1); if (((!(inited)) && ((_propCount > 0)))){ for (_local3 in propNames) { _from[_local3] = _current[_local3]; }; inited = true; }; for (_local3 in propNames) { if (_local3 == "x"){ _current.x = ((_from.x * _local2) + (_to.x * _arg1)); } else { if (_local3 == "y"){ _current.y = ((_from.y * _local2) + (_to.y * _arg1)); } else { if (_local3 == "width"){ _current.width = ((_from.width * _local2) + (_to.width * _arg1)); } else { if (_local3 == "height"){ _current.height = ((_from.height * _local2) + (_to.height * _arg1)); } else { if (_local3 == "scaleX"){ _current.scaleX = ((_from.scaleX * _local2) + (_to.scaleX * _arg1)); } else { if (_local3 == "scaleY"){ _current.scaleY = ((_from.scaleY * _local2) + (_to.scaleY * _arg1)); } else { if (_local3 == "alpha"){ _current.alpha = ((_from.alpha * _local2) + (_to.alpha * _arg1)); } else { if (_local3 == "rotation"){ _current.rotation = ((_from.rotation * _local2) + (_to.rotation * _arg1)); } else { _current[_local3] = ((_from[_local3] * _local2) + (_to[_local3] * _arg1)); }; }; }; }; }; }; }; }; if (timeline.snapToClosest){ _current[_local3] = Math.round(_current[_local3]); }; }; } override protected function set to(_arg1:Object):void{ _to = (_arg1 as DisplayTweenObject); } override public function construct(... _args):void{ super.construct(); _current = _args[0]; } override public function get current():Object{ return (_current); } override public function dispose():void{ _to = null; _from = null; _current = null; super.dispose(); } } }//package com.flashdynamix.motion.plugins dynamic class DisplayTweenObject { public var width:Number; public var height:Number; public var rotation:Number; public var scaleY:Number; public var scaleX:Number; public var x:Number; public var y:Number; public var alpha:Number; private function DisplayTweenObject(){ } }Section 16//FilterTween (com.flashdynamix.motion.plugins.FilterTween) package com.flashdynamix.motion.plugins { import flash.display.*; import flash.utils.*; import flash.filters.*; public class FilterTween extends AbstractTween { var displayObject:DisplayObject; protected var _from:Object; protected var filterList:Array; protected var _filter:BitmapFilter; private var _current:Object; protected var _to:Object; static var filters:Dictionary = new Dictionary(true); public function FilterTween(){ _to = {}; _from = {}; } override protected function set from(_arg1:Object):void{ _from = _arg1; } override public function match(_arg1:AbstractTween):Boolean{ return ((((_arg1 is FilterTween)) && ((((current == _arg1.current)) || (((!(((_arg1 as FilterTween).displayObject == null))) && ((displayObject == (_arg1 as FilterTween).displayObject)))))))); } override public function apply():void{ if (displayObject == null){ return; }; if ((_filter is ColorMatrixFilter)){ ColorMatrixFilter(_filter).matrix = (_current as Array); }; displayObject.filters = filterList; } override protected function get to():Object{ return (_to); } override public function update(_arg1:Number):void{ var _local3:String; var _local2:Number = (1 - _arg1); if (((!(inited)) && ((_propCount > 0)))){ for (_local3 in propNames) { _from[_local3] = _current[_local3]; }; inited = true; }; for (_local3 in propNames) { _current[_local3] = ((_from[_local3] * _local2) + (_to[_local3] * _arg1)); if (timeline.snapToClosest){ _current[_local3] = Math.round(_current[_local3]); }; }; apply(); } override protected function get from():Object{ return (_from); } override public function get instance():Object{ return ((displayObject) ? displayObject : current); } override public function get current():Object{ return (_current); } override protected function set to(_arg1:Object):void{ _to = _arg1; } override public function construct(... _args):void{ super.construct(); _filter = _args[0]; displayObject = _args[1]; if ((_filter is ColorMatrixFilter)){ _current = ColorMatrixFilter(_filter).matrix; } else { _current = _filter; }; filterList = filters[displayObject]; if ((((filterList == null)) || (!((filterList.length == displayObject.filters.length))))){ filterList = (filters[displayObject] = displayObject.filters); }; if (filterList.indexOf(_filter) == -1){ filterList.push(_filter); }; apply(); } override public function dispose():void{ _filter = null; _current = null; displayObject = null; filterList = null; super.dispose(); } } }//package com.flashdynamix.motion.pluginsSection 17//MatrixTween (com.flashdynamix.motion.plugins.MatrixTween) package com.flashdynamix.motion.plugins { import flash.display.*; import flash.geom.*; public class MatrixTween extends AbstractTween { var displayObject:DisplayObject; protected var _from:Matrix; private var _current:Matrix; protected var _to:Matrix; public function MatrixTween(){ _to = new Matrix(); _from = new Matrix(); } override protected function get to():Object{ return (_to); } override protected function set from(_arg1:Object):void{ _from = (_arg1 as Matrix); } override public function match(_arg1:AbstractTween):Boolean{ return ((((_arg1 is MatrixTween)) && ((((current == _arg1.current)) || (((!(((_arg1 as MatrixTween).displayObject == null))) && ((displayObject == (_arg1 as MatrixTween).displayObject)))))))); } override protected function get from():Object{ return (_from); } override public function toTarget(_arg1:Object):void{ var _local2:Matrix; if ((_arg1 is Matrix)){ _local2 = (_arg1 as Matrix); add("tx", _local2.tx, false); add("ty", _local2.ty, false); add("a", _local2.a, false); add("b", _local2.b, false); add("c", _local2.c, false); add("d", _local2.d, false); } else { super.toTarget(_arg1); }; } override public function apply():void{ if (displayObject == null){ return; }; displayObject.transform.matrix = _current; } override public function update(_arg1:Number):void{ var _local3:String; var _local2:Number = (1 - _arg1); if (((!(inited)) && ((_propCount > 0)))){ if (displayObject){ _current = displayObject.transform.matrix; _from = displayObject.transform.matrix; } else { for (_local3 in propNames) { _from[_local3] = _current[_local3]; }; }; inited = true; }; for (_local3 in propNames) { if (_local3 == "tx"){ _current.tx = ((_from.tx * _local2) + (_to.tx * _arg1)); } else { if (_local3 == "ty"){ _current.ty = ((_from.ty * _local2) + (_to.ty * _arg1)); } else { if (_local3 == "a"){ _current.a = ((_from.a * _local2) + (_to.a * _arg1)); } else { if (_local3 == "b"){ _current.b = ((_from.b * _local2) + (_to.b * _arg1)); } else { if (_local3 == "c"){ _current.c = ((_from.c * _local2) + (_to.c * _arg1)); } else { if (_local3 == "d"){ _current.d = ((_from.d * _local2) + (_to.d * _arg1)); } else { _current[_local3] = ((_from[_local3] * _local2) + (_to[_local3] * _arg1)); }; }; }; }; }; }; if (timeline.snapToClosest){ _current[_local3] = Math.round(_current[_local3]); }; }; apply(); } override public function get instance():Object{ return ((displayObject) ? displayObject : current); } override protected function set to(_arg1:Object):void{ _to = (_arg1 as Matrix); } override public function construct(... _args):void{ super.construct(); _current = _args[0]; displayObject = _args[1]; apply(); } override public function get current():Object{ return (_current); } override public function fromTarget(_arg1:Object):void{ var _local2:Matrix; if ((_arg1 is Matrix)){ _local2 = (_arg1 as Matrix); add("tx", _local2.tx, true); add("ty", _local2.ty, true); add("a", _local2.a, true); add("b", _local2.b, true); add("c", _local2.c, true); add("d", _local2.d, true); } else { super.fromTarget(_arg1); }; } override public function dispose():void{ _to = null; _from = null; _current = null; displayObject = null; super.dispose(); } } }//package com.flashdynamix.motion.pluginsSection 18//MovieClipTween (com.flashdynamix.motion.plugins.MovieClipTween) package com.flashdynamix.motion.plugins { import flash.display.*; public class MovieClipTween extends AbstractTween { protected var _to:MovieClipTweenObject; protected var _from:MovieClipTweenObject; private var _current:MovieClip; public function MovieClipTween(){ _to = new MovieClipTweenObject(); _from = new MovieClipTweenObject(); } override protected function get to():Object{ return (_to); } override protected function set from(_arg1:Object):void{ _from = (_arg1 as MovieClipTweenObject); } override public function match(_arg1:AbstractTween):Boolean{ return ((((_arg1 is MovieClipTween)) && (super.match(_arg1)))); } override protected function get from():Object{ return (_from); } override protected function translate(_arg1:String, _arg2):Number{ var _local3:Number = _current[_arg1]; var _local4:Number = super.translate(_arg1, _arg2); if ((((_arg1 == "rotation")) && (timeline.smartRotate))){ _local4 = smartRotate(_local3, _local4); }; return (_local4); } override public function update(_arg1:Number):void{ var _local3:String; var _local2:Number = (1 - _arg1); if (((!(inited)) && ((_propCount > 0)))){ for (_local3 in propNames) { _from[_local3] = _current[_local3]; }; inited = true; }; for (_local3 in propNames) { if (_local3 == "x"){ _current.x = ((_from.x * _local2) + (_to.x * _arg1)); } else { if (_local3 == "y"){ _current.y = ((_from.y * _local2) + (_to.y * _arg1)); } else { if (_local3 == "width"){ _current.width = ((_from.width * _local2) + (_to.width * _arg1)); } else { if (_local3 == "height"){ _current.height = ((_from.height * _local2) + (_to.height * _arg1)); } else { if (_local3 == "scaleX"){ _current.scaleX = ((_from.scaleX * _local2) + (_to.scaleX * _arg1)); } else { if (_local3 == "scaleY"){ _current.scaleY = ((_from.scaleY * _local2) + (_to.scaleY * _arg1)); } else { if (_local3 == "alpha"){ _current.alpha = ((_from.alpha * _local2) + (_to.alpha * _arg1)); } else { if (_local3 == "rotation"){ _current.rotation = ((_from.rotation * _local2) + (_to.rotation * _arg1)); } else { if (_local3 == "currentFrame"){ _current.gotoAndStop(Math.round(((_from.currentFrame * _local2) + (_to.currentFrame * _arg1)))); } else { _current[_local3] = ((from[_local3] * _local2) + (to[_local3] * _arg1)); }; }; }; }; }; }; }; }; }; if (timeline.snapToClosest){ _current[_local3] = Math.round(_current[_local3]); }; }; } override protected function set to(_arg1:Object):void{ _to = (_arg1 as MovieClipTweenObject); } override public function construct(... _args):void{ super.construct(); _current = _args[0]; } override public function get current():Object{ return (_current); } override public function dispose():void{ _to = null; _from = null; _current = null; super.dispose(); } } }//package com.flashdynamix.motion.plugins dynamic class MovieClipTweenObject { public var width:Number; public var height:Number; public var rotation:Number; public var scaleY:Number; public var currentFrame:Number; public var scaleX:Number; public var x:Number; public var y:Number; public var alpha:Number; private function MovieClipTweenObject(){ } }Section 19//ObjectTween (com.flashdynamix.motion.plugins.ObjectTween) package com.flashdynamix.motion.plugins { public class ObjectTween extends AbstractTween { protected var _to:Object; protected var _from:Object; private var _current:Object; public function ObjectTween(){ _to = {}; _from = {}; } override protected function get to():Object{ return (_to); } override protected function set from(_arg1:Object):void{ _from = _arg1; } override public function match(_arg1:AbstractTween):Boolean{ return ((((_arg1 is ObjectTween)) && (super.match(_arg1)))); } override protected function get from():Object{ return (_from); } override public function update(_arg1:Number):void{ var _local3:String; var _local2:Number = (1 - _arg1); if (((!(inited)) && ((_propCount > 0)))){ for (_local3 in propNames) { _from[_local3] = _current[_local3]; }; inited = true; }; for (_local3 in propNames) { _current[_local3] = ((from[_local3] * _local2) + (to[_local3] * _arg1)); if (timeline.snapToClosest){ _current[_local3] = Math.round(_current[_local3]); }; }; } override public function get instance():Object{ return (_current); } override protected function set to(_arg1:Object):void{ _to = _arg1; } override public function construct(... _args):void{ super.construct(); _current = _args[0]; } override public function get current():Object{ return (_current); } override public function dispose():void{ _to = null; _from = null; _current = null; super.dispose(); } } }//package com.flashdynamix.motion.pluginsSection 20//SoundTween (com.flashdynamix.motion.plugins.SoundTween) package com.flashdynamix.motion.plugins { import flash.media.*; public class SoundTween extends AbstractTween { protected var _to:SoundTransform; var updateObject:Object; protected var _from:SoundTransform; private var _current:SoundTransform; public function SoundTween(){ _to = new SoundTransform(); _from = new SoundTransform(); } override protected function get to():Object{ return (_to); } override protected function set from(_arg1:Object):void{ _from = (_arg1 as SoundTransform); } override public function match(_arg1:AbstractTween):Boolean{ return ((((_arg1 is SoundTween)) && ((((current == _arg1.current)) || (((!(((_arg1 as SoundTween).updateObject == null))) && ((updateObject == (_arg1 as SoundTween).updateObject)))))))); } override protected function get from():Object{ return (_from); } override public function toTarget(_arg1:Object):void{ var _local2:SoundTransform; if ((_arg1 is SoundTransform)){ _local2 = (_arg1 as SoundTransform); add("volume", _local2.volume, false); add("pan", _local2.pan, false); } else { super.toTarget(_arg1); }; } override public function apply():void{ if (updateObject == null){ return; }; updateObject.soundTransform = _current; } override public function get instance():Object{ return ((updateObject) ? updateObject : current); } override protected function set to(_arg1:Object):void{ _to = (_arg1 as SoundTransform); } override public function construct(... _args):void{ super.construct(); _current = _args[0]; updateObject = _args[1]; apply(); } override public function update(_arg1:Number):void{ var _local3:String; var _local2:Number = (1 - _arg1); if (((!(inited)) && ((_propCount > 0)))){ if (updateObject){ _current = updateObject.soundTransform; _from = updateObject.soundTransform; } else { for (_local3 in propNames) { _from[_local3] = _current[_local3]; }; }; inited = true; }; for (_local3 in propNames) { if (_local3 == "volume"){ _current.volume = ((_from.volume * _local2) + (_to.volume * _arg1)); } else { if (_local3 == "pan"){ _current.pan = ((_from.pan * _local2) + (_to.pan * _arg1)); } else { _current[_local3] = ((_from[_local3] * _local2) + (_to[_local3] * _arg1)); }; }; if (timeline.snapToClosest){ _current[_local3] = Math.round(_current[_local3]); }; }; apply(); } override public function get current():Object{ return (_current); } override public function fromTarget(_arg1:Object):void{ var _local2:SoundTransform; if ((_arg1 is SoundTransform)){ _local2 = (_arg1 as SoundTransform); add("volume", _local2.volume, true); add("pan", _local2.pan, true); } else { super.fromTarget(_arg1); }; } override public function dispose():void{ _to = null; _from = null; _current = null; updateObject = null; super.dispose(); } } }//package com.flashdynamix.motion.pluginsSection 21//TweensyPluginList (com.flashdynamix.motion.plugins.TweensyPluginList) package com.flashdynamix.motion.plugins { import flash.display.*; import flash.media.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import com.flashdynamix.motion.*; import com.flashdynamix.utils.*; public class TweensyPluginList { private static var pool:MultiTypeObjectPool; private static var list:Array; private static var map:Dictionary; protected static var inited:Boolean = init(); public static function add(_arg1:Class, _arg2:Class):void{ list.push(_arg1); map[_arg1] = _arg2; pool.add(_arg2); } public static function checkOut(_arg1:Object):AbstractTween{ var _local2:int; var _local4:Class; var _local3:int = (list.length - 1); _local2 = 0; while (_local2 < _local3) { _local4 = list[_local2]; if ((_arg1 is _local4)){ return (pool.checkOut(map[_local4])); }; _local2++; }; return (pool.checkOut(map[list[_local3]])); } public static function checkIn(_arg1:Object):void{ pool.checkIn(_arg1); } private static function init():Boolean{ if (inited){ return (true); }; list = []; map = new Dictionary(true); pool = new MultiTypeObjectPool(); add(MovieClip, MovieClipTween); add(DisplayObject, DisplayTween); add(ColorTransform, ColorTween); add(BitmapFilter, FilterTween); add(Matrix, MatrixTween); add(SoundTransform, SoundTween); add(Object, ObjectTween); FilterTween.filters = TweensyGroup.filters; return (true); } public static function empty():void{ pool.empty(); } } }//package com.flashdynamix.motion.pluginsSection 22//Tweensy (com.flashdynamix.motion.Tweensy) package com.flashdynamix.motion { import com.flashdynamix.motion.plugins.*; public class Tweensy { public static const FRAME:String = "frame"; public static const version:String = "0.2.1"; public static const TIME:String = "time"; private static var tween:TweensyGroup = new TweensyGroup(true, false, TIME); public function toString():String{ return ((((("Tweensy " + Tweensy.version) + " {timelines:") + timelines) + "}")); } public static function stop(_arg1=null, ... _args):void{ var _local3:Array = [_arg1].concat(_args); tween.stop.apply(null, _local3); } public static function get smartRotate():Boolean{ return (tween.smartRotate); } public static function fromTo(_arg1:Object, _arg2:Object, _arg3:Object, _arg4:Number=0.5, _arg5:Function=null, _arg6:Number=0, _arg7:Object=null, _arg8:Function=null, _arg9:Array=null):TweensyTimeline{ return (tween.fromTo(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9)); } public static function set smartRotate(_arg1:Boolean):void{ tween.smartRotate = _arg1; } public static function remove(_arg1:TweensyTimeline):void{ tween.remove(_arg1); } public static function get timelines():int{ return (tween.timelines); } public static function empty():void{ TweensyGroup.empty(); TweensyTimeline.empty(); TweensyPluginList.empty(); } public static function set secondsPerFrame(_arg1:Number):void{ tween.secondsPerFrame = _arg1; } public static function get hasTimelines():Boolean{ return (tween.hasTimelines); } public static function add(_arg1:TweensyTimeline):TweensyTimeline{ return (tween.add(_arg1)); } public static function updateTo(_arg1:Object, _arg2:Object):void{ tween.updateTo(_arg1, _arg2); } public static function set snapToClosest(_arg1:Boolean):void{ tween.snapToClosest = _arg1; } public static function from(_arg1:Object, _arg2:Object, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0, _arg6:Object=null, _arg7:Function=null, _arg8:Array=null):TweensyTimeline{ return (tween.from(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8)); } public static function resume():void{ tween.resume(); } public static function get paused():Boolean{ return (tween.paused); } public static function get secondsPerFrame():Number{ return (tween.secondsPerFrame); } public static function set refreshType(_arg1:String):void{ tween.refreshType = _arg1; } public static function get snapToClosest():Boolean{ return (tween.snapToClosest); } public static function get refreshType():String{ return (tween.refreshType); } public static function pause():void{ tween.pause(); } public static function to(_arg1:Object, _arg2:Object, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0, _arg6:Object=null, _arg7:Function=null, _arg8:Array=null):TweensyTimeline{ return (tween.to(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8)); } public static function stopAll():void{ tween.stopAll(); } } }//package com.flashdynamix.motionSection 23//TweensyGroup (com.flashdynamix.motion.TweensyGroup) package com.flashdynamix.motion { import flash.events.*; import flash.display.*; import flash.media.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import com.flashdynamix.utils.*; public class TweensyGroup { public var smartRotate:Boolean;// = true public var onUpdate:Function; public var autoHide:Boolean;// = false private var last:TweensyTimeline; private var disposed:Boolean;// = false public var onUpdateParams:Array; private var first:TweensyTimeline; public var snapToClosest:Boolean;// = false public var refreshType:String;// = "time" public var lazyMode:Boolean;// = true public var onComplete:Function; public var useObjectPooling:Boolean;// = false private var time:Number; private var _timelines:int;// = 0 private var _paused:Boolean; public var onCompleteParams:Array; public var secondsPerFrame:Number;// = 0 private static var pool:ObjectPool = new ObjectPool(TweensyTimeline); private static var keyframes:Dictionary = new Dictionary(true); public static var filters:Dictionary = new Dictionary(true); private static var map:Dictionary = new Dictionary(true); private static var frame:Sprite = new Sprite(); public function TweensyGroup(_arg1:Boolean=true, _arg2:Boolean=false, _arg3:String="time"){ this.lazyMode = _arg1; this.useObjectPooling = _arg2; this.refreshType = _arg3; time = getTimer(); } public function stop(_arg1=null, ... _args):void{ var _local4:TweensyTimeline; var _local5:Array; var _local6:int; var _local7:int; var _local3:Array = map[_arg1]; if (_local3){ _local5 = [_arg1].concat(_args); _local6 = (_local3.length - 1); _local7 = _local6; while (_local7 >= 0) { _local4 = _local3[_local7]; _local4.stop.apply(null, _local5); _local7--; }; }; } public function keyframeTo(_arg1:Object, _arg2:int, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:Object = getKeyframe(_arg1, _arg2); if (_local6 == null){ return (null); }; var _local7:TweensyTimeline = setup(_arg3, _arg4, _arg5); _local7.to(_arg1, _local6); add(_local7); return (_local7); } public function remove(_arg1:TweensyTimeline):int{ var _local3:Object; if (_arg1.manager != this){ return (0); }; if (_arg1.previous){ _arg1.previous.next = _arg1.next; }; if (_arg1.next){ _arg1.next.previous = _arg1.previous; }; if (_arg1 == first){ first = first.next; if (first){ first.previous = null; }; }; if (_arg1 == last){ last = _arg1.previous; if (last){ last.next = null; }; }; var _local2:Array = _arg1.instances; for each (_local3 in _local2) { removeInstance(_local3, _arg1); }; if (useObjectPooling){ pool.checkIn(_arg1); _arg1.clear(); }; _timelines--; if (!hasTimelines){ stopUpdate(); }; return (_timelines); } public function slideTo(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number=0.5, _arg5:Function=null, _arg6:Number=0):TweensyTimeline{ var _local7:TweensyTimeline = setup(_arg4, _arg5, _arg6); _local7.to(_arg1, {x:_arg2, y:_arg3}); add(_local7); return (_local7); } public function toString():String{ return ((((("TweensyGroup " + Tweensy.version) + " {timelines:") + _timelines) + "}")); } public function removeKeyframe(_arg1:Object, _arg2:int):int{ var _local3:Array; if (keyframes[_arg1]){ _local3 = keyframes[_arg1]; _local3.splice(_arg2, 1); return (_local3.length); }; return (-1); } public function filterTo(_arg1:DisplayObject, _arg2:BitmapFilter, _arg3:Object, _arg4:Number=0.5, _arg5:Function=null, _arg6:Number=0, _arg7:Boolean=true, _arg8:Boolean=false):TweensyTimeline{ var filterMatch:BitmapFilter; var instanceFilters:Array; var filterItem:BitmapFilter; var instance = _arg1; var filter = _arg2; var to = _arg3; var duration = _arg4; var ease = _arg5; var delayStart = _arg6; var uniqueFilters = _arg7; var autoRemove = _arg8; var timeline:TweensyTimeline = setup(duration, ease, delayStart); if (uniqueFilters){ if (filters[instance] == null){ filters[instance] = instance.filters; }; instanceFilters = filters[instance]; for each (filterItem in instanceFilters) { if (getQualifiedClassName(filter) == getQualifiedClassName(filterItem)){ filterMatch = filterItem; }; }; filter = (filterMatch) ? filterMatch : filter; }; timeline.to(filter, to, instance); add(timeline); if (autoRemove){ timeline._onComplete = function ():void{ var _local1:Array = filters[instance]; _local1.splice(_local1.indexOf(filter), 1); instance.filters = _local1; }; }; return (timeline); } public function matrixTo(_arg1:DisplayObject, _arg2:Matrix, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); _local6.to(_arg1.transform.matrix, _arg2, _arg1); add(_local6); return (_local6); } public function contrastTo(_arg1:DisplayObject, _arg2:Number, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); var _local7:ColorTransform = new ColorTransform(1, 1, 1, 1, (_arg2 * 0xFF), (_arg2 * 0xFF), (_arg2 * 0xFF)); _local6.to(_arg1.transform.colorTransform, _local7, _arg1); add(_local6); return (_local6); } public function retrieveFilters(_arg1:DisplayObject):Array{ return (filters[_arg1]); } public function colorTransformTo(_arg1:DisplayObject, _arg2:ColorTransform, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); _local6.to(_arg1.transform.colorTransform, _arg2, _arg1); add(_local6); return (_local6); } public function add(_arg1:TweensyTimeline):TweensyTimeline{ var _local2:Object; for each (_local2 in _arg1.instances) { addInstance(_local2, _arg1); }; if (!hasTimelines){ startUpdate(); }; _arg1.manager = this; _arg1.smartRotate = smartRotate; _arg1.snapToClosest = snapToClosest; _arg1.autoHide = autoHide; if (first){ first.previous = _arg1; } else { last = _arg1; }; _arg1.next = first; first = _arg1; _timelines++; return (_arg1); } public function from(_arg1:Object, _arg2:Object, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0, _arg6:Object=null, _arg7:Function=null, _arg8:Array=null):TweensyTimeline{ var _local9:TweensyTimeline = setup(_arg3, _arg4, _arg5, _arg7, _arg8); _local9.from(_arg1, _arg2, _arg6); return (add(_local9)); } public function updateTo(_arg1:Object, _arg2:Object):void{ var _local3:TweensyTimeline = first; var _local4:Array = map[_arg1]; for each (_local3 in _local4) { _local3.updateTo(_arg1, _arg2); }; } public function resume():void{ _paused = false; var _local1:TweensyTimeline = first; while (_local1) { _local1.resume(); _local1 = _local1.next; }; } public function addKeyframe(_arg1:Object, ... _args):void{ var _local5:String; var _local3:Object = {}; var _local4:Array = keyframes[_arg1]; if (!_local4){ _local4 = (keyframes[_arg1] = []); }; _local4.push(_local3); for each (_local5 in _args) { _local3[_local5] = _arg1[_local5]; }; } public function rotateTo(_arg1:Object, _arg2:Number, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); _local6.to(_arg1, {rotation:_arg2}); add(_local6); return (_local6); } function removeInstance(_arg1:Object, _arg2:TweensyTimeline):void{ var _local4:int; var _local3:Array = map[_arg1]; if (_local3){ _local4 = _local3.indexOf(_arg2); if (_local4 != -1){ _local3.splice(_local4, 1); if (_local3.length == 0){ map[_arg1] = null; }; }; }; } public function brightnessTo(_arg1:DisplayObject, _arg2:Number, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local7:ColorTransform; var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); if (_arg2 > 0){ _local7 = new ColorTransform(_arg2, _arg2, _arg2, 1, (_arg2 * 0xFF), (_arg2 * 0xFF), (_arg2 * 0xFF)); } else { _local7 = new ColorTransform((1 + _arg2), (1 + _arg2), (1 + _arg2)); }; _local6.to(_arg1.transform.colorTransform, _local7, _arg1); add(_local6); return (_local6); } public function get paused():Boolean{ return (_paused); } public function colorTo(_arg1:DisplayObject, _arg2:uint, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); var _local7:ColorTransform = new ColorTransform(); _local7.color = _arg2; _local6.to(_arg1.transform.colorTransform, _local7, _arg1); add(_local6); return (_local6); } public function stopAll():void{ var _local1:TweensyTimeline; if (_timelines > 0){ _local1 = first; }; while (_local1) { _local1.stopAll(); _local1 = _local1.next; }; } public function dispose():void{ if (disposed){ return; }; disposed = true; stopAll(); first = null; last = null; onComplete = null; onCompleteParams = null; onUpdate = null; onUpdateParams = null; _timelines = 0; } public function fromTo(_arg1:Object, _arg2:Object, _arg3:Object, _arg4:Number=0.5, _arg5:Function=null, _arg6:Number=0, _arg7:Object=null, _arg8:Function=null, _arg9:Array=null):TweensyTimeline{ var _local10:TweensyTimeline = setup(_arg4, _arg5, _arg6, _arg8, _arg9); _local10.fromTo(_arg1, _arg2, _arg3, _arg7); return (add(_local10)); } private function update(_arg1:Event):void{ var _local3:TweensyTimeline; var _local2:TweensyTimeline = first; var _local4:Number = secondsPerFrame; if (refreshType == Tweensy.TIME){ _local4 = (getTimer() - time); time = (time + _local4); _local4 = (_local4 * 0.001); }; while (_local2) { _local3 = _local2.next; if (_local2.update(_local4)){ remove(_local2); }; _local2 = _local3; }; if (onUpdate != null){ onUpdate.apply(this, onUpdateParams); }; if (((!(hasTimelines)) && (!((onComplete == null))))){ onComplete.apply(this, onCompleteParams); }; } private function startUpdate():void{ time = getTimer(); frame.addEventListener(Event.ENTER_FRAME, update, false, 0, true); } public function get timelines():int{ return (_timelines); } function addInstance(_arg1:Object, _arg2:TweensyTimeline):void{ var _local4:TweensyTimeline; var _local5:int; var _local6:int; var _local3:Array = map[_arg1]; if (lazyMode){ if (_local3){ _local5 = (_local3.length - 1); _local6 = _local5; while (_local6 >= 0) { _local4 = _local3[_local6]; _local4.removeOverlap(_arg2); _local6--; }; }; }; if (!_local3){ _local3 = (map[_arg1] = []); }; _local3[_local3.length] = _arg2; } public function get hasTimelines():Boolean{ return ((_timelines > 0)); } public function getKeyframe(_arg1:Object, _arg2:int):Object{ var _local3:Array = keyframes[_arg1]; if (_local3){ return (_local3[_arg2]); }; return (null); } private function stopUpdate():void{ frame.removeEventListener(Event.ENTER_FRAME, update); } public function scaleTo(_arg1:Object, _arg2:Number, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); _local6.to(_arg1, {scaleX:_arg2, scaleY:_arg2}); add(_local6); return (_local6); } public function functionTo(_arg1:Object, _arg2:Object, _arg3:Function, _arg4:Number=0.5, _arg5:Function=null, _arg6:Number=0):TweensyTimeline{ var _local7:TweensyTimeline = setup(_arg4, _arg5, _arg6); _local7.to(_arg1, _arg2); _local7.onUpdate = _arg3; _local7.onUpdateParams = [_arg1]; add(_local7); return (_local7); } public function pause():void{ _paused = true; var _local1:TweensyTimeline = first; while (_local1) { _local1.pause(); _local1 = _local1.next; }; } public function soundTransformTo(_arg1:Object, _arg2:SoundTransform, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); if ((_arg1 is SoundChannel)){ _local6.to((_arg1 as SoundChannel).soundTransform, _arg2, _arg1); } else { _local6.to((_arg1 as Sprite).soundTransform, _arg2, _arg1); }; add(_local6); return (_local6); } public function alphaTo(_arg1:Object, _arg2:Number, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0):TweensyTimeline{ var _local6:TweensyTimeline = setup(_arg3, _arg4, _arg5); _local6.to(_arg1, {alpha:_arg2}); add(_local6); return (_local6); } public function to(_arg1:Object, _arg2:Object, _arg3:Number=0.5, _arg4:Function=null, _arg5:Number=0, _arg6:Object=null, _arg7:Function=null, _arg8:Array=null):TweensyTimeline{ var _local9:TweensyTimeline = setup(_arg3, _arg4, _arg5, _arg7, _arg8); _local9.to(_arg1, _arg2, _arg6); return (add(_local9)); } private function setup(_arg1:Number, _arg2:Function, _arg3:Number, _arg4:Function=null, _arg5:Array=null):TweensyTimeline{ var _local6:TweensyTimeline; if (useObjectPooling){ _local6 = pool.checkOut(); } else { _local6 = new TweensyTimeline(); }; _local6.manager = this; _local6.duration = _arg1; if (_arg2 != null){ _local6.ease = _arg2; }; _local6.delayStart = _arg3; _local6.onComplete = _arg4; _local6.onCompleteParams = _arg5; return (_local6); } public static function empty():void{ pool.empty(); map = new Dictionary(true); keyframes = new Dictionary(true); filters = new Dictionary(true); } } }//package com.flashdynamix.motionSection 24//TweensyTimeline (com.flashdynamix.motion.TweensyTimeline) package com.flashdynamix.motion { import com.flashdynamix.motion.plugins.*; public class TweensyTimeline { public var onRepeatParams:Array; public var smartRotate:Boolean;// = true public var onUpdate:Function; public var autoHide:Boolean;// = false private var _tweens:int;// = 0 private var list:Array; public var delayStart:Number;// = 0 private var disposed:Boolean;// = false public var repeatEase:Array; private var _time:Number;// = 0 var manager:TweensyGroup; public var onUpdateParams:Array; public var repeats:int;// = -1 public var repeatCount:int;// = 0 public var onComplete:Function; public var snapToClosest:Boolean;// = false private var _paused:Boolean;// = false var _onComplete:Function; public var delayEnd:Number;// = 0 public var onRepeat:Function; private var args:Array; public var onCompleteParams:Array; public var ease:Function; private var _duration:Number; public var repeatType:String; var previous:TweensyTimeline; var next:TweensyTimeline; private var _instances:Array; public static const LOOP:String = "loop"; public static const REPLAY:String = "replay"; public static const YOYO:String = "yoyo"; public static const NONE:String = null; public static var defaultTween:Function = easeOut; private static var defaultArgs:Array = [0, 0, 1, 0]; public function TweensyTimeline(){ ease = defaultTween; _instances = []; args = defaultArgs.concat(); super(); list = []; } public function stop(_arg1=null, ... _args):void{ var _local4:AbstractTween; var _local5:int; var _local3:Array = ((_arg1 is Array)) ? _arg1 : ((_arg1)==null) ? null : [_arg1]; _local5 = (_tweens - 1); while (_local5 >= 0) { _local4 = list[_local5]; if ((((_local3 == null)) || (!((_local3.indexOf(_local4.instance) == -1))))){ if (_args.length == 0){ _local4.stopAll(); } else { _local4.stop.apply(null, _args); }; if (!_local4.hasAnimations){ remove(_local4); list.splice(_local5, 1); }; }; _local5--; }; if (((!(hasTweens)) && (manager))){ manager.remove(this); }; } public function get instances():Array{ return (_instances); } private function doRepeat():void{ _time = 0; repeatCount++; if (repeatEase){ ease = repeatEase[(repeatCount % repeatEase.length)]; }; } public function get tweens():int{ return (_tweens); } public function get canRepeat():Boolean{ return (((!((repeatType == NONE))) && ((((repeats == -1)) || ((repeatCount < repeats)))))); } function removeAll():void{ var _local1:AbstractTween; for each (_local1 in list) { remove(_local1); }; list.length = 0; _instances.length = 0; } private function remove(_arg1:AbstractTween):void{ _arg1.clear(); TweensyPluginList.checkIn(_arg1); if (manager){ manager.removeInstance(_arg1.instance, this); }; _instances.splice(_instances.indexOf(_arg1.instance)); _tweens--; } public function get duration():Number{ return (_duration); } public function set time(_arg1:Number):void{ _time = _arg1; } function removeOverlap(_arg1:TweensyTimeline):void{ var _local2:int; var _local3:AbstractTween; var _local4:AbstractTween; if (((!((this == _arg1))) && (intersects(_arg1)))){ for each (_local3 in _arg1.list) { _local2 = (_tweens - 1); while (_local2 >= 0) { _local4 = list[_local2]; _local4.removeOverlap(_local3); if (!_local4.hasAnimations){ remove(_local4); list.splice(_local2, 1); }; _local2--; }; }; if (!hasTweens){ manager.remove(this); }; }; } public function updateTo(_arg1:Object, _arg2:Object):void{ var _local4:AbstractTween; var _local3:Number = ease.apply(null, args); for each (_local4 in list) { if (_local4.instance == _arg1){ _local4.updateTo(_local3, _arg2); }; }; } public function dispose():void{ if (disposed){ return; }; disposed = true; stopAll(); next = null; previous = null; args = null; list = null; manager = null; ease = null; repeatEase = null; onUpdate = null; onUpdateParams = null; onComplete = null; onCompleteParams = null; onRepeat = null; onRepeatParams = null; } public function set duration(_arg1:Number):void{ args[3] = _arg1; _duration = _arg1; } public function from(_arg1:Object, _arg2:Object, _arg3:Object=null):void{ var _local4:AbstractTween; var _local5:int; var _local6:int; if ((_arg1 is Array)){ _local5 = 0; _local6 = (_arg1 as Array).length; (_local5 < 0); while (_local5 < _local6) { if ((((_arg1[_local5] is Number)) || ((_arg1[_local5] is String)))){ if (!_local4){ _local4 = add(_arg1, _arg3); }; _local4.add(_local5.toString(), _arg2[_local5], true); } else { this.from(_arg1[_local5], _arg2, _arg3); }; _local5++; }; } else { _local4 = add(_arg1, _arg3); _local4.fromTarget(_arg2); _local4.apply(); }; } public function loop():void{ var _local1:AbstractTween; var _local2:Number; for each (_local1 in list) { _local1.swapToFrom(); }; _local2 = delayStart; delayStart = delayEnd; delayEnd = _local2; doRepeat(); } public function set easeParams(_arg1:Array):void{ args = args.slice(0, 4).concat(_arg1); } public function get hasTweens():Boolean{ return ((_tweens > 0)); } private function add(_arg1:Object, _arg2:Object=null):AbstractTween{ var _local3:AbstractTween = TweensyPluginList.checkOut(_arg1); _local3.timeline = this; _local3.construct(_arg1, _arg2); _instances.push(_local3.instance); var _local4 = _tweens++; list[_local4] = _local3; return (_local3); } public function get paused():Boolean{ return (_paused); } public function get position():Number{ return ((_time / totalDuration)); } public function yoyo():void{ var _local1:AbstractTween; for each (_local1 in list) { _local1.swapToFrom(); }; doRepeat(); } public function fromTo(_arg1:Object, _arg2:Object, _arg3:Object, _arg4:Object=null):void{ var _local5:AbstractTween; var _local6:int; var _local7:int; if ((_arg1 is Array)){ _local6 = 0; _local7 = (_arg1 as Array).length; (_local6 < 0); while (_local6 < _local7) { if ((((_arg1[_local6] is Number)) || ((_arg1[_local6] is String)))){ if (!_local5){ _local5 = add(_arg1, _arg4); }; _local5.add(_local6.toString(), _arg2[_local6], true); _local5.add(_local6.toString(), _arg3[_local6], false); } else { this.fromTo(_arg1[_local6], _arg2, _arg3, _arg4); }; _local6++; }; } else { _local5 = add(_arg1, _arg4); _local5.fromTarget(_arg2); _local5.toTarget(_arg3); _local5.apply(); }; } public function stopAll():void{ removeAll(); if (manager){ manager.remove(this); }; } public function update(_arg1:Number):Boolean{ var _local4:Number; var _local5:AbstractTween; var _local6:int; if (paused){ return (false); }; _time = (_time + _arg1); var _local2:Number = (_time - delayStart); var _local3:Boolean; if (_local2 > 0){ _local3 = finished; _local2 = ((_local2)>_duration) ? _duration : _local2; args[0] = _local2; _local4 = ease.apply(null, args); _local6 = 0; while (_local6 < _tweens) { _local5 = list[_local6]; _local5.update(_local4); _local6++; }; if (onUpdate != null){ onUpdate.apply(null, onUpdateParams); _local3 = finished; }; if (_local3){ if (canRepeat){ if (repeatType == YOYO){ yoyo(); } else { if (repeatType == REPLAY){ replay(); } else { if (repeatType == LOOP){ loop(); }; }; }; if (onRepeat != null){ onRepeat.apply(null, onRepeatParams); }; _local3 = finished; }; if (_local3){ if (onComplete != null){ onComplete.apply(null, onCompleteParams); }; _local3 = ((finished) && (!(canRepeat))); if (((_local3) && (!((_onComplete == null))))){ _onComplete(); }; }; }; }; return (_local3); } private function intersects(_arg1:TweensyTimeline):Boolean{ return ((_arg1.delayStart < (totalDuration - time))); } public function resume():void{ if (!paused){ return; }; _paused = false; } public function get playing():Boolean{ return ((((_time > delayStart)) && ((_time < delayEnd)))); } public function get time():Number{ return (_time); } public function set position(_arg1:Number):void{ var _local2:Number = ((_arg1 * totalDuration) - _time); update(_local2); } function clear():void{ removeAll(); next = null; previous = null; args = defaultArgs.concat(); manager = null; onUpdate = null; onUpdateParams = null; onComplete = null; onCompleteParams = null; onRepeat = null; onRepeatParams = null; _onComplete = null; ease = defaultTween; delayStart = 0; delayEnd = 0; repeatType = NONE; repeats = -1; repeatEase = null; disposed = false; _time = 0; _paused = false; repeatCount = 0; } public function replay():void{ var _local1:AbstractTween; for each (_local1 in list) { _local1.update(0); }; doRepeat(); } public function toString():String{ return ((((("TweensyTimeline " + Tweensy.version) + " {tweens:") + _tweens) + "}")); } public function get finished():Boolean{ return ((_time >= totalDuration)); } public function pause():void{ if (paused){ return; }; _paused = true; } public function get totalDuration():Number{ return (((delayStart + _duration) + delayEnd)); } public function to(_arg1:Object, _arg2:Object, _arg3:Object=null):void{ var _local4:AbstractTween; var _local5:int; var _local6:int; if ((_arg1 is Array)){ _local5 = 0; _local6 = (_arg1 as Array).length; (_local5 < 0); while (_local5 < _local6) { if ((((_arg1[_local5] is Number)) || ((_arg1[_local5] is String)))){ if (!_local4){ _local4 = add(_arg1, _arg3); }; _local4.add(_local5.toString(), _arg2[_local5], false); } else { this.to(_arg1[_local5], _arg2, _arg3); }; _local5++; }; } else { _local4 = add(_arg1, _arg3); _local4.toTarget(_arg2); }; } private static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function empty():void{ TweensyPluginList.empty(); } } }//package com.flashdynamix.motionSection 25//MultiTypeObjectPool (com.flashdynamix.utils.MultiTypeObjectPool) package com.flashdynamix.utils { import flash.utils.*; public class MultiTypeObjectPool { private var disposed:Boolean;// = false public var pools:Dictionary; public function MultiTypeObjectPool(... _args){ pools = new Dictionary(true); var _local2:int = _args.length; var _local3:int; while (_local3 < _local2) { add(_args[_local3]); _local3++; }; } public function add(_arg1:Class):void{ pools[_arg1] = new ObjectPool(_arg1); } public function empty():void{ var _local1:ObjectPool; for each (_local1 in pools) { _local1.empty(); }; } public function checkOut(_arg1:Class){ return (ObjectPool(pools[_arg1]).checkOut()); } public function checkIn(_arg1:Object):void{ ObjectPool(pools[_arg1.constructor]).checkIn(_arg1); } public function dispose():void{ var _local1:ObjectPool; if (disposed){ return; }; disposed = true; for each (_local1 in pools) { _local1.dispose(); delete pools[_local1]; }; pools = null; } } }//package com.flashdynamix.utilsSection 26//ObjectPool (com.flashdynamix.utils.ObjectPool) package com.flashdynamix.utils { public class ObjectPool { public var size:int;// = 0 public var Create:Class; private var disposed:Boolean;// = false public var length:int;// = 0 public var minSize:int; private var list:Array; public function ObjectPool(_arg1:Class, _arg2:int=10){ list = []; super(); this.Create = _arg1; this.minSize = _arg2; var _local3:int; while (_local3 < _arg2) { add(); _local3++; }; } public function add():void{ var _local1 = length++; list[_local1] = new Create(); size++; } public function empty():void{ size = (length = (list.length = 0)); } public function checkIn(_arg1):void{ var _local2 = length++; list[_local2] = _arg1; } public function checkOut(){ if (length == 0){ size++; return (new Create()); }; return (list[--length]); } public function dispose():void{ if (disposed){ return; }; disposed = true; Create = null; list = null; } } }//package com.flashdynamix.utilsSection 27//Rnd (com.gskinner.utils.Rnd) package com.gskinner.utils { public class Rnd { public function Rnd(_arg1:uint=0){ throw (new Error("the Rnd class cannot be instantiated")); } public static function random():Number{ return (Math.random()); } public static function bit(_arg1:Number=0.5):int{ return (((random())<_arg1) ? 1 : 0); } public static function boolean(_arg1:Number=0.5):Boolean{ return ((random() < _arg1)); } public static function float(_arg1:Number, _arg2:Number=NaN):Number{ if (isNaN(_arg2)){ _arg2 = _arg1; _arg1 = 0; }; return (((random() * (_arg2 - _arg1)) + _arg1)); } public static function sign(_arg1:Number=0.5):int{ return (((random())<_arg1) ? 1 : -1); } public static function integer(_arg1:Number, _arg2:Number=NaN):int{ if (isNaN(_arg2)){ _arg2 = _arg1; _arg1 = 0; }; return (Math.floor(float(_arg1, _arg2))); } } }//package com.gskinner.utilsSection 28//ButtonNutClone (editor.ButtonNutClone) package editor { import flash.display.*; public class ButtonNutClone extends EditorButton { public function ButtonNutClone(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemNutClone; } override public function getDisplayObject():DisplayObject{ var _local1:Bitmap = new Assets.NutClone(); return (_local1); } } }//package editorSection 29//ButtonNutFire (editor.ButtonNutFire) package editor { import flash.display.*; public class ButtonNutFire extends EditorButton { public function ButtonNutFire(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemNutFire; } override public function getDisplayObject():DisplayObject{ var _local1:Bitmap = new Assets.NutFirePlace(); return (_local1); } } }//package editorSection 30//ButtonNutGem (editor.ButtonNutGem) package editor { import flash.display.*; import flash.geom.*; public class ButtonNutGem extends EditorButton { public function ButtonNutGem(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemNutGem; } override public function getDisplayObject():DisplayObject{ var _local1:Bitmap = new Assets.NutGem(); var _local2:ColorTransform = new ColorTransform(); _local2.blueOffset = 155; _local1.transform.colorTransform = _local2; return (_local1); } } }//package editorSection 31//ButtonNutNormal (editor.ButtonNutNormal) package editor { import flash.display.*; public class ButtonNutNormal extends EditorButton { public function ButtonNutNormal(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemNutNormal; } override public function getDisplayObject():DisplayObject{ return (new Assets.NutNormal()); } } }//package editorSection 32//ButtonRubberPeg (editor.ButtonRubberPeg) package editor { import flash.display.*; public class ButtonRubberPeg extends EditorButton { public function ButtonRubberPeg(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemRubberPeg; } override public function getDisplayObject():DisplayObject{ var _local1:Bitmap = new Assets.RubberBall(); return (_local1); } } }//package editorSection 33//ButtonRubberWall (editor.ButtonRubberWall) package editor { import flash.display.*; public class ButtonRubberWall extends EditorButton { public function ButtonRubberWall(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemRubberWall; } override public function getDisplayObject():DisplayObject{ var _local1:Sprite = new Assets.RubberWall1(); _local1.width = 20; return (_local1); } } }//package editorSection 34//ButtonRubberWallMov (editor.ButtonRubberWallMov) package editor { import flash.display.*; public class ButtonRubberWallMov extends EditorButton { public function ButtonRubberWallMov(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemRubberWallMov; } override public function getDisplayObject():DisplayObject{ var _local1:Sprite = new Sprite(); var _local2:Sprite = new Assets.RubberWall1(); _local2.width = 20; _local1.addChild(_local2); var _local3:Bitmap = new Assets.MoveArrow(); _local3.x = (_local1.width - _local3.width); _local3.y = (_local1.height - _local3.height); _local1.addChild(_local3); return (_local1); } } }//package editorSection 35//ButtonWoodPeg (editor.ButtonWoodPeg) package editor { import flash.display.*; public class ButtonWoodPeg extends EditorButton { public function ButtonWoodPeg(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemWoodPeg; } override public function getDisplayObject():DisplayObject{ var _local1:Bitmap = new Assets.WoodPeg(); return (_local1); } } }//package editorSection 36//ButtonWoodSwitch (editor.ButtonWoodSwitch) package editor { import flash.display.*; public class ButtonWoodSwitch extends EditorButton { public function ButtonWoodSwitch(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemWoodSwitch; } override public function getDisplayObject():DisplayObject{ var _local1:Sprite = Main.assets.woodWall1; _local1.width = 20; var _local2:Sprite = new Assets.Switch(); _local2.scaleX = 1; _local2.scaleY = 0.3; _local2.x = 58; _local2.y = (_local1.height - 1); _local1.addChild(_local2); return (_local1); } } }//package editorSection 37//ButtonWoodWall (editor.ButtonWoodWall) package editor { import flash.display.*; public class ButtonWoodWall extends EditorButton { public function ButtonWoodWall(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemWoodWall; } override public function getDisplayObject():DisplayObject{ var _local1:Sprite = Main.assets.woodWall1; _local1.width = 20; return (_local1); } } }//package editorSection 38//ButtonWoodWallMov (editor.ButtonWoodWallMov) package editor { import flash.display.*; public class ButtonWoodWallMov extends EditorButton { public function ButtonWoodWallMov(_arg1:LevelEditor):void{ super(_arg1); _itemClass = ItemWoodWallMov; } override public function getDisplayObject():DisplayObject{ var _local1:Sprite = new Sprite(); var _local2:Sprite = Main.assets.woodWall1; _local2.width = 20; _local1.addChild(_local2); var _local3:Bitmap = new Assets.MoveArrow(); _local3.x = (_local1.width - _local3.width); _local3.y = (_local1.height - _local3.height); _local1.addChild(_local3); return (_local1); } } }//package editorSection 39//DisplayItem (editor.DisplayItem) package editor { import flash.display.*; public class DisplayItem extends Sprite { private var _data:Object; private var _img:DisplayObject; private var _type:String; public function DisplayItem(_arg1:DisplayObject):void{ _img = _arg1; addChild(_arg1); } public function destroy():void{ } public function get type():String{ return (_type); } public function set data(_arg1:Object):void{ _data = _arg1; } public function get data():Object{ return (_data); } } }//package editorSection 40//EditorButton (editor.EditorButton) package editor { import flash.events.*; import flash.display.*; public class EditorButton extends Sprite { protected var _selected:Boolean; protected var _display:DisplayObject; protected var _itemClass:Class; protected var _editor:LevelEditor; protected var _type:String; public function EditorButton(_arg1:LevelEditor):void{ _editor = _arg1; mouseChildren = false; draw(); } public function draw():void{ _display = getDisplayObject(); addChild(_display); this.buttonMode = true; this.addEventListener(MouseEvent.CLICK, onButtonClick); } public function destroy():void{ this.removeEventListener(MouseEvent.CLICK, onButtonClick); _itemClass = null; _display = null; _editor = null; } public function getDisplayObject():DisplayObject{ return (new Sprite()); } public function getItemClass():Class{ return (_itemClass); } public function unSelect():void{ _selected = false; graphics.clear(); } public function onButtonClick(_arg1:Event=null):void{ if (_arg1){ _arg1.stopPropagation(); }; if (_selected){ unSelect(); _editor.removeCurrentItem(); } else { select(); _editor.selectItem(getItemClass()); }; } public function get type():String{ return (_type); } public function get selected():Boolean{ return (_selected); } public function select():void{ _selected = true; graphics.clear(); graphics.lineStyle(3, 0xAA3300); graphics.drawRect(0, 0, width, height); } } }//package editorSection 41//EditorButtonPanel (editor.EditorButtonPanel) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import com.gskinner.utils.*; import flash.ui.*; public class EditorButtonPanel extends Sprite { private var _buttons:Array; private var _panel:Sprite; private var _open:Boolean; private var _editor:LevelEditor; private var _button:Sprite; private static const TEXT_PADDING_VERT:int = 10; private static const BUTTON_WIDTH:int = 30; private static const TEXT_PADDING_HORZ:int = 20; public function EditorButtonPanel(_arg1:LevelEditor, _arg2:Number, _arg3:Number, _arg4:String):void{ _editor = _arg1; _open = false; _buttons = []; draw(_arg2, _arg3, _arg4); } public function destroy():void{ var _local1:EditorButton; _editor = null; _panel = null; _button = null; for each (_local1 in _buttons) { _local1.destroy(); _local1.removeEventListener(MouseEvent.CLICK, onItemButtonClick); }; _buttons = null; this.parent.removeChild(this); } public function onItemButtonClick(_arg1:MouseEvent):void{ var _local2:EditorButton; for each (_local2 in _buttons) { if (_local2 != _arg1.target){ _local2.unSelect(); }; }; } public function clickButton(_arg1:int):void{ if (_arg1 == 0){ return; }; _arg1--; var _local2:EditorButton = _buttons[_arg1]; if (!_local2){ return; }; _local2.onButtonClick(); } public function get open():Boolean{ return (_open); } public function draw(_arg1:Number, _arg2:Number, _arg3:String):void{ var _local4:TextField = new TextField(); _local4.text = _arg3; var _local5:TextFormat = new TextFormat(); _local5.bold = true; _local5.align = "center"; _local4.setTextFormat(_local5); _button = new Sprite(); _button.buttonMode = true; _button.graphics.lineStyle(1, 0xFFFFFF); _button.graphics.beginFill(11154227); _button.graphics.drawRect(0, 0, (_local4.textWidth + (TEXT_PADDING_HORZ * 2)), (_local4.textHeight + (TEXT_PADDING_VERT * 2))); _local4.x = 0; _local4.y = TEXT_PADDING_VERT; _local4.width = _button.width; _local4.height = _local4.textHeight; _button.addChild(_local4); _button.addEventListener(MouseEvent.CLICK, onButtonClick); addChild(_button); _panel = new Sprite(); _panel.visible = false; _panel.y = 30; addChild(_panel); this.x = _arg1; this.y = _arg2; _editor.addChild(this); } public function addButton(_arg1:Sprite):void{ _buttons.push(_arg1); _arg1.y = 0; _arg1.x = ((_buttons.length - 1) * BUTTON_WIDTH); _panel.addChild(_arg1); _arg1.addEventListener(MouseEvent.CLICK, onItemButtonClick, false, 0, true); } public function onButtonClick(_arg1:Event):void{ _arg1.stopPropagation(); if (_open){ closePanel(); } else { openPanel(); }; } public function closePanel():void{ var _local1:EditorButton; _open = false; _panel.visible = false; for each (_local1 in _buttons) { _local1.unSelect(); }; } public function openPanel():void{ _editor.closeAllPanels(); _open = true; _panel.visible = true; } } }//package editorSection 42//EditorItem (editor.EditorItem) package editor { import flash.events.*; import flash.display.*; import flash.filters.*; public class EditorItem extends Sprite { protected var _stage:int; protected var _editor:LevelEditor; protected var _stageCount:int; protected var _maxStage:int; protected var _pickedUp:Boolean; protected var _placed:Boolean; protected var _icon:DisplayObject; protected var _image:Class; protected var _number:int; protected var _type:String; protected var _canvas:DisplayObjectContainer; protected var _selected:Boolean; public static const WALL_TRIGGER:String = "wtr"; public static const WALL_RUBBER:String = "wrr"; public static const NUT_FIRE:String = "nf"; public static const NUT_SPAWN:String = "ns"; public static const WALL_WOOD:String = "wwd"; public static const WALL_WOOD_MOV:String = "wwdm"; public static const NUT_NORMAL:String = "nn"; public static const PEG_WOOD:String = "pr"; public static const PEG_RUBBER:String = "pw"; public function EditorItem(_arg1:LevelEditor, _arg2:String=null):void{ _stage = 0; _icon = new Sprite(); _maxStage = 1; _editor = _arg1; _number = 1; _placed = false; _pickedUp = false; addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); addEventListener(MouseEvent.CLICK, onMouseClick); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function get icon():DisplayObject{ return (_icon); } public function destroy():void{ _editor = null; _icon = null; _canvas = null; if (this.parent){ parent.removeChild(this); }; removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut); removeEventListener(MouseEvent.CLICK, onMouseClick); removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); removeEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function onEnterFrame(_arg1:Event):void{ } protected function onAddedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } public function get currentStage():int{ return (_stage); } public function get number():int{ return (_number); } public function addToBoard(_arg1:Number, _arg2:Number):void{ _editor.addChild(this); } protected function onMouseMove(_arg1:MouseEvent):void{ } protected function onMouseOver(_arg1:MouseEvent):void{ if (((_editor.currentItem) || (_selected))){ return; }; filters = [new GlowFilter(0xFF00FF, 1, 10, 10)]; } protected function setItem():void{ _placed = true; } protected function onMouseClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); } public function onStageMouseClick(_arg1:MouseEvent):void{ } protected function onMouseOut(_arg1:MouseEvent):void{ if (!_selected){ filters = []; }; } public function setStage(_arg1:int):void{ _stage = _arg1; if (_stage > _maxStage){ _stage = _maxStage; }; } } }//package editorSection 43//ItemNutClone (editor.ItemNutClone) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemNutClone extends ItemNutNormal { public static const NUT_NUMBER:int = 2; public function ItemNutClone(_arg1:LevelEditor):void{ super(_arg1); _icon = new Assets.NutClone(); _image = Assets.NutClone; _number = NUT_NUMBER; } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local4:Array; var _local5:int; var _local6:ItemNutClone; var _local3:int; for each (_local4 in _arg2.nuts) { for each (_local5 in _local4) { if (_local5 == NUT_NUMBER){ _local6 = new ItemNutClone(_arg1); _local6.index = _local3; _local6.setItem(); }; _local3++; }; }; } } }//package editorSection 44//ItemNutFire (editor.ItemNutFire) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemNutFire extends ItemNutNormal { public static const NUT_NUMBER:int = 3; public function ItemNutFire(_arg1:LevelEditor):void{ super(_arg1); _icon = new Assets.NutFirePlace(); _image = Assets.NutFirePlace; _number = NUT_NUMBER; } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local4:Array; var _local5:int; var _local6:ItemNutFire; var _local3:int; for each (_local4 in _arg2.nuts) { for each (_local5 in _local4) { if (_local5 == NUT_NUMBER){ _local6 = new ItemNutFire(_arg1); _local6.index = _local3; _local6.setItem(); }; _local3++; }; }; } } }//package editorSection 45//ItemNutGem (editor.ItemNutGem) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemNutGem extends ItemNutNormal { public static const NUT_NUMBER:int = 4; public function ItemNutGem(_arg1:LevelEditor):void{ super(_arg1); _icon = new Assets.NutGem(); _image = Assets.NutGem; _number = NUT_NUMBER; } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local4:Array; var _local5:int; var _local6:ItemNutGem; var _local3:int; for each (_local4 in _arg2.nuts) { for each (_local5 in _local4) { if (_local5 == NUT_NUMBER){ _local6 = new ItemNutGem(_arg1); _local6.index = _local3; _local6.setItem(); }; _local3++; }; }; } } }//package editorSection 46//ItemNutNormal (editor.ItemNutNormal) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemNutNormal extends EditorItem { private var _position:Point; private var _index:Number; public static const NUT_NUMBER:int = 1; public function ItemNutNormal(_arg1:LevelEditor):void{ super(_arg1); _icon = new Assets.NutNormal(); _image = Assets.NutNormal; _maxStage = 1; _number = NUT_NUMBER; } override public function addToBoard(_arg1:Number, _arg2:Number):void{ super.addToBoard(_arg1, _arg2); if (_editor.isPointInGrid(_arg1, _arg2)){ _index = _editor.indexFromPoint(_arg1, _arg2); _position = new Point(_arg1, _arg2); setItem(); setStage(1); }; } override public function onStageMouseClick(_arg1:MouseEvent):void{ if (_stage == 0){ addToBoard(_arg1.stageX, _arg1.stageY); }; } public function set index(_arg1:int):void{ _index = _arg1; } override protected function setItem():void{ _editor.nuts[_index] = _number; var _local1:DisplayObject = new _image(); _local1.x = (_local1.x - (_local1.width * 0.5)); _local1.y = (_local1.y - (_local1.height * 0.5)); addChild(_local1); var _local2:Point = _editor.centerOfGridFromIndex(_index); this.x = (_local2.x + Game.GRID_X); this.y = (_local2.y + Game.GRID_Y); _editor.addItem(this); } override protected function onMouseClick(_arg1:MouseEvent):void{ super.onMouseClick(_arg1); if (!this.parent){ return; }; _editor.items.splice(_editor.items.indexOf(this), 1); this.parent.removeChild(this); _editor.nuts[_index] = 0; } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local4:Array; var _local5:int; var _local6:ItemNutNormal; var _local3:int; for each (_local4 in _arg2.nuts) { for each (_local5 in _local4) { if (_local5 == NUT_NUMBER){ _local6 = new ItemNutNormal(_arg1); _local6.index = _local3; _local6.setItem(); }; _local3++; }; }; } } }//package editorSection 47//ItemRubberPeg (editor.ItemRubberPeg) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemRubberPeg extends EditorItem { private var _position:Point; private var _index:Number; public static const PEG_NUMBER:int = 9; public function ItemRubberPeg(_arg1:LevelEditor):void{ super(_arg1, EditorItem.PEG_RUBBER); _icon = new Assets.RubberBall(); _maxStage = 1; _image = Assets.RubberBall; _number = PEG_NUMBER; } override public function addToBoard(_arg1:Number, _arg2:Number):void{ super.addToBoard(_arg1, _arg2); if (_editor.isPointInGrid(_arg1, _arg2)){ _index = _editor.indexFromPoint(_arg1, _arg2); _position = new Point(_arg1, _arg2); setItem(); setStage(1); }; } override public function onStageMouseClick(_arg1:MouseEvent):void{ if (_stage == 0){ addToBoard(_arg1.stageX, _arg1.stageY); }; } public function set index(_arg1:int):void{ _index = _arg1; } override protected function setItem():void{ _editor.nuts[_index] = _number; var _local1:DisplayObject = new _image(); _local1.x = (_local1.x - (_local1.width * 0.5)); _local1.y = (_local1.y - (_local1.height * 0.5)); addChild(_local1); var _local2:Point = _editor.centerOfGridFromIndex(_index); this.x = (_local2.x + Game.GRID_X); this.y = (_local2.y + Game.GRID_Y); _editor.addItem(this); } override protected function onMouseClick(_arg1:MouseEvent):void{ super.onMouseClick(_arg1); if (!this.parent){ return; }; _editor.items.splice(_editor.items.indexOf(this), 1); this.parent.removeChild(this); _editor.nuts[_index] = 0; } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local4:Array; var _local5:int; var _local6:ItemRubberPeg; var _local3:int; for each (_local4 in _arg2.nuts) { for each (_local5 in _local4) { if (_local5 == PEG_NUMBER){ _local6 = new ItemRubberPeg(_arg1); _local6.index = _local3; _local6.setItem(); }; _local3++; }; }; } } }//package editorSection 48//ItemRubberWall (editor.ItemRubberWall) package editor { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemRubberWall extends ItemWoodWall { public static const WALL_TYPE:int = 4; public function ItemRubberWall(_arg1:LevelEditor):void{ super(_arg1); var _local2:Sprite = new Assets.RubberWall1(); _local2.width = 20; _icon = _local2; _image = Assets.RubberWall1; _number = WALL_TYPE; _startPoint = new Point(0, 0); _endPoint = new Point(0, 0); } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local3:Object; var _local4:ItemRubberWall; for each (_local3 in _arg2.walls) { if (_local3.type == WALL_TYPE){ _local4 = new ItemRubberWall(_arg1); _local4.startPoint = new Point(_local3.start.x, _local3.start.y); _local4.endPoint = new Point(_local3.end.x, _local3.end.y); _local4.createWallDisplay(); _local4.updateWallDisplay(); _local4.setItem(); }; }; } } }//package editorSection 49//ItemRubberWallMov (editor.ItemRubberWallMov) package editor { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemRubberWallMov extends ItemWoodWallMov { public static const WALL_TYPE:int = 5; public function ItemRubberWallMov(_arg1:LevelEditor):void{ super(_arg1); _number = WALL_TYPE; _image = Assets.RubberWall1; var _local2:Sprite = new Sprite(); var _local3:Sprite = new Assets.RubberWall1(); _local3.width = 20; _local2.addChild(_local3); var _local4:Bitmap = new Assets.MoveArrow(); _local4.x = (_local2.width - _local4.width); _local4.y = (_local2.height - _local4.height); _local2.addChild(_local4); _icon = _local2; } override public function createShadowWall():void{ var _local1:Sprite = new Assets.RubberWall1(); var _local2:Number = _wallLine.rotation; _wallLine.rotation = 0; _local1.width = _wallLine.width; _wallLine.rotation = _local2; _local1.x = (_local1.x - (_local1.width * 0.5)); _local1.y = (_local1.y - (_local1.height * 0.5)); _shadowWall = new Sprite(); _shadowWall.addChild(_local1); _shadowWall.rotation = _local2; _shadowWall.alpha = 0.5; _shadowWall.mouseEnabled = false; _shadowWall.mouseChildren = false; addChild(_shadowWall); } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local3:Object; var _local4:ItemRubberWallMov; for each (_local3 in _arg2.walls) { if ((((_local3.type == WALL_TYPE)) && (!((_local3.animateTo == null))))){ _local4 = new ItemRubberWallMov(_arg1); _local4.startPoint = new Point(_local3.start.x, _local3.start.y); _local4.endPoint = new Point(_local3.end.x, _local3.end.y); _local4.movePoint = new Point(_local3.animateTo.x, _local3.animateTo.y); _local4.createWallDisplay(); _local4.updateWallDisplay(); _local4.createShadowWall(); _local4.updateShadow(_local4.movePoint.x, _local4.movePoint.y); _local4.wallLine.alpha = 1; _local4.setItem(); }; }; } } }//package editorSection 50//ItemWoodPeg (editor.ItemWoodPeg) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemWoodPeg extends ItemRubberPeg { public static const PEG_NUMBER:int = 8; public function ItemWoodPeg(_arg1:LevelEditor):void{ super(_arg1); _icon = new Assets.WoodPeg(); _maxStage = 1; _number = PEG_NUMBER; _image = Assets.WoodPeg; } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local4:Array; var _local5:int; var _local6:ItemWoodPeg; var _local3:int; for each (_local4 in _arg2.nuts) { for each (_local5 in _local4) { if (_local5 == PEG_NUMBER){ _local6 = new ItemWoodPeg(_arg1); _local6.index = _local3; _local6.setItem(); }; _local3++; }; }; } } }//package editorSection 51//ItemWoodSwitch (editor.ItemWoodSwitch) package editor { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemWoodSwitch extends ItemWoodWallMov { protected var _isRotateRight:Boolean; protected var _isRotateLeft:Boolean; protected var _switchDirection:String; protected var _switch:Sprite; protected var _switchPoint:Point; private static const POINT_RADIUS:int = 5; public static const WALL_TYPE:int = 3; public function ItemWoodSwitch(_arg1:LevelEditor):void{ super(_arg1); _maxStage = 4; _number = WALL_TYPE; _switchPoint = new Point(0, 0); _switchDirection = "left"; mouseChildren = false; mouseEnabled = false; _switch = new Sprite(); var _local2:Sprite = new Sprite(); var _local3:Sprite = Main.assets.woodWall1; _local3.width = 20; _local2.addChild(_local3); var _local4:Bitmap = new Assets.MoveArrow(); _local4.x = (_local2.width - _local4.width); _local4.y = (_local2.height - _local4.height); _local4.rotation = -90; _local2.addChild(_local4); _icon = _local2; } override public function destroy():void{ super.destroy(); _switch = null; if (stage){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyReleased); }; } public function updateSwitch(_arg1:Number, _arg2:Number):void{ _switch.x = _arg1; _switch.y = _arg2; } public function set switchDirection(_arg1:String):void{ _switchDirection = _arg1; } override public function onStageMouseClick(_arg1:MouseEvent):void{ trace(("on mouse stage click: " + _stage)); if (_stage == 0){ setStage(1); addToBoard(_arg1.stageX, _arg1.stageY); _endPickedUp = true; pickUp(); } else { if (_stage == 1){ setStage(2); putDown(); createShadowWall(); } else { if (_stage == 2){ setStage(3); _movePoint = new Point(_arg1.stageX, _arg1.stageY); createSwitch(); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyReleased); } else { if (_stage == 3){ setStage(4); _switchPoint = new Point(_arg1.stageX, _arg1.stageY); setItem(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyReleased); }; }; }; }; } private function onKeyReleased(_arg1:KeyboardEvent):void{ _isRotateRight = false; _isRotateLeft = false; } private function onKeyPressed(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == KeyCode.Z){ _isRotateLeft = true; _isRotateRight = false; } else { if (_arg1.keyCode == KeyCode.X){ _isRotateRight = true; _isRotateLeft = false; }; }; } public function get switchDirection():String{ return (_switchDirection); } override protected function onEnterFrame(_arg1:Event):void{ super.onEnterFrame(_arg1); if (_stage == 2){ updateShadow(_editor.stage.mouseX, _editor.stage.mouseY); } else { if (_stage == 3){ updateSwitch(_editor.stage.mouseX, _editor.stage.mouseY); if (_isRotateRight){ _switch.rotation = (_switch.rotation + 1); }; if (_isRotateLeft){ _switch.rotation = (_switch.rotation - 1); }; }; }; } override protected function setItem():void{ _data = new Object(); _data.type = _number; _data.start = _startPoint; _data.end = _endPoint; _data.moveTo = _movePoint; _data.trigger = {x:_switchPoint.x, y:_switchPoint.y, rotation:_switch.rotation}; _editor.walls.push(_data); _editor.addItem(this); } public function createSwitch():void{ _switch = new Assets.Switch(); _switch.scaleX = 0.7; _switch.scaleY = _switch.scaleX; var _local1:Sprite = (_switch.getChildByName("handle") as Sprite); _local1.rotation = -25; addChild(_switch); switch (_switchDirection){ case "left": _switch.rotation = -90; break; case "left": _switch.rotation = 90; break; case "down": _switch.rotation = -180; break; }; } public function set switchPoint(_arg1:Point):void{ _switchPoint = _arg1; } public function get switchSprite():Sprite{ return (_switch); } public function get switchPoint():Point{ return (_switchPoint); } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local3:Object; var _local4:ItemWoodSwitch; for each (_local3 in _arg2.walls) { if (_local3.type == WALL_TYPE){ _local4 = new ItemWoodSwitch(_arg1); _local4.startPoint = new Point(_local3.start.x, _local3.start.y); _local4.endPoint = new Point(_local3.end.x, _local3.end.y); _local4.movePoint = new Point(_local3.moveTo.x, _local3.moveTo.y); _local4.createWallDisplay(); _local4.updateWallDisplay(); _local4.createShadowWall(); _local4.updateShadow(_local4.movePoint.x, _local4.movePoint.y); _local4.wallLine.alpha = 1; _local4.switchPoint = new Point(_local3.trigger.x, _local3.trigger.y); _local4.createSwitch(); _local4.switchSprite.rotation = _local3.trigger.rotation; _local4.updateSwitch(_local4.switchPoint.x, _local4.switchPoint.y); _local4.setItem(); }; }; } } }//package editorSection 52//ItemWoodWall (editor.ItemWoodWall) package editor { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemWoodWall extends EditorItem { protected var _data:Object; protected var _endCircle:Sprite; protected var _startCircle:Sprite; protected var _endPoint:Point; protected var _startPoint:Point; protected var _endPickedUp:Boolean; protected var _wallLine:Sprite; protected var _startPickedUp:Boolean; private static const POINT_RADIUS:int = 5; public static const WALL_TYPE:int = 1; public function ItemWoodWall(_arg1:LevelEditor):void{ super(_arg1); var _local2:Sprite = Main.assets.woodWall1; _local2.width = 20; _icon = _local2; _image = Assets.WoodWall1; _maxStage = 2; _number = WALL_TYPE; _startPoint = new Point(0, 0); _endPoint = new Point(0, 0); createEndPoints(); } override public function destroy():void{ trace("item wood wall destroy"); super.destroy(); removeEventListener(Event.ENTER_FRAME, onEnterFrame); } public function createEndPoints():void{ _endCircle = new Sprite(); _endCircle.graphics.beginFill(0xFF00FF); _endCircle.graphics.drawCircle(0, 0, POINT_RADIUS); _endCircle.x = _endPoint.x; _endCircle.y = _endPoint.y; _endCircle.visible = false; _endCircle.mouseEnabled = false; addChild(_endCircle); _startCircle = new Sprite(); _startCircle.graphics.beginFill(0xFF00FF); _startCircle.graphics.drawCircle(0, 0, POINT_RADIUS); _startCircle.x = _startPoint.x; _startCircle.y = _startPoint.y; _startCircle.visible = false; _startCircle.mouseEnabled = false; addChild(_startCircle); } public function onSelectMouseClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); if (((((!(_pickedUp)) && ((Math.abs((_arg1.stageX - _endPoint.x)) <= 25)))) && ((Math.abs((_arg1.stageY - _endPoint.y)) <= 25)))){ _endPickedUp = true; _startPickedUp = false; pickUp(); } else { if (((((!(_pickedUp)) && ((Math.abs((_arg1.stageX - _startPoint.x)) <= 25)))) && ((Math.abs((_arg1.stageY - _startPoint.y)) <= 25)))){ _endPickedUp = false; _startPickedUp = true; pickUp(); } else { if (_pickedUp){ _data.start = {x:_startPoint.x, y:_startPoint.y}; _data.end = {x:_endPoint.x, y:_endPoint.y}; putDown(); filters = []; _endCircle.visible = false; _startCircle.visible = false; _selected = false; _editor.selectedItem = null; stage.removeEventListener(MouseEvent.CLICK, onSelectMouseClick); }; }; }; } override public function addToBoard(_arg1:Number, _arg2:Number):void{ super.addToBoard(_arg1, _arg2); _startPoint = new Point(Math.round(_arg1), Math.round(_arg2)); createWallDisplay(); } public function updateWallDisplay():void{ var _local1:Number = Utility.rotationOfLine(_startPoint, _endPoint); _wallLine.rotation = 0; _wallLine.width = Utility.distanceBetweenPoints(_startPoint, _endPoint); _wallLine.x = _startPoint.x; _wallLine.y = _startPoint.y; _wallLine.rotation = _local1; } protected function putDown():void{ trace("set item down"); _wallLine.alpha = 1; _pickedUp = false; _startCircle.x = _startPoint.x; _startCircle.y = _startPoint.y; _endCircle.x = _endPoint.x; _endCircle.y = _endPoint.y; _startPickedUp = false; _endPickedUp = false; } override protected function setItem():void{ _data = new Object(); _data.type = _number; _data.start = _startPoint; _data.end = _endPoint; _editor.walls.push(_data); _editor.addItem(this); } public function set startPoint(_arg1:Point):void{ _startPoint = _arg1; } public function get wallLine():Sprite{ return (_wallLine); } override protected function onMouseClick(_arg1:MouseEvent):void{ if (((((((!(this.parent)) || (_pickedUp))) || (_editor.currentItem))) || (_editor.selectedItem))){ return; }; if (!_selected){ _arg1.stopPropagation(); _endCircle.visible = true; _startCircle.visible = true; _selected = true; stage.addEventListener(MouseEvent.CLICK, onSelectMouseClick); _editor.selectedItem = this; }; } protected function pickUp():void{ trace("pick item up"); _wallLine.alpha = 0.5; _startCircle.visible = false; _endCircle.visible = false; _pickedUp = true; } override public function onStageMouseClick(_arg1:MouseEvent):void{ super.onStageMouseClick(_arg1); trace(("on mouse stage click: " + _stage)); if (_stage == 0){ setStage(1); addToBoard(_arg1.stageX, _arg1.stageY); _endPickedUp = true; pickUp(); } else { if (_stage == 1){ setStage(2); setItem(); putDown(); }; }; } public function set endPoint(_arg1:Point):void{ _endPoint = _arg1; } override protected function onEnterFrame(_arg1:Event):void{ if (_startPickedUp){ _startPoint.x = _editor.stage.mouseX; _startPoint.y = _editor.stage.mouseY; updateWallDisplay(); } else { if (_endPickedUp){ _endPoint.x = _editor.stage.mouseX; _endPoint.y = _editor.stage.mouseY; updateWallDisplay(); }; }; } public function createWallDisplay():void{ var _local1:Sprite; _wallLine = new Sprite(); _local1 = new _image(); _local1.x = 0; _local1.y = (-(_local1.height) * 0.5); _wallLine.addChild(_local1); _wallLine.x = _startPoint.x; _wallLine.y = _startPoint.y; _wallLine.width = 0; _wallLine.alpha = 1; addChild(_wallLine); } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local3:Object; var _local4:ItemWoodWall; for each (_local3 in _arg2.walls) { if ((((_local3.type == WALL_TYPE)) && (!(_local3.animateTo)))){ _local4 = new ItemWoodWall(_arg1); _local4.startPoint = new Point(_local3.start.x, _local3.start.y); _local4.endPoint = new Point(_local3.end.x, _local3.end.y); _local4.createWallDisplay(); _local4.updateWallDisplay(); _local4.setItem(); }; }; } } }//package editorSection 53//ItemWoodWallMov (editor.ItemWoodWallMov) package editor { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import com.gskinner.utils.*; import flash.ui.*; public class ItemWoodWallMov extends ItemWoodWall { protected var _movePoint:Point; protected var _speed:Number; protected var _shadowWall:Sprite; private static const POINT_RADIUS:int = 5; public static const WALL_TYPE:int = 2; public function ItemWoodWallMov(_arg1:LevelEditor):void{ super(_arg1); _maxStage = 3; _number = WALL_TYPE; _speed = 1; _movePoint = new Point(0, 0); mouseChildren = false; mouseEnabled = false; var _local2:Sprite = new Sprite(); var _local3:Sprite = Main.assets.woodWall1; _local3.width = 20; _local2.addChild(_local3); var _local4:Bitmap = new Assets.MoveArrow(); _local4.x = (_local2.width - _local4.width); _local4.y = (_local2.height - _local4.height); _local2.addChild(_local4); _icon = _local2; } override public function onStageMouseClick(_arg1:MouseEvent):void{ trace(("on mouse stage click: " + _stage)); if (_stage == 0){ setStage(1); addToBoard(_arg1.stageX, _arg1.stageY); _endPickedUp = true; pickUp(); } else { if (_stage == 1){ setStage(2); putDown(); createShadowWall(); } else { if (_stage == 2){ setStage(3); _movePoint = new Point(_arg1.stageX, _arg1.stageY); setItem(); }; }; }; } public function createShadowWall():void{ var _local1:Sprite = Main.assets.woodWall1; var _local2:Number = _wallLine.rotation; _wallLine.rotation = 0; _local1.width = _wallLine.width; _wallLine.rotation = _local2; _local1.x = (_local1.x - (_local1.width * 0.5)); _local1.y = (_local1.y - (_local1.height * 0.5)); _shadowWall = new Sprite(); _shadowWall.addChild(_local1); _shadowWall.rotation = _local2; _shadowWall.alpha = 0.5; _shadowWall.mouseEnabled = false; _shadowWall.mouseChildren = false; addChild(_shadowWall); } public function get speed():Number{ return (_speed); } public function get shadowWall():Sprite{ return (_shadowWall); } public function set speed(_arg1:Number):void{ _speed = _arg1; } override protected function onEnterFrame(_arg1:Event):void{ super.onEnterFrame(_arg1); if (_stage == 2){ updateShadow(_editor.stage.mouseX, _editor.stage.mouseY); }; } override protected function setItem():void{ _data = new Object(); _data.type = _number; _data.start = _startPoint; _data.end = _endPoint; _data.animateTo = _movePoint; _data.speed = _speed; _editor.walls.push(_data); _editor.addItem(this); } public function updateShadow(_arg1:int, _arg2:int):void{ graphics.clear(); graphics.lineStyle(1, 0xFF00FF); graphics.moveTo(_arg1, _arg2); graphics.lineTo((_startPoint.x + ((_endPoint.x - _startPoint.x) * 0.5)), (_startPoint.y + ((_endPoint.y - _startPoint.y) * 0.5))); _shadowWall.x = _arg1; _shadowWall.y = _arg2; } override public function destroy():void{ super.destroy(); if (((_shadowWall) && (_shadowWall.parent))){ _shadowWall.parent.removeChild(_shadowWall); }; _movePoint = null; } public function set movePoint(_arg1:Point):void{ _movePoint = _arg1; } public function get movePoint():Point{ return (_movePoint); } public static function createItems(_arg1:LevelEditor, _arg2:Object):void{ var _local3:Object; var _local4:ItemWoodWallMov; for each (_local3 in _arg2.walls) { if ((((_local3.type == WALL_TYPE)) && (!((_local3.animateTo == null))))){ _local4 = new ItemWoodWallMov(_arg1); _local4.startPoint = new Point(_local3.start.x, _local3.start.y); _local4.endPoint = new Point(_local3.end.x, _local3.end.y); _local4.movePoint = new Point(_local3.animateTo.x, _local3.animateTo.y); _local4.speed = _local3.speed; _local4.createWallDisplay(); _local4.updateWallDisplay(); _local4.createShadowWall(); _local4.updateShadow(_local4.movePoint.x, _local4.movePoint.y); _local4.wallLine.alpha = 1; _local4.setItem(); }; }; } } }//package editorSection 54//LevelEditor (editor.LevelEditor) package editor { import flash.events.*; import flash.text.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import com.adobe.serialization.json.*; import com.gskinner.utils.*; import flash.ui.*; public class LevelEditor extends Sprite { private var _currentItemClass:Class; private var _panels:Array; private var _jsonData:Object; private var _codeButton:SimpleButton; private var _clearButton:SimpleButton; private var _playButton:SimpleButton; private var _grid:Sprite; private var _selectedItem:EditorItem; private var _wallButton:SimpleButton; private var _mouseIcon:DisplayObject; private var _addNut:Boolean;// = false private var _nutNormal:Sprite; private var _wallPointer:Sprite; private var _codeBox:Sprite; private var _codeTextField:TextField; private var _nuts:Array; private var _codeSave:Button; private var _currentItem:EditorItem; private var _units:Array; private var _pegPanel:EditorButtonPanel; private var _pegs:Array; private var _addWallPoint1:Point; private var _addWallPoint2:Point; private var _nutPointer:Sprite; private var _eraseButton:SimpleButton; private var _items:Array; private var _addWall:Boolean;// = false private var _levelData:Object; private var _nutButtons:Sprite; private var _nutPanel:EditorButtonPanel; private var _mouseTarget:Sprite; private var _wallPanel:EditorButtonPanel; private var _walls:Array; private var _codeSelect:Button; private var _showCode:Boolean;// = false private var _mousePosition:TextField; public static const GRID_Y:Number = 80; public static const GRID_ROWS:Number = 10; public static const GRID_COLUMNS:Number = 18; public static const GRID_WIDTH:Number = 35; public static const GRID_HEIGHT:Number = 35; private static const ICON_OFFSET:int = 10; public static const GRID_X:Number = 20; public function LevelEditor(_arg1:Object=null){ addEventListener(Event.ADDED_TO_STAGE, draw); addEventListener(Event.REMOVED_FROM_STAGE, destroy); addEventListener(Event.ENTER_FRAME, update); if (_arg1 != null){ _levelData = _arg1; }; _walls = []; _units = []; _nuts = new Array((Game.GRID_COLUMNS * Game.GRID_ROWS)); _items = []; _panels = []; _jsonData = {}; } private function _createGrid():void{ var _local2:Number; var _local3:SimpleButton; var _local4:Sprite; var _local5:Sprite; var _local6:Object; _grid = new Sprite(); _grid.x = Game.GRID_X; _grid.y = Game.GRID_Y; var _local1:Number = 0; while (_local1 < Game.GRID_ROWS) { _local2 = 0; while (_local2 < Game.GRID_COLUMNS) { _local3 = new SimpleButton(); _local3.x = (Game.GRID_WIDTH * _local2); _local3.y = (Game.GRID_HEIGHT * _local1); _local3.name = ((_local1 + "_") + _local2); _local4 = new Sprite(); _local4.graphics.lineStyle(1, 0x999999); _local4.graphics.beginFill(0xFFFFFF, 0.1); _local4.graphics.drawRect(0, 0, Game.GRID_WIDTH, Game.GRID_HEIGHT); _local5 = new Sprite(); _local5.graphics.lineStyle(1, 0x999999); _local5.graphics.beginFill(0xFFFFFF, 0.3); _local5.graphics.drawRect(0, 0, Game.GRID_WIDTH, Game.GRID_HEIGHT); _local3.upState = _local4; _local3.overState = _local5; _local3.downState = _local5; _local3.hitTestState = _local4; _grid.addChild(_local3); _local6 = new Object(); _local6.unit = _local3; _local6.position = new Point(_local3.x, _local3.y); _local6.hasNut = false; _local6.nut = null; _units[_local3.name] = _local6; _local2++; }; _local1++; }; _grid.alpha = 1; addChild(_grid); } public function removeCurrentItem():void{ if (_currentItem){ _currentItem.destroy(); }; _currentItem = null; _currentItemClass = null; if (((_mouseIcon) && (_mouseIcon.parent))){ removeChild(_mouseIcon); }; _mouseIcon = null; } public function destroy(_arg1:Event):void{ var _local2:EditorItem; trace("Level Editor Destroyed"); if (_currentItem){ _currentItem.destroy(); if (contains(_currentItem)){ removeChild(_currentItem); }; }; if (((_mouseIcon) && (_mouseIcon.parent))){ _mouseIcon.parent.removeChild(_mouseIcon); }; _nutPanel.destroy(); _wallPanel.destroy(); _pegPanel.destroy(); for each (_local2 in _items) { _local2.destroy(); if (_local2.parent == this){ removeChild(_local2); }; }; if (_mousePosition){ removeChild(_mousePosition); }; _grid = null; _wallButton = null; _nutButtons = null; _clearButton = null; _codeButton = null; _playButton = null; _nutPointer = null; _codeBox = null; _wallPointer = null; _currentItem = null; _currentItemClass = null; _nuts = null; _walls = null; _items = null; _levelData = null; removeEventListener(Event.ADDED_TO_STAGE, draw); removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); } private function _createPlayButton():void{ _playButton = new SimpleButton(); var b:Sprite = new Sprite(); b.graphics.lineStyle(1, 0xFFFFFF); b.graphics.beginFill(11154227); b.graphics.drawRect(0, 0, 100, 20); var t:TextField = new TextField(); t.text = "Play Level"; t.height = 20; t.width = b.width; t.x = 0; t.y = 5; b.addChild(t); _playButton.upState = b; _playButton.downState = b; _playButton.overState = b; _playButton.hitTestState = b; _playButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ closeAllPanels(); updateJsonData(); trace(_jsonData.targetScore); Main.current.startGameByLevel(_jsonData); }); _playButton.x = 520; _playButton.y = 20; addChild(_playButton); } private function onMouseClick(_arg1:MouseEvent):void{ if (_currentItem){ _currentItem.onStageMouseClick(_arg1); }; } public function selectItem(_arg1:Class):void{ if (_currentItem){ removeCurrentItem(); }; _selectedItem = null; _currentItemClass = _arg1; _currentItem = new _arg1(this); if (_mouseIcon){ removeChild(_mouseIcon); }; _mouseIcon = _currentItem.icon; _mouseIcon.alpha = 0.3; addChild(_mouseIcon); } public function isPointInGrid(_arg1:Number, _arg2:Number):Boolean{ return (true); } private function setJsonData(_arg1:Object):void{ if (_arg1.targetScore){ _jsonData.targetScore = _arg1.targetScore; }; if (_arg1.targetStars){ _jsonData.targetStars = _arg1.targetStars; }; _jsonData.walls = _arg1.walls; _jsonData.nuts = _arg1.nuts; ItemNutNormal.createItems(this, _jsonData); ItemNutFire.createItems(this, _jsonData); ItemNutGem.createItems(this, _jsonData); ItemNutClone.createItems(this, _jsonData); ItemWoodWall.createItems(this, _jsonData); ItemRubberWall.createItems(this, _jsonData); ItemWoodWallMov.createItems(this, _jsonData); ItemRubberWallMov.createItems(this, _jsonData); ItemRubberPeg.createItems(this, _jsonData); ItemWoodPeg.createItems(this, _jsonData); ItemWoodSwitch.createItems(this, _jsonData); } public function get currentItem():EditorItem{ return (_currentItem); } public function get selectedItem():EditorItem{ return (_selectedItem); } private function stringifyLevelData(_arg1:Object):String{ var _local2:String; var _local5:Array; var _local6:Number; var _local7:Number; var _local8:Object; if (!_arg1.id){ _arg1.id = Rnd.integer(30, 100); }; if (!_arg1.targetScore){ _arg1.targetScore = 75000; }; if (!_arg1.targetStars){ _arg1.targetScore = 20; }; _local2 = (("{\"id\": " + _arg1.id) + ",\r"); _local2 = (_local2 + "\"nuts\": \r[\r"); var _local3:Number = 0; while (_local3 < _arg1.nuts.length) { _local5 = _arg1.nuts[_local3]; _local2 = (_local2 + "["); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6]; if (_local6 == (_local5.length - 1)){ _local2 = (_local2 + _local7.toString()); } else { _local2 = (_local2 + (_local7.toString() + ",")); }; _local6++; }; if (_local3 == (_arg1.nuts.length - 1)){ _local2 = (_local2 + "]\r"); } else { _local2 = (_local2 + "],\r"); }; _local3++; }; _local2 = (_local2 + "], \r\"walls\": \r[\r"); var _local4:Number = 0; while (_local4 < _arg1.walls.length) { _local8 = _arg1.walls[_local4]; _local2 = (_local2 + ((((((((("{ \"start\": {\"x\": " + _local8.start.x) + ", \"y\": ") + _local8.start.y) + "}, \"end\": {\"x\":") + _local8.end.x) + ", \"y\": ") + _local8.end.y) + "}, \"type\": ") + _local8.type)); if (_local8.animateTo){ _local2 = (_local2 + ((((((", \"animateTo\": { \"x\": " + _local8.animateTo.x) + ", \"y\": ") + _local8.animateTo.y) + "}, \"speed\": \"") + _local8.speed) + "\"")); }; if (_local8.moveTo){ _local2 = (_local2 + ((((", \"moveTo\": { \"x\": " + _local8.moveTo.x) + ", \"y\": ") + _local8.moveTo.y) + "}")); _local2 = (_local2 + ((((((", \"trigger\": { \"x\": " + _local8.trigger.x) + ", \"y\": ") + _local8.trigger.y) + ", \"rotation\": \"") + _local8.trigger.rotation) + "\"}")); }; _local2 = (_local2 + "}"); if (_local4 == (_arg1.walls.length - 1)){ _local2 = (_local2 + "\r"); } else { _local2 = (_local2 + ",\r"); }; _local4++; }; _local2 = (_local2 + "],\r"); if (_arg1.targetScore){ _local2 = (_local2 + ("\"targetScore\": " + _arg1.targetScore)); }; if (_arg1.targetStars){ _local2 = (_local2 + (",\r\"targetStars\": " + _arg1.targetStars)); }; _local2 = (_local2 + "\r}"); return (_local2); } public function draw(_arg1:Event):void{ var e = _arg1; _nutPanel = new EditorButtonPanel(this, 10, 20, "Nuts"); _nutPanel.addButton(new ButtonNutNormal(this)); _nutPanel.addButton(new ButtonNutGem(this)); _nutPanel.addButton(new ButtonNutFire(this)); _nutPanel.addButton(new ButtonNutClone(this)); _panels.push(_nutPanel); _wallPanel = new EditorButtonPanel(this, 85, 20, "Walls"); _wallPanel.addButton(new ButtonWoodWall(this)); _wallPanel.addButton(new ButtonWoodWallMov(this)); _wallPanel.addButton(new ButtonWoodSwitch(this)); _wallPanel.addButton(new ButtonRubberWall(this)); _wallPanel.addButton(new ButtonRubberWallMov(this)); _panels.push(_wallPanel); _pegPanel = new EditorButtonPanel(this, 165, 20, "Pegs"); _pegPanel.addButton(new ButtonRubberPeg(this)); _pegPanel.addButton(new ButtonWoodPeg(this)); _panels.push(_pegPanel); _createClearButton(); _createPlayButton(); _createCodeButton(); _createGrid(); _createGrass(); addChildAt(new Assets.SkyMorning(), 0); if (_levelData){ setJsonData(_levelData); }; addEventListener(MouseEvent.CLICK, onMouseClick, false, 0, true); _mousePosition = new TextField(); _mousePosition.x = (stage.stageWidth - 70); _mousePosition.y = (stage.stageHeight - 20); addChild(_mousePosition); stage.addEventListener(KeyboardEvent.KEY_DOWN, function (_arg1:KeyboardEvent):void{ if (_showCode){ return; }; _arg1.stopPropagation(); if (_arg1.keyCode == KeyCode.ONE){ _nutPanel.openPanel(); _nutPanel.clickButton(1); }; if (_arg1.keyCode == KeyCode.TWO){ _nutPanel.openPanel(); _nutPanel.clickButton(2); } else { if (_arg1.keyCode == KeyCode.THREE){ _nutPanel.openPanel(); _nutPanel.clickButton(3); } else { if (_arg1.keyCode == KeyCode.FOUR){ _nutPanel.openPanel(); _nutPanel.clickButton(4); } else { if (_arg1.keyCode == KeyCode.Q){ _wallPanel.openPanel(); _wallPanel.clickButton(1); } else { if (_arg1.keyCode == KeyCode.W){ _wallPanel.openPanel(); _wallPanel.clickButton(2); } else { if (_arg1.keyCode == KeyCode.E){ _wallPanel.openPanel(); _wallPanel.clickButton(3); } else { if (_arg1.keyCode == KeyCode.R){ _wallPanel.openPanel(); _wallPanel.clickButton(4); } else { if (_arg1.keyCode == KeyCode.T){ _wallPanel.openPanel(); _wallPanel.clickButton(5); } else { if (_arg1.keyCode == KeyCode.A){ _pegPanel.openPanel(); _pegPanel.clickButton(1); } else { if (_arg1.keyCode == KeyCode.S){ _pegPanel.openPanel(); _pegPanel.clickButton(2); } else { if (_arg1.keyCode == KeyCode.V){ closeAllPanels(); }; }; }; }; }; }; }; }; }; }; }; }); } public function addItem(_arg1:EditorItem):void{ if (!_arg1.parent){ addChild(_arg1); }; _items.push(_arg1); if (((_currentItemClass) && (_currentItem))){ _currentItem = new _currentItemClass(this); }; } private function _clearEraseButton():void{ } private function _createEraseButton():void{ _eraseButton = new SimpleButton(); var b:Sprite = new Sprite(); b.graphics.lineStyle(1, 0xFFFFFF); b.graphics.beginFill(11154227); b.graphics.drawRect(0, 0, 80, 20); var t:TextField = new TextField(); t.text = "Erase"; t.height = 20; t.width = b.width; t.x = 0; t.y = 5; b.addChild(t); _eraseButton.upState = b; _eraseButton.downState = b; _eraseButton.overState = b; _eraseButton.hitTestState = b; _eraseButton.x = 180; _eraseButton.y = 20; _eraseButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ _arg1.stopPropagation(); _onEraseButtonClick(); }); addChild(_eraseButton); } private function _createGrass():void{ var _local1:Bitmap = new Assets.Grass(); _local1.y = (stage.stageHeight - 45); _local1.x = 0; addChild(_local1); } public function indexFromPoint(_arg1:Number, _arg2:Number):int{ var _local3:int = int(((_arg1 - Game.GRID_X) / Game.GRID_WIDTH)); var _local4:int = int(((_arg2 - Game.GRID_Y) / Game.GRID_HEIGHT)); return (((_local4 * Game.GRID_COLUMNS) + _local3)); } private function _clearCodeButton():void{ if (_codeBox){ removeChild(_codeBox); _codeBox = null; }; _codeBox = null; _showCode = false; } public function get nuts():Array{ return (_nuts); } private function onDisplayItemClick(_arg1:MouseEvent):void{ var _local2:DisplayItem = (_arg1.target as DisplayItem); switch (_local2.type){ case EditorItem.NUT_NORMAL: break; }; } private function _onEraseButtonClick():void{ closeAllPanels(); } private function clearBoard():void{ var _local1:EditorItem; for each (_local1 in _items) { removeChild(_local1); }; _items = []; _walls = []; _nuts = new Array((Game.GRID_COLUMNS * Game.GRID_ROWS)); } public function updateJsonData():Object{ var _local3:Array; var _local4:Number; _jsonData.nuts = []; var _local1:int; var _local2:Number = 0; while (_local2 < Game.GRID_ROWS) { _local3 = []; _local4 = 0; while (_local4 < Game.GRID_COLUMNS) { if (_nuts[_local1] > 0){ _local3.push(_nuts[_local1]); } else { _local3.push(0); }; _local1++; _local4++; }; _jsonData.nuts.push(_local3); _local2++; }; _jsonData.walls = _walls; if (!_jsonData.targetScore){ _jsonData.targetScore = 100000; }; if (!_jsonData.targetStars){ _jsonData.targetStars = 20; }; return (_jsonData); } public function set selectedItem(_arg1:EditorItem):void{ _selectedItem = _arg1; } public function get items():Array{ return (_items); } private function _createClearButton():void{ _clearButton = new SimpleButton(); var _local1:Sprite = new Sprite(); _local1.graphics.lineStyle(1, 0xFFFFFF); _local1.graphics.beginFill(11154227); _local1.graphics.drawRect(0, 0, 100, 20); var _local2:TextField = new TextField(); _local2.text = "Clear All"; _local2.height = 20; _local2.width = _local1.width; _local2.x = 0; _local2.y = 5; _local1.addChild(_local2); _clearButton.upState = _local1; _clearButton.downState = _local1; _clearButton.overState = _local1; _clearButton.hitTestState = _local1; _clearButton.addEventListener(MouseEvent.CLICK, onClearButtonClick); _clearButton.x = 280; _clearButton.y = 20; addChild(_clearButton); } public function update(_arg1:Event):void{ if (_mousePosition){ _mousePosition.text = ((("x: " + stage.mouseX) + " y: ") + stage.mouseY); }; if (((_mouseIcon) && (_mouseIcon.parent))){ _mouseIcon.x = (stage.mouseX + ICON_OFFSET); _mouseIcon.y = (stage.mouseY + ICON_OFFSET); }; } public function closeAllPanels():void{ var _local1:EditorButtonPanel; removeCurrentItem(); for each (_local1 in _panels) { _local1.closePanel(); }; } private function onClearButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); closeAllPanels(); clearBoard(); } public function get walls():Array{ return (_walls); } private function _createCodeButton():void{ var b:Sprite; _codeButton = new SimpleButton(); b = new Sprite(); b.graphics.lineStyle(1, 0xFFFFFF); b.graphics.beginFill(11154227); b.graphics.drawRect(0, 0, 100, 20); var t:TextField = new TextField(); t.text = "Get Code"; t.height = 20; t.width = b.width; t.x = 0; t.y = 5; b.addChild(t); _codeButton.upState = b; _codeButton.downState = b; _codeButton.overState = b; _codeButton.hitTestState = b; _codeButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var f:TextFormat; var save:Sprite; var st:TextField; var save2:Sprite; var st2:TextField; var e = _arg1; if (!_showCode){ closeAllPanels(); _codeBox = new Sprite(); _codeBox.graphics.beginFill(0xFFFFFF); _codeBox.graphics.drawRect(0, 0, 600, 450); _codeTextField = new TextField(); _codeTextField.type = TextFieldType.INPUT; f = new TextFormat(); f.font = "Arial"; f.bold = false; f.size = 11; updateJsonData(); _codeTextField.text = stringifyLevelData(_jsonData); _codeTextField.setTextFormat(f); _codeTextField.width = 600; _codeTextField.height = 400; _codeTextField.multiline = true; _codeTextField.wordWrap = true; _codeBox.addChild(_codeTextField); _codeBox.x = ((Main.GAME_WIDTH * 0.5) - (_codeBox.width / 2)); _codeBox.y = ((Main.GAME_HEIGHT * 0.5) - (_codeBox.height / 2)); addChild(_codeBox); _showCode = true; _codeSave = new Button(); save = new Sprite(); save.graphics.lineStyle(1, 0xFFFFFF); save.graphics.beginFill(11154227); save.graphics.drawRect(0, 0, 100, 20); st = new TextField(); st.text = "Set Code"; st.height = 20; st.width = b.width; st.x = 0; st.y = 5; save.addChild(st); _codeSave.upState = save; _codeSave.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ clearBoard(); var _local2:Object = JSON.decode(_codeTextField.text); setJsonData(_local2); _clearCodeButton(); }); _codeSelect = new Button(); save2 = new Sprite(); save2.graphics.lineStyle(1, 0xFFFFFF); save2.graphics.beginFill(11154227); save2.graphics.drawRect(0, 0, 100, 20); st2 = new TextField(); st2.text = "Select All"; st2.height = 20; st2.width = b.width; st2.x = 0; st2.y = 5; save2.addChild(st2); _codeSelect.upState = save2; _codeSelect.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ _codeTextField.setSelection(0, 20); }); _codeSave.y = (_codeBox.height - _codeSave.height); _codeSelect.y = _codeSave.y; _codeSelect.x = ((_codeSave.x + _codeSave.upState.width) + 20); _codeBox.addChild(_codeSave); _codeBox.addChild(_codeSelect); } else { _clearCodeButton(); }; }); _codeButton.x = 400; _codeButton.y = 20; addChild(_codeButton); } public function centerOfGridFromIndex(_arg1:int):Point{ var _local2:int = int((_arg1 / Game.GRID_COLUMNS)); var _local3:int = (_arg1 - (_local2 * Game.GRID_COLUMNS)); var _local4:Number = ((_local3 * Game.GRID_WIDTH) + (Game.GRID_WIDTH * 0.5)); var _local5:Number = ((_local2 * Game.GRID_HEIGHT) + (Game.GRID_HEIGHT * 0.5)); return (new Point(_local4, _local5)); } } }//package editorSection 55//Cubic (fl.motion.easing.Cubic) package fl.motion.easing { public class Cubic { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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)); } } }//package fl.motion.easingSection 56//Linear (fl.motion.easing.Linear) package fl.motion.easing { public class Linear { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.motion.easingSection 57//Linear (gs.easing.Linear) package gs.easing { public class Linear { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package gs.easingSection 58//Sine (gs.easing.Sine) package gs.easing { public class Sine { private static const _HALF_PI:Number = 1.5707963267949; public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * _HALF_PI))) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * _HALF_PI))) + _arg3) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } } }//package gs.easingSection 59//TweenEvent (gs.events.TweenEvent) package gs.events { import flash.events.*; public class TweenEvent extends Event { public var info:Object; public static const UPDATE:String = "update"; public static const START:String = "start"; public static const version:Number = 0.9; public static const COMPLETE:String = "complete"; public function TweenEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.info = _arg2; } override public function clone():Event{ return (new TweenEvent(this.type, this.info, this.bubbles, this.cancelable)); } } }//package gs.eventsSection 60//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _tweenVisible:Boolean; protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; this.onComplete = onCompleteTween; } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _tweenVisible = !(Boolean(("visible" in _arg1))); } public function onCompleteTween():void{ if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(!((_arg2 == 0))); _tweenVisible = true; addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (((!((_target.visible == true))) && (_tweenVisible))){ _target.visible = true; }; } } }//package gs.pluginsSection 61//BevelFilterPlugin (gs.plugins.BevelFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BevelFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BevelFilterPlugin(){ this.propName = "bevelFilter"; this.overwriteProps = ["bevelFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BevelFilter; initFilter(_arg2, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.pluginsSection 62//BezierPlugin (gs.plugins.BezierPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class BezierPlugin extends TweenPlugin { protected var _future:Object; protected var _orient:Boolean; protected var _orientData:Array; protected var _target:Object; protected var _beziers:Object; protected static const _RAD2DEG:Number = 57.2957795130823; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function BezierPlugin(){ _future = {}; super(); this.propName = "bezier"; this.overwriteProps = []; } override public function killProps(_arg1:Object):void{ var _local2:String; for (_local2 in _beziers) { if ((_local2 in _arg1)){ delete _beziers[_local2]; }; }; super.killProps(_arg1); } protected function init(_arg1:TweenLite, _arg2:Array, _arg3:Boolean):void{ var _local5:int; var _local6:String; _target = _arg1.target; if (_arg1.exposedVars.orientToBezier == true){ _orientData = [["x", "y", "rotation", 0]]; _orient = true; } else { if ((_arg1.exposedVars.orientToBezier is Array)){ _orientData = _arg1.exposedVars.orientToBezier; _orient = true; }; }; var _local4:Object = {}; _local5 = 0; while (_local5 < _arg2.length) { for (_local6 in _arg2[_local5]) { if (_local4[_local6] == undefined){ _local4[_local6] = [_arg1.target[_local6]]; }; if (typeof(_arg2[_local5][_local6]) == "number"){ _local4[_local6].push(_arg2[_local5][_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg2[_local5][_local6]))); }; }; _local5++; }; for (_local6 in _local4) { this.overwriteProps[this.overwriteProps.length] = _local6; if (_arg1.exposedVars[_local6] != undefined){ if (typeof(_arg1.exposedVars[_local6]) == "number"){ _local4[_local6].push(_arg1.exposedVars[_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg1.exposedVars[_local6]))); }; delete _arg1.exposedVars[_local6]; _local5 = (_arg1.tweens.length - 1); while (_local5 > -1) { if (_arg1.tweens[_local5].name == _local6){ _arg1.tweens.splice(_local5, 1); }; _local5--; }; }; }; _beziers = parseBeziers(_local4, _arg3); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), false); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:String; var _local4:Object; var _local5:Number; var _local6:uint; var _local7:Number; var _local8:int; var _local9:Object; var _local10:Boolean; var _local11:Number; var _local12:Number; var _local13:Array; var _local14:Number; if (_arg1 == 1){ for (_local3 in _beziers) { _local2 = (_beziers[_local3].length - 1); _target[_local3] = _beziers[_local3][_local2][2]; }; } else { for (_local3 in _beziers) { _local6 = _beziers[_local3].length; if (_arg1 < 0){ _local2 = 0; } else { if (_arg1 >= 1){ _local2 = (_local6 - 1); } else { _local2 = int((_local6 * _arg1)); }; }; _local5 = ((_arg1 - (_local2 * (1 / _local6))) * _local6); _local4 = _beziers[_local3][_local2]; if (this.round){ _local7 = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); _local8 = ((_local7)<0) ? -1 : 1; _target[_local3] = ((((_local7 % 1) * _local8))>0.5) ? (int(_local7) + _local8) : int(_local7); } else { _target[_local3] = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); }; }; }; if (_orient){ _local9 = _target; _local10 = this.round; _target = _future; this.round = false; _orient = false; this.changeFactor = (_arg1 + 0.01); _target = _local9; this.round = _local10; _orient = true; _local2 = 0; while (_local2 < _orientData.length) { _local13 = _orientData[_local2]; _local14 = ((_local13[3]) || (0)); _local11 = (_future[_local13[0]] - _target[_local13[0]]); _local12 = (_future[_local13[1]] - _target[_local13[1]]); _target[_local13[2]] = ((Math.atan2(_local12, _local11) * _RAD2DEG) + _local14); _local2++; }; }; } public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{ var _local3:int; var _local4:Array; var _local5:Object; var _local6:String; var _local7:Object = {}; if (_arg2){ for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 2){ _local5[_local5.length] = [_local4[0], (_local4[1] - ((_local4[2] - _local4[0]) / 4)), _local4[1]]; _local3 = 1; while (_local3 < (_local4.length - 1)) { _local5[_local5.length] = [_local4[_local3], (_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)][1])), _local4[(_local3 + 1)]]; _local3++; }; } else { _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; } else { for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 3){ _local5[_local5.length] = [_local4[0], _local4[1], ((_local4[1] + _local4[2]) / 2)]; _local3 = 2; while (_local3 < (_local4.length - 2)) { _local5[_local5.length] = [_local5[(_local3 - 2)][2], _local4[_local3], ((_local4[_local3] + _local4[(_local3 + 1)]) / 2)]; _local3++; }; _local5[_local5.length] = [_local5[(_local5.length - 1)][2], _local4[(_local4.length - 2)], _local4[(_local4.length - 1)]]; } else { if (_local4.length == 3){ _local5[_local5.length] = [_local4[0], _local4[1], _local4[2]]; } else { if (_local4.length == 2){ _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; }; }; }; return (_local7); } } }//package gs.pluginsSection 63//BezierThroughPlugin (gs.plugins.BezierThroughPlugin) package gs.plugins { import gs.*; public class BezierThroughPlugin extends BezierPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BezierThroughPlugin(){ this.propName = "bezierThrough"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), true); return (true); } } }//package gs.pluginsSection 64//BlurFilterPlugin (gs.plugins.BlurFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BlurFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BlurFilterPlugin(){ this.propName = "blurFilter"; this.overwriteProps = ["blurFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BlurFilter; initFilter(_arg2, new BlurFilter(0, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.pluginsSection 65//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class ColorMatrixFilterPlugin extends FilterPlugin { protected var _matrix:Array; protected var _matrixTween:EndArrayPlugin; public static const API:Number = 1; public static const VERSION:Number = 1.1; protected static var _lumG:Number = 0.71516; protected static var _lumR:Number = 0.212671; protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; protected static var _lumB:Number = 0.072169; public function ColorMatrixFilterPlugin(){ this.propName = "colorMatrixFilter"; this.overwriteProps = ["colorMatrixFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = ColorMatrixFilter; var _local4:Object = _arg2; initFilter({remove:_arg2.remove, index:_arg2.index, addFilter:_arg2.addFilter}, new ColorMatrixFilter(_idMatrix.slice())); _matrix = ColorMatrixFilter(_filter).matrix; var _local5:Array = []; if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){ _local5 = _local4.matrix; } else { if (_local4.relative == true){ _local5 = _matrix.slice(); } else { _local5 = _idMatrix.slice(); }; _local5 = setBrightness(_local5, _local4.brightness); _local5 = setContrast(_local5, _local4.contrast); _local5 = setHue(_local5, _local4.hue); _local5 = setSaturation(_local5, _local4.saturation); _local5 = setThreshold(_local5, _local4.threshold); if (!isNaN(_local4.colorize)){ _local5 = colorize(_local5, _local4.colorize, _local4.amount); }; }; _matrixTween = new EndArrayPlugin(); _matrixTween.init(_matrix, _local5); return (true); } override public function set changeFactor(_arg1:Number):void{ _matrixTween.changeFactor = _arg1; ColorMatrixFilter(_filter).matrix = _matrix; super.changeFactor = _arg1; } public static function setSaturation(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Number = (1 - _arg2); var _local4:Number = (_local3 * _lumR); var _local5:Number = (_local3 * _lumG); var _local6:Number = (_local3 * _lumB); var _local7:Array = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local7, _arg1)); } public static function setHue(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 * (Math.PI / 180)); var _local3:Number = Math.cos(_arg2); var _local4:Number = Math.sin(_arg2); var _local5:Array = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; return (applyMatrix(_local5, _arg1)); } public static function setThreshold(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Array = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function applyMatrix(_arg1:Array, _arg2:Array):Array{ var _local6:int; var _local7:int; if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (_arg2); }; var _local3:Array = []; var _local4:int; var _local5:int; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 5) { if (_local7 == 4){ _local5 = _arg1[(_local4 + 4)]; } else { _local5 = 0; }; _local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5); _local7++; }; _local4 = (_local4 + 5); _local6++; }; return (_local3); } public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{ if (isNaN(_arg2)){ return (_arg1); }; if (isNaN(_arg3)){ _arg3 = 1; }; var _local4:Number = (((_arg2 >> 16) & 0xFF) / 0xFF); var _local5:Number = (((_arg2 >> 8) & 0xFF) / 0xFF); var _local6:Number = ((_arg2 & 0xFF) / 0xFF); var _local7:Number = (1 - _arg3); var _local8:Array = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local8, _arg1)); } public static function setBrightness(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = ((_arg2 * 100) - 100); return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1)); } public static function setContrast(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 + 0.01); var _local3:Array = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } } }//package gs.pluginsSection 66//DropShadowFilterPlugin (gs.plugins.DropShadowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class DropShadowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function DropShadowFilterPlugin(){ this.propName = "dropShadowFilter"; this.overwriteProps = ["dropShadowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = DropShadowFilter; initFilter(_arg2, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout, _arg2.hideObject)); return (true); } } }//package gs.pluginsSection 67//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import flash.display.*; import gs.*; import gs.utils.tween.*; public class EndArrayPlugin extends TweenPlugin { protected var _a:Array; protected var _info:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } public function init(_arg1:Array, _arg2:Array):void{ _a = _arg1; var _local3:int = (_arg2.length - 1); while (_local3 > -1) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:ArrayTweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } } }//package gs.pluginsSection 68//FilterPlugin (gs.plugins.FilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; import gs.utils.tween.*; public class FilterPlugin extends TweenPlugin { protected var _remove:Boolean; protected var _target:Object; protected var _index:int; protected var _filter:BitmapFilter; protected var _type:Class; public static const VERSION:Number = 1.03; public static const API:Number = 1; public function onCompleteTween():void{ var _local1:int; var _local2:Array; if (_remove){ _local2 = _target.filters; if (!(_local2[_index] is _type)){ _local1 = (_local2.length - 1); while (_local1 > -1) { if ((_local2[_local1] is _type)){ _local2.splice(_local1, 1); break; }; _local1--; }; } else { _local2.splice(_index, 1); }; _target.filters = _local2; }; } protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{ var _local4:String; var _local5:int; var _local6:HexColorsPlugin; var _local3:Array = _target.filters; _index = -1; if (_arg1.index != null){ _index = _arg1.index; } else { _local5 = (_local3.length - 1); while (_local5 > -1) { if ((_local3[_local5] is _type)){ _index = _local5; break; }; _local5--; }; }; if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){ _index = ((_arg1.index)!=null) ? _arg1.index : _local3.length; _local3[_index] = _arg2; _target.filters = _local3; }; _filter = _local3[_index]; _remove = Boolean((_arg1.remove == true)); if (_remove){ this.onComplete = onCompleteTween; }; var _local7:Object = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1; for (_local4 in _local7) { if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){ } else { if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){ _local6 = new HexColorsPlugin(); _local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]); _tweens[_tweens.length] = new TweenInfo(_local6, "changeFactor", 0, 1, _local4, false); } else { if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){ _filter[_local4] = _local7[_local4]; } else { addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4); }; }; }; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Array = _target.filters; _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; if (!(_local4[_index] is _type)){ _index = (_local4.length - 1); _local2 = (_local4.length - 1); while (_local2 > -1) { if ((_local4[_local2] is _type)){ _index = _local2; break; }; _local2--; }; }; _local4[_index] = _filter; _target.filters = _local4; } } }//package gs.pluginsSection 69//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { protected var _target:MovieClip; public var frame:int; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame"]; this.round = true; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } } }//package gs.pluginsSection 70//GlowFilterPlugin (gs.plugins.GlowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class GlowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function GlowFilterPlugin(){ this.propName = "glowFilter"; this.overwriteProps = ["glowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = GlowFilter; initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout)); return (true); } } }//package gs.pluginsSection 71//HexColorsPlugin (gs.plugins.HexColorsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class HexColorsPlugin extends TweenPlugin { protected var _colors:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function HexColorsPlugin(){ this.propName = "hexColors"; this.overwriteProps = []; _colors = []; } override public function killProps(_arg1:Object):void{ var _local2:int = (_colors.length - 1); while (_local2 > -1) { if (_arg1[_colors[_local2][1]] != undefined){ _colors.splice(_local2, 1); }; _local2--; }; super.killProps(_arg1); } public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg3 != _arg4){ _local5 = (_arg3 >> 16); _local6 = ((_arg3 >> 8) & 0xFF); _local7 = (_arg3 & 0xFF); _colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)]; this.overwriteProps[this.overwriteProps.length] = _arg2; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:Array; _local2 = (_colors.length - 1); while (_local2 > -1) { _local3 = _colors[_local2]; _local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7]))); _local2--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; for (_local4 in _arg2) { initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4])); }; return (true); } } }//package gs.pluginsSection 72//RemoveTintPlugin (gs.plugins.RemoveTintPlugin) package gs.plugins { public class RemoveTintPlugin extends TintPlugin { public static const VERSION:Number = 1.01; public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package gs.pluginsSection 73//RoundPropsPlugin (gs.plugins.RoundPropsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class RoundPropsPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function RoundPropsPlugin(){ this.propName = "roundProps"; this.overwriteProps = []; this.round = true; } public function add(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ addTween(_arg1, _arg2, _arg3, (_arg3 + _arg4), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.pluginsSection 74//ShortRotationPlugin (gs.plugins.ShortRotationPlugin) package gs.plugins { import flash.display.*; import gs.*; public class ShortRotationPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function ShortRotationPlugin(){ this.propName = "shortRotation"; this.overwriteProps = []; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; if (typeof(_arg2) == "number"){ trace("WARNING: You appear to be using the old shortRotation syntax. Instead of passing a number, please pass an object with properties that correspond to the rotations values For example, TweenMax.to(mc, 2, {shortRotation:{rotationX:-170, rotationY:25}})"); return (false); }; for (_local4 in _arg2) { initRotation(_arg1, _local4, _arg1[_local4], _arg2[_local4]); }; return (true); } public function initRotation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ var _local5:Number = ((_arg4 - _arg3) % 360); if (((_arg4 - _arg3) % 360) != (_local5 % 180)){ _local5 = ((_local5)<0) ? (_local5 + 360) : (_local5 - 360); }; addTween(_arg1, _arg2, _arg3, (_arg3 + _local5), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.pluginsSection 75//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.display.*; import flash.geom.*; import gs.*; import gs.utils.tween.*; public class TintPlugin extends TweenPlugin { protected var _target:DisplayObject; protected var _ct:ColorTransform; protected var _ignoreAlpha:Boolean; public static const VERSION:Number = 1.1; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local3:int; var _local4:String; _target = _arg1; _ct = _target.transform.colorTransform; _local3 = (_props.length - 1); while (_local3 > -1) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _target.transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _target.transform.colorTransform = _ct; } } }//package gs.pluginsSection 76//TweenPlugin (gs.plugins.TweenPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class TweenPlugin { public var overwriteProps:Array; protected var _tweens:Array; public var propName:String; public var onComplete:Function; public var round:Boolean; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.03; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; super(); } protected function updateTweens(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (this.overwriteProps.length - 1); while (_local2 > -1) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; _local2--; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2].name in _arg1)){ _tweens.splice(_local2, 1); }; _local2--; }; } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public function get changeFactor():Number{ return (_changeFactor); } public static function activate(_arg1:Array):Boolean{ var _local2:int; var _local3:Object; _local2 = (_arg1.length - 1); while (_local2 > -1) { _local3 = new (_arg1[_local2]); TweenLite.plugins[_local3.propName] = _arg1[_local2]; _local2--; }; return (true); } } }//package gs.pluginsSection 77//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } public function onCompleteTween():void{ if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(_arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ if (_target.visible != true){ _target.visible = true; }; } } }//package gs.pluginsSection 78//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import flash.media.*; import gs.*; public class VolumePlugin extends TweenPlugin { protected var _target:Object; protected var _st:SoundTransform; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } } }//package gs.pluginsSection 79//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo) package gs.utils.tween { public class ArrayTweenInfo { public var change:Number; public var start:Number; public var index:uint; public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } } }//package gs.utils.tweenSection 80//TweenInfo (gs.utils.tween.TweenInfo) package gs.utils.tween { public class TweenInfo { public var start:Number; public var name:String; public var change:Number; public var target:Object; public var property:String; public var isPlugin:Boolean; public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; } } }//package gs.utils.tweenSection 81//OverwriteManager (gs.OverwriteManager) package gs { import flash.utils.*; import gs.utils.tween.*; import flash.errors.*; public class OverwriteManager { public static const ALL:int = 1; public static const NONE:int = 0; public static const AUTO:int = 2; public static const CONCURRENT:int = 3; public static const version:Number = 3.12; public static var mode:int; public static var enabled:Boolean; public static function killVars(_arg1:Object, _arg2:Object, _arg3:Array):void{ var _local4:int; var _local5:String; var _local6:TweenInfo; _local4 = (_arg3.length - 1); while (_local4 > -1) { _local6 = _arg3[_local4]; if ((_local6.name in _arg1)){ _arg3.splice(_local4, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_arg1); if (_local6.target.overwriteProps.length == 0){ _arg3.splice(_local4, 1); }; }; }; _local4--; }; for (_local5 in _arg1) { delete _arg2[_local5]; }; } public static function manageOverwrites(_arg1:TweenLite, _arg2:Array):void{ var _local7:int; var _local8:TweenLite; var _local10:Array; var _local11:Object; var _local12:int; var _local13:TweenInfo; var _local14:Array; var _local3:Object = _arg1.vars; var _local4:int = ((_local3.overwrite)==undefined) ? mode : int(_local3.overwrite); if ((((_local4 < 2)) || ((_arg2 == null)))){ return; }; var _local5:Number = _arg1.startTime; var _local6:Array = []; var _local9 = -1; _local7 = (_arg2.length - 1); while (_local7 > -1) { _local8 = _arg2[_local7]; if (_local8 == _arg1){ _local9 = _local7; } else { if ((((((_local7 < _local9)) && ((_local8.startTime <= _local5)))) && (((_local8.startTime + ((_local8.duration * 1000) / _local8.combinedTimeScale)) > _local5)))){ _local6[_local6.length] = _local8; }; }; _local7--; }; if ((((_local6.length == 0)) || ((_arg1.tweens.length == 0)))){ return; }; if (_local4 == AUTO){ _local10 = _arg1.tweens; _local11 = {}; _local7 = (_local10.length - 1); while (_local7 > -1) { _local13 = _local10[_local7]; if (_local13.isPlugin){ if (_local13.name == "_MULTIPLE_"){ _local14 = _local13.target.overwriteProps; _local12 = (_local14.length - 1); while (_local12 > -1) { _local11[_local14[_local12]] = true; _local12--; }; } else { _local11[_local13.name] = true; }; _local11[_local13.target.propName] = true; } else { _local11[_local13.name] = true; }; _local7--; }; _local7 = (_local6.length - 1); while (_local7 > -1) { killVars(_local11, _local6[_local7].exposedVars, _local6[_local7].tweens); _local7--; }; } else { _local7 = (_local6.length - 1); while (_local7 > -1) { _local6[_local7].enabled = false; _local7--; }; }; } public static function init(_arg1:int=2):int{ if (TweenLite.version < 10.09){ trace("TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com."); }; TweenLite.overwriteManager = OverwriteManager; mode = _arg1; enabled = true; return (mode); } } }//package gsSection 82//TweenGroup (gs.TweenGroup) package gs { import flash.events.*; import flash.utils.*; public dynamic class TweenGroup extends Proxy implements IEventDispatcher { protected var _align:String; protected var _tweens:Array; protected var _reversed:Boolean; public var loop:Number; public var expired:Boolean; public var yoyo:Number; public var onComplete:Function; protected var _dispatcher:EventDispatcher; public var endTime:Number; protected var _startTime:Number; protected var _initTime:Number; public var onCompleteParams:Array; protected var _pauseTime:Number; protected var _stagger:Number; protected var _repeatCount:Number; public static const ALIGN_NONE:String = "none"; public static const version:Number = 1.1; public static const ALIGN_END:String = "end"; public static const ALIGN_START:String = "start"; public static const ALIGN_INIT:String = "init"; public static const ALIGN_SEQUENCE:String = "sequence"; protected static var _classInitted:Boolean; protected static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(); ; protected static var _unexpired:Array = []; protected static var _TweenMax:Class; protected static var _prevTime:uint = 0; public function TweenGroup(_arg1:Array=null, _arg2:Class=null, _arg3:String="none", _arg4:Number=0){ var $tweens = _arg1; var $DefaultTweenClass = _arg2; var $align = _arg3; var $stagger = _arg4; super(); if (!_classInitted){ if (TweenLite.version < 10.092){ trace("TweenGroup error! Please update your TweenLite class or try deleting your ASO files. TweenGroup requires a more recent version. Download updates at http://www.TweenLite.com."); }; try { _TweenMax = (getDefinitionByName("gs.TweenMax") as Class); } catch($e:Error) { _TweenMax = Array; }; TweenLite.timingSprite.addEventListener(Event.ENTER_FRAME, checkExpiration, false, -1, true); _classInitted = true; }; this.expired = true; _repeatCount = 0; _align = $align; _stagger = $stagger; _dispatcher = new EventDispatcher(this); if ($tweens != null){ _tweens = parse($tweens, $DefaultTweenClass); updateTimeSpan(); realign(); } else { _tweens = []; _initTime = (_startTime = (this.endTime = 0)); }; } protected function offsetTime(_arg1:Array, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Array; var _local6:Boolean; var _local7:TweenLite; var _local8:Boolean; var _local9:Number; var _local10:Number; var _local11:int; var _local12:int; var _local13:Array; if (_arg1.length != 0){ _local3 = (_arg2 * 1000); _local4 = (isNaN(_pauseTime)) ? TweenLite.currentTime : _pauseTime; _local5 = getRenderOrder(_arg1, _local4); _local13 = []; _local12 = (_local5.length - 1); while (_local12 > -1) { _local7 = _local5[_local12]; if ((((((_local7 is _TweenMax)) && (_local7.initted))) && (((!(isNaN(_local7.exposedVars.yoyo))) || (!(isNaN(_local7.exposedVars.loop))))))){ _local11 = (isNaN(_local7.exposedVars.yoyo)) ? _local7.exposedVars.loop : _local7.exposedVars.yoyo; _local7.initTime = ((_local7.initTime + _local3) - ((_local7 as Object).repeatCount * ((_local7.duration * 1000) / _local7.combinedTimeScale))); } else { _local7.initTime = (_local7.initTime + _local3); }; _local6 = Boolean((_local7.startTime == 999999999999999)); _local9 = (_local7.initTime + (_local7.delay * (1000 / _local7.combinedTimeScale))); _local10 = getEndTime(_local7); _local8 = (((((_local9 <= _local4)) || (((_local9 - _local3) <= _local4)))) && ((((_local10 >= _local4)) || (((_local10 - _local3) >= _local4))))); if (((isNaN(_pauseTime)) && ((_local10 >= _local4)))){ _local7.enabled = true; }; if (!_local6){ _local7.startTime = _local9; }; if (_local9 >= _local4){ if (!_local7.initted){ _local8 = false; }; _local7.active = false; }; if (_local8){ _local13[_local13.length] = {tween:_local7, startTime:_local9}; }; _local12--; }; if (_arg2 > 0){ _local13.sortOn("startTime", Array.NUMERIC); } else { _local13.sortOn("startTime", (Array.NUMERIC | Array.DESCENDING)); }; _local12 = (_local13.length - 1); while (_local12 > -1) { renderTween(_local13[_local12].tween, _local4); _local12--; }; this.endTime = (this.endTime + _local3); _startTime = (_startTime + _local3); _initTime = (_initTime + _local3); if (((this.expired) && ((this.endTime > _local4)))){ this.expired = false; _unexpired[_unexpired.length] = this; }; }; } protected function renderTween(_arg1:TweenLite, _arg2:Number):void{ var _local4:Number; var _local5:Boolean; var _local6:Boolean; var _local7:int; var _local8:int; var _local9:Number; var _local3:Number = getEndTime(_arg1); if (_arg1.startTime == 999999999999999){ _arg1.startTime = (_arg1.initTime + ((_arg1.delay * 1000) / _arg1.combinedTimeScale)); _local5 = true; }; if (!_arg1.initted){ _local6 = _arg1.active; _arg1.active = false; if (_local5){ _arg1.initTweenVals(); if (_arg1.vars.onStart != null){ _arg1.vars.onStart.apply(null, _arg1.vars.onStartParams); }; } else { _arg1.activate(); }; _arg1.active = _local6; }; if (_arg1.startTime > _arg2){ _local4 = _arg1.startTime; } else { if (_local3 < _arg2){ _local4 = _local3; } else { _local4 = _arg2; }; }; if ((((((_arg1 is _TweenMax)) && (_arg1.initted))) && (((!(isNaN(_arg1.exposedVars.yoyo))) || (!(isNaN(_arg1.exposedVars.loop))))))){ _local7 = (isNaN(_arg1.exposedVars.yoyo)) ? _arg1.exposedVars.loop : _arg1.exposedVars.yoyo; _local8 = int((((_local4 - _arg1.initTime) - _arg1.delay) / ((_arg1.duration * 1000) / _arg1.combinedTimeScale))); if (_local8 > _local7){ _local8 = _local7; }; (_arg1 as Object).repeatCount = _local8; }; if (_local4 < 0){ _local9 = _arg1.startTime; _arg1.startTime = (_arg1.startTime - _local4); _arg1.render(0); _arg1.startTime = _local9; } else { _arg1.render(_local4); }; if (_local5){ _arg1.startTime = 999999999999999; }; } public function get align():String{ return (_align); } public function set align(_arg1:String):void{ _align = _arg1; realign(); } public function set reversed(_arg1:Boolean):void{ if (_reversed != _arg1){ reverse(true); }; } public function willTrigger(_arg1:String):Boolean{ return (_dispatcher.willTrigger(_arg1)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ var _local2 = " progress progressWithDelay duration durationWithDelay paused reversed timeScale align stagger tweens "; if (_tweens.hasOwnProperty(_arg1)){ return (true); }; if (_local2.indexOf(((" " + _arg1) + " ")) != -1){ return (true); }; return (false); } protected function getEndTime(_arg1:TweenLite):Number{ var _local3:Number; var _local2:Number = (_arg1.duration * (1000 / _arg1.combinedTimeScale)); if ((((_arg1 is _TweenMax)) && (((!(isNaN(_arg1.exposedVars.yoyo))) || (!(isNaN(_arg1.exposedVars.loop))))))){ _local3 = (isNaN(_arg1.exposedVars.yoyo)) ? _arg1.exposedVars.loop : _arg1.exposedVars.yoyo; if (_local3 == 0){ return (Infinity); }; _local2 = (((_local3 - (_arg1 as Object).repeatCount) + 1) * _local2); }; return (((_arg1.initTime + ((_arg1.delay * 1000) / _arg1.combinedTimeScale)) + _local2)); } public function get duration():Number{ if (_tweens.length == 0){ return (0); }; return (((this.endTime - _startTime) / 1000)); } public function restart(_arg1:Boolean=false):void{ setProgress(0, _arg1); _repeatCount = 0; resume(); } protected function getStartTime(_arg1:TweenLite):Number{ return ((_arg1.initTime + ((_arg1.delay * 1000) / _arg1.combinedTimeScale))); } protected function pauseTween(_arg1:TweenLite):void{ if ((_arg1 is _TweenMax)){ (_arg1 as Object).pauseTime = _pauseTime; }; _arg1.startTime = 999999999999999; _arg1.enabled = false; } protected function getRenderOrder(_arg1:Array, _arg2:Number):Array{ var _local3:int; var _local4:Number; var _local5:Array = []; var _local6:Array = []; var _local7:Array = []; _local3 = (_arg1.length - 1); while (_local3 > -1) { _local4 = getStartTime(_arg1[_local3]); if (_local4 >= _arg2){ _local5[_local5.length] = {start:_local4, tween:_arg1[_local3]}; } else { _local6[_local6.length] = {end:getEndTime(_arg1[_local3]), tween:_arg1[_local3]}; }; _local3--; }; _local5.sortOn("start", Array.NUMERIC); _local6.sortOn("end", Array.NUMERIC); _local3 = (_local5.length - 1); while (_local3 > -1) { _local7[_local3] = _local5[_local3].tween; _local3--; }; _local3 = (_local6.length - 1); while (_local3 > -1) { _local7[_local7.length] = _local6[_local3].tween; _local3--; }; return (_local7); } protected function getProgress(_arg1:Boolean=false):Number{ var _local2:Number; var _local3:Number; var _local4:Number; if (_tweens.length == 0){ return (0); }; _local2 = (isNaN(_pauseTime)) ? TweenLite.currentTime : _pauseTime; _local3 = (_arg1) ? _initTime : _startTime; _local4 = ((_local2 - _local3) / (this.endTime - _local3)); if (_local4 < 0){ return (0); }; if (_local4 > 1){ return (1); }; return (_local4); } protected function setTweenStartTime(_arg1:TweenLite, _arg2:Number):void{ var _local3:Number = (_arg2 - getStartTime(_arg1)); _arg1.initTime = (_arg1.initTime + _local3); if (_arg1.startTime != 999999999999999){ _arg1.startTime = _arg2; }; } public function mergeGroup(_arg1:TweenGroup, _arg2:Number=NaN):void{ var _local5:int; if (((isNaN(_arg2)) || ((_arg2 > _tweens.length)))){ _arg2 = _tweens.length; }; var _local3:Array = _arg1.tweens; var _local4:uint = _local3.length; _local5 = 0; while (_local5 < _local4) { _tweens.splice((_arg2 + _local5), 0, _local3[_local5]); _local5++; }; realign(); } public function get durationWithDelay():Number{ if (_tweens.length == 0){ return (0); }; return (((this.endTime - _initTime) / 1000)); } public function handleCompletion():void{ if (((!(isNaN(this.yoyo))) && ((((_repeatCount < this.yoyo)) || ((this.yoyo == 0)))))){ _repeatCount++; reverse(true); } else { if (((!(isNaN(this.loop))) && ((((_repeatCount < this.loop)) || ((this.loop == 0)))))){ _repeatCount++; setProgress(0, true); }; }; if (this.onComplete != null){ this.onComplete.apply(null, this.onCompleteParams); }; _dispatcher.dispatchEvent(new Event(Event.COMPLETE)); } public function resume():void{ var _local2:int; var _local4:Number; var _local1:Array = []; var _local3:Number = TweenLite.currentTime; _local2 = (_tweens.length - 1); while (_local2 > -1) { if (_tweens[_local2].startTime == 999999999999999){ resumeTween(_tweens[_local2]); _local1[_local1.length] = _tweens[_local2]; }; if ((((_tweens[_local2].startTime >= _local3)) && (!(_tweens[_local2].enabled)))){ _tweens[_local2].enabled = true; _tweens[_local2].active = false; }; _local2--; }; if (!isNaN(_pauseTime)){ _local4 = ((TweenLite.currentTime - _pauseTime) / 1000); _pauseTime = NaN; offsetTime(_local1, _local4); }; } public function get paused():Boolean{ return (!(isNaN(_pauseTime))); } public function updateTimeSpan():void{ var _local1:int; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:TweenLite; var _local6:int; if (_tweens.length == 0){ this.endTime = (_startTime = (_initTime = 0)); } else { _local5 = _tweens[0]; _initTime = _local5.initTime; _startTime = (_initTime + (_local5.delay * (1000 / _local5.combinedTimeScale))); this.endTime = (_startTime + (_local5.duration * (1000 / _local5.combinedTimeScale))); _local1 = (_tweens.length - 1); while (_local1 > 0) { _local5 = _tweens[_local1]; _local3 = _local5.initTime; if ((((((_local5 is _TweenMax)) && (_local5.initted))) && (((!(isNaN(_local5.exposedVars.yoyo))) || (!(isNaN(_local5.exposedVars.loop))))))){ _local6 = (isNaN(_local5.exposedVars.yoyo)) ? _local5.exposedVars.loop : _local5.exposedVars.yoyo; _local3 = (_local3 - ((_local5 as Object).repeatCount * ((_local5.duration * 1000) / _local5.combinedTimeScale))); }; _local2 = (_local3 + (_local5.delay * (1000 / _local5.combinedTimeScale))); _local4 = getEndTime(_local5); if (_local3 < _initTime){ _initTime = _local3; }; if (_local2 < _startTime){ _startTime = _local2; }; if (_local4 > this.endTime){ this.endTime = _local4; }; _local1--; }; if (((this.expired) && ((this.endTime > TweenLite.currentTime)))){ this.expired = false; _unexpired[_unexpired.length] = this; }; }; } public function get progressWithDelay():Number{ return (getProgress(true)); } public function realign():void{ var _local1:uint; var _local2:int; var _local3:Number; var _local4:Number; var _local5:Boolean; if (((!((_align == ALIGN_NONE))) && ((_tweens.length > 1)))){ _local1 = _tweens.length; _local3 = (_stagger * 1000); _local5 = _reversed; if (_local5){ _local4 = this.progressWithDelay; reverse(); this.progressWithDelay = 0; }; if (_align == ALIGN_SEQUENCE){ setTweenInitTime(_tweens[0], _initTime); _local2 = 1; while (_local2 < _local1) { setTweenInitTime(_tweens[_local2], (getEndTime(_tweens[(_local2 - 1)]) + _local3)); _local2++; }; } else { if (_align == ALIGN_INIT){ _local2 = 0; while (_local2 < _local1) { setTweenInitTime(_tweens[_local2], (_initTime + (_local3 * _local2))); _local2++; }; } else { if (_align == ALIGN_START){ _local2 = 0; while (_local2 < _local1) { setTweenStartTime(_tweens[_local2], (_startTime + (_local3 * _local2))); _local2++; }; } else { _local2 = 0; while (_local2 < _local1) { setTweenInitTime(_tweens[_local2], ((this.endTime - (((_tweens[_local2].delay + _tweens[_local2].duration) * 1000) / _tweens[_local2].combinedTimeScale)) - (_local3 * _local2))); _local2++; }; }; }; }; if (_local5){ reverse(); this.progressWithDelay = _local4; }; }; updateTimeSpan(); } public function get progress():Number{ return (getProgress(false)); } protected function setProgress(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; var _local4:Number; if (_tweens.length != 0){ _local3 = (isNaN(_pauseTime)) ? TweenLite.currentTime : _pauseTime; _local4 = (_arg2) ? _initTime : _startTime; offsetTime(_tweens, ((_local3 - (_local4 + ((this.endTime - _local4) * _arg1))) / 1000)); }; } protected function resumeTween(_arg1:TweenLite):void{ if ((_arg1 is _TweenMax)){ (_arg1 as Object).pauseTime = NaN; }; _arg1.startTime = (_arg1.initTime + (_arg1.delay * (1000 / _arg1.combinedTimeScale))); } public function dispatchEvent(_arg1:Event):Boolean{ return (_dispatcher.dispatchEvent(_arg1)); } public function get stagger():Number{ return (_stagger); } public function get reversed():Boolean{ return (_reversed); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_tweens[_arg1]); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _dispatcher.removeEventListener(_arg1, _arg2, _arg3); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function callProperty(_arg1, ... _args){ var _local3:* = _tweens[_arg1].apply(null, _args); realign(); if (!isNaN(_pauseTime)){ pause(); }; return (_local3); } protected function setTweenInitTime(_arg1:TweenLite, _arg2:Number):void{ var _local3:Number = (_arg2 - _arg1.initTime); _arg1.initTime = _arg2; if (_arg1.startTime != 999999999999999){ _arg1.startTime = (_arg1.startTime + _local3); }; } public function set progress(_arg1:Number):void{ setProgress(_arg1, false); } public function set progressWithDelay(_arg1:Number):void{ setProgress(_arg1, true); } public function set stagger(_arg1:Number):void{ _stagger = _arg1; realign(); } public function reverse(_arg1:Boolean=true):void{ var _local2:int; var _local3:TweenLite; var _local4:ReverseProxy; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _reversed = !(_reversed); var _local9:Number = 0; var _local10:Boolean; var _local11:Number = (isNaN(_pauseTime)) ? TweenLite.currentTime : _pauseTime; if (this.endTime <= _local11){ _local9 = (int((this.endTime - _local11)) + 1); _local10 = true; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; if ((_local3 is _TweenMax)){ _local5 = _local3.startTime; _local6 = _local3.initTime; (_local3 as Object).reverse(false, false); _local3.startTime = _local5; _local3.initTime = _local6; } else { if (_local3.ease != _local3.vars.ease){ _local3.ease = _local3.vars.ease; } else { _local4 = new ReverseProxy(_local3); _local3.ease = _local4.reverseEase; }; }; _local8 = _local3.combinedTimeScale; _local7 = (((((_local11 - _local3.initTime) / 1000) - (_local3.delay / _local8)) / _local3.duration) * _local8); _local5 = int(((_local11 - ((((1 - _local7) * _local3.duration) * 1000) / _local8)) + _local9)); _local3.initTime = int((_local5 - (_local3.delay * (1000 / _local8)))); if (_local3.startTime != 999999999999999){ _local3.startTime = _local5; }; if (_local3.startTime > _local11){ _local3.enabled = true; _local3.active = false; }; _local2--; }; updateTimeSpan(); if (_arg1){ if (_local10){ setProgress(0, true); }; resume(); }; } public function clear(_arg1:Boolean=true):void{ var _local2:int = (_tweens.length - 1); while (_local2 > -1) { if (_arg1){ TweenLite.removeTween(_tweens[_local2], true); }; _tweens[_local2] = null; _tweens.splice(_local2, 1); _local2--; }; if (!this.expired){ _local2 = (_unexpired.length - 1); while (_local2 > -1) { if (_unexpired[_local2] == this){ _unexpired.splice(_local2, 1); break; }; _local2--; }; this.expired = true; }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ onSetProperty(_arg1, _arg2); } public function get tweens():Array{ return (_tweens.slice()); } public function set paused(_arg1:Boolean):void{ if (_arg1){ pause(); } else { resume(); }; } public function toString():String{ return ((("TweenGroup( " + _tweens.toString()) + " )")); } public function get length():uint{ return (_tweens.length); } protected function getInitTime(_arg1:TweenLite):Number{ if ((((_arg1 is _TweenMax)) && (((!(isNaN(_arg1.exposedVars.yoyo))) || (!(isNaN(_arg1.exposedVars.loop))))))){ return ((_arg1.initTime - ((_arg1 as Object).repeatCount * ((_arg1.duration * 1000) / _arg1.combinedTimeScale)))); }; return (_arg1.initTime); } public function hasEventListener(_arg1:String):Boolean{ return (_dispatcher.hasEventListener(_arg1)); } public function pause():void{ if (isNaN(_pauseTime)){ _pauseTime = TweenLite.currentTime; }; var _local1:int = (_tweens.length - 1); while (_local1 > -1) { if (_tweens[_local1].startTime != 999999999999999){ pauseTween(_tweens[_local1]); }; _local1--; }; } protected function onSetProperty(_arg1, _arg2):void{ if (((!(isNaN(_arg1))) && (!((_arg2 is TweenLite))))){ trace("TweenGroup error: an attempt was made to add a non-TweenLite element."); } else { _tweens[_arg1] = _arg2; realign(); if (((!(isNaN(_pauseTime))) && ((_arg2 is TweenLite)))){ pauseTween((_arg2 as TweenLite)); }; }; } public function set timeScale(_arg1:Number):void{ var _local2:int = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2] is _TweenMax)){ _tweens[_local2].timeScale = _arg1; }; _local2--; }; updateTimeSpan(); } public function getActive():Array{ var _local2:int; var _local3:Number; var _local1:Array = []; if (isNaN(_pauseTime)){ _local3 = TweenLite.currentTime; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((((getStartTime(_tweens[_local2]) <= _local3)) && ((getEndTime(_tweens[_local2]) >= _local3)))){ _local1[_local1.length] = _tweens[_local2]; }; _local2--; }; }; return (_local1); } public function get timeScale():Number{ var _local1:uint; while (_local1 < _tweens.length) { if ((_tweens[_local1] is _TweenMax)){ return (_tweens[_local1].timeScale); }; _local1++; }; return (1); } protected static function checkExpiration(_arg1:Event):void{ var _local4:TweenGroup; var _local5:int; var _local2:uint = TweenLite.currentTime; var _local3:Array = _unexpired; _local5 = (_local3.length - 1); while (_local5 > -1) { _local4 = _local3[_local5]; if ((((((_local4.endTime > _prevTime)) && ((_local4.endTime <= _local2)))) && (!(_local4.paused)))){ _local3.splice(_local5, 1); _local4.expired = true; _local4.handleCompletion(); }; _local5--; }; _prevTime = _local2; } public static function allFrom(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Class=null):TweenGroup{ _arg3.runBackwards = true; return (allTo(_arg1, _arg2, _arg3, _arg4)); } public static function parse(_arg1:Array, _arg2:Class=null):Array{ var _local4:int; var _local5:Object; var _local6:Number; if (_arg2 == null){ _arg2 = TweenLite; }; var _local3:Array = []; _local4 = 0; while (_local4 < _arg1.length) { if ((_arg1[_local4] is TweenLite)){ _local3[_local3.length] = _arg1[_local4]; } else { _local5 = _arg1[_local4].target; _local6 = _arg1[_local4].time; delete _arg1[_local4].target; delete _arg1[_local4].time; _local3[_local3.length] = new _arg2(_local5, _local6, _arg1[_local4]); }; _local4++; }; return (_local3); } public static function allTo(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Class=null):TweenGroup{ var _local5:int; var _local6:Object; var _local7:String; if (_arg4 == null){ _arg4 = TweenLite; }; var _local8:TweenGroup = new TweenGroup(null, _arg4, ALIGN_INIT, ((_arg3.stagger) || (0))); _local8.onComplete = _arg3.onCompleteAll; _local8.onCompleteParams = _arg3.onCompleteAllParams; delete _arg3.stagger; delete _arg3.onCompleteAll; delete _arg3.onCompleteAllParams; _local5 = 0; while (_local5 < _arg1.length) { _local6 = {}; for (_local7 in _arg3) { _local6[_local7] = _arg3[_local7]; }; _local8[_local8.length] = new _arg4(_arg1[_local5], _arg2, _local6); _local5++; }; if (_local8.stagger < 0){ _local8.progressWithDelay = 0; }; return (_local8); } } }//package gs class ReverseProxy { private var _tween:TweenLite; private function ReverseProxy(_arg1:TweenLite){ _tween = _arg1; } public function reverseEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (_tween.vars.ease((_arg4 - _arg1), _arg2, _arg3, _arg4)); } }Section 83//TweenLite (gs.TweenLite) package gs { import flash.events.*; import flash.display.*; import flash.utils.*; import gs.plugins.*; import gs.utils.tween.*; public class TweenLite { public var started:Boolean; public var delay:Number; protected var _hasUpdate:Boolean; protected var _hasPlugins:Boolean; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; public var gc:Boolean; public var tweens:Array; public var vars:Object; public var ease:Function; public var exposedVars:Object; public var initTime:Number; public var combinedTimeScale:Number; public static const version:Number = 10.092; private static var _timer:Timer = new Timer(2000); public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var currentTime:uint; public static var masterList:Dictionary = new Dictionary(false); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1}; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public static var overwriteManager:Object; private static var _tlInitted:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (!_tlInitted){ TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]); currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _tlInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; if (typeof(this.vars.ease) != "function"){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars; this.tweens = []; this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if (((!((_arg1 in masterList))) || ((_local4 == 1)))){ masterList[_arg1] = [this]; } else { masterList[_arg1].push(this); }; if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){ this.target.visible = this.exposedVars.visible; }; }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (!(this.target in masterList)){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ _local2[_local2.length] = this; }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function clear():void{ this.tweens = []; this.vars = (this.exposedVars = {ease:this.vars.ease}); _hasUpdate = false; } public function render(_arg1:uint):void{ var _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function initTweenVals():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:TweenInfo; if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){ this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false); }; for (_local1 in this.exposedVars) { if ((_local1 in _reservedProps)){ } else { if ((_local1 in plugins)){ _local3 = new (plugins[_local1]); if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){ this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); } else { this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true); _hasPlugins = true; }; } else { this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); }; }; }; if (this.vars.runBackwards == true){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local4 = this.tweens[_local2]; this.tweens[_local2].start = (_local4.start + _local4.change); _local4.change = -(_local4.change); _local2--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.exposedVars, this.tweens); }; } public function complete(_arg1:Boolean=false):void{ var _local2:int; if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (_hasPlugins){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){ this.tweens[_local2].target.onComplete(); }; _local2--; }; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function updateAll(_arg1:Event=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; var _local2:uint = (currentTime = getTimer()); var _local3:Dictionary = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; _local5--; }; }; } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && ((_arg1 in masterList)))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } protected static function killGarbage(_arg1:TimerEvent):void{ var _local3:Object; var _local2:Dictionary = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gsSection 84//TweenMax (gs.TweenMax) package gs { import flash.events.*; import flash.utils.*; import gs.events.*; import gs.plugins.*; import gs.utils.tween.*; public class TweenMax extends TweenLite implements IEventDispatcher { protected var _dispatcher:EventDispatcher; protected var _callbacks:Object; public var pauseTime:Number; protected var _repeatCount:Number; protected var _timeScale:Number; public static const version:Number = 10.12; public static var removeTween:Function = TweenLite.removeTween; private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(); ; protected static var _pausedTweens:Dictionary = new Dictionary(false); protected static var _globalTimeScale:Number = 1; public static var killTweensOf:Function = TweenLite.killTweensOf; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _activatedPlugins:Boolean = TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin, HexColorsPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, BevelFilterPlugin, DropShadowFilterPlugin, GlowFilterPlugin, RoundPropsPlugin, BezierPlugin, BezierThroughPlugin, ShortRotationPlugin]); public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){ super(_arg1, _arg2, _arg3); if (TweenLite.version < 10.092){ trace("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com."); }; if (((!((this.combinedTimeScale == 1))) && ((this.target is TweenMax)))){ _timeScale = 1; this.combinedTimeScale = _globalTimeScale; } else { _timeScale = this.combinedTimeScale; this.combinedTimeScale = (this.combinedTimeScale * _globalTimeScale); }; if (((!((this.combinedTimeScale == 1))) && (!((this.delay == 0))))){ this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ initDispatcher(); if ((((_arg2 == 0)) && ((this.delay == 0)))){ onUpdateDispatcher(); onCompleteDispatcher(); }; }; _repeatCount = 0; if (((!(isNaN(this.vars.yoyo))) || (!(isNaN(this.vars.loop))))){ this.vars.persist = true; }; if ((((this.delay == 0)) && (!((this.vars.startAt == null))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; } public function dispatchEvent(_arg1:Event):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.dispatchEvent(_arg1)); } public function get reversed():Boolean{ return ((this.ease == reverseEase)); } public function set reversed(_arg1:Boolean):void{ if (this.reversed != _arg1){ reverse(); }; } public function get progress():Number{ var _local1:Number = (isNaN(this.pauseTime)) ? currentTime : this.pauseTime; var _local2:Number = (((((_local1 - this.initTime) * 0.001) - (this.delay / this.combinedTimeScale)) / this.duration) * this.combinedTimeScale); if (_local2 > 1){ return (1); }; if (_local2 < 0){ return (0); }; return (_local2); } override public function set enabled(_arg1:Boolean):void{ if (!_arg1){ _pausedTweens[this] = null; delete _pausedTweens[this]; }; super.enabled = _arg1; if (_arg1){ this.combinedTimeScale = (_timeScale * _globalTimeScale); }; } protected function onStartDispatcher(... _args):void{ if (_callbacks.onStart != null){ _callbacks.onStart.apply(null, this.vars.onStartParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START)); } public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{ var _local5:int; var _local6:TweenInfo; var _local7:Object; var _local8:Object; var _local9:Array; var _local10:Boolean; var _local11:Array; var _local12:Object; var _local4:Number = this.progress; if (this.initted){ if (!_arg3){ _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ _local6.target[_local6.property] = _local6.start; }; _local5--; }; }; _local7 = this.vars; _local8 = this.exposedVars; _local9 = this.tweens; _local10 = _hasPlugins; this.tweens = []; this.vars = (this.exposedVars = {}); this.vars[_arg1] = _arg2; initTweenVals(); if (((!((this.ease == reverseEase))) && ((_local7.ease is Function)))){ this.ease = _local7.ease; }; if (((_arg3) && (!((_local4 == 0))))){ adjustStartValues(); }; _local11 = this.tweens; this.vars = _local7; this.exposedVars = _local8; this.tweens = _local9; _local12 = {}; _local12[_arg1] = true; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ this.tweens.splice(_local5, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_local12); if (_local6.target.overwriteProps.length == 0){ this.tweens.splice(_local5, 1); }; }; }; _local5--; }; this.tweens = this.tweens.concat(_local11); _hasPlugins = Boolean(((_local10) || (_hasPlugins))); }; this.vars[_arg1] = (this.exposedVars[_arg1] = _arg2); } override public function initTweenVals():void{ var _local1:int; var _local2:int; var _local3:String; var _local4:String; var _local5:Array; var _local6:Object; var _local7:TweenInfo; if (((!((this.vars.startAt == null))) && (!((this.delay == 0))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; super.initTweenVals(); if ((((this.exposedVars.roundProps is Array)) && (!((TweenLite.plugins.roundProps == null))))){ _local5 = this.exposedVars.roundProps; _local1 = (_local5.length - 1); while (_local1 > -1) { _local3 = _local5[_local1]; _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local7 = this.tweens[_local2]; if (_local7.name == _local3){ if (_local7.isPlugin){ _local7.target.round = true; } else { if (_local6 == null){ _local6 = new TweenLite.plugins.roundProps(); _local6.add(_local7.target, _local3, _local7.start, _local7.change); _hasPlugins = true; this.tweens[_local2] = new TweenInfo(_local6, "changeFactor", 0, 1, _local3, true); } else { _local6.add(_local7.target, _local3, _local7.start, _local7.change); this.tweens.splice(_local2, 1); }; }; } else { if (((((_local7.isPlugin) && ((_local7.name == "_MULTIPLE_")))) && (!(_local7.target.round)))){ _local4 = ((" " + _local7.target.overwriteProps.join(" ")) + " "); if (_local4.indexOf(((" " + _local3) + " ")) != -1){ _local7.target.round = true; }; }; }; _local2--; }; _local1--; }; }; } public function restart(_arg1:Boolean=false):void{ if (_arg1){ this.initTime = currentTime; this.startTime = (currentTime + (this.delay * (1000 / this.combinedTimeScale))); } else { this.startTime = currentTime; this.initTime = (currentTime - (this.delay * (1000 / this.combinedTimeScale))); }; _repeatCount = 0; if (this.target != this.vars.onComplete){ render(this.startTime); }; this.pauseTime = NaN; _pausedTweens[this] = null; delete _pausedTweens[this]; this.enabled = true; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_dispatcher != null){ _dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_dispatcher == null){ initDispatcher(); }; if ((((_arg1 == TweenEvent.UPDATE)) && (!((this.vars.onUpdate == onUpdateDispatcher))))){ this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; _dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } protected function adjustStartValues():void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:TweenInfo; var _local6:int; var _local1:Number = this.progress; if (_local1 != 0){ _local2 = this.ease(_local1, 0, 1, 1); _local3 = (1 / (1 - _local2)); _local6 = (this.tweens.length - 1); while (_local6 > -1) { _local5 = this.tweens[_local6]; _local4 = (_local5.start + _local5.change); if (_local5.isPlugin){ _local5.change = ((_local4 - _local2) * _local3); } else { _local5.change = ((_local4 - _local5.target[_local5.property]) * _local3); }; _local5.start = (_local4 - _local5.change); _local6--; }; }; } override public function render(_arg1:uint):void{ var _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = (((_arg1 - this.startTime) * 0.001) * this.combinedTimeScale); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } protected function initDispatcher():void{ var _local1:Object; var _local2:String; if (_dispatcher == null){ _dispatcher = new EventDispatcher(this); _callbacks = {onStart:this.vars.onStart, onUpdate:this.vars.onUpdate, onComplete:this.vars.onComplete}; if (this.vars.isTV == true){ this.vars = this.vars.clone(); } else { _local1 = {}; for (_local2 in this.vars) { _local1[_local2] = this.vars[_local2]; }; this.vars = _local1; }; this.vars.onStart = onStartDispatcher; this.vars.onComplete = onCompleteDispatcher; if ((this.vars.onStartListener is Function)){ _dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true); }; if ((this.vars.onUpdateListener is Function)){ _dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true); this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; if ((this.vars.onCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true); }; }; } public function willTrigger(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.willTrigger(_arg1)); } public function get repeatCount():Number{ return (_repeatCount); } public function reverse(_arg1:Boolean=true, _arg2:Boolean=true):void{ this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; var _local3:Number = this.progress; if (((_arg1) && ((_local3 > 0)))){ this.startTime = (currentTime - ((((1 - _local3) * this.duration) * 1000) / this.combinedTimeScale)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); }; if (_arg2 != false){ if (_local3 < 1){ resume(); } else { restart(); }; }; } protected function onUpdateDispatcher(... _args):void{ if (_callbacks.onUpdate != null){ _callbacks.onUpdate.apply(null, this.vars.onUpdateParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); } public function set paused(_arg1:Boolean):void{ if (_arg1){ pause(); } else { resume(); }; } public function resume():void{ this.enabled = true; if (!isNaN(this.pauseTime)){ this.initTime = (this.initTime + (currentTime - this.pauseTime)); this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); this.pauseTime = NaN; if (((!(this.started)) && ((currentTime >= this.startTime)))){ activate(); } else { this.active = this.started; }; _pausedTweens[this] = null; delete _pausedTweens[this]; }; } public function get paused():Boolean{ return (!(isNaN(this.pauseTime))); } public function set repeatCount(_arg1:Number):void{ _repeatCount = _arg1; } public function reverseEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.ease((_arg4 - _arg1), _arg2, _arg3, _arg4)); } public function killProperties(_arg1:Array):void{ var _local3:int; var _local2:Object = {}; _local3 = (_arg1.length - 1); while (_local3 > -1) { _local2[_arg1[_local3]] = true; _local3--; }; killVars(_local2); } public function set progress(_arg1:Number):void{ this.startTime = (currentTime - ((this.duration * _arg1) * 1000)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); if (!this.started){ activate(); }; render(currentTime); if (!isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.active = false; }; } public function hasEventListener(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.hasEventListener(_arg1)); } public function pause():void{ if (isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.enabled = false; _pausedTweens[this] = this; }; } override public function complete(_arg1:Boolean=false):void{ if (((((!(isNaN(this.vars.yoyo))) && ((((_repeatCount < this.vars.yoyo)) || ((this.vars.yoyo == 0)))))) || (((!(isNaN(this.vars.loop))) && ((((_repeatCount < this.vars.loop)) || ((this.vars.loop == 0)))))))){ _repeatCount++; if (!isNaN(this.vars.yoyo)){ this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; }; this.startTime = (_arg1) ? (this.startTime + (this.duration * (1000 / this.combinedTimeScale))) : currentTime; this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); } else { if (this.vars.persist == true){ pause(); }; }; super.complete(_arg1); } public function set timeScale(_arg1:Number):void{ if (_arg1 < 1E-5){ _arg1 = (_timeScale = 1E-5); } else { _timeScale = _arg1; _arg1 = (_arg1 * _globalTimeScale); }; this.initTime = ((currentTime - ((((currentTime - this.initTime) - (this.delay * (1000 / this.combinedTimeScale))) * this.combinedTimeScale) * (1 / _arg1))) - (this.delay * (1000 / _arg1))); if (this.startTime != 999999999999999){ this.startTime = (this.initTime + (this.delay * (1000 / _arg1))); }; this.combinedTimeScale = _arg1; } public function invalidate(_arg1:Boolean=true):void{ var _local2:Number; if (this.initted){ _local2 = this.progress; if (((!(_arg1)) && (!((_local2 == 0))))){ this.progress = 0; }; this.tweens = []; _hasPlugins = false; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars; initTweenVals(); _timeScale = ((this.vars.timeScale) || (1)); this.combinedTimeScale = (_timeScale * _globalTimeScale); this.delay = ((this.vars.delay) || (0)); if (isNaN(this.pauseTime)){ this.startTime = (this.initTime + ((this.delay * 1000) / this.combinedTimeScale)); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ if (_dispatcher != null){ this.vars.onStart = _callbacks.onStart; this.vars.onUpdate = _callbacks.onUpdate; this.vars.onComplete = _callbacks.onComplete; _dispatcher = null; }; initDispatcher(); }; if (_local2 != 0){ if (_arg1){ adjustStartValues(); } else { this.progress = _local2; }; }; }; } public function get timeScale():Number{ return (_timeScale); } protected function onCompleteDispatcher(... _args):void{ if (_callbacks.onComplete != null){ _callbacks.onComplete.apply(null, this.vars.onCompleteParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); } public static function set globalTimeScale(_arg1:Number):void{ setGlobalTimeScale(_arg1); } public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(true, _arg1, _arg2); } public static function killAllDelayedCalls(_arg1:Boolean=false):void{ killAll(_arg1, false, true); } public static function setGlobalTimeScale(_arg1:Number):void{ var _local3:int; var _local4:Array; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; var _local2:Dictionary = masterList; _globalTimeScale = _arg1; for each (_local4 in _local2) { _local3 = (_local4.length - 1); while (_local3 > -1) { if ((_local4[_local3] is TweenMax)){ _local4[_local3].timeScale = (_local4[_local3].timeScale * 1); }; _local3--; }; }; } public static function get globalTimeScale():Number{ return (_globalTimeScale); } public static function getTweensOf(_arg1:Object):Array{ var _local4:TweenLite; var _local5:int; var _local2:Array = masterList[_arg1]; var _local3:Array = []; if (_local2 != null){ _local5 = (_local2.length - 1); while (_local5 > -1) { if (!_local2[_local5].gc){ _local3[_local3.length] = _local2[_local5]; }; _local5--; }; }; for each (_local4 in _pausedTweens) { if (_local4.target == _arg1){ _local3[_local3.length] = _local4; }; }; return (_local3); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{ return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, persist:_arg4, overwrite:0})); } public static function isTweening(_arg1:Object):Boolean{ var _local2:Array = getTweensOf(_arg1); var _local3:int = (_local2.length - 1); while (_local3 > -1) { if (((((_local2[_local3].active) || ((_local2[_local3].startTime == currentTime)))) && (!(_local2[_local3].gc)))){ return (true); }; _local3--; }; return (false); } public static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{ var _local5:Boolean; var _local4:Array = getAllTweens(); var _local6:int = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local4[_local6] is TweenMax)) && ((((_local5 == _arg3)) || (!((_local5 == _arg2))))))){ _local4[_local6].paused = _arg1; }; _local6--; }; } public static function killAllTweens(_arg1:Boolean=false):void{ killAll(_arg1, true, false); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ _arg3.runBackwards = true; return (new TweenMax(_arg1, _arg2, _arg3)); } public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{ var _local5:Boolean; var _local6:int; var _local4:Array = getAllTweens(); _local6 = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){ if (_arg1){ _local4[_local6].complete(false); _local4[_local6].clear(); } else { TweenLite.removeTween(_local4[_local6], true); }; }; _local6--; }; } public static function getAllTweens():Array{ var _local3:Array; var _local4:int; var _local5:TweenLite; var _local1:Dictionary = masterList; var _local2:Array = []; for each (_local3 in _local1) { _local4 = (_local3.length - 1); while (_local4 > -1) { if (!_local3[_local4].gc){ _local2[_local2.length] = _local3[_local4]; }; _local4--; }; }; for each (_local5 in _pausedTweens) { _local2[_local2.length] = _local5; }; return (_local2); } public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(false, _arg1, _arg2); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ return (new TweenMax(_arg1, _arg2, _arg3)); } } }//package gsSection 85//LevelData (levels.LevelData) package levels { import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.ui.*; public class LevelData { private var _mapPacks:Array; public function LevelData():void{ _mapPacks = []; _mapPacks.push(new MapPack1()); _mapPacks.push(new MapPack2()); } public function getPackIndexById(_arg1:int):int{ var _local3:MapPack; var _local2:int; for each (_local3 in _mapPacks) { if (_local3.id == _arg1){ return (_local2); }; _local2++; }; return (undefined); } public function getPackById(_arg1:int):MapPack{ var _local2:MapPack; for each (_local2 in _mapPacks) { if (_local2.id == _arg1){ return (_local2); }; }; return (null); } public function getPackId(_arg1:int):Number{ var _local2:MapPack = _mapPacks[(_arg1 - 1)]; if (!_local2){ throw (new Error(("There is no mappack by that index: " + _arg1))); }; return (_local2.id); } public function get mapPacks():Array{ return (_mapPacks); } public function loadPack(_arg1:int):MapPack{ return (_mapPacks[(_arg1 - 1)]); } } }//package levelsSection 86//MapPack (levels.MapPack) package levels { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import com.gskinner.utils.*; import flash.ui.*; public class MapPack { protected var _level:Level; protected var _levels:Array; protected var _itemStoreId:String; protected var _renderer:Renderer; protected var _levelNumber:int; protected var _bonusLevels:Array; protected var _id:Number; protected var _bonusLevel:int; protected var _bonusSuit:String; protected var _levelData:Object; public var number:int; protected var _game:Game; protected var _levelImages:Array; protected var _boardId:String; protected var _name:String; protected var _sellScreen:Sprite; public function MapPack(_arg1:Array=null):void{ _sellScreen = new Sprite(); if (_arg1){ _levels = _arg1; } else { createLevelData(); }; loadLevelData(); _bonusLevels = [LevelBonusClear, LevelBonusFlock, LevelBonusFat, LevelBonusPeek]; _levelImages = []; } protected function generateTimeOfDay(_arg1:Object, _arg2:Number):Number{ var _local3:Number = (1440 / 24); var _local4:Number = ((_arg2 * _local3) + 360); if (_local4 > 1440){ _local4 = (_local4 - 1440); }; return (_local4); } public function get level():Level{ return (_level); } public function get name():String{ return (_name); } public function getGround():Sprite{ var _local1:Sprite = new Sprite(); var _local2:Bitmap = new Assets.Grass(); _local2.y = (Main.GAME_HEIGHT - _local2.height); var _local3:Bitmap = new Assets.GrassBlur(); _local3.y = (Main.GAME_HEIGHT - _local3.height); _local1.addChild(_local2); _local1.addChild(_local3); return (_local1); } private function loadLevelData():Array{ var _local2:Object; var _local1:Number = 0; for each (_local2 in _levels) { this.processLevel(_local2, _local1); _local1++; }; return (_levels); } public function get isNextLevelBonus():Boolean{ if (((_levelNumber) && (((_levelNumber % 5) == 0)))){ return (true); }; return (false); } public function get id():Number{ return (_id); } public function playSounds():void{ } public function getThumb(_arg1:int):Class{ return (_levelImages[(_arg1 - 1)]); } public function get boardId():String{ return (_boardId); } public function get bonusLevel():int{ return (_bonusLevel); } public function loadBonusLevel(_arg1:int, _arg2:Renderer):Level{ _levelNumber = undefined; _bonusLevel = _arg1; var _local3:Class = _bonusLevels[(_arg1 - 1)]; _level = new _local3(_arg2); _levelData = {targetScore:LevelBonus(_level).targetScore}; return (_level); } protected function createLevelData():void{ } protected function countNuts(_arg1:Object):Number{ var _local3:Array; var _local4:Number; var _local2:Number = 0; for each (_local3 in _arg1.nuts) { for each (_local4 in _local3) { if ((((((((_local4 == 1)) || ((_local4 == 2)))) || ((_local4 == 3)))) || ((_local4 == 4)))){ _local2++; }; }; }; return (_local2); } public function set id(_arg1:Number):void{ _id = _arg1; } public function loadLevel(_arg1:int, _arg2:Renderer):Level{ _bonusLevel = undefined; _levelNumber = _arg1; _levelData = _levels[(_arg1 - 1)]; _level = new Level(_levelData, _levelNumber, _arg2); return (_level); } public function getStage(_arg1:int):Array{ _arg1--; return (_levels.slice((_arg1 * 5), ((_arg1 * 5) + 5))); } public function get itemStoreId():String{ return (_itemStoreId); } public function get bonusSuit():String{ return (_bonusSuit); } public function get levelData():Object{ return (_levelData); } protected function processLevel(_arg1:Object, _arg2:Number=1):Object{ _arg1.nutCount = this.countNuts(_arg1); _arg1.starCount = this.generateStarCount(_arg1); _arg1.targetScore = this.generateTargetScore(_arg1); _arg1.time = this.generateTimeOfDay(_arg1, _arg2); if (!_arg1.targetShots){ _arg1.targetShots = 10; }; return (_arg1); } public function getNextBonusLevelNumber():int{ return (Math.ceil((_levelNumber / 5))); } public function getBonusTargetScore(_arg1:int):Number{ var _local2:Number; var _local3:Class = _bonusLevels[(_arg1 - 1)]; _local2 = _local3.TARGETSCORE; return (_local2); } public function getStageStatus(_arg1:Number, _arg2:Array):Array{ var _local5:int; var _local3:Array = []; var _local4:Array = getStage(Math.ceil((_arg1 / 5))); _local5 = 0; while (_local5 < 5) { if (_arg2[_local5] > _local4[_local5].targetScore){ _local3.push(true); } else { _local3.push(false); }; _local5++; }; return (_local3); } protected function generateTargetScore(_arg1:Object):Number{ if (_arg1.targetScore){ return (_arg1.targetScore); }; var _local2:Number = Math.round((10 * (_arg1.starCount / 2))); var _local3:Number = 2000; return (((_local2 * _arg1.nutCount) + _local3)); } public function get sellScreen():Sprite{ return (_sellScreen); } public function nextLevel():Level{ return (null); } public function getNextLevelNumber():int{ var _local1:int; if (_bonusLevel != 0){ _local1 = ((5 * _bonusLevel) + 1); } else { _local1 = (_levelNumber + 1); }; return (_local1); } protected function generateStarCount(_arg1:Object):Number{ if (_arg1.targetStars){ return (_arg1.targetStars); }; if (_arg1.nutCount <= 30){ return (15); }; return (30); } public function get levelNumber():Number{ return (_levelNumber); } public function get levels():Array{ return (_levels); } public function isRowUnLocked(_arg1:Number, _arg2:Number):Boolean{ var _local10:Number; var _local11:Number; var _local3:Number = 5; var _local4:Number = _levels.length; var _local5:Number = Math.ceil((_local4 / _local3)); var _local6:Number = Math.ceil((_arg2 / _local3)); var _local7:Number = (_local6 - 1); if (_local6 == 1){ return (true); }; var _local8:Boolean; var _local9:Number = 1; while (_local9 <= _local3) { _local10 = (_local9 + ((_local7 - 1) * _local3)); _local11 = Main.player.getLevelScore(_arg1, _local10); if (_local11 < _levels[(_local10 - 1)].targetScore){ _local8 = false; }; _local9++; }; return (_local8); } public function getParticles():Particles{ return (new Particles(Assets.Dandelion)); } public function getTerrain():Bitmap{ return (new Assets.SpringTerrain()); } public static function getStageString(_arg1:int):String{ var _local2:int = Math.ceil((_arg1 / 5)); var _local3:int = (_arg1 - ((Math.ceil((_arg1 / 5)) - 1) * 5)); return (String(((_local2 + "-") + _local3))); } } }//package levelsSection 87//MapPack1 (levels.MapPack1) package levels { import flash.display.*; public class MapPack1 extends MapPack { public static const PACK_ID:int = 313232123; public static const BONUS_SUIT:String = "viking"; public function MapPack1():void{ _name = "Spring"; number = 1; _id = PACK_ID; var _local1:Sprite = new Sprite(); _local1.addChild(new Assets.NutNormal()); _sellScreen = _local1; _bonusSuit = BONUS_SUIT; _boardId = "07d7fa6eb5c50546"; _levelImages = [Assets.Spring1_1, Assets.Spring1_2, Assets.Spring1_3, Assets.Spring1_4, Assets.Spring1_5, Assets.Spring2_1, Assets.Spring2_2, Assets.Spring2_3, Assets.Spring2_4, Assets.Spring2_5, Assets.Spring3_1, Assets.Spring3_2, Assets.Spring3_3, Assets.Spring3_4, Assets.Spring3_5, Assets.Spring4_1, Assets.Spring4_2, Assets.Spring4_3, Assets.Spring4_4, Assets.Spring4_5]; } override protected function createLevelData():void{ _levels = [{id:99, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 9, 0, 0, 1, 0, 0, 9, 0, 0, 1, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0], [0, 1, 1, 4, 1, 1, 0, 1, 1, 4, 1, 1, 0, 1, 1, 4, 1, 1, 0], [0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 1, 0, 8, 0, 8, 0, 1, 0, 8, 0, 8, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[], targetScore:150000, targetStars:20}, {id:97, nuts:[[1, 1, 1, 0, 1, 4, 1, 0, 1, 1, 1, 0, 1, 4, 1, 0, 1, 1, 1], [1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 4, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 4, 1, 0, 0], [0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:355, y:293}, end:{x:231, y:426}, type:4}, {start:{x:345, y:296}, end:{x:467, y:428}, type:4}, {start:{x:472, y:426}, end:{x:225, y:425}, type:4}], targetScore:150000, targetStars:20}, {id:53, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0], [0, 1, 4, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 4, 1, 0], [0, 1, 1, 1, 0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:118, y:460}, end:{x:7, y:367}, type:1}, {start:{x:6, y:361}, end:{x:6, y:466}, type:1}, {start:{x:-5, y:461}, end:{x:124, y:461}, type:1}], targetScore:150000, targetStars:20}, {id:62, nuts:[[0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0], [0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0], [0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0], [0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 0], [0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0], [0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:53, y:301}, end:{x:158, y:301}, type:1}, {start:{x:368, y:297}, end:{x:472, y:298}, type:1}], targetScore:150000, targetStars:20}, {id:90, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0], [0, 1, 4, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 4, 1, 0], [0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[], targetScore:150000, targetStars:20}, {id:93, nuts:[[2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0], [1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [8, 1, 1, 1, 8, 1, 1, 1, 8, 1, 1, 1, 8, 1, 1, 1, 8, 8, 0], [8, 1, 1, 1, 8, 1, 1, 1, 8, 1, 1, 1, 8, 1, 1, 1, 8, 8, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 9, 1, 1, 1, 9, 1, 1, 1, 9, 1, 1, 1, 9, 1, 1, 1, 0], [1, 1, 0, 1, 4, 1, 0, 1, 1, 1, 0, 1, 4, 1, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[], targetScore:175000, targetStars:20}, {id:61, nuts:[[1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:508, y:194}, end:{x:699, y:194}, type:1}, {start:{x:508, y:333}, end:{x:698, y:332}, type:1}, {start:{x:515, y:190}, end:{x:517, y:234}, type:1}, {start:{x:508, y:70}, end:{x:699, y:71}, type:1}, {start:{x:516, y:66}, end:{x:517, y:113}, type:1}, {start:{x:683, y:333}, end:{x:699, y:315}, type:1}, {start:{x:683, y:196}, end:{x:697, y:176}, type:1}, {start:{x:185, y:115}, end:{x:184, y:82}, type:1}, {start:{x:193, y:73}, end:{x:1, y:74}, type:1}, {start:{x:192, y:191}, end:{x:1, y:192}, type:1}, {start:{x:185, y:187}, end:{x:185, y:235}, type:1}, {start:{x:13, y:194}, end:{x:2, y:177}, type:1}, {start:{x:190, y:330}, end:{x:2, y:331}, type:1}, {start:{x:21, y:328}, end:{x:2, y:310}, type:1}, {start:{x:428, y:81}, end:{x:430, y:222}, type:2, animateTo:{x:430, y:341}, speed:1}, {start:{x:267, y:408}, end:{x:267, y:275}, type:2, animateTo:{x:267, y:146}, speed:1}], targetScore:150000, targetStars:20}, {id:43, nuts:[[0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:18, y:157}, end:{x:89, y:156}, type:1}, {start:{x:81, y:151}, end:{x:82, y:186}, type:1}, {start:{x:73, y:192}, end:{x:123, y:192}, type:1}, {start:{x:115, y:187}, end:{x:115, y:222}, type:1}, {start:{x:106, y:227}, end:{x:158, y:226}, type:1}, {start:{x:150, y:222}, end:{x:150, y:0x0100}, type:1}, {start:{x:142, y:262}, end:{x:193, y:261}, type:1}, {start:{x:185, y:0x0101}, end:{x:185, y:291}, type:1}, {start:{x:177, y:296}, end:{x:227, y:297}, type:1}, {start:{x:222, y:293}, end:{x:220, y:326}, type:1}, {start:{x:212, y:331}, end:{x:262, y:332}, type:1}, {start:{x:254, y:328}, end:{x:0xFF, y:361}, type:1}, {start:{x:338, y:326}, end:{x:338, y:360}, type:1}, {start:{x:576, y:157}, end:{x:508, y:159}, type:1}, {start:{x:0x0202, y:154}, end:{x:515, y:186}, type:1}, {start:{x:521, y:191}, end:{x:473, y:194}, type:1}, {start:{x:479, y:190}, end:{x:480, y:220}, type:1}, {start:{x:486, y:228}, end:{x:437, y:229}, type:1}, {start:{x:445, y:223}, end:{x:445, y:0xFF}, type:1}, {start:{x:450, y:261}, end:{x:403, y:264}, type:1}, {start:{x:411, y:258}, end:{x:411, y:291}, type:1}, {start:{x:418, y:297}, end:{x:368, y:298}, type:1}, {start:{x:375, y:293}, end:{x:376, y:326}, type:1}, {start:{x:381, y:331}, end:{x:332, y:333}, type:1}, {start:{x:253, y:81}, end:{x:254, y:96}, type:1}, {start:{x:246, y:74}, end:{x:346, y:75}, type:1}, {start:{x:338, y:80}, end:{x:340, y:95}, type:1}], targetScore:150000, targetStars:20}, {id:86, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 8, 1, 3, 1, 0, 8, 0, 1, 4, 1, 8, 0, 0, 1, 1, 4, 8, 0], [0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0], [0, 0, 0, 8, 0, 1, 1, 1, 0, 8, 0, 1, 1, 1, 8, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0], [0, 0, 1, 4, 1, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 4, 1, 0, 0], [0, 8, 0, 1, 0, 0, 8, 0, 0, 1, 0, 8, 0, 0, 0, 1, 0, 8, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[], targetScore:150000, targetStars:25}, {id:74, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0], [0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:509, y:262}, end:{x:437, y:264}, type:1}, {start:{x:0x0202, y:270}, end:{x:0x0202, y:115}, type:1}, {start:{x:45, y:61}, end:{x:45, y:271}, type:1}, {start:{x:37, y:264}, end:{x:123, y:263}, type:1}, {start:{x:507, y:368}, end:{x:331, y:368}, type:2, animateTo:{x:366, y:368}, speed:"1"}, {start:{x:52, y:368}, end:{x:229, y:368}, type:2, animateTo:{x:193, y:368}, speed:"1"}], targetScore:200000, targetStars:20}, {id:49, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 0, 1, 9, 1, 1, 9, 1, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0, 1, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 0, 1, 9, 1, 1, 9, 1, 0, 0, 0, 1, 1, 1], [0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 4, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 9, 1, 1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:650, y:160}, end:{x:698, y:118}, type:1}, {start:{x:698, y:160}, end:{x:540, y:162}, type:1}, {start:{x:78, y:105}, end:{x:79, y:0x0101}, type:1}, {start:{x:239, y:110}, end:{x:240, y:258}, type:1}, {start:{x:245, y:107}, end:{x:70, y:108}, type:1}, {start:{x:71, y:261}, end:{x:249, y:262}, type:3, moveTo:{x:319, y:262}, trigger:{x:660, y:122, rotation:"-38"}}], targetScore:75000, targetStars:20}, {id:61, nuts:[[0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1], [1, 1, 4, 1, 1, 0, 0, 1, 1, 4, 1, 1, 0, 0, 0, 0, 0, 4, 1], [1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:543, y:228}, end:{x:699, y:228}, type:1}, {start:{x:680, y:231}, end:{x:699, y:212}, type:1}, {start:{x:108, y:227}, end:{x:59, y:284}, type:1}, {start:{x:100, y:231}, end:{x:151, y:283}, type:1}, {start:{x:157, y:283}, end:{x:54, y:283}, type:1}, {start:{x:352, y:226}, end:{x:305, y:285}, type:1}, {start:{x:345, y:228}, end:{x:397, y:286}, type:1}, {start:{x:403, y:283}, end:{x:297, y:283}, type:1}, {start:{x:234, y:80}, end:{x:235, y:222}, type:2, animateTo:{x:235, y:326}, speed:1}, {start:{x:478, y:0x0100}, end:{x:480, y:396}, type:2, animateTo:{x:479, y:151}, speed:1}], targetScore:200000, targetStars:20}, {id:48, nuts:[[1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1], [1, 1, 1, 0, 1, 4, 1, 0, 1, 4, 1, 0, 1, 4, 1, 0, 1, 1, 1], [1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:613, y:228}, end:{x:699, y:228}, type:1}, {start:{x:86, y:228}, end:{x:1, y:228}, type:1}, {start:{x:88, y:263}, end:{x:193, y:263}, type:2, animateTo:{x:317, y:263}, speed:1}, {start:{x:611, y:299}, end:{x:507, y:299}, type:2, animateTo:{x:384, y:299}, speed:1}, {start:{x:227, y:228}, end:{x:333, y:228}, type:2, animateTo:{x:139, y:228}, speed:1}, {start:{x:367, y:228}, end:{x:475, y:228}, type:2, animateTo:{x:558, y:228}, speed:1}], targetScore:200000, targetStars:20}, {id:59, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 3, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 4, 1, 1, 1, 4, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 4, 1, 1, 1, 4, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 9, 1, 0, 1, 9, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:698, y:88}, end:{x:507, y:88}, type:1}, {start:{x:0x0202, y:88}, end:{x:262, y:90}, type:1}, {start:{x:275, y:90}, end:{x:3, y:89}, type:1}, {start:{x:651, y:88}, end:{x:699, y:153}, type:1}, {start:{x:689, y:397}, end:{x:618, y:330}, type:1}, {start:{x:688, y:276}, end:{x:617, y:340}, type:1}, {start:{x:691, y:269}, end:{x:693, y:404}, type:1}, {start:{x:306, y:95}, end:{x:307, y:293}, type:1}, {start:{x:51, y:89}, end:{x:1, y:138}, type:1}, {start:{x:98, y:98}, end:{x:99, y:0xFF}, type:1}, {start:{x:20, y:299}, end:{x:122, y:391}, type:2, animateTo:{x:171, y:438}, speed:"1"}], targetScore:250000, targetStars:25}, {id:34, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 3, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 4, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 4, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:199, y:148}, end:{x:200, y:292}, type:1}, {start:{x:391, y:152}, end:{x:393, y:0x0100}, type:1}, {start:{x:447, y:152}, end:{x:448, y:0x0101}, type:1}, {start:{x:114, y:150}, end:{x:115, y:0x0101}, type:1}, {start:{x:199, y:288}, end:{x:199, y:396}, type:1}, {start:{x:208, y:402}, end:{x:52, y:403}, type:1}, {start:{x:172, y:400}, end:{x:199, y:376}, type:1}, {start:{x:60, y:398}, end:{x:61, y:431}, type:1}, {start:{x:120, y:103}, end:{x:0, y:102}, type:4}, {start:{x:386, y:297}, end:{x:543, y:298}, type:2, animateTo:{x:571, y:298}, speed:"1"}], targetScore:150000, targetStars:20}, {id:50, nuts:[[0, 1, 4, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0], [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 1, 9, 1, 0, 0, 0, 0, 1, 9, 1, 0, 0, 0, 0, 1, 9, 1, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 4, 1, 0, 0, 0, 0, 0, 1, 4, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:683, y:73}, end:{x:505, y:73}, type:1}, {start:{x:437, y:73}, end:{x:264, y:73}, type:1}, {start:{x:193, y:73}, end:{x:14, y:73}, type:1}, {start:{x:677, y:70}, end:{x:676, y:186}, type:1}, {start:{x:515, y:71}, end:{x:516, y:185}, type:1}, {start:{x:431, y:71}, end:{x:431, y:186}, type:1}, {start:{x:268, y:69}, end:{x:270, y:186}, type:1}, {start:{x:187, y:73}, end:{x:187, y:186}, type:1}, {start:{x:23, y:72}, end:{x:24, y:186}, type:1}, {start:{x:648, y:268}, end:{x:699, y:268}, type:1}, {start:{x:670, y:178}, end:{x:704, y:178}, type:1}, {start:{x:262, y:73}, end:{x:188, y:74}, type:1}, {start:{x:435, y:74}, end:{x:511, y:72}, type:1}, {start:{x:470, y:332}, end:{x:367, y:334}, type:2, animateTo:{x:279, y:333}, speed:"0.8"}, {start:{x:435, y:191}, end:{x:262, y:194}, type:3, moveTo:{x:278, y:194}, trigger:{x:597, y:95, rotation:"-177"}}, {start:{x:191, y:192}, end:{x:17, y:195}, type:3, moveTo:{x:38, y:193}, trigger:{x:350, y:94, rotation:"-180"}}], targetScore:175000, targetStars:20}, {id:92, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 1, 3, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 4, 1, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], [0, 1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:85, y:421}, end:{x:2, y:422}, type:1}, {start:{x:80, y:423}, end:{x:5, y:471}, type:1}, {start:{x:5, y:417}, end:{x:6, y:476}, type:1}, {start:{x:296, y:106}, end:{x:16, y:108}, type:1}, {start:{x:220, y:117}, end:{x:221, y:0x0101}, type:2, animateTo:{x:220, y:360}, speed:1}, {start:{x:290, y:429}, end:{x:289, y:290}, type:2, animateTo:{x:289, y:185}, speed:1}, {start:{x:0xFF, y:151}, end:{x:0xFF, y:0x0101}, type:2, animateTo:{x:254, y:344}, speed:".5"}], targetScore:150000, targetStars:20}, {id:68, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:57, y:390}, end:{x:189, y:260}, type:1}, {start:{x:182, y:262}, end:{x:376, y:262}, type:1}, {start:{x:372, y:260}, end:{x:506, y:390}, type:1}, {start:{x:23, y:82}, end:{x:25, y:116}, type:1}, {start:{x:18, y:112}, end:{x:87, y:111}, type:1}, {start:{x:81, y:80}, end:{x:82, y:115}, type:1}, {start:{x:87, y:86}, end:{x:18, y:87}, type:1}, {start:{x:579, y:85}, end:{x:647, y:180}, type:4}, {start:{x:638, y:175}, end:{x:699, y:175}, type:4}, {start:{x:572, y:84}, end:{x:699, y:83}, type:4}, {start:{x:692, y:75}, end:{x:693, y:183}, type:4}, {start:{x:510, y:388}, end:{x:442, y:461}, type:3, moveTo:{x:564, y:336}, trigger:{x:54, y:134, rotation:"-177"}}], targetScore:150000, targetStars:20}, {id:95, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 1, 1, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:82, y:104}, end:{x:83, y:222}, type:1}, {start:{x:268, y:116}, end:{x:271, y:0x0101}, type:1}, {start:{x:158, y:263}, end:{x:279, y:263}, type:1}, {start:{x:80, y:307}, end:{x:81, y:434}, type:1}, {start:{x:155, y:474}, end:{x:279, y:472}, type:1}, {start:{x:268, y:325}, end:{x:271, y:467}, type:1}, {start:{x:430, y:222}, end:{x:431, y:312}, type:1}, {start:{x:436, y:302}, end:{x:332, y:304}, type:1}, {start:{x:367, y:127}, end:{x:509, y:127}, type:1}, {start:{x:90, y:110}, end:{x:278, y:111}, type:3, moveTo:{x:355, y:112}, trigger:{x:290, y:162, rotation:"93"}}, {start:{x:77, y:317}, end:{x:278, y:318}, type:3, moveTo:{x:360, y:319}, trigger:{x:290, y:371, rotation:"89"}}], targetScore:200000, targetStars:20}, {id:76, nuts:[[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 4, 1, 1, 0, 0, 1, 1, 4, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:310, y:264}, end:{x:216, y:172}, type:1}, {start:{x:205, y:373}, end:{x:109, y:277}, type:1}, {start:{x:461, y:171}, end:{x:554, y:266}, type:1}, {start:{x:450, y:374}, end:{x:355, y:272}, type:1}, {start:{x:216, y:163}, end:{x:100, y:278}, type:2, animateTo:{x:53, y:324}, speed:"1"}, {start:{x:317, y:264}, end:{x:202, y:383}, type:2, animateTo:{x:366, y:216}, speed:"1"}, {start:{x:561, y:265}, end:{x:454, y:379}, type:2, animateTo:{x:605, y:219}, speed:"1"}, {start:{x:460, y:161}, end:{x:344, y:275}, type:2, animateTo:{x:300, y:319}, speed:"1"}], targetScore:150000, targetStars:20}]; } override public function getGround():Sprite{ var _local2:Bitmap; var _local1:Sprite = new Sprite(); _local2 = new Assets.Grass(); _local2.y = ((Main.GAME_HEIGHT - _local2.height) + 6); var _local3:Bitmap = new Assets.GrassBlur(); _local3.y = ((Main.GAME_HEIGHT - _local3.height) + 6); _local1.addChild(_local2); _local1.addChild(_local3); return (_local1); } override public function getParticles():Particles{ return (new Particles(Assets.Dandelion)); } override public function getTerrain():Bitmap{ return (new Assets.SpringTerrain()); } } }//package levelsSection 88//MapPack2 (levels.MapPack2) package levels { import flash.display.*; public class MapPack2 extends MapPack { public static const PACK_ID:int = 1194888231; public static const BONUS_SUIT:String = "santa"; public function MapPack2():void{ _name = "Winter"; number = 2; _id = PACK_ID; _bonusSuit = BONUS_SUIT; _sellScreen = createSell(); _itemStoreId = "asdas"; _boardId = "601e82bb605cdee9"; _levelImages = [Assets.Winter1_1, Assets.Winter1_2, Assets.Winter1_3, Assets.Winter1_4, Assets.Winter1_5, Assets.Winter2_1, Assets.Winter2_2, Assets.Winter2_3, Assets.Winter2_4, Assets.Winter2_5, Assets.Winter3_1, Assets.Winter3_2, Assets.Winter3_3, Assets.Winter3_4, Assets.Winter3_5, Assets.Winter4_1, Assets.Winter4_2, Assets.Winter4_3, Assets.Winter4_4, Assets.Winter4_5]; } override public function getParticles():Particles{ return (new ParticlesSnow()); } override protected function createLevelData():void{ _levels = [{id:89, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 1, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:290, y:122}, end:{x:239, y:180}, type:1}, {start:{x:199, y:122}, end:{x:250, y:177}, type:1}, {start:{x:193, y:121}, end:{x:297, y:121}, type:1}, {start:{x:249, y:330}, end:{x:199, y:389}, type:1}, {start:{x:240, y:333}, end:{x:291, y:389}, type:1}, {start:{x:296, y:391}, end:{x:192, y:392}, type:1}], targetScore:120000, targetStars:20}, {id:94, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 4, 4, 0, 0, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0], [0, 0, 1, 1, 0, 3, 0, 1, 1, 0, 0, 1, 1, 0, 3, 0, 1, 1, 0], [0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:579, y:392}, end:{x:668, y:292}, type:1}, {start:{x:66, y:305}, end:{x:144, y:384}, type:2, animateTo:{x:151, y:391}, speed:1}], targetScore:250000, targetStars:20}, {id:98, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 4, 3, 4, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:361, y:434}, end:{x:459, y:294}, type:1}, {start:{x:372, y:89}, end:{x:513, y:88}, type:5, animateTo:{x:0x0202, y:88}, speed:1}], targetScore:150000, targetStars:20}, {id:34, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 4, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 4, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:387, y:269}, end:{x:470, y:356}, type:2, animateTo:{x:494, y:383}, speed:1}, {start:{x:536, y:120}, end:{x:443, y:215}, type:2, animateTo:{x:439, y:217}, speed:1}, {start:{x:306, y:264}, end:{x:211, y:172}, type:2, animateTo:{x:206, y:166}, speed:1}, {start:{x:164, y:425}, end:{x:250, y:335}, type:2, animateTo:{x:272, y:313}, speed:1}], targetScore:200000, targetStars:20}, {id:58, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 4, 1, 1, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 1, 1, 4, 1], [1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:649, y:262}, end:{x:602, y:263}, type:1}, {start:{x:610, y:266}, end:{x:533, y:181}, type:1}, {start:{x:536, y:116}, end:{x:537, y:187}, type:1}, {start:{x:165, y:116}, end:{x:166, y:186}, type:1}, {start:{x:167, y:181}, end:{x:97, y:264}, type:1}, {start:{x:102, y:262}, end:{x:52, y:263}, type:1}], targetScore:175000, targetStars:20}, {id:60, nuts:[[0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 1, 0], [4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 8], [0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 4, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0], [0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0], [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]], walls:[], targetScore:120000, targetStars:20}, {id:69, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0], [0, 0, 1, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 4, 4, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0], [9, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:269, y:151}, end:{x:271, y:327}, type:1}, {start:{x:542, y:74}, end:{x:698, y:74}, type:1}, {start:{x:575, y:333}, end:{x:699, y:331}, type:1}, {start:{x:668, y:333}, end:{x:699, y:300}, type:1}, {start:{x:262, y:332}, end:{x:334, y:332}, type:1}], targetScore:200000, targetStars:20}, {id:51, nuts:[[1, 3, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 1, 1], [1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1], [0, 0, 9, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 9, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:87, y:333}, end:{x:265, y:331}, type:1}, {start:{x:259, y:332}, end:{x:476, y:332}, type:1}, {start:{x:468, y:332}, end:{x:613, y:332}, type:1}], targetScore:300000, targetStars:20}, {id:44, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 9, 0, 1, 4, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 9, 1, 1, 4, 1, 1, 9, 1, 1, 4, 1, 1, 9, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:578, y:81}, end:{x:647, y:151}, type:5, animateTo:{x:657, y:161}, speed:1}], targetScore:200000, targetStars:20}, {id:36, nuts:[[1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:327, y:223}, end:{x:267, y:295}, type:1}, {start:{x:267, y:285}, end:{x:328, y:358}, type:1}, {start:{x:372, y:224}, end:{x:433, y:295}, type:1}, {start:{x:432, y:285}, end:{x:373, y:358}, type:1}, {start:{x:24, y:264}, end:{x:118, y:356}, type:1}, {start:{x:159, y:398}, end:{x:223, y:462}, type:1}, {start:{x:511, y:84}, end:{x:573, y:145}, type:1}, {start:{x:616, y:189}, end:{x:678, y:252}, type:1}, {start:{x:612, y:308}, end:{x:699, y:307}, type:1}, {start:{x:24, y:0x0100}, end:{x:82, y:189}, type:1}, {start:{x:128, y:144}, end:{x:190, y:83}, type:1}, {start:{x:670, y:313}, end:{x:697, y:284}, type:1}], targetScore:150000, targetStars:20}, {id:71, nuts:[[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 4, 1, 1, 0, 0, 1, 1, 4, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:677, y:83}, end:{x:631, y:131}, type:4}, {start:{x:632, y:123}, end:{x:678, y:160}, type:4}, {start:{x:678, y:163}, end:{x:679, y:79}, type:4}, {start:{x:23, y:81}, end:{x:25, y:167}, type:4}, {start:{x:21, y:161}, end:{x:70, y:118}, type:4}, {start:{x:70, y:126}, end:{x:24, y:87}, type:4}, {start:{x:18, y:332}, end:{x:158, y:333}, type:2, animateTo:{x:159, y:333}, speed:1}, {start:{x:262, y:331}, end:{x:368, y:332}, type:2, animateTo:{x:385, y:333}, speed:1}, {start:{x:681, y:332}, end:{x:541, y:334}, type:2, animateTo:{x:541, y:332}, speed:1}], targetScore:175000, targetStars:20}, {id:62, nuts:[[1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 0, 1, 4, 1, 0, 0, 0, 0, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:124, y:261}, end:{x:52, y:263}, type:1}, {start:{x:140, y:74}, end:{x:17, y:74}, type:1}, {start:{x:263, y:179}, end:{x:439, y:178}, type:1}, {start:{x:353, y:118}, end:{x:305, y:183}, type:1}, {start:{x:345, y:121}, end:{x:396, y:182}, type:1}, {start:{x:649, y:262}, end:{x:577, y:263}, type:1}, {start:{x:562, y:74}, end:{x:683, y:73}, type:1}, {start:{x:192, y:297}, end:{x:299, y:297}, type:2, animateTo:{x:455, y:297}, speed:1}, {start:{x:131, y:80}, end:{x:131, y:270}, type:3, moveTo:{x:130, y:261}, trigger:{x:309, y:142, rotation:"-54"}}, {start:{x:570, y:81}, end:{x:570, y:272}, type:3, moveTo:{x:570, y:261}, trigger:{x:389, y:140, rotation:"51"}}], targetScore:190000, targetStars:20}, {id:62, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 9, 1, 1, 0, 0, 0, 1], [0, 1, 2, 1, 1, 1, 0, 0, 0, 0, 0, 1, 4, 1, 0, 0, 0, 1, 4], [9, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0], [0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0], [0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1, 0, 0, 1, 1], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:244, y:87}, end:{x:38, y:87}, type:1}, {start:{x:235, y:92}, end:{x:235, y:0x0101}, type:1}, {start:{x:140, y:151}, end:{x:142, y:327}, type:1}, {start:{x:334, y:192}, end:{x:509, y:191}, type:1}, {start:{x:507, y:192}, end:{x:699, y:192}, type:1}, {start:{x:650, y:194}, end:{x:698, y:229}, type:1}, {start:{x:652, y:195}, end:{x:699, y:157}, type:1}], targetScore:200000, targetStars:20}, {id:70, nuts:[[0, 0, 8, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 1, 4, 1, 9, 1, 1, 1, 3, 1, 1, 1, 9, 1, 4, 1, 0, 0, 0], [0, 8, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 8, 0, 0, 0], [0, 0, 0, 0, 8, 0, 0, 1, 9, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 1, 4, 1, 0, 9, 0, 1, 1, 1, 0, 9, 0, 1, 4, 1, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:316, y:371}, end:{x:254, y:436}, type:4}, {start:{x:306, y:374}, end:{x:365, y:435}, type:4}, {start:{x:372, y:435}, end:{x:248, y:436}, type:4}], targetScore:20, targetStars:20}, {id:51, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 1, 1, 4, 4, 1, 1, 0, 0, 1, 1, 1, 0, 0], [0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:217, y:116}, end:{x:219, y:186}, type:1}, {start:{x:211, y:193}, end:{x:298, y:193}, type:1}, {start:{x:368, y:191}, end:{x:457, y:192}, type:1}, {start:{x:447, y:188}, end:{x:446, y:115}, type:1}, {start:{x:612, y:108}, end:{x:507, y:110}, type:1}, {start:{x:500, y:103}, end:{x:500, y:222}, type:1}, {start:{x:492, y:227}, end:{x:543, y:227}, type:1}, {start:{x:618, y:102}, end:{x:619, y:0x0101}, type:1}, {start:{x:618, y:0x0100}, end:{x:619, y:361}, type:1}, {start:{x:52, y:109}, end:{x:158, y:109}, type:1}, {start:{x:164, y:102}, end:{x:164, y:222}, type:1}, {start:{x:169, y:227}, end:{x:123, y:229}, type:1}, {start:{x:45, y:102}, end:{x:45, y:0x0101}, type:1}, {start:{x:45, y:254}, end:{x:45, y:361}, type:1}, {start:{x:226, y:261}, end:{x:333, y:261}, type:2, animateTo:{x:385, y:262}, speed:1}], targetScore:220000, targetStars:20}, {id:72, nuts:[[0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 1, 9], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:174, y:74}, end:{x:52, y:75}, type:1}, {start:{x:664, y:152}, end:{x:666, y:0x0101}, type:1}, {start:{x:367, y:250}, end:{x:302, y:319}, type:1}, {start:{x:361, y:246}, end:{x:433, y:318}, type:1}, {start:{x:439, y:320}, end:{x:296, y:320}, type:1}, {start:{x:674, y:262}, end:{x:577, y:262}, type:1}, {start:{x:585, y:0x0101}, end:{x:561, y:297}, type:1}, {start:{x:166, y:80}, end:{x:166, y:221}, type:2, animateTo:{x:166, y:287}, speed:1}, {start:{x:534, y:0xFF}, end:{x:533, y:149}, type:2, animateTo:{x:533, y:133}, speed:1}], targetScore:150000, targetStars:20}, {id:81, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0], [0, 0, 1, 0, 0, 4, 0, 0, 1, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:77, y:152}, end:{x:81, y:363}, type:1}, {start:{x:128, y:152}, end:{x:131, y:363}, type:1}, {start:{x:184, y:185}, end:{x:186, y:362}, type:1}, {start:{x:233, y:186}, end:{x:236, y:362}, type:1}, {start:{x:394, y:186}, end:{x:395, y:362}, type:1}, {start:{x:444, y:186}, end:{x:444, y:362}, type:1}, {start:{x:500, y:150}, end:{x:500, y:363}, type:1}, {start:{x:550, y:152}, end:{x:551, y:364}, type:1}, {start:{x:316, y:363}, end:{x:269, y:424}, type:1}, {start:{x:310, y:364}, end:{x:363, y:427}, type:1}, {start:{x:366, y:424}, end:{x:264, y:423}, type:1}, {start:{x:613, y:82}, end:{x:657, y:148}, type:4}], targetScore:300000, targetStars:20}, {id:35, nuts:[[0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 0, 1, 1, 0, 0, 0, 0, 8, 4, 8, 4, 8, 0, 0, 0, 0, 0], [1, 2, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 8, 1, 8, 0, 0, 0, 0, 1, 4], [1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1], [1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1], [1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:104, y:116}, end:{x:102, y:325}, type:1}, {start:{x:699, y:179}, end:{x:612, y:179}, type:1}, {start:{x:617, y:178}, end:{x:696, y:112}, type:1}, {start:{x:318, y:364}, end:{x:267, y:421}, type:1}, {start:{x:308, y:365}, end:{x:360, y:421}, type:1}, {start:{x:367, y:423}, end:{x:259, y:426}, type:1}, {start:{x:212, y:74}, end:{x:2, y:76}, type:1}, {start:{x:203, y:82}, end:{x:203, y:292}, type:3, moveTo:{x:201, y:325}, trigger:{x:641, y:136, rotation:"-41"}}], targetScore:170000, targetStars:20}, {id:62, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 1, 2, 1, 0, 0, 1, 2, 1, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:165, y:221}, end:{x:165, y:149}, type:1}, {start:{x:169, y:155}, end:{x:126, y:119}, type:1}, {start:{x:47, y:222}, end:{x:46, y:151}, type:1}, {start:{x:44, y:158}, end:{x:82, y:118}, type:1}, {start:{x:165, y:254}, end:{x:165, y:324}, type:1}, {start:{x:129, y:356}, end:{x:167, y:317}, type:1}, {start:{x:82, y:354}, end:{x:44, y:319}, type:1}, {start:{x:219, y:151}, end:{x:220, y:220}, type:1}, {start:{x:220, y:0x0100}, end:{x:220, y:325}, type:1}, {start:{x:220, y:319}, end:{x:0x0101, y:356}, type:1}, {start:{x:342, y:0x0100}, end:{x:342, y:326}, type:1}, {start:{x:342, y:320}, end:{x:303, y:357}, type:1}, {start:{x:340, y:219}, end:{x:340, y:151}, type:1}, {start:{x:343, y:158}, end:{x:304, y:121}, type:1}, {start:{x:218, y:158}, end:{x:254, y:119}, type:1}, {start:{x:395, y:219}, end:{x:394, y:151}, type:1}, {start:{x:395, y:0x0100}, end:{x:395, y:326}, type:1}, {start:{x:394, y:321}, end:{x:433, y:358}, type:1}, {start:{x:515, y:0xFF}, end:{x:515, y:326}, type:1}, {start:{x:0x0202, y:220}, end:{x:515, y:149}, type:1}, {start:{x:516, y:321}, end:{x:477, y:358}, type:1}, {start:{x:518, y:156}, end:{x:476, y:118}, type:1}, {start:{x:392, y:157}, end:{x:432, y:118}, type:1}, {start:{x:646, y:81}, end:{x:675, y:149}, type:4}, {start:{x:667, y:144}, end:{x:699, y:144}, type:4}, {start:{x:640, y:80}, end:{x:699, y:80}, type:4}, {start:{x:46, y:0xFF}, end:{x:47, y:324}, type:1}], targetScore:250000, targetStars:20}, {id:45, nuts:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 4, 1, 1, 2, 1, 1, 4, 0, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 9, 1, 1, 1, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], walls:[{start:{x:517, y:186}, end:{x:515, y:292}, type:1}, {start:{x:0x0202, y:286}, end:{x:406, y:369}, type:1}, {start:{x:0xFF, y:187}, end:{x:0xFF, y:294}, type:1}, {start:{x:252, y:287}, end:{x:366, y:368}, type:1}, {start:{x:688, y:116}, end:{x:691, y:225}, type:1}, {start:{x:693, y:219}, end:{x:546, y:361}, type:1}, {start:{x:24, y:0x0101}, end:{x:25, y:325}, type:4}, {start:{x:222, y:222}, end:{x:199, y:304}, type:4}, {start:{x:26, y:152}, end:{x:44, y:223}, type:4}], targetScore:125000, targetStars:20}]; } override public function getGround():Sprite{ var _local1:Sprite; _local1 = new Sprite(); var _local2:Bitmap = new Assets.Snow(); _local2.y = (Main.GAME_HEIGHT - _local2.height); _local1.addChild(_local2); return (_local1); } public function createSell():Sprite{ var _local1:Sprite = new Sprite(); _local1.addChild(new Assets.WinterSell()); return (_local1); } override public function getTerrain():Bitmap{ return (new Assets.WinterTerrain()); } } }//package levelsSection 89//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const LOGGED_IN:String = "LoggedIn"; public static const STORE_ITEMS:String = "StoreItems"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const ITEM_NEW:String = "ItemNew"; public static const USER_INFO:String = "UserInfo"; public static const IO_ERROR:String = "IOError"; public static const ITEM_OWNED:String = "ItemOwned"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const ERROR:String = "Error"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_HIDE:String = "LoginHide"; public static const LOGIN_SHOW:String = "LoginShow"; public static const STORE_SHOW:String = "StoreShow"; public static const PROFILE_HIDE:String = "ProfileHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } } }//package mochi.as3Section 90//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3Section 91//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3Section 92//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function endGame():void{ var _local1:Number = (new Date().time - gameStart); trigger("end_game", {time:_local1}); } public static function startGame():void{ gameStart = new Date().time; trigger("start_game"); } public static function trigger(_arg1:String, _arg2:Object=null):void{ if (_arg2 == null){ _arg2 = {}; } else { if (_arg2["kind"] != undefined){ trace("WARNING: optional arguements package contains key 'id', it will be overwritten"); _arg2["kind"] = _arg1; }; }; MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startLevel():void{ levelStart = new Date().time; trigger("start_level"); } public static function endLevel():void{ var _local1:Number = (new Date().time - levelStart); trigger("end_level", {time:_local1}); } } }//package mochi.as3Section 93//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.text.*; import flash.display.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; var _local2:Object = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3Section 94//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _connecting:Boolean = false; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; public static var netup:Boolean = true; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; }; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _listenChannel.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.1 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } private static function onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } public static function get id():String{ return (_id); } private static function urlOptions(_arg1:Object):Object{ var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; var _local3:String = _arg1.loaderInfo.parameters.mochiad_options; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = this.client._callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; _clip.onEvent = function (_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; }; trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var id = _arg1; var clip = _arg2; var clipname:String = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(clip).servicesURL != undefined){ _servicesURL = urlOptions(clip).servicesURL; }; MochiServices.allowDomains(_servicesURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); var f:Function = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); var req:URLRequest = new URLRequest(_servicesURL); var vars:URLVariables = new URLVariables(); vars.listenLC = _listenChannelName; vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options; if (widget){ vars.widget = true; }; req.data = vars; listen(); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; var mc:MovieClip = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3Section 95//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ if (_syncContainer[_arg1] == _arg2){ return; }; var _local3:String = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } } }//package mochi.as3Section 96//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.coreSection 97//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.0.0.0"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.left = _arg1; this.top = _arg2; this.right = _arg3; this.bottom = _arg4; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.coreSection 98//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.coreSection 99//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.coreSection 100//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.coreSection 101//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.coreSection 102//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.coreSection 103//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.coreSection 104//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.coreSection 105//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.coreSection 106//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.coreSection 107//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.coreSection 108//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.coreSection 109//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.coreSection 110//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import flash.utils.*; import mx.core.*; public class NameUtil { mx_internal static const VERSION:String = "3.0.0.0"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var _local2:String; var _local4:String; var _local5:Array; var _local3:DisplayObject = _arg1; while (_local3 != null) { if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){ break; }; _local4 = _local3.name; if ((_local3 is IRepeaterClient)){ _local5 = IRepeaterClient(_local3).instanceIndices; if (_local5){ _local4 = (_local4 + (("[" + _local5.join("][")) + "]")); }; }; _local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2); _local3 = _local3.parent; }; return (_local2); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utilsSection 111//AbstractCollection (org.cove.ape.AbstractCollection) package org.cove.ape { import flash.display.*; import flash.utils.*; public class AbstractCollection { private var _sprite:Sprite; private var _particles:Array; private var _isParented:Boolean; private var _constraints:Array; public function AbstractCollection(){ if (getQualifiedClassName(this) == "org.cove.ape::AbstractCollection"){ throw (new ArgumentError("AbstractCollection can't be instantiated directly")); }; _isParented = false; _particles = new Array(); _constraints = new Array(); } public function removeConstraint(_arg1:AbstractConstraint):void{ var _local2:int = constraints.indexOf(_arg1); if (_local2 == -1){ return; }; constraints.splice(_local2, 1); _arg1.cleanup(); } public function getAll():Array{ return (particles.concat(constraints)); } function checkCollisionsVsCollection(_arg1:AbstractCollection):void{ var _local5:AbstractParticle; var _local6:int; var _local7:int; var _local8:int; var _local9:AbstractParticle; var _local10:SpringConstraint; var _local11:SpringConstraint; var _local12:int; var _local2:int = _particles.length; var _local3:int; while (_local3 < _local2) { _local5 = _particles[_local3]; if ((((_local5 == null)) || (!(_local5.collidable)))){ } else { _local6 = _arg1.particles.length; _local7 = 0; while (_local7 < _local6) { _local9 = _arg1.particles[_local7]; if (((!((_local9 == null))) && (_local9.collidable))){ CollisionDetector.test(_local5, _local9); }; _local7++; }; _local8 = _arg1.constraints.length; _local7 = 0; while (_local7 < _local8) { _local10 = _arg1.constraints[_local7]; if (((((!((_local10 == null))) && (_local10.collidable))) && (!(_local10.isConnectedTo(_local5))))){ _local10.scp.updatePosition(); CollisionDetector.test(_local5, _local10.scp); }; _local7++; }; }; _local3++; }; var _local4:int = _constraints.length; _local3 = 0; while (_local3 < _local4) { _local11 = _constraints[_local3]; if ((((_local11 == null)) || (!(_local11.collidable)))){ } else { _local6 = _arg1.particles.length; _local12 = 0; while (_local12 < _local6) { _local9 = _arg1.particles[_local12]; if (((((!((_local9 == null))) && (_local9.collidable))) && (!(_local11.isConnectedTo(_local9))))){ _local11.scp.updatePosition(); CollisionDetector.test(_local9, _local11.scp); }; _local12++; }; }; _local3++; }; } public function get sprite():Sprite{ if (_sprite != null){ return (_sprite); }; if (APEngine.container == null){ throw (new Error("The container property of the APEngine class has not been set")); }; _sprite = new Sprite(); APEngine.container.addChild(_sprite); return (_sprite); } function checkInternalCollisions():void{ var _local3:AbstractParticle; var _local4:int; var _local5:int; var _local6:int; var _local7:AbstractParticle; var _local8:SpringConstraint; var _local1:int = _particles.length; var _local2:int; while (_local2 < _local1) { _local3 = _particles[_local2]; if ((((_local3 == null)) || (!(_local3.collidable)))){ } else { _local4 = (_local2 + 1); while (_local4 < _local1) { _local7 = _particles[_local4]; if (((!((_local7 == null))) && (_local7.collidable))){ CollisionDetector.test(_local3, _local7); }; _local4++; }; _local5 = _constraints.length; _local6 = 0; while (_local6 < _local5) { _local8 = _constraints[_local6]; if (((((!((_local8 == null))) && (_local8.collidable))) && (!(_local8.isConnectedTo(_local3))))){ _local8.scp.updatePosition(); CollisionDetector.test(_local3, _local8.scp); }; _local6++; }; }; _local2++; }; } public function addParticle(_arg1:AbstractParticle):void{ particles.push(_arg1); if (isParented){ _arg1.init(); }; } public function init():void{ var _local1:int; while (_local1 < particles.length) { particles[_local1].init(); _local1++; }; _local1 = 0; while (_local1 < constraints.length) { constraints[_local1].init(); _local1++; }; } function satisfyConstraints():void{ var _local3:AbstractConstraint; var _local1:int = _constraints.length; var _local2:int; while (_local2 < _local1) { _local3 = _constraints[_local2]; _local3.resolve(); _local2++; }; } function get isParented():Boolean{ return (_isParented); } public function paint():void{ var _local1:AbstractParticle; var _local4:SpringConstraint; var _local2:int = _particles.length; var _local3:int; while (_local3 < _local2) { _local1 = _particles[_local3]; if (((!(_local1.fixed)) || (_local1.alwaysRepaint))){ _local1.paint(); }; _local3++; }; _local2 = _constraints.length; _local3 = 0; while (_local3 < _local2) { _local4 = _constraints[_local3]; if (((!(_local4.fixed)) || (_local4.alwaysRepaint))){ _local4.paint(); }; _local3++; }; } public function addConstraint(_arg1:AbstractConstraint):void{ constraints.push(_arg1); if (isParented){ _arg1.init(); }; } function set isParented(_arg1:Boolean):void{ _isParented = _arg1; } public function removeParticle(_arg1:AbstractParticle):void{ var _local2:int = particles.indexOf(_arg1); if (_local2 == -1){ return; }; particles.splice(_local2, 1); _arg1.cleanup(); } public function cleanup():void{ var _local1:int; while (_local1 < particles.length) { particles[_local1].cleanup(); _local1++; }; _local1 = 0; while (_local1 < constraints.length) { constraints[_local1].cleanup(); _local1++; }; } public function get particles():Array{ return (_particles); } function integrate(_arg1:Number):void{ var _local4:AbstractParticle; var _local2:int = _particles.length; var _local3:int; while (_local3 < _local2) { _local4 = _particles[_local3]; _local4.update(_arg1); _local3++; }; } public function get constraints():Array{ return (_constraints); } } }//package org.cove.apeSection 112//AbstractConstraint (org.cove.ape.AbstractConstraint) package org.cove.ape { import flash.utils.*; public class AbstractConstraint extends AbstractItem { private var _stiffness:Number; public function AbstractConstraint(_arg1:Number){ if (getQualifiedClassName(this) == "org.cove.ape::AbstractConstraint"){ throw (new ArgumentError("AbstractConstraint can't be instantiated directly")); }; this.stiffness = _arg1; setStyle(); } public function resolve():void{ } public function set stiffness(_arg1:Number):void{ _stiffness = _arg1; } public function get stiffness():Number{ return (_stiffness); } } }//package org.cove.apeSection 113//AbstractItem (org.cove.ape.AbstractItem) package org.cove.ape { import flash.events.*; import flash.display.*; public class AbstractItem extends EventDispatcher { public var type:String; var lineAlpha:Number; public var name:String; var lineColor:uint; var displayObjectOffset:Vector; var fillAlpha:Number; var lineThickness:Number; var displayObject:DisplayObject; private var _sprite:Sprite; var fillColor:uint; private var _solid:Boolean; private var _visible:Boolean; private var _alwaysRepaint:Boolean; var displayObjectRotation:Number; public function AbstractItem(){ _solid = true; _visible = true; _alwaysRepaint = false; } public function get solid():Boolean{ return (_solid); } public function setLine(_arg1:Number=0, _arg2:uint=0, _arg3:Number=1):void{ lineThickness = _arg1; lineColor = _arg2; lineAlpha = _arg3; } public function set visible(_arg1:Boolean):void{ _visible = _arg1; sprite.visible = _arg1; } public function setFill(_arg1:uint=0xFFFFFF, _arg2:Number=1):void{ fillColor = _arg1; fillAlpha = _arg2; } public function init():void{ } public function get sprite():Sprite{ if (_sprite != null){ return (_sprite); }; if (APEngine.container == null){ throw (new Error("The container property of the APEngine class has not been set")); }; _sprite = new Sprite(); APEngine.container.addChild(_sprite); return (_sprite); } public function set solid(_arg1:Boolean):void{ _solid = _arg1; } public function paint():void{ } public function cleanup():void{ sprite.graphics.clear(); var _local1:int; while (_local1 < sprite.numChildren) { sprite.removeChildAt(_local1); _local1++; }; } public function setStyle(_arg1:Number=0, _arg2:uint=0, _arg3:Number=1, _arg4:uint=0xFFFFFF, _arg5:Number=1):void{ setLine(_arg1, _arg2, _arg3); setFill(_arg4, _arg5); } public function get visible():Boolean{ return (_visible); } final public function set alwaysRepaint(_arg1:Boolean):void{ _alwaysRepaint = _arg1; } final public function get alwaysRepaint():Boolean{ return (_alwaysRepaint); } } }//package org.cove.apeSection 114//AbstractParticle (org.cove.ape.AbstractParticle) package org.cove.ape { import flash.display.*; import flash.utils.*; public class AbstractParticle extends AbstractItem { private var _collidable:Boolean; private var _center:Vector; private var _maxSpeed:Number; private var forceList:Array; private var _kfr:Number; var prev:Vector; private var collision:Collision; var interval:Interval; private var _invMass:Number; var curr:Vector; private var _mass:Number; private var temp:Vector; private var _friction:Number; private var firstCollision:Boolean; var samp:Vector; private var _multisample:int; private var _fixed:Boolean; private var forces:Vector; public function AbstractParticle(_arg1:Number, _arg2:Number, _arg3:Boolean, _arg4:Number, _arg5:Number, _arg6:Number){ if (getQualifiedClassName(this) == "org.cove.ape::AbstractParticle"){ throw (new ArgumentError("AbstractParticle can't be instantiated directly")); }; interval = new Interval(0, 0); curr = new Vector(_arg1, _arg2); prev = new Vector(_arg1, _arg2); samp = new Vector(); temp = new Vector(); fixed = _arg3; forces = new Vector(); forceList = new Array(); collision = new Collision(new Vector(), new Vector()); collidable = true; firstCollision = false; this.mass = _arg4; this.elasticity = _arg5; this.friction = _arg6; setStyle(); _center = new Vector(); _multisample = 0; _maxSpeed = 0; } private function accumulateForces():void{ var _local1:IForce; var _local2:int = forceList.length; var _local3:int; while (_local3 < _local2) { _local1 = forceList[_local3]; forces.plusEquals(_local1.getValue(_invMass)); _local3++; }; var _local4:Array = APEngine.forces; _local2 = _local4.length; _local3 = 0; while (_local3 < _local2) { _local1 = _local4[_local3]; forces.plusEquals(_local1.getValue(_invMass)); _local3++; }; } function get invMass():Number{ return ((fixed) ? 0 : _invMass); } public function set maxSpeed(_arg1:Number):void{ _maxSpeed = (_arg1 / 10); } public function get px():Number{ return (curr.x); } public function get py():Number{ return (curr.y); } public function setDisplay(_arg1:DisplayObject, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):void{ displayObject = _arg1; displayObjectRotation = _arg4; displayObjectOffset = new Vector(_arg2, _arg3); } public function set px(_arg1:Number):void{ curr.x = _arg1; prev.x = _arg1; } public function resetFirstCollision():void{ firstCollision = false; } public function set py(_arg1:Number):void{ curr.y = _arg1; prev.y = _arg1; } function getComponents(_arg1:Vector):Collision{ var _local2:Vector = velocity; var _local3:Number = _arg1.dot(_local2); collision.vn = _arg1.mult(_local3); collision.vt = _local2.minus(collision.vn); return (collision); } public function get mass():Number{ return (_mass); } function initDisplay():void{ displayObject.x = displayObjectOffset.x; displayObject.y = displayObjectOffset.y; displayObject.rotation = displayObjectRotation; sprite.addChild(displayObject); } public function clearForces():void{ forceList.length = 0; forces.setTo(0, 0); } public function get multisample():int{ return (_multisample); } function resolveCollision(_arg1:Vector, _arg2:Vector, _arg3:Vector, _arg4:Number, _arg5:int, _arg6:AbstractParticle):void{ testParticleEvents(_arg6); if (((((fixed) || (!(solid)))) || (!(_arg6.solid)))){ return; }; curr.copy(samp); curr.plusEquals(_arg1); velocity = _arg2; } public function get position():Vector{ return (new Vector(curr.x, curr.y)); } public function get elasticity():Number{ return (_kfr); } public function set collidable(_arg1:Boolean):void{ _collidable = _arg1; } public function get maxSpeed():Number{ return (_maxSpeed); } public function set velocity(_arg1:Vector):void{ prev = curr.minus(_arg1); } public function set multisample(_arg1:int):void{ _multisample = _arg1; } public function addForce(_arg1:IForce):void{ forceList.push(_arg1); } public function get center():Vector{ _center.setTo(px, py); return (_center); } public function update(_arg1:Number):void{ if (fixed){ return; }; accumulateForces(); temp.copy(curr); forces.multEquals(_arg1); var _local2:Vector = velocity.plus(forces); _local2.multEquals(APEngine.damping); if ((((_maxSpeed > 0)) && ((_local2.magnitude() > _maxSpeed)))){ _local2 = _local2.normalize().mult(_maxSpeed); }; curr.plusEquals(_local2); prev.copy(temp); clearForces(); } public function get velocity():Vector{ return (curr.minus(prev)); } public function set position(_arg1:Vector):void{ curr.copy(_arg1); prev.copy(_arg1); } public function set mass(_arg1:Number):void{ if (_arg1 <= 0){ throw (new ArgumentError("mass may not be set <= 0")); }; _mass = _arg1; _invMass = (1 / _mass); } public function set fixed(_arg1:Boolean):void{ _fixed = _arg1; } public function set elasticity(_arg1:Number):void{ _kfr = _arg1; } public function set friction(_arg1:Number):void{ if ((((_arg1 < 0)) || ((_arg1 > 1)))){ throw (new ArgumentError("Legal friction must be >= 0 and <=1")); }; _friction = _arg1; } function testParticleEvents(_arg1:AbstractParticle):void{ if (hasEventListener(CollisionEvent.COLLIDE)){ dispatchEvent(new CollisionEvent(CollisionEvent.COLLIDE, false, false, _arg1)); }; if (((hasEventListener(CollisionEvent.FIRST_COLLIDE)) && (!(firstCollision)))){ firstCollision = true; dispatchEvent(new CollisionEvent(CollisionEvent.FIRST_COLLIDE, false, false, _arg1)); }; } public function get collidable():Boolean{ return (_collidable); } public function get friction():Number{ return (_friction); } public function get fixed():Boolean{ return (_fixed); } } }//package org.cove.apeSection 115//APEngine (org.cove.ape.APEngine) package org.cove.ape { import flash.display.*; public final class APEngine { private static var _damping:Number; private static var _container:DisplayObjectContainer; private static var _constraintCollisionCycles:int; private static var groups:Array; static var forces:Array; private static var _constraintCycles:int; private static var timeStep:Number; private static var numGroups:int; public static function get container():DisplayObjectContainer{ return (_container); } public static function get constraintCollisionCycles():int{ return (_constraintCollisionCycles); } public static function removeForce(_arg1:IForce):void{ var _local2:int = forces.indexOf(_arg1); if (_local2 == -1){ return; }; forces.splice(_local2, 1); } public static function set damping(_arg1:Number):void{ _damping = _arg1; } public static function step():void{ integrate(); var _local1:int; while (_local1 < _constraintCycles) { satisfyConstraints(); _local1++; }; var _local2:int; while (_local2 < _constraintCollisionCycles) { satisfyConstraints(); checkCollisions(); _local2++; }; } public static function get constraintCycles():int{ return (_constraintCycles); } public static function set constraintCollisionCycles(_arg1:int):void{ _constraintCollisionCycles = _arg1; } public static function init(_arg1:Number=0.25):void{ timeStep = (_arg1 * _arg1); numGroups = 0; groups = new Array(); forces = new Array(); _damping = 1; _constraintCycles = 0; _constraintCollisionCycles = 1; } public static function addForce(_arg1:IForce):void{ forces.push(_arg1); } public static function get damping():Number{ return (_damping); } public static function set constraintCycles(_arg1:int):void{ _constraintCycles = _arg1; } public static function addGroup(_arg1:Group):void{ groups.push(_arg1); _arg1.isParented = true; numGroups++; _arg1.init(); } public static function set container(_arg1:DisplayObjectContainer):void{ _container = _arg1; } public static function paint():void{ var _local2:Group; var _local1:int; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.paint(); _local1++; }; } public static function removeGroup(_arg1:Group):void{ var _local2:int = groups.indexOf(_arg1); if (_local2 == -1){ return; }; groups.splice(_local2, 1); _arg1.isParented = false; numGroups--; _arg1.cleanup(); } private static function satisfyConstraints():void{ var _local2:Group; var _local1:int; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.satisfyConstraints(); _local1++; }; } public static function removeAllForce():void{ forces = new Array(); } private static function checkCollisions():void{ var _local2:Group; var _local1:int; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.checkCollisions(); _local1++; }; } private static function integrate():void{ var _local2:Group; var _local1:int; while (_local1 < numGroups) { _local2 = groups[_local1]; _local2.integrate(timeStep); _local1++; }; } } }//package org.cove.apeSection 116//CircleParticle (org.cove.ape.CircleParticle) package org.cove.ape { public class CircleParticle extends AbstractParticle { private var _radius:Number; public function CircleParticle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Number=1, _arg6:Number=0.3, _arg7:Number=0){ super(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7); _radius = _arg3; } override public function init():void{ cleanup(); if (displayObject != null){ initDisplay(); } else { sprite.graphics.clear(); sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha); sprite.graphics.beginFill(fillColor, fillAlpha); sprite.graphics.drawCircle(0, 0, radius); sprite.graphics.endFill(); }; paint(); } public function set radius(_arg1:Number):void{ _radius = _arg1; } function getProjection(_arg1:Vector):Interval{ var _local2:Number = samp.dot(_arg1); interval.min = (_local2 - _radius); interval.max = (_local2 + _radius); return (interval); } function getIntervalY():Interval{ interval.min = (samp.y - _radius); interval.max = (samp.y + _radius); return (interval); } public function get radius():Number{ return (_radius); } function getIntervalX():Interval{ interval.min = (samp.x - _radius); interval.max = (samp.x + _radius); return (interval); } override public function paint():void{ sprite.x = curr.x; sprite.y = curr.y; } } }//package org.cove.apeSection 117//Collision (org.cove.ape.Collision) package org.cove.ape { import org.cove.ape.*; final class Collision { var vn:Vector; var vt:Vector; function Collision(_arg1:Vector, _arg2:Vector){ this.vn = _arg1; this.vt = _arg2; } } }//package org.cove.apeSection 118//CollisionDetector (org.cove.ape.CollisionDetector) package org.cove.ape { import org.cove.ape.*; final class CollisionDetector { private static var collNormal:Vector; private static var cpa:AbstractParticle; private static var cpb:AbstractParticle; private static var collDepth:Number; private static function testIntervals(_arg1:Interval, _arg2:Interval):Number{ if (_arg1.max < _arg2.min){ return (0); }; if (_arg2.max < _arg1.min){ return (0); }; var _local3:Number = (_arg2.max - _arg1.min); var _local4:Number = (_arg2.min - _arg1.max); return (((Math.abs(_local3))<Math.abs(_local4)) ? _local3 : _local4); } private static function testOBBvsOBB(_arg1:RectangleParticle, _arg2:RectangleParticle):Boolean{ var _local4:Vector; var _local5:Number; var _local6:Vector; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Boolean; collDepth = Number.POSITIVE_INFINITY; var _local3:int; while (_local3 < 2) { _local4 = _arg1.axes[_local3]; _local5 = testIntervals(_arg1.getProjection(_local4), _arg2.getProjection(_local4)); if (_local5 == 0){ return (false); }; _local6 = _arg2.axes[_local3]; _local7 = testIntervals(_arg1.getProjection(_local6), _arg2.getProjection(_local6)); if (_local7 == 0){ return (false); }; _local8 = Math.abs(_local5); _local9 = Math.abs(_local7); if ((((_local8 < Math.abs(collDepth))) || ((_local9 < Math.abs(collDepth))))){ _local10 = (_local8 < _local9); collNormal = (_local10) ? _local4 : _local6; collDepth = (_local10) ? _local5 : _local7; }; _local3++; }; cpa = _arg1; cpb = _arg2; return (true); } private static function testTypes(_arg1:AbstractParticle, _arg2:AbstractParticle):Boolean{ if ((((_arg1 is RectangleParticle)) && ((_arg2 is RectangleParticle)))){ return (testOBBvsOBB((_arg1 as RectangleParticle), (_arg2 as RectangleParticle))); }; if ((((_arg1 is CircleParticle)) && ((_arg2 is CircleParticle)))){ return (testCirclevsCircle((_arg1 as CircleParticle), (_arg2 as CircleParticle))); }; if ((((_arg1 is RectangleParticle)) && ((_arg2 is CircleParticle)))){ return (testOBBvsCircle((_arg1 as RectangleParticle), (_arg2 as CircleParticle))); }; if ((((_arg1 is CircleParticle)) && ((_arg2 is RectangleParticle)))){ return (testOBBvsCircle((_arg2 as RectangleParticle), (_arg1 as CircleParticle))); }; return (false); } private static function sampVsNorm(_arg1:AbstractParticle, _arg2:AbstractParticle):void{ if (normVsNorm(_arg1, _arg2)){ return; }; var _local3:Number = (1 / (_arg1.multisample + 1)); var _local4:Number = _local3; var _local5:int; while (_local5 <= _arg1.multisample) { _arg1.samp.setTo((_arg1.prev.x + (_local4 * (_arg1.curr.x - _arg1.prev.x))), (_arg1.prev.y + (_local4 * (_arg1.curr.y - _arg1.prev.y)))); if (testTypes(_arg1, _arg2)){ CollisionResolver.resolve(cpa, cpb, collNormal, collDepth); return; }; _local4 = (_local4 + _local3); _local5++; }; } private static function testCirclevsCircle(_arg1:CircleParticle, _arg2:CircleParticle):Boolean{ var _local3:Number = testIntervals(_arg1.getIntervalX(), _arg2.getIntervalX()); if (_local3 == 0){ return (false); }; var _local4:Number = testIntervals(_arg1.getIntervalY(), _arg2.getIntervalY()); if (_local4 == 0){ return (false); }; collNormal = _arg1.samp.minus(_arg2.samp); var _local5:Number = collNormal.magnitude(); collDepth = ((_arg1.radius + _arg2.radius) - _local5); if (collDepth > 0){ collNormal.divEquals(_local5); cpa = _arg1; cpb = _arg2; return (true); }; return (false); } static function test(_arg1:AbstractParticle, _arg2:AbstractParticle):void{ if (((_arg1.fixed) && (_arg2.fixed))){ return; }; if ((((_arg1.multisample == 0)) && ((_arg2.multisample == 0)))){ normVsNorm(_arg1, _arg2); } else { if ((((_arg1.multisample > 0)) && ((_arg2.multisample == 0)))){ sampVsNorm(_arg1, _arg2); } else { if ((((_arg2.multisample > 0)) && ((_arg1.multisample == 0)))){ sampVsNorm(_arg2, _arg1); } else { if (_arg1.multisample == _arg2.multisample){ sampVsSamp(_arg1, _arg2); } else { normVsNorm(_arg1, _arg2); }; }; }; }; } private static function testOBBvsCircle(_arg1:RectangleParticle, _arg2:CircleParticle):Boolean{ var _local6:Vector; var _local7:Number; var _local8:Vector; var _local9:Number; collDepth = Number.POSITIVE_INFINITY; var _local3:Array = new Array(2); var _local4:int; while (_local4 < 2) { _local6 = _arg1.axes[_local4]; _local7 = testIntervals(_arg1.getProjection(_local6), _arg2.getProjection(_local6)); if (_local7 == 0){ return (false); }; if (Math.abs(_local7) < Math.abs(collDepth)){ collNormal = _local6; collDepth = _local7; }; _local3[_local4] = _local7; _local4++; }; var _local5:Number = _arg2.radius; if ((((Math.abs(_local3[0]) < _local5)) && ((Math.abs(_local3[1]) < _local5)))){ _local8 = closestVertexOnOBB(_arg2.samp, _arg1); collNormal = _local8.minus(_arg2.samp); _local9 = collNormal.magnitude(); collDepth = (_local5 - _local9); if (collDepth > 0){ collNormal.divEquals(_local9); } else { return (false); }; }; cpa = _arg1; cpb = _arg2; return (true); } private static function closestVertexOnOBB(_arg1:Vector, _arg2:RectangleParticle):Vector{ var _local6:Number; var _local3:Vector = _arg1.minus(_arg2.samp); var _local4:Vector = new Vector(_arg2.samp.x, _arg2.samp.y); var _local5:int; while (_local5 < 2) { _local6 = _local3.dot(_arg2.axes[_local5]); if (_local6 >= 0){ _local6 = _arg2.extents[_local5]; } else { if (_local6 < 0){ _local6 = -(_arg2.extents[_local5]); }; }; _local4.plusEquals(_arg2.axes[_local5].mult(_local6)); _local5++; }; return (_local4); } private static function normVsNorm(_arg1:AbstractParticle, _arg2:AbstractParticle):Boolean{ _arg1.samp.copy(_arg1.curr); _arg2.samp.copy(_arg2.curr); if (testTypes(_arg1, _arg2)){ CollisionResolver.resolve(cpa, cpb, collNormal, collDepth); return (true); }; return (false); } private static function sampVsSamp(_arg1:AbstractParticle, _arg2:AbstractParticle):void{ if (normVsNorm(_arg1, _arg2)){ return; }; var _local3:Number = (1 / (_arg1.multisample + 1)); var _local4:Number = _local3; var _local5:int; while (_local5 <= _arg1.multisample) { _arg1.samp.setTo((_arg1.prev.x + (_local4 * (_arg1.curr.x - _arg1.prev.x))), (_arg1.prev.y + (_local4 * (_arg1.curr.y - _arg1.prev.y)))); _arg2.samp.setTo((_arg2.prev.x + (_local4 * (_arg2.curr.x - _arg2.prev.x))), (_arg2.prev.y + (_local4 * (_arg2.curr.y - _arg2.prev.y)))); if (testTypes(_arg1, _arg2)){ CollisionResolver.resolve(cpa, cpb, collNormal, collDepth); return; }; _local4 = (_local4 + _local3); _local5++; }; } } }//package org.cove.apeSection 119//CollisionEvent (org.cove.ape.CollisionEvent) package org.cove.ape { import flash.events.*; public class CollisionEvent extends Event { private var _collidingItem:AbstractItem; public static const COLLIDE:String = "collide"; public static const FIRST_COLLIDE:String = "firstCollide"; public function CollisionEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:AbstractItem=null){ super(_arg1, _arg2, _arg3); _collidingItem = _arg4; } public function get collidingItem():AbstractItem{ var _local1:SpringConstraintParticle; if ((_collidingItem is SpringConstraintParticle)){ _local1 = (_collidingItem as SpringConstraintParticle); return (_local1.parent); }; return (_collidingItem); } } }//package org.cove.apeSection 120//CollisionResolver (org.cove.ape.CollisionResolver) package org.cove.ape { import org.cove.ape.*; final class CollisionResolver { static function resolve(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:Vector, _arg4:Number):void{ var _local5:Vector = _arg3.mult(_arg4); var _local6:Number = (_arg1.elasticity + _arg2.elasticity); var _local7:Number = (_arg1.invMass + _arg2.invMass); var _local8:Number = MathUtil.clamp((1 - (_arg1.friction + _arg2.friction)), 0, 1); var _local9:Collision = _arg1.getComponents(_arg3); var _local10:Collision = _arg2.getComponents(_arg3); var _local11:Vector = _local10.vn.mult(((_local6 + 1) * _arg1.invMass)).plus(_local9.vn.mult((_arg2.invMass - (_local6 * _arg1.invMass)))).divEquals(_local7); var _local12:Vector = _local9.vn.mult(((_local6 + 1) * _arg2.invMass)).plus(_local10.vn.mult((_arg1.invMass - (_local6 * _arg2.invMass)))).divEquals(_local7); _local9.vt.multEquals(_local8); _local10.vt.multEquals(_local8); var _local13:Vector = _local5.mult((_arg1.invMass / _local7)); var _local14:Vector = _local5.mult((-(_arg2.invMass) / _local7)); _local11.plusEquals(_local9.vt); _local12.plusEquals(_local10.vt); _arg1.resolveCollision(_local13, _local11, _arg3, _arg4, -1, _arg2); _arg2.resolveCollision(_local14, _local12, _arg3, _arg4, 1, _arg1); } } }//package org.cove.apeSection 121//Composite (org.cove.ape.Composite) package org.cove.ape { public class Composite extends AbstractCollection { private var delta:Vector; public function Composite(){ delta = new Vector(); } public function rotateByAngle(_arg1:Number, _arg2:Vector):void{ var _local3:Number = (_arg1 * MathUtil.PI_OVER_ONE_EIGHTY); rotateByRadian(_local3, _arg2); } public function rotateByRadian(_arg1:Number, _arg2:Vector):void{ var _local3:AbstractParticle; var _local7:Number; var _local8:Number; var _local4:Array = particles; var _local5:int = _local4.length; var _local6:int; while (_local6 < _local5) { _local3 = _local4[_local6]; _local7 = _local3.center.distance(_arg2); _local8 = (getRelativeAngle(_arg2, _local3.center) + _arg1); _local3.px = ((Math.cos(_local8) * _local7) + _arg2.x); _local3.py = ((Math.sin(_local8) * _local7) + _arg2.y); _local6++; }; } public function get fixed():Boolean{ var _local1:int; while (_local1 < particles.length) { if (!particles[_local1].fixed){ return (false); }; _local1++; }; return (true); } private function getRelativeAngle(_arg1:Vector, _arg2:Vector):Number{ delta.setTo((_arg2.x - _arg1.x), (_arg2.y - _arg1.y)); return (Math.atan2(delta.y, delta.x)); } public function set fixed(_arg1:Boolean):void{ var _local2:int; while (_local2 < particles.length) { particles[_local2].fixed = _arg1; _local2++; }; } } }//package org.cove.apeSection 122//Group (org.cove.ape.Group) package org.cove.ape { public class Group extends AbstractCollection { private var _composites:Array; private var _collisionList:Array; private var _collideInternal:Boolean; public function Group(_arg1:Boolean=false){ _composites = new Array(); _collisionList = new Array(); this.collideInternal = _arg1; } public function addCollidableList(_arg1:Array):void{ var _local3:Group; var _local2:int; while (_local2 < _arg1.length) { _local3 = _arg1[_local2]; collisionList.push(_local3); _local2++; }; } function checkCollisions():void{ var _local3:Group; if (collideInternal){ checkCollisionGroupInternal(); }; var _local1:int = collisionList.length; var _local2:int; while (_local2 < _local1) { _local3 = collisionList[_local2]; if (_local3 == null){ } else { checkCollisionVsGroup(_local3); }; _local2++; }; } public function removeComposite(_arg1:Composite):void{ var _local2:int = composites.indexOf(_arg1); if (_local2 == -1){ return; }; composites.splice(_local2, 1); _arg1.isParented = false; _arg1.cleanup(); } override public function cleanup():void{ super.cleanup(); var _local1:int; while (_local1 < composites.length) { composites[_local1].cleanup(); _local1++; }; } public function removeCollidable(_arg1:Group):void{ var _local2:int = collisionList.indexOf(_arg1); if (_local2 == -1){ return; }; collisionList.splice(_local2, 1); } public function addComposite(_arg1:Composite):void{ composites.push(_arg1); _arg1.isParented = true; if (isParented){ _arg1.init(); }; } public function addCollidable(_arg1:Group):void{ collisionList.push(_arg1); } override function integrate(_arg1:Number):void{ var _local4:Composite; super.integrate(_arg1); var _local2:int = _composites.length; var _local3:int; while (_local3 < _local2) { _local4 = _composites[_local3]; _local4.integrate(_arg1); _local3++; }; } public function get composites():Array{ return (_composites); } override public function init():void{ super.init(); var _local1:int; while (_local1 < composites.length) { composites[_local1].init(); _local1++; }; } override public function getAll():Array{ return (particles.concat(constraints).concat(composites)); } public function get collisionList():Array{ return (_collisionList); } private function checkCollisionGroupInternal():void{ var _local3:Composite; var _local4:int; var _local5:Composite; checkInternalCollisions(); var _local1:int = _composites.length; var _local2:int; while (_local2 < _local1) { _local3 = _composites[_local2]; if (_local3 == null){ } else { _local3.checkCollisionsVsCollection(this); _local4 = (_local2 + 1); while (_local4 < _local1) { _local5 = _composites[_local4]; if (_local5 != null){ _local3.checkCollisionsVsCollection(_local5); }; _local4++; }; }; _local2++; }; } override function satisfyConstraints():void{ var _local3:Composite; super.satisfyConstraints(); var _local1:int = _composites.length; var _local2:int; while (_local2 < _local1) { _local3 = _composites[_local2]; _local3.satisfyConstraints(); _local2++; }; } public function get collideInternal():Boolean{ return (_collideInternal); } public function set collideInternal(_arg1:Boolean):void{ _collideInternal = _arg1; } override public function paint():void{ var _local3:Composite; super.paint(); var _local1:int = _composites.length; var _local2:int; while (_local2 < _local1) { _local3 = _composites[_local2]; _local3.paint(); _local2++; }; } private function checkCollisionVsGroup(_arg1:Group):void{ var _local2:Composite; var _local6:Composite; var _local7:int; checkCollisionsVsCollection(_arg1); var _local3:int = _composites.length; var _local4:int = _arg1.composites.length; var _local5:int; while (_local5 < _local3) { _local6 = _composites[_local5]; if (_local6 == null){ } else { _local6.checkCollisionsVsCollection(_arg1); _local7 = 0; while (_local7 < _local4) { _local2 = _arg1.composites[_local7]; if (_local2 == null){ } else { _local6.checkCollisionsVsCollection(_local2); }; _local7++; }; }; _local5++; }; _local7 = 0; while (_local7 < _local4) { _local2 = _arg1.composites[_local7]; if (_local2 == null){ } else { checkCollisionsVsCollection(_local2); }; _local7++; }; } } }//package org.cove.apeSection 123//IForce (org.cove.ape.IForce) package org.cove.ape { public interface IForce { function getValue(_arg1:Number):Vector; } }//package org.cove.apeSection 124//Interval (org.cove.ape.Interval) package org.cove.ape { final class Interval { var min:Number; var max:Number; function Interval(_arg1:Number, _arg2:Number){ this.min = _arg1; this.max = _arg2; } function toString():String{ return (((min + " : ") + max)); } } }//package org.cove.apeSection 125//MathUtil (org.cove.ape.MathUtil) package org.cove.ape { final class MathUtil { static var ONE_EIGHTY_OVER_PI:Number = 57.2957795130823; static var PI_OVER_ONE_EIGHTY:Number = 0.0174532925199433; static function clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ if (_arg1 < _arg2){ return (_arg2); }; if (_arg1 > _arg3){ return (_arg3); }; return (_arg1); } static function sign(_arg1:Number):int{ if (_arg1 < 0){ return (-1); }; return (1); } } }//package org.cove.apeSection 126//RectangleParticle (org.cove.ape.RectangleParticle) package org.cove.ape { public class RectangleParticle extends AbstractParticle { private var _axes:Array; private var _radian:Number; private var _extents:Array; public function RectangleParticle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Boolean=false, _arg7:Number=1, _arg8:Number=0.3, _arg9:Number=0){ super(_arg1, _arg2, _arg6, _arg7, _arg8, _arg9); _extents = new Array((_arg3 / 2), (_arg4 / 2)); _axes = new Array(new Vector(0, 0), new Vector(0, 0)); radian = _arg5; } public function get radian():Number{ return (_radian); } public function set radian(_arg1:Number):void{ _radian = _arg1; setAxes(_arg1); } function get axes():Array{ return (_axes); } public function set angle(_arg1:Number):void{ radian = (_arg1 * MathUtil.PI_OVER_ONE_EIGHTY); } function get extents():Array{ return (_extents); } public function set width(_arg1:Number):void{ _extents[0] = (_arg1 / 2); } public function get width():Number{ return ((_extents[0] * 2)); } public function set height(_arg1:Number):void{ _extents[1] = (_arg1 / 2); } override public function init():void{ var _local1:Number; var _local2:Number; cleanup(); if (displayObject != null){ initDisplay(); } else { _local1 = (extents[0] * 2); _local2 = (extents[1] * 2); sprite.graphics.clear(); sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha); sprite.graphics.beginFill(fillColor, fillAlpha); sprite.graphics.drawRect((-(_local1) / 2), (-(_local2) / 2), _local1, _local2); sprite.graphics.endFill(); }; paint(); } public function get height():Number{ return ((_extents[1] * 2)); } public function get angle():Number{ return ((radian * MathUtil.ONE_EIGHTY_OVER_PI)); } function getProjection(_arg1:Vector):Interval{ var _local2:Number = ((extents[0] * Math.abs(_arg1.dot(axes[0]))) + (extents[1] * Math.abs(_arg1.dot(axes[1])))); var _local3:Number = samp.dot(_arg1); interval.min = (_local3 - _local2); interval.max = (_local3 + _local2); return (interval); } override public function paint():void{ sprite.x = curr.x; sprite.y = curr.y; sprite.rotation = angle; } private function setAxes(_arg1:Number):void{ var _local2:Number = Math.sin(_arg1); var _local3:Number = Math.cos(_arg1); axes[0].x = _local3; axes[0].y = _local2; axes[1].x = -(_local2); axes[1].y = _local3; } } }//package org.cove.apeSection 127//SpringConstraint (org.cove.ape.SpringConstraint) package org.cove.ape { import flash.display.*; public class SpringConstraint extends AbstractConstraint { private var _collidable:Boolean; private var p1:AbstractParticle; private var p2:AbstractParticle; private var _scp:SpringConstraintParticle; private var _restLength:Number; public function SpringConstraint(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:Number=0.5, _arg4:Boolean=false, _arg5:Number=1, _arg6:Number=1, _arg7:Boolean=false){ super(_arg3); this.p1 = _arg1; this.p2 = _arg2; checkParticlesLocation(); _restLength = currLength; setCollidable(_arg4, _arg5, _arg6, _arg7); } public function get fixed():Boolean{ return (((p1.fixed) && (p2.fixed))); } public function get rectScale():Number{ return (scp.rectScale); } public function set rectScale(_arg1:Number):void{ if (scp == null){ return; }; scp.rectScale = _arg1; } public function setDisplay(_arg1:DisplayObject, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):void{ if (collidable){ scp.setDisplay(_arg1, _arg2, _arg3, _arg4); } else { displayObject = _arg1; displayObjectRotation = _arg4; displayObjectOffset = new Vector(_arg2, _arg3); }; } override public function init():void{ cleanup(); if (collidable){ scp.init(); } else { if (displayObject != null){ initDisplay(); }; }; paint(); } function initDisplay():void{ if (collidable){ scp.initDisplay(); } else { displayObject.x = displayObjectOffset.x; displayObject.y = displayObjectOffset.y; displayObject.rotation = displayObjectRotation; sprite.addChild(displayObject); }; } public function get angle():Number{ return ((radian * MathUtil.ONE_EIGHTY_OVER_PI)); } public function get center():Vector{ return (p1.curr.plus(p2.curr).divEquals(2)); } public function set rectHeight(_arg1:Number):void{ if (scp == null){ return; }; scp.rectHeight = _arg1; } public function get restLength():Number{ return (_restLength); } override public function paint():void{ var _local1:Vector; if (collidable){ scp.paint(); } else { if (displayObject != null){ _local1 = center; sprite.x = _local1.x; sprite.y = _local1.y; sprite.rotation = angle; } else { sprite.graphics.clear(); sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha); sprite.graphics.moveTo(p1.px, p1.py); sprite.graphics.lineTo(p2.px, p2.py); }; }; } function get scp():SpringConstraintParticle{ return (_scp); } public function get collidable():Boolean{ return (_collidable); } public function setCollidable(_arg1:Boolean, _arg2:Number, _arg3:Number, _arg4:Boolean=false):void{ _collidable = _arg1; _scp = null; if (_collidable){ _scp = new SpringConstraintParticle(p1, p2, this, _arg2, _arg3, _arg4); }; } public function isConnectedTo(_arg1:AbstractParticle):Boolean{ return ((((_arg1 == p1)) || ((_arg1 == p2)))); } public function get rectHeight():Number{ return (scp.rectHeight); } override public function resolve():void{ if (((p1.fixed) && (p2.fixed))){ return; }; var _local1:Number = currLength; var _local2:Number = ((_local1 - restLength) / (_local1 * (p1.invMass + p2.invMass))); var _local3:Vector = delta.mult((_local2 * stiffness)); p1.curr.minusEquals(_local3.mult(p1.invMass)); p2.curr.plusEquals(_local3.mult(p2.invMass)); } public function set fixedEndLimit(_arg1:Number):void{ if (scp == null){ return; }; scp.fixedEndLimit = _arg1; } public function get radian():Number{ var _local1:Vector = delta; return (Math.atan2(_local1.y, _local1.x)); } public function set restLength(_arg1:Number):void{ if (_arg1 <= 0){ throw (new ArgumentError("restLength must be greater than 0")); }; _restLength = _arg1; } public function get currLength():Number{ return (p1.curr.distance(p2.curr)); } public function get fixedEndLimit():Number{ return (scp.fixedEndLimit); } private function checkParticlesLocation():void{ if ((((p1.curr.x == p2.curr.x)) && ((p1.curr.y == p2.curr.y)))){ p2.curr.x = (p2.curr.x + 0.0001); }; } function get delta():Vector{ return (p1.curr.minus(p2.curr)); } } }//package org.cove.apeSection 128//SpringConstraintParticle (org.cove.ape.SpringConstraintParticle) package org.cove.ape { import flash.display.*; import org.cove.ape.*; class SpringConstraintParticle extends RectangleParticle { private var p1:AbstractParticle; private var p2:AbstractParticle; private var lambda:Vector; private var _rectHeight:Number; private var avgVelocity:Vector; private var rca:Vector; private var rcb:Vector; private var _rectScale:Number; var parent:SpringConstraint; private var scaleToLength:Boolean; private var s:Number; private var _fixedEndLimit:Number; function SpringConstraintParticle(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:SpringConstraint, _arg4:Number, _arg5:Number, _arg6:Boolean){ super(0, 0, 0, 0, 0, false); this.p1 = _arg1; this.p2 = _arg2; lambda = new Vector(0, 0); avgVelocity = new Vector(0, 0); parent = _arg3; this.rectScale = _arg5; this.rectHeight = _arg4; this.scaleToLength = _arg6; fixedEndLimit = 0; rca = new Vector(); rcb = new Vector(); } override public function get fixed():Boolean{ return (parent.fixed); } override function get invMass():Number{ if (((p1.fixed) && (p2.fixed))){ return (0); }; return ((1 / ((p1.mass + p2.mass) / 2))); } function get rectScale():Number{ return (_rectScale); } private function setCorners(_arg1:RectangleParticle, _arg2:int):void{ var _local3:Number = _arg1.curr.x; var _local4:Number = _arg1.curr.y; var _local5:Array = _arg1.axes; var _local6:Array = _arg1.extents; var _local7:Number = (_local5[0].x * _local6[0]); var _local8:Number = (_local5[0].y * _local6[0]); var _local9:Number = (_local5[1].x * _local6[1]); var _local10:Number = (_local5[1].y * _local6[1]); var _local11:Number = (_local7 - _local9); var _local12:Number = (_local8 - _local10); var _local13:Number = (_local7 + _local9); var _local14:Number = (_local8 + _local10); if (_arg2 == 0){ rca.x = (_local3 - _local13); rca.y = (_local4 - _local14); rcb.x = (_local3 + _local11); rcb.y = (_local4 + _local12); } else { if (_arg2 == 1){ rca.x = (_local3 + _local11); rca.y = (_local4 + _local12); rcb.x = (_local3 + _local13); rcb.y = (_local4 + _local14); } else { if (_arg2 == 2){ rca.x = (_local3 + _local13); rca.y = (_local4 + _local14); rcb.x = (_local3 - _local11); rcb.y = (_local4 - _local12); } else { if (_arg2 == 3){ rca.x = (_local3 - _local11); rca.y = (_local4 - _local12); rcb.x = (_local3 - _local13); rcb.y = (_local4 - _local14); }; }; }; }; } function set rectScale(_arg1:Number):void{ _rectScale = _arg1; } override public function get friction():Number{ return (((p1.friction + p2.friction) / 2)); } override public function init():void{ var _local1:Sprite; var _local2:Number; var _local3:Number; if (displayObject != null){ initDisplay(); } else { _local1 = new Sprite(); parent.sprite.addChild(_local1); _local1.name = "inner"; _local2 = (parent.currLength * rectScale); _local3 = rectHeight; _local1.graphics.clear(); _local1.graphics.lineStyle(parent.lineThickness, parent.lineColor, parent.lineAlpha); _local1.graphics.beginFill(parent.fillColor, parent.fillAlpha); _local1.graphics.drawRect((-(_local2) / 2), (-(_local3) / 2), _local2, _local3); _local1.graphics.endFill(); }; paint(); } override function initDisplay():void{ displayObject.x = displayObjectOffset.x; displayObject.y = displayObjectOffset.y; displayObject.rotation = displayObjectRotation; var _local1:Sprite = new Sprite(); _local1.name = "inner"; _local1.addChild(displayObject); parent.sprite.addChild(_local1); } function set rectHeight(_arg1:Number):void{ _rectHeight = _arg1; } function updatePosition():void{ var _local1:Vector = parent.center; curr.setTo(_local1.x, _local1.y); width = (scaleToLength) ? (parent.currLength * rectScale) : (parent.restLength * rectScale); height = rectHeight; radian = parent.radian; } override public function get velocity():Vector{ var _local1:Vector = p1.velocity; var _local2:Vector = p2.velocity; avgVelocity.setTo(((_local1.x + _local2.x) / 2), ((_local1.y + _local2.y) / 2)); return (avgVelocity); } override public function paint():void{ var _local1:Vector = parent.center; var _local2:Sprite = parent.sprite; if (scaleToLength){ _local2.getChildByName("inner").width = (parent.currLength * rectScale); } else { if (displayObject != null){ _local2.getChildByName("inner").width = (parent.restLength * rectScale); }; }; _local2.x = _local1.x; _local2.y = _local1.y; _local2.rotation = parent.angle; } private function getContactPointParam(_arg1:AbstractParticle):Number{ var _local2:Number; var _local3:Number; var _local4:Array; var _local5:Number; var _local6:int; var _local7:Number; if ((_arg1 is CircleParticle)){ _local2 = closestParamPoint(_arg1.curr); } else { if ((_arg1 is RectangleParticle)){ _local4 = new Array(4); _local5 = Number.POSITIVE_INFINITY; _local6 = 0; while (_local6 < 4) { setCorners((_arg1 as RectangleParticle), _local6); _local7 = closestPtSegmentSegment(); if (_local7 < _local5){ _local5 = _local7; _local3 = _local6; _local4[_local6] = s; }; _local6++; }; _local2 = _local4[_local3]; }; }; return (_local2); } function set fixedEndLimit(_arg1:Number):void{ _fixedEndLimit = _arg1; } private function closestPtSegmentSegment():Number{ var _local8:Number; var _local1:Vector = p1.curr; var _local2:Vector = p2.curr; var _local3:Vector = rca; var _local4:Vector = rcb; var _local5:Vector = _local2.minus(_local1); var _local6:Vector = _local4.minus(_local3); var _local7:Vector = _local1.minus(_local3); var _local9:Number = _local5.dot(_local5); var _local10:Number = _local6.dot(_local6); var _local11:Number = _local6.dot(_local7); var _local12:Number = _local5.dot(_local7); var _local13:Number = _local5.dot(_local6); var _local14:Number = ((_local9 * _local10) - (_local13 * _local13)); if (_local14 != 0){ s = MathUtil.clamp((((_local13 * _local11) - (_local12 * _local10)) / _local14), 0, 1); } else { s = 0.5; }; _local8 = (((_local13 * s) + _local11) / _local10); if (_local8 < 0){ _local8 = 0; s = MathUtil.clamp((-(_local12) / _local9), 0, 1); } else { if (_local8 > 0){ _local8 = 1; s = MathUtil.clamp(((_local13 - _local12) / _local9), 0, 1); }; }; var _local15:Vector = _local1.plus(_local5.mult(s)); var _local16:Vector = _local3.plus(_local6.mult(_local8)); var _local17:Vector = _local15.minus(_local16); return (_local15.minus(_local16).dot(_local17)); } override function resolveCollision(_arg1:Vector, _arg2:Vector, _arg3:Vector, _arg4:Number, _arg5:int, _arg6:AbstractParticle):void{ var _local10:Number; var _local11:AbstractParticle; testParticleEvents(_arg6); if (((fixed) || (!(_arg6.solid)))){ return; }; var _local7:Number = getContactPointParam(_arg6); var _local8:Number = (1 - _local7); var _local9:Number = _local7; if (p1.fixed){ if (_local9 <= fixedEndLimit){ return; }; lambda.setTo((_arg1.x / _local9), (_arg1.y / _local9)); p2.curr.plusEquals(lambda); p2.velocity = _arg2; } else { if (p2.fixed){ if (_local8 <= fixedEndLimit){ return; }; lambda.setTo((_arg1.x / _local8), (_arg1.y / _local8)); p1.curr.plusEquals(lambda); p1.velocity = _arg2; } else { _local10 = ((_local8 * _local8) + (_local9 * _local9)); if (_local10 == 0){ return; }; lambda.setTo((_arg1.x / _local10), (_arg1.y / _local10)); p1.curr.plusEquals(lambda.mult(_local8)); p2.curr.plusEquals(lambda.mult(_local9)); if (_local7 == 0.5){ p1.velocity = _arg2; p2.velocity = _arg2; } else { _local11 = ((_local7)<0.5) ? p1 : p2; _local11.velocity = _arg2; }; }; }; } function get rectHeight():Number{ return (_rectHeight); } function get fixedEndLimit():Number{ return (_fixedEndLimit); } override public function get elasticity():Number{ return (((p1.elasticity + p2.elasticity) / 2)); } override public function get mass():Number{ return (((p1.mass + p2.mass) / 2)); } private function closestParamPoint(_arg1:Vector):Number{ var _local2:Vector = p2.curr.minus(p1.curr); var _local3:Number = (_local2.dot(_arg1.minus(p1.curr)) / _local2.dot(_local2)); return (MathUtil.clamp(_local3, 0, 1)); } } }//package org.cove.apeSection 129//Vector (org.cove.ape.Vector) package org.cove.ape { public class Vector { public var x:Number; public var y:Number; public function Vector(_arg1:Number=0, _arg2:Number=0){ x = _arg1; y = _arg2; } public function cross(_arg1:Vector):Number{ return (((x * _arg1.y) - (y * _arg1.x))); } public function magnitude():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function divEquals(_arg1:Number):Vector{ if (_arg1 == 0){ _arg1 = 0.0001; }; x = (x / _arg1); y = (y / _arg1); return (this); } public function times(_arg1:Vector):Vector{ return (new Vector((x * _arg1.x), (y * _arg1.y))); } public function plusEquals(_arg1:Vector):Vector{ x = (x + _arg1.x); y = (y + _arg1.y); return (this); } public function dot(_arg1:Vector):Number{ return (((x * _arg1.x) + (y * _arg1.y))); } public function normalizeEquals():Vector{ var _local1:Number = magnitude(); if (_local1 == 0){ _local1 = 0.0001; }; return (multEquals((1 / _local1))); } public function normalize():Vector{ var _local1:Number = magnitude(); if (_local1 == 0){ _local1 = 0.0001; }; return (mult((1 / _local1))); } public function minusEquals(_arg1:Vector):Vector{ x = (x - _arg1.x); y = (y - _arg1.y); return (this); } public function copy(_arg1:Vector):void{ x = _arg1.x; y = _arg1.y; } public function multEquals(_arg1:Number):Vector{ x = (x * _arg1); y = (y * _arg1); return (this); } public function minus(_arg1:Vector):Vector{ return (new Vector((x - _arg1.x), (y - _arg1.y))); } public function plus(_arg1:Vector):Vector{ return (new Vector((x + _arg1.x), (y + _arg1.y))); } public function toString():String{ return (((x + " : ") + y)); } public function distance(_arg1:Vector):Number{ var _local2:Vector = this.minus(_arg1); return (_local2.magnitude()); } public function setTo(_arg1:Number, _arg2:Number):void{ x = _arg1; y = _arg2; } public function mult(_arg1:Number):Vector{ return (new Vector((x * _arg1), (y * _arg1))); } } }//package org.cove.apeSection 130//VectorForce (org.cove.ape.VectorForce) package org.cove.ape { public class VectorForce implements IForce { private var fvx:Number; private var fvy:Number; private var value:Vector; private var scaleMass:Boolean; public function VectorForce(_arg1:Boolean, _arg2:Number, _arg3:Number){ fvx = _arg2; fvy = _arg3; scaleMass = _arg1; value = new Vector(_arg2, _arg3); } public function set vx(_arg1:Number):void{ fvx = _arg1; value.x = _arg1; } public function set vy(_arg1:Number):void{ fvy = _arg1; value.y = _arg1; } public function set useMass(_arg1:Boolean):void{ scaleMass = _arg1; } public function getValue(_arg1:Number):Vector{ if (scaleMass){ value.setTo((fvx * _arg1), (fvy * _arg1)); }; return (value); } } }//package org.cove.apeSection 131//Assets (Assets) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import com.gskinner.utils.*; import flash.ui.*; public class Assets { private var _SoundGroan:Class; private var _SoundSQLookOut:Class; private var _SoundCannon:Class; private var _SoundSQYipee2:Class; private var _SoundSQYipee3:Class; private var _squirrelSounds:Array; public var _SoundIconOff:Class; private var _Wheel:Class; public var _StarBubble:Class; private var _SoundPop:Class; private var _Cannon:Class; private var _lastSquirrelPhrase:String; private var _SoundSQOohh:Class; private var _SoundSQHereICome:Class; private var _SoundStarMove:Class; private var _SoundSQMayHave:Class; private var _BigNutBubble:Class; private var _WoodWall1:Class; private var _WoodWall2:Class; private var _SoundSQEhhh:Class; private var _SoundSQWoohoo:Class; private var _StarMeterFull:Class; private var _SoundWallHit:Class; private var _SoundSQYipee:Class; private var _SoundBawong:Class; private var _Pop:Class; private var _SoundStarEarn:Class; private var _SoundNoon:Class; public var _SoundIcon:Class; public var _Gear:Class; public var _MeterBubble:Class; private var _SoundSquirrelLaugh:Class; private var _SoundSQAlright:Class; private var _SoundSQOohh2:Class; private var _SoundSQWantBig:Class; private var _squirrelCheers:Array; private var _SoundFanfare:Class; private var _SoundMorning:Class; private var _SoundSunset:Class; private var _SoundSQMoreMore:Class; private var _squirrelComments:Array; private var _SoundRise:Class; private var _SoundKnock1:Class; private var _SoundMidnight:Class; private var _SoundSQWantMore:Class; public static const EndStarOff3:Class = Assets_EndStarOff3; public static const SkyNoon:Class = Assets_SkyNoon; public static const SOUND_SUNSET:String = "sunset"; public static const SquirrelChica:Class = Assets_SquirrelChica; public static const SquirrelSpike:Class = Assets_SquirrelSpike; public static const Feather1:Class = Assets_Feather1; public static const SOUND_RISE:String = "rise"; public static const WoodBackgroundLarge:Class = Assets_WoodBackgroundLarge; public static const GRASS_HIT1:String = "grass1"; public static const GRASS_HIT3:String = "grass3"; public static const EndLevelUnlock:Class = Assets_EndLevelUnlock; public static const CannonPuff1:Class = Assets_CannonPuff1; public static const MedalBird:Class = Assets_MedalBird; public static const SOUND_MIDNIGHT:String = "midnight"; public static const SpringTerrain:Class = Assets_SpringTerrain; public static const EndLevelLock:Class = Assets_EndLevelLock; public static const ScoreDivider:Class = Assets_ScoreDivider; public static const TextSelectLevel:Class = Assets_TextSelectLevel; public static const MiniGameLogo2:Class = Assets_MiniGameLogo2; public static const WoodButton:Class = Assets_WoodButton; public static const ExampleLevel:Class = Assets_ExampleLevel; public static const Crow2:Class = Assets_Crow2; public static const SOUND_MORNING:String = "morning"; public static const Crow1:Class = Assets_Crow1; public static const NutFat:Class = Assets_NutFat; public static const GRASS_HIT2:String = "grass2"; public static const MessageBackground:Class = Assets_MessageBackground; public static const StarMeterOn:Class = Assets_StarMeterOn; public static const CROW1:String = "crowcaw"; public static const CROW2:String = "crowcaw2"; public static const FireWhoosh:Class = Assets_FireWhoosh; public static const MeterStarOn:Class = Assets_MeterStarOn; public static const WinterTerrain:Class = Assets_WinterTerrain; public static const SOUND_BAWONG:String = "bawong"; public static const NutGem:Class = Assets_NutGem; public static const SOUND_SQHERE:String = "sqhere"; public static const BonusStarOn:Class = Assets_BonusStarOn; public static const MenuAndkon:Class = Assets_MenuAndkon; public static const SOUND_SQMAYHAVE:String = "sqmayhave"; public static const SOUND_SQLOOKOUT:String = "sqlookout"; public static const BuyItButton:Class = Assets_BuyItButton; public static const BonusStarOff:Class = Assets_BonusStarOff; public static const FIRE_WHOOSH:String = "firewhoosh"; public static const WoodHeadboard:Class = Assets_WoodHeadboard; public static const PauseButton:Class = Assets_PauseButton; public static const Cloud1:Class = Assets_Cloud1; public static const SOUND_NOON:String = "noon"; public static const Cloud3:Class = Assets_Cloud3; public static const WoodWall1:Class = Assets_WoodWall1; public static const Cloud2:Class = Assets_Cloud2; public static const TargetStarOn:Class = Assets_TargetStarOn; public static const SOUND_GROAN:String = "groan"; public static const LeaderboardButton:Class = Assets_LeaderboardButton; public static const SOUND_SQYIPEE:String = "sqyipee"; public static const Sparkle:Class = Assets_Sparkle; public static const LockLevel:Class = Assets_LockLevel; public static const GraphBackground:Class = Assets_GraphBackground; public static const ArrowLogin:Class = Assets_ArrowLogin; public static const LevelBubble:Class = Assets_LevelBubble; public static const GraphForeground:Class = Assets_GraphForeground; public static const EndTargetStarOn:Class = Assets_EndTargetStarOn; public static const CustomizeButton:Class = Assets_CustomizeButton; public static const MedalNut:Class = Assets_MedalNut; public static const ResetButton:Class = Assets_ResetButton; public static const SOUND_SQALRIGHT:String = "sqalright"; public static const EndStarOn1:Class = Assets_EndStarOn1; public static const EndStarOn2:Class = Assets_EndStarOn2; public static const EndStarOn3:Class = Assets_EndStarOn3; public static const EndStarOn4:Class = Assets_EndStarOn4; public static const EndStarOn5:Class = Assets_EndStarOn5; public static const MenuPlay:Class = Assets_MenuPlay; public static const SOUND_SQWANTBIG:String = "sqwantbig"; public static const BonusBubble:Class = Assets_BonusBubble; public static const SOUND_SQ_ALL:String = "sq_all"; public static const DoneButton:Class = Assets_DoneButton; public static const SOUND_SQWOOHOO:String = "sqwoohoo"; public static const SOUND_SQYIPEE2:String = "sqyipee2"; public static const SOUND_SQYIPEE3:String = "sqyipee3"; public static const FireAnim:Class = Assets_FireAnim; public static const SubmitButton:Class = Assets_SubmitButton; public static const BlockTReg:Class = Assets_BlockTReg; public static const SOUND_SQEHHH:String = "sqehhh"; public static const Base12SansSC:Class = Assets_Base12SansSC; public static const Grass:Class = Assets_Grass; public static const Spring4_1:Class = Assets_Spring4_1; public static const Spring4_2:Class = Assets_Spring4_2; public static const Spring4_3:Class = Assets_Spring4_3; public static const Spring4_4:Class = Assets_Spring4_4; public static const Spring4_5:Class = Assets_Spring4_5; public static const LevelsButton:Class = Assets_LevelsButton; public static const PibooButton:Class = Assets_PibooButton; public static const SquirrelViking:Class = Assets_SquirrelViking; public static const Snow:Class = Assets_Snow; public static const MochiGamesBubble:Class = Assets_MochiGamesBubble; public static const GrassHit2:Class = Assets_GrassHit2; public static const GrassHit3:Class = Assets_GrassHit3; public static const MedalNutEmpty:Class = Assets_MedalNutEmpty; public static const StarMeterOff:Class = Assets_StarMeterOff; public static const GrassHit1:Class = Assets_GrassHit1; public static const SquirrelNormal:Class = Assets_SquirrelNormal; public static const Logo:Class = Assets_Logo; public static const MenuGradient:Class = Assets_MenuGradient; public static const NutGemAnim:Class = Assets_NutGemAnim; public static const Spring3_1:Class = Assets_Spring3_1; public static const Spring3_2:Class = Assets_Spring3_2; public static const Spring3_3:Class = Assets_Spring3_3; public static const Spring3_4:Class = Assets_Spring3_4; public static const Spring3_5:Class = Assets_Spring3_5; public static const SOUND_SQMOREMORE:String = "sqmoremore"; public static const Winter4_1:Class = Assets_Winter4_1; public static const BuyNowButton:Class = Assets_BuyNowButton; public static const Winter4_3:Class = Assets_Winter4_3; public static const Winter4_4:Class = Assets_Winter4_4; public static const Winter4_5:Class = Assets_Winter4_5; public static const SelectButtonOn:Class = Assets_SelectButtonOn; public static const GemShard:Class = Assets_GemShard; public static const NutClone:Class = Assets_NutClone; public static const Winter4_2:Class = Assets_Winter4_2; public static const PointsStar:Class = Assets_PointsStar; public static const EndTargetStarOff:Class = Assets_EndTargetStarOff; public static const WoodBackgroundSmall:Class = Assets_WoodBackgroundSmall; public static const RapidFireMode:Class = Assets_RapidFireMode; public static const MeterStarOff:Class = Assets_MeterStarOff; public static const Spring2_1:Class = Assets_Spring2_1; public static const Spring2_2:Class = Assets_Spring2_2; public static const Spring2_3:Class = Assets_Spring2_3; public static const Spring2_4:Class = Assets_Spring2_4; public static const Spring2_5:Class = Assets_Spring2_5; public static const Winter3_1:Class = Assets_Winter3_1; public static const Winter3_2:Class = Assets_Winter3_2; public static const Winter3_3:Class = Assets_Winter3_3; public static const Winter3_4:Class = Assets_Winter3_4; public static const Winter3_5:Class = Assets_Winter3_5; public static const WoodDivider1:Class = Assets_WoodDivider1; public static const WoodDivider2:Class = Assets_WoodDivider2; public static const WoodDivider3:Class = Assets_WoodDivider3; public static const ReplayButton:Class = Assets_ReplayButton; public static const MiniButtonOff:Class = Assets_MiniButtonOff; public static const BonusLevelLocked:Class = Assets_BonusLevelLocked; public static const SOUND_METERFULL:String = "meterfull"; public static const SOUND_WALLHIT:String = "wallhit"; public static const GLASS_BREAK:String = "glassbreak"; public static const MiniButtonOn:Class = Assets_MiniButtonOn; public static const SOUND_CANNON:String = "cannon"; public static const BlockTRegCond:Class = Assets_BlockTRegCond; public static const SOUND_FANFARE:String = "fanfare"; public static const MiniGameLogo:Class = Assets_MiniGameLogo; public static const Spring1_1:Class = Assets_Spring1_1; public static const Spring1_2:Class = Assets_Spring1_2; public static const Spring1_3:Class = Assets_Spring1_3; public static const Spring1_4:Class = Assets_Spring1_4; public static const Spring1_5:Class = Assets_Spring1_5; public static const SquirrelSanta:Class = Assets_SquirrelSanta; public static const Winter2_1:Class = Assets_Winter2_1; public static const Winter2_2:Class = Assets_Winter2_2; public static const Winter2_3:Class = Assets_Winter2_3; public static const Winter2_4:Class = Assets_Winter2_4; public static const Winter2_5:Class = Assets_Winter2_5; public static const SOUND_SQOOHH2:String = "sqoohh2"; public static const Firework:Class = Assets_Firework; public static const SOUND_STARMOVE:String = "star_move"; public static const SOUND_SQ_CHEERS:String = "sq_cheers"; public static const QuitButton:Class = Assets_QuitButton; public static const Splash:Class = Assets_Splash; public static const SOUND_STAREARN:String = "star_earn"; public static const BirdAnim:Class = Assets_BirdAnim; public static const BigNut:Class = Assets_BigNut; public static const MoveArrow:Class = Assets_MoveArrow; public static const Winter1_1:Class = Assets_Winter1_1; public static const Winter1_2:Class = Assets_Winter1_2; public static const Winter1_3:Class = Assets_Winter1_3; public static const Winter1_4:Class = Assets_Winter1_4; public static const MenuStore:Class = Assets_MenuStore; public static const Winter1_5:Class = Assets_Winter1_5; public static const NutNormal:Class = Assets_NutNormal; public static const BonusLevelStar:Class = Assets_BonusLevelStar; public static const TargetStarOff:Class = Assets_TargetStarOff; public static const Dandelion:Class = Assets_Dandelion; public static const QuestionButton:Class = Assets_QuestionButton; public static const ContinueButton:Class = Assets_ContinueButton; public static const TextBonusLevels:Class = Assets_TextBonusLevels; public static const SOUND_POP:String = "pop"; public static const UnlockButtonSmall:Class = Assets_UnlockButtonSmall; public static const BonusLockBubble:Class = Assets_BonusLockBubble; public static const MedalBirdEmpty:Class = Assets_MedalBirdEmpty; public static const WoodDividerLarge1:Class = Assets_WoodDividerLarge1; public static const WoodDividerLarge2:Class = Assets_WoodDividerLarge2; public static const WoodPeg:Class = Assets_WoodPeg; public static const SquirrelMohawk:Class = Assets_SquirrelMohawk; public static const GlassBreak:Class = Assets_GlassBreak; public static const SOUND_LAUGH:String = "laugh"; public static const SOUND_SQWANTMORE:String = "sqwantmore"; public static const BackButton:Class = Assets_BackButton; public static const GrassBlur:Class = Assets_GrassBlur; public static const SelectButtonOff:Class = Assets_SelectButtonOff; public static const MENU_MUSIC:String = "menumusic2"; public static const StarBurstPurple:Class = Assets_StarBurstPurple; public static const SkyAfternoon:Class = Assets_SkyAfternoon; public static const SmokePuff3:Class = Assets_SmokePuff3; public static const NutFire:Class = Assets_NutFire; public static const SmokePuff1:Class = Assets_SmokePuff1; public static const SmokePuff2:Class = Assets_SmokePuff2; public static const MedalSquirrel:Class = Assets_MedalSquirrel; public static const Switch:Class = Assets_Switch; public static const SOUND_KNOCK1:String = "knock1"; public static const MenuTop:Class = Assets_MenuTop; public static const NutPattern:Class = Assets_NutPattern; public static const SOUND_SQ_COMMENTS:String = "sq_comments"; public static const SquirrelTail:Class = Assets_SquirrelTail; public static const SkyMorning:Class = Assets_SkyMorning; public static const NutFirePlace:Class = Assets_NutFirePlace; public static const BlockTHeavy:Class = Assets_BlockTHeavy; public static const SOUND_SQOOHH:String = "sqoohh"; public static const BURNING:String = "burning"; public static const SkyNight:Class = Assets_SkyNight; public static const Burning:Class = Assets_Burning; public static const BuyCheatButton:Class = Assets_BuyCheatButton; public static const BonusLevelRowLock:Class = Assets_BonusLevelRowLock; public static const PlayButton:Class = Assets_PlayButton; public static const RubberWall1:Class = Assets_RubberWall1; public static const ScoreMedalDivider:Class = Assets_ScoreMedalDivider; public static const BonusLevelGreyStar:Class = Assets_BonusLevelGreyStar; public static const EndButton:Class = Assets_EndButton; public static const MultiplierStar:Class = Assets_MultiplierStar; public static const WinterSell:Class = Assets_WinterSell; public static const MedalSquirrelEmpty:Class = Assets_MedalSquirrelEmpty; public static const StarBurstYellow:Class = Assets_StarBurstYellow; public static const MenuMusic:Class = Assets_MenuMusic; public static const Arrow:Class = Assets_Arrow; public static const RubberBall:Class = Assets_RubberBall; public static const EndStarOff2:Class = Assets_EndStarOff2; public static const EndStarOff4:Class = Assets_EndStarOff4; public static const EndStarOff5:Class = Assets_EndStarOff5; public static const EndStarOff1:Class = Assets_EndStarOff1; public static const MiniGameSell:Class = Assets_MiniGameSell; public static const Flake1:Class = Assets_Flake1; public static const Flake2:Class = Assets_Flake2; public static const Flake3:Class = Assets_Flake3; public function Assets():void{ _WoodWall1 = Assets__WoodWall1; _WoodWall2 = Assets__WoodWall2; _Pop = Assets__Pop; _BigNutBubble = Assets__BigNutBubble; _StarBubble = Assets__StarBubble; _MeterBubble = Assets__MeterBubble; _Cannon = Assets__Cannon; _Wheel = Assets__Wheel; _Gear = Assets__Gear; _SoundIcon = Assets__SoundIcon; _SoundIconOff = Assets__SoundIconOff; _SoundCannon = Assets__SoundCannon; _SoundGroan = Assets__SoundGroan; _StarMeterFull = Assets__StarMeterFull; _SoundSquirrelLaugh = Assets__SoundSquirrelLaugh; _SoundSQAlright = Assets__SoundSQAlright; _SoundSQEhhh = Assets__SoundSQEhhh; _SoundSQHereICome = Assets__SoundSQHereICome; _SoundSQLookOut = Assets__SoundSQLookOut; _SoundSQMayHave = Assets__SoundSQMayHave; _SoundSQMoreMore = Assets__SoundSQMoreMore; _SoundSQOohh = Assets__SoundSQOohh; _SoundSQOohh2 = Assets__SoundSQOohh2; _SoundSQWantBig = Assets__SoundSQWantBig; _SoundSQWantMore = Assets__SoundSQWantMore; _SoundSQWoohoo = Assets__SoundSQWoohoo; _SoundSQYipee = Assets__SoundSQYipee; _SoundSQYipee2 = Assets__SoundSQYipee2; _SoundSQYipee3 = Assets__SoundSQYipee3; _squirrelSounds = new Array(Assets.SOUND_SQALRIGHT, Assets.SOUND_SQEHHH, Assets.SOUND_SQHERE, Assets.SOUND_SQMAYHAVE, Assets.SOUND_SQMOREMORE, Assets.SOUND_SQOOHH, Assets.SOUND_SQOOHH2, Assets.SOUND_SQWANTBIG, Assets.SOUND_SQWOOHOO, Assets.SOUND_SQYIPEE, Assets.SOUND_SQYIPEE2, Assets.SOUND_SQYIPEE3); _squirrelCheers = new Array(Assets.SOUND_SQALRIGHT, Assets.SOUND_SQWOOHOO, Assets.SOUND_SQYIPEE, Assets.SOUND_SQYIPEE2, Assets.SOUND_SQYIPEE3); _squirrelComments = new Array(Assets.SOUND_SQEHHH, Assets.SOUND_SQHERE, Assets.SOUND_SQMAYHAVE, Assets.SOUND_SQMOREMORE, Assets.SOUND_SQOOHH, Assets.SOUND_SQOOHH2, Assets.SOUND_SQWANTBIG); _SoundStarMove = Assets__SoundStarMove; _SoundStarEarn = Assets__SoundStarEarn; _SoundKnock1 = Assets__SoundKnock1; _SoundWallHit = Assets__SoundWallHit; _SoundRise = Assets__SoundRise; _SoundBawong = Assets__SoundBawong; _SoundFanfare = Assets__SoundFanfare; _SoundPop = Assets__SoundPop; _SoundMorning = Assets__SoundMorning; _SoundNoon = Assets__SoundNoon; _SoundSunset = Assets__SoundSunset; _SoundMidnight = Assets__SoundMidnight; super(); } public function get soundSQMayHave():Sound{ return (new _SoundSQMayHave()); } public function get cannon():Sprite{ return (new _Cannon()); } public function get soundNoon():Sound{ return (new _SoundNoon()); } public function get soundSQMoreMore():Sound{ return (new _SoundSQMoreMore()); } public function get soundIconOff():Sprite{ return (new _SoundIconOff()); } public function get soundIcon():Sprite{ return (new _SoundIcon()); } public function get soundSQOohh():Sound{ return (new _SoundSQOohh()); } public function get soundSQEhhh():Sound{ return (new _SoundSQEhhh()); } public function get soundSQYipee2():Sound{ return (new _SoundSQYipee2()); } public function get soundGroan():Sound{ return (new _SoundGroan()); } public function get pop():MovieClip{ return (new _Pop()); } public function get soundSQWantMore():Sound{ return (new _SoundSQWantMore()); } public function get bigNutBubble():Sprite{ return (new _BigNutBubble()); } public function get soundSQYipee():Sound{ return (new _SoundSQYipee()); } public function get soundSQWoohoo():Sound{ return (new _SoundSQWoohoo()); } public function get wheel():Sprite{ return (new _Wheel()); } public function get soundSQWantBig():Sound{ return (new _SoundSQWantBig()); } public function get soundSQAlright():Sound{ return (new _SoundSQAlright()); } public function get soundMeterFull():Sound{ return (new _StarMeterFull()); } public function get soundBawong():Sound{ return (new _SoundBawong()); } public function get soundSQYipee3():Sound{ return (new _SoundSQYipee3()); } public function get squirrelComments():Array{ return (_squirrelComments); } public function get meterBubble():Sprite{ return (new _MeterBubble()); } public function get soundStarMove():Sound{ return (new _SoundStarMove()); } public function get squirrelCheers():Array{ return (_squirrelCheers); } public function get soundStarEarn():Sound{ return (new _SoundStarEarn()); } public function playSquirrelVoice(_arg1:String="sq_all", _arg2:Number=0.2):void{ var _local3:Array; switch (_arg1){ case Assets.SOUND_SQ_ALL: _local3 = Main.assets.squirrelSounds; break; case Assets.SOUND_SQ_CHEERS: _local3 = Main.assets.squirrelCheers; break; case Assets.SOUND_SQ_COMMENTS: _local3 = Main.assets.squirrelComments; break; }; var _local4:String = _local3[Rnd.integer(0, (_local3.length - 1))]; if (_lastSquirrelPhrase == _local4){ playSquirrelVoice(_arg1); } else { _lastSquirrelPhrase = _local4; Main.sound.playSound(_local4, _arg2); }; } public function get soundSunset():Sound{ return (new _SoundSunset()); } public function get gear():Sprite{ return (new _Gear()); } public function get soundRise():Sound{ return (new _SoundRise()); } public function get soundWallHit():Sound{ return (new _SoundWallHit()); } public function get starBubble():Sprite{ return (new _StarBubble()); } public function get soundSQOohh2():Sound{ return (new _SoundSQOohh2()); } public function get soundMorning():Sound{ return (new _SoundMorning()); } public function get soundFanfare():Sound{ return (new _SoundFanfare()); } public function get soundSQLookOut():Sound{ return (new _SoundSQLookOut()); } public function get soundPop():Sound{ return (new _SoundPop()); } public function get soundSQHereICome():Sound{ return (new _SoundSQHereICome()); } public function get soundKnock1():Sound{ return (new _SoundKnock1()); } public function get soundSquirrelLaugh():Sound{ return (new _SoundSquirrelLaugh()); } public function get clouds():Array{ return (new Array(Cloud1, Cloud2, Cloud3)); } public function get soundCannon():Sound{ return (new _SoundCannon()); } public function get woodWall1():Sprite{ return (new _WoodWall1()); } public function get woodWall2():Sprite{ return (new _WoodWall2()); } public function get squirrelSounds():Array{ return (_squirrelSounds); } public function get soundMidnight():Sound{ return (new _SoundMidnight()); } } }//packageSection 132//Assets__BigNutBubble (Assets__BigNutBubble) package { import flash.display.*; import mx.core.*; public class Assets__BigNutBubble extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 133//Assets__Cannon (Assets__Cannon) package { import flash.display.*; import mx.core.*; public class Assets__Cannon extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 134//Assets__Gear (Assets__Gear) package { import flash.display.*; import mx.core.*; public class Assets__Gear extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 135//Assets__MeterBubble (Assets__MeterBubble) package { import flash.display.*; import mx.core.*; public class Assets__MeterBubble extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 136//Assets__Pop (Assets__Pop) package { import mx.core.*; public class Assets__Pop extends MovieClipAsset { } }//packageSection 137//Assets__SoundBawong (Assets__SoundBawong) package { import flash.display.*; import mx.core.*; public class Assets__SoundBawong extends SoundAsset { public var handle:DisplayObject; } }//packageSection 138//Assets__SoundCannon (Assets__SoundCannon) package { import mx.core.*; public class Assets__SoundCannon extends SoundAsset { } }//packageSection 139//Assets__SoundFanfare (Assets__SoundFanfare) package { import mx.core.*; public class Assets__SoundFanfare extends SoundAsset { } }//packageSection 140//Assets__SoundGroan (Assets__SoundGroan) package { import flash.display.*; import mx.core.*; public class Assets__SoundGroan extends SoundAsset { public var handle:DisplayObject; } }//packageSection 141//Assets__SoundIcon (Assets__SoundIcon) package { import flash.display.*; import mx.core.*; public class Assets__SoundIcon extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 142//Assets__SoundIconOff (Assets__SoundIconOff) package { import mx.core.*; public class Assets__SoundIconOff extends SpriteAsset { } }//packageSection 143//Assets__SoundKnock1 (Assets__SoundKnock1) package { import flash.display.*; import mx.core.*; public class Assets__SoundKnock1 extends SoundAsset { public var handle:DisplayObject; } }//packageSection 144//Assets__SoundMidnight (Assets__SoundMidnight) package { import flash.display.*; import mx.core.*; public class Assets__SoundMidnight extends SoundAsset { public var handle:DisplayObject; } }//packageSection 145//Assets__SoundMorning (Assets__SoundMorning) package { import flash.display.*; import mx.core.*; public class Assets__SoundMorning extends SoundAsset { public var handle:DisplayObject; } }//packageSection 146//Assets__SoundNoon (Assets__SoundNoon) package { import mx.core.*; public class Assets__SoundNoon extends SoundAsset { } }//packageSection 147//Assets__SoundPop (Assets__SoundPop) package { import flash.display.*; import mx.core.*; public class Assets__SoundPop extends SoundAsset { public var handle:DisplayObject; } }//packageSection 148//Assets__SoundRise (Assets__SoundRise) package { import mx.core.*; public class Assets__SoundRise extends SoundAsset { } }//packageSection 149//Assets__SoundSQAlright (Assets__SoundSQAlright) package { import mx.core.*; public class Assets__SoundSQAlright extends SoundAsset { } }//packageSection 150//Assets__SoundSQEhhh (Assets__SoundSQEhhh) package { import mx.core.*; public class Assets__SoundSQEhhh extends SoundAsset { } }//packageSection 151//Assets__SoundSQHereICome (Assets__SoundSQHereICome) package { import mx.core.*; public class Assets__SoundSQHereICome extends SoundAsset { } }//packageSection 152//Assets__SoundSQLookOut (Assets__SoundSQLookOut) package { import mx.core.*; public class Assets__SoundSQLookOut extends SoundAsset { } }//packageSection 153//Assets__SoundSQMayHave (Assets__SoundSQMayHave) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQMayHave extends SoundAsset { public var handle:DisplayObject; } }//packageSection 154//Assets__SoundSQMoreMore (Assets__SoundSQMoreMore) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQMoreMore extends SoundAsset { public var handle:DisplayObject; } }//packageSection 155//Assets__SoundSQOohh (Assets__SoundSQOohh) package { import mx.core.*; public class Assets__SoundSQOohh extends SoundAsset { } }//packageSection 156//Assets__SoundSQOohh2 (Assets__SoundSQOohh2) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQOohh2 extends SoundAsset { public var handle:DisplayObject; } }//packageSection 157//Assets__SoundSquirrelLaugh (Assets__SoundSquirrelLaugh) package { import flash.display.*; import mx.core.*; public class Assets__SoundSquirrelLaugh extends SoundAsset { public var handle:DisplayObject; } }//packageSection 158//Assets__SoundSQWantBig (Assets__SoundSQWantBig) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQWantBig extends SoundAsset { public var handle:DisplayObject; } }//packageSection 159//Assets__SoundSQWantMore (Assets__SoundSQWantMore) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQWantMore extends SoundAsset { public var handle:DisplayObject; } }//packageSection 160//Assets__SoundSQWoohoo (Assets__SoundSQWoohoo) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQWoohoo extends SoundAsset { public var handle:DisplayObject; } }//packageSection 161//Assets__SoundSQYipee (Assets__SoundSQYipee) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQYipee extends SoundAsset { public var handle:DisplayObject; } }//packageSection 162//Assets__SoundSQYipee2 (Assets__SoundSQYipee2) package { import mx.core.*; public class Assets__SoundSQYipee2 extends SoundAsset { } }//packageSection 163//Assets__SoundSQYipee3 (Assets__SoundSQYipee3) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQYipee3 extends SoundAsset { public var handle:DisplayObject; } }//packageSection 164//Assets__SoundStarEarn (Assets__SoundStarEarn) package { import flash.display.*; import mx.core.*; public class Assets__SoundStarEarn extends SoundAsset { public var handle:DisplayObject; } }//packageSection 165//Assets__SoundStarMove (Assets__SoundStarMove) package { import flash.display.*; import mx.core.*; public class Assets__SoundStarMove extends SoundAsset { public var handle:DisplayObject; } }//packageSection 166//Assets__SoundSunset (Assets__SoundSunset) package { import flash.display.*; import mx.core.*; public class Assets__SoundSunset extends SoundAsset { public var handle:DisplayObject; } }//packageSection 167//Assets__SoundWallHit (Assets__SoundWallHit) package { import flash.display.*; import mx.core.*; public class Assets__SoundWallHit extends SoundAsset { public var handle:DisplayObject; } }//packageSection 168//Assets__StarBubble (Assets__StarBubble) package { import flash.display.*; import mx.core.*; public class Assets__StarBubble extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 169//Assets__StarMeterFull (Assets__StarMeterFull) package { import mx.core.*; public class Assets__StarMeterFull extends SoundAsset { } }//packageSection 170//Assets__Wheel (Assets__Wheel) package { import flash.display.*; import mx.core.*; public class Assets__Wheel extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 171//Assets__WoodWall1 (Assets__WoodWall1) package { import mx.core.*; public class Assets__WoodWall1 extends SpriteAsset { } }//packageSection 172//Assets__WoodWall2 (Assets__WoodWall2) package { import mx.core.*; public class Assets__WoodWall2 extends SpriteAsset { } }//packageSection 173//Assets_Arrow (Assets_Arrow) package { import mx.core.*; public class Assets_Arrow extends BitmapAsset { } }//packageSection 174//Assets_ArrowLogin (Assets_ArrowLogin) package { import mx.core.*; public class Assets_ArrowLogin extends BitmapAsset { } }//packageSection 175//Assets_BackButton (Assets_BackButton) package { import mx.core.*; public class Assets_BackButton extends BitmapAsset { } }//packageSection 176//Assets_Base12SansSC (Assets_Base12SansSC) package { import mx.core.*; public class Assets_Base12SansSC extends FontAsset { } }//packageSection 177//Assets_BigNut (Assets_BigNut) package { import mx.core.*; public class Assets_BigNut extends BitmapAsset { } }//packageSection 178//Assets_BirdAnim (Assets_BirdAnim) package { import mx.core.*; public class Assets_BirdAnim extends BitmapAsset { } }//packageSection 179//Assets_BlockTHeavy (Assets_BlockTHeavy) package { import flash.display.*; import mx.core.*; public class Assets_BlockTHeavy extends FontAsset { public var handle:DisplayObject; } }//packageSection 180//Assets_BlockTReg (Assets_BlockTReg) package { import flash.display.*; import mx.core.*; public class Assets_BlockTReg extends FontAsset { public var handle:DisplayObject; } }//packageSection 181//Assets_BlockTRegCond (Assets_BlockTRegCond) package { import mx.core.*; public class Assets_BlockTRegCond extends FontAsset { } }//packageSection 182//Assets_BonusBubble (Assets_BonusBubble) package { import mx.core.*; public class Assets_BonusBubble extends BitmapAsset { } }//packageSection 183//Assets_BonusLevelGreyStar (Assets_BonusLevelGreyStar) package { import mx.core.*; public class Assets_BonusLevelGreyStar extends BitmapAsset { } }//packageSection 184//Assets_BonusLevelLocked (Assets_BonusLevelLocked) package { import mx.core.*; public class Assets_BonusLevelLocked extends BitmapAsset { } }//packageSection 185//Assets_BonusLevelRowLock (Assets_BonusLevelRowLock) package { import mx.core.*; public class Assets_BonusLevelRowLock extends BitmapAsset { } }//packageSection 186//Assets_BonusLevelStar (Assets_BonusLevelStar) package { import mx.core.*; public class Assets_BonusLevelStar extends BitmapAsset { } }//packageSection 187//Assets_BonusLockBubble (Assets_BonusLockBubble) package { import mx.core.*; public class Assets_BonusLockBubble extends BitmapAsset { } }//packageSection 188//Assets_BonusStarOff (Assets_BonusStarOff) package { import mx.core.*; public class Assets_BonusStarOff extends BitmapAsset { } }//packageSection 189//Assets_BonusStarOn (Assets_BonusStarOn) package { import mx.core.*; public class Assets_BonusStarOn extends BitmapAsset { } }//packageSection 190//Assets_Burning (Assets_Burning) package { import mx.core.*; public class Assets_Burning extends SoundAsset { } }//packageSection 191//Assets_BuyCheatButton (Assets_BuyCheatButton) package { import mx.core.*; public class Assets_BuyCheatButton extends BitmapAsset { } }//packageSection 192//Assets_BuyItButton (Assets_BuyItButton) package { import mx.core.*; public class Assets_BuyItButton extends BitmapAsset { } }//packageSection 193//Assets_BuyNowButton (Assets_BuyNowButton) package { import mx.core.*; public class Assets_BuyNowButton extends BitmapAsset { } }//packageSection 194//Assets_CannonPuff1 (Assets_CannonPuff1) package { import mx.core.*; public class Assets_CannonPuff1 extends BitmapAsset { } }//packageSection 195//Assets_Cloud1 (Assets_Cloud1) package { import mx.core.*; public class Assets_Cloud1 extends BitmapAsset { } }//packageSection 196//Assets_Cloud2 (Assets_Cloud2) package { import mx.core.*; public class Assets_Cloud2 extends BitmapAsset { } }//packageSection 197//Assets_Cloud3 (Assets_Cloud3) package { import mx.core.*; public class Assets_Cloud3 extends BitmapAsset { } }//packageSection 198//Assets_ContinueButton (Assets_ContinueButton) package { import mx.core.*; public class Assets_ContinueButton extends BitmapAsset { } }//packageSection 199//Assets_Crow1 (Assets_Crow1) package { import mx.core.*; public class Assets_Crow1 extends SoundAsset { } }//packageSection 200//Assets_Crow2 (Assets_Crow2) package { import mx.core.*; public class Assets_Crow2 extends SoundAsset { } }//packageSection 201//Assets_CustomizeButton (Assets_CustomizeButton) package { import mx.core.*; public class Assets_CustomizeButton extends BitmapAsset { } }//packageSection 202//Assets_Dandelion (Assets_Dandelion) package { import mx.core.*; public class Assets_Dandelion extends BitmapAsset { } }//packageSection 203//Assets_DoneButton (Assets_DoneButton) package { import mx.core.*; public class Assets_DoneButton extends BitmapAsset { } }//packageSection 204//Assets_EndButton (Assets_EndButton) package { import mx.core.*; public class Assets_EndButton extends BitmapAsset { } }//packageSection 205//Assets_EndLevelLock (Assets_EndLevelLock) package { import mx.core.*; public class Assets_EndLevelLock extends BitmapAsset { } }//packageSection 206//Assets_EndLevelUnlock (Assets_EndLevelUnlock) package { import mx.core.*; public class Assets_EndLevelUnlock extends BitmapAsset { } }//packageSection 207//Assets_EndStarOff1 (Assets_EndStarOff1) package { import mx.core.*; public class Assets_EndStarOff1 extends BitmapAsset { } }//packageSection 208//Assets_EndStarOff2 (Assets_EndStarOff2) package { import mx.core.*; public class Assets_EndStarOff2 extends BitmapAsset { } }//packageSection 209//Assets_EndStarOff3 (Assets_EndStarOff3) package { import mx.core.*; public class Assets_EndStarOff3 extends BitmapAsset { } }//packageSection 210//Assets_EndStarOff4 (Assets_EndStarOff4) package { import mx.core.*; public class Assets_EndStarOff4 extends BitmapAsset { } }//packageSection 211//Assets_EndStarOff5 (Assets_EndStarOff5) package { import mx.core.*; public class Assets_EndStarOff5 extends BitmapAsset { } }//packageSection 212//Assets_EndStarOn1 (Assets_EndStarOn1) package { import mx.core.*; public class Assets_EndStarOn1 extends BitmapAsset { } }//packageSection 213//Assets_EndStarOn2 (Assets_EndStarOn2) package { import mx.core.*; public class Assets_EndStarOn2 extends BitmapAsset { } }//packageSection 214//Assets_EndStarOn3 (Assets_EndStarOn3) package { import mx.core.*; public class Assets_EndStarOn3 extends BitmapAsset { } }//packageSection 215//Assets_EndStarOn4 (Assets_EndStarOn4) package { import mx.core.*; public class Assets_EndStarOn4 extends BitmapAsset { } }//packageSection 216//Assets_EndStarOn5 (Assets_EndStarOn5) package { import mx.core.*; public class Assets_EndStarOn5 extends BitmapAsset { } }//packageSection 217//Assets_EndTargetStarOff (Assets_EndTargetStarOff) package { import mx.core.*; public class Assets_EndTargetStarOff extends BitmapAsset { } }//packageSection 218//Assets_EndTargetStarOn (Assets_EndTargetStarOn) package { import mx.core.*; public class Assets_EndTargetStarOn extends BitmapAsset { } }//packageSection 219//Assets_ExampleLevel (Assets_ExampleLevel) package { import mx.core.*; public class Assets_ExampleLevel extends BitmapAsset { } }//packageSection 220//Assets_Feather1 (Assets_Feather1) package { import mx.core.*; public class Assets_Feather1 extends BitmapAsset { } }//packageSection 221//Assets_FireAnim (Assets_FireAnim) package { import mx.core.*; public class Assets_FireAnim extends BitmapAsset { } }//packageSection 222//Assets_FireWhoosh (Assets_FireWhoosh) package { import mx.core.*; public class Assets_FireWhoosh extends SoundAsset { } }//packageSection 223//Assets_Firework (Assets_Firework) package { import mx.core.*; public class Assets_Firework extends BitmapAsset { } }//packageSection 224//Assets_Flake1 (Assets_Flake1) package { import mx.core.*; public class Assets_Flake1 extends BitmapAsset { } }//packageSection 225//Assets_Flake2 (Assets_Flake2) package { import mx.core.*; public class Assets_Flake2 extends BitmapAsset { } }//packageSection 226//Assets_Flake3 (Assets_Flake3) package { import mx.core.*; public class Assets_Flake3 extends BitmapAsset { } }//packageSection 227//Assets_GemShard (Assets_GemShard) package { import mx.core.*; public class Assets_GemShard extends BitmapAsset { } }//packageSection 228//Assets_GlassBreak (Assets_GlassBreak) package { import mx.core.*; public class Assets_GlassBreak extends SoundAsset { } }//packageSection 229//Assets_GraphBackground (Assets_GraphBackground) package { import mx.core.*; public class Assets_GraphBackground extends BitmapAsset { } }//packageSection 230//Assets_GraphForeground (Assets_GraphForeground) package { import mx.core.*; public class Assets_GraphForeground extends BitmapAsset { } }//packageSection 231//Assets_Grass (Assets_Grass) package { import mx.core.*; public class Assets_Grass extends BitmapAsset { } }//packageSection 232//Assets_GrassBlur (Assets_GrassBlur) package { import mx.core.*; public class Assets_GrassBlur extends BitmapAsset { } }//packageSection 233//Assets_GrassHit1 (Assets_GrassHit1) package { import mx.core.*; public class Assets_GrassHit1 extends SoundAsset { } }//packageSection 234//Assets_GrassHit2 (Assets_GrassHit2) package { import mx.core.*; public class Assets_GrassHit2 extends SoundAsset { } }//packageSection 235//Assets_GrassHit3 (Assets_GrassHit3) package { import mx.core.*; public class Assets_GrassHit3 extends SoundAsset { } }//packageSection 236//Assets_LeaderboardButton (Assets_LeaderboardButton) package { import mx.core.*; public class Assets_LeaderboardButton extends BitmapAsset { } }//packageSection 237//Assets_LevelBubble (Assets_LevelBubble) package { import mx.core.*; public class Assets_LevelBubble extends BitmapAsset { } }//packageSection 238//Assets_LevelsButton (Assets_LevelsButton) package { import mx.core.*; public class Assets_LevelsButton extends BitmapAsset { } }//packageSection 239//Assets_LockLevel (Assets_LockLevel) package { import mx.core.*; public class Assets_LockLevel extends BitmapAsset { } }//packageSection 240//Assets_Logo (Assets_Logo) package { import mx.core.*; public class Assets_Logo extends BitmapAsset { } }//packageSection 241//Assets_MedalBird (Assets_MedalBird) package { import mx.core.*; public class Assets_MedalBird extends BitmapAsset { } }//packageSection 242//Assets_MedalBirdEmpty (Assets_MedalBirdEmpty) package { import mx.core.*; public class Assets_MedalBirdEmpty extends BitmapAsset { } }//packageSection 243//Assets_MedalNut (Assets_MedalNut) package { import mx.core.*; public class Assets_MedalNut extends BitmapAsset { } }//packageSection 244//Assets_MedalNutEmpty (Assets_MedalNutEmpty) package { import mx.core.*; public class Assets_MedalNutEmpty extends BitmapAsset { } }//packageSection 245//Assets_MedalSquirrel (Assets_MedalSquirrel) package { import mx.core.*; public class Assets_MedalSquirrel extends BitmapAsset { } }//packageSection 246//Assets_MedalSquirrelEmpty (Assets_MedalSquirrelEmpty) package { import mx.core.*; public class Assets_MedalSquirrelEmpty extends BitmapAsset { } }//packageSection 247//Assets_MenuAndkon (Assets_MenuAndkon) package { import mx.core.*; public class Assets_MenuAndkon extends BitmapAsset { } }//packageSection 248//Assets_MenuGradient (Assets_MenuGradient) package { import mx.core.*; public class Assets_MenuGradient extends BitmapAsset { } }//packageSection 249//Assets_MenuMusic (Assets_MenuMusic) package { import mx.core.*; public class Assets_MenuMusic extends SoundAsset { } }//packageSection 250//Assets_MenuPlay (Assets_MenuPlay) package { import mx.core.*; public class Assets_MenuPlay extends BitmapAsset { } }//packageSection 251//Assets_MenuStore (Assets_MenuStore) package { import mx.core.*; public class Assets_MenuStore extends BitmapAsset { } }//packageSection 252//Assets_MenuTop (Assets_MenuTop) package { import mx.core.*; public class Assets_MenuTop extends BitmapAsset { } }//packageSection 253//Assets_MessageBackground (Assets_MessageBackground) package { import mx.core.*; public class Assets_MessageBackground extends BitmapAsset { } }//packageSection 254//Assets_MeterStarOff (Assets_MeterStarOff) package { import mx.core.*; public class Assets_MeterStarOff extends BitmapAsset { } }//packageSection 255//Assets_MeterStarOn (Assets_MeterStarOn) package { import mx.core.*; public class Assets_MeterStarOn extends BitmapAsset { } }//packageSection 256//Assets_MiniButtonOff (Assets_MiniButtonOff) package { import mx.core.*; public class Assets_MiniButtonOff extends BitmapAsset { } }//packageSection 257//Assets_MiniButtonOn (Assets_MiniButtonOn) package { import mx.core.*; public class Assets_MiniButtonOn extends BitmapAsset { } }//packageSection 258//Assets_MiniGameLogo (Assets_MiniGameLogo) package { import mx.core.*; public class Assets_MiniGameLogo extends BitmapAsset { } }//packageSection 259//Assets_MiniGameLogo2 (Assets_MiniGameLogo2) package { import mx.core.*; public class Assets_MiniGameLogo2 extends BitmapAsset { } }//packageSection 260//Assets_MiniGameSell (Assets_MiniGameSell) package { import mx.core.*; public class Assets_MiniGameSell extends BitmapAsset { } }//packageSection 261//Assets_MochiGamesBubble (Assets_MochiGamesBubble) package { import mx.core.*; public class Assets_MochiGamesBubble extends BitmapAsset { } }//packageSection 262//Assets_MoveArrow (Assets_MoveArrow) package { import mx.core.*; public class Assets_MoveArrow extends BitmapAsset { } }//packageSection 263//Assets_MultiplierStar (Assets_MultiplierStar) package { import mx.core.*; public class Assets_MultiplierStar extends BitmapAsset { } }//packageSection 264//Assets_NutClone (Assets_NutClone) package { import mx.core.*; public class Assets_NutClone extends BitmapAsset { } }//packageSection 265//Assets_NutFat (Assets_NutFat) package { import mx.core.*; public class Assets_NutFat extends BitmapAsset { } }//packageSection 266//Assets_NutFire (Assets_NutFire) package { import mx.core.*; public class Assets_NutFire extends BitmapAsset { } }//packageSection 267//Assets_NutFirePlace (Assets_NutFirePlace) package { import mx.core.*; public class Assets_NutFirePlace extends BitmapAsset { } }//packageSection 268//Assets_NutGem (Assets_NutGem) package { import mx.core.*; public class Assets_NutGem extends BitmapAsset { } }//packageSection 269//Assets_NutGemAnim (Assets_NutGemAnim) package { import mx.core.*; public class Assets_NutGemAnim extends BitmapAsset { } }//packageSection 270//Assets_NutNormal (Assets_NutNormal) package { import mx.core.*; public class Assets_NutNormal extends BitmapAsset { } }//packageSection 271//Assets_NutPattern (Assets_NutPattern) package { import mx.core.*; public class Assets_NutPattern extends BitmapAsset { } }//packageSection 272//Assets_PauseButton (Assets_PauseButton) package { import mx.core.*; public class Assets_PauseButton extends BitmapAsset { } }//packageSection 273//Assets_PibooButton (Assets_PibooButton) package { import mx.core.*; public class Assets_PibooButton extends BitmapAsset { } }//packageSection 274//Assets_PlayButton (Assets_PlayButton) package { import mx.core.*; public class Assets_PlayButton extends BitmapAsset { } }//packageSection 275//Assets_PointsStar (Assets_PointsStar) package { import mx.core.*; public class Assets_PointsStar extends BitmapAsset { } }//packageSection 276//Assets_QuestionButton (Assets_QuestionButton) package { import mx.core.*; public class Assets_QuestionButton extends BitmapAsset { } }//packageSection 277//Assets_QuitButton (Assets_QuitButton) package { import mx.core.*; public class Assets_QuitButton extends BitmapAsset { } }//packageSection 278//Assets_RapidFireMode (Assets_RapidFireMode) package { import mx.core.*; public class Assets_RapidFireMode extends BitmapAsset { } }//packageSection 279//Assets_ReplayButton (Assets_ReplayButton) package { import mx.core.*; public class Assets_ReplayButton extends BitmapAsset { } }//packageSection 280//Assets_ResetButton (Assets_ResetButton) package { import mx.core.*; public class Assets_ResetButton extends BitmapAsset { } }//packageSection 281//Assets_RubberBall (Assets_RubberBall) package { import mx.core.*; public class Assets_RubberBall extends BitmapAsset { } }//packageSection 282//Assets_RubberWall1 (Assets_RubberWall1) package { import flash.display.*; import mx.core.*; public class Assets_RubberWall1 extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 283//Assets_ScoreDivider (Assets_ScoreDivider) package { import mx.core.*; public class Assets_ScoreDivider extends BitmapAsset { } }//packageSection 284//Assets_ScoreMedalDivider (Assets_ScoreMedalDivider) package { import mx.core.*; public class Assets_ScoreMedalDivider extends BitmapAsset { } }//packageSection 285//Assets_SelectButtonOff (Assets_SelectButtonOff) package { import mx.core.*; public class Assets_SelectButtonOff extends BitmapAsset { } }//packageSection 286//Assets_SelectButtonOn (Assets_SelectButtonOn) package { import mx.core.*; public class Assets_SelectButtonOn extends BitmapAsset { } }//packageSection 287//Assets_SkyAfternoon (Assets_SkyAfternoon) package { import mx.core.*; public class Assets_SkyAfternoon extends BitmapAsset { } }//packageSection 288//Assets_SkyMorning (Assets_SkyMorning) package { import mx.core.*; public class Assets_SkyMorning extends BitmapAsset { } }//packageSection 289//Assets_SkyNight (Assets_SkyNight) package { import mx.core.*; public class Assets_SkyNight extends BitmapAsset { } }//packageSection 290//Assets_SkyNoon (Assets_SkyNoon) package { import mx.core.*; public class Assets_SkyNoon extends BitmapAsset { } }//packageSection 291//Assets_SmokePuff1 (Assets_SmokePuff1) package { import mx.core.*; public class Assets_SmokePuff1 extends BitmapAsset { } }//packageSection 292//Assets_SmokePuff2 (Assets_SmokePuff2) package { import mx.core.*; public class Assets_SmokePuff2 extends BitmapAsset { } }//packageSection 293//Assets_SmokePuff3 (Assets_SmokePuff3) package { import mx.core.*; public class Assets_SmokePuff3 extends BitmapAsset { } }//packageSection 294//Assets_Snow (Assets_Snow) package { import mx.core.*; public class Assets_Snow extends BitmapAsset { } }//packageSection 295//Assets_Sparkle (Assets_Sparkle) package { import mx.core.*; public class Assets_Sparkle extends BitmapAsset { } }//packageSection 296//Assets_Splash (Assets_Splash) package { import mx.core.*; public class Assets_Splash extends MovieClipAsset { } }//packageSection 297//Assets_Spring1_1 (Assets_Spring1_1) package { import mx.core.*; public class Assets_Spring1_1 extends BitmapAsset { } }//packageSection 298//Assets_Spring1_2 (Assets_Spring1_2) package { import mx.core.*; public class Assets_Spring1_2 extends BitmapAsset { } }//packageSection 299//Assets_Spring1_3 (Assets_Spring1_3) package { import mx.core.*; public class Assets_Spring1_3 extends BitmapAsset { } }//packageSection 300//Assets_Spring1_4 (Assets_Spring1_4) package { import mx.core.*; public class Assets_Spring1_4 extends BitmapAsset { } }//packageSection 301//Assets_Spring1_5 (Assets_Spring1_5) package { import mx.core.*; public class Assets_Spring1_5 extends BitmapAsset { } }//packageSection 302//Assets_Spring2_1 (Assets_Spring2_1) package { import mx.core.*; public class Assets_Spring2_1 extends BitmapAsset { } }//packageSection 303//Assets_Spring2_2 (Assets_Spring2_2) package { import mx.core.*; public class Assets_Spring2_2 extends BitmapAsset { } }//packageSection 304//Assets_Spring2_3 (Assets_Spring2_3) package { import mx.core.*; public class Assets_Spring2_3 extends BitmapAsset { } }//packageSection 305//Assets_Spring2_4 (Assets_Spring2_4) package { import mx.core.*; public class Assets_Spring2_4 extends BitmapAsset { } }//packageSection 306//Assets_Spring2_5 (Assets_Spring2_5) package { import mx.core.*; public class Assets_Spring2_5 extends BitmapAsset { } }//packageSection 307//Assets_Spring3_1 (Assets_Spring3_1) package { import mx.core.*; public class Assets_Spring3_1 extends BitmapAsset { } }//packageSection 308//Assets_Spring3_2 (Assets_Spring3_2) package { import mx.core.*; public class Assets_Spring3_2 extends BitmapAsset { } }//packageSection 309//Assets_Spring3_3 (Assets_Spring3_3) package { import mx.core.*; public class Assets_Spring3_3 extends BitmapAsset { } }//packageSection 310//Assets_Spring3_4 (Assets_Spring3_4) package { import mx.core.*; public class Assets_Spring3_4 extends BitmapAsset { } }//packageSection 311//Assets_Spring3_5 (Assets_Spring3_5) package { import mx.core.*; public class Assets_Spring3_5 extends BitmapAsset { } }//packageSection 312//Assets_Spring4_1 (Assets_Spring4_1) package { import mx.core.*; public class Assets_Spring4_1 extends BitmapAsset { } }//packageSection 313//Assets_Spring4_2 (Assets_Spring4_2) package { import mx.core.*; public class Assets_Spring4_2 extends BitmapAsset { } }//packageSection 314//Assets_Spring4_3 (Assets_Spring4_3) package { import mx.core.*; public class Assets_Spring4_3 extends BitmapAsset { } }//packageSection 315//Assets_Spring4_4 (Assets_Spring4_4) package { import mx.core.*; public class Assets_Spring4_4 extends BitmapAsset { } }//packageSection 316//Assets_Spring4_5 (Assets_Spring4_5) package { import mx.core.*; public class Assets_Spring4_5 extends BitmapAsset { } }//packageSection 317//Assets_SpringTerrain (Assets_SpringTerrain) package { import mx.core.*; public class Assets_SpringTerrain extends BitmapAsset { } }//packageSection 318//Assets_SquirrelChica (Assets_SquirrelChica) package { import mx.core.*; public class Assets_SquirrelChica extends BitmapAsset { } }//packageSection 319//Assets_SquirrelMohawk (Assets_SquirrelMohawk) package { import mx.core.*; public class Assets_SquirrelMohawk extends BitmapAsset { } }//packageSection 320//Assets_SquirrelNormal (Assets_SquirrelNormal) package { import mx.core.*; public class Assets_SquirrelNormal extends BitmapAsset { } }//packageSection 321//Assets_SquirrelSanta (Assets_SquirrelSanta) package { import mx.core.*; public class Assets_SquirrelSanta extends BitmapAsset { } }//packageSection 322//Assets_SquirrelSpike (Assets_SquirrelSpike) package { import mx.core.*; public class Assets_SquirrelSpike extends BitmapAsset { } }//packageSection 323//Assets_SquirrelTail (Assets_SquirrelTail) package { import mx.core.*; public class Assets_SquirrelTail extends BitmapAsset { } }//packageSection 324//Assets_SquirrelViking (Assets_SquirrelViking) package { import mx.core.*; public class Assets_SquirrelViking extends BitmapAsset { } }//packageSection 325//Assets_StarBurstPurple (Assets_StarBurstPurple) package { import mx.core.*; public class Assets_StarBurstPurple extends BitmapAsset { } }//packageSection 326//Assets_StarBurstYellow (Assets_StarBurstYellow) package { import mx.core.*; public class Assets_StarBurstYellow extends BitmapAsset { } }//packageSection 327//Assets_StarMeterOff (Assets_StarMeterOff) package { import mx.core.*; public class Assets_StarMeterOff extends BitmapAsset { } }//packageSection 328//Assets_StarMeterOn (Assets_StarMeterOn) package { import mx.core.*; public class Assets_StarMeterOn extends BitmapAsset { } }//packageSection 329//Assets_SubmitButton (Assets_SubmitButton) package { import mx.core.*; public class Assets_SubmitButton extends BitmapAsset { } }//packageSection 330//Assets_Switch (Assets_Switch) package { import flash.display.*; import mx.core.*; public class Assets_Switch extends SpriteAsset { public var handle:DisplayObject; } }//packageSection 331//Assets_TargetStarOff (Assets_TargetStarOff) package { import mx.core.*; public class Assets_TargetStarOff extends BitmapAsset { } }//packageSection 332//Assets_TargetStarOn (Assets_TargetStarOn) package { import mx.core.*; public class Assets_TargetStarOn extends BitmapAsset { } }//packageSection 333//Assets_TextBonusLevels (Assets_TextBonusLevels) package { import mx.core.*; public class Assets_TextBonusLevels extends BitmapAsset { } }//packageSection 334//Assets_TextSelectLevel (Assets_TextSelectLevel) package { import mx.core.*; public class Assets_TextSelectLevel extends BitmapAsset { } }//packageSection 335//Assets_UnlockButtonSmall (Assets_UnlockButtonSmall) package { import mx.core.*; public class Assets_UnlockButtonSmall extends BitmapAsset { } }//packageSection 336//Assets_Winter1_1 (Assets_Winter1_1) package { import mx.core.*; public class Assets_Winter1_1 extends BitmapAsset { } }//packageSection 337//Assets_Winter1_2 (Assets_Winter1_2) package { import mx.core.*; public class Assets_Winter1_2 extends BitmapAsset { } }//packageSection 338//Assets_Winter1_3 (Assets_Winter1_3) package { import mx.core.*; public class Assets_Winter1_3 extends BitmapAsset { } }//packageSection 339//Assets_Winter1_4 (Assets_Winter1_4) package { import mx.core.*; public class Assets_Winter1_4 extends BitmapAsset { } }//packageSection 340//Assets_Winter1_5 (Assets_Winter1_5) package { import mx.core.*; public class Assets_Winter1_5 extends BitmapAsset { } }//packageSection 341//Assets_Winter2_1 (Assets_Winter2_1) package { import mx.core.*; public class Assets_Winter2_1 extends BitmapAsset { } }//packageSection 342//Assets_Winter2_2 (Assets_Winter2_2) package { import mx.core.*; public class Assets_Winter2_2 extends BitmapAsset { } }//packageSection 343//Assets_Winter2_3 (Assets_Winter2_3) package { import mx.core.*; public class Assets_Winter2_3 extends BitmapAsset { } }//packageSection 344//Assets_Winter2_4 (Assets_Winter2_4) package { import mx.core.*; public class Assets_Winter2_4 extends BitmapAsset { } }//packageSection 345//Assets_Winter2_5 (Assets_Winter2_5) package { import mx.core.*; public class Assets_Winter2_5 extends BitmapAsset { } }//packageSection 346//Assets_Winter3_1 (Assets_Winter3_1) package { import mx.core.*; public class Assets_Winter3_1 extends BitmapAsset { } }//packageSection 347//Assets_Winter3_2 (Assets_Winter3_2) package { import mx.core.*; public class Assets_Winter3_2 extends BitmapAsset { } }//packageSection 348//Assets_Winter3_3 (Assets_Winter3_3) package { import mx.core.*; public class Assets_Winter3_3 extends BitmapAsset { } }//packageSection 349//Assets_Winter3_4 (Assets_Winter3_4) package { import mx.core.*; public class Assets_Winter3_4 extends BitmapAsset { } }//packageSection 350//Assets_Winter3_5 (Assets_Winter3_5) package { import mx.core.*; public class Assets_Winter3_5 extends BitmapAsset { } }//packageSection 351//Assets_Winter4_1 (Assets_Winter4_1) package { import mx.core.*; public class Assets_Winter4_1 extends BitmapAsset { } }//packageSection 352//Assets_Winter4_2 (Assets_Winter4_2) package { import mx.core.*; public class Assets_Winter4_2 extends BitmapAsset { } }//packageSection 353//Assets_Winter4_3 (Assets_Winter4_3) package { import mx.core.*; public class Assets_Winter4_3 extends BitmapAsset { } }//packageSection 354//Assets_Winter4_4 (Assets_Winter4_4) package { import mx.core.*; public class Assets_Winter4_4 extends BitmapAsset { } }//packageSection 355//Assets_Winter4_5 (Assets_Winter4_5) package { import mx.core.*; public class Assets_Winter4_5 extends BitmapAsset { } }//packageSection 356//Assets_WinterSell (Assets_WinterSell) package { import mx.core.*; public class Assets_WinterSell extends BitmapAsset { } }//packageSection 357//Assets_WinterTerrain (Assets_WinterTerrain) package { import mx.core.*; public class Assets_WinterTerrain extends BitmapAsset { } }//packageSection 358//Assets_WoodBackgroundLarge (Assets_WoodBackgroundLarge) package { import mx.core.*; public class Assets_WoodBackgroundLarge extends BitmapAsset { } }//packageSection 359//Assets_WoodBackgroundSmall (Assets_WoodBackgroundSmall) package { import mx.core.*; public class Assets_WoodBackgroundSmall extends BitmapAsset { } }//packageSection 360//Assets_WoodButton (Assets_WoodButton) package { import mx.core.*; public class Assets_WoodButton extends BitmapAsset { } }//packageSection 361//Assets_WoodDivider1 (Assets_WoodDivider1) package { import mx.core.*; public class Assets_WoodDivider1 extends BitmapAsset { } }//packageSection 362//Assets_WoodDivider2 (Assets_WoodDivider2) package { import mx.core.*; public class Assets_WoodDivider2 extends BitmapAsset { } }//packageSection 363//Assets_WoodDivider3 (Assets_WoodDivider3) package { import mx.core.*; public class Assets_WoodDivider3 extends BitmapAsset { } }//packageSection 364//Assets_WoodDividerLarge1 (Assets_WoodDividerLarge1) package { import mx.core.*; public class Assets_WoodDividerLarge1 extends BitmapAsset { } }//packageSection 365//Assets_WoodDividerLarge2 (Assets_WoodDividerLarge2) package { import mx.core.*; public class Assets_WoodDividerLarge2 extends BitmapAsset { } }//packageSection 366//Assets_WoodHeadboard (Assets_WoodHeadboard) package { import mx.core.*; public class Assets_WoodHeadboard extends BitmapAsset { } }//packageSection 367//Assets_WoodPeg (Assets_WoodPeg) package { import mx.core.*; public class Assets_WoodPeg extends BitmapAsset { } }//packageSection 368//Assets_WoodWall1 (Assets_WoodWall1) package { import mx.core.*; public class Assets_WoodWall1 extends SpriteAsset { } }//packageSection 369//Background (Background) package { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import flash.ui.*; public class Background extends Sprite { private var _blur:BlurFilter; private var _cloudUpperY:Number;// = 20 private var _cloudLowerY:Number;// = 300 private var _ambianceTypes:Array; private var _type:Number; private var _ambiance:String; private var _sky:Bitmap; private var _endSky:Bitmap; private var _skyTypes:Array; private var _timeOfDay:Number; private var _clouds:Array; private var _startSky:Bitmap; public static const SKY_NOON:String = "noon"; public static const SKY_MORNING:String = "morning"; private static const DAY:Number = 1440; public static const SKY_EARLYEVENING:String = "earlyevening"; public static const SKY_MIDNIGHT:String = "midnight"; public static const SKY_MIDMORNING:String = "midmorning"; public static const SKY_SUNSET:String = "sunset"; public static const SKY_AFTERNOON:String = "afternoon"; public static const SKY_EARLYMORNING:String = "earlymorning"; public function Background(_arg1:Number=1):void{ _skyTypes = new Array(); _ambianceTypes = new Array(); _clouds = new Array(); super(); _type = (_arg1 - 1); _skyTypes.push(Background.SKY_MORNING); _skyTypes.push(Background.SKY_NOON); _skyTypes.push(Background.SKY_SUNSET); _skyTypes.push(Background.SKY_MIDNIGHT); _ambianceTypes.push(Assets.SOUND_MORNING); _ambianceTypes.push(Assets.SOUND_NOON); _ambianceTypes.push(Assets.SOUND_SUNSET); _ambianceTypes.push(Assets.SOUND_MIDNIGHT); _blur = new BlurFilter(5, 5, 2); } public function destroy():void{ var _local1:Object; var _local2:Bitmap; for each (_local1 in _clouds) { _local2 = (_local1.cloud as Bitmap); removeChild(_local2); }; _clouds = null; _startSky = null; _endSky = null; Main.sound.stopSound(_ambiance); Main.sound.removeSound(_ambiance); _ambianceTypes = null; _skyTypes = null; if (this.parent){ this.parent.removeChild(this); }; } public function draw():void{ var _local6:Object; _sky = getSkyBitmap(_skyTypes[_type]); var _local1:Sprite = new Sprite(); _local1.addChild(_sky); var _local2:Bitmap = Main.current.game.mapPack.getTerrain(); _local2.y = (Main.GAME_HEIGHT - _local2.height); _local1.addChild(_local2); _local1.filters = [_blur]; var _local3:BitmapData = new BitmapData(Main.GAME_WIDTH, Main.GAME_HEIGHT, false, 0xFFFFFF); _local3.draw(_local1); var _local4:Bitmap = new Bitmap(_local3); addChild(_local4); _ambiance = _ambianceTypes[_type]; Main.sound.addSound(getAmbianceSound(_ambiance), _ambiance); Main.sound.playSound(_ambiance, 0.05, 0, 9999); var _local5:Number = 0; while (_local5 < 3) { createCloud(); _local5++; }; for each (_local6 in _clouds) { addChild(_local6.cloud); }; } private function getAmbianceSound(_arg1:String):Sound{ var _local2:Sound; switch (_arg1){ case Assets.SOUND_MORNING: _local2 = Main.assets.soundMorning; break; case Assets.SOUND_NOON: _local2 = Main.assets.soundNoon; break; case Assets.SOUND_SUNSET: _local2 = Main.assets.soundSunset; break; case Assets.SOUND_MIDNIGHT: _local2 = Main.assets.soundMidnight; break; }; return (_local2); } public function update():void{ var _local1:int; var _local2:int; var _local3:Object; var _local4:Bitmap; var _local5:Object; var _local6:Bitmap; var _local7:Bitmap; _local1 = 0; while (_local1 < _clouds.length) { _local3 = (_clouds[_local1] as Object); _local4 = (_local3.cloud as Bitmap); (_local3.cloud as Bitmap).x = (_local4.x + _local3.speed); _local1++; }; _local2 = 0; while (_local2 < _clouds.length) { _local5 = (_clouds[_local2] as Object); _local6 = (_local5.cloud as Bitmap); if (_local6.x > Main.GAME_WIDTH){ removeChild(_local6); _clouds.splice(_clouds.indexOf(_local5), 1); }; _local2++; }; if (_clouds.length < 3){ _local7 = createCloud(); createCloud().x = (-(_local7.width) - 30); addChild(_local7); }; } private function getSkyBitmap(_arg1:String):Bitmap{ var _local2:Bitmap; switch (_arg1){ case Background.SKY_MORNING: _local2 = new Assets.SkyMorning(); break; case Background.SKY_NOON: _local2 = new Assets.SkyNoon(); break; case Background.SKY_SUNSET: _local2 = new Assets.SkyAfternoon(); break; case Background.SKY_MIDNIGHT: _local2 = new Assets.SkyNight(); break; }; return (_local2); } private function generateCloudCoordinates():Object{ var _local1:Number = (_cloudLowerY - _cloudUpperY); var _local2:Number = Math.ceil((Math.random() * _local1)); var _local3:Number = ((Main.GAME_WIDTH - 10) - 10); var _local4:Number = Math.ceil((Math.random() * _local3)); return ({x:_local4, y:_local2}); } private function createCloud():Bitmap{ var _local3:Number; var _local4:Object; var _local5:Boolean; var _local6:Object; var _local7:Bitmap; var _local8:Class; var _local1:Number = 15; var _local2:Bitmap; while (_local2 == null) { _local3 = Rnd.integer(1, 4); _local4 = generateCloudCoordinates(); _local5 = true; for each (_local6 in _clouds) { _local7 = _local6.cloud; if ((((((_local4.y < ((_local7.y + _local7.height) + _local1))) && ((_local4.y > (_local7.y - _local1))))) || ((((_local4.x < ((_local7.x + _local7.width) + _local1))) && ((_local4.x > (_local7.x - _local1))))))){ _local5 = false; break; }; _local7 = null; }; if (_local5){ _local8 = Main.assets.clouds[(_local3 - 1)]; _local2 = new Assets.Cloud1(); _local2.alpha = Rnd.float(0.1, 0.3); addChild(_local2); _local2.x = _local4.x; _local2.y = _local4.y; _clouds.push({cloud:_local2, speed:Rnd.float(0.05, 0.3)}); }; }; return (_local2); } } }//packageSection 370//BigNut (BigNut) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.flashdynamix.motion.extras.*; import com.gskinner.utils.*; import flash.ui.*; public class BigNut extends Sprite { private var _group:Group; private var _bigNutTime:Number;// = 5000 private var _bubbleShowing:Boolean;// = false private var _offsetY:Number; private var _burst:Emitter; private var _phyNut:CircleParticle; private var _offsetX:Number; private var _startPos:Point; private var _bubble:Sprite; private var _hasBeenHit:Boolean;// = false private var _timers:Array; private var _side:int; private var _nutSprite:Bitmap; private var _isShowing:Boolean;// = false public static const EVENT_SHOW:String = "show"; public static const RIGHT:int = 4; public static const EVENT_HIT:String = "hit"; public static const EVENT_HIDE:String = "hide"; public static const BOTTOM:int = 1; private static const WIDTH:int = 60; private static const HEIGHT:int = 78; public static const TOP:int = 3; public static const LEFT:int = 2; public function BigNut(_arg1:Group):void{ _timers = new Array(); super(); _group = _arg1; _startPos = new Point(); } public function get nutSprite():Bitmap{ return (_nutSprite); } private function onHideTweenComplete():void{ _isShowing = false; _phyNut.collidable = false; } public function draw():void{ _nutSprite = new Assets.BigNut(); _nutSprite.x = (-(_nutSprite.width) * 0.5); _nutSprite.y = (-(_nutSprite.height) * 0.5); _nutSprite.smoothing = true; addChild(_nutSprite); _offsetX = 0; _offsetY = 0; _phyNut = new CircleParticle((this.x + _offsetX), (this.y + _offsetY), 30); _phyNut.fixed = false; _phyNut.visible = false; _phyNut.friction = 0; _phyNut.elasticity = 1.1; _phyNut.collidable = false; _phyNut.sprite.name = "bigNut"; _group.addParticle(_phyNut); _phyNut.addEventListener(CollisionEvent.COLLIDE, onBigNutHit, false, 0, true); } private function onBurstEmitterComplete():void{ _burst.holder.parent.removeChild(_burst.holder); _burst.dispose(); _burst = null; } public function destroy():void{ var _local1:Timer; if (contains(_nutSprite)){ removeChild(_nutSprite); }; _nutSprite = null; if (((_bubble) && (contains(_bubble)))){ removeChild(_bubble); }; _bubble = null; _group.removeParticle(_phyNut); _phyNut.removeEventListener(CollisionEvent.COLLIDE, onBigNutHit); for each (_local1 in _timers) { _local1.stop(); _timers.splice(_timers.indexOf(_local1), 1); }; _timers = null; if (this.parent){ this.parent.removeChild(this); }; } public function get time():Number{ return (_bigNutTime); } private function onTweenCompleteRemove(_arg1:DisplayObject):void{ if (contains(_arg1)){ removeChild(_arg1); }; } public function update():void{ _phyNut.px = (this.x + _offsetX); _phyNut.py = (this.y + _offsetY); } public function hide(_arg1:TimerEvent=null):void{ if (_arg1){ _arg1.target.removeEventListener(TimerEvent.TIMER_COMPLETE, this.hide); }; if (!_isShowing){ return; }; this.dispatchEvent(new Event(BigNut.EVENT_HIDE)); TweenMax.to(this, 1, {x:_startPos.x, y:_startPos.y, onComplete:onHideTweenComplete}); if (_bubbleShowing){ hideBubble(); }; } public function get hasBeenHit():Boolean{ return (_hasBeenHit); } private function onBigNutHit(_arg1:CollisionEvent):void{ if (_hasBeenHit){ return; }; this.dispatchEvent(new Event(EVENT_HIT)); _hasBeenHit = true; Main.sound.playSound(Assets.SOUND_BAWONG, 0.8); _burst = new Emitter(Assets.StarBurstPurple, {y:"130", alpha:0, rotation:"-180,180"}, 2, 1, "0,180", 20, 1); _burst.stop(); _burst.burst(10); _burst.x = this.x; _burst.y = this.y; this.parent.addChildAt(_burst.holder, (this.parent.getChildIndex(this) - 1)); _burst.tween.onComplete = onBurstEmitterComplete; Main.assets.playSquirrelVoice(Assets.SOUND_SQ_CHEERS); hide(); } public function set time(_arg1:Number):void{ _bigNutTime = _arg1; } public function hideBubble():void{ TweenMax.to(_bubble, 0.3, {alpha:0, onComplete:onTweenCompleteRemove, onCompleteParams:[_bubble]}); } public function showBubble():void{ _bubble = Main.assets.bigNutBubble; _bubble.x = -80; _bubble.y = -80; _bubble.alpha = 0; addChild(_bubble); TweenMax.to(_bubble, 0.3, {alpha:1}); _bubbleShowing = true; } public function show(_arg1:Boolean=false, _arg2:int=1):void{ var _local3:Number; this.dispatchEvent(new Event(BigNut.EVENT_SHOW)); this.rotation = 0; _side = _arg2; _isShowing = true; _hasBeenHit = false; if (_arg1){ showBubble(); }; if (((_bubbleShowing) && ((_side == BOTTOM)))){ _nutSprite.rotation = 0; } else { _nutSprite.rotation = Rnd.integer(-10, 10); _local3 = (_local3 - _nutSprite.rotation); }; _local3 = ((_nutSprite.height / 3) * 2); switch (_side){ case BOTTOM: this.x = Rnd.integer(20, (Main.GAME_WIDTH - 250)); this.y = (Main.GAME_HEIGHT + (_nutSprite.height * 0.5)); _local3 = (_local3 + 20); this.rotation = (this.rotation + 0); TweenMax.to(this, 1.5, {y:(("-" + String(_local3)) + "")}); break; case LEFT: this.x = -((_nutSprite.height * 0.5)); this.y = Rnd.integer(20, (Main.GAME_HEIGHT - 50)); this.rotation = (this.rotation + 90); TweenMax.to(this, 1.5, {x:(("+" + String(_local3)) + "")}); break; case TOP: this.x = Rnd.integer(20, (Main.GAME_WIDTH - 50)); this.y = -((_nutSprite.height * 0.5)); this.rotation = (this.rotation + 180); TweenMax.to(this, 1.5, {y:(("+" + String(_local3)) + "")}); break; case RIGHT: this.x = (Main.GAME_WIDTH + (_nutSprite.height * 0.5)); this.y = Rnd.integer(20, (Main.GAME_HEIGHT - 250)); this.rotation = (this.rotation + -90); TweenMax.to(this, 1.5, {x:(("-" + String(_local3)) + "")}); break; }; _phyNut.px = (this.x + _offsetX); _phyNut.py = (this.y + _offsetY); _phyNut.collidable = true; _startPos.x = this.x; _startPos.y = this.y; var _local4:Timer = new Timer(_bigNutTime, 1); _local4.addEventListener(TimerEvent.TIMER_COMPLETE, this.hide, false, 0, true); _local4.start(); _timers.push(_local4); Main.sound.playSound(Assets.SOUND_RISE, 0.2); } } }//packageSection 371//Bird (Bird) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import com.flashdynamix.motion.extras.*; import com.gskinner.utils.*; import flash.ui.*; public class Bird extends Sprite { protected var _group:Group; protected var _speed:int; protected var _isHit:Boolean; protected var _bird:Bitmap; protected var _stream:Emitter; protected var _burst:Emitter; protected var _sounds:Array; protected var _particle:CircleParticle; protected var _canvas:DisplayObjectContainer; protected var _id:int; protected var _bitmapClip:BitmapClip; private static const ELASTICITY:int = 1; private static const SIZE:int = 10; public static const HIT:String = "bird_hit"; private static const FRICTION:int = 0; public function Bird(_arg1:Group):void{ _group = _arg1; _sounds = [Assets.CROW1, Assets.CROW2]; } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, update); _group.removeParticle(_particle); _particle.removeEventListener(CollisionEvent.COLLIDE, onCollision); if (_stream){ _canvas.removeChild(_stream.holder); _stream.dispose(); }; if (_burst){ _canvas.removeChild(_burst.holder); _burst.dispose(); }; if (this.parent){ this.parent.removeChild(this); }; _bitmapClip.dispose(); _stream = null; _burst = null; _canvas = null; _group = null; _particle = null; } public function draw(_arg1:DisplayObjectContainer, _arg2:int, _arg3:int, _arg4:int=50):void{ _bird = new Bitmap(new BitmapData(37, 27, true, 0)); _bird.x = (_bird.x - (_bird.width * 0.5)); _bird.y = (_bird.y - (_bird.height * 0.5)); _bird.smoothing = true; addChild(_bird); _bitmapClip = new BitmapClip(); _bitmapClip.importTileSheetAnimations(new Assets.BirdAnim().bitmapData, 37, 27, 6, 2); _bitmapClip.frameRate = (50 * (_arg4 / 50)); _bitmapClip.bitmapToUpdate = _bird; _bitmapClip.currentAnimation = 0; _canvas = _arg1; this.x = _arg2; this.y = _arg3; _canvas.addChild(this); _particle = new CircleParticle(this.x, this.y, SIZE); _particle.fixed = false; _particle.visible = false; _particle.elasticity = 1; _particle.friction = 0.1; _particle.mass = 50; _particle.maxSpeed = 60; _group.addParticle(_particle); _particle.addEventListener(CollisionEvent.COLLIDE, onCollision, false, 0, true); _speed = _arg4; if (_arg2 > (Main.GAME_WIDTH * 0.5)){ _speed = (_speed * -1); _bird.scaleX = 1; }; _particle.addForce(new VectorForce(false, _speed, 0)); addEventListener(Event.ENTER_FRAME, update, false, 0, true); } public function get isHit():Boolean{ return (_isHit); } public function get particle():AbstractParticle{ return (_particle); } public function onCollision(_arg1:CollisionEvent):void{ if (_arg1.collidingItem.name == "squirrel"){ dispatchEvent(new Event(Bird.HIT, false, false)); _isHit = true; _particle.collidable = false; _bitmapClip.currentAnimation = 1; _bitmapClip.frameRate = 20; this.rotation = -100; if (scaleX == -1){ this.rotation = (this.rotation * -1); }; _burst = new Emitter(Assets.Feather1, {alpha:0, rotation:"-180,90"}, 5, 1, "0,360", 30, 1); _burst.stop(); _burst.burst(5); _burst.x = this.x; _burst.y = this.y; _canvas.addChildAt(_burst.holder, _canvas.getChildIndex(this)); _stream = new Emitter(Assets.Feather1, {alpha:0, rotation:"-180,90"}, 1, 0.05, "0,360", 50, 1); _stream.start(); _stream.x = this.x; _stream.y = this.y; _canvas.addChildAt(_stream.holder, _canvas.getChildIndex(this)); SoundManager.instance.playSound(_sounds[Rnd.integer(0, _sounds.length)], 0.3); }; } public function update(_arg1:Event):void{ _bitmapClip.update((1000 / 60)); x = _particle.px; y = _particle.py; if (_isHit){ _particle.addForce(new VectorForce(true, 0, 120)); _stream.x = this.x; _stream.y = this.y; }; } } }//packageSection 372//BirdManager (BirdManager) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import com.gskinner.utils.*; public class BirdManager extends EventDispatcher { private var _group:Group; private var _items:Array; private var _isCollidable:Boolean; private var _floor:int; private var _game:Game; private var _chance:Number; private var _squirrelGroup:Group; private var _hud:GameHud; private var _notifyGame:Boolean; private var _canvas:DisplayObjectContainer; public static const BIRD_HIT:String = "bird_hit"; public function BirdManager(_arg1:DisplayObjectContainer):void{ _canvas = _arg1; _hud = Main.current.game.hud; _game = Main.current.game; _group = new Group(false); APEngine.addGroup(_group); _squirrelGroup = Main.current.game.squirrels.group; _squirrelGroup.addCollidable(_group); _floor = 400; _items = []; _chance = 0.1; _isCollidable = true; _notifyGame = true; } public function set floor(_arg1:Number):void{ _floor = _arg1; } public function destroy():void{ _canvas = null; _hud = null; _group.cleanup(); APEngine.removeGroup(_group); _squirrelGroup.removeCollidable(_group); _group = null; clear(); _items = null; } public function get count():int{ return (_items.length); } public function update():void{ var _local1:Bird; for each (_local1 in _items) { if ((((((_local1.x < -80)) || ((_local1.x > (Main.GAME_WIDTH + 80))))) || ((_local1.y > Main.GAME_HEIGHT)))){ removeBird(_local1); }; }; } public function set isCollidable(_arg1:Boolean):void{ _isCollidable = _arg1; changeCollision(_isCollidable); } public function get items():Array{ return (_items); } public function spawnBird(_arg1:int, _arg2:int, _arg3:int):Bird{ var _local4:Bird = new Bird(_group); _local4.draw(_canvas, _arg1, _arg2, _arg3); _local4.addEventListener(Bird.HIT, onBirdHit, false, 0, true); _items.push(_local4); return (_local4); } public function clear():void{ var _local2:Bird; var _local1:int; for each (_local2 in _items) { _local2.removeEventListener(Bird.HIT, onBirdHit); _local2.destroy(); }; _items = []; } public function removeBird(_arg1:Bird):void{ _arg1.removeEventListener(Bird.HIT, onBirdHit); _items.splice(_items.indexOf(_arg1), 1); _arg1.destroy(); } public function get canvas():DisplayObjectContainer{ return (_canvas); } public function randomChanceSpawn():Bird{ if (!Rnd.boolean(_chance)){ return (null); }; var _local1:Boolean = Rnd.boolean(); var _local2:int = (_local1) ? -30 : (Main.GAME_WIDTH + 30); var _local3:int = Rnd.integer(20, _floor); var _local4:int = Rnd.integer(40, 60); var _local5:Bird = spawnBird(_local2, _local3, _local4); if (_local1){ _local5.scaleX = -1; }; return (_local5); } public function set chance(_arg1:Number):void{ _chance = _arg1; } private function changeCollision(_arg1:Boolean):void{ var _local2:Bird; for each (_local2 in _items) { _local2.particle.collidable = _arg1; }; } public function get isCollidable():Boolean{ return (_isCollidable); } public function set canvas(_arg1:DisplayObjectContainer):void{ _canvas = _arg1; } public function set notifyGame(_arg1:Boolean):void{ _notifyGame = _arg1; } public function onBirdHit(_arg1:Event):void{ if (!isCollidable){ return; }; var _local2:Bird = (_arg1.target as Bird); if (_notifyGame){ _game.onBirdHit(_local2); }; } public function get group():Group{ return (_group); } } }//packageSection 373//BitmapClip (BitmapClip) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; public class BitmapClip extends EventDispatcher { private var _anims:Array; private var _degToRotBy:Number; private var _curAn:int; private var _rotationFrame:int; private var _bitmapToUpdate:Bitmap; private var _stopFrame:int; private var point:Point; private var _framesOfRotation:int; private var _curAnRef:ClipIterator; private var _curFr:int; private var _clipHeight:int; private var _isAutoUpdateOn:Boolean; private var _ac:int; private var _frames:Array; private var _centerPos:Point; private var _isStopped:Boolean; public var _numFrames:int; private var _sleepTimes:Array; private var _nextAnimation:int; private var _clipWidth:int; private var _hasChanged:Boolean; private var _rotation:int; private var clipIterator:ClipIterator; private var _isEventBased:Boolean; private var _randomAnimations:Array; private var _frameRate:int; private var _ticks:int; private var _animationDelay:int; private static var _timer:Timer = new Timer(1); public function BitmapClip(_arg1:BitmapClip=null, _arg2:Bitmap=null, _arg3:int=1){ _anims = []; _centerPos = new Point(); point = new Point(); super(); init(_arg1, _arg2, _arg3); } public function get rotation():int{ return (_rotation); } public function stop():void{ _isStopped = true; } public function set rotation(_arg1:int):void{ _rotation = _arg1; _rotation = (_rotation % 360); if (_rotation < 0){ _rotation = (_rotation + 360); }; _rotationFrame = Math.round((_rotation / _degToRotBy)); if (_rotationFrame >= _framesOfRotation){ _rotationFrame = 0; }; _hasChanged = true; } public function get totalFrames():int{ return (_curAnRef.length); } public function set currentAnimation(_arg1:int):void{ _curAn = _arg1; if (_curAn >= _anims.length){ _curAn = 0; }; if (_curAn < 0){ _curAn = (_anims.length - 1); }; _curAnRef = _anims[_curAn]; _numFrames = _curAnRef.length; dispatchEvent(new Event(Event.CHANGE, true)); } public function gotoAndStop(_arg1:int):void{ _isStopped = true; if (_arg1 > _numFrames){ _arg1 = _numFrames; }; if (_arg1 < 1){ _arg1 = 1; }; while (_curAnRef.frame != _arg1) { _curFr = _curAnRef.next(); }; _hasChanged = true; } public function playRandom(_arg1:Array, _arg2:Array=null):void{ if (_arg2){ _randomAnimations = _arg2; } else { _randomAnimations = [0, (_anims.length - 1)]; }; _sleepTimes = _arg1; _nextAnimation = (Math.random() * 100); stop(); } public function dispose():void{ var _local2:int; if (_frames == null){ return; }; var _local1:int; while (_local1 < _frames.length) { _local2 = 0; while (_local2 < _frames[_local1].length) { BitmapData(_frames[_local1][_local2]).dispose(); _frames[_local1][_local2] = null; _local2++; }; _frames[_local1] = null; _local1++; }; _frames = null; } private function init(_arg1:BitmapClip=null, _arg2:Bitmap=null, _arg3:int=1):void{ bitmapToUpdate = _arg2; _rotation = 0; _rotationFrame = 0; _stopFrame = 0; _isStopped = false; frameRate = 24; if (_arg3 > 360){ _framesOfRotation = 360; } else { if (_arg3 <= 0){ _framesOfRotation = 1; } else { _framesOfRotation = _arg3; }; }; _degToRotBy = (360 / _framesOfRotation); _frames = new Array(_framesOfRotation); var _local4:int; while (_local4 < _framesOfRotation) { _frames[_local4] = new Array(); _local4++; }; _curAn = 0; _curFr = 0; _numFrames = 0; _ac = 0; _sleepTimes = [0, 0]; if (_arg1 != null){ reuseClipData(_arg1); }; } public function importTileSheet(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int=0, _arg5:int=0, _arg6:Point=null):int{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:BitmapData; var _local13:Number; var _local14:Number; var _local15:Matrix; var _local16:Bitmap; var _local17:Sprite; var _local18:Rectangle; var _local20:Point; var _local22:Number; var _local23:Number; var _local19:Point = new Point(); if (((!(_clipWidth)) || (!(_clipHeight)))){ _clipWidth = _arg2; _clipHeight = _arg3; }; if (_arg6 == null){ _local20 = new Point(); _local18 = new Rectangle(0, 0, _arg2, _arg3); } else { _local20 = _arg6.clone(); _local18 = new Rectangle(_local20.x, _local20.y, _arg2, _arg3); }; _local11 = _arg4; _local10 = _arg5; if (_local11 == 0){ _local11 = ((_arg1.width - _local20.x) / _arg2); }; if (_local10 == 0){ _local10 = ((_arg1.height - _local20.y) / _arg3); }; if (_framesOfRotation > 1){ _local13 = ((_arg2 * 0.5) * Math.SQRT2); _local14 = ((_arg3 * 0.5) * Math.SQRT2); _local22 = Math.max(_local13, _local14); _centerPos.x = _local22; _centerPos.y = _local22; _local23 = Math.ceil((Math.max(_arg2, _arg3) * Math.SQRT2)); _local15 = new Matrix(1, 0, 0, 1, _local22, _local22); _local12 = new BitmapData(_local23, _local23, true, 0); } else { _local13 = (_arg2 / 2); _local14 = (_arg3 / 2); _centerPos.x = _local13; _centerPos.y = _local14; _local15 = new Matrix(1, 0, 0, 1, _local13, _local14); _local12 = new BitmapData(_arg2, _arg3, true, 0); }; clipIterator = new ClipIterator(_frames[_rotationFrame].length, (_local11 * _local10)); _anims.push(clipIterator); if (_anims.length == 1){ _curAnRef = _anims[0]; _numFrames = _curAnRef.length; }; _local16 = new Bitmap(new BitmapData(_arg2, _arg3, true, 0), "auto", true); _local16.x = -((_arg2 / 2)); _local16.y = -((_arg3 / 2)); var _local21:Sprite = new Sprite(); _local21.addChild(_local16); _local17 = new Sprite(); _local17.addChild(_local21); _local7 = 0; while (_local7 < _local10) { _local18.y = ((_local7 * _arg3) + _local20.y); _local8 = 0; while (_local8 < _local11) { _local18.x = ((_local8 * _arg2) + _local20.x); _local16.bitmapData.fillRect(_local16.bitmapData.rect, 0); _local16.bitmapData.copyPixels(_arg1, _local18, _local19); _local9 = 0; while (_local9 < _framesOfRotation) { _local12.fillRect(_local12.rect, 0); _local12.draw(_local17, _local15); _frames[_local9].push(_local12.clone()); _local21.rotation = (_local21.rotation + (360 / _framesOfRotation)); _local9++; }; _local8++; }; _local7++; }; dispatchEvent(new Event(Event.COMPLETE, true)); return ((_anims.length - 1)); } public function reuseClipData(_arg1:BitmapClip):void{ init(null, _bitmapToUpdate, _arg1._framesOfRotation); _clipWidth = _arg1._clipWidth; _clipHeight = _arg1._clipHeight; frameRate = _arg1._frameRate; _centerPos = _arg1.center.clone(); _frames = _arg1._frames; _anims = new Array(); _numFrames = _arg1._numFrames; _curFr = _arg1._curFr; _curAn = _arg1._curAn; var _local2:int; while (_local2 < _arg1._anims.length) { _anims.push(_arg1._anims[_local2].copy()); _local2++; }; _curAnRef = _anims[_curAn]; } public function get currentAnimation():int{ return (_curAn); } public function play():void{ _isStopped = false; } public function get height():int{ return (_clipHeight); } public function importTileSheetAnimations(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int=0, _arg5:int=0):int{ var _local6:int; while (_local6 < _arg5) { importTileSheet(_arg1, _arg2, _arg3, _arg4, 1, new Point(0, (_local6 * _arg3))); _local6++; }; return (_anims.length); } public function importFrames(_arg1, _arg2:int=1, _arg3:int=0):int{ if (((!(_clipWidth)) || (!(_clipHeight)))){ _clipWidth = _arg1.width; _clipHeight = _arg1.height; }; if ((_arg1 is MovieClip)){ return (addMovieclip(_arg1, _arg2, _arg3)); }; if ((_arg1 is Sprite)){ return (addSprite(_arg1)); }; throw (new Error("BitmapClip::importFrames() source must be a Sprite or a MovieClip!")); } public function get width():int{ return (_clipWidth); } public function gotoAndPlay(_arg1:int):void{ _isStopped = false; var _local2:int = (_arg1 - 1); if (_local2 > _numFrames){ _local2 = _numFrames; while (_curAnRef.frame != _local2) { _curFr = _curAnRef.next(); }; } else { if (_local2 < 1){ _local2 = 1; while (_curAnRef.frame != _local2) { _curFr = _curAnRef.next(); }; } else { while (_curAnRef.frame != _local2) { _curFr = _curAnRef.next(); }; }; }; } public function nextFrame():void{ _curFr = _curAnRef.next(); } public function get bmpData():BitmapData{ return (_frames[_rotationFrame][_curFr]); } public function update(_arg1:int):void{ var _local2:int; if (((_sleepTimes) && (_isStopped))){ _ticks++; if (_nextAnimation == _ticks){ _local2 = int(((Math.random() * (_randomAnimations[1] - _randomAnimations[0])) + _randomAnimations[0])); playOnce(_local2); _ticks = 0; _nextAnimation = int(((Math.random() * (_sleepTimes[1] - _sleepTimes[0])) + _sleepTimes[0])); trace(("next: " + _nextAnimation)); }; } else { if (!_isStopped){ _ac = (_ac + _arg1); if (((_numFrames) && ((_ac > _animationDelay)))){ _ac = 0; _curFr = _curAnRef.next(); _hasChanged = true; }; }; }; if (((_isAutoUpdateOn) && (_hasChanged))){ _bitmapToUpdate.bitmapData = (_frames[_rotationFrame][_curFr] as BitmapData); _hasChanged = false; }; if ((((_stopFrame > 0)) && ((_stopFrame == _curFr)))){ _stopFrame = 0; gotoAndStop(0); }; } public function get center():Point{ return (_centerPos); } private function updateBitmap():void{ if (_isAutoUpdateOn){ _bitmapToUpdate.bitmapData = (_frames[_rotationFrame][_curFr] as BitmapData); }; } private function addMovieclip(_arg1:MovieClip, _arg2:int, _arg3:int):int{ var _local4:BitmapData; var _local5:Number; var _local6:Number; var _local7:Matrix; var _local11:Number; var _local12:Number; var _local13:int; if (_framesOfRotation > 1){ _local5 = ((_arg1.width / 2) * Math.SQRT2); _local6 = ((_arg1.height / 2) * Math.SQRT2); _local11 = Math.max(_local5, _local6); _centerPos.x = _local11; _centerPos.y = _local11; _local12 = Math.ceil((Math.max(_arg1.width, _arg1.height) * Math.SQRT2)); _local7 = new Matrix(1, 0, 0, 1, _local11, _local11); _local4 = new BitmapData(_local12, _local12, true, 0); } else { _local5 = (_arg1.width / 2); _local6 = (_arg1.height / 2); _centerPos.x = _local5; _centerPos.y = _local6; _local7 = new Matrix(1, 0, 0, 1, _local5, _local6); _local4 = new BitmapData(_arg1.width, _arg1.height, true, 0); }; var _local8:int = _arg3; if (_local8 == 0){ _local8 = _arg1.totalFrames; }; clipIterator = new ClipIterator(_frames[0].length, ((_local8 - _arg2) + 1)); _anims.push(clipIterator); if (_anims.length == 1){ _curAnRef = _anims[0]; _numFrames = _curAnRef.length; }; _arg1.gotoAndStop(_arg2); _arg1.rotation = 0; var _local9:Sprite = new Sprite(); _local9.addChild(_arg1); var _local10:int = _arg2; while (_local10 <= _local8) { _local13 = 0; while (_local13 < _framesOfRotation) { _local4.fillRect(_local4.rect, 0); _local4.draw(_local9, _local7); _frames[_local13].push(_local4.clone()); _arg1.rotation = (_arg1.rotation + (360 / _framesOfRotation)); _local13++; }; _arg1.nextFrame(); _local10++; }; _local9.removeChild(_arg1); _local9 = null; _local4.dispose(); _local4 = null; _local7 = null; dispatchEvent(new Event(Event.COMPLETE, true)); return ((_anims.length - 1)); } public function set frameRate(_arg1:int):void{ if (_arg1 <= 0){ _frameRate = 0; _animationDelay = 0; _isStopped = true; } else { _isStopped = false; _frameRate = _arg1; _animationDelay = (1000 / _arg1); }; if (_isEventBased){ if (_animationDelay <= 0){ _timer.stop(); } else { _timer.start(); }; }; } public function playOnce(_arg1:int):void{ currentAnimation = (_arg1 - 1); _stopFrame = ((_numFrames * _arg1) - 1); play(); } public function set bitmapToUpdate(_arg1:Bitmap):void{ _bitmapToUpdate = _arg1; if ((_arg1 == null)){ _isAutoUpdateOn = false; } else { _isAutoUpdateOn = true; }; } private function addSprite(_arg1:Sprite):int{ var _local2:BitmapData; var _local3:Number; var _local4:Number; var _local5:Matrix; var _local8:Number; var _local9:Number; if (_framesOfRotation > 1){ _local3 = ((_arg1.width / 2) * Math.SQRT2); _local4 = ((_arg1.height / 2) * Math.SQRT2); _local8 = Math.max(_local3, _local4); _centerPos.x = _local8; _centerPos.y = _local8; _local9 = Math.ceil((Math.max(_arg1.width, _arg1.height) * Math.SQRT2)); _local5 = new Matrix(1, 0, 0, 1, _local8, _local8); _local2 = new BitmapData(_local9, _local9, true, 0); } else { _local3 = (_arg1.width / 2); _local4 = (_arg1.height / 2); _centerPos.x = _local3; _centerPos.y = _local4; _local5 = new Matrix(1, 0, 0, 1, _local3, _local4); _local2 = new BitmapData(_arg1.width, _arg1.height, true, 0); }; clipIterator = new ClipIterator(_frames[_rotationFrame].length, 1); _anims.push(clipIterator); if (_anims.length == 1){ _curAnRef = _anims[0]; _numFrames = _curAnRef.length; }; var _local6:Sprite = new Sprite(); _local6.addChild(_arg1); _arg1.rotation = 0; var _local7:int; while (_local7 < _framesOfRotation) { _local2.fillRect(_local2.rect, 0); _local2.draw(_local6, _local5); _frames[_local7].push(_local2.clone()); _arg1.rotation = (_arg1.rotation + (360 / _framesOfRotation)); _local7++; }; _local6.removeChild(_arg1); _local6 = null; _local2.dispose(); _local2 = null; _local5 = null; dispatchEvent(new Event(Event.COMPLETE, true)); return ((_anims.length - 1)); } public function get frameRate():int{ return (_frameRate); } public function get currentFrame():int{ return (_curAnRef.frame); } public function prevFrame():void{ _curFr = _curAnRef.prev(); } } }//package class ClipIterator { private var _index:int; private var _numFrames:int; private var _startIndex:int; private var _isSingleFrame:Boolean;// = true private var _lastIndex:int; private function ClipIterator(_arg1:int, _arg2:int){ _startIndex = _arg1; _numFrames = _arg2; if (_startIndex < 0){ throw (new Error("Index cannot be a negative value!")); }; _index = _startIndex; _lastIndex = ((_numFrames + _startIndex) - 1); if (_arg2 > 1){ _isSingleFrame = false; }; } public function copy():ClipIterator{ return (new ClipIterator(_startIndex, (_lastIndex - _startIndex))); } public function get length():int{ return (_numFrames); } public function next():int{ _index++; if (_index > _lastIndex){ _index = _startIndex; }; return (_index); } public function get frame():int{ return (((_index - _startIndex) + 1)); } public function prev():int{ _index--; if (_index < _startIndex){ _index = _lastIndex; }; return (_index); } public function reset():void{ _index = _startIndex; } }Section 374//Button (Button) package { import flash.events.*; import flash.text.*; import flash.display.*; import gs.*; public class Button extends Sprite { protected var _rollOverEffect:String; protected var _container:Sprite; protected var _text:DisplayObject; protected var _downState:DisplayObject; protected var _enabled:Boolean; protected var _isPressed:Boolean; protected var _overState:DisplayObject; protected var _data:Object; protected var _selected:Boolean; protected var _selectedState:DisplayObject; protected var _textField:TextField; protected var _disabledState:DisplayObject; protected var _upState:DisplayObject; protected var _duration:Number; protected var _currentState:DisplayObject; public static const NONE:String = "none"; public static const SCALE:String = "scale"; public static const LIGHTEN:String = "lighten"; public function Button(_arg1:DisplayObject=null, _arg2:String="none"):void{ addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(MouseEvent.MOUSE_OVER, onOver, false, 0, true); addEventListener(MouseEvent.MOUSE_OUT, onOut, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, onPress, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, onRelease, false, 0, true); buttonMode = true; mouseChildren = false; _enabled = true; _selected = false; _isPressed = false; _upState = _arg1; _data = {}; _rollOverEffect = _arg2; _duration = 0.2; _container = new Sprite(); addChild(_container); setState(_upState); } public function get downState():DisplayObject{ return (_downState); } public function get duration():Number{ return (_duration); } public function set enabled(_arg1:Boolean):void{ _enabled = _arg1; if (_enabled){ setState(_upState); mouseEnabled = true; if (!_disabledState){ alpha = 1; }; } else { if (_disabledState){ setState(_disabledState); } else { alpha = 0.5; }; mouseEnabled = false; }; } public function get selected():Boolean{ return (_selected); } public function get overState():DisplayObject{ return (_overState); } public function get isPressed():Boolean{ return (_isPressed); } private function onPress(_arg1:MouseEvent):void{ if (!enabled){ return; }; if (((_selected) && ((_selectedState == _currentState)))){ return; }; _isPressed = true; setState(_downState); } public function set downState(_arg1:DisplayObject):void{ _downState = _arg1; } public function set duration(_arg1:Number):void{ _duration = _arg1; } public function get data():Object{ return (_data); } public function get text():DisplayObject{ return (_text); } private function onRelease(_arg1:MouseEvent):void{ if (!enabled){ return; }; _isPressed = false; selected = !(_selected); } public function get upState():DisplayObject{ return (_upState); } public function set overState(_arg1:DisplayObject):void{ _overState = _arg1; } public function get selectedState():DisplayObject{ return (_selectedState); } protected function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(MouseEvent.MOUSE_OVER, onOver); removeEventListener(MouseEvent.MOUSE_OUT, onOut); removeEventListener(MouseEvent.MOUSE_DOWN, onPress); removeEventListener(MouseEvent.MOUSE_UP, onRelease); _upState = null; _downState = null; _overState = null; _disabledState = null; _currentState = null; } public function get enabled():Boolean{ return (_enabled); } public function set rollOverEffect(_arg1:String):void{ _rollOverEffect = _arg1; } public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (((_selected) && (_selectedState))){ setState(_selectedState); } else { setState(_upState); }; } protected function draw(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, draw); if (_selected){ setState(_selectedState); } else { setState(_upState); }; } private function setState(_arg1:DisplayObject):void{ if (!_arg1){ return; }; if (_currentState){ _container.removeChild(_currentState); }; _currentState = _arg1; if (((!(_enabled)) && (_disabledState))){ _currentState = _disabledState; }; _currentState.x = (-(_currentState.width) * 0.5); _currentState.y = (-(_currentState.height) * 0.5); _container.x = (_currentState.width * 0.5); _container.y = (_currentState.height * 0.5); _container.addChildAt(_currentState, 0); } private function onOver(_arg1:MouseEvent):void{ if (!enabled){ return; }; if (((_selected) && ((_selectedState == _currentState)))){ return; }; setState(_overState); if (_rollOverEffect == SCALE){ TweenMax.to(_container, _duration, {scaleX:1.05, scaleY:1.05}); } else { if (_rollOverEffect == LIGHTEN){ TweenMax.to(_container, _duration, {colorMatrixFilter:{brightness:1.2}}); }; }; } public function set data(_arg1:Object):void{ _data = _arg1; } public function set text(_arg1:DisplayObject):void{ if (_text){ removeChild(_text); }; _text = _arg1; _text.x = ((_upState.width * 0.5) - (_text.width * 0.5)); _text.y = ((_upState.height * 0.5) - (_text.height * 0.5)); addChildAt(_text, numChildren); } public function set disabledState(_arg1:DisplayObject):void{ _disabledState = _arg1; } public function set selectedState(_arg1:DisplayObject):void{ _selectedState = _arg1; } private function onOut(_arg1:MouseEvent):void{ if (!enabled){ return; }; if (((_selected) && ((_selectedState == _currentState)))){ return; }; setState(_upState); if (_rollOverEffect == SCALE){ TweenMax.to(_container, _duration, {scaleX:1, scaleY:1}); } else { if (_rollOverEffect == LIGHTEN){ TweenMax.to(_container, _duration, {colorMatrixFilter:{brightness:1}}); }; }; } public function get disabledState():DisplayObject{ return (_disabledState); } public function set upState(_arg1:DisplayObject):void{ _upState = _arg1; } } }//packageSection 375//ButtonGroup (ButtonGroup) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import com.gskinner.utils.*; import flash.ui.*; public class ButtonGroup extends Container { private var _buttons:Array; private var _selectedButton:Button; public static const SELECT:String = "select"; public function ButtonGroup(_arg1:Array=null, _arg2:String="horiz", _arg3:String="left", _arg4:Object=null):void{ super(_arg1, _arg2, _arg3, _arg4); _buttons = []; } override public function addChildren(_arg1:Array):void{ var _local2:Button; for each (_local2 in _arg1) { addChild(_local2); }; } public function get buttons():Array{ return (_buttons); } public function get selected():Button{ return (_selectedButton); } private function deselectAll():void{ var _local1:Button; for each (_local1 in _buttons) { _local1.selected = false; }; } private function selectButton(_arg1:Button):void{ deselectAll(); _arg1.selected = true; _selectedButton = _arg1; dispatchEvent(new Event(SELECT)); } private function onButtonClick(_arg1:Event):void{ selectButton(Button(_arg1.target)); } override protected function destroy(_arg1:Event):void{ super.destroy(_arg1); _buttons = null; } override public function addChild(_arg1:DisplayObject):DisplayObject{ if ((!(_arg1) is Button)){ throw (new Error("Child must be a Button Object")); }; super.addChild(_arg1); _buttons.push(_arg1); Button(_arg1).addEventListener(MouseEvent.CLICK, onButtonClick, false, 0, true); return (_arg1); } public function select(_arg1:Button):void{ var _local2:Button; for each (_local2 in _buttons) { if (_local2 === _arg1){ selectButton(_local2); }; }; } public function setDefault(_arg1:int=1):void{ select(_buttons[(_arg1 - 1)]); } } }//packageSection 376//Cannon (Cannon) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import com.flashdynamix.motion.extras.*; public class Cannon extends Sprite { private var _loadedBall:Squirrel; private var _barrel:Sprite; private var _barrelAngle:Number;// = 0 private var _multiBall:Boolean;// = false private var _rotationLeftBound:Number;// = -65 private var _loadingBall:Boolean;// = false private var _canFire:Boolean;// = false private var _rotChange:Number;// = 0 private var _cannonForce:Number;// = 440 private var _base:Sprite; private var _smokeTimer:Timer; private var _emitter:Emitter; private var _ballFired:Boolean; private var _lastFired:Timer; private var _barrelCenter:Point; private var _barrelContainer:Sprite; private var _rotationRightBound:Number;// = 25 public function Cannon():void{ _base = Main.assets.wheel; super(); _smokeTimer = new Timer(100, 1); _smokeTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onSmokeTimerComplete); } private function renderSmoke():void{ if (((!(_lastFired)) || ((_lastFired.currentCount >= 5)))){ _lastFired = new Timer(100); _lastFired.start(); } else { return; }; var _local1:Point = Utility.getPointOnLine(_barrelCenter, _barrelAngle, (_barrel.width - 15)); _emitter.x = _local1.x; _emitter.y = _local1.y; _emitter.start(); } public function draw(_arg1:DisplayObjectContainer):void{ _arg1.addChild(this); _barrel = Main.assets.cannon; _barrel.x = -15; _barrel.y = (-(_barrel.height) * 0.5); _barrelContainer = new Sprite(); _barrelContainer.addChild(_barrel); _barrelContainer.x = (_barrel.width * 0.5); _barrelContainer.y = (_barrel.height - 15); addChild(_barrelContainer); _base.x = (_barrelContainer.x - (_base.width * 0.5)); _base.y = (_barrelContainer.y + 5); _base.cacheAsBitmap = true; addChild(_base); _emitter = new Emitter(Assets.CannonPuff1, {scaleX:0, scaleY:0, rotation:"-180,180", alpha:0}, 2, 1, "265, 275", "30, 80", 1); _emitter.stop(); _arg1.addChildAt(_emitter.holder, (_arg1.getChildIndex(this) - 1)); } public function set multiBall(_arg1:Boolean):void{ _multiBall = _arg1; } public function destroy():void{ if (contains(_base)){ removeChild(_base); }; if (contains(_barrelContainer)){ removeChild(_barrelContainer); }; _barrelContainer = null; _barrelCenter = null; _barrel = null; _base = null; if (_lastFired){ _lastFired.stop(); }; _lastFired = null; if (((_loadedBall) && (Main.current.game.contains(_loadedBall)))){ Main.current.game.removeChild(_loadedBall); }; _loadedBall = null; _smokeTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onSmokeTimerComplete); _smokeTimer = null; _emitter.stop(); _emitter.pause(); _emitter.holder.parent.removeChild(_emitter.holder); _emitter.dispose(); if (this.parent){ this.parent.removeChild(this); }; } public function set canFire(_arg1:Boolean):void{ _canFire = _arg1; } public function loadCannon():void{ } public function get multiBall():Boolean{ return (_multiBall); } private function onSmokeTimerComplete(_arg1:TimerEvent):void{ _emitter.stop(); } public function update(_arg1:Number, _arg2:Number):void{ var _local3:Point; setBarrelPosition(_arg1, _arg2); _rotChange = Utility.rotationOfLine(new Point(_barrelCenter.x, _barrelCenter.y), new Point(_arg1, _arg2)); _barrelContainer.rotation = _rotChange; _barrelAngle = Utility.rotationToDegrees(_barrelContainer.rotation); if (_smokeTimer.running){ _local3 = Utility.getPointOnLine(_barrelCenter, _barrelAngle, _barrel.width); _emitter.x = _local3.x; _emitter.y = _local3.y; }; } public function unloadCannon():void{ _loadingBall = false; _loadedBall = null; } public function get canFire():Boolean{ return (_canFire); } public function set fired(_arg1:Boolean):void{ _ballFired = _arg1; } public function get fired():Boolean{ return (_ballFired); } public function setBarrelPosition(_arg1:Number, _arg2:Number):void{ _barrelCenter = this.localToGlobal(new Point(_barrelContainer.x, _barrelContainer.y)); _barrelAngle = Utility.rotationOfLine(new Point(_barrelCenter.x, _barrelCenter.y), new Point(_arg1, _arg2)); } public function fire(_arg1:Number, _arg2:Number):void{ if (((((_ballFired) && (!(_multiBall)))) || (!(_canFire)))){ return; }; setBarrelPosition(_arg1, _arg2); if (!_multiBall){ _canFire = false; }; _ballFired = true; _smokeTimer.start(); this.renderSmoke(); Main.sound.playSound(Assets.SOUND_CANNON, 0.3); var _local3:Squirrel = Main.current.game.squirrels.spawnSquirrel(Utility.getPointOnLine(_barrelCenter, _barrelAngle, 50), _barrelAngle, _cannonForce); dispatchEvent(new CannonEvent(CannonEvent.FIRED, this, _local3)); } } }//packageSection 377//CannonEvent (CannonEvent) package { import flash.events.*; public class CannonEvent extends Event { private var _cannon:Cannon; private var _ball:Squirrel; public static const FIRED:String = "fired"; public static const SHOT_COMPLETE:String = "ball_complete"; public function CannonEvent(_arg1:String, _arg2:Cannon, _arg3:Squirrel=null, _arg4:Boolean=false, _arg5:Boolean=false){ _cannon = _arg2; super(_arg1, _arg4, _arg5); } public function get cannon():Cannon{ return (_cannon); } public function get ball():Squirrel{ return (_ball); } } }//packageSection 378//Container (Container) package { import flash.events.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.utils.*; import com.gskinner.utils.*; import flash.ui.*; public class Container extends Sprite { private var _innerPadding:Number; private var _layout:String; private var _container:Sprite; private var _spacingX:int; private var _spacingY:int; private var _contHeight:Number; private var _addedToStage:Boolean; private var _horizPadding:int; private var _float:String; private var _children:Array; private var _vertPadding:int; private var _adjustments:Array; private var _contWidth:Number; public static const HORIZONTAL:String = "horiz"; public static const LEFT:String = "left"; public static const JUSTIFY:String = "just"; public static const CENTER:String = "center"; public static const VERTICAL:String = "vert"; public static const RIGHT:String = "right"; public function Container(_arg1:Array=null, _arg2:String="horiz", _arg3:String="left", _arg4:Object=null):void{ _children = []; _adjustments = []; _container = new Sprite(); _contWidth = 0; _contHeight = 0; _float = _arg3; _layout = _arg2; _horizPadding = 0; _vertPadding = 0; _spacingX = 10; _spacingY = 10; super.addChild(_container); if (_arg4 != null){ setStyle(_arg4); }; if (_arg1){ addChildren(_arg1); }; addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ADDED_TO_STAGE, addToStage, false, 0, true); } public function addChildren(_arg1:Array):void{ var _local2:DisplayObject; for each (_local2 in _arg1) { addChild(_local2); }; } public function resize(_arg1:Number, _arg2:Number):void{ _contWidth = _arg1; _contHeight = _arg2; draw(); } override public function addChild(_arg1:DisplayObject):DisplayObject{ _container.addChild(_arg1); _children.push(_arg1); adjust(_arg1, 0, 0); return (_arg1); } public function set spacingX(_arg1:int):void{ _spacingX = _arg1; draw(); } public function get horizontalPadding():int{ return (_horizPadding); } public function adjust(_arg1:DisplayObject, _arg2:int, _arg3:int):DisplayObject{ if (!_container.contains(_arg1)){ throw (new Error("Element is not a child of this container")); }; var _local4:Object = {x:_arg2, y:_arg3}; _adjustments[_children.indexOf(_arg1)] = _local4; draw(); return (_arg1); } public function draw():void{ var _local5:DisplayObject; var _local7:Array; var _local8:DisplayObject; var _local9:DisplayObject; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:int; var _local14:DisplayObject; var _local15:Object; var _local1:int = _children.length; var _local2:int; var _local3:Number = 0; var _local4:Number = 0; _local2 = 0; while (_local2 < _local1) { _local5 = _children[_local2]; if (!_local5){ break; }; switch (_layout){ case HORIZONTAL: _local5.x = _local3; _local3 = (_local3 + (_local5.width + _spacingX)); _local5.y = 0; break; case VERTICAL: _local5.y = _local4; _local4 = (_local4 + (_local5.height + _spacingY)); _local5.x = 0; break; }; _local2++; }; if (_float == LEFT){ _container.x = 0; } else { if (_float == RIGHT){ if ((((_contWidth > 0)) && ((_contWidth > _container.width)))){ _container.x = (_contWidth - _container.width); }; if (_layout == VERTICAL){ for each (_local5 in _children) { _local5.x = (_container.width - _local5.width); }; }; } else { if (_float == CENTER){ if ((((_contWidth > 0)) && ((_contWidth > _container.width)))){ _container.x = ((_contWidth * 0.5) - (_container.width * 0.5)); }; if (_layout == VERTICAL){ for each (_local5 in _children) { _local5.x = ((_container.width * 0.5) - (_local5.width * 0.5)); }; }; } else { if (_float == JUSTIFY){ _local7 = _children.slice(); _local8 = _local7.shift(); _local9 = _local7.pop(); if (((_local8) && (_local9))){ _local8.x = 0; _local9.x = (_contWidth - _local9.width); _local10 = _contWidth; for each (_local5 in _children) { _local10 = (_local10 - _local5.width); }; _local11 = (_local10 / (_children.length - 1)); _local12 = (_local8.width + _local11); _local13 = 0; while (_local13 < _local7.length) { _local5 = _local7[_local13]; _local5.x = _local12; _local12 = (_local12 + (_local5.width + _local11)); _local13++; }; }; }; }; }; }; var _local6:int; while (_local6 < _children.length) { _local14 = _children[_local6]; _local15 = _adjustments[_local6]; if (!_local15){ break; }; _local14.x = (_local14.x + _local15.x); _local14.y = (_local14.y + _local15.y); _local6++; }; } public function get spacingX():int{ return (_spacingX); } public function get float():String{ return (_float); } private function addToStage(_arg1:Event):void{ _addedToStage = true; removeEventListener(Event.ADDED_TO_STAGE, addToStage); draw(); } public function set layout(_arg1:String):void{ _layout = _arg1; draw(); } public function set horizontalPadding(_arg1:int):void{ _horizPadding = _arg1; draw(); } public function set spacingY(_arg1:int):void{ _spacingY = _arg1; draw(); } protected function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); } public function adjustChildren(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:int = _children.length; var _local5:int = _arg1; while (_local5 < _local4) { adjust(_children[(_local5 - 1)], _arg2, _arg3); _local5++; }; } public function set verticalPadding(_arg1:int):void{ _vertPadding = _arg1; draw(); } public function set float(_arg1:String):void{ _float = _arg1; } public function get layout():String{ return (_layout); } public function get verticalPadding():int{ return (_vertPadding); } public function get spacingY():int{ return (_spacingY); } private function setStyle(_arg1:Object):void{ if (_arg1.width != undefined){ _contWidth = Number(_arg1.width); }; if (_arg1.height != undefined){ _contHeight = Number(_arg1.height); }; if (_arg1.paddingX != undefined){ _horizPadding = Number(_arg1.paddingX); }; if (_arg1.paddingY != undefined){ _vertPadding = Number(_arg1.paddingY); }; if (_arg1.spacingX != undefined){ _spacingX = Number(_arg1.spacingX); }; if (_arg1.spacingY != undefined){ _spacingY = Number(_arg1.spacingY); }; } } }//packageSection 379//EndBonusPanel (EndBonusPanel) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import flash.ui.*; public class EndBonusPanel extends Sprite { private var _container:Container; private var _level:Number; private var _player:Object; private var _text:Text; private var _lockedBubble:Sprite; private var _endLevelPanel:Sprite; private var _leaderBoard:Leaderboard; private var _nextButton:Button; private var _levelStats:Object; private var _selectButton:Button; private var _scores:Scores; private var _onHideCallback:Function; private var _submitButton:Button; private var _background:Bitmap; private var _levelData:Object; private var _mapPack:MapPack; private var _replayButton:Button; private var _starSound:String; private var _timers:Array; public static const EVENT_NEXT_CLICK:String = "next"; public static const EVENT_SUBMIT_CLICK:String = "submit"; public static const EVENT_HIDE:String = "hide"; public static const EVENT_SELECT_CLICK:String = "select"; public static const EVENT_REPLAY_CLICK:String = "replay"; public static const EVENT_SHOW:String = "show"; public function EndBonusPanel(_arg1:int, _arg2:Number, _arg3:Object, _arg4:Object):void{ _timers = new Array(); super(); addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); _scores = Main.current.game.scores; _player = _arg4; _level = _arg2; _levelData = _arg3; _text = Text.instance; _mapPack = Main.levelData.getPackById(_arg1); } private function onLeaderboardClose(_arg1:Event):void{ var _local2:TweenGroup = new TweenGroup([{target:_leaderBoard, time:0.5, y:-(_leaderBoard.height)}, {target:this, time:0.5, y:((Main.GAME_HEIGHT * 0.5) - (this.height * 0.5))}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } private function onHideComplete():void{ this.dispatchEvent(new Event(EndLevelPanel.EVENT_HIDE)); } private function onSubmitButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); if (!_leaderBoard){ _leaderBoard = new Leaderboard(_mapPack.boardId, _mapPack.name, Player.instance.getPackSessionScore(_mapPack.id)); _leaderBoard.addEventListener(Leaderboard.EVENT_CLOSE, onLeaderboardClose, false, 0, true); parent.addChild(_leaderBoard); _leaderBoard.x = ((Main.GAME_WIDTH * 0.5) - (_leaderBoard.width * 0.5)); }; _leaderBoard.y = -(_leaderBoard.height); var _local2:TweenGroup = new TweenGroup([{target:this, time:0.5, y:-(this.height)}, {target:_leaderBoard, time:0.5, y:((Main.GAME_HEIGHT * 0.5) - (_leaderBoard.height * 0.5))}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } private function onTargetStarTweenComplete(_arg1:String):void{ Main.sound.playSound(_arg1, 0.3); } private function onSelectButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); this.dispatchEvent(new Event(EndLevelPanel.EVENT_SELECT_CLICK)); this.hide(); Main.current.showLevelBrowser(_mapPack.id); } public function hide(_arg1:TimerEvent=null):void{ TweenMax.to(this, 0.5, {y:(-(this.height) - 20), onComplete:this.onHideComplete}); } public function draw(_arg1:Event):void{ var _local12:TextField; var _local13:Bitmap; var _local14:String; var _local15:Sprite; var _local33:Bitmap; var _local36:Bitmap; var _local42:Bitmap; removeEventListener(Event.ADDED_TO_STAGE, draw); var _local2:Object = {size:16, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:5, multiline:false}; var _local3:Object = {size:16, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:5, multiline:true, align:TextFormatAlign.CENTER}; var _local4:Object = {size:24, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:5, multiline:false}; var _local5:Object = {size:43, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:-1, border:true, borderColor:2956290, borderSize:8}; var _local6:Object = {size:24, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:-1, border:false, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}; var _local7:Object = {size:24, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:-1, border:false}; _background = new Assets.WoodBackgroundSmall(); addChild(_background); var _local8:Number = 410; this.x = ((Main.GAME_WIDTH * 0.5) - (this.width * 0.5)); this.y = (-(this.height) - 20); var _local9:Bitmap = new Assets.WoodHeadboard(); _local9.x = ((_background.width * 0.5) - (_local9.width * 0.5)); _local9.y = -10; addChild(_local9); var _local10:TextField = _text.getText(("BONUS LEVEL " + _level), _local6); _local10.x = ((this.width * 0.5) - (_local10.width * 0.5)); _local10.y = -8; addChild(_local10); var _local11:TextField = _text.getText("Score:", _local4); _local12 = _text.getText(Utility.commafy(_scores.levelScore), _local5); _local15 = new Sprite(); if (_scores.levelScore >= _levelData.targetScore){ _local13 = new Assets.EndTargetStarOn(); _local14 = Assets.SOUND_STAREARN; } else { _local13 = new Assets.EndTargetStarOff(); _local14 = Assets.SOUND_GROAN; }; _local13.smoothing = true; _local13.x = (-(_local13.width) * 0.5); _local13.y = (-(_local13.height) * 0.5); _local15.addChild(_local13); _local15.scaleX = 0; _local15.scaleY = 0; TweenMax.to(_local15, 0.5, {delay:1, scaleX:1, scaleY:1, rotation:340, onStart:onTargetStarTweenComplete, onStartParams:[_local14]}); var _local16:Container = new Container([_local11, _local12, _local15], Container.HORIZONTAL, Container.LEFT); _local16.adjust(_local15, 12, 15); _local16.adjust(_local11, 0, 10); var _local17:TextField = _text.getText(("Total Score: " + Utility.commafy(Player.instance.getPackSessionScore(_mapPack.id))), _local2); _submitButton = new Button(new Assets.SubmitButton(), Button.LIGHTEN); _submitButton.addEventListener(MouseEvent.CLICK, onSubmitButtonClick, false, 0, true); _submitButton.visible = false; var _local18:Container = new Container([_local17, _submitButton], Container.VERTICAL, Container.CENTER, {spacingY:0}); var _local19:Container = new Container([_local16, _local18], Container.HORIZONTAL, Container.JUSTIFY, {width:412}); var _local20:TextField = _text.getText("Personal Best:", _local2); var _local21:TextField = _text.getText(Utility.commafy(_player.score), _local7); var _local22:Container = new Container(null, Container.VERTICAL, Container.CENTER, {spacingY:-2}); _local22.addChildren([_local20, _local21]); var _local23:TextField = _text.getText("Target Score:", _local2); var _local24:TextField = _text.getText(Utility.commafy(_levelData.targetScore), _local7); var _local25:Container = new Container([_local23, _local24], Container.VERTICAL, Container.CENTER, {spacingY:-2}); var _local26:Container = new Container([_local22, _local25], Container.HORIZONTAL, Container.LEFT, {width:_local8, spacingX:40}); var _local27:Container = new Container(null, Container.VERTICAL, Container.LEFT, {spacingY:0}); var _local28:TextField = _text.getText((("Stage " + _level) + ":"), _local2); var _local29:Array = _mapPack.getStageStatus((_level * 5), Player.instance.getStageScoresByLevel(_mapPack.id, (_level * 5))); var _local30:Container = new Container(); _local30.spacingX = 1; var _local31:Boolean; var _local32:int; while (_local32 < 5) { if (_local29[_local32] == true){ _local30.addChild(getStar(true, (_local32 + 1))); } else { _local31 = false; _local30.addChild(getStar(false, (_local32 + 1))); }; _local32++; }; if (_scores.levelScore >= _levelData.targetScore){ _local33 = new Assets.BonusStarOn(); } else { _local31 = false; _local33 = new Assets.BonusStarOff(); }; _local30.addChild(_local33); _local30.adjust(_local33, 6, -14); _local30.draw(); _local27.addChildren([_local28, _local30]); var _local34:Bitmap = new Assets.Arrow(); var _local35 = ""; if (_local31){ _local35 = (("Stage " + String((_level + 1))) + "\nUnlocked!"); _local36 = new Assets.EndLevelUnlock(); } else { _local35 = (("Stage " + String((_level + 1))) + "\nLocked"); _local36 = new Assets.EndLevelLock(); }; var _local37:TextField = _text.getText(_local35, {size:18, color:0xFFFFFF, align:Text.CENTER, borderSize:8, borderColor:2956290, font:Text.BLOCKTREG, leading:-5}); var _local38:Container = new Container([_local36, _local37], Container.VERTICAL, Container.CENTER, {spacingY:-9}); var _local39:Container = new Container([_local27, _local34, _local38], Container.HORIZONTAL, Container.LEFT, {width:_local8, spacingX:40}); _local39.adjust(_local34, 0, 19); _selectButton = new Button(new Assets.LevelsButton(), Button.LIGHTEN); _selectButton.addEventListener(MouseEvent.CLICK, onSelectButtonClick, false, 0, true); _replayButton = new Button(new Assets.ReplayButton(), Button.LIGHTEN); _replayButton.addEventListener(MouseEvent.CLICK, onReplayButtonClick, false, 0, true); var _local40:Sprite = new Sprite(); _local40.addChild(new Assets.ContinueButton()); _nextButton = new Button(_local40); if (((!(_local31)) && (!(Player.instance.hasUnlockCheat)))){ _local42 = new Assets.EndLevelLock(); _local42.scaleX = 0.7; _local42.scaleY = _local42.scaleX; _local42.x = ((_local40.width * 0.5) - (_local42.width * 0.5)); _local42.y = 4; _local40.addChild(_local42); TweenMax.to(_local40, 1, {alpha:0.4, colorMatrixFilter:{saturation:0, brightness:0.8}}); } else { _nextButton.rollOverEffect = Button.LIGHTEN; _nextButton.addEventListener(MouseEvent.CLICK, onNextLevelButtonClick, false, 0, true); }; var _local41:Container = new Container([_selectButton, _replayButton], Container.HORIZONTAL, Container.JUSTIFY, {width:_local8, spacingX:10}); if (_level != 4){ _local41.addChild(_nextButton); }; _container = new Container([_local19, new Assets.WoodDivider1(), _local26, new Assets.WoodDivider2(), _local39, new Assets.WoodDivider3(), _local41], Container.VERTICAL, Container.LEFT, {width:_local8, spacingY:12}); _container.x = 40; _container.y = 60; addChild(_container); this.show(); } public function update(_arg1:Event):void{ } private function onShowComplete():void{ Main.assets.playSquirrelVoice(Assets.SOUND_SQ_CHEERS, 0.3); } private function getStar(_arg1:Boolean, _arg2:int):Bitmap{ if (_arg1){ switch (_arg2){ case 1: return (new Assets.EndStarOn1()); case 2: return (new Assets.EndStarOn2()); case 3: return (new Assets.EndStarOn3()); case 4: return (new Assets.EndStarOn4()); case 5: return (new Assets.EndStarOn5()); }; } else { switch (_arg2){ case 1: return (new Assets.EndStarOff1()); case 2: return (new Assets.EndStarOff2()); case 3: return (new Assets.EndStarOff3()); case 4: return (new Assets.EndStarOff4()); case 5: return (new Assets.EndStarOff5()); }; }; return (null); } private function onNextLevelButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); this.dispatchEvent(new Event(EndLevelPanel.EVENT_NEXT_CLICK)); if (TweenMax.isTweening(_lockedBubble)){ TweenMax.killTweensOf(_lockedBubble); }; this.hide(); Main.current.game.destroyLevel(); Main.current.game.drawNextLevel(); } private function onReplayButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); this.dispatchEvent(new Event(EndLevelPanel.EVENT_REPLAY_CLICK)); this.hide(); Main.current.game.destroyLevel(); Main.current.game.drawBonusLevel(_level); } public function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); TweenMax.killTweensOf(this, false); _nextButton.removeEventListener(MouseEvent.CLICK, onNextLevelButtonClick); _selectButton.removeEventListener(MouseEvent.CLICK, onSelectButtonClick); _replayButton.removeEventListener(MouseEvent.CLICK, onReplayButtonClick); _submitButton.removeEventListener(MouseEvent.CLICK, onSubmitButtonClick); _levelData = null; _endLevelPanel = null; _lockedBubble = null; _levelStats = null; } public function show(_arg1:Boolean=false):void{ TweenMax.to(this, 0.5, {y:((Main.GAME_HEIGHT / 2) - (this.height / 2)), onComplete:this.onShowComplete}); } } }//packageSection 380//EndLevelPanel (EndLevelPanel) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import flash.ui.*; public class EndLevelPanel extends Sprite { private var _container:Container; private var _level:Number; private var _player:Object; private var _text:Text; private var _lockedBubble:Sprite; private var _endLevelPanel:Sprite; private var _leaderBoard:Leaderboard; private var _nextButton:Button; private var _levelStats:Object; private var _selectButton:Button; private var _lockBubble:Bitmap; private var _scores:Scores; private var _onHideCallback:Function; private var _submitButton:Button; private var _background:Bitmap; private var _levelData:Object; private var _mapPack:MapPack; private var _replayButton:Button; private var _starSound:String; private var _timers:Array; public static const EVENT_NEXT_CLICK:String = "next"; public static const EVENT_SUBMIT_CLICK:String = "submit"; public static const EVENT_HIDE:String = "hide"; public static const EVENT_SELECT_CLICK:String = "select"; public static const EVENT_REPLAY_CLICK:String = "replay"; public static const EVENT_SHOW:String = "show"; public function EndLevelPanel(_arg1:int, _arg2:Number, _arg3:Object, _arg4:Object):void{ _timers = new Array(); super(); addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); _scores = Main.current.game.scores; _player = Player.instance.getLevel(_arg1, _arg2); _level = _arg2; _levelData = _arg3; _text = Text.instance; _mapPack = Main.levelData.getPackById(_arg1); } private function onLeaderboardClose(_arg1:Event):void{ var _local2:TweenGroup = new TweenGroup([{target:_leaderBoard, time:0.5, y:-(_leaderBoard.height)}, {target:this, time:0.5, y:((Main.GAME_HEIGHT * 0.5) - (this.height * 0.5))}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } private function onHideComplete():void{ this.dispatchEvent(new Event(_slot1.EVENT_HIDE)); } private function onSubmitButtonClick(_arg1:MouseEvent):void{ var e = _arg1; e.stopPropagation(); if (!_leaderBoard){ _leaderBoard = new Leaderboard(_mapPack.boardId, _mapPack.name, Player.instance.getPackSessionScore(_mapPack.id)); _leaderBoard.addEventListener(Leaderboard.EVENT_CLOSE, onLeaderboardClose, false, 0, true); parent.addChild(_leaderBoard); _leaderBoard.x = ((Main.GAME_WIDTH * 0.5) - (_leaderBoard.width * 0.5)); }; _leaderBoard.y = -(_leaderBoard.height); TweenMax.to(this, 0.5, {y:-(this.height), onComplete:function ():void{ _leaderBoard.show(); }}); var t:TweenGroup = new TweenGroup([{target:this, time:0.5, y:-(this.height)}, {target:_leaderBoard, time:0.5, y:((Main.GAME_HEIGHT * 0.5) - (_leaderBoard.height * 0.5))}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } private function onTargetStarTweenComplete(_arg1:String):void{ SoundManager.instance.playSound(_arg1, 0.3); } private function onSelectButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); this.dispatchEvent(new Event(_slot1.EVENT_SELECT_CLICK)); this.hide(); Main.current.showLevelBrowser(_mapPack.id); } public function hide(_arg1:TimerEvent=null):void{ TweenMax.to(this, 0.5, {y:(-(this.height) - 20), onComplete:this.onHideComplete}); } public function draw(_arg1:Event):void{ var score:TextField; var starSprite:Bitmap; var starSound:String; var star:Sprite; var medal:Object; var nS:Sprite; var m1:Bitmap; var m1Label:TextField; var m1Cont:Container; var l:Bitmap; var e = _arg1; removeEventListener(Event.ADDED_TO_STAGE, draw); var label1:Object = {size:16, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:5, multiline:false}; var medalLabel:Object = {size:16, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:5, leading:-1, multiline:true, align:TextFormatAlign.CENTER}; var label2:Object = {size:24, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:5, multiline:false}; var label3:Object = {size:43, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:-1, border:true, borderColor:2956290, borderSize:8}; var label4:Object = {size:24, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:-1, border:false, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}; var label5:Object = {size:24, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:-1, border:false}; _background = new Assets.WoodBackgroundSmall(); addChild(_background); var bWidth:Number = 410; this.x = ((Main.GAME_WIDTH * 0.5) - (this.width * 0.5)); this.y = (-(this.height) - 20); var hb:Bitmap = new Assets.WoodHeadboard(); hb.x = ((_background.width * 0.5) - (hb.width * 0.5)); hb.y = -10; addChild(hb); var levelLabel:TextField = _text.getText(("STAGE: " + MapPack.getStageString(_level)), label4); levelLabel.x = ((this.width * 0.5) - (levelLabel.width * 0.5)); levelLabel.y = -8; addChild(levelLabel); var scoreLabel:TextField = _text.getText("Score:", label2); score = _text.getText(Utility.commafy(_scores.levelScore), label3); star = new Sprite(); if (_scores.levelScore >= _levelData.targetScore){ starSprite = new Assets.EndTargetStarOn(); starSound = Assets.SOUND_STAREARN; } else { starSprite = new Assets.EndTargetStarOff(); starSound = Assets.SOUND_GROAN; }; starSprite.smoothing = true; starSprite.x = (-(starSprite.width) * 0.5); starSprite.y = (-(starSprite.height) * 0.5); star.addChild(starSprite); star.scaleX = 0; star.scaleY = 0; TweenMax.to(star, 0.5, {delay:1, scaleX:1, scaleY:1, rotation:340, onStart:onTargetStarTweenComplete, onStartParams:[starSound]}); var scoreCont:Container = new Container([scoreLabel, score, star], Container.HORIZONTAL, Container.LEFT); scoreCont.adjust(star, 12, 15); scoreCont.adjust(scoreLabel, 0, 10); var total:TextField = _text.getText(("Total Score: " + Utility.commafy(Player.instance.getPackSessionScore(_mapPack.id))), label1); _submitButton = new Button(new Assets.SubmitButton(), Button.LIGHTEN); _submitButton.addEventListener(MouseEvent.CLICK, onSubmitButtonClick, false, 0, true); _submitButton.visible = false; var subCont:Container = new Container([total], Container.VERTICAL, Container.CENTER, {spacingY:0}); var row1:Container = new Container([scoreCont, subCont], Container.HORIZONTAL, Container.JUSTIFY, {width:412}); var pbLabel:TextField = _text.getText("Personal Best:", label1); var pb:TextField = _text.getText(Utility.commafy(_player.score), label5); var pbCont:Container = new Container(null, Container.VERTICAL, Container.CENTER, {spacingY:-2}); pbCont.addChildren([pbLabel, pb]); var tarLabel:TextField = _text.getText("Target Score:", label1); var tar:TextField = _text.getText(Utility.commafy(_levelData.targetScore), label5); var tarCont:Container = new Container([tarLabel, tar], Container.VERTICAL, Container.CENTER, {spacingY:-2}); var stageCont:Container = new Container(null, Container.VERTICAL, Container.LEFT, {spacingY:0}); var stageLabel:TextField = _text.getText((("Stage " + Math.ceil((_level / 5))) + ":"), label1); var stage:Array = _mapPack.getStageStatus(_level, Player.instance.getStageScoresByLevel(_mapPack.id, _level)); var levCont:Container = new Container(); levCont.spacingX = 1; var stageComplete:Boolean; var i:int; while (i < 5) { if (stage[i] == true){ levCont.addChild(getStar(true, (i + 1))); } else { stageComplete = false; levCont.addChild(getStar(false, (i + 1))); }; i = (i + 1); }; levCont.draw(); stageCont.addChildren([stageLabel, levCont]); var row2:Container = new Container(null, Container.HORIZONTAL, Container.LEFT, {width:bWidth}); row2.spacingX = 40; row2.addChild(pbCont); row2.addChild(tarCont); row2.addChild(stageCont); var medalsLabel:TextField = _text.getText("Medals:", label1); var medals:Array = [{p:"hangTime", n:"Nice \nHang Time", imgFull:Assets.MedalSquirrel, imgEmpty:Assets.MedalSquirrelEmpty}, {p:"gameHunter", n:"Big \nBird Hunter", imgFull:Assets.MedalBird, imgEmpty:Assets.MedalBirdEmpty}, {p:"bigCombo", n:"Combo \nKing", imgFull:Assets.MedalNut, imgEmpty:Assets.MedalNutEmpty}]; var row3:Container = new Container([medalsLabel], Container.HORIZONTAL, Container.LEFT, {width:bWidth, spacingX:40}); for each (medal in medals) { m1Label = _text.getText(medal.n, medalLabel); if (_player[medal.p] == true){ m1 = new medal.imgFull(); } else { m1 = new medal.imgEmpty(); m1.alpha = 1; m1.blendMode = BlendMode.OVERLAY; }; m1Cont = new Container([m1, m1Label], Container.VERTICAL, Container.CENTER, {spacingY:2}); row3.addChild(m1Cont); }; _selectButton = new Button(new Assets.LevelsButton(), Button.LIGHTEN); _selectButton.addEventListener(MouseEvent.CLICK, onSelectButtonClick, false, 0, true); _replayButton = new Button(new Assets.ReplayButton(), Button.LIGHTEN); _replayButton.addEventListener(MouseEvent.CLICK, onReplayButtonClick, false, 0, true); nS = new Sprite(); nS.addChild(new Assets.ContinueButton()); _nextButton = new Button(nS); if (((((((_level % 5) == 0)) && (!(stageComplete)))) && (((!(Player.instance.hasUnlockCheat)) || (((Player.instance.hasUnlockCheat) && (!(Player.instance.useCheatMode)))))))){ l = new Assets.EndLevelLock(); l.scaleX = 0.7; l.scaleY = l.scaleX; l.x = ((nS.width * 0.5) - (l.width * 0.5)); l.y = 4; nS.addChild(l); TweenMax.to(nS, 1, {alpha:0.4, colorMatrixFilter:{saturation:0, brightness:0.8}}); _lockBubble = new Assets.BonusLockBubble(); _lockBubble.x = 300; _lockBubble.y = 270; _lockBubble.alpha = 0; _nextButton.addEventListener(MouseEvent.MOUSE_OVER, function (_arg1:MouseEvent):void{ TweenMax.to(_lockBubble, 0.5, {alpha:1}); }); _nextButton.addEventListener(MouseEvent.MOUSE_OUT, function (_arg1:MouseEvent):void{ TweenMax.to(_lockBubble, 0.5, {alpha:0}); }); } else { _nextButton.rollOverEffect = Button.LIGHTEN; _nextButton.addEventListener(MouseEvent.CLICK, onNextLevelButtonClick, false, 0, true); }; var buttons:Container = new Container([_selectButton, _replayButton, _nextButton], Container.HORIZONTAL, Container.JUSTIFY, {width:bWidth, spacingX:10}); _container = new Container([row1, new Assets.WoodDivider1(), row2, new Assets.WoodDivider2(), row3, new Assets.WoodDivider3(), buttons], Container.VERTICAL, Container.LEFT, {width:bWidth, spacingY:12}); _container.adjustChildren(5, 0, -5); _container.x = 40; _container.y = 40; addChild(_container); if (_lockBubble){ addChild(_lockBubble); }; this.show(); } public function update(_arg1:Event):void{ } private function onShowComplete():void{ Main.assets.playSquirrelVoice(Assets.SOUND_SQ_CHEERS, 0.3); } private function getStar(_arg1:Boolean, _arg2:int):Bitmap{ if (_arg1){ switch (_arg2){ case 1: return (new Assets.EndStarOn1()); case 2: return (new Assets.EndStarOn2()); case 3: return (new Assets.EndStarOn3()); case 4: return (new Assets.EndStarOn4()); case 5: return (new Assets.EndStarOn5()); }; } else { switch (_arg2){ case 1: return (new Assets.EndStarOff1()); case 2: return (new Assets.EndStarOff2()); case 3: return (new Assets.EndStarOff3()); case 4: return (new Assets.EndStarOff4()); case 5: return (new Assets.EndStarOff5()); }; }; return (null); } private function onNextLevelButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); this.dispatchEvent(new Event(_slot1.EVENT_NEXT_CLICK)); if (TweenMax.isTweening(_lockedBubble)){ TweenMax.killTweensOf(_lockedBubble); }; this.hide(); Main.current.game.destroyLevel(); Main.current.game.drawNextLevel(); } private function onReplayButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); this.dispatchEvent(new Event(_slot1.EVENT_REPLAY_CLICK)); this.hide(); Main.current.game.resetLevel(); } public function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); TweenMax.killTweensOf(this, false); _nextButton.removeEventListener(MouseEvent.CLICK, onNextLevelButtonClick); _selectButton.removeEventListener(MouseEvent.CLICK, onSelectButtonClick); _replayButton.removeEventListener(MouseEvent.CLICK, onReplayButtonClick); _submitButton.removeEventListener(MouseEvent.CLICK, onSubmitButtonClick); _levelData = null; _endLevelPanel = null; _lockedBubble = null; _levelStats = null; } public function show(_arg1:Boolean=false):void{ TweenMax.to(this, 0.5, {y:((Main.GAME_HEIGHT / 2) - (this.height / 2)), onComplete:this.onShowComplete}); } } }//packageSection 381//FireWorks (FireWorks) package { import flash.events.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.flashdynamix.motion.extras.*; import com.gskinner.utils.*; public class FireWorks extends Sprite { protected var _emitters:Array; protected var _points:Array; protected var _colors:Array; protected var _game:Game; protected var _bombs:Array; protected var _canvas:DisplayObjectContainer; protected var _hud:GameHud; private static const RANDOM_FIRE:Number = 0.05; private static const STEP:Number = 0.009; private static const LIFESPAN:Number = 60; private static const GRAVITY:Number = 20; public function FireWorks():void{ _game = Main.current.game; _hud = _game.hud; _bombs = []; _emitters = []; _points = []; _colors = []; } public function update(_arg1:Event):void{ var _local3:Object; var _local4:Sprite; var _local5:Emitter; var _local6:Emitter; if (Rnd.boolean(RANDOM_FIRE)){ createBomb(); }; var _local2:int; while (_local2 < _bombs.length) { _local3 = _bombs[_local2]; _local4 = _local3.sprite; _local3.vx = (_local3.vx - (_local3.vx * STEP)); _local3.vy = (_local3.vy - (_local3.vy * STEP)); _local3.vy = (_local3.vy + (GRAVITY * STEP)); _local4.x = (_local4.x + _local3.vx); _local4.y = (_local4.y + _local3.vy); _local5 = _local3.emitter; _local5.x = _local4.x; _local5.y = (_local4.y - 1); if ((((_local3.ticks >= LIFESPAN)) && (_local3.active))){ _local3.active = false; TweenMax.to(_local4, 0.3, {alpha:0}); _local5.stop(); _local6 = new Emitter(Assets.Sparkle, {scaleX:1.1, scaleY:1.1, alpha:0, rotation:"-180,180"}, 5, 1, "0,360", 100, 1); _local6.transform.colorTransform = _local3.color; _local6.stop(); _local6.burst(50); _local6.x = _local4.x; _local6.y = _local4.y; addChild(_local6.holder); } else { _local3.ticks++; }; if (_local4.y > Main.GAME_HEIGHT){ _bombs.splice(_bombs.indexOf(_local3), 1); _local2--; _local4.parent.removeChild(_local4); _local5.holder.parent.removeChild(_local5.holder); _local5.dispose(); }; _local2++; }; } private function createBomb():void{ var _local1:Point; var _local2:Sprite; _local1 = _points[Rnd.integer(0, _points.length)]; _local2 = new Sprite(); _local2.x = _local1.x; _local2.y = _local1.y; addChild(_local2); var _local3:ColorTransform = _colors[Rnd.integer(0, _colors.length)]; var _local4:Bitmap = new Assets.Firework(); _local4.scaleX = 0.7; _local4.scaleY = _local4.scaleX; _local4.x = -((_local4.width * 0.5)); _local4.y = -((_local4.height * 0.5)); _local4.transform.colorTransform = _local3; _local2.addChild(_local4); var _local5:Emitter = new Emitter(Assets.Sparkle, {alpha:0, rotation:"-180,180"}, 1, 0.5, "0,180", 10, 0.8); _local5.transform.colorTransform = _local3; _local5.start(); addChild(_local5.holder); var _local6:Object = {sprite:_local2, vx:Rnd.integer(-5, 5), vy:Rnd.integer(-5, -9), emitter:_local5, ticks:0, active:true, color:_local3}; _bombs.push(_local6); } public function destroy():void{ var _local1:Object; removeEventListener(Event.ENTER_FRAME, update); for each (_local1 in _bombs) { if (_local1.emitter){ _local1.emitter.dispose(); }; if (_local1.emitter.parent){ _local1.emitter.parent.removeChild(_local1.emitter); }; }; _bombs = null; if (this.parent){ this.parent.removeChild(this); }; } public function draw(_arg1:DisplayObjectContainer, _arg2:Array=null, _arg3:int=45, _arg4:int=15):void{ _canvas = _arg1; _canvas.addChild(this); if (!_arg2){ _points.push(new Point(300, 250)); _points.push(new Point(200, 250)); _points.push(new Point(500, 250)); _points.push(new Point(350, 250)); } else { _points = _arg2; }; _colors.push(new ColorTransform(1.5, 1, 1, 1, 150, -40, -40, 0)); _colors.push(new ColorTransform(0.5, 0.5, 1.5, 1, 0, 150, 0xFF, 0)); _colors.push(new ColorTransform(0.8, 1.5, 0.8, 1, 0, 100, 0, 0)); filters = [new BlurFilter(1.5, 1.5, 1)]; blendMode = BlendMode.ADD; addEventListener(Event.ENTER_FRAME, update); } } }//packageSection 382//Game (Game) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import mochi.as3.*; import flash.ui.*; import flash.system.*; public class Game extends Sprite { private var _player:Player; private var _currentPlayerData:Object; private var _multiplierBubble:Sprite; private var _floor:RectangleParticle; private var _isTesting:Boolean;// = false private var _boundryGroup:Group; private var _cannon:Cannon; private var _isGameEnded:Boolean; private var _emittersToRenderers:Dictionary; private var _renderer:Renderer; private var _editedLevel:Boolean;// = false private var _particles:Particles; private var _goCrazyPegLimit:Number;// = 10 private var _goCrazyMissedLimit:Number;// = 0 private var _hud:GameHud; private var _randomNutForBonus:Number;// = 0 private var _scores:Scores; private var _hasMultiplierBubbleShown:Boolean;// = false private var _bigNutGroup:Group; private var _isBonusLevel:Boolean; private var _mapPack:MapPack; private var _gamePaused:Boolean;// = false private var _bigNutHasBeenHit:Boolean;// = false private var _ceiling:RectangleParticle; private var _hasShotEndedAndStarBubbleShown:Boolean;// = false private var _level:Level; private var _bigNut:BigNut; private var _rightWall:RectangleParticle; private var _leaderBoard:ScoresPanel; private var _squirrelGroup:Group; private var _startLevelGo:Sprite; private var _stats:Stats; private var _hasShownCrazyGoNuts:Boolean;// = false private var _endMiniLevel:MiniGamePanel; private var _squirrels:SquirrelManager; private var _levelTimer:Timer; private var _grass:Sprite; private var _endLevel:EndLevelPanel; private var _fireModeTimer:Timer; private var _leftWall:RectangleParticle; private var _multiplierStar:Sprite; private var _background:Background; private var _hasStarBubbleShown:Boolean;// = false private var _isMiniGame:Boolean; private var _birds:BirdManager; private var _endBonusLevel:EndBonusPanel; private var _startLevelNum:Sprite; private var _timers:Array; private var _pauseMenu:PausePanel; public static const GRID_Y:Number = 80; public static const GRID_HEIGHT:Number = 35; public static const GRID_COLUMNS:Number = 19; public static const GRID_WIDTH:Number = 35; public static const GRID_ROWS:Number = 12; public static const GRID_X:Number = 17; public function Game(_arg1:int=0):void{ _timers = new Array(); _emittersToRenderers = new Dictionary(true); super(); Main.log("Game: Constructor"); if (_arg1 > 0){ _mapPack = Main.levelData.loadPack(_arg1); } else { _mapPack = new MapPack(); }; _player = Player.instance; _isBonusLevel = false; addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); } public function endCurrentLevel():void{ if (((_isBonusLevel) && (!(_isMiniGame)))){ endBonusLevel(); } else { if (_isMiniGame){ if (LevelBonus(_level).started){ LevelBonus(_level).endLevel(); }; } else { endLevel(); }; }; } public function pauseGame():void{ TweenMax.pauseAll(); _gamePaused = true; _cannon.canFire = false; _squirrels.pause(); _fireModeTimer.stop(); _levelTimer.stop(); if (((_isBonusLevel) || (_isMiniGame))){ LevelBonus(_level).pause(); }; } public function drawBonusLevel(_arg1:int):void{ var row = _arg1; prepLevel(); _isBonusLevel = true; _level = _mapPack.loadBonusLevel(row, _renderer); _level.draw(); _level.addEventListener(LevelBonus.LEVEL_OVER, function (_arg1:Event):void{ endBonusLevel(); }); _currentPlayerData = _player.getBonusLevel(_mapPack.id, _mapPack.bonusLevel); _hud.setBonusLevelText(LevelBonus(_level).title); _hud.setBestScore((_currentPlayerData.score as Number)); _hud.setTargetText(LevelBonus(_level).targetScore); _scores.isBonusLevel = true; _squirrels.addEventListener(SquirrelManager.SHOT_COMPLETE, onBonusShotComplete); } private function onTweenCompleteRemove(_arg1:DisplayObject):void{ if (contains(_arg1)){ removeChild(_arg1); }; } public function get scores():Scores{ return (_scores); } private function onKeyPress(_arg1:KeyboardEvent):void{ _arg1.stopPropagation(); if (_arg1.keyCode == KeyCode.E){ endCurrentLevel(); }; if (_arg1.keyCode == KeyCode.R){ resetLevel(); }; if (_arg1.keyCode == KeyCode.P){ showPauseMenu(); }; if (_arg1.keyCode == KeyCode.S){ _squirrels.endCurrentShot(); }; if (_arg1.keyCode == KeyCode.Q){ if (_isMiniGame){ Main.current.showLevelBrowser(MiniGames.id); } else { Main.current.showLevelBrowser(_mapPack.id); }; }; } private function onMouseClick(_arg1:MouseEvent):void{ _cannon.fire(_arg1.stageX, _arg1.stageY); _scores.startShotTimer(); } public function get squirrels():SquirrelManager{ return (_squirrels); } public function onBirdHit(_arg1:Bird):void{ _scores.birdHit(); _scores.addScore(Scores.BIRD_HIT); _hud.birdHit(_arg1.x, _arg1.y, Scores.BIRD_HIT); var _local2:Number = Utility.distanceBetweenPoints(new Point(_arg1.x, _arg1.y), new Point(_cannon.x, _cannon.y)); if ((((_local2 > (Main.GAME_WIDTH * 0.75))) && (!(_isBonusLevel)))){ _hud.rewardMessage("Nice Shot!"); }; } public function get isMiniGame():Boolean{ return (_isMiniGame); } private function onFireModeComplete(_arg1:TimerEvent):void{ _level.nuts.turnOnBounce(); _fireModeTimer.stop(); _fireModeTimer.reset(); _squirrels.stopFireMode(); } public function prepLevel():void{ _hud = new GameHud(_renderer.getLayer(Renderer.HUD_LAYER)); _hud.draw(); _isGameEnded = false; _scores.levelReset(); _birds.isCollidable = true; _fireModeTimer.reset(); _cannon.multiBall = false; if (_isTesting){ _cannon.multiBall = true; }; _cannon.canFire = true; _cannon.fired = false; _levelTimer = new Timer(1000); _levelTimer.start(); _hud.starMeter.changeMultiplier(0); } private function onScoreSubmitClick(_arg1:Event):void{ _leaderBoard = new ScoresPanel(); addChild(_leaderBoard); _leaderBoard.addEventListener(ScoresPanel.EVENT_DONE, onLeaderboardDone, false, 0, true); } public function drawEditorLevel(_arg1:Object):void{ prepLevel(); _isTesting = true; _mapPack = new MapPack([_arg1]); _mapPack.id = 100; _editedLevel = true; drawStandardLevel(1); } public function get boundryGroup():Group{ return (_boundryGroup); } public function endLevel():void{ var _local1:Timer; var _local2:Timer; _levelTimer.stop(); _bigNut.hide(); _cannon.canFire = false; _level.nuts.isCollidable = false; _isGameEnded = true; _hud.setScoreText(_scores.levelScore); _player.saveLevel(_mapPack.id, _mapPack.levelNumber, _scores.levelScore, _levelTimer.currentCount, _scores.getMedals()); if (((!(_currentPlayerData.score)) || ((_scores.levelScore > _currentPlayerData.score)))){ _local1 = new Timer(1500, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, _hud.showPersonalBest, false, 0, true); _local1.start(); _timers.push(_local1); } else { _local2 = new Timer(1500, 1); _local2.addEventListener(TimerEvent.TIMER_COMPLETE, showEndLevel, false, 0, true); _local2.start(); _timers.push(_local2); }; } public function drawNextLevel():void{ if (_mapPack.isNextLevelBonus){ drawBonusLevel(_mapPack.getNextBonusLevelNumber()); } else { drawLevel(_mapPack.getNextLevelNumber()); }; } public function draw(_arg1:Event):void{ var edit:SimpleButton; var b:Sprite; var t:TextField; var e = _arg1; Main.log("Game: draw start"); removeEventListener(Event.ADDED_TO_STAGE, draw); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPress, false, 0, true); addEventListener(MouseEvent.CLICK, onMouseClick, false, 0, true); _renderer = new Renderer(this, Main.GAME_WIDTH, Main.GAME_HEIGHT); APEngine.init((1 / 8)); APEngine.container = _renderer.gameLayer; _boundryGroup = new Group(false); APEngine.addGroup(_boundryGroup); _floor = new RectangleParticle((Main.GAME_WIDTH / 2), (Main.GAME_HEIGHT + 15), Main.GAME_WIDTH, 30, 0, true); _floor.visible = false; _floor.sprite.name = "floor"; _floor.elasticity = 1; _boundryGroup.addParticle(_floor); _ceiling = new RectangleParticle((Main.GAME_WIDTH * 0.5), -75, (Main.GAME_WIDTH + 200), 150, 0, true); _ceiling.visible = false; _ceiling.sprite.name = "ceiling"; _boundryGroup.addParticle(_ceiling); _leftWall = new RectangleParticle(-75, (Main.GAME_HEIGHT * 0.5), 150, Main.GAME_HEIGHT, 0, true); _leftWall.visible = false; _leftWall.sprite.name = "left_wall"; _boundryGroup.addParticle(_leftWall); _rightWall = new RectangleParticle((Main.GAME_WIDTH + 75), (Main.GAME_HEIGHT * 0.5), 150, Main.GAME_HEIGHT, 0, true); _rightWall.visible = false; _rightWall.sprite.name = "right_wall"; _boundryGroup.addParticle(_rightWall); _bigNutGroup = new Group(false); APEngine.addGroup(_bigNutGroup); _squirrels = new SquirrelManager(this, _renderer.foregroundLayer); _squirrels.group.addCollidable(_bigNutGroup); _birds = new BirdManager(_renderer.gameLayer); _birds.addEventListener(BirdManager.BIRD_HIT, onBirdHit); _scores = new Scores(this); _fireModeTimer = new Timer(1000); _fireModeTimer.repeatCount = Scores.FIRE_MODE_LENGTH; _fireModeTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onFireModeComplete, false, 0, true); _grass = _mapPack.getGround(); _renderer.foregroundLayer.addChild(_grass); _particles = _mapPack.getParticles(); _particles.draw(_renderer.backgroundLayer2); _cannon = new Cannon(); _cannon.draw(_renderer.gameLayer); _cannon.x = ((Main.GAME_WIDTH - 50) - _cannon.width); _cannon.y = (Main.GAME_HEIGHT - _cannon.height); _cannon.canFire = false; _cannon.addEventListener(CannonEvent.FIRED, onShotFired, false, 0, true); _bigNut = new BigNut(_bigNutGroup); _bigNut.y = (Main.GAME_HEIGHT + (_bigNut.height * 0.5)); _bigNut.x = -100; _renderer.gameLayer.addChild(_bigNut); _bigNut.draw(); _bigNut.addEventListener(BigNut.EVENT_HIT, onBigNutHit, false, 0, true); if (Main.debug){ edit = new SimpleButton(); b = new Sprite(); b.graphics.lineStyle(1, 0xFFFFFF); b.graphics.beginFill(11154227); b.graphics.drawRect(0, 0, 80, 20); t = new TextField(); t.text = "edit"; t.height = 20; t.x = ((b.width / 2) - t.textWidth); t.y = 5; b.addChild(t); b.alpha = 0.4; edit.upState = b; edit.downState = b; edit.overState = b; edit.hitTestState = b; edit.x = 80; edit.y = (stage.stageHeight - 31); addChild(edit); edit.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ _arg1.stopPropagation(); Main.current.showLevelEditor(_mapPack.levelData); }); }; if (Main.debug){ _stats = new Stats(); }; Main.log("Game: draw end"); } public function resetLevel():void{ if (_isBonusLevel){ destroyLevel(); drawBonusLevel(_mapPack.bonusLevel); } else { if (_isMiniGame){ destroyLevel(); drawMiniLevel(MiniGames.instance.currentLevel); } else { destroyLevel(); drawLevel(_mapPack.levelNumber); }; }; } public function startFireMode():void{ if (_fireModeTimer.running){ _fireModeTimer.reset(); }; _level.nuts.turnOffBounce(); _squirrels.startFireMode(); _fireModeTimer.start(); _hud.rewardMessage("FIRE MODE ON!"); } public function showEndLevel(_arg1:TimerEvent=null):void{ Main.log("Game: Show end level"); if (_arg1){ _arg1.target.removeEventListener(TimerEvent.TIMER_COMPLETE, showEndLevel); }; _endLevel = new EndLevelPanel(_mapPack.id, _mapPack.levelNumber, _mapPack.levelData, _currentPlayerData); addChild(_endLevel); _endLevel.addEventListener(EndLevelPanel.EVENT_SUBMIT_CLICK, onScoreSubmitClick, false, 0, true); } public function drawMiniLevel(_arg1:int=0):void{ var num = _arg1; prepLevel(); _isMiniGame = true; _level = MiniGames.instance.load(_renderer, num); _level.draw(); _level.addEventListener(LevelBonus.LEVEL_OVER, function (_arg1:Event):void{ endMiniLevel(); }); _hud.setBonusLevelText(LevelBonus(_level).title); _scores.isBonusLevel = true; _hud.targetClip.visible = false; _squirrels.addEventListener(SquirrelManager.SHOT_COMPLETE, onBonusShotComplete); } public function onNutHit(_arg1:NutEvent):void{ var _local6:Point; var _local7:Sprite; var _local8:Number; var _local2:Nut = _arg1.nut; _scores.nutHit(); var _local3:Number = _scores.currentNutScore; var _local4:uint; if (_bigNutHasBeenHit){ _scores.bigNutBonusNutCount++; _local3 = (_local3 + Scores.BIGNUT_BONUS_NUT); _local4 = 14496563; }; _hud.showPegHitScore(_arg1.nut.x, _arg1.nut.y, _local3, _local4); if (_isBonusLevel){ _scores.addScore(1000); return; }; var _local5:Number = 0; if (_local2.type == Nut.GEM_NUT){ _local5 = Scores.NUTGEM_STARS; } else { switch (_scores.nutsHitCurrentShot){ case 3: _local5 = 2; break; case 6: _local5 = 3; break; case 9: _local5 = 4; case 12: _local5 = 6; }; }; if (_local5 > 0){ _local6 = new Point(((_arg1.nut.x + (_arg1.nut.width / 2)) + 5), ((_arg1.nut.y + (_arg1.nut.height / 2)) - 4)); if (_scores.multiplier < _scores.multiplierMax){ _scores.addMultiplier(_local5); _hud.starMeter.changeMultiplier(_scores.multiplier); if (_local2.type == Nut.GEM_NUT){ _hud.showGemStar(_local6, Scores.NUTGEM_STARS.toString()); } else { _hud.showStar(_local6, _local5.toString(), Star.BONUS_STARS); }; if ((((((((_mapPack.levelNumber == 1)) && (!(_hasMultiplierBubbleShown)))) && (_hasShotEndedAndStarBubbleShown))) && (!(_isBonusLevel)))){ _local7 = Main.assets.meterBubble; _local7.x = ((Main.GAME_WIDTH - _local7.width) - 20); _local7.y = 40; addChild(_local7); TweenMax.to(_local7, 0.5, {delay:3, alpha:0, onComplete:onTweenCompleteRemove, onCompleteParams:[_local7]}); _hasMultiplierBubbleShown = true; }; } else { if (_local2.type == Nut.GEM_NUT){ _local8 = Scores.NUTGEM_BONUS; } else { _local8 = (_local5 * Scores.MULTIPLIER_BONUS); }; _scores.addScore(_local8); _hud.showStar(_local6, Utility.commafy(_local8), Star.BONUS_POINTS); }; if (Rnd.boolean(0.1)){ Main.assets.playSquirrelVoice(Assets.SOUND_SQ_CHEERS); }; } else { if (Rnd.boolean(0.025)){ Main.assets.playSquirrelVoice(Assets.SOUND_SQ_ALL); }; }; if (_scores.nutsHit == _randomNutForBonus){ if ((((((_mapPack.levelNumber == 1)) && ((_scores.bigNutsHit == 0)))) && (!(_isBonusLevel)))){ _bigNut.show(true); _hasStarBubbleShown = true; } else { _bigNut.show(); }; }; if ((((_level.nuts.count > 10)) && ((_birds.count == 0)))){ _birds.randomChanceSpawn(); }; if (_level.nuts.count == 0){ _level.turnOffWalls(); _level.turnOffPegs(); _hud.rewardMessage("Good Job!"); }; } public function get mapPack():MapPack{ return (_mapPack); } public function destroyLevel():void{ Main.log("Game: Destroy Level"); _squirrels.removeEventListener(SquirrelManager.SHOT_COMPLETE, onBonusShotComplete); _squirrels.removeEventListener(SquirrelManager.SHOT_COMPLETE, onShotComplete); _level.destroy(); _level = null; _squirrels.reset(); _birds.clear(); if (((_endLevel) && (contains(_endLevel)))){ removeChild(_endLevel); _endLevel = null; }; if (((_endBonusLevel) && (contains(_endBonusLevel)))){ removeChild(_endBonusLevel); _endBonusLevel = null; }; if (((_leaderBoard) && (contains(_leaderBoard)))){ removeChild(_leaderBoard); _leaderBoard = null; }; if (_pauseMenu){ _pauseMenu.parent.removeChild(_pauseMenu); _pauseMenu = null; }; Main.sound.stopSound(Assets.SOUND_RISE); Main.sound.stopSound(Assets.SOUND_BAWONG); Main.sound.stopSound(Assets.SOUND_FANFARE); _randomNutForBonus = 0; _hasShownCrazyGoNuts = false; _hasShotEndedAndStarBubbleShown = false; _hasStarBubbleShown = false; _scores.levelReset(); TweenMax.killAllTweens(); TweenMax.killAllDelayedCalls(); _bigNut.hide(); _hud.destroy(); _hud = null; _isBonusLevel = false; } public function drawLevel(_arg1:Number):void{ prepLevel(); drawStandardLevel(_arg1); } public function resumeGame():void{ TweenMax.resumeAll(); _gamePaused = false; _cannon.canFire = true; _squirrels.resume(); _fireModeTimer.start(); _levelTimer.start(); if (((_isBonusLevel) || (_isMiniGame))){ LevelBonus(_level).resume(); }; } public function get renderer():Renderer{ return (_renderer); } private function onBigNutHit(_arg1:Event):void{ _scores.bigNutHit(); var _local2:Number = (Scores.BIGNUT_BONUS * _scores.bigNutsHit); _scores.addScore(_local2); _scores.addMultiplier(Scores.BIGNUT_MULTIPLIER); _hud.starMeter.changeMultiplier(_scores.multiplier); var _local3:Point = new Point(_bigNut.x, (_bigNut.y - 5)); _hud.showStar(_local3, String(Scores.BIGNUT_MULTIPLIER), Star.BONUS_STARS); _bigNutHasBeenHit = true; if ((_scores.nutsHit + 5) < (_mapPack.levelData.nutCount - 5)){ _randomNutForBonus = Rnd.integer((_scores.nutsHit + 5), (_mapPack.levelData.nutCount - 5)); }; } public function update(_arg1:Event):void{ if (!_gamePaused){ APEngine.step(); APEngine.step(); APEngine.paint(); }; _cannon.update(stage.mouseX, stage.mouseY); _scores.update(); _squirrels.update(); _level.update(); _birds.update(); _bigNut.update(); _hud.update(); _renderer.update(); } private function onLeaderboardDone(_arg1:Event):void{ _endLevel.show(); } public function drawNextMiniLevel():void{ drawMiniLevel(MiniGames.instance.nextLevel()); } public function get birds():BirdManager{ return (_birds); } public function get isGameEnded():Boolean{ return (_isGameEnded); } private function endBonusLevel():void{ _cannon.canFire = false; _birds.isCollidable = false; _isGameEnded = true; _hud.setScoreText(_scores.levelScore); _player.saveBonusLevel(_mapPack.id, _mapPack.bonusLevel, _scores.levelScore, 0); LevelBonus(_level).timer.stop(); showEndBonusLevel(); } public function drawStandardLevel(_arg1:Number):void{ _level = _mapPack.loadLevel(_arg1, _renderer); _level.draw(); _currentPlayerData = _player.getLevel(_mapPack.id, _mapPack.levelNumber); _scores.setMedals(_currentPlayerData); _hud.setLevelText(_mapPack.levelNumber); _hud.setBestScore((_currentPlayerData.score as Number)); _hud.setTargetText(_mapPack.levelData.targetScore); _hud.setTargetShots(10); _scores.isBonusLevel = false; _isBonusLevel = false; _scores.setStarCount(_mapPack.levelData.starCount); _randomNutForBonus = Rnd.integer(3, 20); if (_currentPlayerData.score >= _mapPack.levelData.targetScore){ _hud.showStartLevelText(_mapPack.levelNumber, _currentPlayerData.score, true); } else { _hud.showStartLevelText(_mapPack.levelNumber, _mapPack.levelData.targetScore, false); }; _squirrels.addEventListener(SquirrelManager.SHOT_COMPLETE, onShotComplete, false, 0, true); } public function endMiniGame():void{ } public function endMiniLevel():void{ var _local1:MiniGameEndPanel; _cannon.canFire = false; _birds.isCollidable = false; _isGameEnded = true; _hud.setScoreText(_scores.levelScore); if (LevelBonus(_level).started){ LevelBonus(_level).endLevel(); LevelBonus(_level).timer.stop(); return; }; _scores.addTotalMiniGameScore(_scores.levelScore); _player.saveMiniGameScore(_scores.miniGameScore); if (MiniGames.instance.isEnd){ _local1 = new MiniGameEndPanel(); addChild(_local1); } else { _endMiniLevel = new MiniGamePanel(LevelBonus(_level).title); addChild(_endMiniLevel); }; } public function onBonusShotComplete(_arg1:Event):void{ if (!LevelBonus(_level).started){ return; }; _scores.shotReset(); _scores.stopShotTimer(); _scores.totalShots++; _cannon.fired = false; _cannon.canFire = true; } private function onShotComplete(_arg1:Event):void{ var _local3:Timer; _scores.shotScore = (_scores.shotScore + (_scores.nutsHitCurrentShot * _scores.currentNutScore)); if (_bigNutHasBeenHit){ _scores.shotScore = (_scores.shotScore + (_scores.bigNutBonusNutCount * Scores.BIGNUT_BONUS_NUT)); }; var _local2:int = _scores.levelScore; _scores.addScore(_scores.shotScore); if (((((((((!((_currentPlayerData.score == 0))) && ((_currentPlayerData.score > _mapPack.levelData.targetScore)))) && ((_local2 <= _currentPlayerData.score)))) && ((_scores.levelScore > _currentPlayerData.score)))) && ((_level.nuts.count > 1)))){ _hud.showGameMessage("You Beat Your \nPersonal Best!"); } else { if ((((((_local2 <= _mapPack.levelData.targetScore)) && ((_scores.levelScore > _mapPack.levelData.targetScore)))) && ((_currentPlayerData.score < _mapPack.levelData.targetScore)))){ _hud.showGameMessage("You Beat The \nTarget Score!"); }; }; _scores.stopShotTimer(); if (_scores.shotTime > _scores.longestHangTime){ _scores.longestHangTime = _scores.shotTime; }; if (_scores.nutsHitCurrentShot > _scores.mostNutsHit){ _scores.mostNutsHit = _scores.nutsHitCurrentShot; }; _scores.totalShots++; if (_hasStarBubbleShown){ _hasShotEndedAndStarBubbleShown = true; }; if (_scores.nutsHitCurrentShot > 0){ _hud.showShotMessage(_scores.shotScore, _scores.nutsHitCurrentShot); } else { _scores.missedBalls++; }; _scores.shotReset(); _bigNutHasBeenHit = false; if (_level.nuts.count == 0){ endLevel(); return; }; if ((((_scores.missedBalls >= _goCrazyMissedLimit)) && ((_level.nuts.count < _goCrazyPegLimit)))){ _cannon.multiBall = true; if (!_hasShownCrazyGoNuts){ _local3 = new Timer(300, 1); _local3.addEventListener(TimerEvent.TIMER_COMPLETE, _hud.showCrazyGoNuts, false, 0, true); _local3.start(); _timers.push(_local3); _hasShownCrazyGoNuts = true; }; } else { _cannon.multiBall = false; }; _cannon.fired = false; _cannon.canFire = true; if (_isTesting){ _cannon.multiBall = true; }; } private function onShotFired(_arg1:CannonEvent):void{ _scores.shotFired(); } public function get hud():GameHud{ return (_hud); } public function showPauseMenu():void{ pauseGame(); if (!_pauseMenu){ _pauseMenu = new PausePanel(); _pauseMenu.draw(_renderer.uiLayer); }; _pauseMenu.show(); } public function destroy(_arg1:Event):void{ var _local2:Timer; Main.log("Game: begin destroy"); removeEventListener(Event.ENTER_FRAME, update); removeEventListener(Event.REMOVED_FROM_STAGE, destroy); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPress); removeEventListener(MouseEvent.CLICK, onMouseClick); destroyLevel(); _boundryGroup.removeParticle(_leftWall); _boundryGroup.removeParticle(_rightWall); _boundryGroup.removeParticle(_floor); _boundryGroup.removeParticle(_ceiling); APEngine.removeGroup(_boundryGroup); _boundryGroup = null; _ceiling.cleanup(); _ceiling = null; _floor.cleanup(); _floor = null; _rightWall.cleanup(); _rightWall = null; _leftWall.cleanup(); _leftWall = null; if (_cannon){ _cannon.removeEventListener(CannonEvent.FIRED, onShotFired); _cannon.destroy(); }; _cannon = null; if (_bigNut){ _bigNut.destroy(); }; _bigNut.removeEventListener(BigNut.EVENT_HIT, onBigNutHit); _bigNut = null; _pauseMenu = null; if (((_multiplierBubble) && (contains(_multiplierBubble)))){ removeChild(_multiplierBubble); }; _multiplierBubble = null; APEngine.container = null; APEngine.removeAllForce(); TweenMax.killAllTweens(); TweenMax.killAllDelayedCalls(); for each (_local2 in _timers) { if (_local2 != null){ _local2.stop(); }; }; _timers = null; if (_levelTimer){ _levelTimer.stop(); _levelTimer = null; }; if (((_stats) && (contains(_stats)))){ removeChild(_stats); }; _stats = null; Main.sound.stopAllSounds(); Main.log("Game: end destroy"); } public function showEndBonusLevel(_arg1:TimerEvent=null):void{ if (_arg1){ _arg1.target.removeEventListener(TimerEvent.TIMER_COMPLETE, showEndBonusLevel); }; _endBonusLevel = new EndBonusPanel(_mapPack.id, _mapPack.bonusLevel, _mapPack.levelData, _currentPlayerData); addChild(_endBonusLevel); _endBonusLevel.addEventListener(EndBonusPanel.EVENT_SUBMIT_CLICK, onScoreSubmitClick, false, 0, true); } public function get cannon():Cannon{ return (_cannon); } } }//packageSection 383//GameHud (GameHud) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import com.gskinner.utils.*; import gs.easing.*; import flash.ui.*; public class GameHud extends Sprite { private var _extraScore:TextField; private var _scoreClip:Sprite; private var _text:Text; private var _canvas:DisplayObjectContainer; private var _bestText:TextField; private var _emittersToRenderers:Dictionary; private var _menuButton:SimpleButton; private var _pops:Array; private var _targetClip:Sprite; private var _bestClip:Sprite; private var _goalContainer:Sprite; private var _shots:TextField; private var _scores:Scores; private var _shotMessages:Array; private var _timersToShotMessages:Dictionary; private var _game:Game; private var _countDown:TextField; private var _starMeter:StarMeter; private var _levelText:TextField; private var _menuButtonContainer:Sprite; private var _soundButton:MuteButton; private var _scoreText:TextField; private var _timers:Array; private var _goalTimer:Timer; private var _shotMessageTimer:Timer; private var _fireWorks:FireWorks; private var _targetText:TextField; private var _isGoalFlipped:Boolean; public function GameHud(_arg1:DisplayObjectContainer):void{ _timersToShotMessages = new Dictionary(true); _emittersToRenderers = new Dictionary(); super(); _canvas = _arg1; _pops = []; _timers = []; _game = Main.current.game; _scores = _game.scores; _text = Main.text; _canvas.addChild(this); } public function showGemStar(_arg1:Point, _arg2:String):void{ var _local3:Sprite; var _local4:Point; var _local5:Star; _local4 = new Point((Main.GAME_WIDTH - 20), 60); _local5 = new Star(_arg2, Star.BONUS_STARS); _local5.draw(this, _arg1, _local4); } public function drawLevelTimer(_arg1:int):void{ if (((_countDown) && (_countDown.parent))){ _countDown.parent.removeChild(_countDown); }; _countDown = _text.getText(":", {size:36, font:Text.BLOCKTBOLD, color:Text.PURPLE, borderSize:8, borderColor:1644058}); addChild(_countDown); updateTimer(_arg1); _countDown.y = 20; _countDown.x = ((Main.GAME_WIDTH - _countDown.width) - 20); } public function showBonusLevelStart(_arg1:String, _arg2:String, _arg3:Function=null):void{ var title = _arg1; var message = _arg2; var callback = _arg3; var bonus:Sprite = Main.text.startLevelText(title); addChild(bonus); Utility.centerClip(bonus); bonus.y = (bonus.y - 50); var shoot:Sprite = Main.text.bonusShoot(message); addChild(shoot); Utility.centerClip(shoot); shoot.y = (bonus.y + bonus.height); new TweenGroup([{target:bonus, delay:0.5, time:0.5, runBackwards:true, y:"-75", alpha:0}, {target:bonus, time:0.5, delay:3, y:"-50", alpha:0, onComplete:function ():void{ showLevelGo(0); callback(); }}], TweenMax, TweenGroup.ALIGN_SEQUENCE); new TweenGroup([{target:shoot, delay:0.5, time:0.5, runBackwards:true, y:"75", alpha:0}, {target:shoot, time:0.5, delay:3, y:"50", alpha:0}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } public function destroy():void{ var _local1:MovieClip; var _local2:Timer; for each (_local1 in _pops) { if (contains(_local1)){ removeChild(_local1); }; }; _pops = null; if (contains(_goalContainer)){ removeChild(_goalContainer); }; _goalContainer = null; TweenMax.killTweensOf(_targetClip); TweenMax.killTweensOf(_bestClip); _targetClip = null; _bestClip = null; _levelText = null; _goalTimer.stop(); _goalTimer.removeEventListener(TimerEvent.TIMER, onFlipGoals); _goalTimer = null; if (contains(_starMeter)){ removeChild(_starMeter); }; _starMeter.destroy(); _starMeter = null; if (_shotMessageTimer){ _shotMessageTimer.stop(); _shotMessageTimer = null; }; for each (_local2 in _timers) { if (_local2 != null){ _local2.stop(); }; }; _timers = null; if (_menuButton){ _menuButton.removeEventListener(MouseEvent.MOUSE_OVER, onMenuButtonOver); _menuButton.removeEventListener(MouseEvent.MOUSE_OUT, onMenuButtonOut); _menuButton.removeEventListener(MouseEvent.CLICK, onMenuButtonClick); if (_menuButtonContainer.contains(_menuButton)){ _menuButtonContainer.removeChild(_menuButton); }; }; _menuButton = null; if (contains(_menuButtonContainer)){ removeChild(_menuButtonContainer); }; _menuButtonContainer = null; if (contains(_soundButton)){ removeChild(_soundButton); }; _soundButton = null; _game = null; _scores = null; _canvas = null; if (this.parent){ this.parent.removeChild(this); }; } public function updateTimer(_arg1:int):void{ var _local2:String = _arg1.toString(); if (_arg1 < 10){ _local2 = ("0" + _arg1.toString()); }; _countDown.text = (":" + _local2); } public function setTargetText(_arg1:Number):void{ _targetText.text = ("Target Score: " + Utility.commafy(_arg1)); _targetText.width = _targetText.width; _targetClip.getChildByName("gradient").width = _targetText.width; _targetClip.getChildByName("gradient").height = _targetText.height; } public function setTargetShots(_arg1:int):void{ } private function createSoundButton():void{ _soundButton = new MuteButton(); _soundButton.x = 40; _soundButton.y = (Main.GAME_HEIGHT - 31); addChild(_soundButton); _soundButton.updateState(); } public function setLevelText(_arg1:Number):void{ _levelText.text = ("LEVEL: " + MapPack.getStageString(_arg1)); } public function get targetClip():Sprite{ return (_targetClip); } public function awardMedal(_arg1:String):void{ var _local2:MessageMedal = new MessageMedal(_arg1); _local2.draw(this); } public function setScoreText(_arg1:Number):void{ _scoreText.text = Utility.commafy(_arg1); _scoreText.x = ((Main.GAME_WIDTH * 0.5) - (_scoreText.width * 0.5)); } private function createMenuButton():void{ _menuButton = new SimpleButton(); _menuButton.upState = Main.assets.gear; _menuButton.downState = Main.assets.gear; _menuButton.overState = Main.assets.gear; _menuButton.hitTestState = Main.assets.gear; _menuButtonContainer = new Sprite(); _menuButtonContainer.addChild(_menuButton); _menuButton.x = (-(_menuButton.width) / 2); _menuButton.y = (-(_menuButton.height) / 2); _menuButtonContainer.x = 20; _menuButtonContainer.y = (Main.GAME_HEIGHT - 20); _menuButtonContainer.alpha = 0.6; addChild(_menuButtonContainer); _menuButton.addEventListener(MouseEvent.MOUSE_OVER, onMenuButtonOver, false, 0, true); _menuButton.addEventListener(MouseEvent.MOUSE_OUT, onMenuButtonOut, false, 0, true); _menuButton.addEventListener(MouseEvent.CLICK, onMenuButtonClick, false, 0, true); } public function get targetShots():DisplayObject{ return (_shots); } private function rotateMenuButton(_arg1:Event):void{ _menuButtonContainer.rotation = (_menuButtonContainer.rotation + 3); } public function endBonusLevelText(_arg1:String="TIMES UP!"):void{ var _local2:Sprite = Main.text.startLevelText(_arg1); addChild(_local2); Utility.centerClip(_local2); _local2.y = (_local2.y - 50); var _local3:Point = new Point(_local2.x, _local2.y); _local2.scaleX = 0; _local2.scaleY = 0; Utility.centerClip(_local2); var _local4:TweenGroup = new TweenGroup([{target:_local2, time:0.5, scaleX:1, scaleY:1, x:_local3.x, y:_local3.y}, {target:_local2, time:0.5, delay:2, y:"-50", alpha:0, onComplete:onTweenCompleteRemove, onCompleteParams:[_local2]}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } public function birdHit(_arg1:Number, _arg2:Number, _arg3:int):void{ var _local4:TextField; _local4 = _text.getText(("+" + Utility.commafy(_arg3)), {size:18, color:0xFF00FF, borderSize:4, borderColor:0xFFFFFF}); _local4.x = (_arg1 - (_local4.width * 0.5)); _local4.y = (_arg2 - (_local4.height * 0.5)); addChild(_local4); TweenMax.to(_local4, 0.7, {alpha:0, y:"-15", onComplete:onTweenCompleteRemove, onCompleteParams:[_local4]}); } public function showPegHitScore(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:uint=0):void{ var _local5:TextField; _local5 = Main.text.pegText(("+" + _arg3), _arg4); _local5.x = (_arg1 - (_local5.width * 0.5)); _local5.y = (_arg2 - (_local5.height * 0.5)); addChild(_local5); TweenMax.to(_local5, 0.7, {alpha:0, y:(_arg2 - 15), onComplete:onTweenCompleteRemove, onCompleteParams:[_local5]}); } private function onMenuButtonOut(_arg1:MouseEvent):void{ TweenMax.to(_menuButtonContainer, 0.3, {alpha:0.6}); _menuButtonContainer.removeEventListener(Event.ENTER_FRAME, rotateMenuButton); } private function onMenuButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); Main.current.game.showPauseMenu(); } private function onFlipGoals(_arg1:TimerEvent):void{ if (_isGoalFlipped){ TweenMax.to(_bestClip, 0.5, {y:"17"}); TweenMax.to(_targetClip, 0.5, {y:"17"}); _isGoalFlipped = false; } else { TweenMax.to(_bestClip, 0.5, {y:"-17"}); TweenMax.to(_targetClip, 0.5, {y:"-17"}); _isGoalFlipped = true; }; } private function onMenuButtonOver(_arg1:MouseEvent):void{ TweenMax.to(_menuButtonContainer, 0.3, {alpha:1}); _menuButtonContainer.addEventListener(Event.ENTER_FRAME, rotateMenuButton, false, 0, true); } public function drawExtraScore(_arg1:String):void{ if (!_extraScore){ _extraScore = _text.getText(":", {size:36, font:Text.BLOCKTBOLD, color:Text.PURPLE, borderSize:8, borderColor:1644058}); _extraScore.y = 20; addChild(_extraScore); }; _extraScore.text = _arg1; _extraScore.x = ((Main.GAME_WIDTH - _extraScore.width) - 20); } public function update():void{ var _local1:MovieClip; for each (_local1 in _pops) { if (_local1.currentFrame == _local1.totalFrames){ if (contains(_local1)){ removeChild(_local1); }; _pops.slice(_pops.indexOf(_local1), 1); }; }; _starMeter.update(); } public function updateScore(_arg1:Number, _arg2:Number):void{ var currentScore = _arg1; var newScore = _arg2; Utility.countTo(currentScore, newScore, 1000, function (_arg1:Number):void{ if (!_game.isGameEnded){ setScoreText(_arg1); }; }); } public function draw():void{ _levelText = _text.getText("LEVEL: 1", {size:18, color:Text.PURPLE, borderSize:4, borderColor:1644058}); addChild(_levelText); _levelText.x = 20; _levelText.y = 15; _goalContainer = new Sprite(); _goalContainer.x = 20; _goalContainer.y = (_levelText.y + _levelText.height); addChild(_goalContainer); var _local1:Sprite = new Sprite(); _local1.graphics.beginFill(0); _local1.graphics.drawRect(0, 0, 300, 16); _local1.x = _goalContainer.x; _local1.y = _goalContainer.y; addChild(_local1); _goalContainer.mask = _local1; _bestClip = Main.text.bestText("Personal Best: "); _bestText = (_bestClip.getChildByName("text") as TextField); _bestClip.x = 0; _bestClip.y = 0; _goalContainer.addChild(_bestClip); _targetClip = Main.text.bestText("10,000"); _targetText = (_targetClip.getChildByName("text") as TextField); _targetClip.x = 0; _targetClip.y = (_bestClip.y + _bestClip.height); _goalContainer.addChild(_targetClip); _goalTimer = new Timer(7000); _goalTimer.addEventListener(TimerEvent.TIMER, onFlipGoals, false, 0, true); _goalTimer.start(); _scoreText = _text.getText("0", {size:32, color:Text.ORANGE, border:false, align:Text.CENTER, borderSize:7, borderColor:1644058}); _scoreText.y = 10; addChild(_scoreText); setScoreText(0); _shots = _text.getText("0", {size:22, font:Text.BLOCKTBOLD, color:0x555555}); _shots.x = ((Main.GAME_WIDTH - _shots.width) - 20); _shots.y = (Main.GAME_HEIGHT - 55); _starMeter = new StarMeter(); addChild(_starMeter); _starMeter.draw(); createMenuButton(); createSoundButton(); } public function showResetMessage():void{ var t:TextField = _text.getText("Press 'S' to reset a shot", {size:18, font:Text.BLOCKTBOLD, color:0x545454}); t.x = ((Main.GAME_WIDTH * 0.5) - (t.width * 0.5)); t.y = Main.GAME_HEIGHT; t.alpha = 0; addChild(t); var tw:TweenGroup = new TweenGroup([{target:t, time:0.5, y:((Main.GAME_HEIGHT - t.height) - 40), alpha:1}, {target:t, time:0.5, delay:2, y:Main.GAME_HEIGHT, alpha:0, onComplete:function (_arg1:DisplayObject):void{ _arg1.parent.removeChild(_arg1); }, onCompleteParams:[t]}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } public function reset():void{ _bestClip.y = 0; _targetClip.y = (_bestClip.y + _bestClip.height); _isGoalFlipped = false; starMeter.visible = true; starMeter.reset(); targetShots.visible = true; setScoreText(0); trace("reset game hud"); if (((_countDown) && (_countDown.parent))){ _countDown.parent.removeChild(_countDown); }; } public function get starMeter():StarMeter{ return (_starMeter); } public function setBestScore(_arg1:Number):void{ if (_arg1 > 0){ _bestText.text = ("Personal Best: " + Utility.commafy(_arg1)); } else { _bestText.text = "Personal Best: ---"; }; _bestClip.width = _bestText.width; _bestClip.height = _bestText.height; _bestClip.getChildByName("gradient").width = _bestText.width; _bestClip.getChildByName("gradient").height = _bestText.height; } private function onTweenCompleteRemove(_arg1:DisplayObject):void{ if (contains(_arg1)){ removeChild(_arg1); }; } public function rewardMessage(_arg1:String):void{ var _local2:Sprite = Main.text.rewardMessage(_arg1); addChild(_local2); Utility.centerClip(_local2); _local2.y = (_local2.y - 100); TweenMax.to(_local2, 1.5, {delay:0.5, alpha:0, y:"-30", onComplete:onTweenCompleteRemove, onCompleteParams:[_local2]}); } public function showCrazyGoNuts(_arg1:TimerEvent):void{ _arg1.target.removeEventListener(TimerEvent.TIMER_COMPLETE, showCrazyGoNuts); Main.sound.playSound(Assets.SOUND_LAUGH, 0.3); var _local2:Bitmap = new Assets.RapidFireMode(); addChild(_local2); _local2.y = 100; _local2.x = (Main.GAME_WIDTH + _local2.width); new TweenGroup([{target:_local2, time:0.5, x:((Main.GAME_WIDTH * 0.5) - (_local2.width / 2)), ease:Linear.easeIn}, {target:_local2, time:0.5, delay:1.5, x:-(_local2.width), ease:Linear.easeOut, onComplete:onTweenCompleteRemove, onCompleteParams:[_local2]}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } public function showNutPop(_arg1:Number, _arg2:Number):void{ var _local3:MovieClip = Main.assets.pop; _local3.x = _arg1; _local3.y = _arg2; _local3.alpha = 0.7; addChild(_local3); _local3.gotoAndPlay(0); _pops.push(_local3); Main.sound.playSound(Assets.SOUND_POP); } public function showOhNoText():void{ endBonusLevelText("OH NO!"); } public function showStartLevelText(_arg1:int, _arg2:int=500000, _arg3:Boolean=false):void{ var _local5:String; var _local4:TextField = _text.getText(("Level " + MapPack.getStageString(_arg1)), {size:68, color:Text.PURPLE, borderSize:12, borderColor:1644058, letterSpacing:-1}); addChild(_local4); _local4.x = ((Main.GAME_WIDTH * 0.5) - (_local4.width * 0.5)); _local4.y = (((Main.GAME_HEIGHT * 0.5) - (_local4.height * 0.5)) - 40); var _local6:String = Utility.commafy(_arg2); if (_arg3){ _local5 = "Beat your personal best of:"; } else { _local5 = "Clear the level with a score of:"; }; var _local7:TextField = _text.getText(_local5, {size:24, color:Text.ORANGE, align:Text.CENTER, borderSize:6, borderColor:1644058, leading:-5}); var _local8:TextField = _text.getText(_local6, {size:42, color:Text.PURPLE, align:Text.CENTER, borderSize:8, borderColor:1644058, leading:-10}); var _local9:Sprite = new Sprite(); _local9.addChild(_local7); _local9.addChild(_local8); addChild(_local9); _local7.x = ((_local9.width * 0.5) - (_local7.width * 0.5)); _local7.y = 0; _local8.x = ((_local9.width * 0.5) - (_local8.width * 0.5)); _local8.y = ((_local7.y + _local7.height) - 5); _local9.x = ((Main.GAME_WIDTH * 0.5) - (_local9.width * 0.5)); _local9.y = ((_local4.y + _local4.height) - 10); new TweenGroup([{target:_local4, delay:1, time:0.6, y:-(_local4.height), alpha:0, runBackwards:true}, {target:_local4, time:0.6, delay:2, x:"-580", blurFilter:{blurX:20}}], TweenMax, TweenGroup.ALIGN_SEQUENCE); new TweenGroup([{target:_local9, delay:1, time:0.6, y:Main.GAME_HEIGHT, alpha:0, runBackwards:true}, {target:_local9, time:0.6, delay:2, x:"-580", blurFilter:{blurX:20}}], TweenMax, TweenGroup.ALIGN_SEQUENCE); showLevelGo(4); } public function showStar(_arg1:Point, _arg2:String, _arg3:String):void{ var _local4:Sprite; var _local5:Point; var _local6:Star; if (_arg3 == Star.BONUS_STARS){ _local5 = new Point((Main.GAME_WIDTH - 20), 60); _local6 = new Star(_arg2, Star.BONUS_STARS); } else { _local5 = new Point((Main.GAME_WIDTH / 2), 60); _local6 = new Star(_arg2, Star.BONUS_POINTS); }; _local6.draw(this, _arg1, _local5); } public function showShotMessage(_arg1:Number, _arg2:Number):void{ var _local7:Sprite; if (((_shotMessages) && ((_shotMessages.length > 0)))){ for each (_local7 in _shotMessages) { TweenMax.to(_local7, 0.5, {alpha:0, y:"20", onComplete:onTweenCompleteRemove, onCompleteParams:[_local7]}); }; }; _shotMessages = []; var _local3:Bitmap = new Assets.NutNormal(); var _local4:TextField = _text.getText((("X " + _arg2) + " = "), {size:16, color:0xFFFFFF}); var _local5:TextField = _text.getText(Utility.commafy(_arg1), {size:18, color:0xFFFFFF}); var _local6:Container = new Container([_local3, _local4, _local5], Container.HORIZONTAL, Container.LEFT, {spacingX:0}); _local6.adjust(_local4, 0, 6); _local6.adjust(_local5, 0, 5); addChild(_local6); _local6.x = ((Main.GAME_WIDTH * 0.5) - (_local6.width * 0.5)); _local6.y = (_scoreText.height + 7); _shotMessages.push(_local6); TweenMax.from(_local6, 0.5, {alpha:0, y:"25"}); TweenMax.to(_local6, 0.5, {delay:2.5, alpha:0, y:"20", onComplete:onTweenCompleteRemove, onCompleteParams:[_local6]}); } public function showLevelGo(_arg1:Number=0.9):void{ var _local2:TextField = _text.getText("GO!", {size:68, color:Text.PURPLE, borderSize:12, borderColor:1644058, letterSpacing:-1}); addChild(_local2); Utility.centerClip(_local2); var _local3:Point = new Point(_local2.x, _local2.y); _local2.scaleX = 0; _local2.scaleY = 0; Utility.centerClip(_local2); new TweenGroup([{target:_local2, time:0.5, delay:_arg1, scaleX:1, scaleY:1, x:_local3.x, y:_local3.y}, {target:_local2, time:0.5, y:"-50", alpha:0, blurFilter:{blurY:15}}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } public function showGameMessage(_arg1:String):void{ var _local2:Message = new MessageText(_arg1); _local2.draw(this); } public function showPersonalBest(_arg1:TimerEvent=null):void{ var fireWorks:FireWorks; var congrats:Sprite; var pers:Sprite; var score:Sprite; var e = _arg1; if (e){ e.target.removeEventListener(TimerEvent.TIMER_COMPLETE, showPersonalBest); }; fireWorks = new FireWorks(); fireWorks.draw(this); congrats = Main.text.personalBestText1("CONGRATULATIONS"); addChild(congrats); Utility.centerClip(congrats); congrats.y = 200; pers = Main.text.personalBestText2("A New Personal Best!"); addChild(pers); Utility.centerClip(pers); pers.y = ((congrats.y + congrats.height) - 13); score = Main.text.personalBestText3(Utility.commafy(_scores.levelScore)); addChild(score); Utility.centerClip(score); score.y = ((pers.y + pers.height) + 5); var messageDelay:Number = 6; var congr_orig:Point = new Point(congrats.x, congrats.y); congrats.scaleX = 0; congrats.scaleY = congrats.scaleX; Utility.centerClip(congrats); new TweenGroup([{target:congrats, time:0.5, delay:0, scaleX:1, scaleY:1, x:congr_orig.x, y:congr_orig.y}, {target:congrats, time:0.5, delay:messageDelay, y:"50", alpha:0}], TweenMax, TweenGroup.ALIGN_SEQUENCE); var pers_orig:Point = new Point(pers.x, pers.y); pers.scaleX = 0; pers.scaleY = pers.scaleX; Utility.centerClip(pers); new TweenGroup([{target:pers, time:0.5, delay:0.3, scaleX:1, scaleY:1, x:pers_orig.x, y:pers_orig.y}, {target:pers, time:0.5, delay:(messageDelay - 0.3), y:"50", alpha:0}], TweenMax, TweenGroup.ALIGN_SEQUENCE); var score_orig:Point = new Point(score.x, score.y); score.scaleX = 0; score.scaleY = score.scaleX; Utility.centerClip(score); new TweenGroup([{target:score, time:0.5, delay:0.5, scaleX:1, scaleY:1, x:score_orig.x, y:score_orig.y}, {target:score, time:0.5, delay:(messageDelay - 0.5), y:"50", alpha:0, onComplete:function ():void{ removeChild(score); removeChild(pers); removeChild(congrats); fireWorks.destroy(); Main.sound.fadeSound(Assets.SOUND_FANFARE, 0, 0.5); _game.showEndLevel(); }}], TweenMax, TweenGroup.ALIGN_SEQUENCE); Main.sound.playSound(Assets.SOUND_FANFARE, 0.3); } public function setBonusLevelText(_arg1:String):void{ _levelText.text = _arg1; } } }//packageSection 384//KeyCode (KeyCode) package { public class KeyCode { public static const BACKWARD_SLASH:int = 220; public static const RIGHT:int = 39; public static const LEFT:int = 37; public static const SPACEBAR:int = 32; public static const FOUR:int = 52; public static const TWO:int = 50; public static const CLEAR:int = 12; public static const TILDE:int = 192; public static const CONTROL:int = 17; public static const NUMPAD_DECIMAL:int = 110; public static const A:int = 65; public static const B:int = 66; public static const C:int = 67; public static const D:int = 68; public static const E:int = 69; public static const F:int = 70; public static const G:int = 71; public static const H:int = 72; public static const I:int = 73; public static const J:int = 74; public static const K:int = 75; public static const L:int = 76; public static const M:int = 77; public static const N:int = 78; public static const O:int = 79; public static const P:int = 80; public static const Q:int = 81; public static const R:int = 82; public static const S:int = 83; public static const T:int = 84; public static const U:int = 85; public static const V:int = 86; public static const W:int = 87; public static const X:int = 88; public static const Y:int = 89; public static const Z:int = 90; public static const ONE:int = 49; public static const PAGE_UP:int = 33; public static const NUMPAD_ENTER:int = 108; public static const COLON:int = 186; public static const BACKSPACE:int = 8; public static const EIGHT:int = 56; public static const SHIFT:int = 16; public static const TAB:int = 9; public static const THREE:int = 51; public static const HELP:int = 47; public static const QUOTES:int = 222; public static const ALT:int = 18; public static const NUMPAD_ADD:int = 107; public static const ESC:int = 27; public static const F3:int = 114; public static const ZERO:int = 48; public static const F4:int = 115; public static const F5:int = 116; public static const F6:int = 117; public static const F7:int = 118; public static const NUMPAD_DIVIDE:int = 111; public static const F2:int = 113; public static const CLOSED_BRACKET:int = 221; public static const UP:int = 38; public static const NUMPAD_0:int = 96; public static const NUMPAD_1:int = 97; public static const NUMPAD_2:int = 98; public static const FIVE:int = 53; public static const SIX:int = 54; public static const NUMPAD_5:int = 101; public static const NUMPAD_6:int = 102; public static const NUMPAD_7:int = 103; public static const NUMPAD_SUBTRACT:int = 109; public static const NUMPAD_9:int = 105; public static const NUMPAD_3:int = 99; public static const NUMPAD_4:int = 100; public static const NINE:int = 57; public static const F9:int = 120; public static const NUMPAD_8:int = 104; public static const DOWN:int = 40; public static const F8:int = 119; public static const NUMPAD_MULTIPLY:int = 106; public static const EQUALS:int = 187; public static const F1:int = 112; public static const UNDERSCORE:int = 189; public static const HOME:int = 36; public static const DELETE:int = 46; public static const F10:int = 121; public static const F11:int = 122; public static const F12:int = 123; public static const F13:int = 124; public static const F14:int = 125; public static const F15:int = 126; public static const CAPS_LOCK:int = 20; public static const SEVEN:int = 55; public static const INSERT:int = 45; public static const END:int = 35; public static const OPEN_BRACKET:int = 219; public static const QUESTION_MARK:int = 191; public static const NUM_LOCK:int = 144; public static const PAGE_DOWN:int = 34; public static const ENTER:int = 13; } }//packageSection 385//Leaderboard (Leaderboard) package { import flash.events.*; import flash.text.*; import flash.display.*; import gs.*; import mochi.as3.*; public dynamic class Leaderboard extends MovieClip { private var _isMini:Boolean; private var _packNumber:Number; private var _back:Button; private var _boardID:Array; private var _background:Bitmap; private var _container:Sprite; private var _boardId:String; private var _scoreSubmit:Number; private var _title:String; private static const LB_HEIGHT:int = 300; public static const EVENT_CLOSE:String = "close"; private static const LB_WIDTH:int = 400; public function Leaderboard(_arg1:String, _arg2:String="Spring", _arg3:Number=0, _arg4:Boolean=false):void{ _boardID = new Array(); super(); _boardId = _arg1; _scoreSubmit = ((_arg3 > 0)) ? _arg3 : 0; _title = _arg2; _isMini = _arg4; addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); } public function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); MochiScores.closeLeaderboard(); } private function loadBoard():void{ if (_scoreSubmit){ MochiScores.showLeaderboard({boardID:_boardId, score:_scoreSubmit, res:"700x550", hideDoneButton:true, width:LB_WIDTH, height:LB_HEIGHT}); } else { MochiScores.showLeaderboard({boardID:_boardId, hideDoneButton:true, res:"700x550", width:LB_WIDTH, height:LB_HEIGHT}); }; } public function hide():void{ MochiScores.closeLeaderboard(); TweenMax.to(this, 0.5, {delay:0.1, y:-(this.height), onComplete:function ():void{ dispatchEvent(new Event(Leaderboard.EVENT_CLOSE)); }}); } public function draw(_arg1:Event):void{ var txt:String; var e = _arg1; removeEventListener(Event.ADDED_TO_STAGE, draw); _background = new Assets.WoodBackgroundLarge(); addChild(_background); _back = new Button(new Assets.BackButton(), Button.LIGHTEN); _back.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ hide(); }); _back.x = ((_background.width - _back.width) - 30); _back.y = ((_background.height - _back.height) - 20); _back.y = 21; addChild(_back); this.x = ((Main.GAME_WIDTH * 0.5) - (this.width * 0.5)); this.y = -(this.height); this.show(); var title:TextField = Text.instance.getText(String((_title + " Leaderboard")).toUpperCase(), {font:Text.BLOCKTREGCOND, size:36, color:0xFFFFFF, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); title.x = ((_background.width * 0.5) - (title.width * 0.5)); title.x = 30; title.y = 15; addChild(title); if (_isMini){ txt = "Submit your final score of the MiniGame mode!"; } else { txt = "Submit the total of your best scores for each level."; }; var desc:TextField = Text.instance.getText(txt, {font:Text.BLOCKTREG, size:18, color:0xFFFFFF, align:Text.CENTER, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); desc.x = ((_background.width * 0.5) - (desc.width * 0.5)); desc.y = ((_background.height - desc.height) - 20); addChild(desc); } public function show():void{ TweenMax.to(this, 0.5, {y:((Main.GAME_HEIGHT * 0.5) - (this.height * 0.5)), onComplete:function ():void{ loadBoard(); }}); } private function onBoardClose():void{ dispatchEvent(new Event(Leaderboard.EVENT_CLOSE)); } } }//packageSection 386//Level (Level) package { import flash.events.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; public class Level extends Sprite { private var _pegs:Array; protected var _background:Background; private var _levelData:Object; private var _emittersToRenderers:Dictionary; private var _wallGroup:Group; protected var _renderer:Renderer; protected var _nuts:NutManager; protected var _squirrelGroup:Group; private var _walls:Array; private var _timers:Array; private var _levelNumber:Number; private var _starBubbleShown:Boolean; private var _stage:Number; public static const WOOD_PEG:int = 8; public static const RUBBER_PEG:int = 9; public function Level(_arg1:Object, _arg2:Number, _arg3:Renderer):void{ _renderer = _arg3; _wallGroup = new Group(false); _levelData = _arg1; _levelNumber = _arg2; _stage = Math.ceil((_levelNumber / 5)); _timers = []; _emittersToRenderers = new Dictionary(true); _starBubbleShown = false; _pegs = []; _nuts = new NutManager(this); _squirrelGroup = Main.current.game.squirrels.group; _renderer.gameLayer.addChild(this); } public function turnOffPegs():void{ var _local1:RubberPeg; for each (_local1 in _pegs) { _local1.particle.collidable = false; }; } public function get nuts():NutManager{ return (_nuts); } public function update():void{ _background.update(); _nuts.update(); } public function get level():int{ return (_levelNumber); } public function draw():void{ var _local3:Array; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:RubberPeg; var _local9:WoodPeg; var _local10:Wall; var _local11:Trigger; APEngine.addGroup(_wallGroup); _squirrelGroup.addCollidable(_wallGroup); _background = new Background(_stage); _renderer.backgroundLayer1.addChild(_background); _background.draw(); var _local1:Number = Game.GRID_X; var _local2:Number = Game.GRID_Y; for each (_local3 in _levelData.nuts) { for each (_local7 in _local3) { _local5 = (_local1 + (Game.GRID_WIDTH * 0.5)); _local6 = (_local2 + (Game.GRID_HEIGHT * 0.5)); if (_local7 == Nut.NORMAL_NUT){ _nuts.spawnNut(Nut.NORMAL_NUT, _local5, _local6); } else { if (_local7 == Nut.FLAMING_NUT){ _nuts.spawnNut(Nut.FLAMING_NUT, _local5, _local6); } else { if (_local7 == Nut.CLONE_NUT){ _nuts.spawnNut(Nut.CLONE_NUT, _local5, _local6); } else { if (_local7 == Nut.GEM_NUT){ _nuts.spawnNut(Nut.GEM_NUT, _local5, _local6); } else { if (_local7 == RUBBER_PEG){ _local8 = new RubberPeg(_wallGroup); _local8.draw(this, _local5, _local6); _pegs.push(_local8); } else { if (_local7 == WOOD_PEG){ _local9 = new WoodPeg(_wallGroup); _local9.draw(this, _local5, _local6); _pegs.push(_local9); }; }; }; }; }; }; _local1 = (_local1 + Game.GRID_WIDTH); }; _local2 = (_local2 + Game.GRID_HEIGHT); _local1 = Game.GRID_X; }; _walls = []; for each (_local4 in _levelData.walls) { if (_local4.type == Wall.WOOD_WALL){ _local10 = new WallWood(_wallGroup); } else { if (_local4.type == Wall.WOOD_WALL_MOV){ _local10 = new WallWoodMov(_wallGroup); WallWoodMov(_local10).animateTo(new Point(_local4.animateTo.x, _local4.animateTo.y), _local4.speed); } else { if (_local4.type == Wall.RUBBER_WALL){ _local10 = new WallRubber(_wallGroup); } else { if (_local4.type == Wall.RUBBER_WALL_MOV){ _local10 = new WallRubberMov(_wallGroup); WallRubberMov(_local10).animateTo(new Point(_local4.animateTo.x, _local4.animateTo.y), _local4.speed); } else { if (_local4.type == Wall.TRIGGER_WALL){ _local11 = new Trigger(_wallGroup); _local11.draw(this, _local4.trigger.x, _local4.trigger.y, _local4.trigger.rotation); _local10 = new WallGate(_wallGroup, _local11); WallGate(_local10).setOpenPos(new Point(_local4.moveTo.x, _local4.moveTo.y), _local4.speed); }; }; }; }; }; _local10.draw(this, new Point(_local4.start.x, _local4.start.y), new Point(_local4.end.x, _local4.end.y)); _walls.push(_local10); }; } public function turnOffWalls():void{ var _local1:Wall; for each (_local1 in _walls) { _local1.particle.collidable = false; }; } public function get walls():Array{ return (_walls); } public function get pegs():Array{ return (_pegs); } public function destroy():void{ var _local1:RubberPeg; var _local2:Wall; var _local3:Timer; _levelData = null; _nuts.clear(); _nuts.destroy(); _nuts = null; for each (_local1 in _pegs) { _local1.destroy(); _local1 = null; }; _pegs = null; for each (_local2 in _walls) { _local2.remove(); _local2 = null; }; _walls = null; for each (_local3 in _timers) { _local3.stop(); }; _timers = null; _emittersToRenderers = null; _background.destroy(); _background = null; _wallGroup.cleanup(); _squirrelGroup.removeCollidable(_wallGroup); APEngine.removeGroup(_wallGroup); if (this.parent){ this.parent.removeChild(this); }; } public static function drawThumb(_arg1:Object):Sprite{ var _local7:int; var _local8:int; var _local9:Array; var _local10:Object; var _local11:int; var _local12:Bitmap; var _local13:Sprite; var _local14:BitmapData; if (!_arg1){ return (new Sprite()); }; var _local2:Bitmap = new Assets.SkyMorning(); var _local3:Sprite = new Sprite(); _local3.graphics.beginBitmapFill(_local2.bitmapData, null, true, true); _local3.graphics.drawRect(0, 0, Main.GAME_WIDTH, Main.GAME_HEIGHT); _local3.graphics.endFill(); var _local4:Matrix = new Matrix(); new Matrix().tx = (_local4.tx + 15); _local4.ty = (_local4.ty + 15); var _local5:Number = Game.GRID_X; var _local6:Number = Game.GRID_Y; for each (_local9 in _arg1.nuts) { for each (_local11 in _local9) { _local7 = (_local5 + (Game.GRID_WIDTH * 0.5)); _local8 = (_local6 + (Game.GRID_HEIGHT * 0.5)); if (_local11 == 0){ break; }; if (_local11 == Nut.NORMAL_NUT){ _local12 = new Assets.NutNormal(); } else { if (_local11 == Nut.FLAMING_NUT){ _local12 = new Assets.NutFire(); } else { if (_local11 == Nut.CLONE_NUT){ _local12 = new Assets.NutFire(); } else { if (_local11 == RUBBER_PEG){ _local12 = new Assets.RubberBall(); } else { if (_local11 == WOOD_PEG){ _local12 = new Assets.WoodPeg(); }; }; }; }; }; _local12 = new Assets.NutNormal(); _local3.graphics.beginBitmapFill(_local12.bitmapData, null, true, false); _local3.graphics.drawRect(_local7, _local8, _local12.width, _local12.height); _local3.graphics.endFill(); _local5 = (_local5 + Game.GRID_WIDTH); }; _local6 = (_local6 + Game.GRID_HEIGHT); _local5 = Game.GRID_X; }; for each (_local10 in _arg1.walls) { if (_local10.type == Wall.WOOD_WALL){ } else { if (_local10.type == Wall.WOOD_WALL_MOV){ } else { if (_local10.type == Wall.RUBBER_WALL){ } else { if (_local10.type == Wall.RUBBER_WALL_MOV){ } else { if (_local10.type == Wall.TRIGGER_WALL){ }; }; }; }; }; }; _local3.width = 150; _local3.height = 150; return (_local3); } } }//packageSection 387//LevelBonus (LevelBonus) package { import flash.events.*; import flash.utils.*; public class LevelBonus extends Level { protected var _scores:Scores; protected var _targetScore:int; protected var _message:String; protected var _started:Boolean; protected var _levelTimer:Timer; protected var _game:Game; protected var _endMessage:String; protected var _isPaused:Boolean; protected var _name:String; protected var _levelTime:int; protected var _hud:GameHud; protected var _stage:Number; public static const TARGETSCORE:Number = 100000; public static const LEVEL_OVER:String = "level_overs"; public function LevelBonus(_arg1:Renderer):void{ var a_rend = _arg1; super({}, 1, a_rend); _game = Main.current.game; _hud = _game.hud; _scores = _game.scores; _levelTime = 10; _name = "Bonus Level"; _message = "Clear the board before time runs out!"; _endMessage = "TIMES UP!"; _targetScore = 0; _stage = 1; _isPaused = false; _levelTimer = new Timer(1000, _levelTime); _levelTimer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ endLevel(); }); _levelTimer.addEventListener(TimerEvent.TIMER, onTimerTick); } public function get targetScore():Number{ return (_targetScore); } protected function startTimer(_arg1:int):void{ _levelTimer.repeatCount = _arg1; _hud.drawLevelTimer(_arg1); _levelTimer.start(); } public function get timer():Timer{ return (_levelTimer); } override public function draw():void{ _hud.starMeter.visible = false; _hud.targetShots.visible = false; _background = new Background(_stage); _renderer.backgroundLayer1.addChild(_background); _background.draw(); _hud.setTargetText(_targetScore); drawLevel(); } public function get started():Boolean{ return (_started); } public function startLevel():void{ _game.cannon.canFire = false; _hud.showBonusLevelStart(_name, _message, function ():void{ _game.cannon.canFire = true; startGame(); }); } public function get title():String{ return (_name); } public function drawLevel():void{ } override public function update():void{ _background.update(); } protected function onTimerTick(_arg1:TimerEvent):void{ _hud.updateTimer((_levelTime - _levelTimer.currentCount)); } public function endLevel():void{ _started = false; _levelTimer.stop(); _game.cannon.canFire = false; _hud.endBonusLevelText(_endMessage); var timer:Timer = new Timer(2300, 1); timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ dispatchEvent(new Event(LEVEL_OVER)); }); timer.start(); } public function resume():void{ _isPaused = false; _levelTimer.start(); } public function startGame():void{ _started = true; } public function pause():void{ _isPaused = true; _levelTimer.stop(); } override public function destroy():void{ _levelTimer.removeEventListener(TimerEvent.TIMER, onTimerTick); _background.destroy(); _levelTimer.stop(); if (this.parent){ this.parent.removeChild(this); }; _levelTimer = null; _hud = null; _background = null; _game = null; _started = false; } } }//packageSection 388//LevelBonusClear (LevelBonusClear) package { import flash.events.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; public class LevelBonusClear extends LevelBonus { private var _levelEnded:Boolean; public static const NUT_SCORE:int = 5000; public static const TOTAL_NUTS:Number = 100; public static const TARGETSCORE:Number = 300000; public function LevelBonusClear(_arg1:Renderer, _arg2:int=1):void{ super(_arg1); _levelTime = 10; _message = (("Clear the board\nin " + _levelTime) + " Seconds!"); _targetScore = TARGETSCORE; _stage = _arg2; _name = "When Nuts Attack"; _nuts.notifyGame = false; } override public function drawLevel():void{ var _local2:Nut; var _local1:int = TOTAL_NUTS; while (_local1--) { _local2 = _nuts.spawnNut(Nut.NORMAL_NUT, Rnd.integer(20, 650), Rnd.integer(20, 450)); _local2.addEventListener(NutEvent.HIT, onNutHit); }; _game.cannon.multiBall = true; startLevel(); } override public function destroy():void{ super.destroy(); _nuts.clear(); _nuts.destroy(); _nuts = null; } override public function startGame():void{ super.startGame(); startTimer(_levelTime); } override public function update():void{ var _local3:Nut; super.update(); if (((!(_levelEnded)) || (_isPaused))){ return; }; var _local1:int = _nuts.items.length; var _local2:int = (Main.GAME_HEIGHT + 10); while (_local1--) { _local3 = _nuts.items[int(_local1)]; _local3.y = _local3.particle.py; if (_local3.particle.py > _local2){ _nuts.removeNut(_local3); }; }; } override public function endLevel():void{ var nut:Nut; var timer:Timer; for each (nut in _nuts.items) { nut.particle.fixed = false; nut.particle.addForce(new VectorForce(false, 0, 500)); }; _started = false; _levelEnded = true; _levelTimer.stop(); _game.cannon.canFire = false; _hud.endBonusLevelText(); timer = new Timer(2600, 1); timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ dispatchEvent(new Event(LEVEL_OVER)); _nuts.clear(); }); timer.start(); } private function onNutHit(_arg1:NutEvent):void{ var _local2:Nut = _arg1.nut; _game.hud.birdHit(_local2.x, _local2.y, NUT_SCORE); _scores.addScore(NUT_SCORE); } } }//packageSection 389//LevelBonusFat (LevelBonusFat) package { import flash.events.*; import org.cove.ape.*; import com.gskinner.utils.*; public class LevelBonusFat extends LevelBonus { protected var _fatNut:NutFat; protected var _boundryGroup:Group; public static const TARGETSCORE:Number = 300000; public static const TICKSCORE:int = 10000; public static const HITSCORE:int = 1000; public function LevelBonusFat(_arg1:Renderer, _arg2:int=3):void{ super(_arg1); _levelTime = 30; _message = (("Keep The Fat Nut in the air\nfor " + _levelTime) + " Seconds!"); _targetScore = TARGETSCORE; _boundryGroup = Main.current.game.boundryGroup; _stage = _arg2; _name = "Big Happy Fatty"; } override public function drawLevel():void{ _fatNut = NutFat(_nuts.spawnNut(Nut.FAT_NUT, Rnd.integer(10, 550), 100)); _fatNut.addEventListener(NutFat.HIT_FLOOR, onHitFloor); _fatNut.addEventListener(NutEvent.HIT, onHitNut); _boundryGroup.addCollidable(_nuts.group); _nuts.notifyGame = false; _game.cannon.multiBall = true; startLevel(); } override protected function onTimerTick(_arg1:TimerEvent):void{ super.onTimerTick(_arg1); _scores.addScore(TICKSCORE); } protected function onHitNut(_arg1:Event):void{ var _local2:NutFat = (_arg1.target as NutFat); _hud.showPegHitScore(_local2.x, _local2.y, HITSCORE); _scores.addScore(HITSCORE); } override public function update():void{ super.update(); } override public function startGame():void{ super.startGame(); _fatNut.active = true; startTimer(_levelTime); } protected function onHitFloor(_arg1:Event):void{ var _local2:NutFat = (_arg1.target as NutFat); _local2.destroy(); if (!_started){ return; }; fail(); } override public function destroy():void{ super.destroy(); _boundryGroup.removeCollidable(_nuts.group); } public function fail():void{ _endMessage = "OH NO!"; endLevel(); } } }//packageSection 390//LevelBonusFlock (LevelBonusFlock) package { import flash.events.*; import org.cove.ape.*; public class LevelBonusFlock extends LevelBonus { private var _birdGroup:Group; private var _birdCount:int; private var _birds:BirdManager; public static const TARGETSCORE:Number = 300000; public static const BIRD_SCORE:int = 5000; public function LevelBonusFlock(_arg1:Renderer, _arg2:int=2):void{ super(_arg1); _levelTime = 30; _birdGroup = new Group(false); _birds = Main.current.game.birds; _message = (("Hit As Many Birds As You Can\nin " + _levelTime) + " Seconds!"); _targetScore = TARGETSCORE; _stage = _arg2; _name = "What The Flock!"; _birdCount = 0; _birds.notifyGame = false; } override public function drawLevel():void{ APEngine.addGroup(_birdGroup); _squirrelGroup.addCollidable(_birdGroup); _birds.chance = 0.1; _game.cannon.multiBall = true; startLevel(); } public function get birds():BirdManager{ return (_birds); } private function onBirdHit(_arg1:Event):void{ var _local2:Bird = (_arg1.target as Bird); _local2.removeEventListener(Bird.HIT, onBirdHit); _birdCount++; _game.hud.birdHit(_local2.x, _local2.y, BIRD_SCORE); _scores.addScore(BIRD_SCORE); } override public function update():void{ var _local1:Bird; super.update(); if (((_levelTimer.running) && (!(_isPaused)))){ _local1 = _birds.randomChanceSpawn(); if (_local1){ _local1.addEventListener(Bird.HIT, onBirdHit); }; }; } override public function startGame():void{ super.startGame(); startTimer(_levelTime); } override public function destroy():void{ super.destroy(); _birds.clear(); _birdGroup.cleanup(); _squirrelGroup.removeCollidable(_birdGroup); APEngine.removeGroup(_birdGroup); _birds = null; } } }//packageSection 391//LevelBonusHide (LevelBonusHide) package { import flash.events.*; import org.cove.ape.*; import flash.utils.*; import com.gskinner.utils.*; public class LevelBonusHide extends LevelBonus { private var _nutCount:int; private var _nut:Nut; private var _nutHideTimer:Timer; private var _nutShowTimer:Timer; private var _squirrels:SquirrelManager; private var _cannon:Cannon; private var _nutsToShoot:int; public static const TARGETSCORE:Number = 80000; public static const NUT_POINTS:Number = 10000; public static const NUTS:Number = 10; public function LevelBonusHide(_arg1:Renderer, _arg2:int=4):void{ super(_arg1); _nutCount = 0; _nutsToShoot = NUTS; _targetScore = TARGETSCORE; _message = (("Hit all " + _nutsToShoot) + " Nuts\n shooting as fast as you can!"); _name = "Raining Nuts"; _endMessage = "The Storm Is Over"; _cannon = _game.cannon; _squirrels = _game.squirrels; _stage = _arg2; _nutShowTimer = new Timer(1000, 1); _nutShowTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onNutShowTimerComplete); _nutHideTimer = new Timer(1000, 1); _nutHideTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onNutHideTimerComplete); _nuts.notifyGame = false; _game.boundryGroup.removeCollidable(_squirrels.group); } override public function drawLevel():void{ _cannon.multiBall = false; _cannon.canFire = false; _hud.drawExtraScore(((_nutsToShoot + "/") + _nutCount)); startLevel(); } private function nutDestroyed():void{ _hud.drawExtraScore(((_nutsToShoot + "/") + _nutCount)); if (_nutsToShoot == 0){ endLevel(); } else { _nutShowTimer.delay = Rnd.integer(1000, 3000); _nutShowTimer.start(); }; _cannon.canFire = false; } private function onNutHit(_arg1:Event):void{ var _local2:Nut = (_arg1.target as Nut); _nutCount++; _nutHideTimer.stop(); var _local3:int = NUT_POINTS; _game.hud.birdHit(_local2.x, _local2.y, _local3); _scores.addScore(_local3); _hud.drawExtraScore(((_nutsToShoot + "/") + _nutCount)); } override public function update():void{ super.update(); if (_isPaused){ return; }; _nuts.update(); if (_nut){ _nut.particle.addForce(new VectorForce(false, 0, 3)); }; _squirrels.pruneOutOfBounds(); } private function onNutShowTimerComplete(_arg1:TimerEvent):void{ showNut(); } override public function startGame():void{ super.startGame(); showNut(); } public function showNut():void{ _nut = _nuts.spawnNut(Nut.NORMAL_NUT, Rnd.integer(40, 600), -10); _nut.addEventListener(NutEvent.HIT, onNutHit); _nut.addEventListener(Event.REMOVED_FROM_STAGE, onNutDisposed); _nut.fall(); _nut.particle.fixed = false; _nut.particle.addForce(new VectorForce(false, 0, Rnd.integer(30, 80))); _nutsToShoot--; _scores.shotReset(); _cannon.fired = false; _cannon.canFire = true; } override public function destroy():void{ _nutShowTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onNutShowTimerComplete); _nutHideTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onNutHideTimerComplete); _game.boundryGroup.addCollidable(_game.squirrels.group); super.destroy(); } private function onNutDisposed(_arg1:Event):void{ _nut.removeEventListener(Event.REMOVED_FROM_STAGE, onNutDisposed); _nut = null; nutDestroyed(); } private function onNutHideTimerComplete(_arg1:TimerEvent):void{ _nuts.removeNut(_nut); } } }//packageSection 392//LevelBonusPeek (LevelBonusPeek) package { import flash.events.*; import org.cove.ape.*; import com.gskinner.utils.*; public class LevelBonusPeek extends LevelBonus { private var _shots:int; private var _bigNuts:Array; private var _shown:int; private var _bigNutGroup:Group; private var _cannon:Cannon; public static const BIG_NUT_SCORE:int = 10000; public static const TARGETSCORE:Number = 250000; public static const NUT_COUNT:Number = 200; public function LevelBonusPeek(_arg1:Renderer, _arg2:int=4):void{ super(_arg1); _levelTime = 30; _message = (("Hit as many big nuts as possible\n in under " + _levelTime) + " Seconds!"); _name = "Whack-A-Nut"; _targetScore = TARGETSCORE; _stage = _arg2; _shown = 0; _shots = NUT_COUNT; _bigNuts = []; _bigNutGroup = new Group(); _game.squirrels.group.addCollidable(_bigNutGroup); _game.squirrels.addEventListener(SquirrelManager.SHOT_COMPLETE, onShotComplete); _game.cannon.addEventListener(CannonEvent.FIRED, onFire); _cannon = _game.cannon; } override public function drawLevel():void{ _game.cannon.multiBall = true; startLevel(); } private function onBigNutHide(_arg1:Event):void{ var _local2:BigNut = (_arg1.target as BigNut); if (_bigNuts.indexOf(_local2) > -1){ _bigNuts.splice(_bigNuts.indexOf(_local2), 1); }; } override public function update():void{ var _local1:BigNut; super.update(); if (_isPaused){ return; }; for each (_local1 in _bigNuts) { _local1.update(); }; if (((((((Rnd.boolean(0.05)) && (_started))) && ((_bigNuts.length <= 1)))) && ((_shown < NUT_COUNT)))){ createBigNut(); }; } public function createBigNut():BigNut{ if (!_started){ return (null); }; var _local1:BigNut = new BigNut(_bigNutGroup); _local1.y = (Main.GAME_HEIGHT + 10); _local1.x = -100; _renderer.gameLayer.addChild(_local1); _local1.time = Rnd.integer(1000, 4000); _local1.draw(); _local1.addEventListener(BigNut.EVENT_HIT, onBigNutHit, false, 0, true); _local1.addEventListener(BigNut.EVENT_HIDE, onBigNutHide, false, 0, true); _local1.show(false, Rnd.integer(1, 5)); _bigNuts.push(_local1); _shown++; return (_local1); } private function onFire(_arg1:Event):void{ _shots--; } private function onBigNutHit(_arg1:Event):void{ var _local2:BigNut = (_arg1.target as BigNut); _game.scores.addScore(BIG_NUT_SCORE); } private function onShotComplete(_arg1:Event):void{ var _local2:BigNut; for each (_local2 in _bigNuts) { }; if ((((_shots == 0)) && (_started))){ endLevel(); }; } override public function startGame():void{ super.startGame(); startTimer(_levelTime); } override public function destroy():void{ _game.squirrels.group.removeCollidable(_bigNutGroup); _game.cannon.removeEventListener(CannonEvent.FIRED, onFire); _game.squirrels.removeEventListener(SquirrelManager.SHOT_COMPLETE, onShotComplete); super.destroy(); } } }//packageSection 393//LevelBonusSkeet (LevelBonusSkeet) package { import flash.events.*; import org.cove.ape.*; import flash.utils.*; import com.gskinner.utils.*; public class LevelBonusSkeet extends LevelBonus { private var _squirrels:SquirrelManager; private var _birdsToShoot:int; private var _birdTimer:Timer; private var _birdCount:int; private var _bird:Bird; private var _birds:BirdManager; private var _cannon:Cannon; public static const TARGETSCORE:Number = 50000; public static const BIRD_POINTS:Number = 10000; public static const BIRDS:Number = 10; public function LevelBonusSkeet(_arg1:Renderer, _arg2:int=3):void{ super(_arg1); _birdCount = 0; _birdsToShoot = BIRDS; _targetScore = TARGETSCORE; _message = (("Hit all " + _birdsToShoot) + " birds\n shooting skeet style!"); _name = "Ready, Pull!"; _endMessage = "All Done!"; _cannon = _game.cannon; _birds = _game.birds; _squirrels = _game.squirrels; _stage = _arg2; _birdTimer = new Timer(1000, 1); _birdTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onBirdTimerComplete); _birds.notifyGame = false; _game.boundryGroup.removeCollidable(_squirrels.group); } override public function drawLevel():void{ _cannon.multiBall = false; _cannon.canFire = false; _hud.drawExtraScore(((_birdsToShoot + "/") + _birdCount)); startLevel(); } override public function update():void{ super.update(); if (_isPaused){ return; }; _squirrels.pruneOutOfBounds(); if (_bird){ _bird.particle.addForce(new VectorForce(false, 0, 2)); }; } private function onBirdDisposed(_arg1:Event):void{ _bird.removeEventListener(Event.REMOVED_FROM_STAGE, onBirdDisposed); _bird = null; birdDestroyed(); } public function shootBird():void{ var _local1:int; var _local2:int = Rnd.integer(80, 150); var _local3:Boolean = Rnd.boolean(); if (_local3){ _local1 = -30; } else { _local2 = (_local2 * -1); _local1 = (Main.GAME_WIDTH + 30); }; _bird = _birds.spawnBird(_local1, Rnd.integer(200, 400), 50); _bird.addEventListener(Bird.HIT, onBirdHit); _bird.addEventListener(Event.REMOVED_FROM_STAGE, onBirdDisposed); if (_local3){ _bird.scaleX = -1; }; _bird.particle.clearForces(); _bird.particle.addForce(new VectorForce(false, _local2, Rnd.integer(-50, -150))); _birdsToShoot--; _scores.shotReset(); _cannon.fired = false; _cannon.canFire = true; } private function onBirdTimerComplete(_arg1:TimerEvent):void{ shootBird(); } override public function destroy():void{ _birdTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onBirdTimerComplete); _game.boundryGroup.addCollidable(_game.squirrels.group); super.destroy(); } private function onBirdHit(_arg1:Event):void{ var _local2:Bird = (_arg1.target as Bird); _birdCount++; var _local3:int = BIRD_POINTS; var _local4:Number = Math.abs((Main.GAME_WIDTH - _local2.x)); var _local5:Number = (_local2.x / Main.GAME_WIDTH); if (_local5 <= 0.2){ _local3 = (_local3 + 10000); } else { if (_local5 <= 0.3){ _local3 = (_local3 + 8000); } else { if (_local5 <= 0.4){ _local3 = (_local3 + 6000); } else { if (_local5 <= 0.6){ _local3 = (_local3 + 4000); }; }; }; }; _game.hud.birdHit(_local2.x, _local2.y, _local3); _scores.addScore(_local3); _hud.drawExtraScore(((_birdsToShoot + "/") + _birdCount)); } private function birdDestroyed():void{ _hud.drawExtraScore(((_birdsToShoot + "/") + _birdCount)); if (_birdsToShoot == 0){ endLevel(); } else { _birdTimer.delay = Rnd.integer(1000, 3000); _birdTimer.start(); }; _cannon.canFire = false; } override public function startGame():void{ super.startGame(); shootBird(); } } }//packageSection 394//LevelBonusSkinny (LevelBonusSkinny) package { public class LevelBonusSkinny extends LevelBonusFat { public static const TARGETSCORE:Number = 90000; public function LevelBonusSkinny(_arg1:Renderer, _arg2:int=2):void{ super(_arg1); _message = (("Keep Fat Nuts' Little Brother in the air\nfor " + _levelTime) + " Seconds!"); _name = "Little Happy Fatty"; _targetScore = TARGETSCORE; _stage = _arg2; } override public function drawLevel():void{ super.drawLevel(); _fatNut.setScale(0.5); _fatNut.gravity = 1.2; } override public function destroy():void{ super.destroy(); } override public function startGame():void{ super.startGame(); } } }//packageSection 395//LevelBrowser (LevelBrowser) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import gs.*; import flash.utils.*; import flash.filters.*; import mochi.as3.*; import flash.ui.*; public class LevelBrowser extends Sprite { private var _settings:SettingsPanel; private var _levels:Array; private var _menuButton:Button; private var _customizeButton:Button; private var _currentPackSprite:Sprite; private var _bubTime:TextField; private var _currentPackIndex:int; private var _bubStar:Bitmap; private var _titleText:TextField; private var _bubble:Sprite; private var _bubMedal:TextField; private var _bubBackBonus:Bitmap; private var _gridHolder:Sprite; private var _buttonsToLevels:Dictionary; private var _bubLevel:TextField; private var _bubBack:Bitmap; private var _buttons:Array; private var _bubCombo:Bitmap; private var _buttonsToLocked:Dictionary; private var _bubScore:TextField; private var _buttonsToBubbles:Dictionary; private var _background:Bitmap; private var _passedInId:Number; private var _buyCheat:Button; private var _selectPack:Number; private var _levelData:LevelData; private var _bubHunter:Bitmap; private var _bubHang:Bitmap; private var _selectMiniGames:Boolean; private var _scoreText:TextField; private var _bubTarget:TextField; private var _packButtons:ButtonGroup; private var _packs:Array; private static const THUMB_SPACING:uint = 20; private static const GRID_START_X:int = 180; private static const GRID_START_Y:int = 99; private static const THUMBS_PER_ROW:uint = 5; private static const PACKBUTTON_STARTX:int = -5; private static const PACKBUTTON_STARTY:int = 95; private static const THUMBS_HEIGHT:uint = 50; private static const THUMBS_WIDTH:uint = 45; private static const STAR_OFFSETX:int = 30; private static const STAR_OFFSETY:int = -12; private static const PACKBUTTON_PADDING:int = 20; public function LevelBrowser(_arg1:Number=undefined):void{ _packs = []; _buttons = []; _buttonsToBubbles = new Dictionary(true); _buttonsToLevels = new Dictionary(true); _buttonsToLocked = new Dictionary(true); _gridHolder = new Sprite(); _selectMiniGames = false; _passedInId = _arg1; _levelData = Main.levelData; _levels = _levelData.mapPacks[0].levels; if (_passedInId == MiniGames.id){ _selectMiniGames = true; } else { if (_passedInId){ _selectPack = (_levelData.getPackIndexById(_arg1) + 1); }; }; addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); } private function onBuyCheatClick(_arg1:MouseEvent):void{ } private function show():void{ TweenMax.to(this, 0.5, {y:((Main.GAME_HEIGHT * 0.5) - (this.height * 0.5)), ease:Menu.EASE_OUT}); } public function showCustomSettings():void{ if (_settings){ _settings.parent.removeChild(_settings); }; _settings = new SettingsPanel(this); parent.addChild(_settings); _settings.y = -(_settings.height); _settings.x = ((Main.GAME_WIDTH * 0.5) - (_settings.width * 0.5)); _settings.addEventListener(SettingsPanel.HIDE, function (_arg1:Event):void{ if (!_settings.isDirty){ show(); } else { Main.current.menu.resetLevelBrowser(_passedInId); }; }); TweenMax.to(this, 0.5, {delay:1, y:-(this.height), ease:Menu.EASE_OUT, onComplete:function ():void{ _settings.show(); }}); } private function createMiniGameButton():Button{ var _local1:Button = new Button(new Assets.MiniButtonOff()); _local1.selectedState = new Assets.MiniButtonOn(); return (_local1); } private function setScoreText(_arg1:int):void{ _scoreText.text = ("Total Score: " + Utility.commafy(_arg1)); _scoreText.x = ((_background.width - _scoreText.width) - 30); } private function onItemPurchased(_arg1:Object):void{ if (((_arg1.properties.unlockAll) || (_arg1.properties.packId))){ dispatchEvent(new LevelBrowserEvent(LevelBrowserEvent.MENU)); }; } private function onCustomizeButtonClick(_arg1:MouseEvent):void{ var e = _arg1; if (!_settings){ showCustomSettings(); } else { TweenMax.to(this, 0.5, {y:-(this.height), ease:Menu.EASE_OUT, onComplete:function ():void{ _settings.show(); }}); }; } private function selectPack(_arg1:int):void{ if (((_currentPackSprite) && (_currentPackSprite.parent))){ _gridHolder.removeChild(_currentPackSprite); }; var _local2:MapPack = _levelData.loadPack(_arg1); setScoreText(Player.instance.getPackSessionScore(_local2.id)); setTitleText((_local2.name + " Levels")); _currentPackIndex = _arg1; _currentPackSprite = _packs[(_arg1 - 1)]; _gridHolder.addChild(_currentPackSprite); } private function onButtonClick(_arg1:Event):void{ var _local2:Button = (_arg1.target as Button); Main.sound.stopSound(Assets.MENU_MUSIC); Main.current.startGame(_currentPackIndex, _local2.data.levelNum); } private function selectMiniGames():void{ setScoreText(Player.instance.getMiniGameScore()); setTitleText("Mini Game Mode"); if (((_currentPackSprite) && (_currentPackSprite.parent))){ _gridHolder.removeChild(_currentPackSprite); }; _currentPackSprite = _packs[(_packs.length - 1)]; _gridHolder.addChild(_currentPackSprite); } private function onButtonOut(_arg1:Event):void{ if (_bubble){ TweenMax.to(_bubble, 0.3, {alpha:0, onComplete:onBubbleTweenHide, onCompleteParams:[_bubble]}); }; } private function createBubble():void{ _bubble = new Sprite(); _bubBack = new Assets.BonusBubble(); _bubble.addChild(_bubBack); _bubLevel = Main.text.bubbleTitle("LEVEL "); _bubLevel.x = 22; _bubLevel.y = 17; _bubble.addChild(_bubLevel); _bubTarget = Main.text.bubbleText("Target: "); _bubTarget.x = _bubLevel.x; _bubTarget.y = (_bubLevel.y + _bubLevel.textHeight); _bubble.addChild(_bubTarget); _bubStar = new Assets.StarBurstYellow(); _bubStar.y = (_bubTarget.y + 2); _bubStar.x = ((_bubTarget.x + _bubTarget.width) + 5); _bubStar.scaleX = 1; _bubStar.scaleY = _bubStar.scaleX; _bubble.addChild(_bubStar); _bubScore = Main.text.bubbleText("Best Score: "); _bubScore.x = _bubTarget.x; _bubScore.y = ((_bubTarget.y + _bubTarget.textHeight) + 3); _bubble.addChild(_bubScore); var _local1:int = ((_bubScore.y + _bubScore.textHeight) + 5); _bubMedal = Main.text.bubbleText("Medals: "); _bubMedal.x = _bubScore.x; _bubMedal.y = _local1; _bubble.addChild(_bubMedal); _bubHang = new Assets.MedalSquirrel(); _bubHang.scaleX = 0.3; _bubHang.scaleY = _bubHang.scaleX; _bubHang.x = ((_bubMedal.x + _bubMedal.width) + 3); _bubHang.y = _local1; _bubble.addChild(_bubHang); _bubHunter = new Assets.MedalBird(); _bubHunter.scaleX = 0.3; _bubHunter.scaleY = _bubHunter.scaleX; _bubHunter.x = ((_bubHang.x + _bubHang.width) + 3); _bubHunter.y = _local1; _bubble.addChild(_bubHunter); _bubCombo = new Assets.MedalNut(); _bubCombo.scaleX = 0.3; _bubCombo.scaleY = _bubCombo.scaleX; _bubCombo.x = ((_bubHunter.x + _bubHunter.width) + 3); _bubCombo.y = _local1; _bubble.addChild(_bubCombo); _bubble.visible = false; _bubble.alpha = 0; } private function onLoginHide(_arg1:Object):void{ } public function draw(_arg1:Event):void{ var b_text:Bitmap; var i:int; var pack:MapPack; var button:Button; var e = _arg1; removeEventListener(Event.ADDED_TO_STAGE, draw); _background = new Assets.WoodBackgroundLarge(); addChild(_background); _titleText = Text.instance.getText("Test", {size:36, color:0xFFFFFF, font:Text.BLOCKTREGCOND, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); _titleText.x = 30; _titleText.y = 16; addChild(_titleText); _scoreText = Text.instance.getText("temp", {size:18, color:0xFFFFFF, font:Text.BLOCKTREG, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); _scoreText.y = ((_titleText.y + _titleText.height) - _scoreText.height); addChild(_scoreText); var div:Bitmap = new Assets.WoodDividerLarge1(); div.x = _titleText.x; div.y = ((_titleText.y + _titleText.height) + 5); addChild(div); b_text = new Assets.TextBonusLevels(); b_text.x = ((_background.width - b_text.width) - 30); b_text.y = (GRID_START_Y - 28); b_text.scaleX = 0.8; b_text.scaleY = b_text.scaleX; _menuButton = new Button(new Assets.BackButton(), Button.LIGHTEN); _menuButton.addEventListener(MouseEvent.CLICK, onMenuButtonClick, false, 0, true); _customizeButton = new Button(new Assets.CustomizeButton(), Button.LIGHTEN); _customizeButton.addEventListener(MouseEvent.CLICK, onCustomizeButtonClick, false, 0, true); _customizeButton.visible = false; var bCont:Container = new Container([_menuButton], Container.HORIZONTAL, Container.CENTER, {spacingX:15, width:_background.width}); if (!Player.instance.hasUnlockCheat){ _buyCheat = new Button(new Assets.BuyCheatButton(), Button.LIGHTEN); _buyCheat.addEventListener(MouseEvent.CLICK, onBuyCheatClick, false, 0, true); }; addChild(bCont); bCont.y = ((_background.height - bCont.height) - 20); createBubble(); _packButtons = new ButtonGroup(null, Container.VERTICAL, Container.LEFT, {spacingY:PACKBUTTON_PADDING}); i = 0; while (i < _levelData.mapPacks.length) { pack = _levelData.mapPacks[i]; button = createPackButton((i + 1)); _packButtons.addChild(button); if (Player.instance.hasPack(pack.id)){ _packs.push(drawPack(pack)); } else { _packs.push(drawSellScreen(pack.sellScreen)); }; i = (i + 1); }; var mini:Button = createMiniGameButton(); mini.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ selectMiniGames(); }); _packs.push(createMiniGameSell()); _packButtons.addChild(mini); _packButtons.adjust(mini, -8, 0); _packButtons.x = PACKBUTTON_STARTX; _packButtons.y = PACKBUTTON_STARTY; addChild(_packButtons); if (_selectPack){ selectPack(_selectPack); _packButtons.setDefault(_selectPack); } else { if (_selectMiniGames == true){ selectMiniGames(); _packButtons.setDefault(3); } else { selectPack(1); _packButtons.setDefault(1); }; }; _gridHolder.x = GRID_START_X; _gridHolder.y = GRID_START_Y; addChild(_gridHolder); } private function createPackButton(_arg1:int):Button{ var pack = _arg1; var p:MapPack = _levelData.loadPack(pack); var button:Button = new Button(); var h:Bitmap = new Assets.WoodButton(); h.visible = false; button.upState = h; button.selectedState = new Assets.WoodButton(); button.text = Main.text.getText(p.name, {size:20, color:0xFFFFFF, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); button.text.x = 37; button.text.y = (button.text.y - 2); button.addEventListener(MouseEvent.CLICK, function ():void{ selectPack(pack); }); return (button); } private function setTitleText(_arg1:String):void{ _titleText.text = String(_arg1).toUpperCase(); } private function drawSellScreen(_arg1:DisplayObject):DisplayObject{ var sellImage = _arg1; var sell:Sprite = new Sprite(); var buy:Button = new Button(new Assets.BuyNowButton()); buy.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ }); var bCont:Container = new Container([buy], Container.HORIZONTAL, Container.CENTER, {width:(sellImage.width - 20)}); bCont.y = 150; sell.addChild(sellImage); sell.addChild(bCont); sell.y = -25; sell.x = -10; return (sell); } private function onButtonOver(_arg1:Event):void{ var _local2:Button = (_arg1.target as Button); _bubLevel.text = _local2.data.level; _bubTarget.text = _local2.data.target; _bubScore.text = _local2.data.score; _bubStar.x = ((_bubTarget.x + _bubTarget.width) + 5); _bubMedal.visible = true; var _local3:Object = Player.instance.getLevel(_local2.data.packId, _local2.data.levelNum); _bubHang.visible = false; _bubHunter.visible = false; _bubCombo.visible = false; if (_local3.hangTime){ _bubHang.visible = true; }; if (_local3.gameHunter){ _bubHunter.visible = true; }; if (_local3.bigCombo){ _bubCombo.visible = true; }; TweenMax.killTweensOf(_bubble); _bubble.alpha = 0; _bubble.visible = true; _bubble.x = (_local2.x - 62); _bubble.y = (_local2.y - 109); var _local4:DisplayObject = (_arg1.target as DisplayObject); var _local5:int = _currentPackSprite.getChildIndex(_local4); _currentPackSprite.addChildAt(_local4, _currentPackSprite.numChildren); _currentPackSprite.addChildAt(_bubble, (_currentPackSprite.numChildren - 2)); TweenMax.to(_bubble, 0.3, {alpha:1}); } private function onBonusLevelClick(_arg1:Event):void{ var _local2:Button = (_arg1.target as Button); Main.sound.stopSound(Assets.MENU_MUSIC); Main.current.startBonusLevel(_currentPackIndex, _local2.data.difficulty); } private function onBubbleTweenHide(_arg1:Sprite):void{ if (_arg1){ _arg1.visible = false; }; } private function onBonusLevelOver(_arg1:Event):void{ var _local2:Button = (_arg1.target as Button); _bubLevel.text = "Bonus Level"; _bubTarget.text = _local2.data.target; _bubScore.text = _local2.data.score; _bubStar.x = ((_bubTarget.x + _bubTarget.width) + 5); _bubHang.visible = false; _bubHunter.visible = false; _bubCombo.visible = false; TweenMax.killTweensOf(_bubble); _bubble.alpha = 0; _bubble.visible = true; _bubble.x = (_local2.x - 60); _bubble.y = (_local2.y - 90); _bubMedal.visible = false; var _local3:DisplayObject = (_arg1.target as DisplayObject); var _local4:int = _currentPackSprite.getChildIndex(_local3); _currentPackSprite.addChildAt(_local3, _currentPackSprite.numChildren); _currentPackSprite.addChildAt(_bubble, (_currentPackSprite.numChildren - 2)); TweenMax.to(_bubble, 0.3, {alpha:1}); } private function onMenuButtonClick(_arg1:MouseEvent):void{ dispatchEvent(new LevelBrowserEvent(LevelBrowserEvent.MENU)); } private function createMiniGameSell():Sprite{ var logo:Bitmap; var play:Button; var tLabel:TextField; var total:TextField; var tCont:Container; var cont:Container; var sell:Bitmap; var buy:Button; var bCont:Container; var panel:Sprite = new Sprite(); if (Player.instance.hasMiniGames){ logo = new Assets.MiniGameLogo2(); play = new Button(new Assets.PlayButton(), Button.LIGHTEN); play.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ Main.sound.stopSound(Assets.MENU_MUSIC); Main.current.startMiniGames(); }); tLabel = Text.instance.getText("Best Score:", {size:18, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:10, multiline:false}); total = Text.instance.getText(Utility.commafy(Player.instance.getMiniGameScore()), {size:48, color:0xFFFFFF, font:Text.BLOCKTBOLD, letterSpacing:0, border:true, borderColor:2956290, borderSize:13, multiline:false}); tCont = new Container([tLabel, total], Container.VERTICAL, Container.CENTER, {spacingY:-12}); cont = new Container([logo, play, tCont], Container.VERTICAL, Container.CENTER, {spacingY:15, width:400}); panel.addChild(cont); panel.x = -30; } else { sell = new Assets.MiniGameSell(); panel.addChild(sell); buy = new Button(new Assets.BuyNowButton()); buy.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ }); bCont = new Container([buy], Container.HORIZONTAL, Container.CENTER, {width:(sell.width - 20)}); bCont.y = 150; panel.addChild(bCont); panel.y = -25; panel.x = -10; }; return (panel); } public function destroy(_arg1:Event):void{ var _local2:Button; trace("Level Browser: Destroy"); removeEventListener(Event.REMOVED_FROM_STAGE, destroy); TweenMax.killAllTweens(); TweenMax.killAllDelayedCalls(); for each (_local2 in _buttons) { _local2.removeEventListener(MouseEvent.CLICK, onButtonClick); _local2.removeEventListener(MouseEvent.MOUSE_OVER, onButtonOver); _local2.removeEventListener(MouseEvent.MOUSE_OUT, onButtonOut); }; _buttons = null; _bubble = null; if (contains(_gridHolder)){ removeChild(_gridHolder); }; _gridHolder = null; if (contains(_background)){ removeChild(_background); }; _background = null; _customizeButton.removeEventListener(MouseEvent.CLICK, onCustomizeButtonClick); _customizeButton = null; _menuButton.removeEventListener(MouseEvent.CLICK, onMenuButtonClick); _menuButton = null; if (_buyCheat){ _buyCheat.removeEventListener(MouseEvent.CLICK, onBuyCheatClick); }; _buyCheat = null; _buttons = null; _background = null; _levels = null; _levelData = null; _buttonsToBubbles = null; _buttonsToLevels = null; } public function drawPack(_arg1:MapPack):Sprite{ var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Object; var _local13:Number; var _local14:Button; var _local15:Sprite; var _local16:Bitmap; var _local17:Class; var _local18:Bitmap; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Object; var _local23:Array; var _local24:Array; var _local25:Date; var _local26:Number; var _local27:Object; var _local28:Number; var _local29:Button; var _local30:Bitmap; var _local31:Bitmap; var _local2:Sprite = new Sprite(); var _local3:Array = _arg1.levels; var _local4:Number = Math.ceil((_local3.length / THUMBS_PER_ROW)); var _local5:Boolean; var _local6:Boolean; var _local7:Boolean; var _local8:Number = 0; while (_local8 < _local4) { _local9 = ((THUMBS_HEIGHT * _local8) + (THUMB_SPACING * _local8)); if (_local5){ _local6 = true; _local5 = false; } else { _local6 = false; _local5 = false; }; _local7 = true; _local10 = 0; while (_local10 < THUMBS_PER_ROW) { _local11 = (((_local8 * THUMBS_PER_ROW) + _local10) + 1); if (!_local3[(_local11 - 1)]){ break; } else { _local22 = _local3[(_local11 - 1)]; }; _local12 = Main.player.getLevel(_arg1.id, _local11); _local13 = _local22.targetScore; _local14 = new Button(); _local15 = new Sprite(); _local17 = _arg1.getThumb(_local11); _local18 = new (_local17); _local18.filters = [new GlowFilter(2890497, 1, 6, 6, 500, BitmapFilterQuality.LOW)]; _local18.smoothing = true; _local15.addChild(_local18); _local15.cacheAsBitmap = true; _local14.upState = _local15; _local19 = 0.2225; _local20 = 0.7169; _local21 = 0.0606; if (((_local6) || (((Player.instance.hasUnlockCheat) && (Player.instance.useCheatMode))))){ if (((_local12) && (_local12.score))){ if (_local12.score >= _local13){ _local16 = new Assets.TargetStarOn(); } else { _local16 = new Assets.TargetStarOff(); _local7 = false; }; } else { _local16 = new Assets.TargetStarOff(); _local7 = false; }; _local14.rollOverEffect = Button.SCALE; _local14.addEventListener(MouseEvent.MOUSE_OVER, onButtonOver, false, 0, true); _local14.addEventListener(MouseEvent.MOUSE_OUT, onButtonOut, false, 0, true); _local14.addEventListener(MouseEvent.CLICK, onButtonClick, false, 0, true); } else { _local23 = [_local19, _local20, _local21, 0, 0, _local19, _local20, _local21, 0, 0, _local19, _local20, _local21, 0, 0, 0, 0, 0, 1, 0]; _local24 = _local18.filters; _local24.push(new ColorMatrixFilter(_local23)); _local18.filters = _local24; _local16 = new Assets.LockLevel(); _local14.alpha = 0.5; }; _local16.x = ((_local15.width - _local16.width) + 8); _local16.y = ((_local15.height - _local16.height) + 8); _local16.smoothing = true; _local15.addChild(_local16); _local14.data = {target:("Target: " + Utility.commafy(_local22.targetScore)), time:"Best Time: ", level:("Level: " + MapPack.getStageString(_local11)), score:"Best Score: ", packId:_arg1.id, levelNum:_local11}; if (((_local12) && (_local12.score))){ _local14.data.score = (_local14.data.score + Utility.commafy(_local12.score)); } else { _local14.data.score = (_local14.data.score + "---"); }; if (((Main.player.getLevel(_arg1.id, _local11)) && (Main.player.getLevel(_arg1.id, _local11).time))){ _local25 = new Date((_local12.time * 1000)); _local14.data.time = (_local14.data.time + Utility.formatTime(_local25)); } else { _local14.data.time = (_local14.data.time + "---"); }; _local14.x = ((THUMBS_WIDTH * _local10) + (THUMB_SPACING * _local10)); _local14.y = _local9; _local2.addChild(_local14); _buttons.push(_local14); _local10++; }; if (((_local6) || (((Player.instance.hasUnlockCheat) && (Player.instance.useCheatMode))))){ if (((_local7) || (((Player.instance.hasUnlockCheat) && (Player.instance.useCheatMode))))){ _local26 = (_local8 + 1); _local27 = Main.player.getBonusLevel(_arg1.id, _local26); _local28 = _arg1.getBonusTargetScore(_local26); _local29 = new Button(); if (_local27.score > _local28){ _local29.upState = new Assets.BonusLevelStar(); _local5 = true; } else { _local29.upState = new Assets.BonusLevelGreyStar(); _local5 = false; }; _local29.rollOverEffect = Button.SCALE; Bitmap(_local29.upState).smoothing = true; _local29.x = (((THUMBS_PER_ROW * THUMBS_WIDTH) + ((THUMBS_PER_ROW - 1) * THUMB_SPACING)) + STAR_OFFSETX); _local29.y = (_local9 + STAR_OFFSETY); _local29.addEventListener(MouseEvent.CLICK, onBonusLevelClick); _local29.addEventListener(MouseEvent.MOUSE_OVER, onBonusLevelOver); _local29.addEventListener(MouseEvent.MOUSE_OUT, onButtonOut); _local29.data = {target:("Target: " + Utility.commafy(_local28)), difficulty:_local26, score:("Best Score: " + ((_local27.score > 0)) ? Utility.commafy(_local27.score) : "---"), bonus:true}; _local2.addChild(_local29); } else { _local30 = new Assets.BonusLevelLocked(); _local30.x = (((THUMBS_PER_ROW * THUMBS_WIDTH) + ((THUMBS_PER_ROW - 1) * THUMB_SPACING)) + STAR_OFFSETX); _local30.y = (_local9 + STAR_OFFSETY); _local2.addChild(_local30); }; } else { _local31 = new Assets.BonusLevelRowLock(); _local31.x = (((THUMBS_PER_ROW * THUMBS_WIDTH) + ((THUMBS_PER_ROW - 1) * THUMB_SPACING)) + STAR_OFFSETX); _local31.y = (_local9 + STAR_OFFSETY); _local2.addChild(_local31); }; _local8++; }; return (_local2); } } }//packageSection 396//LevelBrowserEvent (LevelBrowserEvent) package { import flash.events.*; public class LevelBrowserEvent extends Event { private var _level:Number; private var _pack:Number; public static const SELECT_LEVEL:String = "selected_level"; public static const MENU:String = "menu"; public function LevelBrowserEvent(_arg1:String, _arg2:Number=0, _arg3:Number=0, _arg4:Boolean=false, _arg5:Boolean=false){ _level = _arg3; _pack = _arg2; super(_arg1, _arg4, _arg5); } public function get level():Number{ return (_level); } public function get mapPack():Number{ return (_pack); } } }//packageSection 397//Main (Main) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import editor.*; import gs.*; import flash.net.*; import mochi.as3.*; import flash.ui.*; import flash.system.*; public dynamic class Main extends Sprite { private var _splash:MovieClip; private var _splashFrames:Number;// = 0 private var _background:Sprite; private var _game:Game; private var _levelEditor:Sprite; private var _mochiads_game_id:String;// = "be7adf23ebe504ab" private var _splashContainer:Sprite; private var _levelBrowser:LevelBrowser; private var _menu:Menu; private static const _text:Text = Text.instance; private static const _levelData:LevelData = new LevelData(); private static const _levelEditor:Boolean = true; public static const debug:Boolean = false; public static const GAME_HEIGHT:int = 550; public static const GAME_WIDTH:int = 700; private static const _assets:Assets = new Assets(); private static var _player:Player; public static var isMochiConnect:Boolean = false; private static var _current:Main; public function Main():void{ addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); _player = Player.instance; } public function clearAll():void{ SoundManager.instance.stopAllSounds(); if (_menu){ removeChild(_menu); _menu = null; }; if (_game){ removeChild(_game); _game = null; }; if (_levelEditor){ removeChild(_levelEditor); _levelEditor = null; }; } public function showMenu():void{ clearAll(); _menu = new Menu(); addChild(_menu); _menu.showMenu(); } public function draw(_arg1:Event):void{ var _local5:String; removeEventListener(Event.ADDED_TO_STAGE, draw); var _local2:Array = ["armorgames.com", "file://"]; var _local3:Boolean; var _local4:String = this.root.loaderInfo.url; for each (_local5 in _local2) { if (_local4.indexOf(_local5) != -1){ _local3 = true; }; }; if (!_local3){ return; }; stage.scaleMode = StageScaleMode.EXACT_FIT; stage.align = StageAlign.TOP_LEFT; stage.quality = StageQuality.HIGH; stage.frameRate = 60; _slot1.current = this; this.addSounds(); if (((((loaderInfo.parameters) && ((loaderInfo.parameters.edit == "true")))) && ((_slot1.debug == true)))){ showLevelEditor(); } else { if (!_slot1.debug){ showSplashScreen(); } else { showMenu(); }; }; } private function onSplashTweenComplete():void{ _splashContainer.removeChild(_splash); removeChild(_splashContainer); _splash = null; _splashContainer = null; } private function removeSplash():void{ _slot1.log("Main: Splash Complete"); TweenMax.to(_splashContainer, 0.3, {alpha:0, onComplete:onSplashTweenComplete}); } public function showSplashScreen():void{ var mask:Sprite; _splash = new Assets.Splash(); _splash.addEventListener(Event.ENTER_FRAME, onSplashFrame, false, 0, true); _splash.x = (_slot1.GAME_WIDTH * 0.5); _splash.y = (_slot1.GAME_HEIGHT * 0.5); _splashContainer = new Sprite(); _splashContainer.buttonMode = true; _splashContainer.addChild(_splash); mask = new Sprite(); mask.graphics.beginFill(0xFF0000); mask.graphics.drawRect(0, 0, 640, 480); mask.x = 30; mask.y = 40; _splashContainer.addChild(mask); _splash.mask = mask; addChild(_splashContainer); _splashContainer.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.armorgames.com"), "_blank"); }); } public function showLevelEditor(_arg1:Object=null):void{ clearAll(); if (_arg1 != null){ _levelEditor = new LevelEditor(_arg1); } else { _levelEditor = new LevelEditor(); }; addChild(_levelEditor); } public function startGameByLevel(_arg1:Object):void{ clearAll(); _game = new Game(); addChild(_game); _game.drawEditorLevel(_arg1); } private function addSounds():void{ SoundManager.instance.addSound(new Assets.MenuMusic(), Assets.MENU_MUSIC); SoundManager.instance.addSound(new Assets.Crow1(), Assets.CROW1); SoundManager.instance.addSound(new Assets.Crow2(), Assets.CROW2); SoundManager.instance.addSound(new Assets.Burning(), Assets.BURNING); SoundManager.instance.addSound(new Assets.FireWhoosh(), Assets.FIRE_WHOOSH); SoundManager.instance.addSound(new Assets.GlassBreak(), Assets.GLASS_BREAK); SoundManager.instance.addSound(new Assets.GrassHit1(), Assets.GRASS_HIT1); SoundManager.instance.addSound(new Assets.GrassHit2(), Assets.GRASS_HIT2); SoundManager.instance.addSound(new Assets.GrassHit3(), Assets.GRASS_HIT3); SoundManager.instance.addSound(_slot1.assets.soundPop, Assets.SOUND_POP); SoundManager.instance.addSound(_slot1.assets.soundStarMove, Assets.SOUND_STARMOVE); SoundManager.instance.addSound(_slot1.assets.soundStarEarn, Assets.SOUND_STAREARN); SoundManager.instance.addSound(_slot1.assets.soundRise, Assets.SOUND_RISE); SoundManager.instance.addSound(_slot1.assets.soundBawong, Assets.SOUND_BAWONG); SoundManager.instance.addSound(_slot1.assets.soundFanfare, Assets.SOUND_FANFARE); SoundManager.instance.addSound(_slot1.assets.soundWallHit, Assets.SOUND_WALLHIT); SoundManager.instance.addSound(_slot1.assets.soundSquirrelLaugh, Assets.SOUND_LAUGH); SoundManager.instance.addSound(_slot1.assets.soundGroan, Assets.SOUND_GROAN); SoundManager.instance.addSound(_slot1.assets.soundCannon, Assets.SOUND_CANNON); SoundManager.instance.addSound(_slot1.assets.soundMeterFull, Assets.SOUND_METERFULL); SoundManager.instance.addSound(_slot1.assets.soundSQAlright, Assets.SOUND_SQALRIGHT); SoundManager.instance.addSound(_slot1.assets.soundSQEhhh, Assets.SOUND_SQEHHH); SoundManager.instance.addSound(_slot1.assets.soundSQHereICome, Assets.SOUND_SQHERE); SoundManager.instance.addSound(_slot1.assets.soundSQLookOut, Assets.SOUND_SQLOOKOUT); SoundManager.instance.addSound(_slot1.assets.soundSQMayHave, Assets.SOUND_SQMAYHAVE); SoundManager.instance.addSound(_slot1.assets.soundSQMoreMore, Assets.SOUND_SQMOREMORE); SoundManager.instance.addSound(_slot1.assets.soundSQOohh, Assets.SOUND_SQOOHH); SoundManager.instance.addSound(_slot1.assets.soundSQOohh2, Assets.SOUND_SQOOHH2); SoundManager.instance.addSound(_slot1.assets.soundSQWantBig, Assets.SOUND_SQWANTBIG); SoundManager.instance.addSound(_slot1.assets.soundSQWantMore, Assets.SOUND_SQWANTMORE); SoundManager.instance.addSound(_slot1.assets.soundSQWoohoo, Assets.SOUND_SQWOOHOO); SoundManager.instance.addSound(_slot1.assets.soundSQYipee, Assets.SOUND_SQYIPEE); SoundManager.instance.addSound(_slot1.assets.soundSQYipee2, Assets.SOUND_SQYIPEE2); } public function get menu():Menu{ return (_menu); } public function showLevelBrowser(_arg1:Number=undefined):void{ clearAll(); _menu = new Menu(); addChild(_menu); _menu.levelBrowser(_arg1); } private function onSplashFrame(_arg1:Event):void{ var _local2:MovieClip = (_arg1.target as MovieClip); if (_local2.currentFrame == (_local2.totalFrames - 30)){ showMenu(); stage.frameRate = 60; }; if (_local2.currentFrame == _local2.totalFrames){ _splash.removeEventListener(Event.ENTER_FRAME, onSplashFrame); _splash.stop(); this.removeSplash(); }; } public function startMiniGames():void{ clearAll(); _game = new Game(); addChild(_game); _game.drawMiniLevel(); } public function startBonusLevel(_arg1:int=1, _arg2:int=1):void{ clearAll(); _game = new Game(_arg1); addChild(_game); _game.drawBonusLevel(_arg2); } public function get game():Game{ return (_game); } public function startGame(_arg1:int=1, _arg2:Number=1):void{ clearAll(); _game = new Game(_arg1); addChild(_game); _game.drawLevel(_arg2); } public static function get assets():Assets{ return (_assets); } public static function log(_arg1:String):void{ if (_slot1.debug){ trace(_arg1); }; } public static function get levelData():LevelData{ return (_levelData); } public static function get levelEditor():Boolean{ return (_levelEditor); } public static function get sound():SoundManager{ return (SoundManager.instance); } public static function get player():Player{ return (_player); } public static function get text():Text{ return (_text); } public static function set current(_arg1:Main):void{ _current = _arg1; } public static function get current():Main{ return (_current); } } }//packageSection 398//Menu (Menu) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import flash.net.*; import com.gskinner.utils.*; import fl.motion.easing.*; import mochi.as3.*; import flash.ui.*; import flash.system.*; import fl.motion.*; public class Menu extends Sprite { private var _pibooButton:Sprite; private var _instructions:Sprite; private var _logo:Bitmap; private var _gradient:Bitmap; private var _bird:Sprite; private var _backgroundXDirection:Number; private var _stats:Stats; private var _playButton:Sprite; private var _music:SoundChannel; private var _backgroundYDirection:Number; private var _storeButton:Sprite; private var _grass:Sprite; private var _tileSpeed:Number;// = 2 private var _bitmapClip:BitmapClip; private var _background:SeamlessBackground; private var _backgroundFrameCount:Number;// = 1 private var _muteButton:MuteButton; private var _birdShown:Boolean; private var _levelBrowser:LevelBrowser; private var _topButton:Sprite; private var _mochiGamesBubble:Bitmap; private var _timers:Array; private var _backgroundFrameChange:Number;// = 1 private var _widgetShown:Boolean; private var _lbPanel:ScoresPanel; private var _backgroundSpeed:Number;// = 0.5 private static const ANIMATION_LENGTH:Number = 0.5; private static const BUTTON_PADDING:int = 20; private static const LOGO_PADDING:int = 0; private static const BUTTON_HEIGHT:int = 30; public static const EASE_IN:Function = Cubic.easeIn; public static const EASE_OUT:Function = Cubic.easeOut; public function Menu():void{ _timers = new Array(); super(); addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); } public function destroy(_arg1:Event):void{ var _local2:Timer; Main.log("Menu: Begin destroy"); removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); SoundManager.instance.stopSound(Assets.MENU_MUSIC); if (((_instructions) && (contains(_instructions)))){ removeChild(_instructions); }; _instructions = null; if (((_levelBrowser) && (contains(_levelBrowser)))){ removeChild(_levelBrowser); _levelBrowser.removeEventListener(LevelBrowserEvent.MENU, onMenuButtonClick); }; _levelBrowser = null; removeChild(_muteButton); _muteButton = null; if (contains(_pibooButton)){ removeChild(_pibooButton); }; _pibooButton = null; if (_background){ removeChild(_background); }; _background = null; _gradient = null; if (_grass){ removeChild(_grass); }; _grass = null; if (((_topButton) && (contains(_topButton)))){ removeChild(_topButton); _topButton.removeEventListener(MouseEvent.CLICK, onTopButtonClick); }; _topButton = null; if (_storeButton){ removeChild(_storeButton); _storeButton.removeEventListener(MouseEvent.CLICK, onStoreButtonClick); }; _storeButton = null; if (_playButton){ removeChild(_playButton); _playButton.removeEventListener(MouseEvent.CLICK, onPlayButtonClick); }; _playButton = null; for each (_local2 in _timers) { _local2.stop(); }; _timers = null; if (_stats){ removeChild(_stats); }; _stats = null; TweenMax.killAllTweens(); TweenMax.killAllDelayedCalls(); } public function levelBrowser(_arg1:Number=undefined):void{ if (!_levelBrowser){ _levelBrowser = new LevelBrowser(_arg1); _levelBrowser.addEventListener(LevelBrowserEvent.MENU, onMenuButtonClick, false, 0, true); addChild(_levelBrowser); }; Utility.centerClip(_levelBrowser); _levelBrowser.y = (_levelBrowser.y - 5); TweenLite.from(_levelBrowser, 0.6, {delay:0.5, x:(-(_levelBrowser.width) - 10), ease:Menu.EASE_OUT}); } private function onLogInOut(_arg1:Object):void{ Main.current.showMenu(); } private function onTopButtonClick(_arg1:MouseEvent):void{ this.hideMenu(); _lbPanel = new ScoresPanel(); _lbPanel.addEventListener(ScoresPanel.EVENT_HIDE, onScoresDoneButtonClick, false, 0, true); addChild(_lbPanel); } public function showMenu():void{ animateMenuIn(); } public function animateMenuIn():void{ var _local1:Point = new Point((Main.GAME_WIDTH * 0.5), (Main.GAME_HEIGHT * 0.5)); Utility.centerClip(_logo); _logo.x = (_logo.x + 10); _logo.visible = true; _logo.y = -(_logo.height); var _local2:Number = ((_local1.y - (_logo.height * 0.5)) - 110); Utility.centerClip(_playButton); _playButton.visible = true; _playButton.y = Main.GAME_HEIGHT; var _local3:Number = ((_local2 + _logo.height) + LOGO_PADDING); Utility.centerClip(_topButton); _topButton.visible = true; _topButton.y = ((Main.GAME_HEIGHT + BUTTON_HEIGHT) + BUTTON_PADDING); var _local4:Number = ((_local3 + BUTTON_HEIGHT) + BUTTON_PADDING); Utility.centerClip(_storeButton); _storeButton.visible = true; _storeButton.y = ((Main.GAME_HEIGHT + (BUTTON_HEIGHT * 2)) + (BUTTON_PADDING * 2)); var _local5:Number = ((_local4 + BUTTON_HEIGHT) + BUTTON_PADDING); TweenMax.to(_logo, ANIMATION_LENGTH, {y:_local2, ease:Menu.EASE_OUT}); TweenMax.to(_playButton, ANIMATION_LENGTH, {delay:0.1, y:_local3, ease:Menu.EASE_OUT}); TweenMax.to(_topButton, ANIMATION_LENGTH, {delay:0.165, y:_local4, ease:Menu.EASE_OUT}); TweenMax.to(_storeButton, ANIMATION_LENGTH, {delay:0.23, y:_local5, ease:Menu.EASE_OUT}); TweenMax.to(_pibooButton, 0.4, {x:5, y:(Main.GAME_HEIGHT - _pibooButton.height)}); } private function onScoresDoneButtonClick(_arg1:Event):void{ showMenu(); } private function onMenuButtonClick(_arg1:LevelBrowserEvent):void{ var e = _arg1; TweenMax.to(_levelBrowser, 0.6, {x:-((_levelBrowser.width - 50)), ease:Menu.EASE_IN, onComplete:function ():void{ removeChild(_levelBrowser); _levelBrowser.removeEventListener(LevelBrowserEvent.MENU, onMenuButtonClick); _levelBrowser = null; showMenu(); }}); } public function hideMenu():void{ TweenLite.to(_logo, ANIMATION_LENGTH, {y:-(_logo.height), ease:Menu.EASE_IN}); TweenLite.to(_storeButton, ANIMATION_LENGTH, {delay:0.1, y:((Main.GAME_HEIGHT + (BUTTON_HEIGHT * 2)) + (BUTTON_PADDING * 2)), ease:Menu.EASE_IN}); TweenLite.to(_topButton, ANIMATION_LENGTH, {delay:0.15, y:((Main.GAME_HEIGHT + BUTTON_HEIGHT) + BUTTON_PADDING), ease:Menu.EASE_IN}); TweenLite.to(_playButton, ANIMATION_LENGTH, {delay:0.2, y:Main.GAME_HEIGHT, ease:Menu.EASE_IN}); TweenMax.to(_pibooButton, 0.4, {y:(Main.GAME_HEIGHT + 5)}); } private function onPlayButtonClick(_arg1:MouseEvent):void{ var e = _arg1; hideMenu(); var selectTimer:Timer = new Timer(500, 1); selectTimer.addEventListener(TimerEvent.TIMER, function (_arg1:TimerEvent):void{ levelBrowser(); }); selectTimer.start(); } public function draw(_arg1:Event):void{ var b:Bitmap; var br:Bitmap; var e = _arg1; Main.log("Menu: Begin draw"); removeEventListener(Event.ADDED_TO_STAGE, draw); SoundManager.instance.playSound(Assets.MENU_MUSIC, 0.7, 0, 9999); _logo = new Assets.Logo(); _gradient = new Assets.MenuGradient(); _grass = new Sprite(); var g:Bitmap = new Assets.Grass(); g.y = ((Main.GAME_HEIGHT - g.height) + 6); var bl:Bitmap = new Assets.GrassBlur(); bl.y = ((Main.GAME_HEIGHT - bl.height) + 6); _grass.addChild(g); _grass.addChild(bl); addChild(_grass); var tile:Bitmap = new Assets.NutPattern(); var bm:BitmapData = new BitmapData(Main.GAME_WIDTH, Main.GAME_HEIGHT, true, BitmapDataChannel.ALPHA); bm.draw(tile); _background = new SeamlessBackground(Main.GAME_WIDTH, Main.GAME_HEIGHT, new Assets.NutPattern().bitmapData); _background.alpha = 1; _background.blendMode = BlendMode.OVERLAY; addChild(_gradient); addChild(_background); b = new Assets.SpringTerrain(); b.y = ((Main.GAME_HEIGHT - b.height) + 20); b.filters = [new BlurFilter(5, 5, 1)]; addChild(b); addChild(_logo); addChild(_grass); _pibooButton = new Sprite(); _pibooButton.addChild(new Assets.PibooButton()); _pibooButton.x = 5; _pibooButton.y = (Main.GAME_HEIGHT + 5); _pibooButton.buttonMode = true; addChild(_pibooButton); _pibooButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.armorgames.com"), "_blank"); }); _mochiGamesBubble = new Assets.MochiGamesBubble(); _mochiGamesBubble.alpha = 0; _bird = new Sprite(); br = new Bitmap(new BitmapData(37, 27)); br.x = (br.x - (br.width * 0.5)); br.y = (br.y - (br.height * 0.5)); _bird.addChild(br); _bird.x = (Main.GAME_WIDTH + 40); _bird.y = (Main.GAME_HEIGHT - 80); _bird.addChild(_mochiGamesBubble); _mochiGamesBubble.x = -110; _mochiGamesBubble.y = (-(_mochiGamesBubble.height) - 8); addChild(_bird); _bitmapClip = new BitmapClip(); _bitmapClip.importTileSheet(new Assets.BirdAnim().bitmapData, 37, 27, 6, 1); _bitmapClip.frameRate = 50; _bitmapClip.bitmapToUpdate = br; _bitmapClip.currentAnimation = 0; _bitmapClip.play(); _muteButton = new MuteButton(0.8); addChild(_muteButton); _muteButton.updateState(); _muteButton.x = ((Main.GAME_WIDTH - _muteButton.width) - 15); _muteButton.y = 15; _playButton = new Button(new Assets.MenuPlay(), Button.LIGHTEN); addChild(_playButton); _playButton.addEventListener(MouseEvent.CLICK, onPlayButtonClick, false, 0, true); var but:Sprite = new Sprite(); but.addChild(new Assets.MenuAndkon()); but.buttonMode = true; _storeButton = but; addChild(_storeButton); but.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.armorgames.com"), "_blank"); }); _topButton = new Button(new Assets.MenuTop(), Button.LIGHTEN); addChild(_topButton); _topButton.addEventListener(MouseEvent.CLICK, onTopButtonClick, false, 0, true); _logo.visible = false; _playButton.visible = false; _storeButton.visible = false; _topButton.visible = false; if (Main.debug){ _stats = new Stats(); addChild(_stats); }; } private function onLevelSelect(_arg1:LevelBrowserEvent):void{ Main.sound.stopSound(Assets.MENU_MUSIC); Main.current.startGame(_arg1.mapPack, _arg1.level); } public function update(_arg1:Event):void{ _bitmapClip.update((1000 / 60)); if (_backgroundFrameChange == _backgroundFrameCount){ _backgroundYDirection = Rnd.sign(); _backgroundXDirection = Rnd.sign(); _backgroundFrameChange = Rnd.integer(120, 300); _backgroundFrameCount = 1; } else { _backgroundFrameCount++; }; _background.move((_backgroundSpeed * _backgroundXDirection), (_backgroundSpeed * _backgroundYDirection)); } private function onStoreButtonClick(_arg1:MouseEvent):void{ } private function onLoginShow(_arg1:Object):void{ if (((_birdShown) || (_levelBrowser))){ return; }; var _local2:TweenGroup = new TweenGroup([{target:_bird, time:3, delay:1, x:"-120"}, {target:_mochiGamesBubble, time:1, alpha:1}, {target:_mochiGamesBubble, delay:4, time:1, alpha:0}, {target:_bird, time:3, x:"120"}], TweenMax, TweenGroup.ALIGN_SEQUENCE); _birdShown = true; } public function resetLevelBrowser(_arg1:Number=undefined):void{ if (((_levelBrowser) && (contains(_levelBrowser)))){ removeChild(_levelBrowser); }; _levelBrowser = null; levelBrowser(_arg1); } } }//packageSection 399//Message (Message) package { import flash.events.*; import flash.display.*; import gs.*; import flash.utils.*; public class Message extends Sprite { protected var _type:String; protected var _background:DisplayObject; private static const POSITIONY:int = 30; public static const TYPE_PRAISE:String = "praise"; public static const TYPE_MEDAL:String = "medal"; private static const SHOWLENGTH:int = 3000; public function Message(_arg1:String="praise"):void{ _type = _arg1; } public function hide():void{ TweenMax.to(this, 0.5, {x:-(this.width), onComplete:function ():void{ destroy(); }}); } public function draw(_arg1:DisplayObjectContainer):void{ _background = getBackground(); this.addChild(_background); _background.y = ((Main.GAME_HEIGHT - _background.height) - POSITIONY); _background.x = -(_background.width); this.alpha = 0.9; _arg1.addChild(this); show(); } public function destroy():void{ if (this.parent){ this.parent.removeChild(this); }; } protected function getBackground():DisplayObject{ return (new Assets.MessageBackground()); } public function show():void{ TweenMax.to(this, 0.5, {x:this.width}); var timer:Timer = new Timer(SHOWLENGTH, 1); timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ hide(); }); timer.start(); } } }//packageSection 400//MessageMedal (MessageMedal) package { import flash.text.*; import flash.display.*; public class MessageMedal extends Message { private var _medalType:String; public function MessageMedal(_arg1:String):void{ super(TYPE_MEDAL); _medalType = _arg1; } override protected function getBackground():DisplayObject{ var _local2:Bitmap; var _local1:Sprite = new Sprite(); var _local3:Bitmap = new Assets.MessageBackground(); var _local4:TextField = Text.instance.getText("", {size:14, color:0xFFFFFF}); switch (_medalType){ case Scores.MEDAL_NUT_COMBO: _local2 = new Assets.MedalNut(); _local4.text = "Combo King!"; break; case Scores.MEDAL_HUNTER: _local2 = new Assets.MedalBird(); _local4.text = "Big Bird Hunter!"; break; case Scores.MEDAL_HANGTIME: _local2 = new Assets.MedalSquirrel(); _local4.text = "Nice hang time!"; break; }; _local2.x = 20; _local2.y = ((_local3.height * 0.5) - (_local2.height * 0.5)); _local4.x = ((_local2.x + _local2.width) + 5); _local4.y = ((_local3.height * 0.5) - (_local4.height * 0.5)); _local1.addChild(_local3); _local1.addChild(_local2); _local1.addChild(_local4); return (_local1); } } }//packageSection 401//MessageText (MessageText) package { import flash.text.*; import flash.display.*; public class MessageText extends Message { private var _text:String; public function MessageText(_arg1:String):void{ super(TYPE_PRAISE); _text = _arg1; } override protected function getBackground():DisplayObject{ var _local1:Sprite = new Sprite(); var _local2:Bitmap = new Assets.MessageBackground(); var _local3:TextField = Text.instance.getText(_text, {size:18, color:0xFFFFFF, font:Text.BLOCKTBOLD, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); _local3.x = 20; _local3.y = ((_local2.height * 0.5) - (_local3.height * 0.5)); _local1.addChild(_local2); _local1.addChild(_local3); return (_local1); } } }//packageSection 402//MiniGameEndPanel (MiniGameEndPanel) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import flash.ui.*; public class MiniGameEndPanel extends Sprite { private var _scores:Scores; private var _container:Container; private var _submitButton:Button; private var _doneButton:Button; private var _text:Text; private var _background:Bitmap; private var _game:Game; private var _leaderBoard:Leaderboard; private var _replayButton:Button; public static const EVENT_SHOW:String = "show"; public static const EVENT_HIDE:String = "hide"; public function MiniGameEndPanel():void{ addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); _game = Main.current.game; _scores = _game.scores; _text = Text.instance; } private function onLeaderboardClose(_arg1:Event):void{ var _local2:TweenGroup = new TweenGroup([{target:_leaderBoard, time:0.5, y:-(_leaderBoard.height)}, {target:this, time:0.5, y:((Main.GAME_HEIGHT * 0.5) - (this.height * 0.5))}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } private function onDoneClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); Main.current.showLevelBrowser(MiniGames.id); } public function update(_arg1:Event):void{ } public function hide(_arg1:TimerEvent=null):void{ TweenMax.to(this, 0.5, {y:(-(this.height) - 20), onComplete:this.onHideComplete}); } public function draw(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, draw); _background = new Assets.WoodBackgroundSmall(); addChild(_background); var _local2:Bitmap = new Assets.MiniGameLogo(); _local2.x = ((_background.width * 0.5) - (_local2.width * 0.5)); _local2.y = -20; addChild(_local2); var _local3:TextField = _text.getText("Congratulations!", {size:38, color:0xFFFFFF, font:Text.BLOCKTREG, letterSpacing:0, border:true, borderColor:2956290, borderSize:13, multiline:false}); var _local4:TextField = _text.getText("Final Score:", {size:18, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:10, multiline:false}); var _local5:TextField = _text.getText(Utility.commafy(_scores.miniGameScore), {size:48, color:0xFFFFFF, font:Text.BLOCKTBOLD, letterSpacing:0, border:true, borderColor:2956290, borderSize:13, multiline:false}); _submitButton = new Button(new Assets.SubmitButton(), Button.LIGHTEN); _submitButton.addEventListener(MouseEvent.CLICK, onSubmitClick, false, 0, true); _submitButton.visible = false; var _local6:Container = new Container([_local4, _local5, _submitButton], Container.VERTICAL, Container.CENTER, {spacingY:-12}); _local6.adjust(_submitButton, 0, 25); _doneButton = new Button(new Assets.DoneButton(), Button.LIGHTEN); _doneButton.addEventListener(MouseEvent.CLICK, onDoneClick); _replayButton = new Button(new Assets.ReplayButton(), Button.LIGHTEN); _replayButton.addEventListener(MouseEvent.CLICK, onReplayClick, false, 0, true); var _local7:Container = new Container([_doneButton, _replayButton], Container.HORIZONTAL, Container.CENTER, {spacingX:10}); _container = new Container([_local3, _local6, new Assets.WoodDivider3(), _local7], Container.VERTICAL, Container.CENTER, {spacingY:18, width:_background.width}); _container.y = 90; addChild(_container); this.x = ((Main.GAME_WIDTH * 0.5) - (this.width * 0.5)); this.y = (-(this.height) - 20); this.show(); } private function onShowComplete():void{ } private function onHideComplete():void{ } private function onReplayClick(_arg1:MouseEvent):void{ this.parent.removeChild(this); Main.current.game.destroyLevel(); Main.current.game.drawMiniLevel(); } private function onSubmitClick(_arg1:MouseEvent):void{ var e = _arg1; e.stopPropagation(); if (!_leaderBoard){ _leaderBoard = new Leaderboard(MiniGames.instance.boardId, "MiniGames", _scores.miniGameScore, true); _leaderBoard.addEventListener(Leaderboard.EVENT_CLOSE, onLeaderboardClose, false, 0, true); parent.addChild(_leaderBoard); _leaderBoard.x = ((Main.GAME_WIDTH * 0.5) - (_leaderBoard.width * 0.5)); }; _leaderBoard.y = -(_leaderBoard.height); TweenMax.to(this, 0.5, {y:-(this.height), onComplete:function ():void{ _leaderBoard.show(); }}); var t:TweenGroup = new TweenGroup([{target:this, time:0.5, y:-(this.height)}, {target:_leaderBoard, time:0.5, y:((Main.GAME_HEIGHT * 0.5) - (_leaderBoard.height * 0.5))}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } public function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); _doneButton.removeEventListener(MouseEvent.CLICK, onDoneClick); _submitButton.removeEventListener(MouseEvent.CLICK, onSubmitClick); _replayButton.removeEventListener(MouseEvent.CLICK, onReplayClick); TweenMax.killTweensOf(this, false); _container = null; _doneButton = null; _submitButton = null; } public function show(_arg1:Boolean=false):void{ TweenMax.to(this, 0.5, {y:((stage.stageHeight / 2) - (this.height / 2)), onComplete:this.onShowComplete}); } } }//packageSection 403//MiniGamePanel (MiniGamePanel) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import flash.ui.*; public class MiniGamePanel extends Sprite { private var _scores:Scores; private var _container:Container; private var _text:Text; private var _background:Bitmap; private var _quitButton:Button; private var _game:Game; private var _title:String; private var _nextButton:Button; public static const EVENT_SHOW:String = "show"; public static const EVENT_HIDE:String = "hide"; public function MiniGamePanel(_arg1:String):void{ addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); _game = Main.current.game; _scores = _game.scores; _text = Text.instance; _title = _arg1.toUpperCase(); } public function update(_arg1:Event):void{ } public function draw(_arg1:Event):void{ var _local15:Bitmap; removeEventListener(Event.ADDED_TO_STAGE, draw); _background = new Assets.WoodBackgroundSmall(); addChild(_background); var _local2:Bitmap = new Assets.MiniGameLogo(); _local2.x = ((_background.width * 0.5) - (_local2.width * 0.5)); _local2.y = -20; addChild(_local2); var _local3:TextField = _text.getText(_title, {size:33, color:0xFFFFFF, font:Text.BLOCKTREGCOND, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); var _local4:TextField = _text.getText(Utility.commafy(_scores.levelScore), {size:28, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:10, multiline:false}); var _local5:Container = new Container([_local3, _local4], Container.VERTICAL, Container.CENTER, {spacingY:-3}); var _local6:TextField = _text.getText("Total Score:", {size:18, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:10, multiline:false}); var _local7:TextField = _text.getText(Utility.commafy(_scores.miniGameScore), {size:55, color:0xFFFFFF, font:Text.BLOCKTBOLD, letterSpacing:0, border:true, borderColor:2956290, borderSize:13, multiline:false}); var _local8:int = MiniGames.instance.totalLevels; var _local9:int = MiniGames.instance.currentLevel; var _local10:int; var _local11:Container = new Container(null, Container.HORIZONTAL, Container.CENTER, {spacingX:3}); var _local12 = 1; while (_local12 <= _local8) { if (_local12 <= _local9){ _local15 = new Assets.EndTargetStarOn(); } else { _local15 = new Assets.EndTargetStarOff(); }; _local11.addChild(_local15); _local12++; }; var _local13:Container = new Container([_local6, _local7, _local11], Container.VERTICAL, Container.CENTER, {spacingY:-12}); _local13.adjust(_local11, undefined, 15); _quitButton = new Button(new Assets.DoneButton()); _quitButton.addEventListener(MouseEvent.CLICK, onQuitClick); _nextButton = new Button(new Assets.ContinueButton()); _nextButton.addEventListener(MouseEvent.CLICK, onNextClick); var _local14:Container = new Container([_quitButton, _nextButton], Container.HORIZONTAL, Container.CENTER, {spacingX:10}); _container = new Container([_local5, new Assets.WoodDivider1(), _local13, new Assets.WoodDivider2(), _local14], Container.VERTICAL, Container.CENTER, {spacingY:18, width:_background.width}); _container.y = 90; addChild(_container); this.x = ((Main.GAME_WIDTH * 0.5) - (this.width * 0.5)); this.y = (-(this.height) - 20); this.show(); } private function onShowComplete():void{ } private function onHideComplete():void{ } private function onQuitClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); Main.current.showLevelBrowser(MiniGames.id); } public function hide(_arg1:TimerEvent=null):void{ TweenMax.to(this, 0.5, {y:(-(this.height) - 20), onComplete:this.onHideComplete}); } private function onNextClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); if (this.parent){ this.parent.removeChild(this); }; Main.current.game.destroyLevel(); Main.current.game.drawNextMiniLevel(); } public function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); _nextButton.removeEventListener(MouseEvent.CLICK, onNextClick); _quitButton.removeEventListener(MouseEvent.CLICK, onQuitClick); TweenMax.killTweensOf(this, false); _container = null; _quitButton = null; _nextButton = null; } public function show(_arg1:Boolean=false):void{ TweenMax.to(this, 0.5, {y:((Main.GAME_HEIGHT * 0.5) - (this.height / 2)), onComplete:this.onShowComplete}); } } }//packageSection 404//MiniGames (MiniGames) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import mochi.as3.*; import flash.ui.*; public class MiniGames { private var _boardId:String; private var _renderer:Renderer; private var _levels:Array; private var _current:int; public static const id:Number = 4132111121; private static var _instance:MiniGames; public function MiniGames(_arg1:SingletonEnforcer):void{ _boardId = "43eb228468c2891e"; init(); } public function get boardId():String{ return (_boardId); } public function load(_arg1:Renderer, _arg2:int=0):LevelBonus{ _renderer = _arg1; if (_arg2 == 0){ shuffle(); }; _current = _arg2; var _local3:Class = _levels[_current]; return (new _local3(_renderer)); } private function init():void{ _levels = [LevelBonusFat, LevelBonusClear, LevelBonusPeek, LevelBonusSkeet, LevelBonusSkinny, LevelBonusHide, LevelBonusFlock]; shuffle(); } public function get isEnd():Boolean{ if ((_current + 1) == _levels.length){ return (true); }; return (false); } public function get currentLevel():int{ return ((_current + 1)); } public function get totalLevels():int{ return (_levels.length); } public function nextLevel():int{ return ((_current + 1)); } public function shuffle():void{ _levels.sort(function ():Number{ var _local1:Number = (Math.round((Math.random() * 2)) - 1); return (_local1); }); } public static function get instance():MiniGames{ if (MiniGames._instance == null){ MiniGames._instance = new MiniGames(new SingletonEnforcer()); }; return (MiniGames._instance); } } }//package class SingletonEnforcer { private function SingletonEnforcer(){ } }Section 405//MuteButton (MuteButton) package { import flash.events.*; import flash.display.*; import gs.*; public class MuteButton extends SimpleButton { private var _soundOff:Sprite; private var _soundOn:Sprite; private var _alpha:Number;// = 0.6 public function MuteButton(_arg1:Number=0.3):void{ addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); if (_arg1){ _alpha = _arg1; }; } private function draw(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, draw); _soundOn = Main.assets.soundIcon; _soundOff = Main.assets.soundIconOff; this.upState = _soundOn; this.overState = _soundOn; this.downState = _soundOn; this.hitTestState = _soundOn; this.alpha = _alpha; addEventListener(MouseEvent.MOUSE_OVER, onSoundButtonOver, false, 0, true); addEventListener(MouseEvent.MOUSE_OUT, onSoundButtonOut, false, 0, true); addEventListener(MouseEvent.CLICK, onSoundButtonClick, false, 0, true); } public function updateState():void{ if (Main.sound.isMuted){ this.mute(); } else { this.unmute(); }; } public function update(_arg1:Event):void{ } private function onSoundButtonOut(_arg1:MouseEvent):void{ TweenMax.to(this, 0.3, {alpha:_alpha}); } public function unmute():void{ Main.sound.unmuteAllSounds(); this.upState = _soundOn; this.overState = _soundOn; this.downState = _soundOn; } private function onSoundButtonClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); if (Main.sound.isMuted){ this.unmute(); } else { this.mute(); }; } private function onSoundButtonOver(_arg1:MouseEvent):void{ TweenMax.to(this, 0.3, {alpha:1}); } public function mute():void{ Main.sound.muteAllSounds(); this.upState = _soundOff; this.overState = _soundOff; this.downState = _soundOff; } private function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); _soundOn = null; _soundOff = null; removeEventListener(MouseEvent.MOUSE_OVER, onSoundButtonOver); removeEventListener(MouseEvent.MOUSE_OUT, onSoundButtonOut); removeEventListener(MouseEvent.CLICK, onSoundButtonClick); } } }//packageSection 406//Nut (Nut) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import com.gskinner.utils.*; public class Nut extends Sprite { protected var _group:Group; protected var _id:Number; protected var _acorn:Bitmap; protected var _isHit:Boolean; protected var _rotationAmount:Number; protected var _elasticity:Number; protected var _particle:CircleParticle; protected var _size:Number; protected var _friction:Number; protected var _timers:Array; protected var _move:Boolean; public var type:int; public static const NORMAL_NUT:int = 1; public static const FAT_NUT:int = 5; public static const CLONE_NUT:int = 2; public static const GEM_NUT:int = 4; public static const FLAMING_NUT:int = 3; public function Nut(_arg1:Group):void{ _group = _arg1; _timers = []; _elasticity = 0.8; _friction = 0; _size = 10; _isHit = false; _move = false; type = NORMAL_NUT; _rotationAmount = Rnd.float(-2, 2); } public function get size():Number{ return (_size); } public function fall():void{ _move = true; } public function draw(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number):void{ createDisplayObject(); _acorn.x = (_acorn.x - (_acorn.width * 0.5)); _acorn.y = (_acorn.y - (_acorn.height * 0.5)); addChild(_acorn); this.x = _arg2; this.y = _arg3; _arg1.addChild(this); _particle = new CircleParticle(this.x, this.y, _size); _particle.fixed = false; _particle.elasticity = _elasticity; _particle.friction = _friction; _particle.mass = 10; _particle.visible = false; _particle.name = "nut"; _particle.addEventListener(CollisionEvent.COLLIDE, onCollision, false, 0, true); _group.addParticle(_particle); addEventListener(Event.ENTER_FRAME, update, false, 0, true); } protected function createDisplayObject():void{ _acorn = new Assets.NutNormal(); } public function get particle():CircleParticle{ return (_particle); } public function update(_arg1:Event):void{ if (_isHit){ x = _particle.px; y = _particle.py; rotation = (rotation + _rotationAmount); scaleX = (scaleX - 0.002); scaleY = (scaleY - 0.002); _particle.addForce(new VectorForce(false, 0, 15)); } else { if (_move){ this.x = _particle.px; this.y = _particle.py; }; }; } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, update); _particle.removeEventListener(CollisionEvent.COLLIDE, onCollision); _particle.cleanup(); _group.removeParticle(_particle); _particle = null; removeChild(_acorn); if (this.parent){ this.parent.removeChild(this); }; _acorn = null; _group = null; } public function onCollision(_arg1:CollisionEvent):void{ if (_arg1.collidingItem.name == "squirrel"){ dispatchEvent(new NutEvent(NutEvent.HIT, false, false, this)); _isHit = true; _particle.collidable = false; }; } public function turnOffBounce():void{ _particle.elasticity = -1.3; _particle.friction = 0; } public function get id():Number{ return (_id); } public function turnOnBounce():void{ _particle.elasticity = _elasticity; _particle.friction = _friction; } public function set id(_arg1:Number):void{ _id = _arg1; } } }//packageSection 407//NutEvent (NutEvent) package { import flash.events.*; public class NutEvent extends Event { private var _nut:Nut; public static const HIT:String = "hit"; public function NutEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Nut=null){ super(_arg1, _arg2, _arg3); _nut = _arg4; } public function get nut():Nut{ return (_nut); } } }//packageSection 408//NutFat (NutFat) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; public class NutFat extends Nut { protected var _active:Boolean; protected var _gravity:Number; public static const HIT_FLOOR:String = "hit_foor"; public function NutFat(_arg1:Group):void{ super(_arg1); type = Nut.FAT_NUT; _active = false; _gravity = 2; } public function set active(_arg1:Boolean):void{ _active = _arg1; } override public function draw(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number):void{ _size = 50; super.draw(_arg1, _arg2, _arg3); } public function setScale(_arg1:Number):void{ this.scaleX = _arg1; this.scaleY = _arg1; _particle.radius = (_particle.radius * _arg1); } override public function update(_arg1:Event):void{ if (_active){ super.update(_arg1); x = _particle.px; y = _particle.py; rotation = (rotation + _rotationAmount); _particle.addForce(new VectorForce(false, 0, _gravity)); }; } override public function onCollision(_arg1:CollisionEvent):void{ if (_arg1.collidingItem.name == "squirrel"){ dispatchEvent(new NutEvent(NutEvent.HIT, false, false, this)); _isHit = false; _particle.collidable = true; } else { if (((_arg1.collidingItem) && ((_arg1.collidingItem.sprite.name == "floor")))){ SoundManager.instance.playRandomSound([Assets.GRASS_HIT1, Assets.GRASS_HIT2, Assets.GRASS_HIT3], 0.2); dispatchEvent(new Event(NutFat.HIT_FLOOR)); }; }; SoundManager.instance.playSound(Assets.GLASS_BREAK); } public function set gravity(_arg1:Number):void{ _gravity = _arg1; } override protected function createDisplayObject():void{ _acorn = new Assets.NutFat(); _acorn.smoothing = true; } } }//packageSection 409//NutFire (NutFire) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import com.gskinner.utils.*; import flash.ui.*; public class NutFire extends Nut { private var _bitmapClip:BitmapClip; public function NutFire(_arg1:Group):void{ super(_arg1); } override public function draw(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number):void{ super.draw(_arg1, _arg2, _arg3); _particle.type = Nut.FLAMING_NUT.toString(); _bitmapClip = new BitmapClip(); _bitmapClip.importTileSheet(new Assets.NutFire().bitmapData, 30, 30); _bitmapClip.frameRate = 30; _bitmapClip.bitmapToUpdate = _acorn; _acorn.x = (_acorn.x - 1); _acorn.y = (_acorn.y - 1); } override protected function createDisplayObject():void{ _acorn = new Bitmap(new BitmapData(30, 30, true, 0)); } override public function update(_arg1:Event):void{ var type:int; var cont:Sprite; var smoke:Bitmap; var e = _arg1; super.update(e); _bitmapClip.update((1000 / 60)); if (Rnd.boolean(0.05)){ type = Rnd.integer(0, 3); cont = new Sprite(); switch (type){ case 0: smoke = new Assets.SmokePuff1(); break; case 1: smoke = new Assets.SmokePuff2(); break; case 2: smoke = new Assets.SmokePuff3(); break; }; smoke.scaleX = 0.3; smoke.scaleY = 0.3; smoke.x = (-(smoke.width) * 0.5); smoke.y = (-(smoke.height) * 0.5); cont.addChild(smoke); cont.x = this.x; cont.y = (this.y - 9); cont.x = (cont.x + Rnd.integer(-5, 5)); parent.addChildAt(cont, parent.getChildIndex(this)); TweenMax.to(cont, 2, {alpha:0, y:"-20", onComplete:function (_arg1:Sprite):void{ _arg1.parent.removeChild(_arg1); }, onCompleteParams:[cont]}); }; } override public function onCollision(_arg1:CollisionEvent):void{ super.onCollision(_arg1); } } }//packageSection 410//NutGem (NutGem) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import com.flashdynamix.motion.extras.*; import com.gskinner.utils.*; import flash.ui.*; public class NutGem extends Nut { private var _bitmapClip:BitmapClip; private var _emitter:Emitter; public function NutGem(_arg1:Group):void{ super(_arg1); type = Nut.GEM_NUT; } override public function onCollision(_arg1:CollisionEvent):void{ super.onCollision(_arg1); _emitter.burst(4); SoundManager.instance.playSound(Assets.GLASS_BREAK); } override public function draw(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number):void{ super.draw(_arg1, _arg2, _arg3); _bitmapClip = new BitmapClip(); _bitmapClip.importTileSheetAnimations(new Assets.NutGemAnim().bitmapData, 29, 29, 6, 3); _bitmapClip.frameRate = 30; _bitmapClip.bitmapToUpdate = _acorn; _bitmapClip.gotoAndStop(0); _bitmapClip.playOnce(1); _emitter = new Emitter(Assets.GemShard, {y:"130", alpha:0, rotation:"-180,180"}, 2, 1, "0,180", 20, 1); _emitter.stop(); _emitter.x = this.x; _emitter.y = this.y; _arg1.addChildAt(_emitter.holder, _arg1.getChildIndex(this)); } override public function update(_arg1:Event):void{ super.update(_arg1); _bitmapClip.update((1000 / 60)); if (Rnd.boolean(0.005)){ _bitmapClip.playOnce(Rnd.integer(1, 4)); }; } override public function destroy():void{ super.destroy(); if (((((_emitter) && (_emitter.holder))) && (_emitter.holder.parent))){ _emitter.holder.parent.removeChild(_emitter.holder); _emitter.dispose(); }; _emitter = null; } override protected function createDisplayObject():void{ _acorn = new Bitmap(new BitmapData(29, 29, true, 0)); } } }//packageSection 411//NutManager (NutManager) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; public class NutManager extends EventDispatcher { private var _group:Group; private var _isCollidable:Boolean; private var _nutCount:int; private var _nuts:Array; private var _squirrelGroup:Group; private var _nutsClear:Boolean; private var _hud:GameHud; private var _notifyGame:Boolean; private var _canvas:DisplayObjectContainer; public static const SHOT_COMPLETE:String = "shot_complete"; public function NutManager(_arg1:DisplayObjectContainer):void{ _group = new Group(false); APEngine.addGroup(_group); _squirrelGroup = Main.current.game.squirrels.group; _squirrelGroup.addCollidable(_group); _nuts = []; _canvas = _arg1; _hud = Main.current.game.hud; _nutCount = 0; _notifyGame = true; } public function destroy():void{ _canvas = null; _hud = null; _group.cleanup(); APEngine.removeGroup(_group); _squirrelGroup.removeCollidable(_group); _group = null; clear(); _nuts = null; } public function onNutHit(_arg1:NutEvent):void{ var _local2:Nut = _arg1.nut; _hud.showNutPop(_local2.x, _local2.y); _nutCount--; if (_notifyGame){ Main.current.game.onNutHit(_arg1); }; } public function get items():Array{ return (_nuts); } public function update():void{ var _local1:Nut; for each (_local1 in _nuts) { if (_local1.y > Main.GAME_HEIGHT){ removeNut(_local1); }; }; } public function clear():void{ var _local1:Nut; for each (_local1 in _nuts) { removeNut(_local1); }; } public function spawnNut(_arg1:int, _arg2:Number, _arg3:Number):Nut{ var _local4:Nut; switch (_arg1){ case Nut.NORMAL_NUT: _local4 = new Nut(_group); break; case Nut.CLONE_NUT: _local4 = new NutSpawn(_group); break; case Nut.FLAMING_NUT: _local4 = new NutFire(_group); break; case Nut.GEM_NUT: _local4 = new NutGem(_group); break; case Nut.FAT_NUT: _local4 = new NutFat(_group); break; }; _local4.draw(_canvas, _arg2, _arg3); _local4.addEventListener(NutEvent.HIT, onNutHit, false, 0, true); _nuts.push(_local4); _nutCount++; return (_local4); } public function get count():int{ return (_nutCount); } public function get canvas():DisplayObjectContainer{ return (_canvas); } public function turnOffBounce():void{ var _local1:Nut; for each (_local1 in _nuts) { _local1.turnOffBounce(); }; } public function set isCollidable(_arg1:Boolean):void{ _isCollidable = _arg1; changeCollision(_isCollidable); } private function changeCollision(_arg1:Boolean):void{ var _local2:Nut; for each (_local2 in _nuts) { _local2.particle.collidable = _arg1; }; } public function turnOnBounce():void{ var _local1:Nut; for each (_local1 in _nuts) { _local1.turnOnBounce(); }; } public function removeNut(_arg1:Nut):void{ if (_nuts.length == 0){ return; }; _arg1.removeEventListener(NutEvent.HIT, onNutHit); _nuts.splice(_nuts.indexOf(_arg1), 1); _arg1.destroy(); } public function get isCollidable():Boolean{ return (_isCollidable); } public function set notifyGame(_arg1:Boolean):void{ _notifyGame = _arg1; } public function set canvas(_arg1:DisplayObjectContainer):void{ _canvas = _arg1; } public function get group():Group{ return (_group); } } }//packageSection 412//NutSpawn (NutSpawn) package { import org.cove.ape.*; import flash.geom.*; public class NutSpawn extends Nut { public function NutSpawn(_arg1:Group):void{ super(_arg1); } override public function onCollision(_arg1:CollisionEvent):void{ super.onCollision(_arg1); Main.current.game.squirrels.spawnSquirrel(new Point(x, y), 200, 150); Main.current.game.squirrels.spawnSquirrel(new Point(x, y), 320, 150); } override protected function createDisplayObject():void{ _acorn = new Assets.NutClone(); } } }//packageSection 413//Particles (Particles) package { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.filters.*; import com.gskinner.utils.*; import flash.ui.*; public class Particles extends Sprite { protected var _class:Class; protected var _max:int; protected var _paused:Boolean; protected var _particles:Array; protected var _queue:Array; protected var _angle:Number; protected var _spawn:Number; public static const MAX:int = 3; public static const RANDOM_ANGLE:Number = 0; public static const RANDOM_SPAWN:Number = 0; public function Particles(_arg1:Class):void{ _class = _arg1; _particles = []; _queue = []; _paused = false; _max = MAX; _spawn = RANDOM_SPAWN; _angle = RANDOM_ANGLE; addEventListener(Event.ENTER_FRAME, update); } public function resume():void{ _paused = false; } public function get particle():Class{ return (_class); } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, update); _particles = null; _queue = null; _class = null; if (this.parent){ this.parent.removeChild(this); }; } public function update(_arg1:Event):void{ var _local2:Object; var _local3:int; var _local4:Bitmap; var _local5:Object; var _local6:Bitmap; if (_paused){ return; }; if (((Rnd.boolean(_spawn)) && (!((_queue.length == 0))))){ _particles.push(initObject(_queue.pop())); }; for each (_local2 in _particles) { _local4 = _local2.bitmap; _local2.bitmap.x = (_local4.x + _local2.speed); _local4.y = (_local4.y + _local2.angle); if (Rnd.boolean(_angle)){ _local2.angle = Rnd.float(-0.2, 0.2); }; }; _local3 = 0; while (_local3 < _particles.length) { _local5 = _particles[_local3]; _local6 = _local5.bitmap; if ((((((_local6.x >= Main.GAME_WIDTH)) || ((_local6.y >= Main.GAME_HEIGHT)))) || ((_local6.y < 0)))){ _local6.visible = false; _particles.splice(_particles.indexOf(_local5), 1); _queue.push(_local5); _local3--; }; _local3++; }; } public function draw(_arg1:DisplayObjectContainer):void{ createParticles(); _arg1.addChild(this); } public function initObject(_arg1:Object):Object{ var _local2:Bitmap = Bitmap(_arg1.bitmap); _local2.x = -60; _local2.y = Rnd.integer(400, (Main.GAME_HEIGHT - 75)); _local2.visible = true; _local2.rotation = Rnd.integer(-40, 40); _arg1.speed = Rnd.float(0.3, 0.8); _arg1.angle = Rnd.float(-0.6, 0.6); return (_arg1); } public function createParticles():void{ var _local2:Bitmap; var _local3:Object; var _local1:int = _max; while (_local1--) { _local2 = Bitmap(new particle()); _local3 = {bitmap:_local2, speed:0, angle:0}; _queue.push(_local3); addChild(_local2); _local2.visible = false; _local2.alpha = 1; }; } public function pause():void{ _paused = true; } } }//packageSection 414//ParticlesSnow (ParticlesSnow) package { import flash.events.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.filters.*; import com.gskinner.utils.*; import flash.ui.*; public class ParticlesSnow extends Particles { public var _flakes:Array; public static const MAX:int = 50; public static const RANDOM_ANGLE:Number = 0; public static const RANDOM_SPAWN:Number = 0; public function ParticlesSnow():void{ super(Assets.Flake1); _max = MAX; _spawn = RANDOM_SPAWN; _angle = RANDOM_ANGLE; _flakes = [Assets.Flake1, Assets.Flake2, Assets.Flake3]; } override public function destroy():void{ removeEventListener(Event.ENTER_FRAME, update); _particles = null; _queue = null; _class = null; if (this.parent){ this.parent.removeChild(this); }; } override public function draw(_arg1:DisplayObjectContainer):void{ var _local3:Object; var _local4:Bitmap; super.draw(_arg1); var _local2:int; while (_local2 < _queue.length) { _local3 = _queue[_local2]; initObject(_local3); _local4 = _local3.bitmap; _local4.x = Rnd.integer(10, Main.GAME_WIDTH); _local4.y = Rnd.integer(10, Main.GAME_HEIGHT); _queue.splice(_queue.indexOf(_local3), 1); _particles.push(_local3); _local2--; _local2++; }; } override public function get particle():Class{ return (Class(_flakes[Rnd.integer(0, _flakes.length)])); } override public function update(_arg1:Event):void{ var _local2:Object; var _local3:int; var _local4:Bitmap; var _local5:Object; var _local6:Bitmap; if (_paused){ return; }; if (((Rnd.boolean(RANDOM_SPAWN)) && (!((_queue.length == 0))))){ _particles.push(initObject(_queue.pop())); }; for each (_local2 in _particles) { _local4 = _local2.bitmap; _local2.bitmap.x = (_local4.x + _local2.angle); _local4.y = (_local4.y + _local2.speed); }; _local3 = 0; while (_local3 < _particles.length) { _local5 = _particles[_local3]; _local6 = _local5.bitmap; if ((((((_local6.x >= Main.GAME_WIDTH)) || ((_local6.y >= Main.GAME_HEIGHT)))) || ((_local6.x <= 0)))){ _local6.visible = false; _particles.splice(_particles.indexOf(_local5), 1); _queue.push(_local5); _local3--; }; _local3++; }; } override public function initObject(_arg1:Object):Object{ var _local2:Bitmap = Bitmap(_arg1.bitmap); _local2.x = Rnd.integer(0, (Main.GAME_WIDTH - 75)); _local2.y = -5; _local2.pixelSnapping = PixelSnapping.NEVER; _local2.visible = true; _local2.alpha = Rnd.float(0.1, 0.5); _arg1.speed = Rnd.float(0.3, 0.8); _arg1.angle = Rnd.float(-0.6, 0.6); return (_arg1); } } }//packageSection 415//PausePanel (PausePanel) package { import flash.events.*; import flash.text.*; import flash.display.*; import gs.*; public class PausePanel extends Sprite { private var _quitButton:Button; private var _playButton:Button; private var _resetButton:Button; private var _background:Bitmap; private var _endButton:Button; private var _game:Game; public static const EVENT_SHOW:String = "show"; public static const EVENT_HIDE:String = "hide"; public function PausePanel():void{ _game = Main.current.game; addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); } public function destroy(_arg1:Event):void{ trace("pause panel destroy"); removeEventListener(Event.REMOVED_FROM_STAGE, destroy); TweenMax.killTweensOf(this, false); _playButton.removeEventListener(MouseEvent.CLICK, onPlayClick); _resetButton = null; _quitButton = null; _endButton = null; _quitButton = null; _playButton = null; } public function draw(_arg1:DisplayObjectContainer):void{ var a_canvas = _arg1; a_canvas.addChild(this); _background = new Assets.WoodBackgroundSmall(); addChild(_background); var title:TextField = Text.instance.getText("GAME PAUSED", {size:43, color:0xFFFFFF, font:Text.BLOCKTREGCOND, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); title.x = ((_background.width * 0.5) - (title.width * 0.5)); title.y = 16; addChild(title); var key:TextField = Text.instance.getText("(p)", {size:24, color:0xFFFFFF, font:Text.BLOCKTREGCOND, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); key.x = ((title.x + title.width) + 6); key.y = (((title.y + title.height) - key.height) - 6); addChild(key); _playButton = new Button(new Assets.PauseButton(), Button.LIGHTEN); _playButton.overState = new Assets.PlayButton(); _playButton.addEventListener(MouseEvent.CLICK, onPlayClick); var what:TextField = Text.instance.getText("WHAT NOW?", {size:30, font:Text.BLOCKTREGCOND, color:0xFFFFFF, shadowDistance:4, shadowAlpha:0.3}); _resetButton = new Button(new Assets.ResetButton(), Button.LIGHTEN); _resetButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ _arg1.stopPropagation(); hide(); _game.resumeGame(); _game.resetLevel(); }); _quitButton = new Button(new Assets.QuitButton(), Button.LIGHTEN); _quitButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ _arg1.stopPropagation(); if (_game.isMiniGame){ Main.current.showLevelBrowser(MiniGames.id); } else { Main.current.showLevelBrowser(_game.mapPack.id); }; }); _endButton = new Button(new Assets.EndButton(), Button.LIGHTEN); _endButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ _arg1.stopPropagation(); hide(); _game.endCurrentLevel(); }); var bCont:Container = new Container([_quitButton, _resetButton, _endButton], Container.HORIZONTAL, Container.CENTER); var note:TextField = Text.instance.getText("(Use hot keys for quick access)", {size:16, font:Text.BLOCKTREG, color:0xFFFFFF, shadowDistance:4, shadowAlpha:0.3}); var cont:Container = new Container([_playButton, new Assets.WoodDivider3(), what, bCont, note], Container.VERTICAL, Container.CENTER, {spacingY:20}); cont.resize(480, 330); cont.adjust(bCont, 0, -10); cont.adjust(note, 0, -20); addChild(cont); cont.y = 80; } public function hide():void{ TweenMax.to(this, 0.5, {y:(-(this.height) - 20), onComplete:function ():void{ _game.resumeGame(); }}); } private function onPlayClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); hide(); } public function show(_arg1:Boolean=false):void{ Utility.centerClip(this); visible = true; alpha = 1; TweenMax.from(this, 0.5, {y:(-(height) - 20)}); } } }//packageSection 416//Player (Player) package { import flash.events.*; import levels.*; import flash.display.*; import org.cove.ape.*; import flash.net.*; import mochi.as3.*; import flash.ui.*; public class Player { private var _data:Object; private var _pack2Owned:Boolean; private var _items:Array; private var _minigames:Boolean; private var _unlockCheatOwned:Boolean; private var _availableSuits:Array; private var _isMochiUser:Boolean; private var _sessionBests:Array; private var _so:SharedObject; private static var _instance:Player; public function Player(_arg1:SingletonEnforcer):void{ _items = []; _pack2Owned = false; _unlockCheatOwned = false; _isMochiUser = false; _availableSuits = []; _so = SharedObject.getLocal("CGN2_game"); _data = _so.data; if (_so.size == 0){ createEmptyUser(_data); }; _sessionBests = []; loadEarnedSuits(); MochiCoins.addEventListener(MochiCoins.LOGGED_IN, onMochiLogin); MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, onItemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, onItemPurchased); MochiCoins.addEventListener(MochiCoins.LOGGED_OUT, onMochiLogOut); } public function get squirrelSuit():String{ if ((((_data.settings == null)) || ((_data.settings == undefined)))){ _data.settings = {squirrelSuit:Squirrel.NORMAL, useCheatMode:false}; }; return (_data.settings.squirrelSuit); } public function saveLevel(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):void{ var _local6:Object = getLevel(_arg1, _arg2); _local6.id = _arg2; if (_arg5){ _local6.hangTime = _arg5.hangTime; _local6.gameHunter = _arg5.gameHunter; _local6.bigCombo = _arg5.bigCombo; }; if (_arg3 > _local6.score){ _local6.score = _arg3; }; if (_arg4 < _local6.time){ _local6.time = _arg4; }; if (_isMochiUser){ MochiCoins.saveUserProperties(_data); } else { _so.flush(); }; saveSessionScore(_arg1, _arg2, _arg3); } public function set squirrelSuit(_arg1:String):void{ _data.settings.squirrelSuit = _arg1; if (_isMochiUser){ MochiCoins.saveUserProperties(_data); }; } private function onMochiLogin(_arg1:Object):void{ _data = _arg1.userProperties; _isMochiUser = true; if ((((_data.levelData == null)) || ((_data.levelData == undefined)))){ _data = createEmptyUser({}); }; loadSessionScores(); loadEarnedSuits(); } private function loadEarnedSuits():void{ var _local1:Object; var _local2:Object; _availableSuits = []; _availableSuits.push(Squirrel.NORMAL); for each (_local1 in Main.levelData.mapPacks) { _local2 = getPackMedals(_local1.id); if (_local2.total == 60){ _availableSuits.push(_local1.BONUS_SUIT); }; }; if (((hasMiniGames) && ((_availableSuits.indexOf(Squirrel.MOHAWK) < 0)))){ _availableSuits.push(Squirrel.MOHAWK); }; } public function saveBonusLevel(_arg1:Number, _arg2:Number, _arg3:int, _arg4:int):void{ var _local5:Object = getBonusLevel(_arg1, _arg2); if (((!(_local5.score)) || ((_arg3 > _local5.score)))){ _local5.score = _arg3; }; if (((!(_local5.hit)) || ((_arg4 > _local5.hit)))){ _local5.hit = _arg4; }; if (_isMochiUser){ MochiCoins.saveUserProperties(_data); } else { _so.flush(); }; saveSessionBonusScore(_arg1, _arg2, _arg3); } private function getSessionMapPack(_arg1:Number):Object{ var _local2:Object; var _local3:Object; for each (_local3 in _sessionBests) { if (_local3.id == _arg1){ _local2 = _local3; break; }; }; if (!_local2){ _local2 = createEmptyPack(_arg1); _sessionBests.push(_local2); }; return (_local2); } private function loadSessionScores():void{ var _local1:Object; var _local2:Object; var _local3:Object; var _local4:Object; for each (_local1 in _data.levelData) { _local2 = {id:_local1.id, bonusLevels:[], levels:[]}; for each (_local3 in _local1.levels) { _local2.levels.push(_local3.score); }; for each (_local4 in _local1.bonusLevels) { _local2.bonusLevels.push(_local4.score); }; _sessionBests.push(_local2); }; } public function getBonusLevel(_arg1:Number, _arg2:Number):Object{ var _local3:Array = getBonusLevelsByPackId(_arg1); if (!_local3){ _local3 = []; }; _arg2--; if (!_local3[_arg2]){ _local3[_arg2] = {score:0, hit:0, id:_arg2}; }; return (_local3[_arg2]); } private function createEmptyUser(_arg1:Object):Object{ _arg1.levelData = []; _arg1.bonusLevels = []; _arg1.miniGame = 0; _arg1.settings = {squirrelSuit:Squirrel.NORMAL, useCheatMode:false}; return (_arg1); } public function set useCheatMode(_arg1:Boolean):void{ if ((((_data.settings == null)) || ((_data.settings == undefined)))){ _data.settings = {squirrelSuit:Squirrel.NORMAL, useCheatMode:false}; }; _data.settings.useCheatMode = _arg1; if (_isMochiUser){ MochiCoins.saveUserProperties(_data); }; } private function onItemPurchased(_arg1:Object):void{ if (Boolean(_arg1.properties.unlockAll) == true){ useCheatMode = true; }; setItemFlags(_arg1); _items.push(_arg1); Main.current.showMenu(); } public function get isMochiUser():Boolean{ return (_isMochiUser); } public function getStageScoresByLevel(_arg1:Number, _arg2:int):Array{ var _local8:Object; _arg2--; var _local3:Array = getLevelsByPackId(_arg1); var _local4:int = (int((_arg2 / 5)) * 5); var _local5:int = (_local4 + 5); var _local6:Array = _local3.slice(_local4, _local5); var _local7:Array = []; for each (_local8 in _local6) { if (_local8){ _local7.push(_local8.score); } else { _local7.push(0); }; }; return (_local7); } public function saveMiniGameScore(_arg1:int):void{ if (((!(_data.miniGame)) || ((_data.miniGame < _arg1)))){ _data.miniGame = _arg1; }; if (_isMochiUser){ MochiCoins.saveUserProperties(_data); } else { _so.flush(); }; } public function get hasMiniGames():Boolean{ return (true); } public function get data():Object{ return (_data); } public function getBonusLevelsByPackId(_arg1:Number):Array{ var _local2:Object; var _local3:Object; for each (_local2 in _data.levelData) { if (_local2.id == _arg1){ if (!_local2.bonusLevels){ _local2.bonusLevels = []; }; return (_local2.bonusLevels); }; }; _local3 = createEmptyPack(_arg1); _data.levelData.push(_local3); return (_local3.bonusLevels); } private function saveSessionScore(_arg1:Number, _arg2:int, _arg3:Number):void{ var _local4:Object = getSessionMapPack(_arg1); var _local5:Number = _local4.levels[(_arg2 - 1)]; if (((!(_local5)) || ((_arg3 > _local5)))){ _local4.levels[(_arg2 - 1)] = _arg3; }; } private function onItemOwned(_arg1:Object):void{ setItemFlags(_arg1); _items.push(_arg1); } public function isSuitAvailable(_arg1:String):Boolean{ var _local2:String; for each (_local2 in _availableSuits) { if (_local2 == _arg1){ return (true); }; }; return (false); } public function getPackMedals(_arg1:Number):Object{ var _local4:Object; var _local2:Array = getLevelsByPackId(_arg1); var _local3:Object = {total:0, hangTime:0, gameHunter:0, bigCombo:0}; for each (_local4 in _local2) { if (_local4.hangTime == true){ _local3.hangTime = (_local3.hangTime + 1); }; if (_local4.gameHunter == true){ _local3.gameHunter = (_local3.gameHunter + 1); }; if (_local4.bigCombo == true){ _local3.bigCombo = (_local3.bigCombo + 1); }; }; _local3.total = ((_local3.hangTime + _local3.gameHunter) + _local3.bigCombo); return (_local3); } public function get levelData():Array{ return (_data.levelData); } public function get useCheatMode():Boolean{ if ((((_data.settings == null)) || ((_data.settings == undefined)))){ _data.settings = {squirrelSuit:Squirrel.NORMAL, useCheatMode:false}; }; return (_data.settings.useCheatMode); } public function getLevelsByPackId(_arg1:Number):Array{ var _local2:Object; var _local3:Object; for each (_local2 in _data.levelData) { if (_local2.id == _arg1){ return (_local2.levels); }; }; _local3 = createEmptyPack(_arg1); _data.levelData.push(_local3); return (_local3.levels); } public function hasPack(_arg1:Number):Boolean{ switch (_arg1){ case MapPack1.PACK_ID: return (true); case MapPack2.PACK_ID: return (hasMapPack2); }; return (false); } private function createEmptyLevel():Object{ var _local1:Object = {id:0, score:0, time:0, hangTime:false, gameHunter:false, bigCombo:false}; return (_local1); } public function getLevel(_arg1:Number, _arg2:Number):Object{ var _local3:Array = getLevelsByPackId(_arg1); _arg2--; if (!_local3[_arg2]){ _local3[_arg2] = createEmptyLevel(); }; return (_local3[_arg2]); } public function getPackSessionScore(_arg1:Number):int{ var _local4:int; var _local5:int; var _local2:int; var _local3:Object = getSessionMapPack(_arg1); for each (_local4 in _local3.bonusLevels) { _local2 = (_local2 + _local4); }; for each (_local5 in _local3.levels) { _local2 = (_local2 + _local5); }; return (_local2); } private function createEmptyPack(_arg1:Number):Object{ var _local2:Object = {id:int(_arg1), levels:[], bonusLevels:[]}; return (_local2); } public function getLevelScore(_arg1:Number, _arg2:Number):Number{ var _local3:Object = getLevel(_arg1, _arg2); return (_local3.score); } private function saveSessionBonusScore(_arg1:Number, _arg2:int, _arg3:Number):void{ var _local4:Object = getSessionMapPack(_arg1); var _local5:Number = _local4.bonusLevels[(_arg2 - 1)]; if (((!(_local5)) || ((_arg3 > _local5)))){ _local4.bonusLevels[(_arg2 - 1)] = _arg3; }; } private function onMochiLogOut(_arg1:Object):void{ _so = SharedObject.getLocal("CGN2_game"); _data = _so.data; if (_so.size == 0){ createEmptyUser(_data); }; _sessionBests = []; _isMochiUser = false; _minigames = false; _unlockCheatOwned = false; _pack2Owned = false; loadEarnedSuits(); } private function setItemFlags(_arg1:Object):void{ if (int(_arg1.properties.packId) == MapPack2.PACK_ID){ _pack2Owned = true; }; if (Boolean(_arg1.properties.unlockAll) == true){ _unlockCheatOwned = true; }; if (Boolean(_arg1.properties.suit) == true){ _availableSuits.push(_arg1.properties.type); }; if (Boolean(_arg1.properties.minigame) == true){ _minigames = true; if (_availableSuits.indexOf(Squirrel.MOHAWK) < 0){ _availableSuits.push(Squirrel.MOHAWK); }; }; } public function getMiniGameScore():int{ return (_data.miniGame); } public function get hasUnlockCheat():Boolean{ return (false); } public function get hasMapPack2():Boolean{ return (true); } public static function get instance():Player{ if (Player._instance == null){ Player._instance = new Player(new SingletonEnforcer()); }; return (Player._instance); } } }//package class SingletonEnforcer { private function SingletonEnforcer(){ } }Section 417//Preloader (Preloader) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.utils.*; public class Preloader extends MovieClip { private const WIDTH:int = 700; private const HEIGHT:int = 550; private const DEBUG:Boolean = false; private const LOADBAR_HEIGHT:int = 20; private var m_infoField:TextField; private var m_percentLoaded:Number;// = 0 public function Preloader(){ var _local1:Timer; super(); stop(); graphics.beginFill(0); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); m_infoField = Text.instance.getText("", {size:12, color:0xFFFFFF}); m_infoField.htmlText = "Loading..."; m_infoField.x = ((WIDTH / 2) - m_infoField.width); m_infoField.y = ((HEIGHT / 2) - (m_infoField.height - LOADBAR_HEIGHT)); addChild(m_infoField); if (DEBUG){ m_percentLoaded = 0; _local1 = new Timer(10, 100); _local1.addEventListener(TimerEvent.TIMER, onRootLoaderProgress); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, onRootLoaderComplete); _local1.start(); } else { loaderInfo.addEventListener(Event.INIT, onRootLoaderInit); loaderInfo.addEventListener(ProgressEvent.PROGRESS, onRootLoaderProgress); loaderInfo.addEventListener(Event.COMPLETE, onRootLoaderComplete); }; } private function onRootLoaderProgress(_arg1:Event):void{ var _local2:ProgressEvent; var _local3:Number; var _local4:Number; if (DEBUG){ m_percentLoaded = (m_percentLoaded + 0.01); } else { _local2 = ProgressEvent(_arg1); _local3 = _local2.target.bytesLoaded; _local4 = _local2.target.bytesTotal; m_percentLoaded = Math.round((_local3 / _local4)); }; m_infoField.htmlText = (("Loading..." + int((m_percentLoaded * 100))) + "%"); graphics.beginFill(0xFFFFFF); graphics.drawRect((WIDTH * 0.25), ((HEIGHT * 0.5) - LOADBAR_HEIGHT), (m_percentLoaded * (WIDTH * 0.5)), LOADBAR_HEIGHT); } private function onRootLoaderInit(_arg1:Event):void{ var _local2:Number = _arg1.target.bytesLoaded; var _local3:Number = _arg1.target.bytesTotal; m_percentLoaded = (_local2 / _local3); } private function onRootLoaderComplete(_arg1:Event):void{ removeChild(m_infoField); graphics.clear(); loaderInfo.removeEventListener(Event.INIT, onRootLoaderInit); loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onRootLoaderProgress); loaderInfo.removeEventListener(Event.COMPLETE, onRootLoaderComplete); nextFrame(); var _local2:Object = new Main(); addChild((_local2 as DisplayObject)); } } }//packageSection 418//Renderer (Renderer) package { import flash.events.*; import flash.display.*; public class Renderer extends EventDispatcher { private const MAX_LAYERS:int = 6; private var _canvasBitmap:Bitmap; public var canvas:Bitmap; private var _holder:Sprite; private var _renderers:Array; private var _canvasBmpData:BitmapData; private var _renderSurface:DisplayObjectContainer; public static const UI_LAYER:int = 6; public static const HUD_LAYER:int = 5; public static const GAME_LAYER:int = 3; public static const BACKGROUND_LAYER1:int = 1; public static const BACKGROUND_LAYER2:int = 2; public static const FOREGROUND_LAYER:int = 4; public function Renderer(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number){ var _local4:Sprite; super(); _holder = new Sprite(); var _local5 = 1; while (_local5 <= MAX_LAYERS) { _local4 = new Sprite(); _holder.addChild(_local4); _local5++; }; _renderSurface = _arg1; _renderSurface.addChild(_holder); } public function get hudLayer():Sprite{ return (getLayer(_slot1.HUD_LAYER)); } public function get uiLayer():Sprite{ return (getLayer(_slot1.UI_LAYER)); } public function dispose():void{ canvas = null; _holder = null; _canvasBmpData.dispose(); _canvasBmpData = null; _renderSurface.removeChild(canvas); _renderSurface = null; } public function update():void{ } public function getLayer(_arg1:int):Sprite{ if ((((_arg1 < 1)) || ((_arg1 > MAX_LAYERS)))){ throw (new Error(("<Renderer> Value must be between 1 and " + MAX_LAYERS))); }; return ((_holder.getChildAt((_arg1 - 1)) as Sprite)); } public function get gameLayer():Sprite{ return (getLayer(_slot1.GAME_LAYER)); } public function get backgroundLayer2():Sprite{ return (getLayer(_slot1.BACKGROUND_LAYER2)); } public function get backgroundLayer1():Sprite{ return (getLayer(_slot1.BACKGROUND_LAYER1)); } public function get foregroundLayer():Sprite{ return (getLayer(_slot1.FOREGROUND_LAYER)); } public function moveCanvas(_arg1:int, _arg2:int):void{ canvas.x = _arg1; canvas.y = _arg2; } } }//packageSection 419//RubberPeg (RubberPeg) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; public class RubberPeg extends EventDispatcher { protected var _group:Group; protected var _container:Sprite; protected var _sound:String; protected var _elasticity:Number; protected var _image:Class; protected var _ball:Bitmap; protected var _size:Number; protected var _timers:Array; protected var _paticle:CircleParticle; protected var _volume:Number; protected var _id:Number; public function RubberPeg(_arg1:Group):void{ _group = _arg1; _timers = []; _elasticity = 1.5; _size = 20; _sound = Assets.SOUND_BAWONG; _volume = 0.5; _container = new Sprite(); _image = Assets.RubberBall; } public function get size():Number{ return (_size); } public function get particle():CircleParticle{ return (_paticle); } public function get y():Number{ return (_container.y); } public function destroy():void{ _paticle.removeEventListener(CollisionEvent.COLLIDE, onCollision); _paticle.cleanup(); _group.removeParticle(_paticle); _paticle = null; _container.removeChild(_ball); if (_container.parent){ _container.parent.removeChild(_container); }; _container = null; _ball = null; _group = null; } public function draw(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number):void{ _ball = new _image(); _ball.x = (_ball.x - (_ball.width * 0.5)); _ball.y = (_ball.y - (_ball.height * 0.5)); _container.addChild(_ball); _container.x = _arg2; _container.y = _arg3; _arg1.addChild(_container); _paticle = new CircleParticle(_container.x, _container.y, _size); _paticle.fixed = true; _paticle.elasticity = _elasticity; _paticle.visible = false; _paticle.friction = 0; _paticle.addEventListener(CollisionEvent.COLLIDE, onCollision, false, 0, true); _group.addParticle(_paticle); } public function onCollision(_arg1:CollisionEvent):void{ Main.sound.playSound(_sound, _volume); } public function get id():Number{ return (_id); } public function set id(_arg1:Number):void{ _id = _arg1; } public function get x():Number{ return (_container.x); } } }//packageSection 420//Scores (Scores) package { import flash.events.*; import flash.utils.*; public class Scores { public var longestHangTime:Number; public var bigNutsHit:int; public var shotsTaken:int; public var gameHunter:Boolean; public var currentNutScore:int; public var nutsHitCurrentShot:int; public var miniGameScore:int; public var nutsHit:int; public var mostNutsHit:int; private var _hud:GameHud; public var shotScore:int; public var multiplier:int; private var _isBonusLevel:Boolean; private var _game:Game; public var totalShots:int; public var birdsHit:int; public var bigNutBonusNutCount:int; private var _gameHunterCount:int; public var hangTime:Boolean; public var multiplierMax:int; private var _shotTimer:Timer; public var levelScore:int; public var bigCombo:Boolean; public var missedBalls:int; public static const MULTIPLIER_BONUS:int = 5000; public static const BIGNUT_BONUS:int = 10000; private static const SHOT_RESET_MESSAGE:int = 20; public static const NUTGEM_SCORE:int = 500; public static const MEDAL_HANGTIME_COUNT:int = 10; public static const MEDAL_HUNTER_COUNT:int = 3; public static const NUT_SCORE:int = 100; public static const NUTGEM_STARS:int = 5; public static const MEDAL_HANGTIME:String = "hang"; public static const NUTGEM_BONUS:int = 5000; public static const MEDAL_NUT_COMBO_COUNT:int = 10; public static const BIRD_HIT:int = 5000; public static const MEDAL_HUNTER:String = "hunter"; public static const BIGNUT_MULTIPLIER:int = 5; public static const MEDAL_NUT_COMBO:String = "nutcombo"; public static const FIRE_MODE_LENGTH:int = 4; public static const BIGNUT_BONUS_NUT:int = 5000; public function Scores(_arg1:Game):void{ _game = _arg1; _hud = _game.hud; _shotTimer = new Timer(1000); _shotTimer.addEventListener(TimerEvent.TIMER, onShotTimerTick); setInitialValues(); } public function stopShotTimer():void{ _shotTimer.stop(); } public function shotFired():void{ shotsTaken++; } private function onShotTimerTick(_arg1:Event):void{ if ((((_shotTimer.currentCount == SHOT_RESET_MESSAGE)) && (!(_game.cannon.multiBall)))){ _game.hud.showResetMessage(); }; } public function setStarCount(_arg1:int):void{ multiplierMax = _arg1; } public function dispose():void{ _game = null; _shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimerTick); } private function awardMedals():void{ if (_isBonusLevel){ return; }; if (((!(gameHunter)) && ((_gameHunterCount >= MEDAL_HUNTER_COUNT)))){ gameHunter = true; _game.hud.awardMedal(MEDAL_HUNTER); }; if (((!(bigCombo)) && ((nutsHitCurrentShot >= MEDAL_NUT_COMBO_COUNT)))){ bigCombo = true; _game.hud.awardMedal(MEDAL_NUT_COMBO); }; if (((((_game.cannon.fired) && (!(hangTime)))) && ((_shotTimer.currentCount >= MEDAL_HANGTIME_COUNT)))){ hangTime = true; _game.hud.awardMedal(MEDAL_HANGTIME); }; } public function birdHit():void{ birdsHit++; _gameHunterCount++; awardMedals(); } public function levelReset():void{ multiplier = 0; currentNutScore = Scores.NUT_SCORE; levelScore = 0; nutsHit = 0; mostNutsHit = 0; missedBalls = 0; bigNutsHit = 0; longestHangTime = 0; totalShots = 0; missedBalls = 0; birdsHit = 0; bigCombo = false; gameHunter = false; hangTime = false; _gameHunterCount = 0; _isBonusLevel = false; shotsTaken = 0; shotReset(); } public function startShotTimer():void{ _shotTimer.start(); } public function addMultiplier(_arg1:Number):void{ multiplier = (multiplier + _arg1); if (multiplier > multiplierMax){ multiplier = multiplierMax; }; currentNutScore = (Scores.NUT_SCORE * multiplier); } public function setInitialValues():void{ multiplierMax = 10; miniGameScore = 0; levelReset(); } public function update():void{ awardMedals(); } public function addTotalMiniGameScore(_arg1:Number):void{ miniGameScore = (miniGameScore + _arg1); } public function reset():void{ setInitialValues(); } public function getMedals():Object{ var _local1:Object = {hangTime:hangTime, gameHunter:gameHunter, bigCombo:bigCombo}; return (_local1); } public function start():void{ } public function set isBonusLevel(_arg1:Boolean):void{ _isBonusLevel = _arg1; } public function bigNutHit():void{ bigNutsHit++; addMultiplier(Scores.BIGNUT_MULTIPLIER); awardMedals(); } public function get shotTime():int{ return (_shotTimer.currentCount); } public function nutHit():void{ nutsHitCurrentShot++; nutsHit++; awardMedals(); } public function resetShotTimer():void{ _shotTimer.reset(); } public function setMedals(_arg1:Object):void{ hangTime = _arg1.hangTime; gameHunter = _arg1.gameHunter; bigCombo = _arg1.bigCombo; } public function addScore(_arg1:Number):void{ var _local2:Number = this.levelScore; this.levelScore = (this.levelScore + _arg1); _game.hud.updateScore(_local2, this.levelScore); } public function shotReset():void{ _shotTimer.reset(); shotScore = 0; nutsHitCurrentShot = 0; bigNutBonusNutCount = 0; } } }//packageSection 421//ScoresPanel (ScoresPanel) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import mochi.as3.*; import flash.ui.*; public class ScoresPanel extends Sprite { private var _doneButton:Button; private var _level:Number; private var _player:Player; private var _scoreSubmit:Number; private var _text:Text; private var _levels:Array; private var _currentPackSprite:Sprite; private var _grid:Sprite; private var _thumbWidth:Number;// = 45 private var _lbWidth:Number;// = 430 private var _thumbPerRow:Number;// = 5 private var _buttons:Array; private var _background:Bitmap; private var _levelData:LevelData; private var _gridY:Number;// = 65 private var _gridContainer:Sprite; private var _thumbHeight:Number;// = 45 private var _packButtons:ButtonGroup; private var _thumbSpacing:Number;// = 15 private var _timers:Array; private var _packScreens:Array; private var _lbContainer:Leaderboard; private static const SCORE_STARTX:int = 175; private static const MEDAL_COUNT:Object = {size:36, color:0xFFFFFF, borderSize:8, borderColor:2956290, font:Text.BLOCKTREG}; private static const PACKBUTTON_STARTX:int = -5; private static const PACKBUTTON_STARTY:int = 90; private static const SCORE_STARTY:int = 90; private static const SECTION_LABEL:Object = {size:18, borderSize:6, borderColor:2956290, color:0xFFFFFF, letterSpacing:0, font:Text.BLOCKTREG}; public static const EVENT_SHOWBOARD:String = "showboard"; public static const EVENT_DONE:String = "doneclick"; public static const EVENT_SHOW:String = "show"; public static const EVENT_HIDE:String = "hide"; private static const SCORE:Object = {size:42, borderSize:8, borderColor:2956290, color:0xFFFFFF, letterSpacing:-1, multiline:false}; private static const MEDAL_NAME:Object = {size:18, color:0xFFFFFF, borderSize:8, borderColor:2956290, font:Text.BLOCKTREG}; private static const MEDAL_TOTAL:Object = {size:32, borderSize:8, borderColor:2956290, color:0xFFFFFF, font:Text.BLOCKTREG}; private static const PACKBUTTON_PADDING:int = 20; private static const MEDAL_OF:Object = {size:15, color:0xFFFFFF, border:false, font:Text.BLOCKTREG}; public function ScoresPanel():void{ _timers = new Array(); super(); addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); _levelData = Main.levelData; _packScreens = []; _text = Text.instance; _player = Player.instance; } private function onLeaderboardClose(_arg1:Event):void{ _lbContainer.removeEventListener(Leaderboard.EVENT_CLOSE, onLeaderboardClose); this.parent.removeChild(_lbContainer); _lbContainer = null; show(); } private function selectMiniGames():void{ if (((_currentPackSprite) && (_currentPackSprite.parent))){ removeChild(_currentPackSprite); }; _currentPackSprite = _packScreens[(_packScreens.length - 1)]; addChild(_currentPackSprite); } private function createMiniGameButton():Button{ var _local1:Button = new Button(new Assets.MiniButtonOff()); _local1.selectedState = new Assets.MiniButtonOn(); return (_local1); } private function drawMiniGameScreen():Sprite{ var panel:Sprite = new Sprite(); var logo:Bitmap = new Assets.MiniGameLogo2(); var tLabel:TextField = Text.instance.getText("Best Score:", {size:18, color:0xFFFFFF, font:new Assets.BlockTReg().fontName, letterSpacing:0, border:true, borderColor:2956290, borderSize:10, multiline:false}); var total:TextField = Text.instance.getText(Utility.commafy(Player.instance.getMiniGameScore()), {size:48, color:0xFFFFFF, font:Text.BLOCKTBOLD, letterSpacing:0, border:true, borderColor:2956290, borderSize:13, multiline:false}); var tCont:Container = new Container([tLabel, total], Container.VERTICAL, Container.CENTER, {spacingY:-12}); var lbButton:Button = new Button(new Assets.LeaderboardButton()); lbButton.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ showMiniLeaderboard(MiniGames.instance.boardId); }); lbButton.visible = false; var cont:Container = new Container([logo, tCont, lbButton], Container.VERTICAL, Container.CENTER, {spacingY:15, width:400}); panel.addChild(cont); panel.x = SCORE_STARTX; panel.y = SCORE_STARTY; return (panel); } private function onHideComplete():void{ this.dispatchEvent(new Event(_slot1.EVENT_HIDE)); this.parent.removeChild(this); } private function onDoneClick(_arg1:MouseEvent):void{ _arg1.stopPropagation(); this.dispatchEvent(new Event(_slot1.EVENT_DONE)); this.hide(); } public function selectPack(_arg1:Number):void{ if (((_currentPackSprite) && (_currentPackSprite.parent))){ removeChild(_currentPackSprite); }; _currentPackSprite = _packScreens[_arg1]; addChild(_currentPackSprite); } public function showLeaderboard(_arg1:Number):void{ var packId = _arg1; var pack:MapPack = Main.levelData.getPackById(packId); if (!pack){ throw (new Error("There is no pack by that ID. Cannot show leaderbaord")); }; _lbContainer = new Leaderboard(pack.boardId, pack.name); _lbContainer.addEventListener(Leaderboard.EVENT_CLOSE, onLeaderboardClose, false, 0, true); TweenMax.to(this, 0.5, {y:-(this.height), onComplete:function ():void{ parent.addChild(_lbContainer); }}); } public function draw(_arg1:Event):void{ var title:TextField; var i:int; var mapPack:MapPack; var button:Button; var screen:Sprite; var e = _arg1; removeEventListener(Event.ADDED_TO_STAGE, draw); _background = new Assets.WoodBackgroundLarge(); addChild(_background); title = Text.instance.getText("YOUR SCORES", {size:36, color:0xFFFFFF, font:Text.BLOCKTREGCOND, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); title.x = 30; title.y = 16; addChild(title); var div:Bitmap = new Assets.WoodDividerLarge1(); div.x = title.x; div.y = ((title.y + title.height) + 5); addChild(div); _packButtons = new ButtonGroup(null, Container.VERTICAL, Container.LEFT, {spacingY:PACKBUTTON_PADDING}); i = 0; while (i < _levelData.mapPacks.length) { mapPack = _levelData.mapPacks[i]; button = createPackButton(mapPack); _packButtons.addChild(button); screen = drawPackScreen(mapPack); screen.x = SCORE_STARTX; screen.y = SCORE_STARTY; _packScreens.push(screen); i = (i + 1); }; var mini:Button = createMiniGameButton(); mini.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ selectMiniGames(); }); _packScreens.push(drawMiniGameScreen()); _packButtons.addChild(mini); _packButtons.adjust(mini, -8, 0); _packButtons.x = PACKBUTTON_STARTX; _packButtons.y = PACKBUTTON_STARTY; addChild(_packButtons); selectPack(0); _packButtons.setDefault(1); var desc:TextField = Text.instance.getText("Get a MochiGames account to save your total score \nacross multiple game sessions.", {font:Text.BLOCKTREG, size:16, color:0xFFFFFF, align:Text.CENTER, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); desc.x = 228; desc.y = ((_background.height - desc.height) - 20); var arr:Bitmap = new Assets.ArrowLogin(); arr.x = ((desc.x + desc.width) + 10); arr.y = (desc.y + 10); _doneButton = new Button(new Assets.BackButton()); _doneButton.addEventListener(MouseEvent.CLICK, onDoneClick, false, 0, true); _doneButton.x = 25; _doneButton.y = ((_background.height - _doneButton.height) - 20); addChild(_doneButton); this.x = ((Main.GAME_WIDTH * 0.5) - (this.width * 0.5)); this.y = (-(this.height) - 20); this.show(); } private function createPackButton(_arg1:MapPack):Button{ var mapPack = _arg1; var button:Button = new Button(); var h:Bitmap = new Assets.WoodButton(); h.visible = false; button.upState = h; button.selectedState = new Assets.WoodButton(); button.text = Main.text.getText(mapPack.name, {size:20, color:0xFFFFFF, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); button.text.x = 30; button.text.y = (button.text.y - 2); button.data.pack = _packButtons.buttons.length; button.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ var _local2:Button = (_arg1.target as Button); selectPack(_local2.data.pack); }); return (button); } public function update(_arg1:Event):void{ } private function drawPackScreen(_arg1:MapPack):Sprite{ var m:Object; var main:Container; var of:TextField; var mCount:TextField; var mCountCont:Container; var mStat:Container; var med:Container; var mapPack = _arg1; var medals:Object = _player.getPackMedals(mapPack.id); var sCont:Container = new Container([_text.getText("Total Score:", SECTION_LABEL), _text.getText(Utility.commafy(_player.getPackSessionScore(mapPack.id)), SCORE)], Container.VERTICAL, Container.LEFT, {spacingY:-5}); var lbButton:Button = new Button(new Assets.LeaderboardButton()); lbButton.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ showLeaderboard(mapPack.id); }); lbButton.visible = false; var sRow:Container = new Container([sCont, lbButton], Container.HORIZONTAL, Container.JUSTIFY, {width:400}); sRow.adjust(lbButton, 0, 30); var mLabel:TextField = _text.getText("Medals:", SECTION_LABEL); var gEmpty:Bitmap = new Assets.GraphBackground(); var gFull:Bitmap = new Assets.GraphForeground(); var graph:Sprite = new Sprite(); var mask:Sprite = new Sprite(); mask.graphics.beginFill(0xFFFFFF); mask.graphics.drawRect(0, 0, (gEmpty.width * (medals.total / 60)), gEmpty.height); graph.addChild(mask); gFull.mask = mask; graph.addChild(gEmpty); graph.addChild(gFull); var mAmount:TextField = _text.getText(medals.total, MEDAL_TOTAL); var mOf:TextField = _text.getText("of 60", MEDAL_OF); var graphCont:Container = new Container([graph, mAmount, mOf], Container.HORIZONTAL, Container.LEFT); graphCont.adjust(mAmount, -25, -7); graphCont.adjust(mOf, -35, 1); var mRow:Container = new Container([mLabel, graphCont], Container.HORIZONTAL, Container.LEFT, {spacingY:5}); var lRow:Container = new Container(null, Container.HORIZONTAL, Container.LEFT, {spacingX:35}); var mar:Array = [{t:medals.hangTime, n:"Nice Hang Time", c:Assets.MedalSquirrel}, {t:medals.gameHunter, n:"Big Bird Hunter", c:Assets.MedalBird}, {t:medals.bigCombo, n:"Combo King", c:Assets.MedalNut}]; for each (m in mar) { of = _text.getText("of 20", MEDAL_OF); mCount = _text.getText(m.t, MEDAL_COUNT); mCountCont = new Container([mCount, of], Container.VERTICAL, Container.CENTER, {spacingY:-9}); mStat = new Container([new m.c(), mCountCont], Container.HORIZONTAL, Container.LEFT, {spacingX:5}); mStat.adjust(mCountCont, 0, 5); med = new Container([mStat, _text.getText(m.n, MEDAL_NAME)], Container.VERTICAL, Container.LEFT, {spacingY:6}); lRow.addChild(med); }; main = new Container([sRow, new Assets.ScoreDivider(), mRow, new Assets.ScoreMedalDivider(), lRow, new Assets.ScoreMedalDivider()], Container.VERTICAL, Container.LEFT, {spacingY:10}); main.adjustChildren(4, 0, -5); main.adjustChildren(5, 0, -5); main.adjustChildren(6, 0, -15); return (main); } public function hide(_arg1:TimerEvent=null):void{ TweenMax.to(this, 0.5, {y:(-(this.height) - 20), onComplete:this.onHideComplete}); } public function showMiniLeaderboard(_arg1:String):void{ var board = _arg1; _lbContainer = new Leaderboard(board, "MiniGames"); _lbContainer.addEventListener(Leaderboard.EVENT_CLOSE, onLeaderboardClose, false, 0, true); TweenMax.to(this, 0.5, {y:-(this.height), onComplete:function ():void{ parent.addChild(_lbContainer); }}); } public function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); removeChild(_background); _doneButton.removeEventListener(MouseEvent.CLICK, onDoneClick); if (((_lbContainer) && (_lbContainer.parent))){ _lbContainer.parent.removeChild(_lbContainer); }; _doneButton = null; _background = null; _lbContainer = null; } public function show(_arg1:Boolean=false):void{ TweenMax.to(this, 0.5, {y:(((Main.GAME_HEIGHT * 0.5) - (this.height * 0.5)) - 15)}); } } }//packageSection 422//SeamlessBackground (SeamlessBackground) package { import flash.events.*; import flash.display.*; import flash.geom.*; public class SeamlessBackground extends Sprite { private var _offX:Number; private var _offY:Number; private var _contWidth:Number; private var _tileBitmap:BitmapData; private var _contHeight:Number; public function SeamlessBackground(_arg1:Number, _arg2:Number, _arg3:BitmapData):void{ _tileBitmap = _arg3; _contWidth = _arg1; _contHeight = _arg2; _offX = 0; _offY = 0; addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); } public function move(_arg1:Number=0, _arg2:Number=0):void{ _offX = ((_offX + _arg1) % _tileBitmap.width); _offY = ((_offY + _arg2) % _tileBitmap.height); var _local3:Matrix = new Matrix(); _local3.translate(_offX, _offY); graphics.clear(); graphics.beginBitmapFill(_tileBitmap, _local3, true); graphics.drawRect(0, 0, _contWidth, _contHeight); graphics.endFill(); } public function destroy(_arg1:Event):void{ _tileBitmap.dispose(); removeEventListener(Event.REMOVED_FROM_STAGE, destroy); } } }//packageSection 423//SelectButton (SelectButton) package { import flash.events.*; import flash.text.*; import flash.display.*; public class SelectButton extends Button { private var _padding:int; private var _label:TextField; public static const NONE:String = "none"; public static const SCALE:String = "scale"; public static const LIGHTEN:String = "lighten"; public function SelectButton(_arg1:DisplayObject=null, _arg2:DisplayObject=null, _arg3:TextField=null):void{ super(_arg1); selectedState = _arg2; _padding = 5; label = _arg3; } public function get padding():int{ return (_padding); } public function get label():TextField{ return (_label); } override protected function destroy(_arg1:Event):void{ super.destroy(_arg1); _label = null; } public function set label(_arg1:TextField):void{ if (((_label) && (_container.contains(_label)))){ _container.removeChild(_label); }; _label = _arg1; _label.x = ((_currentState.width * 0.5) + _padding); _label.y = (-(_label.height) * 0.5); _container.addChildAt(_label, _container.numChildren); } public function set padding(_arg1:int):void{ _padding = _arg1; } override protected function draw(_arg1:Event):void{ super.draw(_arg1); } } }//packageSection 424//SettingsPanel (SettingsPanel) package { import flash.events.*; import levels.*; import flash.text.*; import flash.display.*; import flash.media.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import flash.filters.*; import com.gskinner.utils.*; import mochi.as3.*; import flash.ui.*; public class SettingsPanel extends Sprite { private var _player:Player; private var _container:Container; private var _isDirty:Boolean; private var _text:Text; private var _background:Bitmap; private var _suits:Array; private var _browser:LevelBrowser; private var _cheatButton:Button; private var _doneButton:Button; private var _suitButtons:ButtonGroup; private var _canvas:DisplayObjectContainer; private var _buyButtons:Sprite; private var _saveButton:Button; public static const HIDE:String = "hide"; public static const SHOW:String = "show"; public function SettingsPanel(_arg1:LevelBrowser):void{ addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); _player = Player.instance; _text = Text.instance; _suits = Squirrel.SUITS; _isDirty = false; _browser = _arg1; MochiCoins.addEventListener(MochiCoins.ITEM_NEW, onSuitPurchased); } public function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); removeEventListener(Event.ENTER_FRAME, update); TweenMax.killTweensOf(this, false); _doneButton.removeEventListener(MouseEvent.CLICK, onDoneClick); _suitButtons.removeEventListener(ButtonGroup.SELECT, onSuitSelect); MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, onSuitPurchased); _background = null; _player = null; _canvas = null; } public function get isDirty():Boolean{ return (_isDirty); } public function update(_arg1:Event):void{ } public function hide(_arg1:TimerEvent=null):void{ TweenMax.to(this, 0.5, {y:(-(this.height) - 20), onComplete:this.onHideComplete}); } private function onDoneClick(_arg1:MouseEvent):void{ hide(); if (_isDirty){ }; } private function onSuitPurchased():void{ _browser.showCustomSettings(); } public function show():void{ this.x = ((Main.GAME_WIDTH * 0.5) - (this.width * 0.5)); this.y = -(this.height); TweenMax.to(this, 0.5, {y:((Main.GAME_HEIGHT * 0.5) - (this.height * 0.5)), onComplete:this.onShowComplete}); } private function onHideComplete():void{ dispatchEvent(new Event(SettingsPanel.HIDE)); } private function onShowComplete():void{ } private function onSuitSelect(_arg1:Event):void{ _player.squirrelSuit = _suitButtons.selected.data.type; } public function draw(_arg1:Event):void{ var div:Bitmap; var suit:Object; var unlock:TextField; var col2:Container; var cheatLabel:TextField; var b:Button; var unBitmap:Bitmap; var selBitmap:Bitmap; var selLabel:TextField; var select:SelectButton; var t:String; var bq:Bitmap; var q:Sprite; var bub:Sprite; var bb:Bitmap; var tipText:String; var bt:TextField; var qT:Tooltip; var buy:Button; var e = _arg1; removeEventListener(Event.ADDED_TO_STAGE, draw); _background = new Assets.WoodBackgroundLarge(); addChild(_background); var pageLabel:TextField = _text.getText("YOUR SETTINGS", {size:36, color:0xFFFFFF, font:Text.BLOCKTREGCOND, shadowDistance:4, shadowColor:0, shadowAlpha:0.3}); pageLabel.x = 30; pageLabel.y = 16; addChild(pageLabel); div = new Assets.ScoreDivider(); div.x = pageLabel.x; div.y = ((pageLabel.y + pageLabel.height) + 15); addChild(div); var col1:Container = new Container(null, Container.VERTICAL); var suitLabel:TextField = _text.getText("Unlockable Squirrels:", {size:20, color:0xFFFFFF, font:Text.BLOCKTBOLD}); col1.addChild(suitLabel); _suitButtons = new ButtonGroup(null, Container.VERTICAL, Container.LEFT, {spacingY:3}); _suitButtons.addEventListener(ButtonGroup.SELECT, onSuitSelect); for each (suit in _suits) { unBitmap = new Assets.SelectButtonOff(); selBitmap = new Assets.SelectButtonOn(); selLabel = _text.getText(suit.label, {size:14, color:0xFFFFFF}); select = new SelectButton(unBitmap, selBitmap, selLabel); select.data.type = suit.type; _suitButtons.addChild(select); if (!_player.isSuitAvailable(suit.type)){ select.enabled = false; }; }; col1.addChild(_suitButtons); _suitButtons.setDefault(getButtonByType(_player.squirrelSuit)); unlock = _text.getText("Unlock the Santa and Viking squirrels by earning all medals on the Spring and Winter map packs!", {size:14, color:0xFFFFFF, multiline:true, leading:2, font:Text.BLOCKTREG}); unlock.wordWrap = true; unlock.multiline = false; unlock.width = 250; col1.addChild(unlock); col1.adjust(unlock, 0, 10); col2 = new Container(null, Container.VERTICAL); cheatLabel = _text.getText("Level Cheat:", {size:20, color:0xFFFFFF, font:Text.BLOCKTBOLD}); col2.addChild(cheatLabel); _cheatButton = new SelectButton(new Assets.SelectButtonOff(), new Assets.SelectButtonOn(), _text.getText("Enable Level Unlock Cheat", {size:14, color:0xFFFFFF})); _cheatButton.addEventListener(MouseEvent.CLICK, onCheatClick); col2.addChild(_cheatButton); if (((_player.useCheatMode) && (_player.hasUnlockCheat))){ _cheatButton.selected = true; } else { if (!_player.hasUnlockCheat){ _cheatButton.enabled = false; }; }; _container = new Container([col1, col2], Container.HORIZONTAL, Container.JUSTIFY); _container.x = 40; _container.y = (div.y + 18); _container.resize(530, 0); addChild(_container); _buyButtons = new Sprite(); addChild(_buyButtons); for each (b in _suitButtons.buttons) { if (b.data.type == Squirrel.NORMAL){ } else { t = b.data.type; if ((((((b.data.type == Squirrel.SANTA)) || ((b.data.type == Squirrel.VIKING)))) || ((b.data.type == Squirrel.MOHAWK)))){ bq = new Assets.QuestionButton(); q = new Sprite(); q.x = (((_container.x + _suitButtons.x) + b.width) + 20); q.y = ((_container.y + _suitButtons.y) + b.y); q.addChild(bq); _buyButtons.addChild(q); bub = new Sprite(); bb = new Assets.BonusBubble(); bb.scaleX = -1; bb.x = bb.width; if (b.data.type == Squirrel.SANTA){ tipText = "earning all 60 medals in the Winter map pack!"; } else { if (b.data.type == Squirrel.VIKING){ tipText = "earning all 60 medals in the Spring map pack!"; } else { if (b.data.type == Squirrel.MOHAWK){ tipText = "purchasing the MiniGames mode in the store."; }; }; }; bt = _text.getText(("Unlock this squirrel by " + tipText), {size:16, color:2956290, align:Text.LEFT, font:Text.BLOCKTREG, wordWrap:true, multiline:true}); bt.width = 150; bt.x = (((bb.width * 0.5) - (bt.width * 0.5)) + 5); bt.y = 20; bub.addChild(bb); bub.addChild(bt); qT = new Tooltip(q, bub); qT.positionX = Tooltip.RIGHT; qT.offsetX = (-(bub.width) + 55); qT.offsetY = 18; } else { if (!b.enabled){ buy = new Button(); buy.upState = new Assets.UnlockButtonSmall(); buy.data.type = b.data.type; buy.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{ MochiCoins.showItem({item:Squirrel.getStoreId(Button(_arg1.target).data.type)}); }); buy.x = (((_container.x + _suitButtons.x) + b.width) + 20); buy.y = ((_container.y + _suitButtons.y) + b.y); _buyButtons.addChild(buy); }; }; }; }; _doneButton = new Button(new Assets.DoneButton()); _doneButton.y = ((this.height - _doneButton.height) - 20); _doneButton.x = ((this.width * 0.5) - (_doneButton.width * 0.5)); _doneButton.addEventListener(MouseEvent.CLICK, onDoneClick); addChild(_doneButton); } private function getButtonByType(_arg1:String):int{ var _local2:int; while (_local2 < _suits.length) { if (_suits[_local2].type == _arg1){ return ((_local2 + 1)); }; _local2++; }; return (1); } private function onCheatClick(_arg1:Event):void{ var _local2:SelectButton = (_arg1.target as SelectButton); _player.useCheatMode = _local2.selected; _isDirty = true; } } }//packageSection 425//SoundManager (SoundManager) package { import flash.media.*; import gs.*; import flash.utils.*; import flash.net.*; public class SoundManager { private var _soundsDict:Dictionary; private var _soundToTime:Dictionary; private var _sounds:Array; private var _muted:Boolean;// = false private static var _instance:SoundManager; private static var _allowInstance:Boolean = true; public function SoundManager(_arg1:SingletonEnforcer){ this._soundsDict = new Dictionary(); this._sounds = new Array(); this._soundToTime = new Dictionary(); } public function fadeSound(_arg1:String, _arg2:Number=0, _arg3:Number=1):void{ var _local4:SoundChannel = this._soundsDict[_arg1].channel; TweenLite.to(_local4, _arg3, {volume:_arg2}); } public function get sounds():Array{ return (this._sounds); } public function setSoundVolume(_arg1:String, _arg2:Number):void{ var _local3:Object = this._soundsDict[_arg1]; var _local4:SoundTransform = _local3.channel.soundTransform; _local4.volume = _arg2; _local3.channel.soundTransform = _local4; } public function playSound(_arg1:String, _arg2:Number=1, _arg3:Number=0, _arg4:int=0, _arg5:int=50):void{ var _local7:Number; var _local6:Object = this._soundsDict[_arg1]; if (!_local6){ return; }; _local6.volume = _arg2; _local6.startTime = _arg3; _local6.loops = _arg4; if (_muted){ _local7 = 0; } else { _local7 = _local6.volume; }; var _local8:Date = new Date(); if ((((_arg5 == 0)) || ((_soundToTime[_arg1] < (_local8.time - _arg5))))){ if (_local6.paused){ _local6.channel = _local6.sound.play(_local6.position, _local6.loops, new SoundTransform(_local7)); } else { _local6.channel = _local6.sound.play(_arg3, _local6.loops, new SoundTransform(_local7)); }; _soundToTime[_arg1] = _local8.time; _local6.paused = false; }; } public function getSoundDuration(_arg1:String):Number{ return (this._soundsDict[_arg1].sound.length); } public function toString():String{ return (getQualifiedClassName(this)); } public function getSoundVolume(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.soundTransform.volume); } public function addLibrarySound(_arg1, _arg2:String):Boolean{ var _local3:int; while (_local3 < this._sounds.length) { if (this._sounds[_local3].name == _arg2){ return (false); }; _local3++; }; var _local4:Object = new Object(); var _local5:Sound = new (_arg1); _local4.name = _arg2; _local4.sound = _local5; _local4.channel = new SoundChannel(); _local4.position = 0; _local4.paused = true; _local4.volume = 1; _local4.startTime = 0; _local4.loops = 0; _local4.pausedByAll = false; this._soundsDict[_arg2] = _local4; this._sounds.push(_local4); return (true); } public function isSoundPaused(_arg1:String):Boolean{ return (this._soundsDict[_arg1].paused); } public function get isMuted():Boolean{ return (_muted); } public function getSoundPosition(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.position); } public function removeAllSounds():void{ var _local1:int; while (_local1 < this._sounds.length) { this._sounds[_local1] = null; _local1++; }; this._sounds = new Array(); this._soundsDict = new Dictionary(); } public function stopAllSounds(_arg1:Boolean=true):void{ var _local3:String; var _local2:int; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.stopSound(_local3); }; } else { this.stopSound(_local3); }; this.stopSound(_local3); _local2++; }; } public function removeSound(_arg1:String):void{ var _local2:int; while (_local2 < this._sounds.length) { if (this._sounds[_local2].name == _arg1){ this._sounds[_local2] = null; this._sounds.splice(_local2, 1); }; _local2++; }; delete this._soundsDict[_arg1]; delete _soundToTime[_arg1]; } public function muteAllSounds():void{ var _local2:String; var _local1:int; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; this.setSoundVolume(_local2, 0); _local1++; }; _muted = true; } public function stopSound(_arg1:String):void{ var _local2:Object = this._soundsDict[_arg1]; if (!_local2){ return; }; _local2.paused = true; _local2.channel.stop(); _local2.position = _local2.channel.position; } public function addSound(_arg1:Object, _arg2:String):Boolean{ var _local3:int; while (_local3 < this._sounds.length) { if (this._sounds[_local3].name == _arg2){ return (false); }; _local3++; }; var _local4:Object = new Object(); _local4.name = _arg2; _local4.sound = _arg1; _local4.channel = new SoundChannel(); _local4.position = 0; _local4.paused = true; _local4.volume = 1; _local4.startTime = 0; _local4.loops = 0; _local4.pausedByAll = false; this._soundsDict[_arg2] = _local4; this._sounds.push(_local4); _soundToTime[_arg2] = 0; return (true); } public function pauseAllSounds(_arg1:Boolean=true):void{ var _local3:String; var _local2:int; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.pauseSound(_local3); }; } else { this.pauseSound(_local3); }; _local2++; }; } public function playAllSounds(_arg1:Boolean=false):void{ var _local3:String; var _local2:int; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (this._soundsDict[_local3].pausedByAll){ this._soundsDict[_local3].pausedByAll = false; this.playSound(_local3); }; } else { this.playSound(_local3); }; _local2++; }; } public function addExternalSound(_arg1:String, _arg2:String, _arg3:Number=1000, _arg4:Boolean=false):Boolean{ var _local5:int; while (_local5 < this._sounds.length) { if (this._sounds[_local5].name == _arg2){ return (false); }; _local5++; }; var _local6:Object = new Object(); var _local7:Sound = new Sound(new URLRequest(_arg1), new SoundLoaderContext(_arg3, _arg4)); _local6.name = _arg2; _local6.sound = _local7; _local6.channel = new SoundChannel(); _local6.position = 0; _local6.paused = true; _local6.volume = 1; _local6.startTime = 0; _local6.loops = 0; _local6.pausedByAll = false; this._soundsDict[_arg2] = _local6; this._sounds.push(_local6); return (true); } public function unmuteAllSounds():void{ var _local2:String; var _local3:Object; var _local4:SoundTransform; var _local1:int; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; _local3 = this._soundsDict[_local2]; _local4 = _local3.channel.soundTransform; _local4.volume = _local3.volume; _local3.channel.soundTransform = _local4; _local1++; }; _muted = false; } public function isSoundPausedByAll(_arg1:String):Boolean{ return (this._soundsDict[_arg1].pausedByAll); } public function playRandomSound(_arg1:Array, _arg2:Number=1):void{ var _local3:String = _arg1[Math.floor((Math.random() * _arg1.length))]; playSound(_local3, _arg2); } public function pauseSound(_arg1:String):void{ var _local2:Object = this._soundsDict[_arg1]; _local2.paused = true; _local2.position = _local2.channel.position; _local2.channel.stop(); } public function getSoundObject(_arg1:String):Sound{ return (this._soundsDict[_arg1].sound); } public static function get instance():SoundManager{ if (_slot1._instance == null){ _slot1._instance = new SoundManager(new SingletonEnforcer()); }; return (_slot1._instance); } } }//package class SingletonEnforcer { private function SingletonEnforcer(){ } }Section 426//Squirrel (Squirrel) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import com.flashdynamix.motion.effects.*; import com.flashdynamix.motion.effects.core.*; import com.gskinner.utils.*; import com.flashdynamix.motion.layers.*; import flash.ui.*; import fl.motion.*; public class Squirrel extends Sprite { private var _group:Group; private var _fireClip:BitmapClip; private var _tailFrame:Number; private var _offSet:Point; private var _fire:Sprite; private var _tailForward:Boolean; private var _type:String; private var _tailClip:BitmapClip; private var _tail:Sprite; private var _zeroVector:Vector; private var _squirrelSound:String; private var _squirrel:DisplayObject; private var _id:Number; private var _lastPosition:Point; private var _speed:Number; private var _defaultAnimationSpeed:Number; private var _squirrelLength:Number; private var _voiceTimer:Timer; private var _fireMode:Boolean; private var _layer:BitmapLayer; private var _phyBall:CircleParticle; private var _start:Point; private var _fired:Boolean; private var _ballSize:Number; public static const SPIKE:String = "spike"; public static const NORMAL:String = "normal"; public static const DEFAULT_SPEED:int = 440; public static const VIKING:String = "viking"; public static const SANTA:String = "santa"; public static const MOHAWK:String = "mohawk"; public static const HAIR:String = "hair"; public static const SUITS:Array = [{label:"Regular Squirrel", type:Squirrel.NORMAL}, {label:"Santa Squirrel", type:Squirrel.SANTA}, {label:"Viking Squirrel", type:Squirrel.VIKING}, {label:"Mohawk Squirrel", type:Squirrel.MOHAWK}, {label:"Biker Squirrel", type:Squirrel.SPIKE}, {label:"The Girl Squirrel", type:Squirrel.HAIR}]; public static const FRAME_RATE:int = 60; public function Squirrel(_arg1:Group, _arg2:Point, _arg3:String="normal"):void{ _lastPosition = new Point(); super(); _group = _arg1; _start = _arg2; _speed = 0; _ballSize = 6; _fireMode = false; _tailFrame = 1; _tailForward = true; _type = _arg3; _zeroVector = new Vector(0, 0); _offSet = new Point(0, 0); } public function onCollision(_arg1:CollisionEvent):void{ var _local4:Number; var _local5:Number; var _local2:Number = Math.abs(_phyBall.velocity.x); var _local3:Number = Math.abs(_phyBall.velocity.y); if ((_phyBall.velocity.x < 0)){ _local4 = -1; } else { _local4 = 1; }; if ((_phyBall.velocity.y < 0)){ _local5 = -1; } else { _local5 = 1; }; var _local6:Number = 0.3; if ((((_local3 <= _local6)) && ((_local2 > _local6)))){ _phyBall.addForce(new VectorForce(true, 0, (50 * _local5))); }; if ((((_local2 <= _local6)) && ((_local3 > _local6)))){ _phyBall.addForce(new VectorForce(true, (20 * _local4), 0)); }; if ((((_local2 <= _local6)) && ((_local3 <= _local6)))){ _phyBall.addForce(new VectorForce(true, (20 * _local4), (20 * _local5))); }; if (_arg1.collidingItem.name == "nut"){ this.dispatchEvent(new SquirrelEvent(SquirrelEvent.HIT_NUT, this, _arg1.collidingItem)); if (_arg1.collidingItem.type == Nut.FLAMING_NUT.toString()){ Main.current.game.startFireMode(); }; } else { if (((((_arg1.collidingItem) && ((_arg1.collidingItem.sprite.name == "floor")))) && (!(_fireMode)))){ SoundManager.instance.playRandomSound([Assets.GRASS_HIT1, Assets.GRASS_HIT2, Assets.GRASS_HIT3], 0.4); this.dispatchEvent(new SquirrelEvent(SquirrelEvent.HIT_FLOOR, this, _arg1.collidingItem)); }; }; } public function get id():Number{ return (_id); } public function positionHead(_arg1:Point):void{ this.x = _arg1.x; this.y = _arg1.y; _phyBall.px = _arg1.x; _phyBall.py = _arg1.y; } public function set id(_arg1:Number):void{ _id = _arg1; } public function setTailFrame():void{ var _local2:Number; var _local1:Number = _phyBall.velocity.distance(_zeroVector); if (_local1 <= 1){ _tailClip.frameRate = 20; }; if (_local1 <= 3){ _tailClip.frameRate = 30; } else { if (_local1 <= 5){ _tailClip.frameRate = 40; } else { if (_local1 <= 9){ _tailClip.frameRate = 80; } else { _tailClip.frameRate = 100; }; }; }; } public function fire(_arg1:Number, _arg2:Number):void{ _fired = true; var _local3:Number = Utility.degreesToRadians(_arg1); var _local4:Number = (Math.cos(_local3) * _arg2); var _local5:Number = (Math.sin(_local3) * _arg2); _lastPosition.x = _phyBall.px; _lastPosition.y = _phyBall.py; _phyBall.addForce(new VectorForce(true, _local4, _local5)); _phyBall.addEventListener(CollisionEvent.COLLIDE, onCollision, false, 0, true); } public function draw():void{ _lastPosition.x = _start.x; _lastPosition.y = _start.y; this.x = _start.x; this.y = _start.y; _tail = new Sprite(); var _local1:Bitmap = new Bitmap(new BitmapData(37, 21, true, 0)); _local1.x = (-(_local1.width) + 11); _local1.y = -10; _local1.smoothing = true; _tail.addChild(_local1); addChild(_tail); _tailClip = new BitmapClip(); _tailClip.importTileSheet(new Assets.SquirrelTail().bitmapData, 37, 21, 14, 1); _tailClip.frameRate = 80; _tailClip.bitmapToUpdate = _local1; _defaultAnimationSpeed = (FRAME_RATE / 14); if (_type == NORMAL){ _squirrel = new Assets.SquirrelNormal(); _offSet.x = -26; _offSet.y = (-((_squirrel.height * 0.5)) - 1); } else { if (_type == SPIKE){ _squirrel = new Assets.SquirrelSpike(); _offSet.x = -26; _offSet.y = (-((_squirrel.height * 0.5)) - 1); } else { if (_type == SANTA){ _squirrel = new Assets.SquirrelSanta(); _offSet.x = -26; _offSet.y = (-((_squirrel.height * 0.5)) - 1); } else { if (_type == HAIR){ _squirrel = new Assets.SquirrelChica(); _offSet.x = -26; _offSet.y = (-((_squirrel.height * 0.5)) - 1); } else { if (_type == VIKING){ _squirrel = new Assets.SquirrelViking(); _offSet.x = -26; _offSet.y = (-((_squirrel.height * 0.5)) - 1); } else { if (_type == MOHAWK){ _squirrel = new Assets.SquirrelMohawk(); _offSet.x = -26; _offSet.y = (-((_squirrel.height * 0.5)) - 1); }; }; }; }; }; }; Bitmap(_squirrel).smoothing = true; _squirrel.x = _offSet.x; _squirrel.y = _offSet.y; _squirrelLength = _squirrel.width; addChild(_squirrel); _tail.x = _squirrel.x; _phyBall = new CircleParticle(this.x, this.y, _ballSize); _phyBall.visible = true; _phyBall.name = "squirrel"; _phyBall.maxSpeed = 150; _group.addParticle(_phyBall); _fire = new Sprite(); var _local2:Bitmap = new Bitmap(new BitmapData(57, 39, true, 0)); _local2.x = -((_local2.width * 0.5)); _local2.y = (-((_local2.height * 0.5)) + 1); _fire.addChild(_local2); _fire.visible = true; _fireClip = new BitmapClip(); _fireClip.importTileSheetAnimations(new Assets.FireAnim().bitmapData, 57, 39, 4, 1); _fireClip.frameRate = 30; _fireClip.bitmapToUpdate = _local2; _fireClip.stop(); } public function update():void{ var type:int; var smoke:Bitmap; _phyBall.addForce(new VectorForce(false, 0, 2)); if (_fired){ rotateHeadOnMovement(); this.x = _phyBall.px; this.y = _phyBall.py; setTailFrame(); _tailClip.update((1000 / 60)); _lastPosition.x = _phyBall.px; _lastPosition.y = _phyBall.py; }; if (((_fireMode) && (Rnd.boolean(0.4)))){ type = Rnd.integer(0, 3); switch (type){ case 0: smoke = new Assets.SmokePuff1(); break; case 1: smoke = new Assets.SmokePuff2(); break; case 2: smoke = new Assets.SmokePuff3(); break; }; smoke.scaleX = 0.7; smoke.scaleY = 0.7; smoke.x = (_phyBall.px - (smoke.width * 0.5)); smoke.y = (_phyBall.py - (smoke.height * 0.5)); smoke.x = (smoke.x + Rnd.integer(0, 5)); smoke.y = (smoke.y + Rnd.integer(0, 5)); parent.addChildAt(smoke, (parent.getChildIndex(this) - 1)); TweenMax.to(smoke, 0.7, {alpha:0, scaleX:0.2, scaleY:0.2, onComplete:function (_arg1:Bitmap):void{ _arg1.parent.removeChild(_arg1); }, onCompleteParams:[smoke]}); }; if (_fireMode){ _fireClip.update((1000 / 60)); }; } public function rotateHeadOnMovement():void{ var _local1:Number = Math.atan2((_phyBall.py - _lastPosition.y), (_phyBall.px - _lastPosition.x)); var _local2:Number = (_local1 * (180 / Math.PI)); this.rotation = _local2; if ((((this.rotation < -90)) || ((this.rotation > 90)))){ this.scaleY = -1; } else { this.scaleY = 1; }; } public function set fireMode(_arg1:Boolean):void{ var _local2:Vector; _fireMode = _arg1; if (_fireMode){ _phyBall.maxSpeed = 250; _local2 = _phyBall.velocity; _local2.multEquals(400); _phyBall.addForce(new VectorForce(true, _local2.x, _local2.y)); addChild(_fire); _fireClip.play(); SoundManager.instance.playSound(Assets.FIRE_WHOOSH, 0.6); SoundManager.instance.playSound(Assets.BURNING, 0.04, 0, 9999); } else { SoundManager.instance.fadeSound(Assets.BURNING, 0, 0.5); removeChild(_fire); _fireClip.stop(); _phyBall.maxSpeed = 150; }; } public function get fireMode():Boolean{ return (_fireMode); } public function destroy():void{ _group.removeParticle(_phyBall); _phyBall.removeEventListener(CollisionEvent.COLLIDE, onCollision); _phyBall.cleanup(); _phyBall = null; if (((_squirrel) && (contains(_squirrel)))){ removeChild(_squirrel); }; _squirrel = null; _tail = null; _phyBall = null; _lastPosition = null; if (_voiceTimer){ _voiceTimer.stop(); }; _voiceTimer = null; _fireClip.dispose(); _tailClip.dispose(); if (_layer){ _layer.stopRender(); _layer.dispose(); }; SoundManager.instance.stopSound(Assets.BURNING); } public static function getStoreId(_arg1:String):String{ if (_arg1 == HAIR){ return ("92e328a11aba5c3c"); }; if (_arg1 == SPIKE){ return ("d7dc4cb032085143"); }; return (null); } } }//packageSection 427//SquirrelEvent (SquirrelEvent) package { import flash.events.*; import org.cove.ape.*; public class SquirrelEvent extends Event { private var _squirrel:Squirrel; private var _collidingItem:AbstractItem; public static const HIT_FLOOR:String = "collide_floor"; public static const HIT_NUT:String = "collide_nut"; public function SquirrelEvent(_arg1:String, _arg2:Squirrel=null, _arg3:AbstractItem=null, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); _squirrel = _arg2; _collidingItem = _arg3; } public function get squirrel():Squirrel{ return (_squirrel); } public function get collidingItem():AbstractItem{ return (_collidingItem); } } }//packageSection 428//SquirrelManager (SquirrelManager) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; public class SquirrelManager extends EventDispatcher { private var _player:Player; private var _squirrels:Array; private var _group:Group; private var _paused:Boolean; private var _game:Game; private var _canvas:DisplayObjectContainer; private var _squirrel:Squirrel; public static const SHOT_COMPLETE:String = "shot_complete"; public function SquirrelManager(_arg1:Game, _arg2:DisplayObjectContainer):void{ _game = _arg1; _player = Player.instance; _squirrels = []; _canvas = _arg2; _paused = false; _group = new Group(true); APEngine.addGroup(_group); _game.boundryGroup.addCollidable(_group); } public function remove(_arg1:Squirrel):void{ _canvas.removeChild(_arg1); _arg1.removeEventListener(SquirrelEvent.HIT_NUT, onSquirrelHitNut); _arg1.removeEventListener(SquirrelEvent.HIT_FLOOR, onSquirrelHitFloor); _arg1.destroy(); _squirrels.splice(_squirrels.indexOf(_arg1), 1); } public function get group():Group{ return (_group); } public function update():void{ var _local1:Squirrel; if (_paused){ return; }; for each (_local1 in _squirrels) { _local1.update(); }; } public function pruneOutOfBounds():void{ var _local2:Squirrel; var _local3:Squirrel; var _local1:Array = []; for each (_local2 in _squirrels) { if ((((((((_local2.x > Main.GAME_WIDTH)) || ((_local2.x < 0)))) || ((_local2.y > Main.GAME_HEIGHT)))) || ((_local2.y < 0)))){ _local1.push(_local2); }; }; for each (_local3 in _local1) { remove(_local3); }; } public function reset():void{ var _local1:Squirrel; for each (_local1 in _squirrels) { _canvas.removeChild(_local1); _local1.removeEventListener(SquirrelEvent.HIT_NUT, onSquirrelHitNut); _local1.removeEventListener(SquirrelEvent.HIT_FLOOR, onSquirrelHitFloor); _local1.destroy(); }; _squirrels = []; } public function stopFireMode():void{ var _local1:Squirrel; for each (_local1 in _squirrels) { _local1.fireMode = false; }; } public function resume():void{ _paused = false; } public function onSquirrelHitFloor(_arg1:SquirrelEvent):void{ var _local2:Squirrel = _arg1.squirrel; if (!_local2.fireMode){ remove(_local2); if (_squirrels.length == 0){ dispatchEvent(new Event(SquirrelManager.SHOT_COMPLETE)); }; }; } public function onSquirrelHitNut(_arg1:SquirrelEvent):void{ } public function spawnSquirrel(_arg1:Point, _arg2:Number, _arg3:Number):Squirrel{ _squirrel = new Squirrel(_group, _arg1, _player.squirrelSuit); _squirrel.scaleY = -1; _squirrel.addEventListener(SquirrelEvent.HIT_NUT, onSquirrelHitNut, false, 0, true); _squirrel.addEventListener(SquirrelEvent.HIT_FLOOR, onSquirrelHitFloor, false, 0, true); _canvas.addChild(_squirrel); _squirrel.draw(); _squirrel.fire(_arg2, _arg3); _squirrels.push(_squirrel); return (_squirrel); } public function endCurrentShot():void{ var _local1:Squirrel; for each (_local1 in _squirrels) { onSquirrelHitFloor(new SquirrelEvent(SquirrelEvent.HIT_FLOOR, _local1, null)); }; } public function destroy():void{ var _local1:Squirrel; _group.cleanup(); APEngine.removeGroup(_group); for each (_local1 in _squirrels) { _local1.destroy(); }; _canvas = null; _game = null; } public function startFireMode():void{ var _local1:Squirrel; for each (_local1 in _squirrels) { _local1.fireMode = true; }; } public function pause():void{ _paused = true; } } }//packageSection 429//Star (Star) package { import flash.events.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import flash.utils.*; import com.flashdynamix.motion.extras.*; import com.gskinner.utils.*; import gs.easing.*; import flash.ui.*; public class Star extends Sprite { protected var _burst:Emitter; protected var _text:String; protected var _emitter:Emitter; protected var _canvas:DisplayObjectContainer; protected var _type:String; protected var _image:DisplayObject; public static const BONUS_STARS:String = "star2"; public static const BONUS_POINTS:String = "points2"; public function Star(_arg1:String, _arg2:String="star2"):void{ _text = _arg1; _type = _arg2; } public function draw(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):void{ var _local4:TextField; var _local5:Class; _arg1.addChild(this); if (_type == BONUS_STARS){ _image = new Assets.MultiplierStar(); _local5 = Assets.StarBurstPurple; _local4 = Text.instance.getText(_text, {size:12, color:0x522E00, cacheAsBitmap:false, align:TextFormatAlign.CENTER, font:Text.BLOCKTREG, embedFonts:true}); } else { _image = new Assets.PointsStar(); _local5 = Assets.StarBurstYellow; _local4 = Text.instance.getText(_text, {size:12, color:0xFFFFFF, cacheAsBitmap:false, align:TextFormatAlign.CENTER, font:Text.BLOCKTREG, embedFonts:true, borderSize:2, borderColor:7621005}); }; _image.x = (_image.x - (_image.width * 0.5)); _image.y = (_image.y - (_image.height * 0.5)); addChild(_image); _local4.x = (_local4.x - (_local4.width * 0.5)); _local4.y = (_local4.y - (_local4.height * 0.5)); addChild(_local4); this.x = _arg2.x; this.y = _arg2.y; var _local6:Timer = new Timer(500, 1); _local6.addEventListener(TimerEvent.TIMER, onStarMove, false, 0, true); _local6.start(); var _local7:Number = (Utility.distanceBetweenPoints(_arg2, _arg3) / 2); var _local8:Point = Utility.getPointOnLine(_arg2, Utility.getAngleOfLine(_arg2, _arg3), _local7); var _local9:Point = new Point((_local8.x + 50), (_local8.y + 50)); TweenMax.to(this, 0.7, {delay:0.5, x:_arg3.x, y:_arg3.y, ease:Sine.easeIn, bezierThrough:[{x:_local9.x, y:_local9.y}], onComplete:onTweenComplete}); TweenMax.to(this, 0.5, {delay:0.7, alpha:0, scaleX:0.3, scaleY:0.3, ease:Sine.easeIn}); _burst = new Emitter(_local5, {y:"130", alpha:0, rotation:"-180,180"}, 1, 0.8, "0,180", 20, 1); _burst.stop(); _burst.burst(10); _burst.x = _arg2.x; _burst.y = _arg2.y; _arg1.addChildAt(_burst.holder, (_arg1.getChildIndex(this) - 1)); _burst.tween.onComplete = onBurstEmitterComplete; _emitter = new Emitter(Assets.Sparkle, {scaleX:1.1, scaleY:1.1, alpha:0, rotation:"-180,180"}, 1, 1, "0,360", 20, 0.8); _emitter.start(); _emitter.tween.onComplete = onEmitterComplete; _arg1.addChildAt(_emitter.holder, (_arg1.getChildIndex(this) - 1)); addEventListener(Event.ENTER_FRAME, update, false, 0, true); } private function onTweenComplete():void{ destroy(); } private function onBurstEmitterComplete():void{ _burst.holder.parent.removeChild(_burst.holder); _burst.dispose(); _burst = null; } private function onEmitterComplete():void{ _emitter.holder.parent.removeChild(_emitter.holder); _emitter.dispose(); _emitter = null; } public function update(_arg1:Event):void{ _emitter.x = this.x; _emitter.y = this.y; } private function onStarMove(_arg1:TimerEvent):void{ _arg1.target.removeEventListener(TimerEvent.TIMER, onStarMove); Main.sound.playSound(Assets.SOUND_STARMOVE, 0.2); } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, update); _emitter.stop(); if (this.parent){ this.parent.removeChild(this); }; } } }//packageSection 430//StarMeter (StarMeter) package { import flash.events.*; import flash.text.*; import flash.display.*; import gs.*; import flash.utils.*; import com.flashdynamix.motion.extras.*; import gs.easing.*; public class StarMeter extends Sprite { private var _glowCycleTime:int; private var _multiplierMeterOn:Bitmap; private var _multiplierMeter:Sprite; private var _multiplierClip:Sprite; private var _game:Game; private var _meterStarOff:Bitmap; private var _burst:Emitter; private var _multiplierMeterOff:Bitmap; private var _multiplierMask:Sprite; private var _multiplierText:TextField; private var _emitter:Emitter; private var _multiplierGlowTimer:Timer; private var _meterStarOn:Bitmap; private var _meterStar:Sprite; public function StarMeter():void{ _game = Main.current.game; _glowCycleTime = 1200; } private function onMeterTweenComplete():void{ if (_game.scores.multiplier >= _game.scores.multiplierMax){ Main.sound.playSound(Assets.SOUND_METERFULL, 0.2); _meterStarOff.visible = false; _meterStarOn.visible = true; _emitter.start(); new TweenGroup([{target:_meterStar, time:0.3, scaleX:1.2, scaleY:1.2, rotation:180, ease:Linear.easeOut}, {target:_meterStar, time:0.6, scaleX:1, scaleY:1, rotation:720, ease:Linear.easeIn, onComplete:onMultiplierStarTweenComplete}], TweenMax, TweenGroup.ALIGN_SEQUENCE); }; } public function draw():void{ _multiplierClip = Main.text.multiplierText("STARS: 0"); _multiplierText = (_multiplierClip.getChildByName("text") as TextField); addChild(_multiplierClip); _multiplierClip.x = ((Main.GAME_WIDTH - _multiplierClip.width) - 20); _multiplierClip.y = 15; _multiplierMeter = new Sprite(); _multiplierMeterOff = new Assets.StarMeterOff(); _multiplierMeterOn = new Assets.StarMeterOn(); _multiplierMeterOn.x = 3; _multiplierMeterOn.y = 2; _multiplierMask = new Sprite(); _multiplierMask.graphics.beginFill(0xFFFFFF); _multiplierMask.graphics.drawRect(0, 0, _multiplierMeterOn.width, _multiplierMeterOn.height); _multiplierMask.x = _multiplierMeterOn.x; _multiplierMask.y = _multiplierMeterOn.y; _multiplierMeterOn.mask = _multiplierMask; _multiplierMeter.addChild(_multiplierMeterOff); _multiplierMeter.addChild(_multiplierMeterOn); _multiplierMeter.addChild(_multiplierMask); _multiplierMeter.x = ((Main.GAME_WIDTH - _multiplierMeter.width) - 20); _multiplierMeter.y = ((_multiplierClip.y + _multiplierClip.height) + 3); addChild(_multiplierMeter); _meterStar = new Sprite(); _meterStarOn = new Assets.MeterStarOn(); _meterStarOff = new Assets.MeterStarOff(); _meterStar.addChild(_meterStarOn); _meterStar.addChild(_meterStarOff); _meterStarOn.x = -((_meterStarOn.width * 0.5)); _meterStarOn.y = -((_meterStarOn.height * 0.5)); _meterStarOff.x = _meterStarOn.x; _meterStarOff.y = _meterStarOn.y; _meterStar.x = (_multiplierMeter.x + _multiplierMeter.width); _meterStar.y = ((_multiplierMeter.y + (_multiplierMeter.height * 0.5)) - 1); _burst = new Emitter(Assets.Sparkle, {scaleX:1.1, scaleY:1.1, alpha:0, rotation:"-180,180"}, 2, 1, "0,360", 30, 0.8); _burst.stop(); _burst.x = _meterStar.x; _burst.y = _meterStar.y; addChild(_burst.holder); _emitter = new Emitter(Assets.Sparkle, {scaleX:1.1, scaleY:1.1, alpha:0, rotation:"-180,180"}, 4, 1, "0,360", 30, 0.8); _emitter.stop(); _emitter.x = _meterStar.x; _emitter.y = _meterStar.y; addChild(_emitter.holder); _meterStarOff.visible = true; _meterStarOn.visible = false; _multiplierMask.width = 0; addChild(_meterStar); } public function reset():void{ _multiplierMask.width = 0; _meterStarOff.visible = true; _meterStarOn.visible = false; _meterStar.filters = []; if (_multiplierGlowTimer){ _multiplierGlowTimer.stop(); _multiplierGlowTimer.removeEventListener(TimerEvent.TIMER, onGlowTimer); _multiplierGlowTimer = null; }; } private function onGlowTimer(_arg1:TimerEvent=null):void{ new TweenGroup([{target:_meterStar, time:0.5, glowFilter:{alpha:1, blurX:7, blurY:7, color:14496682, strength:4}}, {target:_meterStar, time:0.5, glowFilter:{alpha:0, blurX:7, blurY:7, color:14496682, strength:4}}], TweenMax, TweenGroup.ALIGN_SEQUENCE); } public function changeMultiplier(_arg1:Number):void{ var w:Number; var segment:Number; var mult = _arg1; _multiplierText.text = ("STARS: " + mult); _multiplierClip.width = _multiplierText.width; if (_multiplierMask.width < _multiplierMeter.width){ w = _multiplierMeter.width; segment = (w / _game.scores.multiplierMax); TweenMax.to(_multiplierMask, 1, {delay:1.3, width:(segment * mult), onComplete:onMeterTweenComplete, onStart:function ():void{ _burst.burst(20); }}); } else { _multiplierMask.width = _multiplierMeter.width; }; } public function update():void{ } private function onMultiplierStarTweenComplete(_arg1:TimerEvent=null):void{ _emitter.stop(); } public function destroy():void{ _burst.stop(); _burst.dispose(); _emitter.stop(); _emitter.dispose(); if (_multiplierGlowTimer){ _multiplierGlowTimer.stop(); _multiplierGlowTimer.removeEventListener(TimerEvent.TIMER, onGlowTimer); _multiplierGlowTimer = null; }; } } }//packageSection 431//Stats (Stats) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.system.*; public class Stats extends Sprite { private var _fps_graph:uint; private var _ms:uint; private var _timer:uint; private var _graph:BitmapData; private var _text:TextField; private var _mem:Number; private var _xml:XML; private var _mem_max_graph:uint; private var _theme:Object; private var _mem_graph:uint; private var _fps:uint; private var _ms_prev:uint; private var _rectangle:Rectangle; private var _style:StyleSheet; private var _mem_max:Number; public function Stats(_arg1:Object=null):void{ _theme = {bg:51, fps:0xFFFF00, ms:0xFF00, mem:0xFFFF, memmax:0xFF0070}; super(); if (_arg1){ if (_arg1.bg != null){ _theme.bg = _arg1.bg; }; if (_arg1.fps != null){ _theme.fps = _arg1.fps; }; if (_arg1.ms != null){ _theme.ms = _arg1.ms; }; if (_arg1.mem != null){ _theme.mem = _arg1.mem; }; if (_arg1.memmax != null){ _theme.memmax = _arg1.memmax; }; }; addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, dispose, false, 0, true); } private function hex2css(_arg1:int):String{ return (("#" + _arg1.toString(16))); } private function update(_arg1:Event):void{ _timer = getTimer(); if ((_timer - 1000) > _ms_prev){ _ms_prev = _timer; _mem = Number((System.totalMemory * 9.54E-7).toFixed(3)); _mem_max = ((_mem_max > _mem)) ? _mem_max : _mem; _fps_graph = Math.min(50, ((_fps / stage.frameRate) * 50)); _mem_graph = (Math.min(50, Math.sqrt(Math.sqrt((_mem * 5000)))) - 2); _mem_max_graph = (Math.min(50, Math.sqrt(Math.sqrt((_mem_max * 5000)))) - 2); _graph.scroll(1, 0); _graph.fillRect(_rectangle, _theme.bg); _graph.setPixel(0, (_graph.height - _fps_graph), _theme.fps); _graph.setPixel(0, (_graph.height - ((_timer - _ms) >> 1)), _theme.ms); _graph.setPixel(0, (_graph.height - _mem_graph), _theme.mem); _graph.setPixel(0, (_graph.height - _mem_max_graph), _theme.memmax); _xml.fps = ((("FPS: " + _fps) + " / ") + stage.frameRate); _xml.mem = ("MEM: " + _mem); _xml.memMax = ("MAX: " + _mem_max); _fps = 0; }; _fps++; _xml.ms = ("MS: " + (_timer - _ms)); _ms = _timer; _text.htmlText = _xml; } private function init(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, init); graphics.beginFill(_theme.bg); graphics.drawRect(0, 0, 70, 50); graphics.endFill(); _mem_max = 0; _xml = <xml><fps>FPS:</fps><ms>MS:</ms><mem>MEM:</mem><memMax>MAX:</memMax></xml> ; _style = new StyleSheet(); _style.setStyle("xml", {fontSize:"9px", fontFamily:"_sans", leading:"-2px"}); _style.setStyle("fps", {color:hex2css(_theme.fps)}); _style.setStyle("ms", {color:hex2css(_theme.ms)}); _style.setStyle("mem", {color:hex2css(_theme.mem)}); _style.setStyle("memMax", {color:hex2css(_theme.memmax)}); _text = new TextField(); _text.width = 70; _text.height = 50; _text.styleSheet = _style; _text.condenseWhite = true; _text.selectable = false; _text.mouseEnabled = false; addChild(_text); var _local2:Bitmap = new Bitmap((_graph = new BitmapData(70, 50, false, _theme.bg))); _local2.y = 50; addChild(_local2); _rectangle = new Rectangle(0, 0, 1, _graph.height); addEventListener(MouseEvent.CLICK, onClick); addEventListener(Event.ENTER_FRAME, update); } public function dispose(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, dispose); removeEventListener(MouseEvent.CLICK, onClick); removeEventListener(Event.ENTER_FRAME, update); } private function onClick(_arg1:MouseEvent):void{ if (((mouseY / height) > 0.5)){ stage.frameRate--; } else { stage.frameRate++; }; _xml.fps = ((("FPS: " + _fps) + " / ") + stage.frameRate); _text.htmlText = _xml; } } }//packageSection 432//StringUtils (StringUtils) package { public class StringUtils { private static function _swapCase(_arg1:String, ... _args):String{ var _local3:String = _arg1.toLowerCase(); var _local4:String = _arg1.toUpperCase(); switch (_arg1){ case _local3: return (_local4); case _local4: return (_local3); default: return (_arg1); }; } public static function isEmpty(_arg1:String):Boolean{ if (_arg1 == null){ return (true); }; return (!(_arg1.length)); } public static function remove(_arg1:String, _arg2:String, _arg3:Boolean=true):String{ if (_arg1 == null){ return (""); }; var _local4:String = escapePattern(_arg2); var _local5:String = (_arg3) ? "g" : "ig"; return (_arg1.replace(new RegExp(_local4, _local5), "")); } public static function countOf(_arg1:String, _arg2:String, _arg3:Boolean=true):uint{ if (_arg1 == null){ return (0); }; var _local4:String = escapePattern(_arg2); var _local5:String = (_arg3) ? "g" : "ig"; return (_arg1.match(new RegExp(_local4, _local5)).length); } public static function between(_arg1:String, _arg2:String, _arg3:String):String{ var _local6:int; var _local4 = ""; if (_arg1 == null){ return (_local4); }; var _local5:int = _arg1.indexOf(_arg2); if (_local5 != -1){ _local5 = (_local5 + _arg2.length); _local6 = _arg1.indexOf(_arg3, _local5); if (_local6 != -1){ _local4 = _arg1.substr(_local5, (_local6 - _local5)); }; }; return (_local4); } public static function padRight(_arg1:String, _arg2:String, _arg3:uint):String{ var _local4:String = _arg1; while (_local4.length < _arg3) { _local4 = (_local4 + _arg2); }; return (_local4); } public static function isNumeric(_arg1:String):Boolean{ if (_arg1 == null){ return (false); }; var _local2:RegExp = /^[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?$/; return (_local2.test(_arg1)); } public static function block(_arg1:String, _arg2:uint, _arg3:String="."):Array{ var _local8:String; var _local4:Array = new Array(); if ((((_arg1 == null)) || (!(contains(_arg1, _arg3))))){ return (_local4); }; var _local5:uint; var _local6:uint = _arg1.length; var _local7:RegExp = new RegExp((("[^" + escapePattern(_arg3)) + "]+$")); while (_local5 < _local6) { _local8 = _arg1.substr(_local5, _arg2); if (!contains(_local8, _arg3)){ _local4.push(truncate(_local8, _local8.length)); _local5 = (_local5 + _local8.length); }; _local8 = _local8.replace(_local7, ""); _local4.push(_local8); _local5 = (_local5 + _local8.length); }; return (_local4); } public static function trim(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.replace(/^\s+|\s+$/g, "")); } public static function beginsWith(_arg1:String, _arg2:String):Boolean{ if (_arg1 == null){ return (false); }; return ((_arg1.indexOf(_arg2) == 0)); } public static function stripTags(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.replace(/<\/?[^>]+>/igm, "")); } public static function afterLast(_arg1:String, _arg2:String):String{ if (_arg1 == null){ return (""); }; var _local3:int = _arg1.lastIndexOf(_arg2); if (_local3 == -1){ return (""); }; _local3 = (_local3 + _arg2.length); return (_arg1.substr(_local3)); } private static function _minimum(_arg1:uint, _arg2:uint, _arg3:uint):uint{ return (Math.min(_arg1, Math.min(_arg2, Math.min(_arg3, _arg1)))); } private static function escapePattern(_arg1:String):String{ return (_arg1.replace(/(\]|\[|\{|\}|\(|\)|\*|\+|\?|\.|\\)/g, "\\$1")); } public static function removeExtraWhitespace(_arg1:String):String{ if (_arg1 == null){ return (""); }; var _local2:String = trim(_arg1); return (_local2.replace(/\s+/g, " ")); } public static function trimRight(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.replace(/\s+$/, "")); } public static function endsWith(_arg1:String, _arg2:String):Boolean{ return ((_arg1.lastIndexOf(_arg2) == (_arg1.length - _arg2.length))); } public static function contains(_arg1:String, _arg2:String):Boolean{ if (_arg1 == null){ return (false); }; return (!((_arg1.indexOf(_arg2) == -1))); } public static function properCase(_arg1:String):String{ if (_arg1 == null){ return (""); }; var _local2:String = _arg1.toLowerCase().replace(/\b([^.?;!]+)/, capitalize); return (_local2.replace(/\b[i]\b/, "I")); } public static function trimLeft(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.replace(/^\s+/, "")); } public static function similarity(_arg1:String, _arg2:String):Number{ var _local3:uint = editDistance(_arg1, _arg2); var _local4:uint = Math.max(_arg1.length, _arg2.length); if (_local4 == 0){ return (100); }; return (((1 - (_local3 / _local4)) * 100)); } public static function wordCount(_arg1:String):uint{ if (_arg1 == null){ return (0); }; return (_arg1.match(/\b\w+\b/g).length); } public static function editDistance(_arg1:String, _arg2:String):uint{ var _local3:uint; var _local5:uint; var _local8:uint; var _local9:String; var _local10:String; if (_arg1 == null){ _arg1 = ""; }; if (_arg2 == null){ _arg2 = ""; }; if (_arg1 == _arg2){ return (0); }; var _local4:Array = new Array(); var _local6:uint = _arg1.length; var _local7:uint = _arg2.length; if (_local6 == 0){ return (_local7); }; if (_local7 == 0){ return (_local6); }; _local3 = 0; while (_local3 <= _local6) { _local4[_local3] = new Array(); _local3++; }; _local3 = 0; while (_local3 <= _local6) { _local4[_local3][0] = _local3; _local3++; }; _local8 = 0; while (_local8 <= _local7) { _local4[0][_local8] = _local8; _local8++; }; _local3 = 1; while (_local3 <= _local6) { _local9 = _arg1.charAt((_local3 - 1)); _local8 = 1; while (_local8 <= _local7) { _local10 = _arg2.charAt((_local8 - 1)); if (_local9 == _local10){ _local5 = 0; } else { _local5 = 1; }; _local4[_local3][_local8] = _minimum((_local4[(_local3 - 1)][_local8] + 1), (_local4[_local3][(_local8 - 1)] + 1), (_local4[(_local3 - 1)][(_local8 - 1)] + _local5)); _local8++; }; _local3++; }; return (_local4[_local6][_local7]); } public static function hasText(_arg1:String):Boolean{ var _local2:String = removeExtraWhitespace(_arg1); return (!(!(_local2.length))); } public static function reverse(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.split("").reverse().join("")); } public static function swapCase(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.replace(/(\w)/, _swapCase)); } public static function capitalize(_arg1:String, ... _args):String{ var _local3:String = trimLeft(_arg1); trace("capl", _args[0]); if (_args[0] === true){ return (_local3.replace(/^.|\b./g, _upperCase)); }; return (_local3.replace(/(^\w)/, _upperCase)); } public static function truncate(_arg1:String, _arg2:uint, _arg3:String="..."):String{ if (_arg1 == null){ return (""); }; _arg2 = (_arg2 - _arg3.length); var _local4:String = _arg1; if (_local4.length > _arg2){ _local4 = _local4.substr(0, _arg2); if (/[^\s]/.test(_arg1.charAt(_arg2))){ _local4 = trimRight(_local4.replace(/\w+$|\s+$/, "")); }; _local4 = (_local4 + _arg3); }; return (_local4); } public static function reverseWords(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.split(/\s+/).reverse().join("")); } public static function beforeFirst(_arg1:String, _arg2:String):String{ if (_arg1 == null){ return (""); }; var _local3:int = _arg1.indexOf(_arg2); if (_local3 == -1){ return (""); }; return (_arg1.substr(0, _local3)); } private static function _upperCase(_arg1:String, ... _args):String{ trace("cap latter ", _arg1); return (_arg1.toUpperCase()); } public static function afterFirst(_arg1:String, _arg2:String):String{ if (_arg1 == null){ return (""); }; var _local3:int = _arg1.indexOf(_arg2); if (_local3 == -1){ return (""); }; _local3 = (_local3 + _arg2.length); return (_arg1.substr(_local3)); } public static function beforeLast(_arg1:String, _arg2:String):String{ if (_arg1 == null){ return (""); }; var _local3:int = _arg1.lastIndexOf(_arg2); if (_local3 == -1){ return (""); }; return (_arg1.substr(0, _local3)); } public static function padLeft(_arg1:String, _arg2:String, _arg3:uint):String{ var _local4:String = _arg1; while (_local4.length < _arg3) { _local4 = (_arg2 + _local4); }; return (_local4); } public static function quote(_arg1:String):String{ var _local2:RegExp = /[\\"\r\n]/g; return ((("\"" + _arg1.replace(_local2, _quote)) + "\"")); } private static function _quote(_arg1:String, ... _args):String{ switch (_arg1){ case "\\": return ("\\\\"); case "\r": return ("\\r"); case "\n": return ("\\n"); case "\"": return ("\\\""); default: return (""); }; } } }//packageSection 433//Text (Text) package { import flash.events.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import flash.filters.*; import flash.ui.*; public class Text { private var _endBallFormat:TextFormat; private var _levelThumbFormat:TextFormat; private var _pegFormat:TextFormat; private var _scoreFormat:TextFormat; public static const RIGHT:String = "right"; public static const LEFT:String = "left"; public static const BLOCKTBOLD:String = new Assets.BlockTHeavy().fontName; public static const BLOCKTREG:String = new Assets.BlockTReg().fontName; public static const PURPLE_GRADIENT:String = "purple"; public static const CENTER:String = "center"; public static const BLUE:String = "0x54B5ED"; public static const ORANGE:String = "0xffdb8e"; public static const BLOCKTREGCOND:String = new Assets.BlockTRegCond().fontName; public static const JUSTIFY:String = "justify"; public static const BASE12:String = new Assets.Base12SansSC().fontName; public static const BLUE_GRADIENT:String = "blue"; public static const ORANGE_GRADIENT:String = "orange"; public static const PURPLE:String = "0xe1a0ff"; private static var _instance:Text; public function Text(_arg1:SingletonEnforcer):void{ } public function pegMultiplierText(_arg1:String):TextField{ var _local2:TextField = getTextField({size:6, color:271678, font:BASE12}); _local2.text = _arg1; _local2.antiAliasType = AntiAliasType.ADVANCED; _local2.thickness = 200; addBorder(_local2, 2); _local2.cacheAsBitmap = true; return (_local2); } public function personalBestText2(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:24, color:Text.BLUE, border:false}); _local2.text = _arg1; var _local3:Sprite = createGradientOnText(_local2, Text.BLUE_GRADIENT); addBorder(_local3, 10, 271678); return (_local3); } public function personalBestText3(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:52, color:Text.ORANGE, border:false}); _local2.text = _arg1; var _local3:Sprite = createGradientOnText(_local2, Text.ORANGE_GRADIENT); addBorder(_local3, 14, 271678); return (_local3); } public function personalBestText1(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:38, color:Text.BLUE, border:false}); _local2.text = _arg1; var _local3:Sprite = createGradientOnText(_local2, Text.BLUE_GRADIENT); addBorder(_local3, 10, 271678); return (_local3); } public function endShotText(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:18, color:Text.BLUE, border:false}); _local2.multiline = true; _local2.text = _arg1; var _local3:Sprite = createGradientOnText(_local2, Text.BLUE_GRADIENT); return (_local3); } public function leaderboardText(_arg1:String):TextField{ var _local2:TextField = getTextField({size:16, color:0xFFFFFF, align:TextFormatAlign.CENTER, autoSize:TextFieldAutoSize.CENTER}); _local2.text = _arg1; return (_local2); } public function multiplierText(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:18, color:Text.PURPLE, border:false}); _local2.text = _arg1; _local2.antiAliasType = AntiAliasType.ADVANCED; var _local3:Sprite = createGradientOnText(_local2, Text.PURPLE_GRADIENT); addBorder(_local3, 4, 1644058); return (_local3); } public function startLevelText(_arg1:String=null):Sprite{ var _local2:TextField = getTextField({size:60, borderWidth:8, color:Text.PURPLE, border:false}); _local2.text = _arg1; var _local3:Sprite = createGradientOnText(_local2, Text.PURPLE_GRADIENT); addBorder(_local3, 10, 271678); return (_local3); } public function levelBrowserText(_arg1:String):TextField{ var _local2:TextField = getTextField({size:22, color:0xFFFFFF, align:TextFormatAlign.CENTER, autoSize:TextFieldAutoSize.CENTER}); _local2.text = _arg1; return (_local2); } public function createButton(_arg1:String):SimpleButton{ var _local2:SimpleButton = new SimpleButton(); var _local3:Sprite = new Sprite(); var _local4:TextField = getTextField({size:22, color:0xFFFFFF}); _local4.text = _arg1; _local3.addChild(_local4); _local3.graphics.lineStyle(4, 0xFFFFFF); _local3.graphics.beginFill(8214711); _local3.graphics.drawRoundRect(0, 0, (_local4.width + 40), (_local4.height + 5), 8, 8); Utility.centerClip(_local4, _local3); _local2.upState = _local3; _local2.hitTestState = _local3; _local2.overState = _local3; return (_local2); } public function getTextField(_arg1:Object=null):TextField{ var _local3:TextFormat; var _local4:TextField; var _local5:String; var _local2:Object = {size:14, color:2237013, font:BLOCKTBOLD, align:TextFormatAlign.LEFT, bold:false, autoSize:TextFieldAutoSize.LEFT, letterSpacing:0, cacheAsBitmap:true, border:false, borderColor:0, borderSize:0, multiline:false, wordWrap:false, leading:0, shadow:false, shadowDistance:0, shadowColor:0, shadowAngle:45, shadowAlpha:0.5}; if (_arg1 == null){ _arg1 = _local2; } else { for (_local5 in _local2) { if (!_arg1.hasOwnProperty(_local5)){ _arg1[_local5] = _local2[_local5]; }; }; }; _local3 = new TextFormat(); _local3.font = _arg1.font; _local3.color = _arg1.color; _local3.size = _arg1.size; _local3.align = _arg1.align; _local3.bold = _arg1.bold; _local3.kerning = true; _local3.letterSpacing = _arg1.letterSpacing; _local3.leading = _arg1.leading; _local4 = new TextField(); _local4.type = TextFieldType.DYNAMIC; _local4.embedFonts = true; _local4.autoSize = _arg1.autoSize; _local4.selectable = false; _local4.mouseEnabled = false; _local4.defaultTextFormat = _local3; _local4.height = _local4.textHeight; _local4.name = "text"; _local4.cacheAsBitmap = _arg1.cacheAsBitmap; _local4.multiline = _arg1.multiline; _local4.wordWrap = _arg1.wordWrap; if (((_local4.embedFonts) && ((_local3.size < 48)))){ _local4.antiAliasType = AntiAliasType.ADVANCED; _local4.thickness = 0; }; if (((_arg1.shadow) || (_arg1.shadowDistance))){ addShadow(_local4, _arg1.shadowDistance, _arg1.shadowAngle, _arg1.shadowColor, _arg1.shadowAlpha); }; if (((_arg1.border) || ((_arg1.borderSize > 0)))){ addBorder(_local4, _arg1.borderSize, _arg1.borderColor); }; return (_local4); } public function bonusShoot(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:28, color:Text.ORANGE, border:false, align:TextFormatAlign.CENTER, autoSize:TextFieldAutoSize.LEFT}); _local2.text = _arg1; _local2.antiAliasType = AntiAliasType.ADVANCED; _local2.thickness = 200; var _local3:Sprite = createGradientOnText(_local2, Text.ORANGE_GRADIENT); addBorder(_local3, 7, 1644058); return (_local3); } public function bubbleText(_arg1:String):TextField{ var _local2:TextField = getTextField({size:14, color:3354930, font:BLOCKTREG}); _local2.embedFonts = true; _local2.text = _arg1; return (_local2); } public function scoreText(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:28, color:Text.ORANGE, border:false, align:TextFormatAlign.CENTER, autoSize:TextFieldAutoSize.LEFT}); _local2.text = _arg1; _local2.antiAliasType = AntiAliasType.ADVANCED; _local2.thickness = 200; var _local3:Sprite = createGradientOnText(_local2, Text.ORANGE_GRADIENT); addBorder(_local3, 7, 1644058); return (_local3); } public function addShadow(_arg1:DisplayObject, _arg2:Number=4, _arg3:Number=45, _arg4:uint=0x333333, _arg5:Number=0.5):void{ var _local6:Array = _arg1.filters; _local6.push(new DropShadowFilter(_arg2, _arg3, _arg4, _arg5, 0, 0, 8)); _arg1.filters = _local6; } public function getText(_arg1:String, _arg2:Object=null):TextField{ var _local3:TextField = getTextField(_arg2); _local3.text = _arg1; _local3.antiAliasType = AntiAliasType.ADVANCED; return (_local3); } public function packText(_arg1:String):TextField{ var _local2:TextField = getTextField({size:14, color:0xFFFFFF, letterSpacing:-1, font:BASE12}); _local2.text = _arg1; _local2.antiAliasType = AntiAliasType.ADVANCED; _local2.cacheAsBitmap = true; return (_local2); } public function rewardMessage(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:40, color:Text.BLUE, borderWidth:8, border:false}); _local2.text = _arg1; var _local3:Sprite = createGradientOnText(_local2, Text.BLUE_GRADIENT); addBorder(_local3, 10); return (_local3); } public function bubbleTitle(_arg1:String):TextField{ var _local2:TextField = getTextField({size:20, color:3354930}); _local2.text = _arg1; return (_local2); } public function addBorder(_arg1:DisplayObject, _arg2:Number=4, _arg3:uint=0xFFFFFF):void{ var _local4:Array = _arg1.filters; _local4.push(new GlowFilter(_arg3, 1, _arg2, _arg2, 20)); _arg1.filters = _local4; } public function pegText(_arg1:String, _arg2:uint=1118515):TextField{ var _local3:TextField = getTextField({size:14, color:_arg2, letterSpacing:-1, font:BASE12}); _local3.text = _arg1; _local3.antiAliasType = AntiAliasType.ADVANCED; addBorder(_local3, 2); _local3.cacheAsBitmap = true; return (_local3); } public function endLevelTitle(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:24, color:Text.BLUE, border:false, align:TextFormatAlign.CENTER, autoSize:TextFieldAutoSize.CENTER}); _local2.text = _arg1; var _local3:Sprite = createGradientOnText(_local2, Text.BLUE_GRADIENT); return (_local3); } public function createGradientOnText(_arg1:TextField, _arg2:String="orange"):Sprite{ var _local3:Sprite = new Sprite(); var _local4:Sprite = new Sprite(); _local4.x = _arg1.x; _local4.y = _arg1.y; var _local5:String = GradientType.LINEAR; var _local6:Array; switch (_arg2){ case Text.ORANGE_GRADIENT: _local6 = [Text.ORANGE, 0xFFFFFF]; break; case Text.PURPLE_GRADIENT: _local6 = [Text.PURPLE, 0xFFFFFF]; break; case Text.BLUE_GRADIENT: _local6 = [Text.BLUE, 0xFFFFFF]; break; }; var _local7:Sprite = new Sprite(); _local7.name = "gradient"; _local4.addChild(_arg1); _local4.addChild(_local7); _local7.x = _arg1.x; _local7.y = _arg1.y; _local7.cacheAsBitmap = true; _arg1.cacheAsBitmap = true; _local4.cacheAsBitmap = true; return (_local4); } public function endLevelText(_arg1:String):TextField{ var _local2:TextField = getTextField({size:18, border:false, color:0xFFFFFF}); _local2.text = _arg1; return (_local2); } public function bestText(_arg1:String):Sprite{ var _local2:TextField = getTextField({size:12, color:Text.ORANGE, border:false}); _local2.text = _arg1; _local2.antiAliasType = AntiAliasType.ADVANCED; var _local3:Sprite = createGradientOnText(_local2, Text.ORANGE_GRADIENT); addBorder(_local3, 4, 1644058); return (_local3); } public function levelBrowserThumbText(_arg1:String):TextField{ var _local2:TextField = getTextField({size:28, color:0xFFFFFF}); _local2.text = _arg1; return (_local2); } public static function get instance():Text{ if (Text._instance == null){ Text._instance = new Text(new SingletonEnforcer()); }; return (Text._instance); } } }//package class SingletonEnforcer { private function SingletonEnforcer(){ } }Section 434//Tooltip (Tooltip) package { import flash.events.*; import flash.text.*; import flash.display.*; import org.cove.ape.*; import gs.*; import com.gskinner.utils.*; import flash.ui.*; public class Tooltip extends Sprite { protected var _posX:String; protected var _posY:String; protected var _offsetX:Number; protected var _offsetY:Number; protected var _target:DisplayObject; protected var _hover:DisplayObject; public static const MIDDLE:String = "middle"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const TOP:String = "top"; public static const CENTER:String = "center"; public static const RIGHT:String = "right"; public function Tooltip(_arg1:DisplayObject=null, _arg2:DisplayObject=null):void{ addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true); addEventListener(Event.ADDED_TO_STAGE, draw, false, 0, true); mouseEnabled = false; mouseChildren = false; _posX = LEFT; _posY = TOP; _offsetX = 0; _offsetY = 0; hover = _arg2; target = _arg1; } protected function destroy(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, destroy); if (_target){ _target.removeEventListener(MouseEvent.MOUSE_OVER, onOver); _target.removeEventListener(MouseEvent.MOUSE_OUT, onOut); _target.removeEventListener(Event.ADDED_TO_STAGE, onTargetAddedToParent); }; _target = null; _hover = null; } protected function draw(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, draw); } public function set offsetX(_arg1:Number):void{ _offsetX = _arg1; setPosition(); } public function get positionX():String{ return (_posX); } public function get positionY():String{ return (_posY); } public function get target():DisplayObject{ return (_target); } public function set offsetY(_arg1:Number):void{ _offsetY = _arg1; setPosition(); } private function onOver(_arg1:MouseEvent):void{ _arg1.stopPropagation(); _hover.visible = true; _hover.alpha = 0; TweenMax.to(_hover, 0.5, {alpha:1}); } public function set positionX(_arg1:String):void{ _posX = _arg1; setPosition(); } public function set target(_arg1:DisplayObject):void{ if (_arg1 == null){ return; }; if (_target){ _target.removeEventListener(MouseEvent.MOUSE_OVER, onOver); _target.removeEventListener(MouseEvent.MOUSE_OUT, onOut); }; _target = _arg1; _target.addEventListener(MouseEvent.MOUSE_OVER, onOver); _target.addEventListener(MouseEvent.MOUSE_OUT, onOut); if (_target.parent){ if (parent){ parent.removeChild(this); }; _target.parent.addChild(this); setPosition(); } else { _target.addEventListener(Event.ADDED, onTargetAddedToParent); }; } public function get offsetX():Number{ return (_offsetX); } public function setPosition():void{ if ((((_hover == null)) || ((_target == null)))){ throw (new Error("Target and Hover DisplayObject must be supplied in Tooltip")); }; switch (_posX){ case LEFT: this.x = (_target.x - _hover.width); break; case CENTER: this.x = ((_target.width * 0.5) - (_hover.width * 0.5)); break; case RIGHT: this.x = (_target.x + _target.width); break; }; switch (_posY){ case TOP: this.y = (_target.y - _hover.height); break; case MIDDLE: this.y = ((_target.height * 0.5) - (_hover.height * 0.5)); break; case BOTTOM: this.y = (_target.y + _target.height); break; }; this.x = (this.x + _offsetX); this.y = (this.y + _offsetY); } public function get offsetY():Number{ return (_offsetY); } public function set positionY(_arg1:String):void{ _posY = _arg1; setPosition(); } private function onTargetAddedToParent(_arg1:Event):void{ _arg1.target.removeEventListener(Event.ADDED_TO_STAGE, onTargetAddedToParent); _target.parent.addChild(this); setPosition(); } private function onOut(_arg1:MouseEvent):void{ var e = _arg1; e.stopPropagation(); TweenMax.to(_hover, 0.5, {alpha:0, onComplete:function ():void{ _hover.visible = false; }}); } public function set hover(_arg1:DisplayObject):void{ if (_arg1 == null){ return; }; if (_hover){ removeChild(_hover); }; _hover = _arg1; _hover.visible = false; _hover.alpha = 0; addChild(_hover); } public function get hover():DisplayObject{ return (_hover); } } }//packageSection 435//Trigger (Trigger) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; public class Trigger extends EventDispatcher { private var _group:Group; private var _container:Sprite; private var _display:Sprite; private var _active:Boolean; private var _baseAngle:int; private var _orientation:String; private var _switch:RectangleParticle; private var _handle:Sprite; private var _on:Boolean; public static const TRIGGER_HIT:String = "itshit"; public static const LEFT:String = "left"; public static const DOWN:String = "down"; public static const UP:String = "up"; public static const RIGHT:String = "right"; public function Trigger(_arg1:Group):void{ _group = _arg1; _container = new Sprite(); _on = false; _baseAngle = 0; _active = true; } public function destroy():void{ _switch.removeEventListener(CollisionEvent.COLLIDE, onCollision); _switch.cleanup(); _group.removeParticle(_switch); _switch = null; if (_container.parent){ _container.parent.removeChild(_container); }; _container.removeChild(_display); _container = null; _display = null; _handle = null; } public function get active():Boolean{ return (_active); } public function draw(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number, _arg4:int=0):void{ _display = new Assets.Switch(); _display.scaleX = 0.7; _display.scaleY = _display.scaleX; _handle = (_display.getChildByName("handle") as Sprite); _handle.rotation = -25; _container.addChild(_display); _container.x = _arg2; _container.y = _arg3; _arg1.addChild(_container); _container.rotation = _arg4; _switch = new RectangleParticle(_arg2, _arg3, 10, 30); _switch.fixed = true; _switch.visible = false; _switch.angle = _arg4; _switch.elasticity = 0.5; _switch.friction = 0; _switch.addEventListener(CollisionEvent.COLLIDE, onCollision, false, 0, true); _group.addParticle(_switch); } public function set active(_arg1:Boolean):void{ _active = _arg1; if (!_active){ _switch.collidable = false; } else { _switch.collidable = true; }; } public function onCollision(_arg1:CollisionEvent):void{ if (!_active){ return; }; _on = !(_on); if (_on){ _handle.rotation = 25; } else { _handle.rotation = -25; }; dispatchEvent(new Event(TRIGGER_HIT)); } public function get on():Boolean{ return (_on); } } }//packageSection 436//Utility (Utility) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class Utility { public static function centerClip(_arg1:DisplayObject, _arg2:DisplayObject=null):void{ if (!_arg2){ _arg1.x = ((Main.GAME_WIDTH / 2) - (_arg1.width / 2)); _arg1.y = ((Main.GAME_HEIGHT / 2) - (_arg1.height / 2)); } else { _arg1.x = ((_arg2.width / 2) - (_arg1.width / 2)); _arg1.y = ((_arg2.height / 2) - (_arg1.height / 2)); }; } public static function quadrantOfLine(_arg1:Point, _arg2:Point):Number{ var _local3:Number = 0; if ((((_arg1.x <= _arg2.x)) && ((_arg1.y >= _arg2.y)))){ _local3 = 4; } else { if ((((_arg1.x <= _arg2.x)) && ((_arg1.y <= _arg2.y)))){ _local3 = 1; } else { if ((((_arg1.x >= _arg2.x)) && ((_arg1.y <= _arg2.y)))){ _local3 = 2; } else { if ((((_arg1.x >= _arg2.x)) && ((_arg1.y >= _arg2.y)))){ _local3 = 3; }; }; }; }; return (_local3); } public static function rotationOfLine(_arg1:Point, _arg2:Point):Number{ var _local3:Number = (_arg2.x - _arg1.x); var _local4:Number = (_arg2.y - _arg1.y); var _local5:Number = Utility.radiansToDegrees(Math.atan2(_local4, _local3)); return (_local5); } public static function getCenterPoint(_arg1:Sprite):Point{ var _local2:Point = new Point((_arg1.width / 2), (_arg1.height / 2)); var _local3:Point = new Point(0, 0); var _local4:Number = Utility.rotationToDegrees(_arg1.rotation); switch (Utility.quadrantOfAngle(_local4)){ case 1: _local3.x = (_arg1.x - _local2.x); _local3.y = (_arg1.y + _local2.y); break; case 2: _local3.x = (_arg1.x - _local2.x); _local3.y = (_arg1.y - _local2.y); break; case 3: _local3.x = (_arg1.x + _local2.x); _local3.y = (_arg1.y - _local2.y); break; case 4: _local3.x = (_arg1.x + _local2.x); _local3.y = (_arg1.y + _local2.y); break; }; return (_local3); } public static function numberToZeroPaddedString(_arg1:Number, _arg2:Number=2):String{ if (_arg1 < 10){ return (("0" + _arg1.toString())); }; if (_arg1 == 0){ return ("00"); }; return (_arg1.toString()); } public static function rotationToDegrees(_arg1:Number):Number{ if (_arg1 > 0){ return (_arg1); }; return ((360 + _arg1)); } public static function rotateOnCenter(_arg1:Sprite, _arg2:Number):void{ var _local3:Point = Utility.getCenterPoint(_arg1); _arg1.rotation = Utility.degreesToRotation(_arg2); var _local4:Point = Utility.getCenterPoint(_arg1); var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _arg1.x = (_arg1.x + _local5); _arg1.y = (_arg1.y + _local6); } public static function degreesToRadians(_arg1:Number):Number{ return ((_arg1 * (Math.PI / 180))); } public static function reverseAngle(_arg1:Number):Number{ var _local2:Number; if (_arg1 >= 180){ _local2 = (_arg1 - 180); } else { _local2 = (360 + (_arg1 - 180)); }; return (_local2); } public static function distanceBetweenPoints(_arg1:Point, _arg2:Point):Number{ var _local3:Number = Utility.deltaX(_arg1, _arg2); var _local4:Number = Utility.deltaY(_arg1, _arg2); var _local5:Number = Math.sqrt(((_local4 * _local4) + (_local3 * _local3))); return (_local5); } public static function traceKeys(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { trace(("key: " + _local2)); }; } public static function radiansToDegrees(_arg1:Number):Number{ return ((_arg1 * (180 / Math.PI))); } public static function playToFrame(_arg1:MovieClip, _arg2:Object, _arg3:String):void{ var f:Function; var m = _arg1; var start = _arg2; var endLabel = _arg3; f = function (_arg1:Event):void{ var _local2:MovieClip = (_arg1.target as MovieClip); if (_local2.currentLabel == endLabel){ m.stop(); m.removeEventListener(Event.ENTER_FRAME, f); }; }; m.gotoAndPlay(start); m.addEventListener(Event.ENTER_FRAME, f, false, 0, true); } public static function deltaX(_arg1:Point, _arg2:Point):Number{ return (Math.abs((_arg1.x - _arg2.x))); } public static function deltaY(_arg1:Point, _arg2:Point):Number{ return (Math.abs((_arg1.y - _arg2.y))); } public static function formatTime(_arg1:Date):String{ return (((_arg1.minutes + ":") + Utility.numberToZeroPaddedString(_arg1.seconds))); } public static function quadrantOfAngle(_arg1:Number):Number{ var _local2:Number = 0; if (_arg1 <= 90){ _local2 = 1; } else { if ((((_arg1 > 90)) && ((_arg1 <= 180)))){ _local2 = 2; } else { if ((((_arg1 > 180)) && ((_arg1 <= 270)))){ _local2 = 3; } else { if ((((_arg1 > 270)) && ((_arg1 <= 360)))){ _local2 = 4; }; }; }; }; return (_local2); } public static function getAngleOfLine(_arg1:Point, _arg2:Point):Number{ var _local3:Number = Math.atan(((_arg1.y - _arg2.y) / (_arg1.x - _arg2.x))); var _local4:Number = Utility.radiansToDegrees(_local3); switch (Utility.quadrantOfLine(_arg1, _arg2)){ case 1: _local4 = Math.abs(_local4); break; case 2: _local4 = (180 - Math.abs(_local4)); break; case 3: _local4 = (180 + Math.abs(_local4)); break; case 4: _local4 = (360 - Math.abs(_local4)); break; }; return (_local4); } public static function countTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Function, _arg5:Function=null):void{ var current:Number; var increment:Number; var onTimer:Function; var onTimerComplete:Function; var timer:Timer; var from = _arg1; var to = _arg2; var milSeconds = _arg3; var update = _arg4; var complete = _arg5; current = from; var speed:Number = 50; var repeat:Number = Math.ceil((milSeconds / speed)); var diff:Number = (to - from); increment = Math.ceil((diff / 10)); onTimer = function (_arg1:TimerEvent):void{ current = (current + increment); if (current > to){ current = to; timer.stop(); if (Boolean(complete)){ complete(); }; }; update(current); }; onTimerComplete = function (_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, onTimer); timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); timer = null; }; timer = new Timer(speed, repeat); timer.addEventListener(TimerEvent.TIMER, onTimer, false, 0, true); timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete, false, 0, true); timer.start(); } public static function clearChildren(_arg1:Sprite):void{ var _local2:Number = 0; while (_arg1.numChildren) { _arg1.removeChildAt(_local2); _local2++; }; } public static function getPointOnLine(_arg1:Point, _arg2:Number, _arg3:Number):Point{ var _local4:Number = Utility.degreesToRadians(_arg2); var _local5:Number = (Math.sin(_local4) * _arg3); var _local6:Number = (Math.cos(_local4) * _arg3); var _local7:Point = new Point((_arg1.x + _local6), (_arg1.y + _local5)); return (_local7); } public static function outlineSprite(_arg1:Sprite):void{ _arg1.graphics.lineStyle(1, 0xFF0000); _arg1.graphics.drawRect(0, 0, _arg1.width, _arg1.height); } public static function degreesToRotation(_arg1:Number, _arg2:Number=0):Number{ _arg1 = Math.abs(_arg1); if (_arg1 < 180){ return (_arg1); }; return (((360 - _arg1) * -1)); } public static function commafy(_arg1:Number):String{ var _local7:Number; var _local2:String = _arg1.toString(); if (_local2.length <= 3){ return (_local2); }; var _local3 = ""; var _local4:String = StringUtils.reverse(_local2); var _local5:Number = Math.floor((_local2.length / 3)); var _local6:Number = 1; while (_local6 <= _local5) { _local7 = ((_local6 * 3) - 3); _local3 = (_local3 + _local4.substr(_local7, 3)); if (_local2.length != (_local6 * 3)){ _local3 = (_local3 + ","); }; _local6++; }; if ((_local5 * 3) != _local2.length){ _local3 = (_local3 + _local4.substr((_local5 * 3), (_local4.length - (_local5 * 3)))); }; _local3 = StringUtils.reverse(_local3); return (_local3); } public static function convertToButton(_arg1:Sprite):SimpleButton{ var _local2:Sprite = new Sprite(); _local2.graphics.beginFill(0xFFCC00); _local2.graphics.drawRect(0, 0, _arg1.width, _arg1.height); _local2.mouseEnabled = false; _local2.visible = true; var _local3:SimpleButton = new SimpleButton(); _local3.upState = _arg1; _local3.overState = _arg1; _local3.downState = _arg1; _local3.hitTestState = _local2; _local3.x = _arg1.x; _local3.y = _arg1.y; _arg1.x = 0; _arg1.y = 0; return (_local3); } } }//packageSection 437//Wall (Wall) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; public class Wall extends EventDispatcher { protected var _group:Group; protected var _container:Sprite; protected var _height:Number; protected var _volume:Number; protected var _wallSprite:Sprite; protected var _sound:String; protected var _endPoint:Point; protected var _elasticity:Number; protected var _type:Number; protected var _friction:Number; protected var _startPoint:Point; protected var _phyRec:RectangleParticle; protected var _canvas:DisplayObjectContainer; protected var _id:Number; protected var _centerPoint:Point; public static const TRIGGER_WALL:int = 3; public static const WOOD_WALL_MOV:int = 2; public static const RUBBER_WALL:int = 4; public static const WOOD_WALL:int = 1; public static const RUBBER_WALL_MOV:int = 5; public function Wall(_arg1:Group):void{ _group = _arg1; _elasticity = 0.6; _friction = 0.1; _height = 10; _type = Wall.WOOD_WALL; _container = new Sprite(); _volume = 0.3; } protected function createDisplayObject():void{ } public function get type():Number{ return (_type); } public function collision(_arg1:CollisionEvent):void{ Main.sound.playSound(_sound, _volume); } public function draw(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):void{ _startPoint = _arg2; _endPoint = _arg3; _canvas = _arg1; var _local4:Number = Utility.distanceBetweenPoints(_arg2, _arg3); var _local5:Number = Utility.getAngleOfLine(_arg2, _arg3); var _local6:Number = Utility.degreesToRadians(_local5); _centerPoint = new Point((_arg3.x + ((_arg2.x - _arg3.x) * 0.5)), (_arg3.y + ((_arg2.y - _arg3.y) * 0.5))); createDisplayObject(); _wallSprite.width = _local4; _wallSprite.x = (_wallSprite.x - (_wallSprite.width * 0.5)); _wallSprite.y = (_wallSprite.y - (_wallSprite.height * 0.5)); _wallSprite.cacheAsBitmap = true; _container.addChild(_wallSprite); _container.rotation = _local5; _container.x = _centerPoint.x; _container.y = _centerPoint.y; _canvas.addChild(_container); _phyRec = new RectangleParticle(_centerPoint.x, _centerPoint.y, _local4, _wallSprite.height); _phyRec.visible = false; _phyRec.radian = _local6; _phyRec.fixed = true; _phyRec.elasticity = _elasticity; _phyRec.friction = _friction; _phyRec.name = "wall"; _phyRec.addEventListener(CollisionEvent.COLLIDE, collision); _group.addParticle(_phyRec); } public function get particle():RectangleParticle{ return (_phyRec); } public function destroy():void{ } public function remove():void{ _phyRec.cleanup(); _group.removeParticle(_phyRec); _phyRec = null; _wallSprite = null; } public function get clip():Sprite{ return (_phyRec.sprite); } public function get id():Number{ return (_id); } public function update():void{ } public function set id(_arg1:Number):void{ _id = _arg1; } public function set type(_arg1:Number):void{ _type = _arg1; } } }//packageSection 438//WallGate (WallGate) package { import flash.events.*; import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import com.gskinner.utils.*; public class WallGate extends WallWoodMov { private var _movePoint:Point; private var _trigger:Trigger; public function WallGate(_arg1:Group, _arg2:Trigger):void{ super(_arg1); _sound = Assets.SOUND_WALLHIT; _volume = 0.5; _trigger = _arg2; _type = 3; _trigger.addEventListener(Trigger.TRIGGER_HIT, onTriggerHit, false, 0, true); } private function onTriggerHit(_arg1:Event):void{ if (_tween){ TweenMax.killTweensOf(_currentPos); }; _currentPos = new Vector(_phyRec.px, _phyRec.py); if (_trigger.on){ _tween = TweenMax.to(_currentPos, _speed, {x:_movePoint.x, y:_movePoint.y, onUpdateListener:onWallTweenUpdate, onCompleteListener:onWallTweenComplete}); } else { _tween = TweenMax.to(_currentPos, _speed, {x:_centerPoint.x, y:_centerPoint.y, onUpdateListener:onWallTweenUpdate, onCompleteListener:onWallTweenComplete}); }; _trigger.active = false; } override public function draw(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):void{ super.draw(_arg1, _arg2, _arg3); _phyRec.collidable = true; _phyRec.fixed = true; _phyRec.mass = 1000; } override protected function createDisplayObject():void{ var _local1:Number = Rnd.integer(1, 3); _wallSprite = new Assets.WoodWall1(); } public function setOpenPos(_arg1:Point, _arg2:int=1):void{ _movePoint = _arg1; _speed = 1; } override public function destroy():void{ super.destroy(); _trigger.destroy(); } private function onWallTweenComplete(_arg1:Event):void{ _trigger.active = true; } } }//packageSection 439//WallRubber (WallRubber) package { import org.cove.ape.*; import com.gskinner.utils.*; public class WallRubber extends Wall { public function WallRubber(_arg1:Group):void{ super(_arg1); _elasticity = 1.5; _friction = 0; _height = 10; _type = Wall.RUBBER_WALL; _sound = Assets.SOUND_BAWONG; _volume = 0.5; } override protected function createDisplayObject():void{ var _local1:Number = Rnd.integer(1, 3); _wallSprite = new Assets.RubberWall1(); } } }//packageSection 440//WallRubberMov (WallRubberMov) package { import org.cove.ape.*; import com.gskinner.utils.*; public class WallRubberMov extends WallWoodMov { public function WallRubberMov(_arg1:Group):void{ super(_arg1); _elasticity = 1.5; _friction = 0.5; _height = 10; _type = Wall.RUBBER_WALL_MOV; _sound = Assets.SOUND_BAWONG; _volume = 0.5; } override protected function createDisplayObject():void{ var _local1:Number = Rnd.integer(1, 3); _wallSprite = new Assets.RubberWall1(); } } }//packageSection 441//WallWood (WallWood) package { import org.cove.ape.*; import com.gskinner.utils.*; public class WallWood extends Wall { public function WallWood(_arg1:Group):void{ super(_arg1); _elasticity = 0.6; _friction = 0.2; _height = 10; _type = Wall.WOOD_WALL; _sound = Assets.SOUND_WALLHIT; } override protected function createDisplayObject():void{ var _local1:Number = Rnd.integer(1, 3); switch (_local1){ case 1: _wallSprite = Main.assets.woodWall1; break; case 2: _wallSprite = Main.assets.woodWall2; break; }; } } }//packageSection 442//WallWoodMov (WallWoodMov) package { import flash.display.*; import org.cove.ape.*; import flash.geom.*; import gs.*; import gs.events.*; import com.gskinner.utils.*; import gs.easing.*; public class WallWoodMov extends Wall { protected var _speed:Number; protected var _tween:TweenMax; protected var _animatePoint:Point; protected var _currentPos:Vector; public function WallWoodMov(_arg1:Group):void{ super(_arg1); _elasticity = 0.7; _friction = 0; _height = 10; _type = Wall.WOOD_WALL_MOV; _sound = Assets.SOUND_WALLHIT; } override public function draw(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):void{ super.draw(_arg1, _arg2, _arg3); if ((((_speed > 0)) && (_animatePoint))){ _phyRec.fixed = true; _phyRec.mass = 1000; _currentPos = new Vector(_centerPoint.x, _centerPoint.y); _tween = TweenMax.to(_currentPos, _speed, {x:_animatePoint.x, y:_animatePoint.y, onUpdateListener:onWallTweenUpdate, yoyo:0, ease:Linear.easeInOut}); }; } override protected function createDisplayObject():void{ var _local1:Number = Rnd.integer(1, 3); switch (_local1){ case 1: _wallSprite = Main.assets.woodWall1; break; case 2: _wallSprite = Main.assets.woodWall2; break; }; } override public function update():void{ } protected function onWallTweenUpdate(_arg1:TweenEvent):void{ _phyRec.px = _currentPos.x; _phyRec.py = _currentPos.y; _container.x = _currentPos.x; _container.y = _currentPos.y; } public function animateTo(_arg1:Point, _arg2:Number=0):void{ _animatePoint = _arg1; _speed = _arg2; } } }//packageSection 443//WoodPeg (WoodPeg) package { import org.cove.ape.*; public class WoodPeg extends RubberPeg { public function WoodPeg(_arg1:Group):void{ super(_arg1); _group = _arg1; _timers = []; _elasticity = 0.9; _sound = Assets.SOUND_WALLHIT; _image = Assets.WoodPeg; } } }//package
Library Items
| Symbol 1 Sound {Assets_Burning} [Assets_Burning] | ||
| Symbol 2 Graphic | Used by:17 | |
| Symbol 3 Graphic | Used by:17 | |
| Symbol 4 Graphic | Used by:17 | |
| Symbol 5 Sound | Used by:17 | |
| Symbol 6 Sound | Used by:17 | |
| Symbol 7 Graphic | Used by:17 | |
| Symbol 8 Graphic | Used by:9 | |
| Symbol 9 MovieClip | Uses:8 | Used by:17 |
| Symbol 10 Sound | Used by:17 | |
| Symbol 11 Sound | Used by:17 | |
| Symbol 12 Sound | Used by:17 | |
| Symbol 13 Graphic | Used by:14 | |
| Symbol 14 Button | Uses:13 | Used by:17 |
| Symbol 15 Sound | Used by:17 | |
| Symbol 16 Sound | Used by:17 | |
| Symbol 17 MovieClip {Assets_Splash} [ArmorIntro] | Uses:2 3 4 5 6 7 9 10 11 12 14 15 16 | |
| Symbol 18 Graphic | Used by:19 | |
| Symbol 19 MovieClip {Assets__SoundIconOff} [SoundIconOff] | Uses:18 | |
| Symbol 20 Sound {Assets__SoundCannon} [SoundCannon2] | ||
| Symbol 21 Graphic | Used by:22 | |
| Symbol 22 MovieClip {Assets__WoodWall2} [WoodWall2] | Uses:21 | |
| Symbol 23 Graphic | Used by:28 | |
| Symbol 24 Graphic | Used by:28 | |
| Symbol 25 Graphic | Used by:28 | |
| Symbol 26 Graphic | Used by:28 | |
| Symbol 27 Graphic | Used by:28 | |
| Symbol 28 MovieClip {Assets__Pop} [Pop] | Uses:23 24 25 26 27 | |
| Symbol 29 Sound {Assets__SoundFanfare} [SoundFanfare] | ||
| Symbol 30 Font {Assets_BlockTRegCond} [BlockTRegCond] | ||
| Symbol 31 Sound {Assets__SoundSQEhhh} [SoundSQEhhh] | ||
| Symbol 32 Sound {Assets__SoundRise} [SoundRise] | ||
| Symbol 33 Font {Assets_Base12SansSC} [Base12SansSC] | ||
| Symbol 34 Sound {Assets__SoundSQOohh} [SoundSQOohh] | ||
| Symbol 35 Sound {Assets__SoundNoon} [SoundNoon] | ||
| Symbol 36 Sound {Assets_FireWhoosh} [Assets_FireWhoosh] | ||
| Symbol 37 Graphic | Used by:38 | |
| Symbol 38 MovieClip {Assets_WoodWall1} [WoodWall1] | Uses:37 | |
| Symbol 39 Sound {Assets__SoundSQLookOut} [SoundSQLookOut] | ||
| Symbol 40 Sound {Assets__SoundSQAlright} [SoundSQAlright] | ||
| Symbol 41 Sound {Assets__StarMeterFull} [StarMeterFull] | ||
| Symbol 42 Sound {Assets__SoundSQYipee2} [SoundSQYipee2] | ||
| Symbol 43 Sound {Assets__SoundSQHereICome} [SoundSQHereICome] | ||
| Symbol 44 Sound {Assets_Crow2} [Assets_Crow2] | ||
| Symbol 45 Graphic | Used by:46 | |
| Symbol 46 MovieClip | Uses:45 | Used by:48 |
| Symbol 47 Graphic | Used by:48 | |
| Symbol 48 MovieClip {Assets_Switch} [Switch] | Uses:46 47 | |
| Symbol 49 Sound {Assets_GlassBreak} [Assets_GlassBreak] | ||
| Symbol 50 Sound {Assets_GrassHit2} [Assets_GrassHit2] | ||
| Symbol 51 Graphic | Used by:52 | |
| Symbol 52 MovieClip {Assets__Gear} [Gear] | Uses:51 | |
| Symbol 53 Graphic | Used by:56 | |
| Symbol 54 Font {Assets_BlockTHeavy} [BlockTHeavy] | Used by:55 77 92 | |
| Symbol 55 Text | Uses:54 | Used by:56 |
| Symbol 56 MovieClip {Assets__BigNutBubble} [BigNutBubble] | Uses:53 55 | |
| Symbol 57 Sound {Assets__SoundMidnight} [SoundMidnight] | ||
| Symbol 58 Sound {Assets__SoundSQYipee3} [SoundSQYipee3] | ||
| Symbol 59 Sound {Assets__SoundStarMove} [SoundStarMove] | ||
| Symbol 60 Sound {Assets__SoundSQWoohoo} [SoundSQWoohoo] | ||
| Symbol 61 Sound {Assets__SoundBawong} [SoundBawong] | ||
| Symbol 62 Sound {Assets__SoundSQMayHave} [SoundSQMayHave] | ||
| Symbol 63 Sound {Assets__SoundSQMoreMore} [SoundSQMoreMore] | ||
| Symbol 64 Sound {Assets_GrassHit3} [Assets_GrassHit3] | ||
| Symbol 65 Sound {Assets__SoundPop} [SoundPop] | ||
| Symbol 66 Sound {Assets_Crow1} [Assets_Crow1] | ||
| Symbol 67 Graphic | Used by:70 | |
| Symbol 68 Graphic | Used by:69 | |
| Symbol 69 MovieClip | Uses:68 | Used by:70 |
| Symbol 70 MovieClip {Assets__Cannon} [Cannon] | Uses:67 69 | |
| Symbol 71 Sound {Assets__SoundSQYipee} [SoundSQYipee] | ||
| Symbol 72 Sound {Assets__SoundSQWantMore} [SoundSQWantMore] | ||
| Symbol 73 Sound {Assets__SoundKnock1} [SoundKnock1] | ||
| Symbol 74 Sound {Assets__SoundMorning} [SoundMorning] | ||
| Symbol 75 Sound {Assets__SoundStarEarn} [SoundStarEarn] | ||
| Symbol 76 Graphic | Used by:78 | |
| Symbol 77 Text | Uses:54 | Used by:78 |
| Symbol 78 MovieClip {Assets__MeterBubble} [MeterBubble] | Uses:76 77 | |
| Symbol 79 Font {Assets_BlockTReg} [BlockTReg] | ||
| Symbol 80 Graphic | Used by:81 | |
| Symbol 81 MovieClip {Assets__SoundIcon} [SoundIcon] | Uses:80 | |
| Symbol 82 Sound {Assets__SoundGroan} [SoundGroan] | ||
| Symbol 83 Sound {Assets_MenuMusic} [Assets_MenuMusic] | ||
| Symbol 84 Graphic | Used by:85 | |
| Symbol 85 MovieClip {Assets__Wheel} [Wheel] | Uses:84 | |
| Symbol 86 Graphic | Used by:87 | |
| Symbol 87 MovieClip {Assets_RubberWall1} [RubberWall1] | Uses:86 | |
| Symbol 88 Sound {Assets_GrassHit1} [Assets_GrassHit1] | ||
| Symbol 89 Sound {Assets__SoundSquirrelLaugh} [SoundSquirrelLaugh] | ||
| Symbol 90 Sound {Assets__SoundWallHit} [SoundWallHit] | ||
| Symbol 91 Graphic | Used by:93 | |
| Symbol 92 Text | Uses:54 | Used by:93 |
| Symbol 93 MovieClip {Assets__StarBubble} [StarBubble] | Uses:91 92 | |
| Symbol 94 Sound {Assets__SoundSunset} [SoundSunset] | ||
| Symbol 95 Sound {Assets__SoundSQOohh2} [SoundSQOohh2] | ||
| Symbol 96 Sound {Assets__SoundSQWantBig} [SoundSQWantBig] | ||
| Symbol 97 Bitmap {Assets_Spring3_5} | ||
| Symbol 98 Bitmap {Assets_BonusStarOff} | ||
| Symbol 99 Bitmap {Assets_Spring1_3} | ||
| Symbol 100 Bitmap {Assets_Spring2_4} | ||
| Symbol 101 Bitmap {Assets_BuyItButton} | ||
| Symbol 102 Bitmap {Assets_LevelsButton} | ||
| Symbol 103 Bitmap {Assets_Spring2_5} | ||
| Symbol 104 Bitmap {Assets_MedalSquirrel} | ||
| Symbol 105 Bitmap {Assets_QuestionButton} | ||
| Symbol 106 Bitmap {Assets_SkyNight} | ||
| Symbol 107 Bitmap {Assets_RubberBall} | ||
| Symbol 108 Bitmap {Assets_Winter1_5} | ||
| Symbol 109 Bitmap {Assets_EndStarOn3} | ||
| Symbol 110 Bitmap {Assets_ExampleLevel} | ||
| Symbol 111 Bitmap {Assets_MenuPlay} | ||
| Symbol 112 Bitmap {Assets_Spring1_2} | ||
| Symbol 113 Bitmap {Assets_Spring3_4} | ||
| Symbol 114 Bitmap {Assets_EndStarOn1} | ||
| Symbol 115 Bitmap {Assets_Spring2_3} | ||
| Symbol 116 Bitmap {Assets_Winter3_1} | ||
| Symbol 117 Bitmap {Assets_SquirrelTail} | ||
| Symbol 118 Bitmap {Assets_Winter1_3} | ||
| Symbol 119 Bitmap {Assets_ContinueButton} | ||
| Symbol 120 Bitmap {Assets_NutPattern} | ||
| Symbol 121 Bitmap {Assets_PointsStar} | ||
| Symbol 122 Bitmap {Assets_EndStarOff5} | ||
| Symbol 123 Bitmap {Assets_LockLevel} | ||
| Symbol 124 Bitmap {Assets_WoodDivider2} | ||
| Symbol 125 Bitmap {Assets_MochiGamesBubble} | ||
| Symbol 126 Bitmap {Assets_TargetStarOn} | ||
| Symbol 127 Bitmap {Assets_EndButton} | ||
| Symbol 128 Bitmap {Assets_DoneButton} | ||
| Symbol 129 Bitmap {Assets_WoodBackgroundSmall} | ||
| Symbol 130 Bitmap {Assets_QuitButton} | ||
| Symbol 131 Bitmap {Assets_StarBurstYellow} | ||
| Symbol 132 Bitmap {Assets_MiniButtonOn} | ||
| Symbol 133 Bitmap {Assets_MenuAndkon} | ||
| Symbol 134 Bitmap {Assets_Winter1_4} | ||
| Symbol 135 Bitmap {Assets_NutFirePlace} | ||
| Symbol 136 Bitmap {Assets_TextBonusLevels} | ||
| Symbol 137 Bitmap {Assets_Winter2_2} | ||
| Symbol 138 Bitmap {Assets_NutGem} | ||
| Symbol 139 Bitmap {Assets_Spring1_4} | ||
| Symbol 140 Bitmap {Assets_WoodDividerLarge2} | ||
| Symbol 141 Bitmap {Assets_Arrow} | ||
| Symbol 142 Bitmap {Assets_EndStarOff4} | ||
| Symbol 143 Bitmap {Assets_Spring1_5} | ||
| Symbol 144 Bitmap {Assets_BonusLockBubble} | ||
| Symbol 145 Bitmap {Assets_WoodDividerLarge1} | ||
| Symbol 146 Bitmap {Assets_Cloud2} | ||
| Symbol 147 Bitmap {Assets_Cloud3} | ||
| Symbol 148 Bitmap {Assets_SmokePuff1} | ||
| Symbol 149 Bitmap {Assets_Winter1_2} | ||
| Symbol 150 Bitmap {Assets_CustomizeButton} | ||
| Symbol 151 Bitmap {Assets_PibooButton} | ||
| Symbol 152 Bitmap {Assets_EndStarOff3} | ||
| Symbol 153 Bitmap {Assets_MessageBackground} | ||
| Symbol 154 Bitmap {Assets_CannonPuff1} | ||
| Symbol 155 Bitmap {Assets_EndStarOn2} | ||
| Symbol 156 Bitmap {Assets_SelectButtonOff} | ||
| Symbol 157 Bitmap {Assets_FireAnim} | ||
| Symbol 158 Bitmap {Assets_Spring4_5} | ||
| Symbol 159 Bitmap {Assets_StarMeterOn} | ||
| Symbol 160 Bitmap {Assets_ResetButton} | ||
| Symbol 161 Bitmap {Assets_LeaderboardButton} | ||
| Symbol 162 Bitmap {Assets_BonusStarOn} | ||
| Symbol 163 Bitmap {Assets_SmokePuff2} | ||
| Symbol 164 Bitmap {Assets_SquirrelViking} | ||
| Symbol 165 Bitmap {Assets_Grass} | ||
| Symbol 166 Bitmap {Assets_BonusLevelGreyStar} | ||
| Symbol 167 Bitmap {Assets_WoodButton} | ||
| Symbol 168 Bitmap {Assets_EndTargetStarOn} | ||
| Symbol 169 Bitmap {Assets_MenuStore} | ||
| Symbol 170 Bitmap {Assets_Winter2_4} | ||
| Symbol 171 Bitmap {Assets_EndStarOff1} | ||
| Symbol 172 Bitmap {Assets_BigNut} | ||
| Symbol 173 Bitmap {Assets_BonusLevelRowLock} | ||
| Symbol 174 Bitmap {Assets_WoodBackgroundLarge} | ||
| Symbol 175 Bitmap {Assets_NutClone} | ||
| Symbol 176 Bitmap {Assets_Spring3_2} | ||
| Symbol 177 Bitmap {Assets_BackButton} | ||
| Symbol 178 Bitmap {Assets_Logo} | ||
| Symbol 179 Bitmap {Assets_EndLevelLock} | ||
| Symbol 180 Bitmap {Assets_WoodPeg} | ||
| Symbol 181 Bitmap {Assets_Winter2_3} | ||
| Symbol 182 Bitmap {Assets_ArrowLogin} | ||
| Symbol 183 Bitmap {Assets_BuyNowButton} | ||
| Symbol 184 Bitmap {Assets_EndStarOff2} | ||
| Symbol 185 Bitmap {Assets_SkyMorning} | ||
| Symbol 186 Bitmap {Assets_NutFire} | ||
| Symbol 187 Bitmap {Assets_PlayButton} | ||
| Symbol 188 Bitmap {Assets_EndLevelUnlock} | ||
| Symbol 189 Bitmap {Assets_LevelBubble} | ||
| Symbol 190 Bitmap {Assets_Spring3_3} | ||
| Symbol 191 Bitmap {Assets_PauseButton} | ||
| Symbol 192 Bitmap {Assets_SubmitButton} | ||
| Symbol 193 Bitmap {Assets_StarBurstPurple} | ||
| Symbol 194 Bitmap {Assets_Feather1} | ||
| Symbol 195 Bitmap {Assets_Spring3_1} | ||
| Symbol 196 Bitmap {Assets_BirdAnim} | ||
| Symbol 197 Bitmap {Assets_SquirrelSpike} | ||
| Symbol 198 Bitmap {Assets_MedalNutEmpty} | ||
| Symbol 199 Bitmap {Assets_MiniGameLogo2} | ||
| Symbol 200 Bitmap {Assets_MiniButtonOff} | ||
| Symbol 201 Bitmap {Assets_Snow} | ||
| Symbol 202 Bitmap {Assets_MenuTop} | ||
| Symbol 203 Bitmap {Assets_MiniGameLogo} | ||
| Symbol 204 Bitmap {Assets_TargetStarOff} | ||
| Symbol 205 Bitmap {Assets_MultiplierStar} | ||
| Symbol 206 Bitmap {Assets_Flake2} | ||
| Symbol 207 Bitmap {Assets_Winter4_3} | ||
| Symbol 208 Bitmap {Assets_EndTargetStarOff} | ||
| Symbol 209 Bitmap {Assets_BonusBubble} | ||
| Symbol 210 Bitmap {Assets_Dandelion} | ||
| Symbol 211 Bitmap {Assets_MiniGameSell} | ||
| Symbol 212 Bitmap {Assets_Winter2_5} | ||
| Symbol 213 Bitmap {Assets_Flake1} | ||
| Symbol 214 Bitmap {Assets_TextSelectLevel} | ||
| Symbol 215 Bitmap {Assets_WinterTerrain} | ||
| Symbol 216 Bitmap {Assets_Winter1_1} | ||
| Symbol 217 Bitmap {Assets_Winter4_4} | ||
| Symbol 218 Bitmap {Assets_SquirrelSanta} | ||
| Symbol 219 Bitmap {Assets_ReplayButton} | ||
| Symbol 220 Bitmap {Assets_Spring4_4} | ||
| Symbol 221 Bitmap {Assets_NutFat} | ||
| Symbol 222 Bitmap {Assets_Spring2_2} | ||
| Symbol 223 Bitmap {Assets_Spring1_1} | ||
| Symbol 224 Bitmap {Assets_StarMeterOff} | ||
| Symbol 225 Bitmap {Assets_GraphBackground} | ||
| Symbol 226 Bitmap {Assets_Winter3_5} | ||
| Symbol 227 Bitmap {Assets_GraphForeground} | ||
| Symbol 228 Bitmap {Assets_BonusLevelLocked} | ||
| Symbol 229 Bitmap {Assets_Flake3} | ||
| Symbol 230 Bitmap {Assets_NutNormal} | ||
| Symbol 231 Bitmap {Assets_WinterSell} | ||
| Symbol 232 Bitmap {Assets_Spring2_1} | ||
| Symbol 233 Bitmap {Assets_EndStarOn4} | ||
| Symbol 234 Bitmap {Assets_BonusLevelStar} | ||
| Symbol 235 Bitmap {Assets_Winter3_4} | ||
| Symbol 236 Bitmap {Assets_MoveArrow} | ||
| Symbol 237 Bitmap {Assets_SquirrelMohawk} | ||
| Symbol 238 Bitmap {Assets_MedalNut} | ||
| Symbol 239 Bitmap {Assets_WoodDivider1} | ||
| Symbol 240 Bitmap {Assets_SmokePuff3} | ||
| Symbol 241 Bitmap {Assets_MenuGradient} | ||
| Symbol 242 Bitmap {Assets_Firework} | ||
| Symbol 243 Bitmap {Assets_Cloud1} | ||
| Symbol 244 Bitmap {Assets_MedalBirdEmpty} | ||
| Symbol 245 Bitmap {Assets_Winter2_1} | ||
| Symbol 246 Bitmap {Assets_GrassBlur} | ||
| Symbol 247 Bitmap {Assets_Sparkle} | ||
| Symbol 248 Bitmap {Assets_MedalBird} | ||
| Symbol 249 Bitmap {Assets_Winter4_5} | ||
| Symbol 250 Bitmap {Assets_SpringTerrain} | ||
| Symbol 251 Bitmap {Assets_Spring4_2} | ||
| Symbol 252 Bitmap {Assets_Winter3_3} | ||
| Symbol 253 Bitmap {Assets_SkyAfternoon} | ||
| Symbol 254 Bitmap {Assets_SquirrelChica} | ||
| Symbol 255 Bitmap {Assets_MedalSquirrelEmpty} | ||
| Symbol 256 Bitmap {Assets_EndStarOn5} | ||
| Symbol 257 Bitmap {Assets_SkyNoon} | ||
| Symbol 258 Bitmap {Assets_SelectButtonOn} | ||
| Symbol 259 Bitmap {Assets_Winter4_1} | ||
| Symbol 260 Bitmap {Assets_UnlockButtonSmall} | ||
| Symbol 261 Bitmap {Assets_Winter4_2} | ||
| Symbol 262 Bitmap {Assets_RapidFireMode} | ||
| Symbol 263 Bitmap {Assets_NutGemAnim} | ||
| Symbol 264 Bitmap {Assets_Winter3_2} | ||
| Symbol 265 Bitmap {Assets_ScoreMedalDivider} | ||
| Symbol 266 Bitmap {Assets_WoodHeadboard} | ||
| Symbol 267 Bitmap {Assets_Spring4_1} | ||
| Symbol 268 Bitmap {Assets_GemShard} | ||
| Symbol 269 Bitmap {Assets_BuyCheatButton} | ||
| Symbol 270 Bitmap {Assets_Spring4_3} | ||
| Symbol 271 Bitmap {Assets_MeterStarOn} | ||
| Symbol 272 Bitmap {Assets_SquirrelNormal} | ||
| Symbol 273 Bitmap {Assets_MeterStarOff} |
Instance Names
| "handle" | Symbol 48 MovieClip {Assets_Switch} [Switch] Frame 1 | Symbol 46 MovieClip |
Special Tags
| FileAttributes (69) | Timeline Frame 1 | Access network only, Metadata present, AS3. |
| SWFMetaData (77) | Timeline Frame 1 | 458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..." |
| ScriptLimits (65) | Timeline Frame 1 | MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds |
| ExportAssets (56) | Timeline Frame 1 | Symbol 1 as "Assets_Burning" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 17 as "ArmorIntro" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 19 as "SoundIconOff" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 20 as "SoundCannon2" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 22 as "WoodWall2" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 28 as "Pop" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 29 as "SoundFanfare" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 30 as "BlockTRegCond" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 31 as "SoundSQEhhh" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 32 as "SoundRise" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 33 as "Base12SansSC" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 34 as "SoundSQOohh" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 35 as "SoundNoon" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 36 as "Assets_FireWhoosh" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 38 as "WoodWall1" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 39 as "SoundSQLookOut" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 40 as "SoundSQAlright" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 41 as "StarMeterFull" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 42 as "SoundSQYipee2" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 43 as "SoundSQHereICome" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 44 as "Assets_Crow2" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 48 as "Switch" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 49 as "Assets_GlassBreak" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 50 as "Assets_GrassHit2" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 52 as "Gear" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 56 as "BigNutBubble" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 57 as "SoundMidnight" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 58 as "SoundSQYipee3" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 59 as "SoundStarMove" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 60 as "SoundSQWoohoo" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 61 as "SoundBawong" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 62 as "SoundSQMayHave" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 63 as "SoundSQMoreMore" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 64 as "Assets_GrassHit3" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 65 as "SoundPop" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 66 as "Assets_Crow1" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 70 as "Cannon" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 71 as "SoundSQYipee" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 72 as "SoundSQWantMore" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 54 as "BlockTHeavy" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 73 as "SoundKnock1" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 74 as "SoundMorning" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 75 as "SoundStarEarn" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 78 as "MeterBubble" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 79 as "BlockTReg" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 81 as "SoundIcon" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 82 as "SoundGroan" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 83 as "Assets_MenuMusic" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 85 as "Wheel" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 87 as "RubberWall1" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 88 as "Assets_GrassHit1" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 89 as "SoundSquirrelLaugh" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 90 as "SoundWallHit" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 93 as "StarBubble" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 94 as "SoundSunset" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 95 as "SoundSQOohh2" |
| ExportAssets (56) | Timeline Frame 1 | Symbol 96 as "SoundSQWantBig" |
| SerialNumber (41) | Timeline Frame 1 |
Labels
| "Preloader" | Frame 1 |
|
|