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

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

rouge_by_doom_the_wolf-d9ea8uw.swf

This is the info page for
Flash #180662

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


Text
Text
Text
Text
Text
Text

Interactive Rouge balloon inflation
Draw, animated and programmed by Doom the wolf
http://doom-the-wolf.deviantart.com

ActionScript [AS3]

Section 1
//Physics (as3.Physics) package as3 { import flash.display.*; import flash.geom.*; public class Physics { public static const ROTATION_PROP:String = "rotation"; public static const Y_PROP:String = "y"; public static const SKEWY_PROP:String = "skewY"; public static const SCALEX_PROP:String = "scaleX"; public static const X_PROP:String = "x"; public static const SCALEY_PROP:String = "scaleY"; public static const SKEWX_PROP:String = "skewX"; public static function attach(_arg1:Array, _arg2:DisplayObject, _arg3:MovieClip, _arg4:Array=null){ var _local5:Point; var _local6:Point; _local5 = _arg2.localToGlobal(new Point()); _local6 = _arg3.globalToLocal(_local5); if (_arg4 == null){ _arg4 = []; }; _arg1[_arg1.length] = {mc:_arg2, par:_arg3, point:_local6, props:_arg4}; } public static function updateSkewY(_arg1:Object, _arg2:Point, _arg3:Matrix, _arg4:Array, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number){ _arg4[0] = (_arg4[0] + ((-(_arg9) * (_arg2.y - _arg1.position.y)) / _arg1.hWeight)); balancePoint(_arg4, _arg5, _arg6, _arg7, _arg8); _arg3.b = _arg4[0]; } public static function updateElastic(_arg1:Array){ var _local2:int; var _local3:int; _local3 = _arg1.length; _local2 = 0; while (_local2 < _local3) { updateElasticClip(_arg1[_local2]); _local2++; }; } public static function updateAttached(_arg1:Array){ var _local2:int; var _local3:int; var _local4:Object; var _local5:Point; var _local6:Point; var _local7:int; var _local8:int; var _local9:Array; _local3 = _arg1.length; _local2 = 0; while (_local2 < _local3) { _local4 = _arg1[_local2]; if (_local4.mc.parent){ _local5 = _local4.par.localToGlobal(_local4.point); _local6 = _local4.mc.parent.globalToLocal(_local5); _local4.mc.x = _local6.x; _local4.mc.y = _local6.y; }; _local9 = _local4.props; _local8 = _local9.length; _local7 = 0; while (_local7 < _local8) { _local4.mc[_local9[_local7]] = _local4.par[_local9[_local7]]; _local7++; }; _local2++; }; } public static function setElastic(_arg1:Array, _arg2:DisplayObjectContainer, _arg3:MovieClip, _arg4:Array, _arg5:Array, _arg6:Array, _arg7:Array, _arg8:Array, _arg9:Array):Object{ var _local10:Array; var _local11:int; var _local12:int; var _local13:String; var _local14:Point; var _local15:Rectangle; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; if (!_arg3.parent){ return (null); }; _local10 = [ROTATION_PROP]; _local12 = _arg4.length; _local11 = 0; while (_local11 < _local12) { _local13 = _arg4[_local11]; _local10[_local11] = [_arg6[_local11], 0, 0]; _local11++; }; _local14 = _arg3.localToGlobal(new Point()); _local14 = _arg2.globalToLocal(_local14); _local15 = _arg3.getBounds(_arg3); _local16 = (_local15.right + _local15.left); _local17 = (_local15.bottom + _local15.top); _local18 = ((_local16)<0) ? _local15.left : _local15.right; _local19 = ((_local17)<0) ? _local15.top : _local15.bottom; _arg1[_arg1.length] = {clip:_arg3, props:_arg4, position:_local14, values:_local10, topLevel:_arg2, rect:_local15, hWeight:_local18, vWeight:_local19, frictions:_arg5, dests:_arg6, multipliers:_arg7, speeds:_arg8, scales:_arg9}; return (_arg1[(_arg1.length - 1)]); } public static function updateSkewX(_arg1:Object, _arg2:Point, _arg3:Matrix, _arg4:Array, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number){ _arg4[0] = (_arg4[0] + ((-(_arg9) * (_arg2.x - _arg1.position.x)) / _arg1.vWeight)); balancePoint(_arg4, _arg5, _arg6, _arg7, _arg8); _arg3.c = _arg4[0]; } public static function balancePoint(_arg1:Array, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:int=1){ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; _local6 = _arg1[0]; _local7 = _arg1[1]; _local8 = _arg1[2]; _local9 = 0; while (_local9 < _arg5) { _arg1[1] = ((_arg1[1] * _arg2) + _arg1[2]); _arg1[2] = ((_arg3 - _arg1[0]) * _arg4); _arg1[0] = (_arg1[0] + (_local7 * _arg2)); _local9++; }; } public static function editElastic(_arg1:Array, _arg2:MovieClip, _arg3:String, _arg4:Number){ var _local5:int; var _local6:int; _local6 = _arg1.length; _local5 = 0; while (_local5 < _local6) { if (_arg1[_local5].clip == _arg2){ _arg1[_local5].dests[_arg3] = _arg4; return; }; _local5++; }; } public static function updateScaleX(_arg1:Object, _arg2:Point, _arg3:Matrix, _arg4:Array, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number){ var _local10:Rectangle; var _local11:Number; _local10 = _arg1.clip.getBounds(_arg1.topLevel); _local11 = (_local10.right - _local10.left); _arg4[0] = (_arg4[0] + ((-(_arg9) * (_arg2.x - _arg1.position.x)) / _local11)); balancePoint(_arg4, _arg5, _arg6, _arg7, _arg8); _arg3.a = _arg4[0]; } public static function updateScaleY(_arg1:Object, _arg2:Point, _arg3:Matrix, _arg4:Array, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number){ var _local10:Rectangle; var _local11:Number; _local10 = _arg1.clip.getBounds(_arg1.topLevel); _local11 = (_local10.bottom - _local10.top); _arg4[0] = (_arg4[0] + ((-(_arg9) * (_arg2.y - _arg1.position.y)) / _local11)); balancePoint(_arg4, _arg5, _arg6, _arg7, _arg8); _arg3.d = _arg4[0]; } public static function updateElasticClip(_arg1:Object){ var _local2:int; var _local3:Array; var _local4:int; var _local5:Point; var _local6:String; var _local7:Matrix; _local3 = _arg1.props; _local4 = _local3.length; _local5 = _arg1.clip.localToGlobal(new Point()); _local5 = _arg1.topLevel.globalToLocal(_local5); _local7 = _arg1.clip.transform.matrix; _local2 = 0; while (_local2 < _local4) { _local6 = _local3[_local2]; switch (_local6){ case SKEWX_PROP: updateSkewX(_arg1, _local5, _local7, _arg1.values[_local2], _arg1.frictions[_local2], _arg1.dests[_local2], _arg1.multipliers[_local2], _arg1.speeds[_local2], _arg1.scales[_local2]); break; case SKEWY_PROP: updateSkewY(_arg1, _local5, _local7, _arg1.values[_local2], _arg1.frictions[_local2], _arg1.dests[_local2], _arg1.multipliers[_local2], _arg1.speeds[_local2], _arg1.scales[_local2]); break; case SCALEX_PROP: updateScaleX(_arg1, _local5, _local7, _arg1.values[_local2], _arg1.frictions[_local2], _arg1.dests[_local2], _arg1.multipliers[_local2], _arg1.speeds[_local2], _arg1.scales[_local2]); break; case SCALEY_PROP: updateScaleY(_arg1, _local5, _local7, _arg1.values[_local2], _arg1.frictions[_local2], _arg1.dests[_local2], _arg1.multipliers[_local2], _arg1.speeds[_local2], _arg1.scales[_local2]); break; }; _local2++; }; _arg1.clip.transform.matrix = _local7; _arg1.position = _local5; } } }//package as3
Section 2
//Expansion (expansion.Expansion) package expansion { import flash.display.*; import flash.events.*; public class Expansion extends EventDispatcher { private var _expanding:Array; private var _sizes:Array; private var _active:Boolean; private var _numExpandables:uint; private var _expandables:Array; private var _checkPoints:Array; private var _maxSizes:Array; private var _stage:Stage; public function Expansion(_arg1:Stage){ _stage = _arg1; _active = false; _numExpandables = 0; _expandables = []; _sizes = []; _maxSizes = []; _expanding = []; _checkPoints = []; if (_arg1 == null){ throw ("ERROR: Stage must not be null."); }; } public function set size(_arg1:Number){ var _local2:int; _local2 = 0; while (_local2 < _expandables.length) { if (!_expandables[_local2]){ return; }; setSize(_local2, _arg1); _local2++; }; } public function setSize(_arg1:uint, _arg2:Number){ if (isNaN(_arg2)){ return; }; _sizes[_arg1] = Math.max(1, Math.min(_arg2, _maxSizes[_arg1])); _expandables[_arg1].gotoAndStop(Math.floor(_sizes[_arg1])); } public function getExpandableID(_arg1:MovieClip):int{ var _local2:int; while (_local2 < _expandables.length) { if (_expandables[_local2] == _arg1){ return (_local2); }; _local2++; }; return (-1); } private function eFrame(_arg1:Event){ var _local2:int; var _local3:Number; var _local4:Boolean; var _local5:Array; var _local6:int; _local4 = false; _local5 = []; _local2 = 0; while (_local2 < _expandables.length) { if (!_expandables[_local2]){ } else { _local3 = _sizes[_local2]; _sizes[_local2] = Math.max(1, Math.min(_maxSizes[_local2], (_sizes[_local2] + _expanding[_local2]))); if (_local3 != _sizes[_local2]){ _local4 = true; _expandables[_local2].gotoAndStop(Math.floor(_sizes[_local2])); while (_local6 < _checkPoints.length) { if (_checkPoints[_local6].expandable == _local2){ if ((((((_checkPoints[_local6].direction > 0)) && ((_checkPoints[_local6].size > _local3)))) && ((_checkPoints[_local6].size <= _sizes[_local2])))){ _local5.push(new ExpansionEvent("checkpoint", _expandables[_local2], _checkPoints[_local6].size, _checkPoints[_local6].direction, _checkPoints[_local6].reaction, _checkPoints[_local6].timer)); break; } else { if ((((((_checkPoints[_local6].direction < 0)) && ((_checkPoints[_local6].size >= _sizes[_local2])))) && ((_checkPoints[_local6].size < _local3)))){ _local5.push(new ExpansionEvent("checkpoint", _expandables[_local2], _checkPoints[_local6].size, _checkPoints[_local6].direction, _checkPoints[_local6].reaction, _checkPoints[_local6].timer)); break; }; }; }; _local6++; }; }; }; _local2++; }; if (_local4){ dispatchEvent(new Event("sizeChanged")); _local2 = 0; while (_local2 < _local5.length) { dispatchEvent(_local5[_local2]); _local2++; }; }; } public function set maxSize(_arg1:uint){ var _local2:int; _local2 = 0; while (_local2 < _expandables.length) { if (!_expandables[_local2]){ return; }; setMaxSize(_local2, _arg1); _local2++; }; } public function set growth(_arg1:Number){ var _local2:int; _local2 = 0; while (_local2 < _expandables.length) { if (!_expandables[_local2]){ return; }; setGrowth(_local2, _arg1); _local2++; }; } public function insertExpandable(_arg1:MovieClip, _arg2:int=-1):int{ var _local3:int; if (_arg1 == null){ return (-1); }; _local3 = 0; while (_local3 < _expandables.length) { if (_expandables[_local3] == _arg1){ if (_arg2 > 0){ _maxSizes[_local3] = _arg2; } else { if (!_arg2){ _maxSizes[_local3] = _arg1.totalFrames; }; }; return (_local3); }; _local3++; }; _local3 = 0; while (_local3 < _expandables.length) { if (_expandables[_local3] == null){ break; }; _local3++; }; _arg1.gotoAndStop(1); _numExpandables++; _sizes[_local3] = 1; _expandables[_local3] = _arg1; _expanding[_local3] = 0; if (_arg2 > 0){ _maxSizes[_local3] = _arg2; } else { _maxSizes[_local3] = _arg1.totalFrames; }; return (_local3); } public function clearCheckPoint(_arg1:uint, _arg2:int, _arg3:int=1){ var _local4:MovieClip; var _local5:int; _local4 = _expandables[_arg1]; if (!_local4){ return; }; _local5 = 0; while (_local5 < _checkPoints.length) { if ((((((_checkPoints[_local5].size == _arg2)) && ((_checkPoints.expandable == _local4)))) && ((_checkPoints[_local5].direction == _arg3)))){ delete _checkPoints[_local5]; _checkPoints.splice(_local5, 1); return; }; _local5++; }; } public function get numExpandables():uint{ return (_numExpandables); } public function removeExpandable(_arg1:MovieClip){ var _local2:int; while (_local2 < _expandables.length) { if (_expandables[_local2] == _arg1){ clearCheckPointByID(_local2); delete _expandables[_local2]; _expandables[_local2] = null; _sizes[_local2] = 0; _maxSizes[_local2] = 0; _expanding[_local2] = 0; _numExpandables--; if (_local2 == (_expandables.length - 1)){ _expandables.splice(_local2, 1); _sizes.splice(_local2, 1); _maxSizes.splice(_local2, 1); _expanding.splice(_local2, 1); }; return; }; _local2++; }; } public function getGrowth(_arg1:uint):Number{ if (_arg1 > _expandables.length){ return (0); }; return (_expanding[_arg1]); } public function setMaxSize(_arg1:uint, _arg2:uint){ if (isNaN(_arg2)){ return; }; _maxSizes[_arg1] = Math.max(1, Math.min(_expandables[_arg1].totalFrames, _arg2)); if (_sizes[_arg1] > _arg2){ setSize(_arg1, _arg2); }; } public function setGrowth(_arg1:uint, _arg2:Number){ if (isNaN(_arg2)){ return; }; _expanding[_arg1] = _arg2; } public function getMaxSize(_arg1:uint):uint{ if (_arg1 > _expandables.length){ return (0); }; return (_maxSizes[_arg1]); } public function getCheckPoint(_arg1:int, _arg2:int, _arg3:int=1):String{ var _local4:MovieClip; var _local5:int; _local4 = _expandables[_arg1]; if (!_local4){ return (""); }; _local5 = 0; while (_local5 < _checkPoints.length) { if ((((((_checkPoints[_local5].size == _arg2)) && ((_checkPoints.expandable == _local4)))) && ((_checkPoints[_local5].direction == _arg3)))){ return (_checkPoints[_local5].reaction); }; _local5++; }; return (""); } private function clearCheckPointByID(_arg1:uint){ var _local2:MovieClip; var _local3:int; _local2 = _expandables[_arg1]; if (!_local2){ return; }; _local3 = 0; while (_local3 < _checkPoints.length) { if (_checkPoints.expandable == _local2){ delete _checkPoints[_local3]; _checkPoints.splice(_local3, 1); _local3--; }; _local3++; }; } public function getExpandable(_arg1:uint):MovieClip{ if (_arg1 > _expandables.length){ return (null); }; return (_expandables[_arg1]); } public function removeExpandableAt(_arg1:uint){ if ((((_arg1 < _expandables.length)) && (!((_expandables[_arg1] == null))))){ clearCheckPointByID(_arg1); _expandables[_arg1] = null; _sizes[_arg1] = 0; _maxSizes[_arg1] = 0; _expanding[_arg1] = 0; _numExpandables--; if (_arg1 == (_expandables.length - 1)){ _expandables.splice(_arg1, 1); _sizes.splice(_arg1, 1); _maxSizes.splice(_arg1, 1); _expanding.splice(_arg1, 1); }; }; } public function setCheckPoint(_arg1:uint, _arg2:int, _arg3:int=1, _arg4:String="", _arg5:int=30){ var _local6:MovieClip; var _local7:int; _local6 = _expandables[_arg1]; if (!_local6){ return; }; _local7 = 0; while (_local7 < _checkPoints.length) { if ((((((_checkPoints[_local7].size == _arg2)) && ((_checkPoints[_local7].expandable == _arg1)))) && ((_checkPoints[_local7].direction == _arg3)))){ _checkPoints[_local7].reaction = _arg4; return; }; _local7++; }; if (_arg3 < 0){ _arg3 = -1; } else { if (_arg3 > 0){ _arg3 = 1; }; }; _checkPoints.push({size:_arg2, reaction:_arg4, expandable:_arg1, direction:_arg3, timer:_arg5}); } public function activate(_arg1:Boolean=true){ if (_active == _arg1){ return; }; _active = _arg1; if (_active){ _stage.addEventListener("enterFrame", eFrame); } else { _stage.removeEventListener("enterFrame", eFrame); }; } public function getSize(_arg1:uint):Number{ if (_arg1 > _expandables.length){ return (0); }; return (_sizes[_arg1]); } } }//package expansion
Section 3
//ExpansionEvent (expansion.ExpansionEvent) package expansion { import flash.display.*; import flash.events.*; public class ExpansionEvent extends Event { public var timer:int; public var size:int; public var reaction:String; public var expandable:MovieClip; public var direction:int; public function ExpansionEvent(_arg1:String, _arg2:MovieClip, _arg3:int, _arg4:int=1, _arg5:String="", _arg6:int=30){ super(_arg1); expandable = _arg2; size = _arg3; direction = _arg4; reaction = _arg5; timer = _arg6; } } }//package expansion
Section 4
//Expression (expansion.Expression) package expansion { import flash.display.*; import flash.events.*; public class Expression extends EventDispatcher { private var _position:Number; private var _state:String; private var _curState:Array; private var _states:Array; private var _active:Boolean; private var _permanent:Boolean; private var _offset:Number; private var _interruptible:Boolean; private var _eyes:Array; private var _partBaseValues:Array; private var _timer:int; private var _canBlink:Boolean; private var _partTypes:Array; private var _expansion:Expansion; private var _angle:Number; private var _frequency:Number; private var _parts:Array; private var _blinking:Boolean; private var _savedState:Array; private var _reactions:Array; private var _stage:Stage; public static const ANIMATED:int = 0; public static const ROTATION_SPEED:int = 2; public static const X_POS:int = 3; public static const Y_POS:int = 4; public static const FRAME:int = 0; public static const MOVABLE:int = 1; public static const ROTATION:int = 1; public function Expression(_arg1:Stage){ _active = false; _stage = _arg1; _state = ""; _canBlink = true; _blinking = false; _offset = 0; _frequency = 0; _angle = 0; _position = 0; _curState = []; _states = []; _eyes = []; _parts = []; _partTypes = []; _partBaseValues = []; _savedState = null; _reactions = []; _interruptible = true; _timer = -1; _permanent = false; _expansion = null; if (_arg1 == null){ throw ("ERROR: Stage must not be null."); }; } public function get reacting():Boolean{ return (!((_savedState == null))); } public function get canBlink():Boolean{ return (_canBlink); } public function addPartToState(_arg1:Array, _arg2:int, _arg3:String, _arg4:Number=0, _arg5:Number=1, _arg6:Number=NaN, _arg7:Number=NaN){ var _local8:MovieClip; if (!_arg1){ return; }; _local8 = getPartAt(_arg2); if (!_local8){ throw ("This part is not in the list. Try using addPart() first."); }; if (_arg1[_arg2]){ delete _arg1[_arg2]; }; _arg1[_arg2] = []; _arg1[_arg2][FRAME] = _arg3; if (isNaN(_arg4)){ _arg1[_arg2][ROTATION] = undefined; } else { _arg1[_arg2][ROTATION] = _arg4; }; if (isNaN(_arg5)){ _arg1[_arg2][ROTATION_SPEED] = undefined; } else { _arg1[_arg2][ROTATION_SPEED] = _arg5; }; if (isNaN(_arg6)){ _arg1[_arg2][X_POS] = undefined; } else { _arg1[_arg2][X_POS] = _arg6; }; if (isNaN(_arg7)){ _arg1[_arg2][Y_POS] = undefined; } else { _arg1[_arg2][Y_POS] = _arg7; }; } public function get state():String{ return (_state); } public function get offset():Number{ return (_offset); } public function get blinking():Boolean{ return (_blinking); } private function _reacting(_arg1:Event){ var _local2:Object; _local2 = getReaction((_arg1.target as EventDispatcher), _arg1.type); if (_local2 == null){ throw ("Reaction not found on the list."); }; react(_local2.state, _local2.timer); } public function destroy(){ var _local1:int; if (_expansion != null){ _expansion.removeEventListener("checkpoint", expansionReaction); _expansion = null; }; _local1 = 0; while (_local1 < _reactions.length) { _reactions[_local1].hit.removeEventListener(_reactions[_local1].type, _reacting); delete _reactions[_local1]; _local1++; }; _reactions = []; _curState = []; _states = []; _parts = []; _partTypes = []; _partBaseValues = []; _savedState = null; _state = ""; _canBlink = true; _blinking = false; _offset = 0; _frequency = 0; _angle = 0; _position = 0; _timer = -1; } public function endReact(){ if (!_savedState){ return; }; _curState.state = _savedState.state; _savedState = null; setState(_curState.state); _timer = -1; dispatchEvent(new Event("endreact")); } public function removePart(_arg1:MovieClip){ var _local2:int; var _local3:int; _local2 = 0; while (_local2 < _parts.length) { if (_parts[_local2] == _arg1){ delete _parts[_local2]; delete _partTypes[_local2]; _parts[_local2] = null; _partTypes[_local2] = 0; _local3 = 0; while (_local3 < _eyes.length) { if (_eyes[_local3] == _local2){ _eyes.splice(_local3, 1); break; }; _local3++; }; if (_local2 == (_parts.length - 1)){ _parts.splice(_local2, 1); _partTypes.splice(_local2, 1); }; return; }; _local2++; }; } public function getReaction(_arg1:EventDispatcher, _arg2:String):Object{ var _local3:int; _local3 = 0; while (_local3 < _reactions.length) { if ((((_reactions[_local3].hit == _arg1)) && ((_reactions[_local3].type == _arg2)))){ return (_reactions[_local3]); }; _local3++; }; return (null); } public function set offset(_arg1:Number){ if (!isNaN(_arg1)){ _offset = _arg1; }; } public function get position():Number{ return (_position); } private function eFrame(_arg1:Event){ var _local2:int; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; if ((((((((Math.random() > 0.99)) && (_canBlink))) && ((_savedState == null)))) && (_eyes.length))){ _local2 = 0; while (_local2 < _eyes.length) { _parts[_eyes[_local2]].gotoAndPlay("blink"); _local2++; }; _blinking = true; dispatchEvent(new Event("blink")); }; if (((_blinking) && ((_parts[_eyes[0]].currentLabel == "endblink")))){ _local2 = 0; while (_local2 < _eyes.length) { if (((_curState[_eyes[_local2]]) && (_curState[_eyes[_local2]][FRAME]))){ _parts[_eyes[_local2]].gotoAndPlay(_curState[_eyes[_local2]][FRAME]); }; _local2++; }; _blinking = false; dispatchEvent(new Event("endblink")); }; _local2 = 0; while (_local2 < _curState.length) { if (((_curState[_local2]) && (_parts[_local2]))){ if (!isNaN((_curState[_local2][ROTATION] + _curState[_local2][ROTATION_SPEED]))){ _local3 = (_curState[_local2][ROTATION] + _partBaseValues[_local2].rotation); _local4 = (_local3 - 360); _local5 = (_local3 + 360); _local6 = _local3; _local7 = Math.abs((_local4 - _parts[_local2].rotation)); _local8 = Math.abs((_local5 - _parts[_local2].rotation)); _local9 = Math.abs((_local3 - _parts[_local2].rotation)); if (_local7 <= _local9){ _local6 = _local4; }; if ((((_local8 <= _local7)) && ((_local8 <= _local9)))){ _local6 = _local5; }; if (_parts[_local2].rotation < (_local6 - _curState[_local2][ROTATION_SPEED])){ _parts[_local2].rotation = (_parts[_local2].rotation + _curState[_local2][ROTATION_SPEED]); } else { if (_parts[_local2].rotation > (_local6 + _curState[_local2][ROTATION_SPEED])){ _parts[_local2].rotation = (_parts[_local2].rotation - _curState[_local2][ROTATION_SPEED]); } else { _parts[_local2].rotation = _local3; }; }; }; if (!isNaN(_curState[_local2][X_POS])){ _local3 = (_curState[_local2][X_POS] + _partBaseValues[_local2].x); _parts[_local2].x = (_parts[_local2].x + ((_local3 - _parts[_local2].x) * 0.5)); }; if (!isNaN(_curState[_local2][Y_POS])){ _local3 = (_curState[_local2][Y_POS] + _partBaseValues[_local2].y); _parts[_local2].y = (_parts[_local2].y + ((_local3 - _parts[_local2].y) * 0.5)); }; }; _local2++; }; _position = Math.sin(_angle); _angle = (_angle + _frequency); if (_angle > 500){ _angle = (_angle - ((Math.PI * 2) * (500 / (Math.PI * 2)))); }; if (_savedState){ if (_timer > 0){ _timer--; } else { if (_timer == 0){ endReact(); }; }; }; dispatchEvent(new Event("enterFrame")); } public function react(_arg1:String, _arg2:int=30){ var _local3:Array; if (((_savedState) && (!(_interruptible)))){ return; }; if (((!(_arg1)) || (!(_arg1.length)))){ return; }; _local3 = null; if (!_savedState){ _local3 = _curState; } else { _local3 = _savedState; }; _savedState = null; _timer = _arg2; setState(_arg1); if (_local3 != null){ _savedState = _local3; }; dispatchEvent(new Event("react")); } public function removePartAt(_arg1:uint){ var _local2:int; if ((((_arg1 >= _parts.length)) || ((_parts[_arg1] == null)))){ return; }; delete _parts[_arg1]; delete _partTypes[_arg1]; _parts[_arg1] = null; _partTypes[_arg1] = 0; _local2 = 0; while (_local2 < _eyes.length) { if (_eyes[_local2] == _arg1){ _eyes.splice(_local2, 1); break; }; _local2++; }; if (_arg1 == (_parts.length - 1)){ _parts.splice(_arg1, 1); _partTypes.splice(_arg1, 1); }; } public function addPart(_arg1:MovieClip, _arg2:int=0, _arg3:Boolean=false):int{ var _local4:int; if (!_arg1){ return (-1); }; _local4 = 0; while (_local4 < _parts.length) { if (_parts[_local4] == _arg1){ _partTypes[_local4] = _arg2; return (_local4); }; _local4++; }; _local4 = 0; while (_local4 < _parts.length) { if (_parts[_local4] == null){ break; }; _local4++; }; _arg1.stop(); if (_arg3){ _eyes.push(_local4); }; _parts[_local4] = _arg1; _partTypes[_local4] = _arg2; _partBaseValues[_local4] = {x:_arg1.x, y:_arg1.y, scaleX:_arg1.scaleX, scaleY:_arg1.scaleY, rotation:_arg1.rotation}; return (_local4); } public function get interruptible():Boolean{ return (_interruptible); } public function get curState():Array{ return (_curState); } public function getStateByName(_arg1:String):Object{ if (!_states[_arg1]){ return (null); }; return (_states[_arg1]); } public function set frequency(_arg1:Number){ if (!isNaN(_arg1)){ _frequency = _arg1; }; } public function getPartID(_arg1:MovieClip):int{ var _local2:int; _local2 = 0; while (_local2 < _parts.length) { if (_parts[_local2] == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function get timer():int{ return (_timer); } public function get defaultState():String{ if (!_savedState){ return (_state); }; return (_savedState.state); } public function get angle():Number{ return (_angle); } public function set canBlink(_arg1:Boolean){ _canBlink = _arg1; } public function reactTo(_arg1:Expansion, _arg2:Boolean=false){ if (_expansion != null){ _expansion.removeEventListener("checkpoint", expansionReaction); _expansion = null; }; _permanent = _arg2; if (!_arg1){ return; }; _expansion = _arg1; _arg1.addEventListener("checkpoint", expansionReaction, false, 1, true); } public function get frequency():Number{ return (_frequency); } private function expansionReaction(_arg1:ExpansionEvent){ if (((!(_arg1.reaction)) || (!(_arg1.reaction.length)))){ return; }; if (_permanent){ if (reacting){ _savedState.state = _arg1.reaction; } else { setState(_arg1.reaction); }; } else { react(_arg1.reaction, _arg1.timer); }; } public function setState(_arg1:String, _arg2:Boolean=false){ var _local3:Array; var _local4:int; var _local5:String; if (_arg1 == _state){ return; }; if (_savedState){ if (_arg2){ _savedState.state = _arg1; }; return; }; if (!_states[_arg1]){ return; }; _local3 = _curState; _curState = []; _curState.state = (_state = _arg1); if (_states[_arg1]["canBlink"] != undefined){ _canBlink = _states[_arg1]["canBlink"]; }; if (!isNaN(_states[_arg1]["frequency"])){ _frequency = _states[_arg1]["frequency"]; }; if (!isNaN(_states[_arg1]["offset"])){ _offset = _states[_arg1]["offset"]; }; _blinking = false; _local4 = 0; while (_local4 < _states[_arg1].length) { _curState[_local4] = _states[_arg1][_local4]; _local4++; }; _local4 = 0; while (_local4 < _parts.length) { if (((((!(_states[_arg1][_local4])) || (!(_states[_arg1][_local4][FRAME])))) || (!(_states[_arg1][_local4][FRAME].length)))){ } else { if ((((_partTypes[_local4] == MOVABLE)) && (_local3[_local4]))){ _local5 = ((_local3[_local4][FRAME] + "2") + _states[_arg1][_local4][FRAME]); if (((!((_parts[_local4].currentLabel == _states[_arg1][_local4][FRAME]))) && (hasLabel(_parts[_local4], _local5)))){ _parts[_local4].gotoAndPlay(_local5); } else { if (_states[_arg1][_local4][FRAME] != _local3[_local4][FRAME]){ _parts[_local4].gotoAndPlay(_states[_arg1][_local4][FRAME]); throw ((((((("Label " + _local5) + " is missing! in Movieclip #") + _local4) + "(") + _parts[_local4].name) + ").")); }; }; } else { if (((_states[_arg1][_local4][FRAME]) && (_states[_arg1][_local4][FRAME].length))){ _parts[_local4].gotoAndPlay(_states[_arg1][_local4][FRAME]); }; }; }; _local4++; }; } public function set interruptible(_arg1:Boolean){ _interruptible = _arg1; } public function removeState(_arg1:String){ delete _states[_arg1]; } public function addStateAttributes(_arg1:Array, _arg2:Boolean, _arg3:Number=NaN, _arg4:Number=NaN){ if (!_arg1){ return; }; _arg1.canBlink = _arg2; if (!isNaN(_arg3)){ _arg1.frequency = _arg3; }; if (!isNaN(_arg4)){ _arg1.offset = _arg4; }; } public function removeReaction(_arg1:EventDispatcher, _arg2:String){ var _local3:int; _local3 = 0; while (_local3 < _reactions.length) { if ((((_reactions[_local3].hit == _arg1)) && ((_reactions[_local3].type == _arg2)))){ _reactions[_local3].hit.removeEventListener(_arg2, _reacting); delete _reactions[_local3]; _reactions.splice(_local3, 1); return; }; _local3++; }; } public function addState(_arg1:String, _arg2:Array){ var _local3:int; if (_states[_arg1]){ delete _states[_arg1]; }; _states[_arg1] = new Array(); _local3 = 0; while (_local3 < _arg2.length) { if (_arg2[_local3]){ _states[_arg1][_local3] = _arg2[_local3].concat(); } else { _states[_arg1][_local3] = null; }; _local3++; }; _states[_arg1].canBlink = _arg2.canBlink; _states[_arg1].frequency = _arg2.frequency; _states[_arg1].offset = _arg2.offset; } public function addReaction(_arg1:EventDispatcher, _arg2:String, _arg3:String, _arg4:int=30){ var _local5:Object; _local5 = getReaction(_arg1, _arg2); if (_local5 != null){ _local5.state = _arg3; return; }; _arg1.addEventListener(_arg2, _reacting, false, 2, true); _reactions.push({hit:_arg1, type:_arg2, state:_arg3, timer:_arg4}); } public function getBaseValues(_arg1:uint):Object{ var _local2:MovieClip; _local2 = getPartAt(_arg1); if (!_local2){ return (null); }; return (_partBaseValues[_arg1]); } public function activate(_arg1:Boolean=true){ if (_active == _arg1){ return; }; _active = _arg1; if (_active){ _stage.addEventListener("enterFrame", eFrame); } else { _stage.removeEventListener("enterFrame", eFrame); }; } public function getPartAt(_arg1:int):MovieClip{ if (_parts[_arg1]){ return (_parts[_arg1]); }; return (null); } public static function hasLabel(_arg1:MovieClip, _arg2:String):Boolean{ var _local3:Array; var _local4:FrameLabel; var _local5:int; _local3 = _arg1.currentLabels; _local5 = 0; while (_local5 < _local3.length) { _local4 = _local3[_local5]; if (_local4.name == _arg2){ return (true); }; _local5++; }; return (false); } } }//package expansion
Section 5
//Speech (expansion.Speech) package expansion { import flash.display.*; import flash.events.*; import flash.text.*; public class Speech extends EventDispatcher { private var _contained:Boolean; private var _textSpeed:int; private var _checkpoints:Array; private var _txt:TextField; private var _events:Array; private var _interruptible:Boolean; private var _letter:int; private var _timer:int; private var _mouth:MovieClip; private var _phrase:String; private var _paused:int; private var _pauseTime:int; private var _expansion:Expansion; private var _interruptionText:String; private var _pauseCharacter:String; public function Speech(_arg1:TextField, _arg2:Boolean=true){ _txt = _arg1; _mouth = null; _contained = _arg2; _textSpeed = 1; _timer = 0; _letter = 0; _phrase = ""; _expansion = null; _events = []; _checkpoints = []; if (!_txt){ throw ("ERROR: No TextField object found!"); }; _interruptionText = "--"; _interruptible = false; _pauseCharacter = ""; _paused = -1; _pauseTime = 10; _txt.visible = false; _txt.text = ""; if (((_contained) && (_txt.parent))){ _txt.parent.visible = _txt.visible; }; } public function destroy(){ var _local1:int; _local1 = 0; while (_local1 < _events.length) { _events[_local1].object.removeEventListener(_events[_local1].type, _event); _local1++; }; _events = []; _local1 = 0; while (_local1 < _checkpoints.length) { delete _checkpoints[_local1]; _local1++; }; _checkpoints = []; listenTo(null); clearSpeech(); if (((_contained) && (_txt.parent))){ _txt.parent.visible = true; }; _txt.visible = true; _txt = null; } public function set mouth(_arg1:MovieClip){ _mouth = _arg1; } public function get interruptionText():String{ return (_interruptionText); } public function clearCheckPoint(_arg1:MovieClip, _arg2:int, _arg3:int=1){ var _local4:int; _local4 = 0; while (_local4 < _checkpoints.length) { if ((((((_checkpoints[_local4].part == _arg1)) && ((_checkpoints[_local4].size == _arg2)))) && ((_checkpoints[_local4].direction == _arg3)))){ _checkpoints.splice(_local4, 1); return; }; _local4++; }; } public function clearSpeech(){ _letter = 0; _phrase = ""; _txt.removeEventListener("enterFrame", _speaking); _txt.text = ""; if (((_contained) && (_txt.parent))){ _txt.parent.visible = false; }; _txt.visible = false; } public function get textSpeed():int{ return (_textSpeed); } private function _event(_arg1:Event){ var _local2:Object; _local2 = getEvent((_arg1.target as EventDispatcher), _arg1.type); if (!_local2){ return; }; say(_local2.phrase, _local2.time); } public function set interruptionText(_arg1:String){ _interruptionText = _arg1; } public function set pauseCharacter(_arg1:String){ _pauseCharacter = _arg1; } private function _checkpoint(_arg1:ExpansionEvent){ var _local2:Object; _local2 = getCheckPoint(_arg1.expandable, _arg1.size, _arg1.direction); if (!_local2){ return; }; say(_local2.phrase, _local2.time); } public function get position():int{ return (_letter); } private function _speaking(_arg1:Event){ var _local2:String; var _local3:int; if (_paused > 0){ _paused--; } else { if (_letter < _phrase.length){ _local3 = 0; while ((((_local3 < _textSpeed)) && ((_letter < _phrase.length)))) { _local2 = _phrase.charAt(_letter++); if (_local2 == _pauseCharacter){ _paused = _pauseTime; if (_mouth != null){ _mouth.gotoAndStop("_m"); }; return; }; _txt.appendText(_local2); _txt.scrollV = _txt.maxScrollV; _local3++; }; if (_mouth != null){ _local2 = _local2.toLowerCase(); if ((((((((((((((((((_local2 == "k")) || ((_local2 == "t")))) || ((_local2 == "y")))) || ((_local2 == "s")))) || ((_local2 == "q")))) || ((_local2 == "d")))) || ((_local2 == "g")))) || ((_local2 == "j")))) || ((_local2 == "z")))){ _local2 = "i"; }; if ((((_local2 == "w")) || ((_local2 == "r")))){ _local2 = "u"; }; if (_local2 == "h"){ _local2 = "a"; }; if ((((_local2 == "l")) || ((_local2 == "d")))){ _local2 = "o"; }; switch (_local2){ case "a": case "e": case "i": case "o": case "u": _mouth.gotoAndStop(("_" + _local2)); break; default: _mouth.gotoAndStop("_m"); }; }; if (_letter >= _phrase.length){ if (_mouth != null){ _mouth.gotoAndStop("_m"); }; dispatchEvent(new Event("speechFinished")); }; } else { if (_timer > 0){ _timer--; } else { clearSpeech(); dispatchEvent(new Event("speechCleared")); }; }; }; } public function set textSpeed(_arg1:int){ if (_arg1 < 0){ _arg1 = 0; }; _textSpeed = _arg1; } public function get interruptible():Boolean{ return (_interruptible); } public function get phrase():String{ return (_phrase); } public function listenTo(_arg1:Expansion){ if (_expansion){ _expansion.removeEventListener("checkpoint", _checkpoint); _expansion = null; }; if (!_arg1){ return; }; _expansion = _arg1; _expansion.addEventListener("checkpoint", _checkpoint, false, 0, true); } public function get timer():int{ return (_timer); } public function get mouth():MovieClip{ return (_mouth); } public function get speaking():Boolean{ return (((_txt.visible) && ((_letter < _phrase.length)))); } public function get pauseCharacter():String{ return (_pauseCharacter); } public function set pauseTime(_arg1:int){ _pauseTime = _arg1; } public function getCheckPoint(_arg1:MovieClip, _arg2:int, _arg3:int=1):Object{ var _local4:int; _local4 = 0; while (_local4 < _checkpoints.length) { if ((((((_checkpoints[_local4].part == _arg1)) && ((_checkpoints[_local4].size == _arg2)))) && ((_checkpoints[_local4].direction == _arg3)))){ return (_checkpoints[_local4]); }; _local4++; }; return (null); } public function get pauseTime():int{ return (_pauseTime); } public function get textField():TextField{ return (_txt); } public function set contained(_arg1:Boolean){ if (((_contained) && (_txt.parent))){ if (!_arg1){ _txt.parent.visible = true; } else { _txt.parent.visible = _txt.visible; }; }; _contained = _arg1; } public function setEvent(_arg1:EventDispatcher, _arg2:String, _arg3:String, _arg4:int=-1){ var _local5:Object; if (((((!(_arg1)) || (!(_arg2)))) || (!(_arg2.length)))){ return; }; _local5 = getEvent(_arg1, _arg2); if (_local5 != null){ _local5.phrase = phrase; _local5.time = _arg4; return; }; _events.push({object:_arg1, type:_arg2, phrase:_arg3, time:_arg4}); _arg1.addEventListener(_arg2, _event, false, 5, true); } public function set interruptible(_arg1:Boolean){ _interruptible = _arg1; } public function clearEvent(_arg1:EventDispatcher, _arg2:String){ var _local3:int; _local3 = 0; while (_local3 < _events.length) { if ((((_events[_local3].object == _arg1)) && ((_events[_local3].type == _arg2)))){ _arg1.removeEventListener(_arg2, _event); _events.splice(_local3, 1); return; }; _local3++; }; } public function get contained():Boolean{ return (_contained); } public function setCheckPoint(_arg1:MovieClip, _arg2:int, _arg3:int=1, _arg4:String="", _arg5:int=-1){ var _local6:Object; if (!_arg1){ return; }; _local6 = getCheckPoint(_arg1, _arg2, _arg3); if (_local6 != null){ _local6.phrase = _arg4; _local6.time = _arg5; return; }; _checkpoints.push({part:_arg1, size:_arg2, direction:_arg3, phrase:_arg4, time:_arg5}); } public function say(_arg1:String, _arg2:int=-1){ var _local3:String; var _local4:String; if (((speaking) && (!(_interruptible)))){ return; }; _paused = -1; if (!_txt){ throw ("ERROR: No TextField object found!"); }; if (_txt.length > 0){ _local3 = _phrase.charAt((_letter - 1)); _local4 = _phrase.charAt(_letter); if ((((((((_letter > 0)) && ((_letter < _phrase.length)))) && (isLetter(_local3)))) && (isLetter(_local4)))){ _txt.appendText(_interruptionText); }; _txt.appendText("\n\n"); _txt.scrollV = _txt.maxScrollV; }; if (((_contained) && (_txt.parent))){ _txt.parent.visible = true; }; if (_arg2 < 0){ _arg2 = (_arg1.length + 20); }; _phrase = _arg1; _letter = 0; _timer = _arg2; _txt.visible = true; _txt.addEventListener("enterFrame", _speaking); } public function getEvent(_arg1:EventDispatcher, _arg2:String):Object{ var _local3:int; _local3 = 0; while (_local3 < _events.length) { if ((((_events[_local3].object == _arg1)) && ((_events[_local3].type == _arg2)))){ return (_events[_local3]); }; _local3++; }; return (null); } public static function isLetter(_arg1:String){ var _local2:int; var _local3:Array; var _local4:int; _local2 = _arg1.charCodeAt(0); if ((((_local2 >= "a".charCodeAt(0))) && ((_local2 <= "z".charCodeAt(0))))){ return (true); }; if ((((_local2 >= "A".charCodeAt(0))) && ((_local2 <= "Z".charCodeAt(0))))){ return (true); }; if ((((_local2 >= "0".charCodeAt(0))) && ((_local2 <= "9".charCodeAt(0))))){ return (true); }; _local3 = ["á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú", "à", "è", "ì", "ò", "ù", "À", "È", "Ì", "Ò", "Ù", "ä", "ë", "ï", "ö", "ü", "Ä", "Ë", "Ï", "Ö", "Ü", "â", "ê", "î", "ô", "û", "Â", "Ê", "Î", "Ô", "Û", "ñ", "Ñ"]; _local4 = 0; while (_local4 < _local3.length) { if (_local3[_local4] == _arg1){ return (true); }; _local4++; }; return (false); } } }//package expansion
Section 6
//Color (fl.motion.Color) package fl.motion { import flash.display.*; import flash.geom.*; public class Color extends ColorTransform { private var _tintMultiplier:Number;// = 0 private var _tintColor:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ _tintColor = 0; _tintMultiplier = 0; super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function setTint(_arg1:uint, _arg2:Number):void{ var _local3:uint; var _local4:uint; var _local5:uint; this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); _local3 = ((_arg1 >> 16) & 0xFF); _local4 = ((_arg1 >> 8) & 0xFF); _local5 = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } private function deriveTintColor():uint{ var _local1:Number; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; _local1 = (1 / this.tintMultiplier); _local2 = Math.round((this.redOffset * _local1)); _local3 = Math.round((this.greenOffset * _local1)); _local4 = Math.round((this.blueOffset * _local1)); _local5 = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function get tintColor():uint{ return (this._tintColor); } public function set brightness(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; _local2 = (1 - Math.abs(_arg1)); _local3 = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } private function parseXML(_arg1:XML=null):Color{ var _local2:XML; var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; _local2 = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:uint; var _local14:uint; var _local15:uint; var _local16:uint; var _local17:uint; _local4 = (1 - _arg3); _local5 = ((_arg1 >> 24) & 0xFF); _local6 = ((_arg1 >> 16) & 0xFF); _local7 = ((_arg1 >> 8) & 0xFF); _local8 = (_arg1 & 0xFF); _local9 = ((_arg2 >> 24) & 0xFF); _local10 = ((_arg2 >> 16) & 0xFF); _local11 = ((_arg2 >> 8) & 0xFF); _local12 = (_arg2 & 0xFF); _local13 = ((_local5 * _local4) + (_local9 * _arg3)); _local14 = ((_local6 * _local4) + (_local10 * _arg3)); _local15 = ((_local7 * _local4) + (_local11 * _arg3)); _local16 = ((_local8 * _local4) + (_local12 * _arg3)); _local17 = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number; var _local5:ColorTransform; _local4 = (1 - _arg3); _local5 = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } } }//package fl.motion
Section 7
//arm1_27 (rouge_fla.arm1_27) package rouge_fla { import flash.display.*; public dynamic class arm1_27 extends MovieClip { public function arm1_27(){ addFrameScript(1, frame2, 21, frame22, 37, frame38, 49, frame50, 64, frame65); } function frame65(){ this.gotoAndStop(this.currentLabel); } function frame22(){ this.gotoAndStop(this.currentLabel); } function frame2(){ this.gotoAndStop(this.currentLabel); } function frame38(){ this.gotoAndStop(this.currentLabel); } function frame50(){ this.gotoAndStop(this.currentLabel); } } }//package rouge_fla
Section 8
//background2_2 (rouge_fla.background2_2) package rouge_fla { import flash.display.*; public dynamic class background2_2 extends MovieClip { public var city:MovieClip; } }//package rouge_fla
Section 9
//door_5 (rouge_fla.door_5) package rouge_fla { import flash.display.*; public dynamic class door_5 extends MovieClip { public var marker:MovieClip; } }//package rouge_fla
Section 10
//eye1_24 (rouge_fla.eye1_24) package rouge_fla { import flash.display.*; public dynamic class eye1_24 extends MovieClip { public var pupil:MovieClip; public function eye1_24(){ addFrameScript(1, frame2, 3, frame4, 5, frame6, 7, frame8, 9, frame10, 11, frame12, 24, frame25); } function frame10(){ this.gotoAndPlay(this.currentLabel); } function frame12(){ this.gotoAndPlay(this.currentLabel); } function frame6(){ this.gotoAndPlay(this.currentLabel); } function frame8(){ this.gotoAndPlay(this.currentLabel); } function frame25(){ this.gotoAndPlay(this.currentLabel); } function frame4(){ this.gotoAndPlay(this.currentLabel); } function frame2(){ this.gotoAndPlay(this.currentLabel); } } }//package rouge_fla
Section 11
//eye2_22 (rouge_fla.eye2_22) package rouge_fla { import flash.display.*; public dynamic class eye2_22 extends MovieClip { public var pupil:MovieClip; public function eye2_22(){ addFrameScript(1, frame2, 3, frame4, 5, frame6, 7, frame8, 9, frame10, 11, frame12, 24, frame25); } function frame10(){ this.gotoAndPlay(this.currentLabel); } function frame12(){ this.gotoAndPlay(this.currentLabel); } function frame6(){ this.gotoAndPlay(this.currentLabel); } function frame8(){ this.gotoAndPlay(this.currentLabel); } function frame25(){ this.gotoAndPlay(this.currentLabel); } function frame4(){ this.gotoAndPlay(this.currentLabel); } function frame2(){ this.gotoAndPlay(this.currentLabel); } } }//package rouge_fla
Section 12
//head_7 (rouge_fla.head_7) package rouge_fla { import flash.display.*; public dynamic class head_7 extends MovieClip { public var ear1:MovieClip; public var ear2:MovieClip; } }//package rouge_fla
Section 13
//MainTimeline (rouge_fla.MainTimeline) package rouge_fla { import flash.display.*; import flash.geom.*; import fl.motion.*; import flash.events.*; import expansion.*; import flash.text.*; import as3.*; import flash.ui.*; import flash.filters.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.system.*; import flash.utils.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public const CLOUD_TOP:Number = 205; public const STORM_X:Number = 351; public const STORM_Y:Number = 0; public const STORM_WIDTH:Number = 432; public const INV_SQRT_2PI:Number; public const DEG_2_RAD:Number = 0.0174532925199433; public const GAUSS_RADIUS:Number = 3; public const STORM_HEIGHT:Number = 444; public const CLOUD_BOTTOM:Number = 300; public const BALLOON_COLORS:Array; public const IONOSPHERE:Number = 86; public var ELASTIC_LIST:Array; public var size:Number; public var reacting:Boolean; public var DOOR_DIRECTION:int; public var LIGHTNING_SPEECH:Array; public var MAX_SIZE:int; public var emerald:MovieClip; public var cloudID:int; public var balloons:Array; public var EM_E_ALPHA:Number; public var EAR1_ELASTIC:Object; public var EM_LIFE:int; public var balloon:MovieClip; public var PUPIL1_ID:int; public var DEFAULT_BODY_SPEED:Number; public var ATTACH_LIST:Array; public var cloudsGenerated:Boolean; public var SPEECH_DURATION:int; public var INHIBITOR:Boolean; public var lcd_stolen_bg:MovieClip; public var glowClip:Shape; public var BODY_RANGE:Number; public var SPRITE_CLIP:MovieClip; public var cMenu:ContextMenu; public var cMenuItem:ContextMenuItem; public var PUPIL2_ID:int; public var expression:Expression; public var glowMat:Matrix; public var bounds:Rectangle; public var rouge:MovieClip; public var EM_E_THICKNESS:Number; public var DEFAULT_BODY_ANGLE:Number; public var emeraldState:int; public var gX:int; public var LEG2_X:Number; public var LEG2_Y:Number; public var particlesPerCloud:int; public var speech:Speech; public var BODY_FLOOR_DIST:Number; public var ROUGE_X:Number; public var STAGE_COVER:Shape; public var ROUGE_Y:Number; public var bodyPhase:Number; public var STAGE_WIDTH:int; public var blurMatrix:Array; public var shineLife:int; public var LIGHTNING_PHRASE_ID:int; public var tmp:Array; public var DEFAULT_BODY_RANGE:Number; public var BODY_FLOOR_Y:Number; public var BODY_FLOOR_X:Number; public var EAR2_ELASTIC:Object; public var CLOUD_CLIP:MovieClip; public var conv:ConvolutionFilter; public var EM_S_THICKNESS:Number; public var BODY_SPEED:Number; public var slowmo:Boolean; public var EYE1_ID:int; public var EM_E_RADIUS:Number; public var DEFAULT_TEXT_SPEED:int; public var world:Object; public var ARM2_WIDTH:Number; public var emeraldShine:MovieClip; public var STAGE_HEIGHT:int; public var balloonState:int; public var tmpRect:Rectangle; public var MOUTH_ID:int; public var EM_S_RADIUS:Number; public var lcd_stolen_item:MovieClip; public var EM_S_ALPHA:Number; public var LEG2_HEIGHT:Number; public var LEG2_WIDTH:Number; public var LIGHTNING_CLIP:MovieClip; public var DEST_BODY_ANGLE:Number; public var growth:Number; public var curBalloon:MovieClip; public var numBalloons:int; public var ARM2_X:Number; public var currentPattern:int; public var lcd_stolen:String; public var SPEECH_LIST:Array; public var BODY_ANGLE:Number; public var EYE2_ID:int; public var HEAD_ID:int; public var speechPatterns:Array; public var balloonTaken:Boolean; public var CAN_BLINK:Boolean; public var WORLD_CLIP:Sprite; public function MainTimeline(){ BALLOON_COLORS = [0xFF, 39423, 0xFF9900, 0xFFFF00, 0xFF0000, 0xFF00, 0xFF00FF, 0xBB00BB, 16724889]; INV_SQRT_2PI = (1 / Math.sqrt((2 * Math.PI))); super(); addFrameScript(0, frame1); } public function createWorld(_arg1:Number, _arg2:Number):Object{ var _local3:Object; var _local4:Number; _local3 = {}; _local3.stable = true; _local3.width = _arg1; _local3.height = _arg2; _local3.groundHeight = _local3.height; _local3.cloudHeight = (_local3.height * 0.7); _local3.maxCloudHeight = (_local3.height * 0.5); _local3.ionosphereHeight = (_local3.height * 0.1); _local3.cloudFriction = 0.7; _local3.cloudFlattenForce = 1; _local3.cloudLife = 20; _local3.cloudLifeVariation = 10; _local3.cloudParticleRadius = 1; _local3.useRepulsion = true; _local3.cloudRepulsionRadius = 1; _local3.cloudRepulsionForce = 1; _local3.maxVortexSpin = (Math.PI * 0.25); _local3.maxVortexRadius = 1; _local3.vortexReverseRate = 0.05; _local3.cloudGravity = 1; _local3.cloudFloatForce = 1; _local3.cloudSpeed = 10; _local4 = (_local3.cloudHeight - _local3.groundHeight); _local3.groundRadius = (_local3.width * 0.1); _local3.lightningThreshold = (1 / (_local4 * _local4)); _local3.maxChargeIncrease = 0.01; _local3.groundLightningRadius = 10; _local3.groundLightningProbability = 0.1; _local3.clearChargeRadius = (_local3.width * 0.2); _local3.clearChargeMultiplier = 5; _local3.groundLightningSpeed = 1; _local3.cloudLightningSpeed = 1; _local3.groundRandomSpeed = 1; _local3.cloudRandomSpeed = 1; _local3.lightningFadeSpeed = 0.1; _local3.lightningMomentum = 0.5; _local3.spriteAlpha = 1; _local3.minSpriteSources = 4; _local3.maxSpriteSources = 8; _local3.spriteSourceRadius = (_local3.width * 0.05); _local3.spritePathRadius = 3; _local3.minSpritesPerSource = 6; _local3.maxSpritesPerSource = 10; _local3.spriteFadeSpeed = 0.1; _local3.childrenPerSprite = 3; _local3.spriteConvergeRate = 0.1; _local3.spriteDivergeRate = 0.02; _local3.spriteLife = 7; _local3.spriteLifeVariation = 5; _local3.minSpriteSpeed = 0.5; _local3.maxSpriteSpeed = 1; _local3.upSpriteAccel = 1.01; _local3.downSpriteAccel = 1.3; _local3.spriteAngleSize = (Math.PI * 0.7); _local3.downSpritesRatio = 0.5; _local3.cloudSeeds = []; _local3.clouds = []; _local3.ground = []; _local3.lightning = null; _local3.sprites = []; return (_local3); } public function eFrame(_arg1:Event){ if (growth > 0){ size = (size + growth); if (size >= MAX_SIZE){ size = MAX_SIZE; growth = 0; }; } else { if (growth < 0){ size = (size - growth); if (size < 1){ growth = 0; size = 1; }; }; }; if (DOOR_DIRECTION){ rouge.door.gotoAndStop((rouge.door.currentFrame + DOOR_DIRECTION)); if ((((rouge.door.currentFrame == 1)) || ((rouge.door.currentFrame == rouge.door.totalFrames)))){ DOOR_DIRECTION = 0; }; }; updateAttached(); updateBalloon(); updateEmerald(); } public function selectMenuItem(_arg1:ContextMenuEvent){ var _local2:ContextMenuItem; _local2 = (_arg1.currentTarget as ContextMenuItem); if (INHIBITOR){ return; }; stackSpeech("Yes, my name is Rouge.", "comment"); } public function unlockEmerald(){ if (emerald){ return; }; emeraldState = 1; emerald = new Emerald(); rouge.arm1.gotoAndPlay("give"); } public function dropBalloon(_arg1:Event){ stage.removeEventListener(MouseEvent.MOUSE_DOWN, dropBalloon, true); stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveBalloon, false); rouge.addChild(curBalloon); curBalloon = null; } public function updateCover(){ var _local1:Graphics; _local1 = STAGE_COVER.graphics; _local1.clear(); _local1.beginFill(0); _local1.drawRect((-((stage.stageWidth - STAGE_WIDTH)) * 0.5), (-((stage.stageHeight - STAGE_HEIGHT)) * 0.5), stage.stageWidth, stage.stageHeight); _local1.drawRect(0, 0, STAGE_WIDTH, STAGE_HEIGHT); } function frame1(){ lcd_stolen = new LocalConnection().domain; if (lcd_stolen.toLowerCase().indexOf("swfchan") != -1){ stop(); lcd_stolen_bg = new MovieClip(); while (numChildren) { removeChildAt(0); }; lcd_stolen_bg.graphics.beginFill(0xFFFFFF); lcd_stolen_bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); lcd_stolen_bg.graphics.endFill(); lcd_stolen_item = new MovieClip(); lcd_stolen_item.tF = new TextFormat(); lcd_stolen_item.tF.bold = true; lcd_stolen_item.tF.size = 64; lcd_stolen_item.tF.color = 0xFF2200; lcd_stolen_item.tF.font = "Trebuchet MS"; lcd_stolen_item.txt = new TextField(); lcd_stolen_item.txt.defaultTextFormat = lcd_stolen_item.tF; lcd_stolen_item.txt.text = "swfchan.com"; lcd_stolen_item.txt.width = (lcd_stolen_item.txt.textWidth + 5); lcd_stolen_item.txt.height = (lcd_stolen_item.txt.textHeight + 5); lcd_stolen_item.bmp = new Bitmap(new BitmapData((lcd_stolen_item.txt.textWidth + 5), (lcd_stolen_item.txt.textHeight + 5), true, 0)); lcd_stolen_item.bmp.bitmapData.draw(lcd_stolen_item.txt); lcd_stolen_item.bmp.x = (lcd_stolen_item.bmp.x - (lcd_stolen_item.bmp.width * 0.5)); lcd_stolen_item.bmp.y = (lcd_stolen_item.bmp.y - (lcd_stolen_item.bmp.height * 0.5)); lcd_stolen_item.addChild(lcd_stolen_item.bmp); delete lcd_stolen_item.txt; delete lcd_stolen_item.tF; lcd_stolen_item.x = (Math.random() * stage.stageWidth); lcd_stolen_item.y = (Math.random() * stage.stageWidth); lcd_stolen_item.vX = (5 + (Math.random() * 10)); lcd_stolen_item.vY = (5 + (Math.random() * 10)); lcd_stolen_item.vR = (1 + ((Math.random() * 5) * ((Math.random())<0.5) ? -1 : 1)); stage.addChild(lcd_stolen_bg); stage.addChild(lcd_stolen_item); stage.addEventListener(Event.RESIZE, function (_arg1:Event){ lcd_stolen_bg.graphics.clear(); lcd_stolen_bg.graphics.beginFill(0xFFFFFF); lcd_stolen_bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); lcd_stolen_bg.graphics.endFill(); }); stage.addEventListener(Event.ENTER_FRAME, function (_arg1:Event){ lcd_stolen_item.x = (lcd_stolen_item.x + lcd_stolen_item.vX); lcd_stolen_item.y = (lcd_stolen_item.y + lcd_stolen_item.vY); lcd_stolen_item.rotation = (lcd_stolen_item.rotation + lcd_stolen_item.vR); bounds = lcd_stolen_item.getBounds(stage); if ((((((bounds.left < 0)) && ((lcd_stolen_item.vX < 0)))) || ((((bounds.right > stage.stageWidth)) && ((lcd_stolen_item.vX > 0)))))){ lcd_stolen_item.vX = -(lcd_stolen_item.vX); }; if ((((((bounds.top < 0)) && ((lcd_stolen_item.vY < 0)))) || ((((bounds.bottom > stage.stageHeight)) && ((lcd_stolen_item.vY > 0)))))){ lcd_stolen_item.vY = -(lcd_stolen_item.vY); }; }); return; }; stage.scaleMode = StageScaleMode.NO_SCALE; STAGE_WIDTH = 800; STAGE_HEIGHT = 600; INHIBITOR = true; growth = 0; size = 0; MAX_SIZE = 600; blurMatrix = [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0]; conv = new ConvolutionFilter(9, 9, blurMatrix, 19, 8); rouge.bg2.city.filters = [conv]; rouge.bg2.city.cacheAsBitmap = true; rouge.bg2.cacheAsBitmap = true; STAGE_COVER = new Shape(); stage.addChild(STAGE_COVER); stage.addEventListener(Event.RESIZE, resize); resize(null); stage.addEventListener(Event.ENTER_FRAME, eFrame); DOOR_DIRECTION = 0; rouge.door.gotoAndStop(1); LIGHTNING_SPEECH = []; LIGHTNING_PHRASE_ID = -1; LIGHTNING_SPEECH[0] = [{phrase:"Hey,did you see that?", reaction:"question"}]; LIGHTNING_SPEECH[1] = [{phrase:"There's another one.", reaction:"comment"}]; LIGHTNING_SPEECH[2] = [{phrase:"No, not the lightning.", reaction:"lament"}, {phrase:"Look ontop of the clouds.", reaction:"tired"}]; LIGHTNING_SPEECH[3] = []; LIGHTNING_SPEECH[4] = []; LIGHTNING_SPEECH[5] = [{phrase:"Did you see it yet?", reaction:"question"}, {phrase:"Look for a red thing ontop of the clouds when the lightning strikes.", reaction:"statement"}, {phrase:"It only appears for a fraction of a second. Look carefully.", reaction:"lament"}]; LIGHTNING_SPEECH[6] = []; LIGHTNING_SPEECH[7] = []; LIGHTNING_SPEECH[8] = [{phrase:"Well?", reaction:"question"}, {phrase:"It's called a lightning sprite. It appears above powerful lightning strikes.", reaction:"explain"}, {phrase:"They can reach up to 40 miles tall, sometimes hitting the ionosphere.", reaction:"explain"}]; LIGHTNING_SPEECH[9] = []; LIGHTNING_SPEECH[10] = []; LIGHTNING_SPEECH[11] = [{phrase:"Here. Have this! It's a chaos emerald.", reaction:"comment"}, {phrase:"If you didn't catch it yet, try using Chaos Control to slow down time.", reaction:"interested"}]; LIGHTNING_SPEECH[12] = [{phrase:"You learn a lot of cool things when you're a secret agent.", reaction:"interested"}, {phrase:"If you wanna learn more about sprites, look for them on the network.", reaction:"nice"}]; glowClip = new Shape(); glowClip.visible = false; glowMat = new Matrix(); glowMat.createGradientBox(STAGE_WIDTH, STAGE_HEIGHT); glowClip.graphics.clear(); glowClip.graphics.beginGradientFill(GradientType.RADIAL, [39423, 0xFF], [0, 0.33], [200, 0xFF], glowMat); glowClip.graphics.drawRect(0, 0, STAGE_WIDTH, STAGE_HEIGHT); glowClip.graphics.endFill(); stage.addChild(glowClip); EM_S_THICKNESS = 1; EM_S_ALPHA = 1; EM_S_RADIUS = 0; EM_E_THICKNESS = 30; EM_E_ALPHA = 0; EM_E_RADIUS = 100; EM_LIFE = 30; emeraldState = 0; shineLife = 0; emerald = null; emeraldShine = null; CAN_BLINK = true; world = createWorld(STORM_WIDTH, STORM_HEIGHT); WORLD_CLIP = new Sprite(); CLOUD_CLIP = new MovieClip(); LIGHTNING_CLIP = new MovieClip(); SPRITE_CLIP = new MovieClip(); cloudID = 0; particlesPerCloud = 100; cloudsGenerated = false; slowmo = false; WORLD_CLIP.x = STORM_X; WORLD_CLIP.addChild(SPRITE_CLIP); WORLD_CLIP.addChild(LIGHTNING_CLIP); WORLD_CLIP.addChild(CLOUD_CLIP); rouge.addChildAt(WORLD_CLIP, rouge.getChildIndex(rouge.bg1)); addEventListener("enterFrame", worldFrame); world.cloudHeight = CLOUD_BOTTOM; world.maxCloudHeight = CLOUD_TOP; world.ionosphereHeight = IONOSPHERE; world.groundHeight = STORM_HEIGHT; world.cloudParticleRadius = 15; world.cloudRepulsionRadius = 4; world.cloudRepulsionForce = 4; world.useRepulsion = false; world.cloudGravity = -0.1; world.cloudFloatForce = 1; world.cloudLife = 20; world.cloudLifeVariation = 20; world.cloudSpeed = 13; world.maxVortexSpin = ((Math.PI * 0.5) * 0.1); world.maxVortexRadius = 2; world.vortexReverseRate = 0.25; world.maxChargeIncrease = 0.004; world.cloudRandomSpeed = 5; world.cloudLightningSpeed = 1; world.groundRandomSpeed = 1; world.groundLightningSpeed = 0.5; world.lightningMomentum = 0.1; world.groundLightningProbability = 1; world.groundLightningRadius = 30; world.maxSpriteSources = 12; world.spriteLife = 7; world.spriteAlpha = 0.5; world.spritePathRadius = 4; world.spriteFadeSpeed = 0.18; cloudID = (Math.random() * 0xFFFFFF); createCloud(world, cloudID, 50, 20, particlesPerCloud, 20); createCloud(world, (cloudID + 7502), 95, 20, particlesPerCloud, 20); createCloud(world, (cloudID + 25666), 180, 20, particlesPerCloud, 20); createCloud(world, (cloudID + 4564), 250, 20, particlesPerCloud, 20); createCloud(world, (cloudID + 825612), 330, 20, particlesPerCloud, 20); createCloud(world, (cloudID + 85612), 390, 20, particlesPerCloud, 20); gX = 0; while (gX < 150) { world.ground[gX] = {x:(gX * 3), y:world.groundHeight, charge:0}; gX++; }; balloon = null; curBalloon = null; balloons = []; balloonState = 0; numBalloons = 0; balloonTaken = false; expression = new Expression(stage); HEAD_ID = expression.addPart(rouge.head); MOUTH_ID = expression.addPart(rouge.mouth); EYE1_ID = expression.addPart(rouge.eye1, Expression.ANIMATED, true); EYE2_ID = expression.addPart(rouge.eye2, Expression.ANIMATED, true); PUPIL1_ID = expression.addPart(rouge.eye1.pupil); PUPIL2_ID = expression.addPart(rouge.eye2.pupil); tmp = []; expression.addStateAttributes(tmp, true, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 0, 2); expression.addPartToState(tmp, MOUTH_ID, "smile"); expression.addPartToState(tmp, EYE1_ID, "small2"); expression.addPartToState(tmp, EYE2_ID, "small2"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 0, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 0, 0); expression.addState("normal", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, -5, 2); expression.addPartToState(tmp, MOUTH_ID, "happy"); expression.addPartToState(tmp, EYE1_ID, "medium"); expression.addPartToState(tmp, EYE2_ID, "medium"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 0, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 0, 0); expression.addState("happy", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 8, 2); expression.addPartToState(tmp, MOUTH_ID, "teeth"); expression.addPartToState(tmp, EYE1_ID, "small"); expression.addPartToState(tmp, EYE2_ID, "small"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 0, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 0, 0); expression.addState("interested", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 0, 2); expression.addPartToState(tmp, MOUTH_ID, "small"); expression.addPartToState(tmp, EYE1_ID, "small2"); expression.addPartToState(tmp, EYE2_ID, "medium"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 10, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 6, 0); expression.addState("observe", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, -2, 2); expression.addPartToState(tmp, MOUTH_ID, "small"); expression.addPartToState(tmp, EYE1_ID, "medium"); expression.addPartToState(tmp, EYE2_ID, "medium"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, -2, -3); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, -2, -3); expression.addState("question", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, -2, 2); expression.addPartToState(tmp, MOUTH_ID, "happy"); expression.addPartToState(tmp, EYE1_ID, "small"); expression.addPartToState(tmp, EYE2_ID, "small"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 3, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 3, 0); expression.addState("comment", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 5, 2); expression.addPartToState(tmp, MOUTH_ID, "small"); expression.addPartToState(tmp, EYE1_ID, "closed"); expression.addPartToState(tmp, EYE2_ID, "closed"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 3, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 3, 0); expression.addState("lament", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 0, 2); expression.addPartToState(tmp, MOUTH_ID, "open"); expression.addPartToState(tmp, EYE1_ID, "medium"); expression.addPartToState(tmp, EYE2_ID, "small2"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, -2, -5); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, -2, -5); expression.addState("statement", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 4, 2); expression.addPartToState(tmp, MOUTH_ID, "open2"); expression.addPartToState(tmp, EYE1_ID, "medium"); expression.addPartToState(tmp, EYE2_ID, "medium"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 0, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 0, 0); expression.addState("explain", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 4, 1); expression.addPartToState(tmp, MOUTH_ID, "small"); expression.addPartToState(tmp, EYE1_ID, "small"); expression.addPartToState(tmp, EYE2_ID, "small"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 0, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 0, 0); expression.addState("tired", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 0, 1); expression.addPartToState(tmp, MOUTH_ID, "open"); expression.addPartToState(tmp, EYE1_ID, "open"); expression.addPartToState(tmp, EYE2_ID, "open"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, -3, 0); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, -1, 0); expression.addState("surprised", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 0, 1); expression.addPartToState(tmp, MOUTH_ID, "small"); expression.addPartToState(tmp, EYE1_ID, "small"); expression.addPartToState(tmp, EYE2_ID, "small2"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, -4, -2); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, -2, -2); expression.addState("mad", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 0, 1); expression.addPartToState(tmp, MOUTH_ID, "open"); expression.addPartToState(tmp, EYE1_ID, "medium"); expression.addPartToState(tmp, EYE2_ID, "medium"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, -4, -5); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, -2, -5); expression.addState("mad2", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 7, 1); expression.addPartToState(tmp, MOUTH_ID, "smile"); expression.addPartToState(tmp, EYE1_ID, "medium"); expression.addPartToState(tmp, EYE2_ID, "medium"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, -4, -2); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, -2, -2); expression.addState("nice", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 7, 1); expression.addPartToState(tmp, MOUTH_ID, "open2"); expression.addPartToState(tmp, EYE1_ID, "small"); expression.addPartToState(tmp, EYE2_ID, "small"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 6, 5); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 4, 5); expression.addState("lookright", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 7, 1); expression.addPartToState(tmp, MOUTH_ID, "teeth"); expression.addPartToState(tmp, EYE1_ID, "small2"); expression.addPartToState(tmp, EYE2_ID, "small2"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 5, -7); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, 5, -7); expression.addState("dreamy", tmp); tmp = []; expression.addStateAttributes(tmp, false, 0.1, 0.5); expression.addPartToState(tmp, HEAD_ID, null, 7, 1); expression.addPartToState(tmp, MOUTH_ID, "smile"); expression.addPartToState(tmp, EYE1_ID, "small"); expression.addPartToState(tmp, EYE2_ID, "small"); expression.addPartToState(tmp, PUPIL1_ID, null, 0, 0, 3, 3); expression.addPartToState(tmp, PUPIL2_ID, null, 0, 0, -3, 3); expression.addState("plot", tmp); expression.setState("normal"); expression.activate(); speech = new Speech(rouge.speech._txt); SPEECH_DURATION = 30; reacting = false; SPEECH_LIST = []; speechPatterns = []; currentPattern = 0; DEFAULT_TEXT_SPEED = 2; speech.textSpeed = DEFAULT_TEXT_SPEED; speech.interruptible = true; speech.addEventListener("speechCleared", endSpeech); speechPatterns[0] = [{phrase:"Hey there! Welcome to Carnival Night.", reaction:"happy"}, {phrase:"You want some of this... ?", reaction:"interested"}]; speechPatterns[1] = [{phrase:"What?! You want me to inflate MYSELF?", reaction:"surprised"}, {phrase:"No! Where'd you get that idea?", reaction:"mad"}]; speechPatterns[2] = [{phrase:"You think it's strange to see me working here?", reaction:"question"}, {phrase:"So do I. Not much work for a spy these days.", reaction:"tired"}, {phrase:"Gotta find a job somewhere. Treasure hunting doesn't pay.", reaction:"lament"}]; speechPatterns[3] = [{phrase:"Whadd'ya want?", reaction:"tired"}, {phrase:"Oh, \"Interactive Rouge balloon inflation\"", reaction:"lookright"}, {phrase:"You guys are hopeless.", reaction:"lament"}]; speechPatterns[4] = [{phrase:"The only treasure I know of is guarded by a certain echidna.", reaction:"dreamy"}, {phrase:"Can't get my hands on that one.", reaction:"plot"}]; speechPatterns[5] = [{phrase:"This is my work outfit. It has a lot of boxes.", reaction:"explain"}]; speechPatterns[6] = [{phrase:"Hey, there are a lot of places to explore, why not go somewhere else?", reaction:"question"}]; ROUGE_X = rouge.body.x; ROUGE_Y = rouge.body.y; ATTACH_LIST = []; ELASTIC_LIST = []; tmpRect = rouge.arm2.getRect(rouge); ARM2_X = rouge.arm2.x; ARM2_WIDTH = (tmpRect.right - ARM2_X); tmpRect = rouge.leg2.getRect(rouge); LEG2_X = rouge.leg2.x; LEG2_Y = rouge.leg2.y; LEG2_WIDTH = (tmpRect.right - rouge.leg2.x); LEG2_HEIGHT = (tmpRect.bottom - rouge.leg2.y); BODY_FLOOR_X = ROUGE_X; BODY_FLOOR_Y = tmpRect.bottom; BODY_FLOOR_DIST = Math.abs((BODY_FLOOR_Y - ROUGE_Y)); Physics.attach(ATTACH_LIST, rouge.breast1, rouge.body, ["rotation"]); Physics.attach(ATTACH_LIST, rouge.breast2, rouge.body, ["rotation"]); Physics.attach(ATTACH_LIST, rouge.top, rouge.body, ["rotation"]); Physics.attach(ATTACH_LIST, rouge.belt, rouge.body, ["rotation"]); Physics.attach(ATTACH_LIST, rouge.leg1, rouge.body); Physics.attach(ATTACH_LIST, rouge.leg2, rouge.body); Physics.attach(ATTACH_LIST, rouge.arm1, rouge.body); Physics.attach(ATTACH_LIST, rouge.arm2, rouge.body); Physics.attach(ATTACH_LIST, rouge.wing1, rouge.body); Physics.attach(ATTACH_LIST, rouge.wing2, rouge.body); Physics.attach(ATTACH_LIST, rouge.box2, rouge.body); Physics.attach(ATTACH_LIST, rouge.head, rouge.body); Physics.attach(ATTACH_LIST, rouge.mouth, rouge.head, ["rotation"]); Physics.attach(ATTACH_LIST, rouge.eye1, rouge.head, ["rotation"]); Physics.attach(ATTACH_LIST, rouge.eye2, rouge.head, ["rotation"]); Physics.setElastic(ELASTIC_LIST, rouge, rouge.wing1, ["scaleX"], [0.3], [1], [0.8], [1], [-2]); Physics.setElastic(ELASTIC_LIST, rouge, rouge.wing2, ["scaleX"], [0.3], [1], [0.8], [1], [2]); EAR1_ELASTIC = Physics.setElastic(ELASTIC_LIST, rouge, rouge.head.ear1, ["skewX", "skewY"], [0.3, 0.3], [0, 0], [0.8, 0.8], [2, 2], [1.5, 1.5]); EAR2_ELASTIC = Physics.setElastic(ELASTIC_LIST, rouge, rouge.head.ear2, ["skewX", "skewY"], [0.3, 0.3], [0, 0], [0.8, 0.8], [2, 2], [1.5, 1.5]); DEFAULT_BODY_SPEED = 0.05; DEFAULT_BODY_RANGE = (Math.PI * 0.02); DEFAULT_BODY_ANGLE = (-(Math.PI) * 0.5); BODY_SPEED = DEFAULT_BODY_SPEED; BODY_RANGE = DEFAULT_BODY_RANGE; BODY_ANGLE = DEFAULT_BODY_ANGLE; DEST_BODY_ANGLE = DEFAULT_BODY_ANGLE; bodyPhase = 0; cMenu = new ContextMenu(); cMenuItem = new ContextMenuItem("Rouge the bat"); cMenu.hideBuiltInItems(); cMenu.customItems = [cMenuItem]; cMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, selectMenuItem); contextMenu = cMenu; stage.addEventListener(MouseEvent.MOUSE_DOWN, setupAll); } public function createSpriteParticle(_arg1:Object, _arg2:Object, _arg3:Object):Object{ var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local5 = _arg1.spriteLife; _local6 = _arg1.spriteLifeVariation; _local7 = _arg1.minSpriteSpeed; _local8 = _arg1.maxSpriteSpeed; _local9 = (_local8 - _local7); _local10 = _arg1.upSpriteAccel; _local11 = _arg1.downSpriteAccel; _local12 = _arg1.spriteAngleSize; _local13 = ((Math.PI - _local12) * 0.5); _local14 = _arg1.downSpritesRatio; _local16 = (_local13 + (Math.random() * _local12)); _local15 = (_local7 + (Math.random() * _local9)); if (_arg3){ _local18 = _arg3.x; _local19 = _arg3.y; _local20 = (Math.cos(_local16) * _local15); _local23 = _arg3.accelY; if (Math.random() < _local14){ _local17 = 0; _local21 = _arg3.vY; _local22 = ((_local23)>1) ? (1 / _local23) : _local23; } else { _local17 = _arg3.split; _local21 = (-(Math.sin(_local16)) * _local15); _local22 = _local10; }; } else { _local17 = (_arg1.childrenPerSprite + 1); _local18 = _arg2.x; _local19 = _arg2.y; _local20 = (Math.cos(_local16) * _local15); if (Math.random() < _local14){ _local21 = (Math.sin(_local16) * _local15); _local22 = _local11; } else { _local21 = (-(Math.sin(_local16)) * _local15); _local22 = _local10; }; }; _local4 = {x:_local18, y:_local19, vX:_local20, vY:_local21, accelY:_local22, life:int((_local5 + (((Math.random() * 2) - 1) * _local6))), split:int((Math.random() * _local17)), alpha:1, source:_arg2, path:[]}; return (_local4); } public function drawSprites(_arg1:Object, _arg2:Graphics){ var _local3:Array; var _local4:Array; var _local5:Array; var _local6:Object; var _local7:Object; var _local8:Object; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:Matrix; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local3 = _arg1.sprites; _local15 = _arg1.spritePathRadius; _local16 = (_local15 * 2); _local17 = [0xFF0000, 0xFF0000]; _local18 = [1, 0]; _local19 = [0, 0xFF]; _local20 = new Matrix(); _local20.createGradientBox(_local16, _local16); _local21 = _arg1.ionosphereHeight; _local22 = _arg1.maxCloudHeight; _local23 = (1 / (_local22 - _local21)); _local24 = _arg1.spriteAlpha; _local9 = _local3.length; _local12 = 0; while (_local12 < _local9) { _local6 = _local3[_local12]; _local4 = _local6.sprites; _local10 = _local4.length; _local18[0] = (_local6.alpha * _local24); _local13 = 0; while (_local13 < _local10) { _local7 = _local4[_local13]; _local5 = _local7.path; _local11 = _local5.length; _local14 = 0; while (_local14 < _local11) { _local8 = _local5[_local14]; _local25 = ((_local8.y - _local21) * _local23); _local25 = ((_local25)<0) ? 0 : ((_local25)>1) ? 1 : _local25; _local17[1] = (_local17[0] = Color.interpolateColor(0xFF0000, 0xFF, _local25)); _local20.tx = (_local8.x - _local15); _local20.ty = (_local8.y - _local15); _arg2.beginGradientFill("radial", _local17, _local18, _local19, _local20); _arg2.drawCircle(_local8.x, _local8.y, _local15); _arg2.endFill(); _local14++; }; _local13++; }; _local12++; }; } public function updateLightning(_arg1:Object){ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:Object; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; if (!_arg1.lightning){ return; }; _local7 = _arg1.lightning; _local28 = (Math.PI * 2); _local29 = _arg1.lightningFadeSpeed; _local30 = _arg1.cloudLightningSpeed; _local31 = _arg1.groundLightningSpeed; _local32 = (_local30 + _local31); _local33 = _arg1.cloudRandomSpeed; _local34 = _arg1.groundRandomSpeed; _local35 = _arg1.lightningMomentum; _local36 = (1 - _local35); _local10 = _local7.bolts; _local5 = _local10.length; _local6 = (_local5 - 1); if (_local7.isComplete){ _local7.alpha = (_local7.alpha - _local29); if (_local7.alpha <= 0){ _arg1.lightning = null; }; } else { _local8 = _local10[0]; _local16 = _local10[0][(_local8.length - 2)]; _local17 = _local8[(_local8.length - 1)]; _local22 = _local8.vX; _local23 = _local8.vY; _local15 = -1; _local3 = 1; while (_local3 < _local5) { _local9 = _local10[_local3]; _local18 = _local10[_local3][(_local9.length - 2)]; _local19 = _local9[(_local9.length - 1)]; _local11 = (_local16 - _local18); _local12 = (_local17 - _local19); _local13 = ((_local11 * _local11) + (_local12 * _local12)); if ((((_local15 < 0)) || ((_local13 < _local15)))){ _local15 = _local13; _local4 = _local3; }; _local3++; }; _local9 = _local10[_local4]; _local18 = _local10[_local4][(_local9.length - 2)]; _local19 = _local9[(_local9.length - 1)]; _local24 = _local9.vX; _local25 = _local9.vY; _local11 = (_local18 - _local16); _local12 = (_local19 - _local17); _local13 = ((_local11 * _local11) + (_local12 * _local12)); if (_local13 < ((((_local22 * _local22) + (_local23 * _local23)) + (_local24 * _local24)) + (_local25 * _local25))){ _local8[_local8.length] = _local18; _local8[_local8.length] = _local19; _local7.isComplete = true; createSprite(_arg1, _local8[0], _local8[1]); return; }; _local4 = (1 + (Math.random() * _local6)); _local9 = _local10[_local4]; _local18 = _local10[_local4][(_local9.length - 2)]; _local19 = _local9[(_local9.length - 1)]; _local11 = (_local18 - _local16); _local12 = (_local19 - _local17); _local13 = ((_local11 * _local11) + (_local12 * _local12)); _local14 = (1 / Math.sqrt(_local13)); _local11 = (_local11 * _local14); _local12 = (_local12 * _local14); _local26 = (Math.random() * _local28); _local20 = ((Math.random() * Math.cos(_local26)) * _local33); _local21 = ((Math.random() * Math.sin(_local26)) * _local33); _local8[_local8.length] = (_local16 + _local22); _local8[_local8.length] = (_local17 + _local23); _local8.vX = (((_local20 + (_local11 * _local30)) * _local36) + (_local22 * _local35)); _local8.vY = (((_local21 + (_local12 * _local30)) * _local36) + (_local23 * _local35)); _local26 = (Math.random() * _local28); _local20 = ((Math.random() * Math.cos(_local26)) * _local34); _local21 = ((Math.random() * Math.sin(_local26)) * _local34); _local9[_local9.length] = (_local18 + _local24); _local9[_local9.length] = (_local19 + _local25); _local9.vX = (((_local20 - (_local11 * _local31)) * _local36) + (_local24 * _local35)); _local9.vY = (((_local21 - (_local12 * _local31)) * _local36) + (_local25 * _local35)); }; } public function createCloud(_arg1:Object, _arg2:uint, _arg3:Number, _arg4:Number, _arg5:int, _arg6:int){ var _local7:Array; var _local8:Object; var _local9:Array; var _local10:int; var _local11:int; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; _local7 = _arg1.cloudSeeds; _local9 = []; _arg1.stable = false; _local8 = (_local7[_local7.length] = {x:_arg3, y:_arg1.cloudHeight, radius:_arg4, numParticles:0, maxParticles:_arg5, vortices:_local9}); _local8.RANDOM_X = _arg2; _local8.RANDOM_Y = (((_arg2 << 1) + _arg2) + 1); _local8.RANDOM_Z = (((_arg2 << 2) + _arg2) + 2); _local8.RANDOM_W = (((_arg2 << 3) + _arg2) + 3); _local8.RANDOM_V = (((_arg2 << 4) + _arg2) + 4); _local16 = _arg1.cloudHeight; _local17 = _arg1.maxCloudHeight; _local18 = (_local17 - _local16); _local19 = (1 / _local18); _local20 = _arg1.maxVortexSpin; _local21 = (_arg4 * _arg1.maxVortexRadius); _local22 = _arg1.vortexReverseRate; _local11 = _arg6; _local23 = (1 / _local11); _local24 = 0; _local10 = 0; while (_local10 < _local11) { _local24 = (_local24 + _local23); _local13 = (_local16 + (_local18 * seedPseudoRandom(_local8))); _local12 = (_arg4 * ((seedPseudoRandom(_local8) * 2) - 1)); _local14 = ((_local21 * seedPseudoRandom(_local8)) * 0.5); _local12 = (_local12 + _arg3); _local15 = (seedPseudoRandom(_local8) * _local20); if (_local12 < _arg3){ _local15 = -(_local15); }; if (seedPseudoRandom(_local8) < _local22){ _local15 = -(_local15); }; _local9[_local9.length] = {x:_local12, y:_local13, radius:_local14, radius2:(_local14 * _local14), spin:_local15}; _local10++; }; } public function switchDoorDirection(_arg1:Event=null){ if (DOOR_DIRECTION){ DOOR_DIRECTION = -(DOOR_DIRECTION); } else { if (rouge.door.currentFrame == 1){ DOOR_DIRECTION = 1; } else { DOOR_DIRECTION = -1; }; }; } public function updateCloudSeeds(_arg1:Object){ var _local2:int; var _local3:int; var _local4:Array; var _local5:Array; var _local6:Object; var _local7:int; var _local8:int; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local4 = _arg1.clouds; _local5 = _arg1.cloudSeeds; _local7 = _arg1.cloudLife; _local8 = _arg1.cloudLifeVariation; _local3 = _local5.length; _local2 = 0; while (_local2 < _local3) { _local6 = _local5[_local2]; if (_local6.numParticles < _local6.maxParticles){ _local6.numParticles++; _local9 = (-(seedPseudoRandom(_local6)) * Math.PI); _local10 = seedPseudoRandom(_local6); _local11 = (-(seedPseudoRandom(_local6)) * Math.PI); _local12 = seedPseudoRandom(_local6); _local4[_local4.length] = {x:(_local6.x + (Math.cos(_local9) * _local10)), y:(_local6.y + (Math.sin(_local9) * _local10)), vX:((Math.cos(_local11) * _local12) * _arg1.cloudSpeed), vY:((Math.sin(_local11) * _local12) * _arg1.cloudSpeed), v:1, fX:0, fY:0, life:int((_local7 + (_local8 * ((seedPseudoRandom(_local6) * 2) - 1)))), lifeDecay:(1 / int((_local7 + (_local8 * ((seedPseudoRandom(_local6) * 2) - 1))))), charge:0, seed:_local6}; }; _local2++; }; } public function resize(_arg1:Event){ updateCover(); } public function pickEmerald(_arg1:Event){ emerald.x = (STAGE_WIDTH - 25); emerald.y = 25; stage.addChild(emerald); rouge.arm1.gotoAndPlay("take"); emeraldState = 3; emerald.removeEventListener(MouseEvent.MOUSE_DOWN, pickEmerald, false); emerald.addEventListener(MouseEvent.MOUSE_DOWN, activateEmerald, false, 0, true); } public function pickBalloon(_arg1:Event){ var _local2:int; var _local3:int; var _local4:int; if (slowmo){ return; }; curBalloon = (_arg1.currentTarget as MovieClip); curBalloon.removeEventListener(MouseEvent.MOUSE_DOWN, pickBalloon, false); stage.addEventListener(MouseEvent.MOUSE_DOWN, dropBalloon, true, 100, true); stage.addEventListener(MouseEvent.MOUSE_MOVE, moveBalloon, false, 0, true); curBalloon.scaleX = (curBalloon.scaleY = 1); curBalloon.x = stage.mouseX; curBalloon.y = stage.mouseY; _local4 = balloons.length; _local2 = 0; while (_local2 < _local4) { if (balloons[_local2] == curBalloon){ break; }; _local2++; }; _local3 = (_local2 + 1); while (_local3 < _local4) { if (balloons[_local3].parent != rouge){ balloons[_local3].y = (balloons[_local3].y - 50); }; _local3++; }; } public function createSprite(_arg1:Object, _arg2:Number, _arg3:Number){ var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:Number; var _local9:Number; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:Object; _local4 = []; _local5 = _arg1.minSpriteSources; _local6 = _arg1.maxSpriteSources; _local7 = (_local5 + (Math.random() * (_local6 - _local5))); _local8 = _arg1.spriteSourceRadius; _local9 = _arg1.ionosphereHeight; _local11 = _arg1.minSpritesPerSource; _local12 = _arg1.maxSpritesPerSource; _local13 = (_local11 + (Math.random() * (_local12 - _local11))); _local10 = 0; while (_local10 < _local7) { _local4[_local4.length] = {x:(_arg2 + (((Math.random() * 2) - 1) * _local8)), y:_local9, numSprites:_local13}; _local10++; }; _local14 = {x:_arg2, y:_arg3, sources:_local4, sprites:[], count:0, isComplete:false, alpha:1}; _arg1.sprites[_arg1.sprites.length] = _local14; } public function clickThings(_arg1:MouseEvent){ var _local2:int; var _local3:int; _local2 = stage.mouseX; _local3 = stage.mouseY; if (slowmo){ return; }; if (rouge.head.ear1.hitTestPoint(_local2, _local3, true)){ if (Math.abs(EAR1_ELASTIC.values[0][1]) < 0.01){ EAR1_ELASTIC.values[0][1] = 0.05; }; if ((((Math.random() < 0.1)) && (((!(speech.phrase)) || (!(speech.phrase.length)))))){ sayAndReact("Hey! Stop that!", "mad2"); }; } else { if (rouge.head.ear2.hitTestPoint(_local2, _local3, true)){ EAR2_ELASTIC.values[0][1] = -0.05; if (Math.abs(EAR2_ELASTIC.values[0][1]) < 0.01){ EAR2_ELASTIC.values[0][1] = -0.05; }; if ((((Math.random() < 0.1)) && (((!(speech.phrase)) || (!(speech.phrase.length)))))){ sayAndReact("Hey! Stop that!", "mad2"); }; } else { if (rouge.head.hitTestPoint(_local2, _local3, true)){ if (((((balloonTaken) && (((!(speech.phrase)) || (!(speech.phrase.length)))))) && ((currentPattern > 1)))){ DEST_BODY_ANGLE = DEFAULT_BODY_ANGLE; loadPattern(currentPattern++); }; } else { if (rouge.tank.hitTestPoint(_local2, _local3, true)){ if (((balloonTaken) && ((currentPattern == 1)))){ DEST_BODY_ANGLE = DEFAULT_BODY_ANGLE; loadPattern(currentPattern++); } else { if (((((!(((balloon) || (balloonState)))) && (!(emeraldState)))) && (((!(speech.phrase)) || (!(speech.phrase.length)))))){ createBalloon(); }; }; } else { if (((((rouge.top.hitTestPoint(_local2, _local3, true)) || (rouge.breast1.hitTestPoint(_local2, _local3, true)))) || (rouge.breast2.hitTestPoint(_local2, _local3, true)))){ if (!((speech.phrase) && (speech.phrase.length))){ sayAndReact("Hey! No touching!", "mad"); }; } else { if (rouge.body.hitTestPoint(_local2, _local3, true)){ if (((!(slowmo)) && (!(((speech.phrase) && (speech.phrase.length)))))){ stackSpeech("What?", "tired"); stackSpeech("You like my outfit?", "comment"); }; } else { if (((rouge.wing1.hitTestPoint(_local2, _local3, true)) || (rouge.wing2.hitTestPoint(_local2, _local3, true)))){ if (!((speech.phrase) && (speech.phrase.length))){ stackSpeech("My wings are very powerful.", "interested"); }; }; }; }; }; }; }; }; } public function sayAndReact(_arg1:String, _arg2:String){ expression.endReact(); speech.say(_arg1, (_arg1.length + SPEECH_DURATION)); expression.react(_arg2, -1); reacting = true; } public function updateSprite(_arg1:Object, _arg2:Object){ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:Object; var _local12:Object; var _local13:Object; var _local14:Object; var _local15:Number; var _local16:Number; _local8 = _arg2.sources; _local9 = _arg2.sprites; _local5 = _local8.length; _local6 = _local9.length; _local15 = _arg1.spriteConvergeRate; _local16 = _arg1.spriteDivergeRate; _local3 = 0; while (_local3 < _local5) { _local11 = _local8[_local3]; if (_local11.numSprites){ _local11.numSprites--; _local12 = createSpriteParticle(_arg1, _local11, null); _local9[_local9.length] = _local12; _arg2.count++; }; _local3++; }; if (_arg2.count){ _local3 = 0; while (_local3 < _local6) { _local12 = _local9[_local3]; _local10 = _local12.path; if (_local12.life > 0){ _local12.life--; _local10[_local10.length] = {x:_local12.x, y:_local12.y}; _local12.x = (_local12.x + _local12.vX); _local12.y = (_local12.y + _local12.vY); _local12.vY = (_local12.vY * _local12.accelY); if (_local12.vY > 0){ _local12.x = (_local12.x + ((_arg2.x - _local12.x) * _local15)); } else { _local12.x = (_local12.x - ((_arg2.x - _local12.source.x) * _local16)); }; if (_local12.life == 0){ _local7 = _local12.split; _local4 = 0; while (_local4 < _local7) { _local13 = createSpriteParticle(_arg1, _local11, _local12); _local9[_local9.length] = _local13; _arg2.count++; _local4++; }; _arg2.count--; if (!_arg2.count){ _arg2.isComplete = true; }; }; }; _local3++; }; } else { if (_arg2.alpha > 0){ _arg2.alpha = (_arg2.alpha - _arg1.spriteFadeSpeed); if (_arg2.alpha <= 0){ _arg2.alpha = 0; }; }; }; } public function updateEmerald(){ var _local1:Graphics; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; switch (emeraldState){ case 0: break; case 1: if (rouge.arm1.currentLabel == "endgive"){ emeraldState = 2; rouge.addChild(emerald); emerald.x = (rouge.arm1.x + 30); emerald.y = (rouge.arm1.y - 10); emerald.addEventListener(MouseEvent.MOUSE_DOWN, pickEmerald, false, 0, true); emeraldShine = new MovieClip(); emeraldShine.x = emerald.x; emeraldShine.y = emerald.y; rouge.addChildAt(emeraldShine, rouge.getChildIndex(emerald)); }; break; case 2: break; case 3: if (rouge.arm1.currentLabel == "endtake"){ rouge.arm1.gotoAndStop(1); emeraldState = 0; }; break; }; if (emeraldShine){ _local1 = emeraldShine.graphics; _local2 = (shineLife / EM_LIFE); _local3 = (EM_S_THICKNESS + (_local2 * (EM_E_THICKNESS - EM_S_THICKNESS))); _local4 = (EM_S_RADIUS + (_local2 * (EM_E_RADIUS - EM_S_RADIUS))); _local5 = (EM_S_ALPHA + (_local2 * (EM_E_ALPHA - EM_S_ALPHA))); _local1.clear(); _local1.lineStyle(_local3, 0xFFFFFF, _local5); _local1.drawCircle(0, 0, _local4); shineLife++; if (shineLife > EM_LIFE){ emeraldShine.parent.removeChild(emeraldShine); emeraldShine = null; }; }; } public function moveBalloon(_arg1:Event){ curBalloon.x = rouge.mouseX; curBalloon.y = rouge.mouseY; } public function updateBalloon(){ var _local1:int; var _local2:int; var _local3:int; switch (balloonState){ case 0: break; case 1: rouge.arm1.gotoAndPlay("inflate"); if (balloonTaken){ sayAndReact("Have another one.", "happy"); } else { sayAndReact("Alright!", "happy"); }; balloonState = 2; DEST_BODY_ANGLE = DEFAULT_BODY_ANGLE; break; case 2: if (rouge.arm1.currentLabel == "endinflate"){ rouge.addChildAt(balloon, rouge.getChildIndex(rouge.arm1)); balloon.x = (rouge.tube.marker.x + rouge.tube.x); balloon.y = (rouge.tube.marker.y + rouge.tube.y); balloon.gotoAndPlay(1); balloonState = 3; }; break; case 3: if (balloon.currentFrame == balloon.totalFrames){ balloon.stop(); balloon.buttonMode = true; balloon.addEventListener(MouseEvent.MOUSE_DOWN, takeBalloon, false, 0, true); balloonState = 4; }; break; case 4: break; case 5: if (rouge.arm1.currentLabel == "endrelease"){ rouge.arm1.gotoAndStop(1); balloonState = 0; balloonTaken = true; DEST_BODY_ANGLE = NaN; }; break; }; if (!slowmo){ _local2 = balloons.length; _local1 = 0; while (_local1 < _local2) { if (balloons[_local1].parent == rouge){ balloons[_local1].y = (balloons[_local1].y - 6); if (balloons[_local1].y < -(balloons[_local1].height)){ balloons[_local1].parent.removeChild(balloons[_local1]); balloons.splice(_local1, 1); _local1--; _local2--; }; }; _local1++; }; }; } public function createLightning(_arg1:Object, _arg2:Object, _arg3:Object){ var _local4:Array; var _local5:Array; var _local6:int; var _local7:int; var _local8:Array; var _local9:Number; var _local10:Object; var _local11:Number; var _local12:Number; var _local13:Number; _local4 = _arg1.ground; _local5 = []; _local7 = _local4.length; _local8 = [_arg2.x, _arg2.y]; _local5[_local5.length] = _local8; _local8.vX = (_local8.vY = 0); _local8 = [_arg3.x, _arg3.y]; _local5[_local5.length] = _local8; _local8.vX = (_local8.vY = 0); _local9 = _arg1.groundLightningProbability; _local11 = (GAUSS_RADIUS / _arg1.groundLightningRadius); _local6 = 0; while (_local6 < _local7) { _local10 = _local4[_local6]; if (_local10 == _arg3){ } else { _local13 = ((_local10.x - _arg3.x) * _local11); _local12 = (INV_SQRT_2PI * Math.exp(((_local13 * _local13) * -0.5))); if (Math.random() < (_local12 * _local9)){ _local8 = [_local10.x, _local10.y]; _local5[_local5.length] = _local8; _local8.vX = (_local8.vY = 0); }; }; _local6++; }; _arg1.lightning = {bolts:_local5, isComplete:false, alpha:1}; clearCharge(_arg1, _arg2); } public function openDoor(_arg1:Event){ if (!world.stable){ return; }; if (((balloon) || (balloonState))){ return; }; rouge.door.marker.removeEventListener(MouseEvent.MOUSE_DOWN, openDoor, false); switchDoorDirection(); stackSpeech("Huh... It looks like it's storming over the city", "observe"); DEST_BODY_ANGLE = (DEFAULT_BODY_ANGLE - (Math.PI * 0.02)); LIGHTNING_PHRASE_ID = 0; } public function seedPseudoRandom(_arg1:Object):Number{ var _local2:uint; var _local3:Number; _local2 = (_arg1.RANDOM_X ^ (_arg1.RANDOM_X >> 7)); _arg1.RANDOM_X = _arg1.RANDOM_Y; _arg1.RANDOM_Y = _arg1.RANDOM_Z; _arg1.RANDOM_Z = _arg1.RANDOM_W; _arg1.RANDOM_W = _arg1.RANDOM_V; _arg1.RANDOM_V = ((_arg1.RANDOM_V ^ (_arg1.RANDOM_V << 6)) ^ (_local2 ^ (_local2 << 13))); _local3 = (uint((((_arg1.RANDOM_Y + _arg1.RANDOM_Y) + 1) * _arg1.RANDOM_V)) / Number(uint.MAX_VALUE)); return (_local3); } public function updateCharges(_arg1:Object){ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Array; var _local7:Array; var _local8:Number; var _local9:Number; var _local10:Object; var _local11:Object; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; if (((_arg1.lightning) && (!(_arg1.lightning.isComplete)))){ return; }; _local6 = _arg1.clouds; _local7 = _arg1.ground; _local8 = _arg1.lightningThreshold; _local9 = _arg1.maxChargeIncrease; _local4 = _local6.length; _local5 = _local7.length; _local3 = 0; while (_local3 < _local5) { _local7[_local3].charge = (_local7[_local3].charge + (Math.random() * _local9)); _local3++; }; _local2 = 0; while (_local2 < _local4) { _local10 = _local6[_local2]; _local6[_local2].charge = (_local10.charge - (Math.random() * _local9)); _local12 = _local10.x; _local13 = _local10.y; _local14 = _local10.charge; _local3 = 0; while (_local3 < _local5) { (Math.random() * _local7.length); _local11 = _local7[_local3]; _local15 = (_local12 - _local11.x); _local16 = (_local13 - _local11.y); _local17 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local11.charge - _local14); if ((_local19 / _local17) >= _local8){ createLightning(_arg1, _local10, _local11); return; }; _local3++; }; _local2++; }; } public function drawClouds(_arg1:Object, _arg2:Graphics){ var _local3:Array; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:int; var _local8:int; var _local9:Matrix; var _local10:String; var _local11:Array; var _local12:Array; var _local13:Array; var _local14:Number; var _local15:Number; _local3 = _arg1.clouds; _local5 = _arg1.cloudParticleRadius; _local6 = (_local5 * 2); _local7 = _local3.length; _local9 = new Matrix(); _local10 = "radial"; _local11 = [8939110, 8934741]; _local12 = [0.5, 0]; _local13 = [0, 0xFF]; _local9.createGradientBox(_local6, _local6, 0, 0, 0); _local14 = (2 / (CLOUD_TOP - CLOUD_BOTTOM)); _local8 = 0; while (_local8 < _local7) { _local4 = _local3[_local8]; _local9.tx = _local4.x; _local9.ty = _local4.y; _local15 = ((_local4.y - CLOUD_BOTTOM) * _local14); if (_local15 < 0){ _local15 = 0; }; if (_local15 > 1){ _local15 = 1; }; _local11[0] = Color.interpolateColor(13399927, 3351091, _local15); _local11[1] = Color.interpolateColor(12281446, 3153968, _local15); _arg2.beginGradientFill(_local10, _local11, _local12, _local13, _local9); _arg2.drawCircle(_local4.x, _local4.y, _local5); _arg2.endFill(); _local8++; }; } public function updateSprites(_arg1:Object){ var _local2:int; var _local3:int; var _local4:Array; var _local5:Object; _local4 = _arg1.sprites; _local3 = _local4.length; _local2 = 0; while (_local2 < _local3) { _local5 = _arg1.sprites[_local2]; updateSprite(_arg1, _local5); if (((_local5.isComplete) && ((_local5.alpha <= 0)))){ _arg1.sprites.splice(_local2, 1); _local3--; _local2--; }; _local2++; }; } public function updateClouds(_arg1:Object){ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:Array; var _local8:Array; var _local9:Array; var _local10:Object; var _local11:Object; var _local12:Object; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Object; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Object; var _local34:int; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; if (_arg1.stable){ return; }; _local7 = _arg1.clouds; _local8 = _arg1.cloudSeeds; _local4 = _local7.length; _local5 = (_local4 - 1); _local2 = 0; while (_local2 < _local4) { _local12 = _local7[_local2]; _local7[_local2].fX = (_local12.fY = 0); _local2++; }; _local26 = _arg1.cloudHeight; _local27 = _arg1.cloudGravity; _local28 = _arg1.cloudFloatForce; _local2 = 0; while (_local2 < _local4) { _local12 = _local7[_local2]; _local10 = _local12.seed; _local9 = _local10.vortices; if (!_local9){ } else { _local6 = _local9.length; _local13 = _local12.x; _local14 = _local12.y; _local16 = 0; _local15 = _local16; _local3 = 0; while (_local3 < _local6) { _local11 = _local9[_local3]; _local20 = (_local13 - _local11.x); _local21 = (_local14 - _local11.y); _local38 = ((_local20 * _local20) + (_local21 * _local21)); if (_local38 > _local11.radius2){ } else { _local19 = _local11.spin; _local38 = (1 / Math.sqrt(_local38)); _local36 = Math.cos(_local11.spin); _local37 = Math.sin(_local19); _local15 = (_local15 + (((_local20 * _local36) - (_local21 * _local37)) - _local20)); _local16 = (_local16 + (((_local20 * _local37) + (_local21 * _local36)) - _local21)); }; _local3++; }; if (_local14 < _local26){ _local16 = (_local16 + _local27); } else { _local16 = (_local16 - _local28); }; _local12.fX = (_local12.fX + _local15); _local12.fY = (_local12.fY + _local16); _local12.v = (_local12.v - _local12.lifeDecay); }; _local2++; }; _local29 = _arg1.cloudRepulsionRadius; _local29 = (_arg1.cloudRepulsionRadius * _local29); _local30 = (GAUSS_RADIUS / _arg1.cloudRepulsionRadius); _local31 = (_arg1.cloudRepulsionForce * 0.5); if (_arg1.useRepulsion){ _local2 = 0; while (_local2 < _local5) { _local12 = _local7[_local2]; if (!_local12.v){ } else { _local13 = _local12.x; _local14 = _local12.y; _local3 = (_local2 + 1); while (_local3 < _local4) { _local33 = _local7[_local3]; if (!_local33.v){ } else { _local20 = (_local13 - _local33.x); _local21 = (_local14 - _local33.y); _local22 = ((_local20 * _local20) + (_local21 * _local21)); if (_local22 > _local29){ } else { _local23 = Math.sqrt(_local22); _local24 = (1 / _local23); _local39 = (_local23 * _local30); _local32 = ((INV_SQRT_2PI * Math.exp(((_local39 * _local39) * -0.5))) * _local31); _local15 = ((_local32 * _local20) * _local24); _local16 = ((_local32 * _local21) * _local24); _local12.fX = (_local12.fX + _local15); _local12.fY = (_local12.fY + _local16); _local33.fX = (_local33.fX - _local15); _local33.fY = (_local33.fY - _local16); }; }; _local3++; }; }; _local2++; }; }; _local34 = 0; _local35 = _arg1.cloudFriction; _local2 = 0; while (_local2 < _local4) { _local12 = _local7[_local2]; if (((!(_local12.v)) || ((_local12.v <= 0)))){ _local10 = _local12.seed; if (_local10.numParticles < _local10.maxParticles){ _local34++; }; } else { _local12.vX = (_local12.vX + _local12.fX); _local12.vY = (_local12.vY + _local12.fY); _local12.x = (_local12.x + (_local12.vX * _local12.v)); _local12.y = (_local12.y + (_local12.vY * _local12.v)); _local12.vX = (_local12.vX * _local35); _local12.vY = (_local12.vY * _local35); _local34++; }; _local2++; }; if (!_local34){ _local2 = 0; while (_local2 < _local4) { _local12 = _local7[_local2]; delete _local12.v; delete _local12.vX; delete _local12.vY; delete _local12.fX; delete _local12.fY; _local2++; }; _local4 = _local8.length; _local2 = 0; while (_local2 < _local4) { _local10 = _local8[_local2]; _local10.vortices.length = 0; delete _local10.vortices; _local2++; }; _arg1.stable = true; }; } public function worldFrame(_arg1:Event=null){ var _local2:int; var _local3:int; var _local4:Graphics; var _local5:Object; var _local6:int; var _local7:int; var _local8:Array; if (!world.stable){ _local2 = getTimer(); _local3 = ((0.8 * 1000) / stage.frameRate); while (!(world.stable)) { updateCloudSeeds(world); updateClouds(world); break; }; _local4 = CLOUD_CLIP.graphics; _local4.clear(); drawClouds(world, _local4); if (world.stable){ cloudsGenerated = true; CLOUD_CLIP.cacheAsBitmap = true; }; } else { if (!world.lightning){ updateCharges(world); if (world.lightning){ handleLightning(); }; } else { _local5 = world.lightning; while (((!(_local5.isComplete)) && (!(slowmo)))) { updateLightning(world); }; updateLightning(world); }; if (world.sprites.length){ _local8 = world.sprites; _local7 = _local8.length; _local6 = 0; while (_local6 < _local7) { _local5 = _local8[_local6]; while (((!(_local5.isComplete)) && (!(slowmo)))) { updateSprite(world, _local5); }; updateSprite(world, _local5); if (!slowmo){ updateSprite(world, _local5); updateSprite(world, _local5); }; if (((_local5.isComplete) && ((_local5.alpha <= 0)))){ world.sprites.splice(_local6, 1); _local7--; _local6--; }; _local6++; }; }; LIGHTNING_CLIP.graphics.clear(); drawLightning(world, LIGHTNING_CLIP.graphics); SPRITE_CLIP.graphics.clear(); drawSprites(world, SPRITE_CLIP.graphics); }; } public function rotate(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=0):Object{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local6 = (_arg2 - _arg4); _local7 = (_arg3 - _arg5); _local8 = Math.cos(_arg1); _local9 = Math.sin(_arg1); return ({x:((_arg4 + (_local6 * _local8)) - (_local7 * _local9)), y:((_arg5 + (_local6 * _local9)) + (_local7 * _local8))}); } public function clearCharge(_arg1:Object, _arg2:Object){ var _local3:Array; var _local4:Array; var _local5:int; var _local6:int; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local3 = _arg1.clouds; _local4 = _arg1.ground; _local5 = _local3.length; _local11 = _arg2.x; _local12 = _arg2.y; _local13 = (GAUSS_RADIUS / _arg1.clearChargeRadius); _local14 = INV_SQRT_2PI; _local15 = 0; _local6 = 0; while (_local6 < _local5) { _local16 = _local3[_local6].charge; _local15 = ((_local16)<_local15) ? _local16 : _local15; _local6++; }; _local15 = (-(_arg1.clearChargeMultiplier) * _local15); _local6 = 0; while (_local6 < _local5) { _local7 = (_local3[_local6].x - _local11); _local8 = (_local3[_local6].y - _local12); _local17 = (Math.sqrt(((_local7 * _local7) + (_local8 * _local8))) * _local13); _local18 = (INV_SQRT_2PI * Math.exp(((_local17 * _local17) * -0.5))); _local3[_local6].charge = (_local3[_local6].charge + ((_local15 * _local18) * _local14)); _local6++; }; _local5 = _local4.length; _local6 = 0; while (_local6 < _local5) { _local4[_local6].charge = 0; _local6++; }; } public function handleLightning(){ var _local1:Array; var _local2:int; var _local3:int; var _local4:Object; if ((((((((((rouge.door.currentFrame == rouge.door.totalFrames)) && (!(slowmo)))) && ((LIGHTNING_PHRASE_ID > -1)))) && ((LIGHTNING_PHRASE_ID < LIGHTNING_SPEECH.length)))) && (((!(speech.phrase)) || (!(speech.phrase.length)))))){ if (LIGHTNING_PHRASE_ID == 11){ unlockEmerald(); }; _local1 = LIGHTNING_SPEECH[LIGHTNING_PHRASE_ID++]; _local2 = _local1.length; if (_local2){ DEST_BODY_ANGLE = DEFAULT_BODY_ANGLE; }; _local3 = 0; while (_local3 < _local2) { _local4 = _local1[_local3]; stackSpeech(_local4.phrase, _local4.reaction); _local3++; }; }; } public function stackSpeech(_arg1:String, _arg2:String){ if (((speech.phrase) && (speech.phrase.length))){ SPEECH_LIST[SPEECH_LIST.length] = {phrase:_arg1, reaction:_arg2}; } else { sayAndReact(_arg1, _arg2); }; } public function endSpeech(_arg1:Event){ var _local2:Object; if (SPEECH_LIST.length){ _local2 = SPEECH_LIST.shift(); sayAndReact(_local2.phrase, _local2.reaction); } else { if (reacting){ expression.endReact(); reacting = false; if (((!(balloonState)) && (!(emeraldState)))){ DEST_BODY_ANGLE = NaN; }; }; }; } public function takeBalloon(_arg1:Event){ if (speech.speaking){ return; }; if (slowmo){ return; }; stage.addChild(balloon); balloon.x = (STAGE_WIDTH - 35); balloon.y = ((50 + 40) + (balloons.length * 50)); balloon.height = 50; balloon.scaleX = balloon.scaleY; sayAndReact("Here you go!", "nice"); balloonState = 5; rouge.arm1.gotoAndPlay("release"); balloon.removeEventListener(MouseEvent.MOUSE_DOWN, takeBalloon, false); balloon.addEventListener(MouseEvent.MOUSE_DOWN, pickBalloon, false, 0, true); balloons[balloons.length] = balloon; balloon = null; } public function activateEmerald(_arg1:Event){ slowmo = !(slowmo); glowClip.visible = slowmo; if (slowmo){ speech.textSpeed = 0; CAN_BLINK = expression.curState.canBlink; expression.curState.canBlink = false; } else { speech.textSpeed = DEFAULT_TEXT_SPEED; expression.curState.canBlink = CAN_BLINK; }; } public function createBalloon(){ var _local1:uint; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:ColorTransform; balloonState = 1; balloon = new Balloon(); balloon.gotoAndStop(1); _local1 = BALLOON_COLORS[int((Math.random() * BALLOON_COLORS.length))]; _local2 = (((_local1 >> 16) & 0xFF) / 0xFF); _local3 = (((_local1 >> 8) & 0xFF) / 0xFF); _local4 = ((_local1 & 0xFF) / 0xFF); _local5 = new ColorTransform(_local2, _local3, _local4); balloon.transform.colorTransform = _local5; } public function drawLightning(_arg1:Object, _arg2:Graphics){ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Object; var _local9:Array; var _local10:Array; if (!_arg1.lightning){ return; }; _local8 = _arg1.lightning; _local9 = _local8.bolts; _local6 = _local9.length; _arg2.lineStyle(1, 10092543, _local8.alpha); _local4 = 0; while (_local4 < _local6) { _local10 = _local9[_local4]; _local7 = _local10.length; _arg2.moveTo(_local10[0], _local10[1]); _local5 = 2; while (_local5 < _local7) { var _temp1 = _local5; _local5 = (_local5 + 1); var _temp2 = _local5; _local5 = (_local5 + 1); _arg2.lineTo(_local10[_temp1], _local10[_temp2]); }; _local4++; }; } public function setupAll(_arg1:Event){ INHIBITOR = false; DEST_BODY_ANGLE = NaN; stage.removeEventListener(MouseEvent.MOUSE_DOWN, setupAll); loadPattern(0); currentPattern = 1; rouge.door.marker.addEventListener(MouseEvent.MOUSE_DOWN, openDoor, false, 0, true); rouge.tank.buttonMode = true; rouge.head.buttonMode = true; rouge.addEventListener(MouseEvent.MOUSE_DOWN, clickThings); } public function clearClouds(_arg1:Object){ delete _arg1.clouds; delete _arg1.cloudSeeds; _arg1.clouds = []; _arg1.cloudSeeds = []; } public function updateAttached(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Matrix; _local1 = ((-(Math.PI) * 0.5) + (Math.sin(bodyPhase) * BODY_RANGE)); if (!isNaN(DEST_BODY_ANGLE)){ _local1 = DEST_BODY_ANGLE; }; _local2 = ((_local1 - BODY_ANGLE) * 0.2); _local3 = 0.002; if (_local2 < -(_local3)){ _local2 = -(_local3); }; if (_local2 > _local3){ _local2 = _local3; }; if (!slowmo){ BODY_ANGLE = (BODY_ANGLE + _local2); }; bodyPhase = (bodyPhase + BODY_SPEED); rouge.body.x = (BODY_FLOOR_X + (Math.cos(BODY_ANGLE) * BODY_FLOOR_DIST)); rouge.body.y = (BODY_FLOOR_Y + (Math.sin(BODY_ANGLE) * BODY_FLOOR_DIST)); Physics.updateAttached(ATTACH_LIST); if (!slowmo){ Physics.updateElastic(ELASTIC_LIST); }; _local4 = rouge.leg2.transform.matrix; _local4.b = ((LEG2_Y - rouge.leg2.y) / LEG2_WIDTH); _local4.c = ((LEG2_X - rouge.leg2.x) / LEG2_HEIGHT); rouge.leg2.transform.matrix = _local4; _local4 = rouge.leg1.transform.matrix; _local4.b = ((LEG2_Y - rouge.leg2.y) / LEG2_WIDTH); _local4.c = ((0.8 * (LEG2_X - rouge.leg2.x)) / LEG2_HEIGHT); rouge.leg1.transform.matrix = _local4; rouge.arm2.scaleX = (1 - ((rouge.arm2.x - ARM2_X) / ARM2_WIDTH)); } public function loadPattern(_arg1:int){ var _local2:Array; var _local3:int; var _local4:int; var _local5:Object; if ((((_arg1 >= 0)) && ((_arg1 < speechPatterns.length)))){ _local2 = speechPatterns[_arg1]; _local3 = _local2.length; _local4 = 0; while (_local4 < _local3) { _local5 = _local2[_local4]; stackSpeech(_local5.phrase, _local5.reaction); _local4++; }; }; } } }//package rouge_fla
Section 14
//mouth_25 (rouge_fla.mouth_25) package rouge_fla { import flash.display.*; public dynamic class mouth_25 extends MovieClip { public function mouth_25(){ addFrameScript(1, frame2, 3, frame4, 5, frame6, 7, frame8, 9, frame10, 11, frame12); } function frame10(){ this.gotoAndPlay(this.currentLabel); } function frame12(){ this.gotoAndPlay(this.currentLabel); } function frame6(){ this.gotoAndPlay(this.currentLabel); } function frame8(){ this.gotoAndPlay(this.currentLabel); } function frame4(){ this.gotoAndPlay(this.currentLabel); } function frame2(){ this.gotoAndPlay(this.currentLabel); } } }//package rouge_fla
Section 15
//rouge_1 (rouge_fla.rouge_1) package rouge_fla { import flash.display.*; public dynamic class rouge_1 extends MovieClip { public var leg1:MovieClip; public var leg2:MovieClip; public var belt:MovieClip; public var eye1:MovieClip; public var eye2:MovieClip; public var arm2:MovieClip; public var top:MovieClip; public var arm1:MovieClip; public var breast1:MovieClip; public var wing2:MovieClip; public var tube:MovieClip; public var breast2:MovieClip; public var wing1:MovieClip; public var body:MovieClip; public var bg2:MovieClip; public var door:MovieClip; public var bg1:MovieClip; public var box2:MovieClip; public var mouth:MovieClip; public var head:MovieClip; public var speech:MovieClip; public var tank:MovieClip; } }//package rouge_fla
Section 16
//speech_28 (rouge_fla.speech_28) package rouge_fla { import flash.display.*; import flash.text.*; public dynamic class speech_28 extends MovieClip { public var _txt:TextField; } }//package rouge_fla
Section 17
//tube_26 (rouge_fla.tube_26) package rouge_fla { import flash.display.*; public dynamic class tube_26 extends MovieClip { public var marker:MovieClip; } }//package rouge_fla
Section 18
//Balloon (Balloon) package { import flash.display.*; public dynamic class Balloon extends MovieClip { } }//package
Section 19
//Emerald (Emerald) package { import flash.display.*; public dynamic class Emerald extends MovieClip { } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClip {Emerald}Uses:1
Symbol 3 ShapeTweeningUsed by:6
Symbol 4 ShapeTweeningUsed by:6
Symbol 5 GraphicUsed by:6
Symbol 6 MovieClip {Balloon}Uses:3 4 5
Symbol 7 GraphicUsed by:10
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClipUses:8Used by:10
Symbol 10 MovieClip {rouge_fla.background2_2}Uses:7 9Used by:145
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClipUses:11Used by:145
Symbol 13 ShapeTweeningUsed by:22
Symbol 14 GraphicUsed by:22
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClipUses:15Used by:22 86
Symbol 17 GraphicUsed by:22
Symbol 18 GraphicUsed by:22
Symbol 19 ShapeTweeningUsed by:22
Symbol 20 ShapeTweeningUsed by:22
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClip {rouge_fla.door_5}Uses:13 14 16 17 18 19 20 21Used by:145
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClipUses:23Used by:28
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:25Used by:28
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {rouge_fla.head_7}Uses:24 26 27Used by:145
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClipUses:29Used by:145
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClipUses:31Used by:145
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:33Used by:145
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClipUses:35Used by:145
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClipUses:37Used by:145
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:145
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClipUses:41Used by:145
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:145
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:145
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:145
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClipUses:49Used by:145
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:145
Symbol 53 GraphicUsed by:65
Symbol 54 GraphicUsed by:65
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55Used by:65 75
Symbol 57 GraphicUsed by:65
Symbol 58 GraphicUsed by:65
Symbol 59 GraphicUsed by:65
Symbol 60 GraphicUsed by:65
Symbol 61 GraphicUsed by:65
Symbol 62 GraphicUsed by:65
Symbol 63 GraphicUsed by:65
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClip {rouge_fla.eye2_22}Uses:53 54 56 57 58 59 60 61 62 63 64Used by:145
Symbol 66 GraphicUsed by:75
Symbol 67 GraphicUsed by:75
Symbol 68 GraphicUsed by:75
Symbol 69 GraphicUsed by:75
Symbol 70 GraphicUsed by:75
Symbol 71 GraphicUsed by:75
Symbol 72 GraphicUsed by:75
Symbol 73 GraphicUsed by:75
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClip {rouge_fla.eye1_24}Uses:66 67 56 68 69 70 71 72 73 74Used by:145
Symbol 76 GraphicUsed by:84
Symbol 77 GraphicUsed by:84
Symbol 78 GraphicUsed by:84
Symbol 79 GraphicUsed by:84
Symbol 80 GraphicUsed by:84
Symbol 81 GraphicUsed by:84
Symbol 82 GraphicUsed by:84
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClip {rouge_fla.mouth_25}Uses:76 77 78 79 80 81 82 83Used by:145
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClip {rouge_fla.tube_26}Uses:85 16Used by:145
Symbol 87 GraphicUsed by:140
Symbol 88 ShapeTweeningUsed by:140
Symbol 89 ShapeTweeningUsed by:140
Symbol 90 ShapeTweeningUsed by:140
Symbol 91 ShapeTweeningUsed by:140
Symbol 92 ShapeTweeningUsed by:140
Symbol 93 ShapeTweeningUsed by:140
Symbol 94 ShapeTweeningUsed by:140
Symbol 95 ShapeTweeningUsed by:140
Symbol 96 ShapeTweeningUsed by:140
Symbol 97 ShapeTweeningUsed by:140
Symbol 98 GraphicUsed by:140
Symbol 99 ShapeTweeningUsed by:140
Symbol 100 ShapeTweeningUsed by:140
Symbol 101 ShapeTweeningUsed by:140
Symbol 102 ShapeTweeningUsed by:140
Symbol 103 ShapeTweeningUsed by:140
Symbol 104 ShapeTweeningUsed by:140
Symbol 105 ShapeTweeningUsed by:140
Symbol 106 ShapeTweeningUsed by:140
Symbol 107 ShapeTweeningUsed by:140
Symbol 108 ShapeTweeningUsed by:140
Symbol 109 GraphicUsed by:140
Symbol 110 ShapeTweeningUsed by:140
Symbol 111 ShapeTweeningUsed by:140
Symbol 112 ShapeTweeningUsed by:140
Symbol 113 ShapeTweeningUsed by:140
Symbol 114 ShapeTweeningUsed by:140
Symbol 115 ShapeTweeningUsed by:140
Symbol 116 ShapeTweeningUsed by:140
Symbol 117 ShapeTweeningUsed by:140
Symbol 118 ShapeTweeningUsed by:140
Symbol 119 GraphicUsed by:140
Symbol 120 GraphicUsed by:140
Symbol 121 ShapeTweeningUsed by:140
Symbol 122 ShapeTweeningUsed by:140
Symbol 123 ShapeTweeningUsed by:140
Symbol 124 ShapeTweeningUsed by:140
Symbol 125 GraphicUsed by:140
Symbol 126 ShapeTweeningUsed by:140
Symbol 127 ShapeTweeningUsed by:140
Symbol 128 ShapeTweeningUsed by:140
Symbol 129 ShapeTweeningUsed by:140
Symbol 130 ShapeTweeningUsed by:140
Symbol 131 GraphicUsed by:140
Symbol 132 ShapeTweeningUsed by:140
Symbol 133 ShapeTweeningUsed by:140
Symbol 134 ShapeTweeningUsed by:140
Symbol 135 ShapeTweeningUsed by:140
Symbol 136 ShapeTweeningUsed by:140
Symbol 137 ShapeTweeningUsed by:140
Symbol 138 ShapeTweeningUsed by:140
Symbol 139 ShapeTweeningUsed by:140
Symbol 140 MovieClip {rouge_fla.arm1_27}Uses:87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139Used by:145
Symbol 141 GraphicUsed by:144
Symbol 142 FontUsed by:143
Symbol 143 EditableTextUses:142Used by:144
Symbol 144 MovieClip {rouge_fla.speech_28}Uses:141 143Used by:145
Symbol 145 MovieClip {rouge_fla.rouge_1}Uses:10 12 22 28 30 32 34 36 38 40 42 44 46 48 50 52 65 75 84 86 140 144Used by:Timeline
Symbol 146 FontUsed by:147
Symbol 147 TextUses:146Used by:Timeline

