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

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM96851955-20DC&rnd=96851955" width="1" height="1"></div>

armorgames crazy-go-nuts-2-4306.swf

This is the info page for
Flash #264395

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


Text
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.json
Section 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.json
Section 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.json
Section 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.json
Section 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.json
Section 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.json
Section 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.json
Section 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.core
Section 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.effects
Section 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.extras
Section 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.guides
Section 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.layers
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.motion
Section 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.motion
Section 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.motion
Section 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.utils
Section 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.utils
Section 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.utils
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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 editor
Section 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.easing
Section 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.easing
Section 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.easing
Section 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.easing
Section 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.events
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.plugins
Section 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.tween
Section 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.tween
Section 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 gs
Section 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 gs
Section 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 gs
Section 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 levels
Section 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 levels
Section 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 levels
Section 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 levels
Section 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.as3
Section 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.as3
Section 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.as3
Section 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.as3
Section 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.as3
Section 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.as3
Section 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.as3
Section 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.core
Section 97
//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.0.0.0"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.left = _arg1; this.top = _arg2; this.right = _arg3; this.bottom = _arg4; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.core
Section 98
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.0.0.0"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 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.core
Section 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.core
Section 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.core
Section 102
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 103
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 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.core
Section 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.core
Section 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.core
Section 107
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 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.core
Section 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.core
Section 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.utils
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 123
//IForce (org.cove.ape.IForce) package org.cove.ape { public interface IForce { function getValue(_arg1:Number):Vector; } }//package org.cove.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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.ape
Section 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()); } } }//package
Section 132
//Assets__BigNutBubble (Assets__BigNutBubble) package { import flash.display.*; import mx.core.*; public class Assets__BigNutBubble extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 133
//Assets__Cannon (Assets__Cannon) package { import flash.display.*; import mx.core.*; public class Assets__Cannon extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 134
//Assets__Gear (Assets__Gear) package { import flash.display.*; import mx.core.*; public class Assets__Gear extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 135
//Assets__MeterBubble (Assets__MeterBubble) package { import flash.display.*; import mx.core.*; public class Assets__MeterBubble extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 136
//Assets__Pop (Assets__Pop) package { import mx.core.*; public class Assets__Pop extends MovieClipAsset { } }//package
Section 137
//Assets__SoundBawong (Assets__SoundBawong) package { import flash.display.*; import mx.core.*; public class Assets__SoundBawong extends SoundAsset { public var handle:DisplayObject; } }//package
Section 138
//Assets__SoundCannon (Assets__SoundCannon) package { import mx.core.*; public class Assets__SoundCannon extends SoundAsset { } }//package
Section 139
//Assets__SoundFanfare (Assets__SoundFanfare) package { import mx.core.*; public class Assets__SoundFanfare extends SoundAsset { } }//package
Section 140
//Assets__SoundGroan (Assets__SoundGroan) package { import flash.display.*; import mx.core.*; public class Assets__SoundGroan extends SoundAsset { public var handle:DisplayObject; } }//package
Section 141
//Assets__SoundIcon (Assets__SoundIcon) package { import flash.display.*; import mx.core.*; public class Assets__SoundIcon extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 142
//Assets__SoundIconOff (Assets__SoundIconOff) package { import mx.core.*; public class Assets__SoundIconOff extends SpriteAsset { } }//package
Section 143
//Assets__SoundKnock1 (Assets__SoundKnock1) package { import flash.display.*; import mx.core.*; public class Assets__SoundKnock1 extends SoundAsset { public var handle:DisplayObject; } }//package
Section 144
//Assets__SoundMidnight (Assets__SoundMidnight) package { import flash.display.*; import mx.core.*; public class Assets__SoundMidnight extends SoundAsset { public var handle:DisplayObject; } }//package
Section 145
//Assets__SoundMorning (Assets__SoundMorning) package { import flash.display.*; import mx.core.*; public class Assets__SoundMorning extends SoundAsset { public var handle:DisplayObject; } }//package
Section 146
//Assets__SoundNoon (Assets__SoundNoon) package { import mx.core.*; public class Assets__SoundNoon extends SoundAsset { } }//package
Section 147
//Assets__SoundPop (Assets__SoundPop) package { import flash.display.*; import mx.core.*; public class Assets__SoundPop extends SoundAsset { public var handle:DisplayObject; } }//package
Section 148
//Assets__SoundRise (Assets__SoundRise) package { import mx.core.*; public class Assets__SoundRise extends SoundAsset { } }//package
Section 149
//Assets__SoundSQAlright (Assets__SoundSQAlright) package { import mx.core.*; public class Assets__SoundSQAlright extends SoundAsset { } }//package
Section 150
//Assets__SoundSQEhhh (Assets__SoundSQEhhh) package { import mx.core.*; public class Assets__SoundSQEhhh extends SoundAsset { } }//package
Section 151
//Assets__SoundSQHereICome (Assets__SoundSQHereICome) package { import mx.core.*; public class Assets__SoundSQHereICome extends SoundAsset { } }//package
Section 152
//Assets__SoundSQLookOut (Assets__SoundSQLookOut) package { import mx.core.*; public class Assets__SoundSQLookOut extends SoundAsset { } }//package
Section 153
//Assets__SoundSQMayHave (Assets__SoundSQMayHave) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQMayHave extends SoundAsset { public var handle:DisplayObject; } }//package
Section 154
//Assets__SoundSQMoreMore (Assets__SoundSQMoreMore) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQMoreMore extends SoundAsset { public var handle:DisplayObject; } }//package
Section 155
//Assets__SoundSQOohh (Assets__SoundSQOohh) package { import mx.core.*; public class Assets__SoundSQOohh extends SoundAsset { } }//package
Section 156
//Assets__SoundSQOohh2 (Assets__SoundSQOohh2) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQOohh2 extends SoundAsset { public var handle:DisplayObject; } }//package
Section 157
//Assets__SoundSquirrelLaugh (Assets__SoundSquirrelLaugh) package { import flash.display.*; import mx.core.*; public class Assets__SoundSquirrelLaugh extends SoundAsset { public var handle:DisplayObject; } }//package
Section 158
//Assets__SoundSQWantBig (Assets__SoundSQWantBig) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQWantBig extends SoundAsset { public var handle:DisplayObject; } }//package
Section 159
//Assets__SoundSQWantMore (Assets__SoundSQWantMore) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQWantMore extends SoundAsset { public var handle:DisplayObject; } }//package
Section 160
//Assets__SoundSQWoohoo (Assets__SoundSQWoohoo) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQWoohoo extends SoundAsset { public var handle:DisplayObject; } }//package
Section 161
//Assets__SoundSQYipee (Assets__SoundSQYipee) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQYipee extends SoundAsset { public var handle:DisplayObject; } }//package
Section 162
//Assets__SoundSQYipee2 (Assets__SoundSQYipee2) package { import mx.core.*; public class Assets__SoundSQYipee2 extends SoundAsset { } }//package
Section 163
//Assets__SoundSQYipee3 (Assets__SoundSQYipee3) package { import flash.display.*; import mx.core.*; public class Assets__SoundSQYipee3 extends SoundAsset { public var handle:DisplayObject; } }//package
Section 164
//Assets__SoundStarEarn (Assets__SoundStarEarn) package { import flash.display.*; import mx.core.*; public class Assets__SoundStarEarn extends SoundAsset { public var handle:DisplayObject; } }//package
Section 165
//Assets__SoundStarMove (Assets__SoundStarMove) package { import flash.display.*; import mx.core.*; public class Assets__SoundStarMove extends SoundAsset { public var handle:DisplayObject; } }//package
Section 166
//Assets__SoundSunset (Assets__SoundSunset) package { import flash.display.*; import mx.core.*; public class Assets__SoundSunset extends SoundAsset { public var handle:DisplayObject; } }//package
Section 167
//Assets__SoundWallHit (Assets__SoundWallHit) package { import flash.display.*; import mx.core.*; public class Assets__SoundWallHit extends SoundAsset { public var handle:DisplayObject; } }//package
Section 168
//Assets__StarBubble (Assets__StarBubble) package { import flash.display.*; import mx.core.*; public class Assets__StarBubble extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 169
//Assets__StarMeterFull (Assets__StarMeterFull) package { import mx.core.*; public class Assets__StarMeterFull extends SoundAsset { } }//package
Section 170
//Assets__Wheel (Assets__Wheel) package { import flash.display.*; import mx.core.*; public class Assets__Wheel extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 171
//Assets__WoodWall1 (Assets__WoodWall1) package { import mx.core.*; public class Assets__WoodWall1 extends SpriteAsset { } }//package
Section 172
//Assets__WoodWall2 (Assets__WoodWall2) package { import mx.core.*; public class Assets__WoodWall2 extends SpriteAsset { } }//package
Section 173
//Assets_Arrow (Assets_Arrow) package { import mx.core.*; public class Assets_Arrow extends BitmapAsset { } }//package
Section 174
//Assets_ArrowLogin (Assets_ArrowLogin) package { import mx.core.*; public class Assets_ArrowLogin extends BitmapAsset { } }//package
Section 175
//Assets_BackButton (Assets_BackButton) package { import mx.core.*; public class Assets_BackButton extends BitmapAsset { } }//package
Section 176
//Assets_Base12SansSC (Assets_Base12SansSC) package { import mx.core.*; public class Assets_Base12SansSC extends FontAsset { } }//package
Section 177
//Assets_BigNut (Assets_BigNut) package { import mx.core.*; public class Assets_BigNut extends BitmapAsset { } }//package
Section 178
//Assets_BirdAnim (Assets_BirdAnim) package { import mx.core.*; public class Assets_BirdAnim extends BitmapAsset { } }//package
Section 179
//Assets_BlockTHeavy (Assets_BlockTHeavy) package { import flash.display.*; import mx.core.*; public class Assets_BlockTHeavy extends FontAsset { public var handle:DisplayObject; } }//package
Section 180
//Assets_BlockTReg (Assets_BlockTReg) package { import flash.display.*; import mx.core.*; public class Assets_BlockTReg extends FontAsset { public var handle:DisplayObject; } }//package
Section 181
//Assets_BlockTRegCond (Assets_BlockTRegCond) package { import mx.core.*; public class Assets_BlockTRegCond extends FontAsset { } }//package
Section 182
//Assets_BonusBubble (Assets_BonusBubble) package { import mx.core.*; public class Assets_BonusBubble extends BitmapAsset { } }//package
Section 183
//Assets_BonusLevelGreyStar (Assets_BonusLevelGreyStar) package { import mx.core.*; public class Assets_BonusLevelGreyStar extends BitmapAsset { } }//package
Section 184
//Assets_BonusLevelLocked (Assets_BonusLevelLocked) package { import mx.core.*; public class Assets_BonusLevelLocked extends BitmapAsset { } }//package
Section 185
//Assets_BonusLevelRowLock (Assets_BonusLevelRowLock) package { import mx.core.*; public class Assets_BonusLevelRowLock extends BitmapAsset { } }//package
Section 186
//Assets_BonusLevelStar (Assets_BonusLevelStar) package { import mx.core.*; public class Assets_BonusLevelStar extends BitmapAsset { } }//package
Section 187
//Assets_BonusLockBubble (Assets_BonusLockBubble) package { import mx.core.*; public class Assets_BonusLockBubble extends BitmapAsset { } }//package
Section 188
//Assets_BonusStarOff (Assets_BonusStarOff) package { import mx.core.*; public class Assets_BonusStarOff extends BitmapAsset { } }//package
Section 189
//Assets_BonusStarOn (Assets_BonusStarOn) package { import mx.core.*; public class Assets_BonusStarOn extends BitmapAsset { } }//package
Section 190
//Assets_Burning (Assets_Burning) package { import mx.core.*; public class Assets_Burning extends SoundAsset { } }//package
Section 191
//Assets_BuyCheatButton (Assets_BuyCheatButton) package { import mx.core.*; public class Assets_BuyCheatButton extends BitmapAsset { } }//package
Section 192
//Assets_BuyItButton (Assets_BuyItButton) package { import mx.core.*; public class Assets_BuyItButton extends BitmapAsset { } }//package
Section 193
//Assets_BuyNowButton (Assets_BuyNowButton) package { import mx.core.*; public class Assets_BuyNowButton extends BitmapAsset { } }//package
Section 194
//Assets_CannonPuff1 (Assets_CannonPuff1) package { import mx.core.*; public class Assets_CannonPuff1 extends BitmapAsset { } }//package
Section 195
//Assets_Cloud1 (Assets_Cloud1) package { import mx.core.*; public class Assets_Cloud1 extends BitmapAsset { } }//package
Section 196
//Assets_Cloud2 (Assets_Cloud2) package { import mx.core.*; public class Assets_Cloud2 extends BitmapAsset { } }//package
Section 197
//Assets_Cloud3 (Assets_Cloud3) package { import mx.core.*; public class Assets_Cloud3 extends BitmapAsset { } }//package
Section 198
//Assets_ContinueButton (Assets_ContinueButton) package { import mx.core.*; public class Assets_ContinueButton extends BitmapAsset { } }//package
Section 199
//Assets_Crow1 (Assets_Crow1) package { import mx.core.*; public class Assets_Crow1 extends SoundAsset { } }//package
Section 200
//Assets_Crow2 (Assets_Crow2) package { import mx.core.*; public class Assets_Crow2 extends SoundAsset { } }//package
Section 201
//Assets_CustomizeButton (Assets_CustomizeButton) package { import mx.core.*; public class Assets_CustomizeButton extends BitmapAsset { } }//package
Section 202
//Assets_Dandelion (Assets_Dandelion) package { import mx.core.*; public class Assets_Dandelion extends BitmapAsset { } }//package
Section 203
//Assets_DoneButton (Assets_DoneButton) package { import mx.core.*; public class Assets_DoneButton extends BitmapAsset { } }//package
Section 204
//Assets_EndButton (Assets_EndButton) package { import mx.core.*; public class Assets_EndButton extends BitmapAsset { } }//package
Section 205
//Assets_EndLevelLock (Assets_EndLevelLock) package { import mx.core.*; public class Assets_EndLevelLock extends BitmapAsset { } }//package
Section 206
//Assets_EndLevelUnlock (Assets_EndLevelUnlock) package { import mx.core.*; public class Assets_EndLevelUnlock extends BitmapAsset { } }//package
Section 207
//Assets_EndStarOff1 (Assets_EndStarOff1) package { import mx.core.*; public class Assets_EndStarOff1 extends BitmapAsset { } }//package
Section 208
//Assets_EndStarOff2 (Assets_EndStarOff2) package { import mx.core.*; public class Assets_EndStarOff2 extends BitmapAsset { } }//package
Section 209
//Assets_EndStarOff3 (Assets_EndStarOff3) package { import mx.core.*; public class Assets_EndStarOff3 extends BitmapAsset { } }//package
Section 210
//Assets_EndStarOff4 (Assets_EndStarOff4) package { import mx.core.*; public class Assets_EndStarOff4 extends BitmapAsset { } }//package
Section 211
//Assets_EndStarOff5 (Assets_EndStarOff5) package { import mx.core.*; public class Assets_EndStarOff5 extends BitmapAsset { } }//package
Section 212
//Assets_EndStarOn1 (Assets_EndStarOn1) package { import mx.core.*; public class Assets_EndStarOn1 extends BitmapAsset { } }//package
Section 213
//Assets_EndStarOn2 (Assets_EndStarOn2) package { import mx.core.*; public class Assets_EndStarOn2 extends BitmapAsset { } }//package
Section 214
//Assets_EndStarOn3 (Assets_EndStarOn3) package { import mx.core.*; public class Assets_EndStarOn3 extends BitmapAsset { } }//package
Section 215
//Assets_EndStarOn4 (Assets_EndStarOn4) package { import mx.core.*; public class Assets_EndStarOn4 extends BitmapAsset { } }//package
Section 216
//Assets_EndStarOn5 (Assets_EndStarOn5) package { import mx.core.*; public class Assets_EndStarOn5 extends BitmapAsset { } }//package
Section 217
//Assets_EndTargetStarOff (Assets_EndTargetStarOff) package { import mx.core.*; public class Assets_EndTargetStarOff extends BitmapAsset { } }//package
Section 218
//Assets_EndTargetStarOn (Assets_EndTargetStarOn) package { import mx.core.*; public class Assets_EndTargetStarOn extends BitmapAsset { } }//package
Section 219
//Assets_ExampleLevel (Assets_ExampleLevel) package { import mx.core.*; public class Assets_ExampleLevel extends BitmapAsset { } }//package
Section 220
//Assets_Feather1 (Assets_Feather1) package { import mx.core.*; public class Assets_Feather1 extends BitmapAsset { } }//package
Section 221
//Assets_FireAnim (Assets_FireAnim) package { import mx.core.*; public class Assets_FireAnim extends BitmapAsset { } }//package
Section 222
//Assets_FireWhoosh (Assets_FireWhoosh) package { import mx.core.*; public class Assets_FireWhoosh extends SoundAsset { } }//package
Section 223
//Assets_Firework (Assets_Firework) package { import mx.core.*; public class Assets_Firework extends BitmapAsset { } }//package
Section 224
//Assets_Flake1 (Assets_Flake1) package { import mx.core.*; public class Assets_Flake1 extends BitmapAsset { } }//package
Section 225
//Assets_Flake2 (Assets_Flake2) package { import mx.core.*; public class Assets_Flake2 extends BitmapAsset { } }//package
Section 226
//Assets_Flake3 (Assets_Flake3) package { import mx.core.*; public class Assets_Flake3 extends BitmapAsset { } }//package
Section 227
//Assets_GemShard (Assets_GemShard) package { import mx.core.*; public class Assets_GemShard extends BitmapAsset { } }//package
Section 228
//Assets_GlassBreak (Assets_GlassBreak) package { import mx.core.*; public class Assets_GlassBreak extends SoundAsset { } }//package
Section 229
//Assets_GraphBackground (Assets_GraphBackground) package { import mx.core.*; public class Assets_GraphBackground extends BitmapAsset { } }//package
Section 230
//Assets_GraphForeground (Assets_GraphForeground) package { import mx.core.*; public class Assets_GraphForeground extends BitmapAsset { } }//package
Section 231
//Assets_Grass (Assets_Grass) package { import mx.core.*; public class Assets_Grass extends BitmapAsset { } }//package
Section 232
//Assets_GrassBlur (Assets_GrassBlur) package { import mx.core.*; public class Assets_GrassBlur extends BitmapAsset { } }//package
Section 233
//Assets_GrassHit1 (Assets_GrassHit1) package { import mx.core.*; public class Assets_GrassHit1 extends SoundAsset { } }//package
Section 234
//Assets_GrassHit2 (Assets_GrassHit2) package { import mx.core.*; public class Assets_GrassHit2 extends SoundAsset { } }//package
Section 235
//Assets_GrassHit3 (Assets_GrassHit3) package { import mx.core.*; public class Assets_GrassHit3 extends SoundAsset { } }//package
Section 236
//Assets_LeaderboardButton (Assets_LeaderboardButton) package { import mx.core.*; public class Assets_LeaderboardButton extends BitmapAsset { } }//package
Section 237
//Assets_LevelBubble (Assets_LevelBubble) package { import mx.core.*; public class Assets_LevelBubble extends BitmapAsset { } }//package
Section 238
//Assets_LevelsButton (Assets_LevelsButton) package { import mx.core.*; public class Assets_LevelsButton extends BitmapAsset { } }//package
Section 239
//Assets_LockLevel (Assets_LockLevel) package { import mx.core.*; public class Assets_LockLevel extends BitmapAsset { } }//package
Section 240
//Assets_Logo (Assets_Logo) package { import mx.core.*; public class Assets_Logo extends BitmapAsset { } }//package
Section 241
//Assets_MedalBird (Assets_MedalBird) package { import mx.core.*; public class Assets_MedalBird extends BitmapAsset { } }//package
Section 242
//Assets_MedalBirdEmpty (Assets_MedalBirdEmpty) package { import mx.core.*; public class Assets_MedalBirdEmpty extends BitmapAsset { } }//package
Section 243
//Assets_MedalNut (Assets_MedalNut) package { import mx.core.*; public class Assets_MedalNut extends BitmapAsset { } }//package
Section 244
//Assets_MedalNutEmpty (Assets_MedalNutEmpty) package { import mx.core.*; public class Assets_MedalNutEmpty extends BitmapAsset { } }//package
Section 245
//Assets_MedalSquirrel (Assets_MedalSquirrel) package { import mx.core.*; public class Assets_MedalSquirrel extends BitmapAsset { } }//package
Section 246
//Assets_MedalSquirrelEmpty (Assets_MedalSquirrelEmpty) package { import mx.core.*; public class Assets_MedalSquirrelEmpty extends BitmapAsset { } }//package
Section 247
//Assets_MenuAndkon (Assets_MenuAndkon) package { import mx.core.*; public class Assets_MenuAndkon extends BitmapAsset { } }//package
Section 248
//Assets_MenuGradient (Assets_MenuGradient) package { import mx.core.*; public class Assets_MenuGradient extends BitmapAsset { } }//package
Section 249
//Assets_MenuMusic (Assets_MenuMusic) package { import mx.core.*; public class Assets_MenuMusic extends SoundAsset { } }//package
Section 250
//Assets_MenuPlay (Assets_MenuPlay) package { import mx.core.*; public class Assets_MenuPlay extends BitmapAsset { } }//package
Section 251
//Assets_MenuStore (Assets_MenuStore) package { import mx.core.*; public class Assets_MenuStore extends BitmapAsset { } }//package
Section 252
//Assets_MenuTop (Assets_MenuTop) package { import mx.core.*; public class Assets_MenuTop extends BitmapAsset { } }//package
Section 253
//Assets_MessageBackground (Assets_MessageBackground) package { import mx.core.*; public class Assets_MessageBackground extends BitmapAsset { } }//package
Section 254
//Assets_MeterStarOff (Assets_MeterStarOff) package { import mx.core.*; public class Assets_MeterStarOff extends BitmapAsset { } }//package
Section 255
//Assets_MeterStarOn (Assets_MeterStarOn) package { import mx.core.*; public class Assets_MeterStarOn extends BitmapAsset { } }//package
Section 256
//Assets_MiniButtonOff (Assets_MiniButtonOff) package { import mx.core.*; public class Assets_MiniButtonOff extends BitmapAsset { } }//package
Section 257
//Assets_MiniButtonOn (Assets_MiniButtonOn) package { import mx.core.*; public class Assets_MiniButtonOn extends BitmapAsset { } }//package
Section 258
//Assets_MiniGameLogo (Assets_MiniGameLogo) package { import mx.core.*; public class Assets_MiniGameLogo extends BitmapAsset { } }//package
Section 259
//Assets_MiniGameLogo2 (Assets_MiniGameLogo2) package { import mx.core.*; public class Assets_MiniGameLogo2 extends BitmapAsset { } }//package
Section 260
//Assets_MiniGameSell (Assets_MiniGameSell) package { import mx.core.*; public class Assets_MiniGameSell extends BitmapAsset { } }//package
Section 261
//Assets_MochiGamesBubble (Assets_MochiGamesBubble) package { import mx.core.*; public class Assets_MochiGamesBubble extends BitmapAsset { } }//package
Section 262
//Assets_MoveArrow (Assets_MoveArrow) package { import mx.core.*; public class Assets_MoveArrow extends BitmapAsset { } }//package
Section 263
//Assets_MultiplierStar (Assets_MultiplierStar) package { import mx.core.*; public class Assets_MultiplierStar extends BitmapAsset { } }//package
Section 264
//Assets_NutClone (Assets_NutClone) package { import mx.core.*; public class Assets_NutClone extends BitmapAsset { } }//package
Section 265
//Assets_NutFat (Assets_NutFat) package { import mx.core.*; public class Assets_NutFat extends BitmapAsset { } }//package
Section 266
//Assets_NutFire (Assets_NutFire) package { import mx.core.*; public class Assets_NutFire extends BitmapAsset { } }//package
Section 267
//Assets_NutFirePlace (Assets_NutFirePlace) package { import mx.core.*; public class Assets_NutFirePlace extends BitmapAsset { } }//package
Section 268
//Assets_NutGem (Assets_NutGem) package { import mx.core.*; public class Assets_NutGem extends BitmapAsset { } }//package
Section 269
//Assets_NutGemAnim (Assets_NutGemAnim) package { import mx.core.*; public class Assets_NutGemAnim extends BitmapAsset { } }//package
Section 270
//Assets_NutNormal (Assets_NutNormal) package { import mx.core.*; public class Assets_NutNormal extends BitmapAsset { } }//package
Section 271
//Assets_NutPattern (Assets_NutPattern) package { import mx.core.*; public class Assets_NutPattern extends BitmapAsset { } }//package
Section 272
//Assets_PauseButton (Assets_PauseButton) package { import mx.core.*; public class Assets_PauseButton extends BitmapAsset { } }//package
Section 273
//Assets_PibooButton (Assets_PibooButton) package { import mx.core.*; public class Assets_PibooButton extends BitmapAsset { } }//package
Section 274
//Assets_PlayButton (Assets_PlayButton) package { import mx.core.*; public class Assets_PlayButton extends BitmapAsset { } }//package
Section 275
//Assets_PointsStar (Assets_PointsStar) package { import mx.core.*; public class Assets_PointsStar extends BitmapAsset { } }//package
Section 276
//Assets_QuestionButton (Assets_QuestionButton) package { import mx.core.*; public class Assets_QuestionButton extends BitmapAsset { } }//package
Section 277
//Assets_QuitButton (Assets_QuitButton) package { import mx.core.*; public class Assets_QuitButton extends BitmapAsset { } }//package
Section 278
//Assets_RapidFireMode (Assets_RapidFireMode) package { import mx.core.*; public class Assets_RapidFireMode extends BitmapAsset { } }//package
Section 279
//Assets_ReplayButton (Assets_ReplayButton) package { import mx.core.*; public class Assets_ReplayButton extends BitmapAsset { } }//package
Section 280
//Assets_ResetButton (Assets_ResetButton) package { import mx.core.*; public class Assets_ResetButton extends BitmapAsset { } }//package
Section 281
//Assets_RubberBall (Assets_RubberBall) package { import mx.core.*; public class Assets_RubberBall extends BitmapAsset { } }//package
Section 282
//Assets_RubberWall1 (Assets_RubberWall1) package { import flash.display.*; import mx.core.*; public class Assets_RubberWall1 extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 283
//Assets_ScoreDivider (Assets_ScoreDivider) package { import mx.core.*; public class Assets_ScoreDivider extends BitmapAsset { } }//package
Section 284
//Assets_ScoreMedalDivider (Assets_ScoreMedalDivider) package { import mx.core.*; public class Assets_ScoreMedalDivider extends BitmapAsset { } }//package
Section 285
//Assets_SelectButtonOff (Assets_SelectButtonOff) package { import mx.core.*; public class Assets_SelectButtonOff extends BitmapAsset { } }//package
Section 286
//Assets_SelectButtonOn (Assets_SelectButtonOn) package { import mx.core.*; public class Assets_SelectButtonOn extends BitmapAsset { } }//package
Section 287
//Assets_SkyAfternoon (Assets_SkyAfternoon) package { import mx.core.*; public class Assets_SkyAfternoon extends BitmapAsset { } }//package
Section 288
//Assets_SkyMorning (Assets_SkyMorning) package { import mx.core.*; public class Assets_SkyMorning extends BitmapAsset { } }//package
Section 289
//Assets_SkyNight (Assets_SkyNight) package { import mx.core.*; public class Assets_SkyNight extends BitmapAsset { } }//package
Section 290
//Assets_SkyNoon (Assets_SkyNoon) package { import mx.core.*; public class Assets_SkyNoon extends BitmapAsset { } }//package
Section 291
//Assets_SmokePuff1 (Assets_SmokePuff1) package { import mx.core.*; public class Assets_SmokePuff1 extends BitmapAsset { } }//package
Section 292
//Assets_SmokePuff2 (Assets_SmokePuff2) package { import mx.core.*; public class Assets_SmokePuff2 extends BitmapAsset { } }//package
Section 293
//Assets_SmokePuff3 (Assets_SmokePuff3) package { import mx.core.*; public class Assets_SmokePuff3 extends BitmapAsset { } }//package
Section 294
//Assets_Snow (Assets_Snow) package { import mx.core.*; public class Assets_Snow extends BitmapAsset { } }//package
Section 295
//Assets_Sparkle (Assets_Sparkle) package { import mx.core.*; public class Assets_Sparkle extends BitmapAsset { } }//package
Section 296
//Assets_Splash (Assets_Splash) package { import mx.core.*; public class Assets_Splash extends MovieClipAsset { } }//package
Section 297
//Assets_Spring1_1 (Assets_Spring1_1) package { import mx.core.*; public class Assets_Spring1_1 extends BitmapAsset { } }//package
Section 298
//Assets_Spring1_2 (Assets_Spring1_2) package { import mx.core.*; public class Assets_Spring1_2 extends BitmapAsset { } }//package
Section 299
//Assets_Spring1_3 (Assets_Spring1_3) package { import mx.core.*; public class Assets_Spring1_3 extends BitmapAsset { } }//package
Section 300
//Assets_Spring1_4 (Assets_Spring1_4) package { import mx.core.*; public class Assets_Spring1_4 extends BitmapAsset { } }//package
Section 301
//Assets_Spring1_5 (Assets_Spring1_5) package { import mx.core.*; public class Assets_Spring1_5 extends BitmapAsset { } }//package
Section 302
//Assets_Spring2_1 (Assets_Spring2_1) package { import mx.core.*; public class Assets_Spring2_1 extends BitmapAsset { } }//package
Section 303
//Assets_Spring2_2 (Assets_Spring2_2) package { import mx.core.*; public class Assets_Spring2_2 extends BitmapAsset { } }//package
Section 304
//Assets_Spring2_3 (Assets_Spring2_3) package { import mx.core.*; public class Assets_Spring2_3 extends BitmapAsset { } }//package
Section 305
//Assets_Spring2_4 (Assets_Spring2_4) package { import mx.core.*; public class Assets_Spring2_4 extends BitmapAsset { } }//package
Section 306
//Assets_Spring2_5 (Assets_Spring2_5) package { import mx.core.*; public class Assets_Spring2_5 extends BitmapAsset { } }//package
Section 307
//Assets_Spring3_1 (Assets_Spring3_1) package { import mx.core.*; public class Assets_Spring3_1 extends BitmapAsset { } }//package
Section 308
//Assets_Spring3_2 (Assets_Spring3_2) package { import mx.core.*; public class Assets_Spring3_2 extends BitmapAsset { } }//package
Section 309
//Assets_Spring3_3 (Assets_Spring3_3) package { import mx.core.*; public class Assets_Spring3_3 extends BitmapAsset { } }//package
Section 310
//Assets_Spring3_4 (Assets_Spring3_4) package { import mx.core.*; public class Assets_Spring3_4 extends BitmapAsset { } }//package
Section 311
//Assets_Spring3_5 (Assets_Spring3_5) package { import mx.core.*; public class Assets_Spring3_5 extends BitmapAsset { } }//package
Section 312
//Assets_Spring4_1 (Assets_Spring4_1) package { import mx.core.*; public class Assets_Spring4_1 extends BitmapAsset { } }//package
Section 313
//Assets_Spring4_2 (Assets_Spring4_2) package { import mx.core.*; public class Assets_Spring4_2 extends BitmapAsset { } }//package
Section 314
//Assets_Spring4_3 (Assets_Spring4_3) package { import mx.core.*; public class Assets_Spring4_3 extends BitmapAsset { } }//package
Section 315
//Assets_Spring4_4 (Assets_Spring4_4) package { import mx.core.*; public class Assets_Spring4_4 extends BitmapAsset { } }//package
Section 316
//Assets_Spring4_5 (Assets_Spring4_5) package { import mx.core.*; public class Assets_Spring4_5 extends BitmapAsset { } }//package
Section 317
//Assets_SpringTerrain (Assets_SpringTerrain) package { import mx.core.*; public class Assets_SpringTerrain extends BitmapAsset { } }//package
Section 318
//Assets_SquirrelChica (Assets_SquirrelChica) package { import mx.core.*; public class Assets_SquirrelChica extends BitmapAsset { } }//package
Section 319
//Assets_SquirrelMohawk (Assets_SquirrelMohawk) package { import mx.core.*; public class Assets_SquirrelMohawk extends BitmapAsset { } }//package
Section 320
//Assets_SquirrelNormal (Assets_SquirrelNormal) package { import mx.core.*; public class Assets_SquirrelNormal extends BitmapAsset { } }//package
Section 321
//Assets_SquirrelSanta (Assets_SquirrelSanta) package { import mx.core.*; public class Assets_SquirrelSanta extends BitmapAsset { } }//package
Section 322
//Assets_SquirrelSpike (Assets_SquirrelSpike) package { import mx.core.*; public class Assets_SquirrelSpike extends BitmapAsset { } }//package
Section 323
//Assets_SquirrelTail (Assets_SquirrelTail) package { import mx.core.*; public class Assets_SquirrelTail extends BitmapAsset { } }//package
Section 324
//Assets_SquirrelViking (Assets_SquirrelViking) package { import mx.core.*; public class Assets_SquirrelViking extends BitmapAsset { } }//package
Section 325
//Assets_StarBurstPurple (Assets_StarBurstPurple) package { import mx.core.*; public class Assets_StarBurstPurple extends BitmapAsset { } }//package
Section 326
//Assets_StarBurstYellow (Assets_StarBurstYellow) package { import mx.core.*; public class Assets_StarBurstYellow extends BitmapAsset { } }//package
Section 327
//Assets_StarMeterOff (Assets_StarMeterOff) package { import mx.core.*; public class Assets_StarMeterOff extends BitmapAsset { } }//package
Section 328
//Assets_StarMeterOn (Assets_StarMeterOn) package { import mx.core.*; public class Assets_StarMeterOn extends BitmapAsset { } }//package
Section 329
//Assets_SubmitButton (Assets_SubmitButton) package { import mx.core.*; public class Assets_SubmitButton extends BitmapAsset { } }//package
Section 330
//Assets_Switch (Assets_Switch) package { import flash.display.*; import mx.core.*; public class Assets_Switch extends SpriteAsset { public var handle:DisplayObject; } }//package
Section 331
//Assets_TargetStarOff (Assets_TargetStarOff) package { import mx.core.*; public class Assets_TargetStarOff extends BitmapAsset { } }//package
Section 332
//Assets_TargetStarOn (Assets_TargetStarOn) package { import mx.core.*; public class Assets_TargetStarOn extends BitmapAsset { } }//package
Section 333
//Assets_TextBonusLevels (Assets_TextBonusLevels) package { import mx.core.*; public class Assets_TextBonusLevels extends BitmapAsset { } }//package
Section 334
//Assets_TextSelectLevel (Assets_TextSelectLevel) package { import mx.core.*; public class Assets_TextSelectLevel extends BitmapAsset { } }//package
Section 335
//Assets_UnlockButtonSmall (Assets_UnlockButtonSmall) package { import mx.core.*; public class Assets_UnlockButtonSmall extends BitmapAsset { } }//package
Section 336
//Assets_Winter1_1 (Assets_Winter1_1) package { import mx.core.*; public class Assets_Winter1_1 extends BitmapAsset { } }//package
Section 337
//Assets_Winter1_2 (Assets_Winter1_2) package { import mx.core.*; public class Assets_Winter1_2 extends BitmapAsset { } }//package
Section 338
//Assets_Winter1_3 (Assets_Winter1_3) package { import mx.core.*; public class Assets_Winter1_3 extends BitmapAsset { } }//package
Section 339
//Assets_Winter1_4 (Assets_Winter1_4) package { import mx.core.*; public class Assets_Winter1_4 extends BitmapAsset { } }//package
Section 340
//Assets_Winter1_5 (Assets_Winter1_5) package { import mx.core.*; public class Assets_Winter1_5 extends BitmapAsset { } }//package
Section 341
//Assets_Winter2_1 (Assets_Winter2_1) package { import mx.core.*; public class Assets_Winter2_1 extends BitmapAsset { } }//package
Section 342
//Assets_Winter2_2 (Assets_Winter2_2) package { import mx.core.*; public class Assets_Winter2_2 extends BitmapAsset { } }//package
Section 343
//Assets_Winter2_3 (Assets_Winter2_3) package { import mx.core.*; public class Assets_Winter2_3 extends BitmapAsset { } }//package
Section 344
//Assets_Winter2_4 (Assets_Winter2_4) package { import mx.core.*; public class Assets_Winter2_4 extends BitmapAsset { } }//package
Section 345
//Assets_Winter2_5 (Assets_Winter2_5) package { import mx.core.*; public class Assets_Winter2_5 extends BitmapAsset { } }//package
Section 346
//Assets_Winter3_1 (Assets_Winter3_1) package { import mx.core.*; public class Assets_Winter3_1 extends BitmapAsset { } }//package
Section 347
//Assets_Winter3_2 (Assets_Winter3_2) package { import mx.core.*; public class Assets_Winter3_2 extends BitmapAsset { } }//package
Section 348
//Assets_Winter3_3 (Assets_Winter3_3) package { import mx.core.*; public class Assets_Winter3_3 extends BitmapAsset { } }//package
Section 349
//Assets_Winter3_4 (Assets_Winter3_4) package { import mx.core.*; public class Assets_Winter3_4 extends BitmapAsset { } }//package
Section 350
//Assets_Winter3_5 (Assets_Winter3_5) package { import mx.core.*; public class Assets_Winter3_5 extends BitmapAsset { } }//package
Section 351
//Assets_Winter4_1 (Assets_Winter4_1) package { import mx.core.*; public class Assets_Winter4_1 extends BitmapAsset { } }//package
Section 352
//Assets_Winter4_2 (Assets_Winter4_2) package { import mx.core.*; public class Assets_Winter4_2 extends BitmapAsset { } }//package
Section 353
//Assets_Winter4_3 (Assets_Winter4_3) package { import mx.core.*; public class Assets_Winter4_3 extends BitmapAsset { } }//package
Section 354
//Assets_Winter4_4 (Assets_Winter4_4) package { import mx.core.*; public class Assets_Winter4_4 extends BitmapAsset { } }//package
Section 355
//Assets_Winter4_5 (Assets_Winter4_5) package { import mx.core.*; public class Assets_Winter4_5 extends BitmapAsset { } }//package
Section 356
//Assets_WinterSell (Assets_WinterSell) package { import mx.core.*; public class Assets_WinterSell extends BitmapAsset { } }//package
Section 357
//Assets_WinterTerrain (Assets_WinterTerrain) package { import mx.core.*; public class Assets_WinterTerrain extends BitmapAsset { } }//package
Section 358
//Assets_WoodBackgroundLarge (Assets_WoodBackgroundLarge) package { import mx.core.*; public class Assets_WoodBackgroundLarge extends BitmapAsset { } }//package
Section 359
//Assets_WoodBackgroundSmall (Assets_WoodBackgroundSmall) package { import mx.core.*; public class Assets_WoodBackgroundSmall extends BitmapAsset { } }//package
Section 360
//Assets_WoodButton (Assets_WoodButton) package { import mx.core.*; public class Assets_WoodButton extends BitmapAsset { } }//package
Section 361
//Assets_WoodDivider1 (Assets_WoodDivider1) package { import mx.core.*; public class Assets_WoodDivider1 extends BitmapAsset { } }//package
Section 362
//Assets_WoodDivider2 (Assets_WoodDivider2) package { import mx.core.*; public class Assets_WoodDivider2 extends BitmapAsset { } }//package
Section 363
//Assets_WoodDivider3 (Assets_WoodDivider3) package { import mx.core.*; public class Assets_WoodDivider3 extends BitmapAsset { } }//package
Section 364
//Assets_WoodDividerLarge1 (Assets_WoodDividerLarge1) package { import mx.core.*; public class Assets_WoodDividerLarge1 extends BitmapAsset { } }//package
Section 365
//Assets_WoodDividerLarge2 (Assets_WoodDividerLarge2) package { import mx.core.*; public class Assets_WoodDividerLarge2 extends BitmapAsset { } }//package
Section 366
//Assets_WoodHeadboard (Assets_WoodHeadboard) package { import mx.core.*; public class Assets_WoodHeadboard extends BitmapAsset { } }//package
Section 367
//Assets_WoodPeg (Assets_WoodPeg) package { import mx.core.*; public class Assets_WoodPeg extends BitmapAsset { } }//package
Section 368
//Assets_WoodWall1 (Assets_WoodWall1) package { import mx.core.*; public class Assets_WoodWall1 extends SpriteAsset { } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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; }; } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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)]); } } }//package
Section 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)); } } }//package
Section 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); } } }//package
Section 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); }; } } }//package
Section 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}); } } }//package
Section 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}); } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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; } }//package
Section 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)); } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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); } } }//package
Section 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(); } } }//package
Section 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; } } }//package
Section 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); } } }//package
Section 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(); } } }//package
Section 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(); } } }//package
Section 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(); } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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(); } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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}); } } }//package
Section 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}); } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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); } } }//package
Section 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)); } } }//package
Section 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); } } }//package
Section 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(); } } }//package
Section 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; } } }//package
Section 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); } } }//package
Section 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)}); } } }//package
Section 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)); } } }//package
Section 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; } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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)}); } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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); }; } } }//package
Section 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; }; } } }//package
Section 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; } } }//package
Section 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 (""); }; } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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); } } }//package
Section 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; } } }//package
Section 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; } } }//package
Section 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(); } } }//package
Section 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(); } } }//package
Section 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; }; } } }//package
Section 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; } } }//package
Section 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 GraphicUsed by:17
Symbol 3 GraphicUsed by:17
Symbol 4 GraphicUsed by:17
Symbol 5 SoundUsed by:17
Symbol 6 SoundUsed by:17
Symbol 7 GraphicUsed by:17
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClipUses:8Used by:17
Symbol 10 SoundUsed by:17
Symbol 11 SoundUsed by:17
Symbol 12 SoundUsed by:17
Symbol 13 GraphicUsed by:14
Symbol 14 ButtonUses:13Used by:17
Symbol 15 SoundUsed by:17
Symbol 16 SoundUsed by:17
Symbol 17 MovieClip {Assets_Splash} [ArmorIntro]Uses:2 3 4 5 6 7 9 10 11 12 14 15 16
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClip {Assets__SoundIconOff} [SoundIconOff]Uses:18
Symbol 20 Sound {Assets__SoundCannon} [SoundCannon2]
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClip {Assets__WoodWall2} [WoodWall2]Uses:21
Symbol 23 GraphicUsed by:28
Symbol 24 GraphicUsed by:28
Symbol 25 GraphicUsed by:28
Symbol 26 GraphicUsed by:28
Symbol 27 GraphicUsed 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 GraphicUsed 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 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:48
Symbol 47 GraphicUsed 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 GraphicUsed by:52
Symbol 52 MovieClip {Assets__Gear} [Gear]Uses:51
Symbol 53 GraphicUsed by:56
Symbol 54 Font {Assets_BlockTHeavy} [BlockTHeavy]Used by:55 77 92
Symbol 55 TextUses:54Used 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 GraphicUsed by:70
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used 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 GraphicUsed by:78
Symbol 77 TextUses:54Used by:78
Symbol 78 MovieClip {Assets__MeterBubble} [MeterBubble]Uses:76 77
Symbol 79 Font {Assets_BlockTReg} [BlockTReg]
Symbol 80 GraphicUsed 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 GraphicUsed by:85
Symbol 85 MovieClip {Assets__Wheel} [Wheel]Uses:84
Symbol 86 GraphicUsed 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 GraphicUsed by:93
Symbol 92 TextUses:54Used 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 1Symbol 46 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "Assets_Burning"
ExportAssets (56)Timeline Frame 1Symbol 17 as "ArmorIntro"
ExportAssets (56)Timeline Frame 1Symbol 19 as "SoundIconOff"
ExportAssets (56)Timeline Frame 1Symbol 20 as "SoundCannon2"
ExportAssets (56)Timeline Frame 1Symbol 22 as "WoodWall2"
ExportAssets (56)Timeline Frame 1Symbol 28 as "Pop"
ExportAssets (56)Timeline Frame 1Symbol 29 as "SoundFanfare"
ExportAssets (56)Timeline Frame 1Symbol 30 as "BlockTRegCond"
ExportAssets (56)Timeline Frame 1Symbol 31 as "SoundSQEhhh"
ExportAssets (56)Timeline Frame 1Symbol 32 as "SoundRise"
ExportAssets (56)Timeline Frame 1Symbol 33 as "Base12SansSC"
ExportAssets (56)Timeline Frame 1Symbol 34 as "SoundSQOohh"
ExportAssets (56)Timeline Frame 1Symbol 35 as "SoundNoon"
ExportAssets (56)Timeline Frame 1Symbol 36 as "Assets_FireWhoosh"
ExportAssets (56)Timeline Frame 1Symbol 38 as "WoodWall1"
ExportAssets (56)Timeline Frame 1Symbol 39 as "SoundSQLookOut"
ExportAssets (56)Timeline Frame 1Symbol 40 as "SoundSQAlright"
ExportAssets (56)Timeline Frame 1Symbol 41 as "StarMeterFull"
ExportAssets (56)Timeline Frame 1Symbol 42 as "SoundSQYipee2"
ExportAssets (56)Timeline Frame 1Symbol 43 as "SoundSQHereICome"
ExportAssets (56)Timeline Frame 1Symbol 44 as "Assets_Crow2"
ExportAssets (56)Timeline Frame 1Symbol 48 as "Switch"
ExportAssets (56)Timeline Frame 1Symbol 49 as "Assets_GlassBreak"
ExportAssets (56)Timeline Frame 1Symbol 50 as "Assets_GrassHit2"
ExportAssets (56)Timeline Frame 1Symbol 52 as "Gear"
ExportAssets (56)Timeline Frame 1Symbol 56 as "BigNutBubble"
ExportAssets (56)Timeline Frame 1Symbol 57 as "SoundMidnight"
ExportAssets (56)Timeline Frame 1Symbol 58 as "SoundSQYipee3"
ExportAssets (56)Timeline Frame 1Symbol 59 as "SoundStarMove"
ExportAssets (56)Timeline Frame 1Symbol 60 as "SoundSQWoohoo"
ExportAssets (56)Timeline Frame 1Symbol 61 as "SoundBawong"
ExportAssets (56)Timeline Frame 1Symbol 62 as "SoundSQMayHave"
ExportAssets (56)Timeline Frame 1Symbol 63 as "SoundSQMoreMore"
ExportAssets (56)Timeline Frame 1Symbol 64 as "Assets_GrassHit3"
ExportAssets (56)Timeline Frame 1Symbol 65 as "SoundPop"
ExportAssets (56)Timeline Frame 1Symbol 66 as "Assets_Crow1"
ExportAssets (56)Timeline Frame 1Symbol 70 as "Cannon"
ExportAssets (56)Timeline Frame 1Symbol 71 as "SoundSQYipee"
ExportAssets (56)Timeline Frame 1Symbol 72 as "SoundSQWantMore"
ExportAssets (56)Timeline Frame 1Symbol 54 as "BlockTHeavy"
ExportAssets (56)Timeline Frame 1Symbol 73 as "SoundKnock1"
ExportAssets (56)Timeline Frame 1Symbol 74 as "SoundMorning"
ExportAssets (56)Timeline Frame 1Symbol 75 as "SoundStarEarn"
ExportAssets (56)Timeline Frame 1Symbol 78 as "MeterBubble"
ExportAssets (56)Timeline Frame 1Symbol 79 as "BlockTReg"
ExportAssets (56)Timeline Frame 1Symbol 81 as "SoundIcon"
ExportAssets (56)Timeline Frame 1Symbol 82 as "SoundGroan"
ExportAssets (56)Timeline Frame 1Symbol 83 as "Assets_MenuMusic"
ExportAssets (56)Timeline Frame 1Symbol 85 as "Wheel"
ExportAssets (56)Timeline Frame 1Symbol 87 as "RubberWall1"
ExportAssets (56)Timeline Frame 1Symbol 88 as "Assets_GrassHit1"
ExportAssets (56)Timeline Frame 1Symbol 89 as "SoundSquirrelLaugh"
ExportAssets (56)Timeline Frame 1Symbol 90 as "SoundWallHit"
ExportAssets (56)Timeline Frame 1Symbol 93 as "StarBubble"
ExportAssets (56)Timeline Frame 1Symbol 94 as "SoundSunset"
ExportAssets (56)Timeline Frame 1Symbol 95 as "SoundSQOohh2"
ExportAssets (56)Timeline Frame 1Symbol 96 as "SoundSQWantBig"
SerialNumber (41)Timeline Frame 1

Labels

"Preloader"Frame 1




https://swfchan.com/53/264395/info.shtml
Created: 17/5 -2026 03:32:39 Last modified: 17/5 -2026 03:32:39 Server time: 20/05 -2026 05:31:50