Instance Names

"rouge"Frame 1Symbol 145 MovieClip {rouge_fla.rouge_1}
"city"Symbol 10 MovieClip {rouge_fla.background2_2} Frame 1Symbol 9 MovieClip
"marker"Symbol 22 MovieClip {rouge_fla.door_5} Frame 1Symbol 16 MovieClip
"ear1"Symbol 28 MovieClip {rouge_fla.head_7} Frame 1Symbol 24 MovieClip
"ear2"Symbol 28 MovieClip {rouge_fla.head_7} Frame 1Symbol 26 MovieClip
"pupil"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 1Symbol 56 MovieClip
"pupil"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 1Symbol 56 MovieClip
"marker"Symbol 86 MovieClip {rouge_fla.tube_26} Frame 1Symbol 16 MovieClip
"_txt"Symbol 144 MovieClip {rouge_fla.speech_28} Frame 1Symbol 143 EditableText
"bg2"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 10 MovieClip {rouge_fla.background2_2}
"bg1"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 12 MovieClip
"door"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 22 MovieClip {rouge_fla.door_5}
"head"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 28 MovieClip {rouge_fla.head_7}
"wing2"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 30 MovieClip
"wing1"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 32 MovieClip
"tank"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 34 MovieClip
"box2"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 36 MovieClip
"arm2"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 38 MovieClip
"leg2"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 40 MovieClip
"body"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 42 MovieClip
"leg1"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 44 MovieClip
"belt"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 46 MovieClip
"breast2"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 48 MovieClip
"breast1"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 50 MovieClip
"top"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 52 MovieClip
"eye2"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 65 MovieClip {rouge_fla.eye2_22}
"eye1"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 75 MovieClip {rouge_fla.eye1_24}
"mouth"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 84 MovieClip {rouge_fla.mouth_25}
"tube"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 86 MovieClip {rouge_fla.tube_26}
"arm1"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 140 MovieClip {rouge_fla.arm1_27}
"speech"Symbol 145 MovieClip {rouge_fla.rouge_1} Frame 1Symbol 144 MovieClip {rouge_fla.speech_28}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"open"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 1
"closed"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 3
"small"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 5
"small2"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 7
"medium"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 9
"big"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 11
"blink"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 20
"endblink"Symbol 65 MovieClip {rouge_fla.eye2_22} Frame 24
"open"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 1
"closed"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 3
"small"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 5
"small2"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 7
"medium"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 9
"big"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 11
"blink"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 20
"endblink"Symbol 75 MovieClip {rouge_fla.eye1_24} Frame 24
"smile"Symbol 84 MovieClip {rouge_fla.mouth_25} Frame 1
"happy"Symbol 84 MovieClip {rouge_fla.mouth_25} Frame 3
"teeth"Symbol 84 MovieClip {rouge_fla.mouth_25} Frame 5
"small"Symbol 84 MovieClip {rouge_fla.mouth_25} Frame 7
"open"Symbol 84 MovieClip {rouge_fla.mouth_25} Frame 9
"open2"Symbol 84 MovieClip {rouge_fla.mouth_25} Frame 11
"down"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 1
"inflate"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 10
"endinflate"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 21
"release"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 25
"endrelease"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 37
"give"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 40
"endgive"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 49
"take"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 55
"endtake"Symbol 140 MovieClip {rouge_fla.arm1_27} Frame 64




http://swfchan.com/37/180662/info.shtml
Created: 16/10 -2018 15:00:17 Last modified: 16/10 -2018 15:00:17 Server time: 03/05 -2024 11:55:36