Section 1
//WorkinTweener (com.workinman.lib.display.tweener.WorkinTweener)
package com.workinman.lib.display.tweener {
import com.workinman.lib.math.*;
import flash.events.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
public class WorkinTweener extends EventDispatcher {
public static const TWEEN_GLOW:String = "glow";
public static const TWEEN_SHADOW:String = "shadow";
public static const TWEEN_SCALE:String = "scale";
public static const TWEEN_POS:String = "pos";
public static const TWEEN_IDLE:String = "idle";
public static const TWEEN_ALPHA:String = "fade";
public static const TWEEN_POS_3D:String = "pos3d";
public static const TWEEN_ROTATE:String = "rotate";
public static const TWEEN_FRAME:String = "frame";
public static const TWEEN_BLUR:String = "blur";
public static const ROOM:String = "workinTweenerRoom";
public static const TWEEN_PROP:String = "prop";
public static const TWEEN_COLOR:String = "color";
private static var _loop:Number;
private static var _activeScopes:Array;
private static var _isUpdating:Boolean;
private static var _isPaused:Boolean;
public static function stopAllTweens():void{
if (_activeScopes == null){
return;
};
_loop = _activeScopes.length;
while (_loop--) {
_activeScopes[_loop].stopAllTweens();
};
_clearTweens();
}
public static function get isUpdating():Boolean{
return (_isUpdating);
}
public static function pauseAllTweens():void{
if (_isPaused){
return;
};
_stopInterval();
_isPaused = true;
}
public static function completeScope(_arg1:Object):void{
_loop = _findScope(_arg1);
if (_loop >= 0){
_activeScopes[_loop].completeAllTweens();
};
}
private static function _findScope(_arg1:Object):Number{
var _local2:Number;
if (_activeScopes == null){
return (-1);
};
_local2 = _activeScopes.length;
while (_local2--) {
if (_activeScopes[_local2] == _arg1){
};
return (_local2);
};
return (-1);
}
private static function _cleanData(_arg1:Object):void{
if (((!(_arg1.hasOwnProperty("start"))) || (isNaN(_arg1.start)))){
_arg1.start = WorkinTweenInstance.INVALID_IN_VALUE;
};
if (!_arg1.hasOwnProperty("ease")){
_arg1.ease = PennerManager.EASE_LINEAR;
};
if (((!(_arg1.hasOwnProperty("delay"))) || (isNaN(_arg1.delay)))){
_arg1.delay = 0;
};
}
public static function removeScope(_arg1:Object):void{
_loop = _findScope(_arg1);
if (_loop >= 0){
_activeScopes[_loop].cleanUp();
_activeScopes.splice(_loop, 1);
};
}
public static function completeAllTweens():void{
if (_activeScopes == null){
return;
};
_loop = _activeScopes.length;
while (_loop--) {
_activeScopes[_loop].completeAllTweens();
};
_clearTweens();
}
private static function _validateData(_arg1:String, _arg2:Object):Boolean{
if (!_arg2.hasOwnProperty("dur")){
return (false);
};
switch (_arg1){
case TWEEN_PROP:
if (!_arg2.hasOwnProperty("prop")){
return (false);
};
break;
case TWEEN_POS:
if (!((_arg2.hasOwnProperty("x")) && (_arg2.hasOwnProperty("y")))){
return (false);
};
return (true);
case TWEEN_POS_3D:
if (!((((_arg2.hasOwnProperty("x")) && (_arg2.hasOwnProperty("y")))) && (_arg2.hasOwnProperty("z")))){
return (false);
};
return (true);
case TWEEN_SCALE:
if (!((_arg2.hasOwnProperty("scaleX")) && (_arg2.hasOwnProperty("scaleY")))){
return (false);
};
return (true);
};
if (!_arg2.hasOwnProperty("end")){
return (false);
};
return (true);
}
public static function cleanUp():void{
_stopInterval();
_loop = _activeScopes.length;
while (_loop--) {
_activeScopes[_loop].cleanUp();
_activeScopes[_loop] = null;
};
_activeScopes = [];
}
private static function _stopInterval():void{
if (!_isUpdating){
return;
};
_isUpdating = false;
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _updateTweens);
}
public static function addTween(_arg1:Object, _arg2:String, _arg3:Object):void{
if (_activeScopes == null){
_activeScopes = [];
};
if (_validateData(_arg2, _arg3)){
_cleanData(_arg3);
} else {
return;
};
_loop = _activeScopes.length;
while (_loop--) {
if (_activeScopes[_loop].scope == _arg1){
if (_activeScopes[_loop].testTweenExists(_arg2, _arg3)){
_activeScopes[_loop].replaceTween(_arg2, _arg3);
} else {
_activeScopes[_loop].addTween(_arg2, _arg3);
};
return;
};
};
_activeScopes.push(new WorkinTweenScope(_arg1, _arg2, _arg3));
if (!_isUpdating){
_startInterval();
};
}
private static function _clearTweens():void{
if (_activeScopes == null){
return;
};
_loop = _activeScopes.length;
while (_loop--) {
_activeScopes[_loop].cleanUp();
_activeScopes[_loop] = null;
};
_activeScopes = [];
_isPaused = false;
_stopInterval();
}
private static function _startInterval():void{
if (_isUpdating){
return;
};
if (_activeScopes.length == 0){
return;
};
_isUpdating = true;
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _updateTweens);
}
public static function unpauseScope(_arg1:Object):void{
_loop = _findScope(_arg1);
if (_loop >= 0){
_activeScopes[_loop].unpause();
};
}
private static function _updateTweens(_arg1:EUpdate):void{
_loop = _activeScopes.length;
while (_loop--) {
_activeScopes[_loop].updateTweens(_arg1.dt);
if (_activeScopes[_loop].doDelete){
_activeScopes[_loop].cleanUp();
_activeScopes.splice(_loop, 1);
};
};
if (_activeScopes.length == 0){
_stopInterval();
};
}
public static function stopScope(_arg1:Object):void{
_loop = _findScope(_arg1);
if (_loop >= 0){
_activeScopes[_loop].stopAllTweens();
};
}
public static function unpauseAllTweens():void{
if (!_isPaused){
return;
};
_startInterval();
_isPaused = false;
}
public static function pauseScope(_arg1:Object):void{
_loop = _findScope(_arg1);
if (_loop >= 0){
_activeScopes[_loop].pause();
};
}
}
}//package com.workinman.lib.display.tweener
Section 2
//WorkinTweenInstance (com.workinman.lib.display.tweener.WorkinTweenInstance)
package com.workinman.lib.display.tweener {
import com.workinman.lib.math.*;
import flash.events.*;
public class WorkinTweenInstance extends EventDispatcher {
protected var _delay:Number;
protected var _useCurrentIn:Boolean;
protected var _out:Number;
protected var _isComplete:Boolean;
protected var _formula:Function;
protected var _time:Number;
protected var _current:Number;
protected var _isError:Boolean;
protected var _prop:String;
protected var _dur:Number;
protected var _in:Number;
protected var _change:Number;
protected var _scope:Object;
protected var _ease:String;
public static const INVALID_IN_VALUE:Number = -10000.85412;
public static var ERROR:String = "onTweenError";
public static var COMPLETE:String = "onTweenComplete";
public function WorkinTweenInstance(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Number, _arg7:Object){
_scope = _arg7;
_prop = _arg1;
_dur = _arg4;
_delay = _arg6;
if (_arg2 == INVALID_IN_VALUE){
_useCurrentIn = true;
} else {
_useCurrentIn = false;
};
_in = _arg2;
_out = _arg3;
_resetIn();
_ease = _arg5;
_formula = PennerManager.getEaseFunction(_ease);
_time = 0;
_isComplete = false;
_isError = false;
}
public function get isComplete():Boolean{
return (_isComplete);
}
public function get dur():Number{
return (_dur);
}
private function _resetIn():void{
if (_useCurrentIn){
_in = _scope[_prop];
};
_change = (_out - _in);
}
public function get doDelete():Boolean{
return ((((_delay <= 0)) && (((_isComplete) || (_isError)))));
}
protected function _onError():void{
_isError = true;
dispatchEvent(new Event(ERROR));
}
public function get isRunning():Boolean{
return ((((_delay <= 0)) && (!(((_isComplete) || (_isError))))));
}
public function complete():void{
_onComplete(false);
}
public function update(_arg1:Number):void{
if (_delay > 0){
_delay = (_delay - _arg1);
if (_delay < 0){
_arg1 = Math.abs(_delay);
_resetIn();
} else {
return;
};
};
_time = (_time + _arg1);
if (_time > _dur){
_time = _dur;
};
_current = _formula(_in, _change, _time, _dur);
if (_time == _dur){
complete();
};
}
public function cleanUp():void{
_formula = null;
_scope = null;
}
protected function _onComplete(_arg1:Boolean=true):void{
_isComplete = true;
_current = _out;
if (_arg1){
dispatchEvent(new Event(COMPLETE));
};
}
public function get prop():String{
return (_prop);
}
public function get current():Number{
return (_current);
}
public function get isError():Boolean{
return (_isError);
}
}
}//package com.workinman.lib.display.tweener
Section 3
//WorkinTweenScope (com.workinman.lib.display.tweener.WorkinTweenScope)
package com.workinman.lib.display.tweener {
public class WorkinTweenScope {
private var _loop:Number;
private var _tweens:Array;
private var _scope:Object;
private var _isPaused:Boolean;
public function WorkinTweenScope(_arg1:Object, _arg2:String, _arg3:Object){
_tweens = [];
_scope = _arg1;
_isPaused = false;
addTween(_arg2, _arg3);
}
public function cleanUp():void{
stopAllTweens();
_scope = null;
}
public function addTween(_arg1:String, _arg2:Object):void{
if (!_validateProperty(_arg1, _arg2)){
return;
};
_generateNewTween(_arg1, _arg2);
}
public function updateTweens(_arg1:Number):void{
if (_isPaused){
return;
};
_loop = _tweens.length;
while (_loop--) {
_tweens[_loop].update(_arg1);
_scope[_tweens[_loop].prop] = _tweens[_loop].current;
if (_tweens[_loop].doDelete){
_tweens[_loop].cleanUp();
_tweens.splice(_loop, 1);
};
};
}
public function get scope():Object{
return (_scope);
}
public function get doDelete():Boolean{
return ((_tweens.length == 0));
}
public function replaceTween(_arg1:String, _arg2:Object):void{
if (!_validateProperty(_arg1, _arg2)){
return;
};
testTweenExists(_arg1, _arg2);
_tweens[_loop].cleanUp();
_tweens.splice(_loop, 1);
_generateNewTween(_arg1, _arg2);
}
private function _generateNewTween(_arg1:String, _arg2:Object):void{
var _local3:Array;
_local3 = _getTweenProperties(_arg1, _arg2);
_loop = _local3.length;
switch (_arg1){
case WorkinTweener.TWEEN_POS:
case WorkinTweener.TWEEN_POS_3D:
while (_loop--) {
_tweens.push(new WorkinTweenInstance(_local3[_loop], WorkinTweenInstance.INVALID_IN_VALUE, _arg2[_local3[_loop]], _arg2.dur, _arg2.ease, _arg2.delay, _scope));
};
return;
case WorkinTweener.TWEEN_SCALE:
while (_loop--) {
_tweens.push(new WorkinTweenInstance(_local3[_loop], WorkinTweenInstance.INVALID_IN_VALUE, _arg2[_local3[_loop]], _arg2.dur, _arg2.ease, _arg2.delay, _scope));
};
return;
case WorkinTweener.TWEEN_BLUR:
case WorkinTweener.TWEEN_SHADOW:
case WorkinTweener.TWEEN_GLOW:
default:
while (_loop--) {
_tweens.push(new WorkinTweenInstance(_local3[_loop], _arg2.start, _arg2.end, _arg2.dur, _arg2.ease, _arg2.delay, _scope));
};
break;
};
}
private function _getTweenProperties(_arg1:String, _arg2:Object):Array{
switch (_arg1){
case WorkinTweener.TWEEN_PROP:
return ([_arg2.prop]);
case WorkinTweener.TWEEN_FRAME:
return (["currentFrame"]);
case WorkinTweener.TWEEN_POS:
return (["x", "y"]);
case WorkinTweener.TWEEN_POS_3D:
return (["x", "y", "z"]);
case WorkinTweener.TWEEN_SCALE:
return (["scaleX", "scaleY"]);
case WorkinTweener.TWEEN_ALPHA:
return (["alpha"]);
case WorkinTweener.TWEEN_ROTATE:
return (["rotation"]);
case WorkinTweener.TWEEN_COLOR:
return (["colorTransform"]);
case WorkinTweener.TWEEN_BLUR:
case WorkinTweener.TWEEN_GLOW:
case WorkinTweener.TWEEN_SHADOW:
return (["filters"]);
case WorkinTweener.TWEEN_IDLE:
default:
return ([]);
};
}
public function stopAllTweens():void{
_loop = _tweens.length;
while (_loop--) {
_tweens[_loop].cleanUp();
try {
_scope.onTweensComplete();
} catch(pError:Error) {
};
};
_tweens = [];
}
public function completeAllTweens():void{
_loop = _tweens.length;
while (_loop--) {
_tweens[_loop].finish();
_scope[_tweens[_loop].prop] = _tweens[_loop].current;
_tweens[_loop].cleanUp();
try {
_scope.onTweensComplete();
} catch(pError:Error) {
};
};
_tweens = [];
}
private function _validateProperty(_arg1:String, _arg2:Object):Boolean{
var _local3:Array;
_local3 = _getTweenProperties(_arg1, _arg2);
_loop = _local3.length;
while (_loop--) {
if (!_scope.hasOwnProperty(_local3[_loop])){
return (false);
};
};
return (true);
}
public function testTweenExists(_arg1:String, _arg2:Object):Boolean{
_loop = _tweens.length;
while (_loop--) {
if (_tweens[_loop].prop == _arg1){
if (((((!(_tweens[_loop].complete)) && (!(_tweens[_loop].error)))) && (((_tweens[_loop].delay + _tweens[_loop].dur) <= _arg2.delay)))){
return (true);
};
};
};
return (false);
}
public function pause():void{
_isPaused = true;
}
public function unpause():void{
_isPaused = false;
}
}
}//package com.workinman.lib.display.tweener
Section 4
//TextCounter (com.workinman.lib.display.TextCounter)
package com.workinman.lib.display {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.text.*;
public class TextCounter extends MovieClip {
protected const _DEF_COUNT_RATE:Number = 600;
protected var _countRate:Number;
protected var _isPercent:Boolean;
protected var _isCounting:Boolean;
public var txt:TextField;
protected var _value:Number;
protected var _targetValue:Number;
public static const COMPLETE:String = "onComplete";
public function TextCounter(){
super();
addEventListener(Event.REMOVED_FROM_STAGE, _onRemove);
_isPercent = false;
_isCounting = false;
_countRate = _DEF_COUNT_RATE;
if ((((txt.text == null)) || ((txt.text == undefined)))){
_value = 0;
} else {
try {
_value = Number(txt.text);
} catch(pError:Error) {
_value = (_targetValue = 0);
return;
};
if (isNaN(_value)){
_value = (_targetValue = 0);
};
};
_targetValue = _value;
}
protected function _count(_arg1:EUpdate):void{
if (_value < _targetValue){
_value = (_value + Math.round((_countRate * _arg1.dt)));
if (_value >= _targetValue){
_value = _targetValue;
_stopCount();
};
} else {
if (_value > _targetValue){
_value = (_value - Math.round((_countRate * _arg1.dt)));
if (_value <= _targetValue){
_value = _targetValue;
_stopCount();
};
};
};
txt.text = (String(_value) + (_isPercent) ? "%" : "");
if (!_isCounting){
dispatchEvent(new Event(COMPLETE));
};
}
public function set countRate(_arg1:Number){
_countRate = _arg1;
}
public function get text():String{
return (txt.text);
}
public function set text(_arg1:String):void{
var pValue = _arg1;
try {
_targetValue = (_value = Number(pValue));
} catch(pError:Error) {
_targetValue = (_value = 0);
return;
};
txt.text = (pValue + (_isPercent) ? "%" : "");
}
public function set isPercent(_arg1:Boolean){
_isPercent = _arg1;
}
protected function _startCount():void{
_isCounting = true;
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _count);
}
public function to(_arg1:Number):void{
_targetValue = _arg1;
txt.text = (String(_value) + (_isPercent) ? "%" : "");
if (_targetValue != _value){
_startCount();
} else {
dispatchEvent(new Event(COMPLETE));
};
}
protected function _onRemove(_arg1:Event):void{
if (_isCounting){
_stopCount();
};
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemove);
}
protected function _stopCount():void{
_isCounting = false;
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _count);
}
}
}//package com.workinman.lib.display
Section 5
//WorkinButton (com.workinman.lib.display.WorkinButton)
package com.workinman.lib.display {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
public class WorkinButton extends WorkinMovieClip {
protected var _isDown:Boolean;
protected var _hasUpAnimation:Boolean;
protected var _isEnabled:Boolean;
protected var _isDrawn:Boolean;
public static var OVER:String = "workinBtnOver";
public static var DOWN:String = "workinBtnDown";
public static var UP:String = "workinBtnUp";
public static var OUT:String = "workinBtnOut";
public static var CLICK:String = "workinBtnClick";
public function WorkinButton(){
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
_isDown = false;
_isDrawn = ((stage == null)) ? false : true;
_hasUpAnimation = ((totalFrames > 3)) ? true : false;
_generateHitBox();
enable();
}
protected function _onRemoved(_arg1:Event):void{
if (_isDown){
stage.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
};
_removeEventListeners();
_isDrawn = false;
}
protected function get _CUSTOM_HIT_BOX():Point{
return (new Point(0, 0));
}
private function _onDownEvent(_arg1:MouseEvent):void{
_onDown();
}
protected function _onDown():void{
_isDown = true;
gotoAndStop(3);
if (!_isDrawn){
return;
};
stage.addEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
_dispatch(DOWN);
}
private function _onUpEvent(_arg1:MouseEvent):void{
_onUp();
}
private function _onOutEvent(_arg1:MouseEvent):void{
_onOut();
}
protected function _click():void{
_dispatch(CLICK);
}
protected function _onOver():void{
if (_isDown){
gotoAndStop(3);
} else {
gotoAndStop(2);
};
_dispatch(OVER);
}
private function _testMouseOver():Boolean{
if (!_isDrawn){
return (false);
};
if (hitTestPoint(stage.mouseX, stage.mouseY, true)){
return (true);
};
return (false);
}
protected function get _CREATE_HIT_BOX():Boolean{
return (true);
}
override public function cleanUp():void{
super.cleanUp();
disable();
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
_removeEventListeners();
}
public function disable():void{
buttonMode = false;
useHandCursor = false;
mouseEnabled = false;
_isEnabled = false;
gotoAndStop(_DISABLE_FRAME);
}
protected function get _DISABLE_FRAME():Number{
return (1);
}
protected function _generateHitBox():void{
var _local1:Sprite;
if (!_CREATE_HIT_BOX){
return;
};
_local1 = new Sprite();
_local1.graphics.beginFill(0xFF0000, 0);
if ((((_CUSTOM_HIT_BOX.x == 0)) || ((_CUSTOM_HIT_BOX.y == 0)))){
_local1.graphics.moveTo(0, 0);
_local1.graphics.lineTo(width, 0);
_local1.graphics.lineTo(width, height);
_local1.graphics.lineTo(0, height);
_local1.graphics.lineTo(0, 0);
} else {
_local1.graphics.moveTo(0, 0);
_local1.graphics.lineTo(_CUSTOM_HIT_BOX.x, 0);
_local1.graphics.lineTo(_CUSTOM_HIT_BOX.x, _CUSTOM_HIT_BOX.y);
_local1.graphics.lineTo(0, _CUSTOM_HIT_BOX.y);
_local1.graphics.lineTo(0, 0);
};
addChild(_local1);
}
private function _addEventListeners():void{
addEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
addEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
addEventListener(MouseEvent.MOUSE_DOWN, _onDownEvent);
}
private function _onOverEvent(_arg1:MouseEvent):void{
_onOver();
}
private function _removeEventListeners():void{
removeEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
removeEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
removeEventListener(MouseEvent.MOUSE_DOWN, _onDownEvent);
}
public function enable():void{
buttonMode = true;
mouseEnabled = true;
mouseChildren = false;
useHandCursor = true;
_isEnabled = true;
if (!_isDrawn){
gotoAndStop(1);
} else {
if (_testMouseOver()){
gotoAndStop(2);
} else {
gotoAndStop(1);
};
};
}
protected function _onUp():void{
if (_isDown){
stage.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
_isDown = false;
_dispatch(UP);
if (_testMouseOver()){
gotoAndStop(2);
_click();
} else {
gotoAndStop(4);
};
};
}
protected function _onDrawn(_arg1:Event):void{
_isDrawn = true;
_addEventListeners();
}
protected function _dispatch(_arg1:String){
if (!_DO_DISPATCH){
return;
};
dispatchEvent(new Event(_arg1));
}
protected function _onOut():void{
if (_isDown){
gotoAndStop(3);
} else {
gotoAndStop((_hasUpAnimation) ? 4 : 1);
};
_dispatch(OUT);
}
protected function get _DO_DISPATCH():Boolean{
return (true);
}
}
}//package com.workinman.lib.display
Section 6
//WorkinMovieClip (com.workinman.lib.display.WorkinMovieClip)
package com.workinman.lib.display {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.geom.*;
import com.workinman.lib.display.tweener.*;
public class WorkinMovieClip extends MovieClip {
protected var _trackOutFrame:Number;
protected var _isTracking:Boolean;
protected var _trackDelayTimer:Number;
public static var COMPLETE_TRACK:String = "onWMCCompleteTracking";
public static var COMPLETE_TWEEN:String = "onWMCTweensComplete";
public static var STOP_TRACK:String = "onWMCStopTracking";
public function completeTweens():void{
WorkinTweener.completeScope(this);
}
override public function stop():void{
if (_isTracking){
stopTrack();
};
super.stop();
}
public function frameTween(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0, _arg6:MovieClip=null):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_FRAME, {start:_arg1, end:_arg2, dur:_arg3, ease:_arg4, delay:_arg5});
}
public function moveBy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_POS, {x:(x + _arg1), y:(y + _arg2), dur:_arg3, ease:_arg4, delay:_arg5});
}
public function fadeBy(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
alphaBy(_arg1, _arg2, _arg3, _arg4);
}
public function rotateSet(_arg1:Number):void{
rotation = _arg1;
}
public function rotateBy(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_ROTATE, {end:_arg1, dur:_arg2, ease:_arg3, delay:_arg4, by:true});
}
public function fadeTo(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
alphaTo(_arg1, _arg2, _arg3, _arg4);
}
public function colorBy(_arg1:uint, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function pauseTween():void{
WorkinTweener.pauseScope(this);
}
public function blurBy(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function shadowSet(_arg1:Object, _arg2:Number=0):void{
}
public function moveTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_POS, {x:_arg1, y:_arg2, dur:_arg3, ease:_arg4, delay:_arg5});
}
public function clearTweens():void{
WorkinTweener.removeScope(this);
}
public function trackPlay(_arg1:Object, _arg2:Number, _arg3:Number=0):void{
if (_isTracking){
stopTrack();
};
_trackDelayTimer = _arg3;
if (_trackDelayTimer > 0){
gotoAndStop(_arg1);
} else {
gotoAndPlay(_arg1);
};
_isTracking = true;
_trackOutFrame = _arg2;
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _onTrack, false, 0, true);
}
public function shadowOut(_arg1:Number=1, _arg2:String="linear", _arg3:Number=0):void{
}
public function rotateTo(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_ROTATE, {end:_arg1, dur:_arg2, ease:_arg3, delay:_arg4, by:false});
}
public function alphaSet(_arg1:Number):void{
alpha = _arg1;
}
public function propTo(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_PROP, {end:_arg1, dur:_arg2, ease:_arg3, delay:_arg4});
}
public function blurInit(_arg1:Number=0):void{
}
public function colorTo(_arg1:uint, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function scaleBy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_SCALE, {scaleX:(scaleX + _arg1), scaleY:(scaleY + _arg2), dur:_arg3, ease:_arg4, delay:_arg5});
}
public function glowInit(_arg1:Number=0):void{
}
public function shadowInit(_arg1:Number=0):void{
}
public function stopTrack():void{
_clearTrack();
dispatchEvent(new Event(STOP_TRACK));
}
public function glowRemove(_arg1:Number=0):void{
}
public function unpauseTween():void{
WorkinTweener.unpauseScope(this);
}
public function blurOut(_arg1:Number=1, _arg2:String="linear", _arg3:Number=0):void{
}
public function addTween(_arg1:String, _arg2:Object):void{
WorkinTweener.addTween(this, _arg1, _arg2);
}
public function blurTo(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
protected function _onTrack(_arg1:EUpdate):void{
if (_trackDelayTimer > 0){
_trackDelayTimer = (_trackDelayTimer - _arg1.dt);
if (_trackDelayTimer <= 0){
play();
};
};
if (currentFrame >= _trackOutFrame){
_completeTrack();
};
}
public function fadeSet(_arg1:Number):void{
alphaSet(_arg1);
}
public function blurSet(_arg1:Object, _arg2:Number=0):void{
}
public function posSet(_arg1:Number, _arg2:Number):void{
x = _arg1;
y = _arg2;
}
public function alphaTo(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_ALPHA, {end:_arg1, dur:_arg2, ease:_arg3, delay:_arg4});
}
public function glowSet(_arg1:Object, _arg2:Number=0):void{
}
override public function gotoAndStop(_arg1:Object, _arg2:String=null):void{
if (_isTracking){
stopTrack();
};
super.gotoAndStop(_arg1, _arg2);
}
public function shadowBy(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function onTweensComplete():void{
dispatchEvent(new Event(COMPLETE_TWEEN));
_tweenComplete();
}
public function glowOut(_arg1:Number=1, _arg2:String="linear", _arg3:Number=0, _arg4:uint=0):void{
}
protected function _completeTrack():void{
gotoAndStop(_trackOutFrame);
dispatchEvent(new Event(COMPLETE_TRACK));
_clearTrack();
}
protected function _clearTrack():void{
if (!_isTracking){
return;
};
_isTracking = false;
_trackDelayTimer = 0;
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _onTrack);
}
public function clear():void{
}
public function alphaBy(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_ALPHA, {end:(alpha + _arg1), dur:_arg2, ease:_arg3, delay:_arg4});
}
public function frameSet(_arg1:Number):void{
gotoAndStop(_arg1);
}
public function scaleTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_SCALE, {scaleX:_arg1, scaleY:_arg2, dur:_arg3, ease:_arg4, delay:_arg5});
}
public function shadowTo(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
protected function _tweenComplete():void{
}
override public function gotoAndPlay(_arg1:Object, _arg2:String=null):void{
if (_isTracking){
stopTrack();
};
super.gotoAndPlay(_arg1, _arg2);
}
public function propTween(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0, _arg6:MovieClip=null):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_PROP, {start:_arg1, end:_arg2, dur:_arg3, ease:_arg4, delay:_arg5});
}
public function scaleSet(_arg1:Number, _arg2:Number):void{
scaleX = _arg1;
scaleY = _arg2;
}
public function posBy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_POS, {x:(x + _arg1), y:(y + _arg2), dur:_arg3, ease:_arg4, delay:_arg5});
}
public function cleanUp():void{
_clearTrack();
WorkinTweener.removeScope(this);
}
public function frameTo(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_FRAME, {end:_arg1, dur:_arg2, ease:_arg3, delay:_arg4});
}
public function blurRemove(_arg1:Number=0):void{
}
public function glowBy(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function glowTo(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function posTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_POS, {x:_arg1, y:_arg2, dur:_arg3, ease:_arg4, delay:_arg5});
}
public function shadowRemove(_arg1:Number=0):void{
}
public function colorSet(_arg1:uint):void{
var _local2:ColorTransform;
_local2 = transform.colorTransform;
_local2.color = _arg1;
transform.colorTransform = _local2;
}
}
}//package com.workinman.lib.display
Section 7
//EBitmap (com.workinman.lib.events.EBitmap)
package com.workinman.lib.events {
import flash.events.*;
import flash.display.*;
import com.workinman.lib.net.*;
public class EBitmap extends Event {
private var _success:Boolean;
private var _bitmap:Bitmap;
private var _url:String;
public function EBitmap(_arg1:Boolean, _arg2:Bitmap=null, _arg3:String=""){
super(BitmapLoader.ON_BITMAP, false, false);
_success = _arg1;
_bitmap = _arg2;
_url = _arg3;
}
public function get success():Boolean{
return (_success);
}
public function get bitmap():Bitmap{
return (_bitmap);
}
public function get url():String{
return (_url);
}
}
}//package com.workinman.lib.events
Section 8
//EData (com.workinman.lib.events.EData)
package com.workinman.lib.events {
import flash.events.*;
public class EData extends Event {
private var _data:Object;
public function EData(_arg1:String, _arg2:Object){
super(_arg1, false, false);
_data = _arg2;
}
public function get data():Object{
return (_data);
}
}
}//package com.workinman.lib.events
Section 9
//EFile (com.workinman.lib.events.EFile)
package com.workinman.lib.events {
import flash.events.*;
import flash.display.*;
import com.workinman.lib.net.*;
public class EFile extends Event {
private var _success:Boolean;
private var _file:DisplayObject;
private var _url:String;
public function EFile(_arg1:Boolean, _arg2:DisplayObject=null, _arg3:String=""){
super(BitmapLoader.ON_BITMAP, false, false);
_success = _arg1;
_file = _arg2;
_url = _arg3;
}
public function get success():Boolean{
return (_success);
}
public function get url():String{
return (_url);
}
public function get file():DisplayObject{
return (_file);
}
}
}//package com.workinman.lib.events
Section 10
//ELoaderQueue (com.workinman.lib.events.ELoaderQueue)
package com.workinman.lib.events {
import flash.events.*;
import com.workinman.lib.net.*;
public class ELoaderQueue extends Event {
public var _loader:WorkinLoader;
public function ELoaderQueue(_arg1:WorkinLoader){
super(WorkinLoader.ON_QUEUE, false, false);
_loader = _arg1;
}
public function get loader():WorkinLoader{
return (_loader);
}
}
}//package com.workinman.lib.events
Section 11
//EProgress (com.workinman.lib.events.EProgress)
package com.workinman.lib.events {
import flash.events.*;
public class EProgress extends Event {
private var _bytesLoaded:Number;
private var _url:String;
private var _bytesTotal:Number;
public function EProgress(_arg1:String, _arg2:Number, _arg3:Number, _arg4:String=""){
super(_arg1, false, false);
_bytesLoaded = _arg2;
_bytesTotal = _arg3;
_url = _arg4;
}
public function get ratio():Number{
return ((_bytesLoaded / _bytesTotal));
}
public function get bytesLoaded():Number{
return (_bytesLoaded);
}
public function get bytesTotal():Number{
return (_bytesTotal);
}
public function get url():String{
return (_url);
}
}
}//package com.workinman.lib.events
Section 12
//ESWF (com.workinman.lib.events.ESWF)
package com.workinman.lib.events {
import flash.events.*;
import flash.display.*;
import com.workinman.lib.net.*;
public class ESWF extends Event {
private var _success:Boolean;
private var _swf:DisplayObject;
private var _url:String;
public function ESWF(_arg1:Boolean, _arg2:DisplayObject=null, _arg3:String=""){
super(SWFLoader.ON_SWF, false, false);
_success = _arg1;
_swf = _arg2;
_url = _arg3;
}
public function get swf():DisplayObject{
return (_swf);
}
public function get success():Boolean{
return (_success);
}
public function get url():String{
return (_url);
}
}
}//package com.workinman.lib.events
Section 13
//EUpdate (com.workinman.lib.events.EUpdate)
package com.workinman.lib.events {
import flash.events.*;
public class EUpdate extends Event {
private var _dt:Number;
public function EUpdate(_arg1:String, _arg2:Number){
super(_arg1, false, false);
_dt = _arg2;
}
public function get dt():Number{
return (_dt);
}
}
}//package com.workinman.lib.events
Section 14
//EXML (com.workinman.lib.events.EXML)
package com.workinman.lib.events {
import flash.events.*;
import com.workinman.lib.net.*;
public class EXML extends Event {
private var _success:Boolean;
private var _xml:XML;
public function EXML(_arg1:Boolean, _arg2:XML=null){
super(XMLLoader.ON_XML, false, false);
_success = _arg1;
_xml = _arg2;
}
public function get success():Boolean{
return (_success);
}
public function get xml():XML{
return (_xml);
}
}
}//package com.workinman.lib.events
Section 15
//InterceptResult (com.workinman.lib.math.InterceptResult)
package com.workinman.lib.math {
public class InterceptResult {
private var _result:WorkinPoint;
private var _success:Boolean;
private var _line1:WorkinLine;
private var _line2:WorkinLine;
public function InterceptResult(_arg1:Boolean, _arg2:WorkinPoint=null){
_success = _arg1;
_result = _arg2;
}
public function get success():Boolean{
return (_success);
}
public function set line2(_arg1:WorkinLine):void{
_line2 = _arg1;
}
public function get line1():WorkinLine{
return (_line1);
}
public function get line2():WorkinLine{
return (_line2);
}
public function set line1(_arg1:WorkinLine):void{
_line1 = _arg1;
}
public function toString():String{
return (("[Intercept Result] " + (_success) ? ("Collided! -> " + _result) : "Failed."));
}
public function get result():WorkinPoint{
return (_result);
}
}
}//package com.workinman.lib.math
Section 16
//PennerEasing (com.workinman.lib.math.PennerEasing)
package com.workinman.lib.math {
public class PennerEasing {
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456):Number{
if (_arg5 == -0.123456){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg1)==0) ? _arg2 : ((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
--_arg1;
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456):Number{
if (_arg5 == -0.123456){
_arg5 = 1.70158;
};
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
--_arg1;
return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
};
--_arg1;
return ((((_arg3 / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
--_arg1;
return ((((_arg3 / 2) * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
};
--_arg1;
return ((((_arg3 / 2) * (2 - Math.sqrt((1 - (_arg1 * _arg1))))) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456):Number{
if (_arg5 == -0.123456){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
--_arg1;
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2));
};
--_arg1;
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + 1)) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456, _arg6:Number=-0.123456):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
if (_arg6 == -0.123456){
_arg6 = (_arg4 * (0.3 * 1.5));
};
if ((((_arg5 == -0.123456)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
if (_arg1 < 1){
return ((((0.5 * ((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + (_arg3 / 2)) + _arg2));
};
return ((((_arg3 / 2) + (0.5 * ((_arg5 * Math.pow(2, (10 * (_arg1 - 2)))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))))) + _arg2));
}
public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg1)==_arg4) ? (_arg2 + _arg3) : ((_arg3 * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
--_arg1;
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((_arg3 / 2) * (-(Math.pow(2, (-10 * _arg1))) + 1)) + _arg2));
};
return ((((_arg3 / 2) * (Math.pow(2, (10 * (_arg1 - 2))) + 1)) + _arg2));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2));
}
public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
}
public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2));
}
public static function linear(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
if (_arg1 < (1 / 2.75)){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
};
if (_arg1 < (2 / 2.75)){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
};
if (_arg1 < (2.5 / 2.75)){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
};
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456):Number{
if (_arg5 == -0.123456){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2));
};
_arg1 = (_arg1 - 2);
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2));
};
--_arg1;
return ((((_arg3 / 2) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456, _arg6:Number=-0.123456):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (_arg6 == -0.123456){
_arg6 = (_arg4 * 0.3);
};
if ((((_arg5 == -0.123456)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
--_arg1;
return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((_arg3 / 2) * Math.sin(((Math.PI * _arg1) / 2))) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / 2)) - 2)) + _arg2));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeOutBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeInBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456, _arg6:Number=-0.123456):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (_arg6 == -0.123456){
_arg6 = (_arg4 * 0.3);
};
if ((((_arg5 == -0.123456)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=-0.123456, _arg6:Number=-0.123456):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
if (_arg6 == -0.123456){
_arg6 = (_arg4 * (0.3 * 1.5));
};
if ((((_arg5 == -0.123456)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
};
--_arg1;
return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
}
}//package com.workinman.lib.math
Section 17
//PennerManager (com.workinman.lib.math.PennerManager)
package com.workinman.lib.math {
public class PennerManager {
public static var EASE_CUBIC_IN:String = "cubicIn";
public static var EASE_CUBIC_OUT:String = "cubicOut";
public static var EASE_EXPO_OUT:String = "expoOut";
public static var EASE_IN:String = "easeIn";
public static var EASE_CUBIC:String = "cubic";
public static var EASE_LINEAR:String = "linear";
public static var EASE_WAVE_OUT:String = "waveOut";
public static var EASE_EXPO:String = "expo";
public static var EASE_BOUNCE_IN:String = "bounceIn";
public static var EASE_CIRCLE_OUT:String = "circleOut";
public static var EASE_WAVE:String = "wave";
public static var EASE_BLAST_IN:String = "blastIn";
public static var EASE_BLAST_OUT:String = "blastOut";
public static var EASE_EXPO_IN:String = "expoIn";
public static var EASE_SPACE_OUT:String = "spaceOut";
public static var EASE_BLAST:String = "blast";
public static var EASE_QUAD_IN:String = "quadIn";
public static var EASE_SPACE_IN:String = "spaceIn";
public static var EASE_ELASTIC_OUT:String = "elasticOut";
public static var EASE_CIRCLE:String = "circle";
public static var EASE_WAVE_IN:String = "waveIn";
public static var EASE_BUMP_OUT:String = "bumpOut";
public static var EASE_ELASTIC_IN:String = "elasticIn";
public static var EASE_CIRCLE_IN:String = "circleIn";
public static var EASE_ELASTIC:String = "elastic";
public static var EASE_QUAD_OUT:String = "quadOut";
public static var EASE_BOUNCE_OUT:String = "bounceOut";
public static var EASE_OUT:String = "easeOut";
public static var EASE_SPACE:String = "space";
public static var EASE:String = "ease";
public static var EASE_BUMP:String = "bump";
public static var EASE_QUAD:String = "quad";
public static var EASE_BOUNCE:String = "bounce";
public static var EASE_BUMP_IN:String = "bumpIn";
protected static function _tweenCubicIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInCubic(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenCircleBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutCirc(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBumpIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInBack(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenWaveIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInSine(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenSpaceOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutQuart(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBlastBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutQuint(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBounceOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutBounce(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenEaseBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutQuad(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenExpoBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutExpo(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenWaveOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutSine(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenCircleIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInCirc(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenWaveBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutSine(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenCubicOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutCubic(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenLinear(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((_arg1 + ((_arg3 / _arg4) * _arg2)));
}
protected static function _tweenBounceBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutBounce(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenSpaceBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutQuart(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInQuad(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBlastOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutQuint(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenExpoIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInExpo(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenElasticOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutElastic(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenCircleOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutCirc(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenSpaceIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInQuart(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBlastIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInQuint(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenCubicBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutCubic(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBumpOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutBack(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenElasticIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInElastic(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenElasticBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutElastic(_arg3, _arg1, _arg2, _arg4));
}
public static function getEaseFunction(_arg1:String):Function{
switch (_arg1){
case EASE_IN:
case EASE_QUAD_IN:
return (_tweenEaseIn);
case EASE_OUT:
case EASE_QUAD_OUT:
return (_tweenEaseOut);
case EASE:
case EASE_QUAD:
return (_tweenEaseBoth);
case EASE_EXPO:
return (_tweenExpoBoth);
case EASE_EXPO_IN:
return (_tweenExpoIn);
case EASE_EXPO_OUT:
return (_tweenExpoOut);
case EASE_ELASTIC:
return (_tweenElasticBoth);
case EASE_ELASTIC_IN:
return (_tweenElasticIn);
case EASE_ELASTIC_OUT:
return (_tweenElasticOut);
case EASE_BUMP:
return (_tweenBumpBoth);
case EASE_BUMP_IN:
return (_tweenBumpIn);
case EASE_BUMP_OUT:
return (_tweenBumpBoth);
case EASE_BOUNCE:
return (_tweenBounceBoth);
case EASE_BOUNCE_IN:
return (_tweenBounceIn);
case EASE_BOUNCE_OUT:
return (_tweenBounceOut);
case EASE_CUBIC:
return (_tweenCubicBoth);
case EASE_CUBIC_IN:
return (_tweenCubicIn);
case EASE_CUBIC_OUT:
return (_tweenCubicOut);
case EASE_SPACE:
return (_tweenSpaceBoth);
case EASE_SPACE_IN:
return (_tweenSpaceIn);
case EASE_SPACE_OUT:
return (_tweenSpaceOut);
case EASE_BLAST:
return (_tweenBlastBoth);
case EASE_BLAST_IN:
return (_tweenBlastIn);
case EASE_BLAST_OUT:
return (_tweenBlastOut);
case EASE_WAVE:
return (_tweenWaveBoth);
case EASE_WAVE_IN:
return (_tweenWaveIn);
case EASE_WAVE_OUT:
return (_tweenWaveOut);
case EASE_CIRCLE:
return (_tweenCircleBoth);
case EASE_CIRCLE_IN:
return (_tweenCircleIn);
case EASE_CIRCLE_OUT:
return (_tweenCircleOut);
case EASE_LINEAR:
default:
return (_tweenLinear);
};
}
protected static function _tweenBounceIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInBounce(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutQuad(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenExpoOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutExpo(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBumpBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutBack(_arg3, _arg1, _arg2, _arg4));
}
}
}//package com.workinman.lib.math
Section 18
//WorkinBezier (com.workinman.lib.math.WorkinBezier)
package com.workinman.lib.math {
public class WorkinBezier {
private var _loop:Number;
protected var _c0:WorkinPoint;
protected var _c1:WorkinPoint;
protected var _length:Number;
private var _bVal:Object;
private var _cVal:Object;
protected var _p0:WorkinPoint;
protected var _p1:WorkinPoint;
private var _aVal:Object;
protected var _segments:Number;
public function WorkinBezier(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:WorkinPoint, _arg4:WorkinPoint, _arg5:Number=4){
_p0 = _arg1.copy();
_p1 = _arg2.copy();
_c0 = _arg3.copy();
_c1 = _arg4.copy();
_segments = _arg5;
if (_segments < 2){
_segments = 2;
};
_calcProperties();
}
public function copy():WorkinBezier{
return (new WorkinBezier(_p0, _p1, _c0, _c1, _segments));
}
public function get p1():WorkinPoint{
return (_p1);
}
public function set p1(_arg1:WorkinPoint):void{
_p1 = _arg1;
}
public function testPointIntercept(_arg1:WorkinPoint, _arg2:Number=3):Boolean{
var _local3:Array;
_local3 = getAsLines(_arg2);
_loop = _local3.length;
while (_loop--) {
if (_local3[_loop].testPointSegmentIntercept(_arg1)){
return (true);
};
};
return (false);
}
private function _calcProperties():void{
_length = (Math.round((Math.sqrt((((_p0.x - _p1.x) * (_p0.x - _p1.x)) + ((_p0.y - _p1.y) * (_p0.y - _p1.y)))) * 1000)) / 1000);
_cVal = {x:(3 * (c0.x - p0.x)), y:(3 * (c0.y - p0.y))};
_bVal = {x:((3 * (c1.x - c0.x)) - _cVal.x), y:((3 * (c1.y - c0.y)) - _cVal.y)};
_aVal = {x:(((p1.x - p0.x) - _bVal.x) - _cVal.x), y:(((p1.y - p0.y) - _bVal.y) - _cVal.y)};
}
public function clean():void{
_p0.clean();
_p1.clean();
_c0.clean();
_c1.clean();
_calcProperties();
}
public function endToPoint(_arg1:WorkinPoint):void{
_p1.toPoint(_arg1);
_calcProperties();
}
public function set length(_arg1:Number):void{
_length = _arg1;
}
public function get center():WorkinPoint{
return (getPoint(0.5));
}
public function originTo(_arg1:Number, _arg2:Number, _arg3:Number):void{
_p0.to(_arg1, _arg2, _arg3);
_p0.clean();
_calcProperties();
}
public function set c1(_arg1:WorkinPoint):void{
_c1 = _arg1;
}
public function originToPoint(_arg1:WorkinPoint):void{
_p0.toPoint(_arg1);
_calcProperties();
}
public function set c0(_arg1:WorkinPoint):void{
_c0 = _arg1;
}
public function get p0():WorkinPoint{
return (_p0);
}
public function testLineSegmentIntercept(_arg1:WorkinLine, _arg2:Number=3):InterceptResult{
var _local3:Array;
var _local4:InterceptResult;
_local3 = getAsLines(_arg2);
_loop = _local3.length;
while (_loop--) {
_local4 = _arg1.testLineSegmentIntercept(_local3[_loop]);
if (_local4.success){
return (_local4);
};
};
return (new InterceptResult(false));
}
public function getPoint(_arg1:Number):WorkinPoint{
return (new WorkinPoint(((((_aVal.x * ((_arg1 * _arg1) * _arg1)) + (_bVal.x * (_arg1 * _arg1))) + (_cVal.x * _arg1)) + p0.x), ((((_aVal.y * ((_arg1 * _arg1) * _arg1)) + (_bVal.y * (_arg1 * _arg1))) + (_cVal.y * _arg1)) + p0.y)));
}
public function toString():String{
return (((((((((((((("[WorkinBezier] " + "(") + _p0.x) + ", ") + _p0.y) + ", ") + _p0.z) + ") ~> (") + _p1.x) + ", ") + _p1.y) + ", ") + _p1.z) + ")"));
}
public function get c0():WorkinPoint{
return (_c0);
}
public function get c1():WorkinPoint{
return (_c1);
}
public function testLineIntercept(_arg1:WorkinLine, _arg2:Number=3):InterceptResult{
var _local3:Array;
var _local4:InterceptResult;
_local3 = getAsLines(_arg2);
_loop = _local3.length;
while (_loop--) {
_local4 = _arg1.testLineIntercept(_local3[_loop]);
if (_local4.success){
return (_local4);
};
};
return (new InterceptResult(false));
}
public function testBezierIntercept(_arg1:WorkinBezier, _arg2:Number=3):InterceptResult{
var _local3:Array;
var _local4:Array;
var _local5:InterceptResult;
var _local6:Number;
_local3 = getAsLines(_arg2);
_local4 = _arg1.getAsLines(_arg2);
_loop = _local3.length;
while (_loop--) {
_local6 = _local4.length;
while (_local6--) {
_local5 = _local3[_loop].testLineSegmentInterceipt(_local4[_local6]);
if (_local5.success){
return (_local5);
};
};
};
return (new InterceptResult(false));
}
public function get length():Number{
return (_length);
}
public function endTo(_arg1:Number, _arg2:Number, _arg3:Number):void{
_p1.to(_arg1, _arg2, _arg3);
_p1.clean();
_calcProperties();
}
public function getAsLines(_arg1:Number=3):Array{
var _local2:WorkinPoint;
var _local3:*;
var _local4:*;
_local2 = p0;
_local3 = [];
_local4 = 0;
_loop = 1;
while (_loop <= _arg1) {
_local4 = (_loop / _arg1);
var _temp1 = _local2;
_local2 = getPoint(_local4);
_local3.push(new WorkinLine(_temp1, _local2));
_loop++;
};
return (_local3);
}
public function set p0(_arg1:WorkinPoint):void{
_p0 = _arg1;
}
public function getDerivative(_arg1:Number):WorkinPoint{
return (new WorkinPoint((((((3 * _aVal.x) * _arg1) * _arg1) + ((2 * _bVal.x) * _arg1)) + _cVal.x), (((((3 * _aVal.y) * _arg1) * _arg1) + ((2 * _bVal.y) * _arg1)) + _cVal.y)));
}
}
}//package com.workinman.lib.math
Section 19
//WorkinLine (com.workinman.lib.math.WorkinLine)
package com.workinman.lib.math {
public class WorkinLine {
protected var _length:Number;
protected var _normal:WorkinPoint;
protected var _slope:Number;
private var _xSegmentResult:Number;
private var _parametricDenom:WorkinPoint;
private var _inverseDeterminate:Number;
private var _ySegmentResult:Number;
protected var _p0:WorkinPoint;
protected var _p1:WorkinPoint;
protected var _vector:WorkinPoint;
protected var _yIntercept:Number;
public function WorkinLine(_arg1:WorkinPoint, _arg2:WorkinPoint){
_p0 = _arg1.copy();
_p1 = _arg2.copy();
_calcProperties();
}
public function testPointSegmentIntercept(_arg1:WorkinPoint, _arg2:Boolean=false):Boolean{
if (_parametricDenom.x == 0){
_xSegmentResult = 0;
} else {
_xSegmentResult = ((_arg1.x - p0.x) / _parametricDenom.x);
};
if (_parametricDenom.y == 0){
_ySegmentResult = 0;
} else {
_ySegmentResult = ((_arg1.y - p0.y) / _parametricDenom.y);
};
if (_arg2){
};
if ((((((((_xSegmentResult >= 0)) && ((_xSegmentResult <= 1)))) && ((_ySegmentResult >= 0)))) && ((_ySegmentResult <= 1)))){
return (true);
};
return (false);
}
private function _calcProperties():void{
_length = (Math.round((Math.sqrt((((_p0.x - _p1.x) * (_p0.x - _p1.x)) + ((_p0.y - _p1.y) * (_p0.y - _p1.y)))) * 1000)) / 1000);
_vector = new WorkinPoint((p1.x - p0.x), (p1.y - p0.y));
_slope = (_vector.y / _vector.x);
if (vector.x == 0){
_slope = 100000;
};
_yIntercept = (p0.y - (_slope * p0.x));
_parametricDenom = new WorkinPoint((p1.x - p0.x), (p1.y - p0.y));
_normal = _vector.pseudoCross();
_normal.normalize();
}
public function testLineSegmentIntercept(_arg1:WorkinLine, _arg2:Boolean=false):InterceptResult{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local3 = ((-(_arg1.vector.x) * _vector.y) + (_vector.x * _arg1.vector.y));
_local4 = (p0.x - _arg1.p0.x);
_local5 = (p0.y - _arg1.p0.y);
_local6 = (((-(_vector.y) * _local4) + (_vector.x * _local5)) / _local3);
_local7 = (((_arg1.vector.x * _local5) - (_arg1.vector.y * _local4)) / _local3);
if ((((((((_local6 >= 0)) && ((_local6 <= 1)))) && ((_local7 >= 0)))) && ((_local7 <= 1)))){
return (new InterceptResult(true, new WorkinPoint((p0.x + (_local7 * _vector.x)), (p0.y + (_local7 * _vector.y)))));
};
return (new InterceptResult(false));
}
public function toLine(_arg1:WorkinLine):void{
_p0.toPoint(_arg1.p0);
_p1.toPoint(_arg1.p1);
_calcProperties();
}
public function get centerX():Number{
return ((_p0.x + (_vector.x / 2)));
}
public function get centerY():Number{
return ((_p0.y + (_vector.y / 2)));
}
public function get slope():Number{
return (_slope);
}
public function endTo(_arg1:Number, _arg2:Number, _arg3:Number):void{
_p1.to(_arg1, _arg2, _arg3);
_p1.clean();
_calcProperties();
}
public function get p1():WorkinPoint{
return (_p1);
}
public function get vector():WorkinPoint{
return (_vector);
}
public function get p0():WorkinPoint{
return (_p0);
}
public function originTo(_arg1:Number, _arg2:Number, _arg3:Number):void{
_p0.to(_arg1, _arg2, _arg3);
_p0.clean();
_calcProperties();
}
public function get yIntercept():Number{
return (_yIntercept);
}
public function testLineIntercept(_arg1:WorkinLine):InterceptResult{
var _local2:WorkinPoint;
_inverseDeterminate = (1 / ((_slope * -1) - (_arg1.slope * -1)));
_local2 = new WorkinPoint((((-1 * _arg1.yIntercept) - (-1 * _yIntercept)) * _inverseDeterminate), (((_arg1.slope * _yIntercept) - (slope * _arg1.yIntercept)) * _inverseDeterminate), 0);
return (new InterceptResult(true, _local2));
}
public function set length(_arg1:Number):void{
if (length == 0){
return;
};
_p1 = new WorkinPoint((_p0.x + (_vector.x * (_arg1 / length))), (_p0.y + (_vector.y * (_arg1 / length))));
_calcProperties();
}
public function get center():WorkinPoint{
return (new WorkinPoint((_p0.x + (_vector.x / 2)), (_p0.y + (_vector.y / 2))));
}
public function getPoint(_arg1:Number):WorkinPoint{
return (new WorkinPoint((p0.x + (_vector.x * _arg1)), (p0.y + (_vector.y * _arg1))));
}
public function rotate(_arg1:Number):void{
_vector.rotate(_arg1);
_p1.toPoint(_p0.addPointCopy(_vector));
_calcProperties();
}
public function originToPoint(_arg1:WorkinPoint):void{
_p0.toPoint(_arg1);
_calcProperties();
}
public function clean():void{
_p0.clean();
_p1.clean();
_calcProperties();
}
public function get length():Number{
return (_length);
}
public function get normal():WorkinPoint{
return (_normal);
}
public function toString():String{
return (((((((((((((("[WorkinLine] " + "(") + _p0.x) + ", ") + _p0.y) + ", ") + _p0.z) + ") ~> (") + _p1.x) + ", ") + _p1.y) + ", ") + _p1.z) + ")"));
}
public function flip():void{
var _local1:WorkinPoint;
_local1 = _p0.copy();
_p0.toPoint(_p1);
_p1.toPoint(_local1);
_calcProperties();
}
public function toNumbers(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
_p0.to(_arg1, _arg2);
_p0.clean();
_p1.to(_arg3, _arg4);
_p1.clean();
_calcProperties();
}
public function copy():WorkinLine{
return (new WorkinLine(_p0, _p1));
}
public function projectOntoLine(_arg1:WorkinLine):WorkinLine{
var _local2:Number;
_local2 = _arg1.vector.dot(vector.normalizeCopy());
return (new WorkinLine(_arg1.p0, _arg1.p1.addPointCopy(_normal.copyAndResize(Math.sqrt(((_arg1.length * _arg1.length) - (_local2 * _local2)))))));
}
public function endToPoint(_arg1:WorkinPoint):void{
_p1.toPoint(_arg1);
_calcProperties();
}
public function to(_arg1:WorkinPoint, _arg2:WorkinPoint):void{
_p0.toPoint(_arg1);
_p0.clean();
_p1.toPoint(_arg2);
_p1.clean();
_calcProperties();
}
}
}//package com.workinman.lib.math
Section 20
//WorkinPoint (com.workinman.lib.math.WorkinPoint)
package com.workinman.lib.math {
import com.workinman.lib.display.tweener.*;
public class WorkinPoint {
private var _length:Number;
private var _x:Number;
private var _y:Number;
private var _z:Number;
public function WorkinPoint(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){
_x = (Math.round((_arg1 * 1000)) / 1000);
_y = (Math.round((_arg2 * 1000)) / 1000);
_z = (Math.round((_arg3 * 1000)) / 1000);
_calculateLength();
}
public function onTweensComplete():void{
}
public function to(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_x = _arg1;
_y = _arg2;
_z = _arg3;
_calculateLength();
}
public function addPointCopy(_arg1:WorkinPoint):WorkinPoint{
return (new WorkinPoint((_x + _arg1.x), (_y + _arg1.y), (_z + _arg1.z)));
}
public function moveBy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String="linear", _arg6:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_POS_3D, {x:(x + _arg1), y:(y + _arg2), z:(z + _arg3), dur:_arg4, ease:_arg5, delay:_arg6, by:false});
}
public function get z():Number{
return (_z);
}
public function diff(_arg1:WorkinPoint):WorkinPoint{
return (new WorkinPoint((_arg1.x - _x), (_arg1.y - _y), (_arg1.z - _z)));
}
public function normalize():void{
if (_length == 0){
return;
};
_x = (_x / _length);
_y = (_y / _length);
_z = (_z / _length);
_calculateLength();
}
public function divideCopy(_arg1:Number):WorkinPoint{
return (new WorkinPoint((_x / _arg1), (_y / _arg1), (_z / _arg1)));
}
public function divide(_arg1:Number):void{
_x = (_x / _arg1);
_y = (_y / _arg1);
_z = (_z / _arg1);
clean();
_calculateLength();
}
public function subtract(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_x = (_x - _arg1);
_y = (_y - _arg2);
_z = (_z - _arg3);
clean();
_calculateLength();
}
public function normalizeTo(_arg1:Number):void{
length = _arg1;
}
public function distTo2D(_arg1:WorkinPoint):Number{
return (Math.abs(Math.sqrt((((_x - _arg1.x) * (_x - _arg1.x)) + ((_y - _arg1.y) * (_y - _arg1.y))))));
}
public function get y():Number{
return (_y);
}
public function add(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_x = (_x + _arg1);
_y = (_y + _arg2);
_z = (_z + _arg3);
clean();
_calculateLength();
}
public function normalizeCopy():WorkinPoint{
if (_length == 0){
return (new WorkinPoint(0, 0, 0));
};
return (new WorkinPoint((_x / _length), (_y / _length), (_z / _length)));
}
public function multiply(_arg1:Number):void{
_x = (_x * _arg1);
_y = (_y * _arg1);
_z = (_z * _arg1);
clean();
_calculateLength();
}
public function subtractCopy(_arg1:Number, _arg2:Number, _arg3:Number=0):WorkinPoint{
return (new WorkinPoint((_x - _arg1), (_y - _arg2), (_z - _arg3)));
}
public function completeMove():void{
WorkinTweener.completeScope(this);
}
public function moveTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String="linear", _arg6:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_POS_3D, {x:_arg1, y:_arg2, z:_arg3, dur:_arg4, ease:_arg5, delay:_arg6, by:false});
}
private function _calculateLength():void{
_length = Math.sqrt((((_x * _x) + (_y * _y)) + (_z * _z)));
}
public function dampenByPoint(_arg1:WorkinPoint):void{
if ((((((x < 0)) && ((_arg1.x > 0)))) || ((((x > 0)) && ((_arg1.x < 0)))))){
x = (x + _arg1.x);
};
if ((((((y < 0)) && ((_arg1.y > 0)))) || ((((y > 0)) && ((_arg1.y < 0)))))){
y = (y + _arg1.y);
};
if ((((((z < 0)) && ((_arg1.z > 0)))) || ((((z > 0)) && ((_arg1.z < 0)))))){
z = (z + _arg1.z);
};
_calculateLength();
}
public function pseudoCross():WorkinPoint{
return (new WorkinPoint(_y, -(_x), _z));
}
public function addCopy(_arg1:Number, _arg2:Number, _arg3:Number=0):WorkinPoint{
return (new WorkinPoint((_x + _arg1), (_y + _arg2), (_z + _arg3)));
}
public function multiplyCopy(_arg1:Number):WorkinPoint{
return (new WorkinPoint((_x * _arg1), (_y * _arg1), (_z * _arg1)));
}
public function decay(_arg1:Number):void{
if (length == 0){
return;
};
if ((length - _arg1) < 0){
length = 0;
return;
};
length = (length - _arg1);
}
public function normalizeCopyTo(_arg1:Number):WorkinPoint{
var _local2:Number;
if (_length == 0){
return (new WorkinPoint(0, 0, 0));
};
_local2 = (_arg1 / _length);
return (new WorkinPoint((_x * _local2), (_y * _local2), (z * _local2)));
}
public function equals(_arg1:WorkinPoint):Boolean{
return ((((((x == _arg1.x)) && ((y == _arg1.y)))) && ((z == _arg1.z))));
}
public function deflectOff(_arg1:WorkinPoint):void{
toPoint(projectOntoCopy(_arg1).addPointCopy(projectOntoCopy(_arg1.pseudoCross()).reverseCopy()));
}
public function distTo(_arg1:WorkinPoint):Number{
return (Math.abs(Math.sqrt(((((_x - _arg1.x) * (_x - _arg1.x)) + ((_y - _arg1.y) * (_y - _arg1.y))) + ((_z - _arg1.z) * (_z - _arg1.z))))));
}
public function cross(_arg1:WorkinPoint):WorkinPoint{
return (new WorkinPoint(((_y * _arg1.z) - (_z * _arg1.y)), ((_x * _arg1.z) - (_z * _arg1._x)), ((_x * _arg1.y) - (_y * _arg1.x))));
}
public function clean():void{
_x = (Math.round((_x * 1000)) / 1000);
_y = (Math.round((_y * 1000)) / 1000);
_z = (Math.round((_z * 1000)) / 1000);
}
public function set length(_arg1:Number):void{
if (_length == 0){
return;
};
multiply((_arg1 / _length));
}
public function dot(_arg1:WorkinPoint):Number{
return ((((_x * _arg1.x) + (_y * _arg1.y)) + (_z * _arg1.z)));
}
public function get angle():Number{
return (((Math.atan2(y, x) * 180) / Math.PI));
}
public function toPoint(_arg1:WorkinPoint):void{
_x = _arg1.x;
_y = _arg1.y;
_z = _arg1.z;
_calculateLength();
}
public function projectOnto(_arg1:WorkinPoint):void{
var _local2:WorkinPoint;
var _local3:Number;
_local2 = _arg1.normalizeCopy();
_local3 = dot(_local2);
to((_local3 * _local2.x), (_local3 * _local2.y), 0);
}
public function rotate(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
_local2 = Math.cos(((_arg1 * Math.PI) / 180));
_local3 = Math.sin(((_arg1 * Math.PI) / 180));
x = ((x * _local2) - (y * _local3));
y = ((x * _local3) - (y * _local2));
}
public function subtractPoint(_arg1:WorkinPoint):void{
_x = (_x - _arg1.x);
_y = (_y - _arg1.y);
_z = (_z - _arg1.z);
clean();
_calculateLength();
}
public function decayX(_arg1:Number):void{
if (x == 0){
return;
};
if (x > 0){
x = (x - _arg1);
if (x < 0){
x = 0;
};
} else {
if (x < 0){
x = (x + _arg1);
if (x > 0){
x = 0;
};
};
};
}
public function decayY(_arg1:Number):void{
if (y == 0){
return;
};
if (y > 0){
y = (y - _arg1);
if (y < 0){
y = 0;
};
} else {
if (y < 0){
y = (y + _arg1);
if (y > 0){
y = 0;
};
};
};
}
public function reverse():void{
x = -(x);
y = -(y);
z = -(z);
}
public function deflectOffCopy(_arg1:WorkinPoint):WorkinPoint{
return (projectOntoCopy(_arg1).addPointCopy(projectOntoCopy(_arg1.pseudoCross()).reverseCopy()));
}
public function get length():Number{
return (_length);
}
public function projectOntoCopy(_arg1:WorkinPoint):WorkinPoint{
var _local2:WorkinPoint;
var _local3:Number;
_local2 = _arg1.normalizeCopy();
_local3 = dot(_local2);
return (new WorkinPoint((_local3 * _local2.x), (_local3 * _local2.y), 0));
}
public function cancelMove():void{
WorkinTweener.stopScope(this);
}
public function toString():String{
return ((((((("{ WorkinPoint : " + _x) + " , ") + _y) + " , ") + _z) + " }"));
}
public function addPoint(_arg1:WorkinPoint):void{
_x = (_x + _arg1.x);
_y = (_y + _arg1.y);
_z = (_z + _arg1.z);
clean();
_calculateLength();
}
public function set x(_arg1:Number):void{
_x = _arg1;
}
public function subtractPointCopy(_arg1:WorkinPoint):WorkinPoint{
return (new WorkinPoint((_x - _arg1.x), (_y - _arg1.y), (_z - _arg1.z)));
}
public function set y(_arg1:Number):void{
_y = _arg1;
}
public function set z(_arg1:Number):void{
_z = _arg1;
}
public function copy():WorkinPoint{
return (new WorkinPoint(_x, _y, _z));
}
public function copyAndResize(_arg1:Number):WorkinPoint{
return (multiplyCopy((_arg1 / _length)));
}
public function reverseCopy():WorkinPoint{
return (new WorkinPoint((x * -1), (y * -1), (z * -1)));
}
public function get x():Number{
return (_x);
}
public function rotateCopy(_arg1:Number):WorkinPoint{
var _local2:Number;
var _local3:Number;
_local2 = Math.cos(((_arg1 * Math.PI) / 180));
_local3 = Math.sin(((_arg1 * Math.PI) / 180));
return (new WorkinPoint(((x * _local2) - (y * _local3)), ((x * _local3) - (y * _local2))));
}
}
}//package com.workinman.lib.math
Section 21
//BitmapLoader (com.workinman.lib.net.BitmapLoader)
package com.workinman.lib.net {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import flash.net.*;
public class BitmapLoader {
private static var _bitmapLoader:Loader;
private static var _eventDispatcher:EventDispatcher;
private static var _loadQueue:Array;
private static var _isLoading:Boolean;
private static function _clearBitmapListeners():void{
_bitmapLoader.removeEventListener("complete", _onBitmapLoaded);
_bitmapLoader.removeEventListener("ioError", _onBitmapError);
_bitmapLoader.removeEventListener("securityError", _onBitmapSecurityError);
}
private static function _onBitmapSecurityError(_arg1:Event):void{
_dispatchEvent(new EBitmap(false));
_clearBitmapListeners();
_completeLoad();
}
public static function cleanUp():void{
if (_bitmapLoader != null){
_bitmapLoader.unload();
};
}
public static function get ON_PROGRESS():String{
return ("onBitmapProgress");
}
public static function get ON_BITMAP():String{
return ("onBitmap");
}
protected static function _beginLoad(_arg1:String):void{
if (_bitmapLoader != null){
_bitmapLoader.unload();
};
_bitmapLoader = new Loader();
_bitmapLoader.load(new URLRequest(_arg1));
_bitmapLoader.contentLoaderInfo.addEventListener("progress", _onBitmapProgress);
_bitmapLoader.contentLoaderInfo.addEventListener("complete", _onBitmapLoaded);
_bitmapLoader.contentLoaderInfo.addEventListener("ioError", _onBitmapError);
_bitmapLoader.contentLoaderInfo.addEventListener("securityError", _onBitmapSecurityError);
}
private static function _onBitmapLoaded(_arg1:Event):void{
_dispatchEvent(new EBitmap(true, Bitmap(_bitmapLoader.content), _bitmapLoader.contentLoaderInfo.url));
_clearBitmapListeners();
_completeLoad();
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.addEventListener(_arg1, _arg2);
}
public static function load(_arg1:String):void{
if (_loadQueue == null){
_loadQueue = [];
};
if (_isLoading == true){
_queueLoad(_arg1);
} else {
_beginLoad(_arg1);
};
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.removeEventListener(_arg1, _arg2);
}
protected static function _dispatchEvent(_arg1:Event):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.dispatchEvent(_arg1);
}
private static function _onBitmapProgress(_arg1:ProgressEvent):void{
_dispatchEvent(new EProgress(ON_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal, _bitmapLoader.contentLoaderInfo.url));
}
private static function _onBitmapError(_arg1:Event):void{
_dispatchEvent(new EBitmap(false));
_clearBitmapListeners();
_completeLoad();
}
protected static function _completeLoad():void{
if (_loadQueue.length == 0){
_isLoading = false;
} else {
_beginLoad(_loadQueue.shift());
};
}
private static function _queueLoad(_arg1:String):void{
_loadQueue.push(_arg1);
}
}
}//package com.workinman.lib.net
Section 22
//FileLoader (com.workinman.lib.net.FileLoader)
package com.workinman.lib.net {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import flash.net.*;
public class FileLoader {
private static var _eventDispatcher:EventDispatcher;
private static var _loadQueue:Array;
private static var _fileLoader:Loader;
private static var _isLoading:Boolean;
protected static function _dispatchEvent(_arg1:Event):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.dispatchEvent(_arg1);
}
private static function _onFileProgress(_arg1:ProgressEvent):void{
_dispatchEvent(new EProgress(ON_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal, _fileLoader.contentLoaderInfo.url));
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.removeEventListener(_arg1, _arg2);
}
public static function cleanUp():void{
if (_fileLoader != null){
_fileLoader.unload();
};
}
public static function get ON_PROGRESS():String{
return ("onFileProgress");
}
protected static function _beginLoad(_arg1:String):void{
if (_fileLoader != null){
_fileLoader.unload();
};
_fileLoader = new Loader();
_fileLoader.load(new URLRequest(_arg1));
_fileLoader.contentLoaderInfo.addEventListener("progress", _onFileProgress);
_fileLoader.contentLoaderInfo.addEventListener("complete", _onFileLoaded);
_fileLoader.contentLoaderInfo.addEventListener("ioError", _onFileError);
_fileLoader.contentLoaderInfo.addEventListener("securityError", _onFileSecurityError);
}
private static function _clearBitmapListeners():void{
_fileLoader.removeEventListener("complete", _onFileLoaded);
_fileLoader.removeEventListener("ioError", _onFileError);
_fileLoader.removeEventListener("securityError", _onFileSecurityError);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.addEventListener(_arg1, _arg2);
}
public static function load(_arg1:String):void{
if (_loadQueue == null){
_loadQueue = [];
};
if (_isLoading == true){
_queueLoad(_arg1);
} else {
_beginLoad(_arg1);
};
}
private static function _onFileLoaded(_arg1:Event):void{
_dispatchEvent(new EFile(true, _fileLoader.content, _fileLoader.contentLoaderInfo.url));
_clearBitmapListeners();
_completeLoad();
}
private static function _onFileSecurityError(_arg1:Event):void{
_dispatchEvent(new EFile(false));
_clearBitmapListeners();
_completeLoad();
}
public static function get ON_FILE():String{
return ("onFile");
}
private static function _onFileError(_arg1:Event):void{
_dispatchEvent(new EFile(false));
_clearBitmapListeners();
_completeLoad();
}
protected static function _completeLoad():void{
var _local1:Object;
if (_loadQueue.length == 0){
_isLoading = false;
} else {
_local1 = _loadQueue.shift();
_beginLoad(_local1.url);
};
}
private static function _queueLoad(_arg1:String, _arg2:Boolean=false):void{
_loadQueue.push({url:_arg1, isCross:_arg2});
}
}
}//package com.workinman.lib.net
Section 23
//LoaderQueue (com.workinman.lib.net.LoaderQueue)
package com.workinman.lib.net {
import com.workinman.lib.events.*;
public class LoaderQueue {
private var _active:Array;
private var _maxThreads:uint;
private var _queue:Array;
private var _DEF_MAX_THREADS:uint;// = 3
private static var _instance:LoaderQueue;
public function LoaderQueue(){
_DEF_MAX_THREADS = 3;
super();
}
private function _activateLoader(_arg1:WorkinLoader):void{
_arg1.addEventListener(WorkinLoader.ON_QUEUE, _onLoaderComplete);
_arg1.executeQueuedLoad();
_active.push(_arg1);
}
public function onAddLoader(_arg1:WorkinLoader):void{
if (_active.length < _maxThreads){
_activateLoader(_arg1);
} else {
_queue.push(_arg1);
};
}
public function onChangeMaxThreads(_arg1:uint):void{
_maxThreads = _arg1;
}
private function _onLoaderComplete(_arg1:ELoaderQueue):void{
var _local2:Number;
_local2 = _active.length;
while (_local2--) {
if (_active[_local2] == _arg1.loader){
_arg1.loader.removeEventListener(WorkinLoader.ON_QUEUE, _onLoaderComplete);
_active.splice(_local2, 1);
_local2 = 0;
};
};
if (_queue.length > 0){
_activateLoader(_queue.shift());
};
}
public function onInitInstance():void{
_active = [];
_queue = [];
_maxThreads = _DEF_MAX_THREADS;
}
public static function add(_arg1:WorkinLoader):void{
getInstance().onAddLoader(_arg1);
}
public static function getInstance():LoaderQueue{
if (_instance == null){
_instance = new (LoaderQueue);
_instance.onInitInstance();
};
return (_instance);
}
public static function setMaxThreads(_arg1:uint):void{
getInstance().onChangeMaxThreads(_arg1);
}
}
}//package com.workinman.lib.net
Section 24
//SWFLoader (com.workinman.lib.net.SWFLoader)
package com.workinman.lib.net {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class SWFLoader {
private static var _eventDispatcher:EventDispatcher;
private static var _isLoading:Boolean;
private static var _SWFLoader:Loader;
private static var _loadQueue:Array;
private static function _onSWFProgress(_arg1:ProgressEvent):void{
_dispatchEvent(new EProgress(ON_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal, _SWFLoader.contentLoaderInfo.url));
}
private static function _onSWFLoaded(_arg1:Event):void{
_dispatchEvent(new ESWF(true, _SWFLoader.content, _SWFLoader.contentLoaderInfo.url));
_clearBitmapListeners();
_completeLoad();
}
public static function get ON_SWF():String{
return ("onSWF");
}
protected static function _dispatchEvent(_arg1:Event):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.dispatchEvent(_arg1);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.removeEventListener(_arg1, _arg2);
}
public static function cleanUp():void{
if (_SWFLoader != null){
_SWFLoader.unload();
};
_SWFLoader = null;
}
public static function get ON_PROGRESS():String{
return ("onSWFProgress");
}
protected static function _beginLoad(_arg1:String, _arg2:Boolean=false):void{
var pURL = _arg1;
var pIsCrossServer = _arg2;
if (_SWFLoader != null){
try {
_SWFLoader.unload();
} catch(pError:Error) {
};
};
_SWFLoader = new Loader();
try {
_SWFLoader.load(new URLRequest(pURL), new LoaderContext(false, ApplicationDomain.currentDomain, (pIsCrossServer) ? SecurityDomain.currentDomain : null));
} catch(pError:Error) {
_SWFLoader.load(new URLRequest(pURL), new LoaderContext(false, ApplicationDomain.currentDomain));
};
_SWFLoader.contentLoaderInfo.addEventListener("progress", _onSWFProgress);
_SWFLoader.contentLoaderInfo.addEventListener("complete", _onSWFLoaded);
_SWFLoader.contentLoaderInfo.addEventListener("ioError", _onSWFError);
_SWFLoader.contentLoaderInfo.addEventListener("securityError", _onSWFSecurityError);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.addEventListener(_arg1, _arg2);
}
public static function load(_arg1:String, _arg2:Boolean=false):void{
if (_loadQueue == null){
_loadQueue = [];
};
if (_isLoading == true){
_queueLoad(_arg1, _arg2);
} else {
_beginLoad(_arg1, _arg2);
};
}
private static function _clearBitmapListeners():void{
_SWFLoader.removeEventListener("complete", _onSWFLoaded);
_SWFLoader.removeEventListener("ioError", _onSWFError);
_SWFLoader.removeEventListener("securityError", _onSWFSecurityError);
}
private static function _onSWFError(_arg1:Event):void{
_dispatchEvent(new ESWF(false));
_clearBitmapListeners();
_completeLoad();
}
private static function _onSWFSecurityError(_arg1:Event):void{
_dispatchEvent(new ESWF(false));
_clearBitmapListeners();
_completeLoad();
}
protected static function _completeLoad():void{
var _local1:Object;
if (_loadQueue.length == 0){
_isLoading = false;
} else {
_local1 = _loadQueue.shift();
_beginLoad(_local1.url, _local1.isCross);
};
}
private static function _queueLoad(_arg1:String, _arg2:Boolean=false):void{
_loadQueue.push({url:_arg1, isCross:_arg2});
}
}
}//package com.workinman.lib.net
Section 25
//WorkinLoader (com.workinman.lib.net.WorkinLoader)
package com.workinman.lib.net {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class WorkinLoader extends EventDispatcher {
private var _bitmapLoader:Loader;
private var _queuedMethod:Function;
private var _SWFLoader:Loader;
private var _isQueued:Boolean;
private var _SWFQueue:Array;
private var _XMLQueue:Array;
private var _isLoading:Boolean;
private var _queuedIsCross:Boolean;
private var _fileLoader:Loader;
private var _ERR_EMPTY_URL:String;// = "Supplied URL string is empty."
private var _ERR_ALREADY_LOADING:String;// = "Data is already loading. Create a new instance of WorkinLoader if you wish to load multiple threads."
private var _bitmapQueue:Array;
private var _XMLLoader:URLLoader;
private var _fileQueue:Array;
private var _queuedURL:String;
public function WorkinLoader(){
_ERR_ALREADY_LOADING = "Data is already loading. Create a new instance of WorkinLoader if you wish to load multiple threads.";
_ERR_EMPTY_URL = "Supplied URL string is empty.";
super();
_isLoading = false;
_fileQueue = [];
_bitmapQueue = [];
_XMLQueue = [];
_SWFQueue = [];
}
public function loadFile(_arg1:String):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_beginFileLoad(_arg1);
}
private function _onSWFError(_arg1:Event):void{
_endSWFLoad();
_error("SWF Loading Error : File not found. Session terminated.");
dispatchEvent(new ESWF(false));
}
private function _onFileError(_arg1:Event):void{
_endBitmapLoad();
_error("File Loading Error : File not found. Session terminated.");
dispatchEvent(new EFile(false));
}
private function _error(_arg1:String):void{
}
private function _onXMLProgress(_arg1:ProgressEvent):void{
dispatchEvent(new EProgress(XML_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal));
}
private function _beginXMLLoad(_arg1:String):void{
_isLoading = true;
XML.ignoreWhitespace = true;
_XMLLoader = new URLLoader(new URLRequest(_arg1));
_XMLLoader.addEventListener("progress", _onXMLProgress);
_XMLLoader.addEventListener("complete", _onXMLLoaded);
_XMLLoader.addEventListener("ioError", _onXMLError);
_XMLLoader.addEventListener("securityError", _onXMLSecurityError);
}
private function _onXMLLoaded(_arg1:Event):void{
_endXMLLoad();
dispatchEvent(new EXML(true, XML(_XMLLoader.data)));
}
private function _onBitmapProgress(_arg1:ProgressEvent):void{
dispatchEvent(new EProgress(BITMAP_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal, _bitmapLoader.contentLoaderInfo.url));
}
public function queueBitmap(_arg1:String):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_isQueued = true;
_queuedURL = _arg1;
_queuedMethod = _beginBitmapLoad;
_queuedIsCross = false;
LoaderQueue.add(this);
}
public function queueFile(_arg1:String):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_isQueued = true;
_queuedURL = _arg1;
_queuedMethod = _beginFileLoad;
_queuedIsCross = false;
LoaderQueue.add(this);
}
public function queueSWF(_arg1:String, _arg2:Boolean=false):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_isQueued = true;
_queuedURL = _arg1;
_queuedMethod = _beginSWFLoad;
_queuedIsCross = _arg2;
LoaderQueue.add(this);
}
private function _onBitmapLoaded(_arg1:Event):void{
_endBitmapLoad();
dispatchEvent(new EBitmap(true, Bitmap(_bitmapLoader.content), _bitmapLoader.contentLoaderInfo.url));
}
public function loadBitmap(_arg1:String):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_beginBitmapLoad(_arg1);
}
private function _onBitmapError(_arg1:Event):void{
_endBitmapLoad();
_error("Bitmap Loading Error : File not found. Session terminated.");
dispatchEvent(new EBitmap(false));
}
public function loadSWF(_arg1:String, _arg2:Boolean=false):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_beginSWFLoad(_arg1, _arg2);
}
private function _onFileSecurityError(_arg1:Event):void{
_endBitmapLoad();
_error("File Loading Error : Security Sandbox Error. Session terminated.");
dispatchEvent(new EFile(false));
}
private function _endFileLoad():void{
_isLoading = false;
if (_isQueued){
_resolveQueue();
};
_bitmapLoader.contentLoaderInfo.removeEventListener("progress", _onBitmapProgress);
_bitmapLoader.contentLoaderInfo.removeEventListener("complete", _onBitmapLoaded);
_bitmapLoader.contentLoaderInfo.removeEventListener("ioError", _onBitmapError);
_bitmapLoader.contentLoaderInfo.removeEventListener("securityError", _onBitmapSecurityError);
}
private function _onSWFLoaded(_arg1:Event):void{
_endSWFLoad();
dispatchEvent(new ESWF(true, _SWFLoader.content, _SWFLoader.contentLoaderInfo.url));
}
public function cleanUp():void{
if (_bitmapLoader != null){
try {
_bitmapLoader.unload();
} catch(pError:Error) {
};
};
if (_SWFLoader != null){
try {
_SWFLoader.unload();
} catch(pError:Error) {
};
};
}
private function _beginFileLoad(_arg1:String):void{
if (_fileLoader != null){
_fileLoader.unload();
};
_isLoading = true;
_fileLoader = new Loader();
_fileLoader.load(new URLRequest(_arg1));
_fileLoader.contentLoaderInfo.addEventListener("progress", _onFileProgress);
_fileLoader.contentLoaderInfo.addEventListener("complete", _onFileLoaded);
_fileLoader.contentLoaderInfo.addEventListener("ioError", _onFileError);
_fileLoader.contentLoaderInfo.addEventListener("securityError", _onFileSecurityError);
}
private function _onXMLError(_arg1:Event):void{
_endXMLLoad();
_error("XML Loading Error : File not found. Session terminated.");
dispatchEvent(new EXML(false));
}
public function queueXML(_arg1:String):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_isQueued = true;
_queuedURL = _arg1;
_queuedMethod = _beginXMLLoad;
_queuedIsCross = false;
LoaderQueue.add(this);
}
private function _onFileLoaded(_arg1:Event):void{
_endBitmapLoad();
dispatchEvent(new EFile(true, _fileLoader.content, _fileLoader.contentLoaderInfo.url));
}
public function loadXML(_arg1:String):void{
if (_isLoading){
_error(_ERR_ALREADY_LOADING);
return;
};
if (_arg1 == ""){
_error(_ERR_EMPTY_URL);
return;
};
_beginXMLLoad(_arg1);
}
private function _onBitmapSecurityError(_arg1:Event):void{
_endBitmapLoad();
_error("Bitmap Loading Error : Security Sandbox Error. Session terminated.");
dispatchEvent(new EBitmap(false));
}
public function executeQueuedLoad():void{
if (_queuedIsCross){
_queuedMethod(_queuedURL, _queuedIsCross);
} else {
_queuedMethod(_queuedURL);
};
}
private function _endXMLLoad():void{
_isLoading = false;
if (_isQueued){
_resolveQueue();
};
_XMLLoader.removeEventListener("progress", _onXMLProgress);
_XMLLoader.removeEventListener("complete", _onXMLLoaded);
_XMLLoader.removeEventListener("ioError", _onXMLError);
_XMLLoader.removeEventListener("securityError", _onXMLSecurityError);
}
private function _resolveQueue():void{
_isQueued = false;
dispatchEvent(new ELoaderQueue(this));
}
private function _onFileProgress(_arg1:ProgressEvent):void{
dispatchEvent(new EProgress(FILE_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal, _fileLoader.contentLoaderInfo.url));
}
private function _endSWFLoad():void{
_isLoading = false;
if (_isQueued){
_resolveQueue();
};
_SWFLoader.contentLoaderInfo.removeEventListener("progress", _onSWFProgress);
_SWFLoader.contentLoaderInfo.removeEventListener("init", _onSWFLoaded);
_SWFLoader.contentLoaderInfo.removeEventListener("ioError", _onSWFError);
_SWFLoader.contentLoaderInfo.removeEventListener("securityError", _onSWFSecurityError);
}
private function _onXMLSecurityError(_arg1:Event):void{
_endXMLLoad();
_error("XML Loading Error : Security Sandbox Error. Session terminated.");
dispatchEvent(new EXML(false));
}
private function _endBitmapLoad():void{
_isLoading = false;
if (_isQueued){
_resolveQueue();
};
_bitmapLoader.contentLoaderInfo.removeEventListener("progress", _onBitmapProgress);
_bitmapLoader.contentLoaderInfo.removeEventListener("complete", _onBitmapLoaded);
_bitmapLoader.contentLoaderInfo.removeEventListener("ioError", _onBitmapError);
_bitmapLoader.contentLoaderInfo.removeEventListener("securityError", _onBitmapSecurityError);
}
private function _onSWFProgress(_arg1:ProgressEvent):void{
dispatchEvent(new EProgress(SWF_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal, _SWFLoader.contentLoaderInfo.url));
}
private function _onSWFSecurityError(_arg1:Event):void{
_endSWFLoad();
_error("SWF Loading Error : Security Sandbox Error. Session terminated.");
dispatchEvent(new ESWF(false));
}
private function _beginSWFLoad(_arg1:String, _arg2:Boolean=false):void{
var pURL = _arg1;
var pIsCrossServer = _arg2;
if (_SWFLoader != null){
try {
_SWFLoader.unload();
} catch(pError:Error) {
};
};
_isLoading = true;
_SWFLoader = new Loader();
try {
_SWFLoader.load(new URLRequest(pURL), new LoaderContext(false, ApplicationDomain.currentDomain, (pIsCrossServer) ? SecurityDomain.currentDomain : null));
} catch(pError:Error) {
_SWFLoader.load(new URLRequest(pURL), new LoaderContext(false, ApplicationDomain.currentDomain));
};
_SWFLoader.contentLoaderInfo.addEventListener("progress", _onSWFProgress);
_SWFLoader.contentLoaderInfo.addEventListener("complete", _onSWFLoaded);
_SWFLoader.contentLoaderInfo.addEventListener("ioError", _onSWFError);
_SWFLoader.contentLoaderInfo.addEventListener("securityError", _onSWFSecurityError);
}
private function _beginBitmapLoad(_arg1:String):void{
var pURL = _arg1;
if (_bitmapLoader != null){
try {
_bitmapLoader.unload();
} catch(pError:Error) {
};
};
_isLoading = true;
_bitmapLoader = new Loader();
_bitmapLoader.load(new URLRequest(pURL));
_bitmapLoader.contentLoaderInfo.addEventListener("progress", _onBitmapProgress);
_bitmapLoader.contentLoaderInfo.addEventListener("complete", _onBitmapLoaded);
_bitmapLoader.contentLoaderInfo.addEventListener("ioError", _onBitmapError);
_bitmapLoader.contentLoaderInfo.addEventListener("securityError", _onBitmapSecurityError);
}
public static function get FILE_PROGRESS():String{
return (FileLoader.ON_PROGRESS);
}
public static function get ON_QUEUE():String{
return ("onQueuedLoadEnd");
}
public static function get XML_LOADED():String{
return (XMLLoader.ON_XML);
}
public static function get BITMAP_LOADED():String{
return (BitmapLoader.ON_BITMAP);
}
public static function get FILE_LOADED():String{
return (FileLoader.ON_FILE);
}
public static function get SWF_LOADED():String{
return (SWFLoader.ON_SWF);
}
public static function get SWF_PROGRESS():String{
return (SWFLoader.ON_PROGRESS);
}
public static function get XML_PROGRESS():String{
return (XMLLoader.ON_PROGRESS);
}
public static function get BITMAP_PROGRESS():String{
return (BitmapLoader.ON_PROGRESS);
}
}
}//package com.workinman.lib.net
Section 26
//XMLLoader (com.workinman.lib.net.XMLLoader)
package com.workinman.lib.net {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.net.*;
public class XMLLoader {
private static var _eventDispatcher:EventDispatcher;
private static var _XMLURLLoader:URLLoader;
private static var _loadQueue:Array;
private static var _isLoading:Boolean;
protected static function _dispatchEvent(_arg1:Event):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.dispatchEvent(_arg1);
}
private static function _onXMLLoaded(_arg1:Event):void{
_dispatchEvent(new EXML(true, XML(_XMLURLLoader.data)));
_clearXMLListeners();
_completeLoad();
}
private static function _onXMLProgress(_arg1:ProgressEvent):void{
_dispatchEvent(new EProgress(ON_PROGRESS, _arg1.bytesLoaded, _arg1.bytesTotal));
}
public static function get ON_PROGRESS():String{
return ("onXMLProgress");
}
private static function _onXMLError(_arg1:Event):void{
_dispatchEvent(new EXML(false));
_clearXMLListeners();
_completeLoad();
}
protected static function _beginLoad(_arg1:String):void{
_isLoading = true;
XML.ignoreWhitespace = true;
_XMLURLLoader = new URLLoader(new URLRequest(_arg1));
_XMLURLLoader.addEventListener("progress", _onXMLProgress);
_XMLURLLoader.addEventListener("complete", _onXMLLoaded);
_XMLURLLoader.addEventListener("ioError", _onXMLError);
_XMLURLLoader.addEventListener("securityError", _onXMLSecurityError);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.removeEventListener(_arg1, _arg2);
}
public static function load(_arg1:String):void{
if (_loadQueue == null){
_loadQueue = [];
};
if (_isLoading == true){
_queueLoad(_arg1);
} else {
_beginLoad(_arg1);
};
}
private static function _onXMLSecurityError(_arg1:Event):void{
_dispatchEvent(new EXML(false));
_clearXMLListeners();
_completeLoad();
}
public static function get ON_XML():String{
return ("onXML");
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
if (_eventDispatcher == null){
_eventDispatcher = new EventDispatcher();
};
_eventDispatcher.addEventListener(_arg1, _arg2);
}
private static function _clearXMLListeners():void{
_XMLURLLoader.removeEventListener("complete", _onXMLLoaded);
_XMLURLLoader.removeEventListener("ioError", _onXMLError);
_XMLURLLoader.removeEventListener("securityError", _onXMLSecurityError);
}
protected static function _completeLoad():void{
if (_loadQueue.length == 0){
_isLoading = false;
} else {
_beginLoad(_loadQueue.shift());
};
}
private static function _queueLoad(_arg1:String):void{
_loadQueue.push(_arg1);
}
}
}//package com.workinman.lib.net
Section 27
//GlobalSound (com.workinman.lib.sound.GlobalSound)
package com.workinman.lib.sound {
public class GlobalSound {
private static var _instance:SoundManager;
public static function getInstance():SoundManager{
if (_instance == null){
_instance = new SoundManager();
};
return (_instance);
}
}
}//package com.workinman.lib.sound
Section 28
//GlobalVoice (com.workinman.lib.sound.GlobalVoice)
package com.workinman.lib.sound {
public class GlobalVoice {
private static var _instance:VoiceManager;
public static function getInstance():VoiceManager{
if (_instance == null){
_instance = new VoiceManager();
};
return (_instance);
}
}
}//package com.workinman.lib.sound
Section 29
//SoundManager (com.workinman.lib.sound.SoundManager)
package com.workinman.lib.sound {
import flash.events.*;
import com.workinman.lib.utils.*;
import flash.media.*;
import flash.net.*;
public class SoundManager extends EventDispatcher {
protected const _DEFAULT_GROUP:String = "def";
protected var _loop:Number;
protected var _externalSounds:Array;
protected var _isSoundOff:Boolean;
protected var _isLoading:Boolean;
protected var _sounds:Object;
protected var _isMusicOff:Boolean;
protected var _currentMusicID:String;
public function SoundManager():void{
_sounds = {};
_externalSounds = [];
_currentMusicID = "";
_isLoading = false;
_isSoundOff = false;
_isMusicOff = false;
}
public function musicOff():void{
stopMusic();
_isMusicOff = true;
}
public function soundEffectsOff():void{
_isSoundOff = true;
}
public function muteOff():void{
_isSoundOff = false;
_isMusicOff = false;
playMusic();
}
public function unpauseSound(_arg1:String):void{
resumeSound(_arg1);
}
public function stopGroup(_arg1:String):void{
var _local2:String;
for (_local2 in _sounds) {
if ((((_sounds[_local2].group == _arg1)) && (_sounds[_local2].isPlaying))){
stopSound(_local2);
};
};
}
public function registerExternalSound(_arg1:String, _arg2:String):void{
_sounds[_arg1] = new WorkinSoundData(null, new URLRequest(_arg2));
_sounds[_arg1].id = _arg1;
_externalSounds.push(_sounds[_arg1]);
if (!_isLoading){
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _updateExternalLoader);
};
_isLoading = true;
}
public function setVolume(_arg1:Number, _arg2:String="def"):void{
var _local3:String;
for (_local3 in _sounds) {
if ((((_arg2 == "all")) || ((_sounds[_local3].group == _arg2)))){
_sounds[_local3].volume = _arg1;
};
};
}
public function soundEffectsToggle():void{
if (_isSoundOff){
soundEffectsOn();
} else {
soundEffectsOff();
};
}
public function silence():void{
var _local1:String;
for (_local1 in _sounds) {
stopSound(_local1);
};
}
public function get isSoundOff():Boolean{
return (_isSoundOff);
}
public function registerSound(_arg1:String, _arg2:Class, _arg3:String="def"):void{
_sounds[_arg1] = new WorkinSoundData(_arg2);
_sounds[_arg1].id = _arg1;
_sounds[_arg1].group = _arg3;
}
public function stopSound(_arg1:String):void{
if (!_verifySound(_arg1, true)){
return;
};
_sounds[_arg1].stop();
}
public function get isLoading():Boolean{
return (_isLoading);
}
public function pauseSound(_arg1:String):void{
if (!_verifySound(_arg1, true)){
return;
};
_sounds[_arg1].stop();
}
public function playSound(_arg1:String, _arg2:Boolean=false, _arg3:Number=0, _arg4:Number=0, _arg5:SoundTransform=null):void{
if (!_verifySound(_arg1)){
return;
};
if (_arg2){
stopSound(_arg1);
};
_sounds[_arg1].play(_arg3, _arg4, _arg5);
}
public function soundEffectsOn():void{
_isSoundOff = false;
}
public function stopMusic():void{
if (_currentMusicID == ""){
return;
};
stopSound(_currentMusicID);
}
public function cleanUp():void{
var _local1:String;
if (_currentMusicID != ""){
stopMusic();
};
for (_local1 in _sounds) {
stopSound(_local1);
_sounds[_local1].cleanUp();
delete _sounds[_local1];
};
_externalSounds = [];
if (_isLoading){
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _updateExternalLoader);
};
}
public function fadeInSound(_arg1:String):void{
if (!_verifySound(_arg1)){
return;
};
_sounds[_arg1].fadeIn();
}
public function loopSound(_arg1:String, _arg2:SoundTransform=null):void{
if (!_verifySound(_arg1)){
return;
};
_sounds[_arg1].loop(_arg2);
}
protected function _updateExternalLoader(_arg1:Number):void{
_isLoading = false;
_loop = _externalSounds.length;
while (_loop--) {
if (_externalSounds[_loop].bytesLoaded < _externalSounds[_loop].bytesTotal){
_isLoading = true;
};
};
if (!_isLoading){
_externalSounds = [];
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _updateExternalLoader);
};
}
private function _verifySound(_arg1:String, _arg2:Boolean=false):Boolean{
return (((((_arg2) || (!(_isSoundOff)))) && (!((_sounds[_arg1] == null)))));
}
public function playMusic(_arg1:String=null, _arg2:SoundTransform=null):void{
if (_isMusicOff){
return;
};
if (_arg1 == null){
_arg1 = _currentMusicID;
};
if (_sounds[_arg1] == null){
return;
};
if (_currentMusicID != ""){
if ((((_currentMusicID == _arg1)) && ((_sounds[_currentMusicID].isPlaying == true)))){
return;
};
if (_sounds[_currentMusicID].isPlaying){
stopMusic();
};
};
_currentMusicID = _arg1;
_sounds[_arg1].loop(_arg2);
}
public function getSound(_arg1:String):WorkinSoundData{
return (_sounds[_arg1]);
}
public function get isMusicOff():Boolean{
return (_isMusicOff);
}
public function muteToggle():void{
if (isMute){
muteOff();
} else {
muteOn();
};
}
public function muteOn():void{
stopMusic();
_isSoundOff = true;
_isMusicOff = true;
}
public function musicToggle():void{
if (_isMusicOff){
musicOn();
} else {
musicOff();
};
}
public function resumeSound(_arg1:String, _arg2:Number=-1):void{
if (!_verifySound(_arg1, true)){
return;
};
_sounds[_arg1].resume(_arg2);
}
public function musicOn():void{
_isMusicOff = false;
playMusic();
}
public function playExclusiveSound(_arg1:String, _arg2:Number=0, _arg3:Number=0, _arg4:SoundTransform=null):void{
if (!_verifySound(_arg1)){
return;
};
stopGroup(_sounds[_arg1].group);
_sounds[_arg1].play(_arg2, _arg3, _arg4);
}
public function isSoundPlaying(_arg1:String):Boolean{
if (_sounds[_arg1] == undefined){
return (false);
};
return ((_sounds[_arg1].isPlaying == true));
}
public function get isMute():Boolean{
return (((_isMusicOff) && (_isSoundOff)));
}
public function addSound(_arg1:String, _arg2:Class, _arg3:String="def"):void{
registerSound(_arg1, _arg2, _arg3);
}
private function _verifyMusic(_arg1:String, _arg2:Boolean=false):Boolean{
return (((((_arg2) || (!(_isMusicOff)))) && (!((_sounds[_arg1] == null)))));
}
public function fadeOutSound(_arg1:String):void{
if (!_verifySound(_arg1, true)){
return;
};
_sounds[_arg1].fadeOut();
}
}
}//package com.workinman.lib.sound
Section 30
//VoiceManager (com.workinman.lib.sound.VoiceManager)
package com.workinman.lib.sound {
import flash.events.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import flash.media.*;
import flash.net.*;
public class VoiceManager extends EventDispatcher {
private var _loop:Number;
private var _channel:SoundChannel;
private var _externalSounds:Array;
private var _currentVOID:String;
private var _clips:Object;
private var _isPlaying:Boolean;
private var _currentMusicID:String;
private var _isLoading:Boolean;
public static var EVENT_VOICE_COMPLETE:String = "onVoiceManagerVOComplete";
public function VoiceManager():void{
_clips = {};
_externalSounds = [];
_currentVOID = "";
_isLoading = false;
_isPlaying = false;
}
public function setVolume(_arg1:Number):void{
var _local2:String;
for (_local2 in _clips) {
_clips[_local2].volume = _arg1;
};
}
private function _cleanPlaying():void{
if (!_isPlaying){
return;
};
_isPlaying = false;
_currentVOID = "";
_channel.removeEventListener(Event.SOUND_COMPLETE, _onVOComplete);
}
private function _onVOComplete(_arg1:Event):void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(EVENT_VOICE_COMPLETE, {id:_currentVOID}));
_cleanPlaying();
}
public function stopVO(_arg1:String):void{
if (!_isPlaying){
return;
};
_clips[_arg1].stop();
_cleanPlaying();
}
public function registerExternalVO(_arg1:String, _arg2:String):void{
_clips[_arg1] = new WorkinSoundData(null, new URLRequest(_arg2));
_clips[_arg1].id = _arg1;
_externalSounds.push(_clips[_arg1]);
if (!_isLoading){
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _updateExternalLoader);
};
_isLoading = true;
}
public function addVO(_arg1:String, _arg2:Class):void{
registerVO(_arg1, _arg2);
}
public function silence():void{
if (!_isPlaying){
return;
};
stopVO(_currentVOID);
}
private function _updateExternalLoader(_arg1:Number):void{
_isLoading = false;
_loop = _externalSounds.length;
while (_loop--) {
if (_externalSounds[_loop].bytesLoaded < _externalSounds[_loop].bytesTotal){
_isLoading = true;
};
};
if (!_isLoading){
_externalSounds = [];
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _updateExternalLoader);
};
}
public function get isPlaying():Boolean{
return (_isPlaying);
}
public function cleanUp():void{
var _local1:String;
_cleanPlaying();
for (_local1 in _clips) {
_clips[_local1].cleanUp();
delete _clips[_local1];
};
_externalSounds = [];
if (_isLoading){
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _updateExternalLoader);
};
}
public function get isLoading():Boolean{
return (_isLoading);
}
public function get currentVoice():String{
return (_currentMusicID);
}
public function playVO(_arg1:String, _arg2:Number=0):void{
if (_isPlaying){
stopVO(_currentVOID);
};
_channel = _clips[_arg1].play(0, _arg2);
_channel.addEventListener(Event.SOUND_COMPLETE, _onVOComplete);
_currentVOID = _arg1;
_isPlaying = true;
}
public function registerVO(_arg1:String, _arg2:Class):void{
_clips[_arg1] = new WorkinSoundData(_arg2);
_clips[_arg1].id = _arg1;
}
}
}//package com.workinman.lib.sound
Section 31
//WorkinSoundData (com.workinman.lib.sound.WorkinSoundData)
package com.workinman.lib.sound {
import flash.events.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import flash.media.*;
import flash.net.*;
public class WorkinSoundData extends EventDispatcher {
private var _sound:Sound;
private var _group:String;
private var _isPlaying:Boolean;
private var _fadeDir:Number;
private var _isLooping:Boolean;
private var _volume:Number;
private var _id:String;
private var _channel:SoundChannel;
private var _isPaused:Boolean;
private var _pausePosition:Number;
private var _fadeRate:Number;
private var _isFading:Boolean;
private var _fadeVol:Number;
public static const COMPLETE:String = "onWorkinSoundDataComplete";
public static const SOUND_STOP:String = "onWorkinSoundStop";
public static const SOUND_PAUSE:String = "onWorkinSoundPause";
private static const _DEF_FADE_RATE:Number = 0.8;
public static const SOUND_PLAY:String = "onWorkinSoundPlay";
public static const SOUND_POSITION:String = "onWorkinSoundPosition";
public function WorkinSoundData(_arg1:Class=null, _arg2:URLRequest=null, _arg3:SoundLoaderContext=null){
if (_arg1 == null){
_sound = new Sound(_arg2, _arg3);
} else {
_sound = new (_arg1);
};
_volume = 1;
_fadeVol = _volume;
_isPlaying = false;
_isPaused = false;
_isLooping = false;
_isFading = false;
_fadeRate = _DEF_FADE_RATE;
}
public function stop():void{
if (!_isPlaying){
return;
};
_isPlaying = false;
_isLooping = false;
_isFading = false;
_removeListener();
_channel.stop();
_channel = null;
dispatchEvent(new Event(SOUND_STOP));
}
private function _onSoundComplete(_arg1:Event):void{
_isPlaying = false;
dispatchEvent(new Event(COMPLETE));
_removeListener();
if (_isLooping){
play(0, 100);
};
}
public function get bytesTotal():Number{
return (_sound.bytesTotal);
}
public function set fadeRate(_arg1:Number):void{
_fadeRate = _arg1;
}
public function get id():String{
return (_id);
}
private function _setVolume(_arg1:Number):void{
var _local2:SoundTransform;
_local2 = _channel.soundTransform;
_local2.volume = _volume;
_channel.soundTransform = _local2;
}
public function get volume():Number{
return (_volume);
}
public function get isPlaying():Boolean{
return (_isPlaying);
}
public function get position():Number{
return ((_isPlaying) ? _channel.position : 0);
}
public function loop(_arg1:SoundTransform=null):void{
if (_isPlaying){
if (_isLooping){
return;
};
stop();
};
play(0, 100, _arg1);
_isLooping = true;
}
public function resume(_arg1:Number=-1):void{
if (_arg1 >= 0){
_pausePosition = _arg1;
};
play();
}
public function get isLooping():Boolean{
return (_isLooping);
}
public function set volume(_arg1:Number):void{
_volume = _arg1;
if (_isPlaying){
_setVolume(_arg1);
};
}
public function set id(_arg1:String):void{
_id = _arg1;
}
public function play(_arg1:Number=0, _arg2:int=0, _arg3:SoundTransform=null):SoundChannel{
if (_isPaused){
_channel = _sound.play(_pausePosition);
_isPaused = false;
} else {
_channel = _sound.play(_arg1, _arg2, _arg3);
};
_isPlaying = true;
_channel.addEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
if (_volume != 1){
_setVolume(_volume);
};
dispatchEvent(new Event(SOUND_PLAY));
return (_channel);
}
private function _beginFade():void{
if (_isFading){
return;
};
_setVolume(_fadeVol);
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _fade);
_isFading = true;
}
public function fadeIn(_arg1:Number=0, _arg2:int=0, _arg3:SoundTransform=null):void{
var _local4:Number;
if (((_isPlaying) && (!(_isFading)))){
return;
};
if (!_isPlaying){
_local4 = _volume;
_volume = 0;
play(_arg1, _arg2, _arg3);
_volume = _local4;
};
if (!_isFading){
_fadeVol = 0;
};
_fadeDir = 1;
_beginFade();
}
private function _completeFade():void{
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _fade);
_isFading = false;
}
public function get isLoaded():Boolean{
return ((_sound.bytesLoaded == _sound.bytesTotal));
}
public function get bytesLoaded():Number{
return (_sound.bytesLoaded);
}
public function cleanUp():void{
_isLooping = false;
if (_isPlaying){
stop();
};
if (_isFading){
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _fade);
};
}
public function fadeOut():void{
if (!_isPlaying){
return;
};
if (!_isFading){
_fadeVol = _volume;
};
_fadeDir = -1;
_beginFade();
}
public function get length():Number{
return (_sound.length);
}
private function _fade(_arg1:EUpdate):void{
if (_fadeDir > 0){
_fadeVol = (_fadeVol + (_arg1.dt * _fadeRate));
if (_fadeVol >= _volume){
_fadeVol = _volume;
_completeFade();
};
} else {
_fadeVol = (_fadeVol - (_arg1.dt * _fadeRate));
if (_fadeVol <= 0){
_fadeVol = 0;
_completeFade();
stop();
};
};
_setVolume(_fadeVol);
}
public function pause():void{
if (!_isPlaying){
return;
};
_isPlaying = false;
_isPaused = true;
_pausePosition = _channel.position;
_channel.stop();
_removeListener();
_channel = null;
dispatchEvent(new Event(SOUND_PAUSE));
}
private function _removeListener():void{
try {
_channel.removeEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
} catch(pError:Error) {
};
}
public function get fadeRate():Number{
return (_fadeRate);
}
public function unpause(_arg1:Number=-1):void{
resume(_arg1);
}
public function set group(_arg1:String):void{
_group = _arg1;
}
public function get group():String{
return (_group);
}
}
}//package com.workinman.lib.sound
Section 32
//Updater (com.workinman.lib.utils.Updater)
package com.workinman.lib.utils {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.utils.*;
public class Updater extends EventDispatcher {
private var _lastTimer:Number;
private var _loop:Number;
private var _timer:Timer;
private var _minimumUpdateTime:Number;
private var _deltaTime:Number;
private var _currentTimer:Number;
private var _autoStart:Boolean;
private var _listenerCount:Number;
private static var _instance:Updater;
public static var EVENT_UPDATE:String = "onUpdate";
public function Updater():void{
}
public function get UPDATE():String{
return (Updater.EVENT_UPDATE);
}
public function get autoStart():Boolean{
return (_autoStart);
}
override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
_listenerCount--;
super.removeEventListener(_arg1, _arg2, _arg3);
if ((((_listenerCount == 0)) && (_autoStart))){
stop();
};
}
override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
_listenerCount++;
super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
if ((((_listenerCount == 1)) && (_autoStart))){
start();
};
}
public function init():void{
_timer = new Timer(0, 0);
_timer.stop();
_timer.addEventListener("timer", _timerHandler);
_deltaTime = 0;
_minimumUpdateTime = 0;
_autoStart = true;
_listenerCount = 0;
}
public function stop():void{
pause();
}
public function start():void{
unpause();
}
private function _timerHandler(_arg1:TimerEvent):void{
_currentTimer = getTimer();
_deltaTime = (_deltaTime + ((_currentTimer - _lastTimer) / 1000));
_lastTimer = _currentTimer;
if (_deltaTime < _minimumUpdateTime){
return;
};
dispatchEvent(new EUpdate(EVENT_UPDATE, _deltaTime));
_deltaTime = 0;
_arg1.updateAfterEvent();
}
public function enableAutoStart():void{
_autoStart = true;
}
public function disableAutoStart():void{
_autoStart = false;
}
public function pause():void{
if (!_timer.running){
return;
};
_timer.stop();
}
public function unpause():void{
if (_timer.running){
return;
};
_lastTimer = getTimer();
_timer.start();
}
public function lockFPS(_arg1:Number):void{
_minimumUpdateTime = (Math.round(((1 / _arg1) * 1000)) / 1000);
}
public static function getInstance():Updater{
if (_instance == null){
_instance = new (Updater);
_instance.init();
};
return (_instance);
}
}
}//package com.workinman.lib.utils
Section 33
//WorkinDispatcher (com.workinman.lib.utils.WorkinDispatcher)
package com.workinman.lib.utils {
import flash.events.*;
public class WorkinDispatcher extends EventDispatcher {
private var _rooms:Object;
private static var _instance:WorkinDispatcher;
public function WorkinDispatcher():void{
}
public function getRoom(_arg1:String):EventDispatcher{
if (_rooms == null){
_rooms = {};
};
if (_rooms[_arg1] == undefined){
_rooms[_arg1] = new EventDispatcher();
};
return (_rooms[_arg1]);
}
public static function getInstance():WorkinDispatcher{
if (_instance == null){
_instance = new (WorkinDispatcher);
};
return (_instance);
}
}
}//package com.workinman.lib.utils
Section 34
//EmptyAsset (com.workinman.paradise.assets.EmptyAsset)
package com.workinman.paradise.assets {
import com.workinman.lib.display.*;
public class EmptyAsset extends GameAsset {
public function EmptyAsset(){
_addAnim("idle", (WorkinMovieClip as Class));
animate("idle");
}
}
}//package com.workinman.paradise.assets
Section 35
//GameAsset (com.workinman.paradise.assets.GameAsset)
package com.workinman.paradise.assets {
import com.workinman.lib.math.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.display.*;
public class GameAsset extends WorkinMovieClip {
private var _currentFrame:String;
private var _frames:Object;
public function GameAsset(){
_frames = {};
_currentFrame = "";
}
public function dispatchToAnim(_arg1:EData):void{
_frames[_currentFrame].dispatchEvent(_arg1);
}
public function isAnimationComplete():Boolean{
return ((mc.currentFrame == mc.totalFrames));
}
public function animate(_arg1:String):void{
if (_currentFrame == _arg1){
return;
};
if (!_frames.hasOwnProperty(_arg1)){
return;
};
if (_currentFrame != ""){
_frames[_currentFrame].stop();
removeChild(_frames[_currentFrame]);
};
addChild(_frames[_arg1]);
_frames[_arg1].gotoAndPlay(1);
_currentFrame = _arg1;
}
public function getFrameDimensions(_arg1:String):WorkinPoint{
if (!_frames.hasOwnProperty(_arg1)){
return (new WorkinPoint());
};
return (new WorkinPoint(_frames[_arg1].width, _frames[_arg1].height));
}
protected function _addAnim(_arg1:String, _arg2:Class):void{
_frames[_arg1] = new (_arg2);
_frames[_arg1].gotoAndStop(1);
}
public function getFrameArt(_arg1:String):Class{
if (!_frames.hasOwnProperty(_arg1)){
return (null);
};
return (_frames[_arg1]);
}
public function get animation():String{
return (_currentFrame);
}
public function get mc():MovieClip{
return (_frames[_currentFrame]);
}
}
}//package com.workinman.paradise.assets
Section 36
//AssetManager (com.workinman.paradise.data.AssetManager)
package com.workinman.paradise.data {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
public class AssetManager extends EventDispatcher {
private var _loop:Number;
private var _sequentialDataLoadIndex:Number;
private var _assets:Array;
public static var ON_ERROR:String = "onAssetManagerLoadError";
public static var ON_COMPLETE:String = "onAssetManagerLoadComplete";
public function AssetManager(){
_assets = [];
}
private function _onAssetDataLoadComplete():void{
dispatchEvent(new Event(ON_COMPLETE));
}
private function _onAssetDataLoaded(_arg1:Event):void{
_assets[_sequentialDataLoadIndex].removeEventListener(AssetStorage.ON_DATA, _onAssetDataLoaded);
_assets[_sequentialDataLoadIndex].removeEventListener(AssetStorage.ON_ERROR, _onAssetDataLoadFailed);
_sequentialDataLoadIndex++;
if (_sequentialDataLoadIndex < _assets.length){
_loadAssetData();
} else {
_onAssetDataLoadComplete();
};
}
public function cleanUp():void{
if (_sequentialDataLoadIndex < _assets.length){
_assets[_sequentialDataLoadIndex].removeEventListener(AssetStorage.ON_DATA, _onAssetDataLoaded);
_assets[_sequentialDataLoadIndex].removeEventListener(AssetStorage.ON_ERROR, _onAssetDataLoadFailed);
_sequentialDataLoadIndex = (_assets.length + 1);
};
_loop = _assets.length;
while (_loop--) {
_assets[_loop].cleanUp();
};
_assets = [];
}
private function _findAssetByID(_arg1:String):AssetStorage{
_loop = _assets.length;
while (_loop--) {
if (_assets[_loop].id == _arg1){
return (_assets[_loop]);
};
};
return (null);
}
public function beginSequentialDataLoad():void{
_sequentialDataLoadIndex = 0;
_loadAssetData();
}
public function add(_arg1:String):void{
_assets.push(new AssetStorage(_arg1));
}
private function _loadAssetData():void{
_assets[_sequentialDataLoadIndex].addEventListener(AssetStorage.ON_DATA, _onAssetDataLoaded);
_assets[_sequentialDataLoadIndex].addEventListener(AssetStorage.ON_ERROR, _onAssetDataLoadFailed);
_assets[_sequentialDataLoadIndex].loadData();
}
public function getAsset(_arg1:String):DisplayObject{
return (_findAssetByID(_arg1).asset);
}
private function _onAssetDataLoadFailed(_arg1:Event):void{
_assets[_sequentialDataLoadIndex].removeEventListener(AssetStorage.ON_DATA, _onAssetDataLoaded);
_assets[_sequentialDataLoadIndex].removeEventListener(AssetStorage.ON_ERROR, _onAssetDataLoadFailed);
dispatchEvent(new EData(ON_ERROR, {url:_assets[_sequentialDataLoadIndex].url}));
}
}
}//package com.workinman.paradise.data
Section 37
//AssetStorage (com.workinman.paradise.data.AssetStorage)
package com.workinman.paradise.data {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.net.*;
public class AssetStorage extends EventDispatcher {
private var _workinLoader:WorkinLoader;
private var _isLoaded:Boolean;
private var _url:String;
private var _asset:DisplayObject;
public static var ON_ERROR:String = "onAssetStorageError";
public static var ON_DATA:String = "onAssetStorageData";
public function AssetStorage(_arg1:String){
_url = _arg1;
_workinLoader = new WorkinLoader();
_isLoaded = false;
}
public function cleanUp():void{
_asset = null;
}
private function _onSWFLoaded(_arg1:ESWF):void{
if (_arg1.success){
_onAssetLoaded(_arg1.swf);
} else {
_onAssetError();
};
}
private function _onAssetError():void{
_clearLoader();
dispatchEvent(new Event(ON_ERROR));
}
private function _clearLoader():void{
_workinLoader.removeEventListener(WorkinLoader.BITMAP_LOADED, _onBitmapLoaded);
_workinLoader.removeEventListener(WorkinLoader.SWF_LOADED, _onSWFLoaded);
_workinLoader.cleanUp();
_workinLoader = null;
}
private function _loadAsset():void{
if (_url.indexOf("swf") > -1){
_workinLoader.loadSWF(_url);
} else {
_workinLoader.loadBitmap(_url);
};
}
public function get url():String{
return (_url);
}
private function _onBitmapLoaded(_arg1:EBitmap):void{
var _local2:MovieClip;
if (_arg1.success){
_local2 = new MovieClip();
_local2.addChild(_arg1.bitmap);
_onAssetLoaded(_local2);
} else {
_onAssetError();
};
}
public function get asset():DisplayObject{
return (_asset);
}
private function _onAssetLoaded(_arg1:DisplayObject):void{
_asset = _arg1;
_isLoaded = true;
_clearLoader();
dispatchEvent(new Event(ON_DATA));
}
public function loadData():void{
_workinLoader.addEventListener(WorkinLoader.BITMAP_LOADED, _onBitmapLoaded);
_workinLoader.addEventListener(WorkinLoader.SWF_LOADED, _onSWFLoaded);
_loadAsset();
}
}
}//package com.workinman.paradise.data
Section 38
//BaseLevelData (com.workinman.paradise.data.BaseLevelData)
package com.workinman.paradise.data {
public class BaseLevelData {
protected var _loop:Number;
public function BaseLevelData(_arg1:LevelStorage){
}
}
}//package com.workinman.paradise.data
Section 39
//LevelManager (com.workinman.paradise.data.LevelManager)
package com.workinman.paradise.data {
import flash.events.*;
import com.workinman.lib.events.*;
public class LevelManager extends EventDispatcher {
private var _loop:Number;
private var _sequentialDataLoadIndex:Number;
protected var _levels:Array;
public static var ON_ERROR:String = "onLevelManagerLoadError";
public static var ON_COMPLETE:String = "onLevelManagerLoadComplete";
public function LevelManager(){
_levels = [];
}
private function _loadLevelData():void{
_levels[_sequentialDataLoadIndex].addEventListener(LevelStorage.ON_DATA, _onLevelDataLoaded);
_levels[_sequentialDataLoadIndex].addEventListener(LevelStorage.ON_ERROR, _onLevelDataLoadFailed);
_levels[_sequentialDataLoadIndex].loadData();
}
public function cleanUp():void{
if (_sequentialDataLoadIndex < _levels.length){
_levels[_sequentialDataLoadIndex].removeEventListener(LevelStorage.ON_DATA, _onLevelDataLoaded);
_levels[_sequentialDataLoadIndex].removeEventListener(LevelStorage.ON_ERROR, _onLevelDataLoadFailed);
_sequentialDataLoadIndex = (_levels.length + 1);
};
_loop = _levels.length;
while (_loop--) {
_levels[_loop].cleanUp();
};
_levels = [];
}
private function _findLevelByNum(_arg1:Number):LevelStorage{
_loop = _levels.length;
while (_loop--) {
if (_levels[_loop].num == _arg1){
return (_levels[_loop]);
};
};
return (null);
}
private function _onLevelDataLoadFailed(_arg1:Event):void{
_levels[_sequentialDataLoadIndex].removeEventListener(LevelStorage.ON_DATA, _onLevelDataLoaded);
_levels[_sequentialDataLoadIndex].removeEventListener(LevelStorage.ON_ERROR, _onLevelDataLoadFailed);
dispatchEvent(new EData(ON_ERROR, {url:_levels[_sequentialDataLoadIndex].url}));
}
private function _onLevelDataLoadComplete():void{
dispatchEvent(new Event(ON_COMPLETE));
}
public function getLastLevel():Number{
return ((_levels.length - 1));
}
public function useDataLevels():void{
}
public function add(_arg1:Number, _arg2:String):void{
_levels.push(new LevelStorage(_arg1, _arg2));
}
private function _onLevelDataLoaded(_arg1:Event):void{
_levels[_sequentialDataLoadIndex].removeEventListener(LevelStorage.ON_DATA, _onLevelDataLoaded);
_levels[_sequentialDataLoadIndex].removeEventListener(LevelStorage.ON_ERROR, _onLevelDataLoadFailed);
_sequentialDataLoadIndex++;
if (_sequentialDataLoadIndex < _levels.length){
_loadLevelData();
} else {
_onLevelDataLoadComplete();
};
}
public function getLevelStorage(_arg1:Number):LevelStorage{
if (!_findLevelByNum(_arg1).isLoaded){
return (null);
};
return (_findLevelByNum(_arg1));
}
public function beginSequentialDataLoad():void{
_sequentialDataLoadIndex = 0;
_loadLevelData();
}
public function getLevelCount():Number{
return (_levels.length);
}
}
}//package com.workinman.paradise.data
Section 40
//LevelStorage (com.workinman.paradise.data.LevelStorage)
package com.workinman.paradise.data {
import flash.events.*;
import com.workinman.lib.events.*;
import com.workinman.lib.net.*;
public class LevelStorage extends EventDispatcher {
private var _levelNum:Number;
private var _dataXML:XML;
private var _workinLoader:WorkinLoader;
private var _dataURL:String;
private var _isXMLLoaded:Boolean;
public static var ON_ERROR:String = "onLevelStorageError";
public static var ON_DATA:String = "onLevelStorageData";
public function LevelStorage(_arg1:Number, _arg2:String){
_dataURL = _arg2;
_levelNum = _arg1;
_workinLoader = new WorkinLoader();
_isXMLLoaded = false;
}
public function cleanUp():void{
try {
_workinLoader.removeEventListener(WorkinLoader.XML_LOADED, _onXMLLoaded);
} catch(pError:Error) {
};
_dataXML = null;
}
public function loadFromData(_arg1:XML):void{
_isXMLLoaded = true;
_dataXML = _arg1.copy();
_workinLoader.cleanUp();
_workinLoader = null;
}
public function get isLoaded():Boolean{
return (_isXMLLoaded);
}
public function get num():Number{
return (_levelNum);
}
public function get dataXML():XML{
return (_dataXML);
}
public function get url():String{
return (_dataURL);
}
public function loadData():void{
if (_isXMLLoaded){
return;
};
_workinLoader.addEventListener(WorkinLoader.XML_LOADED, _onXMLLoaded);
_workinLoader.loadXML(_dataURL);
}
private function _onXMLLoaded(_arg1:EXML):void{
_workinLoader.removeEventListener(WorkinLoader.XML_LOADED, _onXMLLoaded);
if (_arg1.success){
_dataXML = _arg1.xml;
_isXMLLoaded = true;
dispatchEvent(new Event(ON_DATA));
} else {
dispatchEvent(new Event(ON_ERROR));
};
_workinLoader.cleanUp();
_workinLoader = null;
}
}
}//package com.workinman.paradise.data
Section 41
//ECamera (com.workinman.paradise.events.ECamera)
package com.workinman.paradise.events {
import flash.events.*;
import com.workinman.paradise.world.camera.*;
public class ECamera extends Event {
private var _camera:BaseCamera;
private var _request:String;
public function ECamera(_arg1:String, _arg2:BaseCamera){
super(_arg1, false, false);
_camera = _arg2;
}
public function get camera():BaseCamera{
return (_camera);
}
}
}//package com.workinman.paradise.events
Section 42
//EView (com.workinman.paradise.events.EView)
package com.workinman.paradise.events {
import flash.events.*;
import com.workinman.paradise.world.entitys.*;
public class EView extends Event {
private var _request:String;
private var _renderable:Renderable;
public function EView(_arg1:String, _arg2:Renderable){
super(_arg1, false, false);
_renderable = _arg2;
}
public function get renderable():Renderable{
return (_renderable);
}
}
}//package com.workinman.paradise.events
Section 43
//CollisionBox (com.workinman.paradise.math.CollisionBox)
package com.workinman.paradise.math {
import com.workinman.lib.math.*;
public class CollisionBox {
private var _collisionVertexArray:Array;
private var _loop:Number;
private var _height:Number;
private var _width:Number;
private var _collisionResultArray:Array;
private var _newSweepLine:MotionSweepLine;
private var _boxDimensions:Object;
private var _centerOffset:WorkinPoint;
public function CollisionBox(_arg1:Number, _arg2:Number, _arg3:WorkinPoint=null):void{
var _local4:Number;
var _local5:Number;
super();
_collisionVertexArray = [];
if (_arg3 == null){
_centerOffset = new WorkinPoint(0, 0, 0);
} else {
_centerOffset = _arg3.copy();
};
_width = _arg1;
_height = _arg2;
_local4 = (_width / 2);
_local5 = (_height / 2);
_collisionVertexArray.push(new CollisionVertex(_collisionVertexArray.length, _centerOffset, -(_local4), -(_local5)));
_collisionVertexArray.push(new CollisionVertex(_collisionVertexArray.length, _centerOffset, _local4, -(_local5)));
_collisionVertexArray.push(new CollisionVertex(_collisionVertexArray.length, _centerOffset, _local4, 0));
_collisionVertexArray.push(new CollisionVertex(_collisionVertexArray.length, _centerOffset, _local4, _local5, "f"));
_collisionVertexArray.push(new CollisionVertex(_collisionVertexArray.length, _centerOffset, -(_local4), _local5, "f"));
_collisionVertexArray.push(new CollisionVertex(_collisionVertexArray.length, _centerOffset, -(_local4), 0));
}
public function getCollisionLineArray(_arg1:WorkinPoint, _arg2:WorkinPoint):Array{
_boxDimensions = {left:((_arg1.x + _centerOffset.x) - (_width / 2)), right:((_arg1.x + _centerOffset.x) + (_width / 2)), top:((_arg1.y + _centerOffset.y) - (_height / 2)), bottom:((_arg1.y + _centerOffset.y) + (_height / 2))};
_collisionResultArray = [];
_loop = _collisionVertexArray.length;
while (_loop--) {
_newSweepLine = _collisionVertexArray[_loop].getSweepLine(_arg1, _arg2);
if ((((((((_newSweepLine.p1.x < _boxDimensions.left)) || ((_newSweepLine.p1.x > _boxDimensions.right)))) || ((_newSweepLine.p1.y < _boxDimensions.top)))) || ((_newSweepLine.p1.y > _boxDimensions.bottom)))){
_collisionResultArray.push(_newSweepLine);
};
};
return (_collisionResultArray);
}
public function getCollisionCenter(_arg1:WorkinPoint):WorkinPoint{
return (_arg1.addPointCopy(_centerOffset));
}
public function getVertexByID(_arg1:Number):CollisionVertex{
return (_collisionVertexArray[_arg1]);
}
}
}//package com.workinman.paradise.math
Section 44
//CollisionVertex (com.workinman.paradise.math.CollisionVertex)
package com.workinman.paradise.math {
import com.workinman.lib.math.*;
public class CollisionVertex {
private var _vector:WorkinPoint;
private var _flag:String;
private var _point:WorkinPoint;
private var _id:Number;
public function CollisionVertex(_arg1:Number, _arg2:WorkinPoint, _arg3:Number=0, _arg4:Number=0, _arg5:String=""){
_vector = new WorkinPoint(_arg3, _arg4, 0);
_point = _arg2.addCopy(_arg3, _arg4, 0);
_point.clean();
_vector.clean();
_id = _arg1;
_flag = _arg5;
}
public function get vector():WorkinPoint{
return (_vector);
}
public function getSweepLine(_arg1:WorkinPoint, _arg2:WorkinPoint):MotionSweepLine{
return (new MotionSweepLine(_id, new WorkinPoint((_arg1.x + _point.x), (_arg1.y + _point.y)), new WorkinPoint((_arg2.x + _point.x), (_arg2.y + _point.y)), new WorkinPoint(((_vector.x < 0)) ? -1 : ((_vector.x > 0)) ? 1 : 0, ((_vector.y < 0)) ? -1 : ((_vector.y > 0)) ? 1 : 0).normalizeCopy(), _flag));
}
public function get flag():String{
return (_flag);
}
public function toString():String{
return (("[CollisionVertex] " + _point));
}
public function get point():WorkinPoint{
return (_point);
}
public function get id():Number{
return (_id);
}
}
}//package com.workinman.paradise.math
Section 45
//MotionCurve (com.workinman.paradise.math.MotionCurve)
package com.workinman.paradise.math {
import com.workinman.lib.math.*;
import flash.events.*;
public class MotionCurve extends EventDispatcher {
private var _bezier:WorkinBezier;
private var _pathRatio:Number;
private var _formula:Function;
private var _timeElapsed:Number;
private var _duration:Number;
private var _current:WorkinPoint;
private var _timeRatio:Number;
public static var COMPLETE:String = "onPathComplete";
public function MotionCurve(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:WorkinPoint, _arg4:WorkinPoint, _arg5:Number, _arg6:String="linear"){
_bezier = new WorkinBezier(_arg1, _arg2, _arg3, _arg4);
_bezier.getAsLines();
_duration = _arg5;
_timeElapsed = 0;
_timeRatio = 0;
_pathRatio = 0;
_calculatePath();
_formula = PennerManager.getEaseFunction(_arg6);
}
private function _calculatePath():void{
_current = _bezier.getPoint(_pathRatio);
}
public function get current():WorkinPoint{
return (_current);
}
public function update(_arg1:Number):void{
_updatePath(_arg1);
}
public function get isComplete():Boolean{
return ((timeRatio == 1));
}
public function startToPoint(_arg1:WorkinPoint):void{
_bezier.originToPoint(_arg1);
_calculatePath();
}
public function get timeRatio():Number{
return (_timeRatio);
}
protected function _updatePath(_arg1:Number):void{
if (isComplete){
return;
};
_timeElapsed = (_timeElapsed + _arg1);
if (_timeElapsed > _duration){
_timeElapsed = _duration;
};
_timeRatio = (_timeElapsed / _duration);
_pathRatio = _formula(0, 1, _timeElapsed, _duration);
_current = _bezier.getPoint(_pathRatio);
if (isComplete){
dispatchEvent(new Event(COMPLETE));
};
}
public function get end():WorkinPoint{
return (_bezier.p1);
}
public function endToPoint(_arg1:WorkinPoint):void{
_bezier.endToPoint(_arg1);
_calculatePath();
}
public function get start():WorkinPoint{
return (_bezier.p0);
}
public function get duration():Number{
return (_duration);
}
public function get hasPosition():Boolean{
return (true);
}
public function get pathRatio():Number{
return (_pathRatio);
}
public function endTo(_arg1:Number, _arg2:Number, _arg3:Number):void{
_bezier.endTo(_arg1, _arg2, _arg3);
_calculatePath();
}
public function get x():Number{
return (_current.x);
}
public function get y():Number{
return (_current.y);
}
public function startTo(_arg1:Number, _arg2:Number, _arg3:Number):void{
_bezier.originTo(_arg1, _arg2, _arg3);
_calculatePath();
}
}
}//package com.workinman.paradise.math
Section 46
//MotionDelay (com.workinman.paradise.math.MotionDelay)
package com.workinman.paradise.math {
import flash.events.*;
public class MotionDelay extends EventDispatcher {
private var _ratio:Number;
private var _timeElapsed:Number;
private var _duration:Number;
public static var COMPLETE:String = "onDelayComplete";
public function MotionDelay(_arg1:Number){
_duration = _arg1;
_timeElapsed = 0;
_ratio = 0;
}
public function get isComplete():Boolean{
return ((_ratio == 1));
}
public function update(_arg1:Number):void{
_timeElapsed = (_timeElapsed + _arg1);
if (_timeElapsed > _duration){
_timeElapsed = _duration;
};
_ratio = (_timeElapsed / _duration);
if (isComplete){
dispatchEvent(new Event(COMPLETE));
};
}
public function get ratio():Number{
return (_ratio);
}
public function get duration():Number{
return (_duration);
}
public function get hasPosition():Boolean{
return (false);
}
}
}//package com.workinman.paradise.math
Section 47
//MotionLine (com.workinman.paradise.math.MotionLine)
package com.workinman.paradise.math {
import com.workinman.lib.math.*;
import flash.events.*;
public class MotionLine extends EventDispatcher {
private var _line:WorkinLine;
private var _pathRatio:Number;
private var _formula:Function;
private var _timeElapsed:Number;
private var _duration:Number;
private var _current:WorkinPoint;
private var _timeRatio:Number;
public static var COMPLETE:String = "onPathComplete";
public function MotionLine(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:Number, _arg4:String="linear"){
_line = new WorkinLine(_arg1, _arg2);
_current = new WorkinPoint();
_duration = _arg3;
_timeElapsed = 0;
_timeRatio = 0;
_pathRatio = 0;
_calculatePath();
_formula = PennerManager.getEaseFunction(_arg4);
}
private function _calculatePath():void{
_current = _line.getPoint(_pathRatio);
}
public function get diff():WorkinPoint{
return (_line.vector);
}
public function get current():WorkinPoint{
return (_current);
}
public function update(_arg1:Number):void{
_updatePath(_arg1);
}
public function get isComplete():Boolean{
return ((timeRatio == 1));
}
public function get timeRatio():Number{
return (_timeRatio);
}
public function startToPoint(_arg1:WorkinPoint):void{
_line.originToPoint(_arg1);
_calculatePath();
}
public function get end():WorkinPoint{
return (_line.p1);
}
public function endToPoint(_arg1:WorkinPoint):void{
_line.endToPoint(_arg1);
_calculatePath();
}
public function get pathRatio():Number{
return (_pathRatio);
}
public function get start():WorkinPoint{
return (_line.p0);
}
public function get duration():Number{
return (_duration);
}
public function get hasPosition():Boolean{
return (true);
}
public function get origin():WorkinPoint{
return (_line.p0);
}
public function endTo(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_line.endTo(_arg1, _arg2, _arg3);
_calculatePath();
}
public function get x():Number{
return (_current.x);
}
public function get y():Number{
return (_current.y);
}
protected function _updatePath(_arg1:Number):void{
if (isComplete){
return;
};
_timeElapsed = (_timeElapsed + _arg1);
if (_timeElapsed > _duration){
_timeElapsed = _duration;
};
_timeRatio = (_timeElapsed / _duration);
_pathRatio = _formula(0, 1, _timeElapsed, _duration);
_current = _line.getPoint(_pathRatio);
if (isComplete){
dispatchEvent(new Event(COMPLETE));
};
}
public function startTo(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_line.originTo(_arg1, _arg2, _arg3);
_calculatePath();
}
}
}//package com.workinman.paradise.math
Section 48
//MotionSweepLine (com.workinman.paradise.math.MotionSweepLine)
package com.workinman.paradise.math {
import com.workinman.lib.math.*;
public class MotionSweepLine {
private var _flag:String;
private var _exclusionVector:WorkinPoint;
private var _line:WorkinLine;
private var _excludes:Boolean;
private var _id:Number;
public function MotionSweepLine(_arg1:Number, _arg2:WorkinPoint, _arg3:WorkinPoint, _arg4:WorkinPoint=null, _arg5:String=""){
_id = _arg1;
_flag = _arg5;
_line = new WorkinLine(_arg2, _arg3);
if (_arg4 == null){
_excludes = false;
_exclusionVector = new WorkinPoint(0, 0);
} else {
_excludes = true;
_exclusionVector = _arg4;
};
}
public function get p0():WorkinPoint{
return (_line.p0);
}
public function get line():WorkinLine{
return (_line);
}
public function get p1():WorkinPoint{
return (_line.p1);
}
public function get flag():String{
return (_flag);
}
public function get length():Number{
return (_line.length);
}
public function toString():String{
return (((("[MotionSweepLine] " + _id) + " : ") + _line));
}
public function get id():Number{
return (_id);
}
public function testExclusion(_arg1:WorkinLine):Boolean{
if (_excludes){
return ((_exclusionVector.dot(_arg1.normal) > -0.5));
};
return (false);
}
}
}//package com.workinman.paradise.math
Section 49
//SurfaceCollisionLine (com.workinman.paradise.math.SurfaceCollisionLine)
package com.workinman.paradise.math {
import com.workinman.lib.math.*;
public class SurfaceCollisionLine extends WorkinLine {
private var _appearance:String;
private var _standable:Boolean;
private var _effects:Array;
private var _grade:Number;
private static var _STANDABLE_THRESHOLD:Number = 45;
public function SurfaceCollisionLine(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:Array, _arg4:String=""){
var _local5:Number;
super(_arg1, _arg2);
_grade = (90 + (Math.atan2(_normal.y, _normal.x) * (180 / Math.PI)));
if (_grade > 180){
_grade = (-180 - (_grade - 180));
};
if (Math.abs(_grade) < _STANDABLE_THRESHOLD){
_standable = true;
} else {
_standable = false;
};
_effects = _arg3;
_appearance = _arg4;
_local5 = _effects.length;
while (_local5--) {
if (_effects[_local5] == "fire"){
_appearance = "fire";
} else {
if (_effects[_local5] == "poison"){
_appearance = "poison";
} else {
if (_effects[_local5] == "water"){
_appearance = "water";
};
};
};
};
}
public function get effects():Array{
return (_effects);
}
public function get standable():Boolean{
return (_standable);
}
public function get appearance():String{
return (_appearance);
}
override public function toString():String{
return ((((((((((((((("[SurfaceCollisionLine] " + "(") + _p0.x) + ", ") + _p0.y) + ", ") + _p0.z) + ") ~> (") + _p1.x) + ", ") + _p1.y) + ", ") + _p1.z) + ") :: grade ") + _grade));
}
}
}//package com.workinman.paradise.math
Section 50
//SurfaceCollisionResult (com.workinman.paradise.math.SurfaceCollisionResult)
package com.workinman.paradise.math {
import com.workinman.lib.math.*;
public class SurfaceCollisionResult {
private var _surfaceLine:SurfaceCollisionLine;
private var _intercept:WorkinPoint;
private var _collisionVertex:CollisionVertex;
private var _motionSweep:MotionSweepLine;
public function SurfaceCollisionResult(_arg1:InterceptResult, _arg2:CollisionVertex, _arg3:MotionSweepLine, _arg4:SurfaceCollisionLine){
_intercept = _arg1.result;
_collisionVertex = _arg2;
_motionSweep = _arg3;
_surfaceLine = _arg4;
}
public function get surfaceLine():SurfaceCollisionLine{
return (_surfaceLine);
}
public function get intercept():WorkinPoint{
return (_intercept);
}
public function get vertex():CollisionVertex{
return (_collisionVertex);
}
public function get motionSweep():MotionSweepLine{
return (_motionSweep);
}
}
}//package com.workinman.paradise.math
Section 51
//BaseInterface (com.workinman.paradise.ui.interfaces.BaseInterface)
package com.workinman.paradise.ui.interfaces {
import flash.display.*;
import flash.filters.*;
public class BaseInterface extends MovieClip {
public function BaseInterface(){
_addEventListeners();
}
protected function _removeEventListeners():void{
}
protected function _addEventListeners():void{
}
public function blur():void{
filters = [new BlurFilter(7, 7)];
}
public function unblur():void{
filters = [];
cacheAsBitmap = false;
}
public function cleanUp():void{
_removeEventListeners();
}
}
}//package com.workinman.paradise.ui.interfaces
Section 52
//BaseUI (com.workinman.paradise.ui.BaseUI)
package com.workinman.paradise.ui {
public class BaseUI {
}
}//package com.workinman.paradise.ui
Section 53
//ViewGroup (com.workinman.paradise.view.groups.ViewGroup)
package com.workinman.paradise.view.groups {
import flash.display.*;
import com.workinman.paradise.world.entitys.*;
public class ViewGroup {
private var _container:Sprite;
private var _loop:Number;
private var _renderables:Array;
public function ViewGroup(_arg1:Sprite){
_container = _arg1;
_renderables = [];
}
public function get container():Sprite{
return (_container);
}
public function drawMC(_arg1:Renderable):void{
var _local2:Number;
if (_arg1.doDepthRender){
_renderables.push({renderable:_arg1, depth:_arg1.depth});
_renderables.sortOn("depth", Array.NUMERIC);
_loop = _renderables.length;
_local2 = 0;
while (_loop--) {
if (_renderables[_loop].renderable == _arg1){
_local2 = _loop;
_loop = 0;
};
};
_container.addChildAt(_arg1, _local2);
} else {
_renderables.push({renderable:_arg1, depth:1});
_container.addChild(_arg1);
};
_arg1.onDrawn();
}
public function clear():void{
_loop = _renderables.length;
while (_loop--) {
_container.removeChild(_renderables[_loop].renderable);
};
_renderables = [];
}
public function eraseMC(_arg1:Renderable):void{
_loop = _renderables.length;
while (_loop--) {
if (_renderables[_loop].renderable == _arg1){
_renderables.splice(_loop, 1);
_loop = 0;
};
};
_container.removeChild(_arg1);
_arg1.onErased();
}
}
}//package com.workinman.paradise.view.groups
Section 54
//ViewManager (com.workinman.paradise.view.ViewManager)
package com.workinman.paradise.view {
import flash.events.*;
import com.workinman.paradise.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise.events.*;
import flash.geom.*;
import com.workinman.paradise.view.groups.*;
public class ViewManager extends EventDispatcher {
private var _loop:Number;
private var _timeline:MovieClip;
private var _DEF_GROUP_NAME:String;// = "base"
private var _groups:Object;
private var _viewRoom:EventDispatcher;
public function ViewManager(_arg1:MovieClip){
_DEF_GROUP_NAME = "base";
super();
_timeline = _arg1;
_viewRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_VIEW);
_viewRoom.addEventListener(ParadiseConfig.EVENT_VIEW_DRAW, _draw);
_viewRoom.addEventListener(ParadiseConfig.EVENT_VIEW_ERASE, _erase);
_groups = {};
addGroup(_DEF_GROUP_NAME, 0);
}
public function clear():void{
var _local1:*;
for (_local1 in _groups) {
_groups[_local1].clear();
};
}
public function _draw(_arg1:EView):void{
_groups[((_arg1.renderable.group == "")) ? _DEF_GROUP_NAME : _arg1.renderable.group].drawMC(_arg1.renderable);
}
public function addGroup(_arg1:String, _arg2:Number):void{
var _local3:*;
_local3 = new Sprite();
_local3.x = ParadiseConfig.SCREEN_OFFSET.x;
_local3.y = ParadiseConfig.SCREEN_OFFSET.y;
_timeline.addChildAt(_local3, _arg2);
_groups[_arg1] = new ViewGroup(_local3);
}
public function _erase(_arg1:EView):void{
_groups[((_arg1.renderable.group == "")) ? _DEF_GROUP_NAME : _arg1.renderable.group].eraseMC(_arg1.renderable);
}
public function resort():void{
}
public function getContentsAsBitmap():BitmapData{
var _local1:BitmapData;
_local1 = new BitmapData((ParadiseConfig.SCREEN_WIDTH + ParadiseConfig.SCREEN_OFFSET.x), (ParadiseConfig.SCREEN_HEIGHT + ParadiseConfig.SCREEN_OFFSET.y));
_local1.draw(_timeline, null, null, null, new Rectangle(ParadiseConfig.SCREEN_OFFSET.x, ParadiseConfig.SCREEN_OFFSET.y, ParadiseConfig.SCREEN_WIDTH, ParadiseConfig.SCREEN_HEIGHT));
_local1.floodFill(0, 0, 0);
return (_local1);
}
}
}//package com.workinman.paradise.view
Section 55
//BaseCamera (com.workinman.paradise.world.camera.BaseCamera)
package com.workinman.paradise.world.camera {
import com.workinman.lib.math.*;
import com.workinman.paradise.world.entitys.*;
public class BaseCamera extends Element {
protected var _halfDimensions:WorkinPoint;
protected var _focusPoint:WorkinPoint;
protected var _dimensions:WorkinPoint;
protected var _focusZ:Number;
protected var _focusY:Number;
protected var _screenCenter:WorkinPoint;
public function BaseCamera(_arg1:Object){
super(_arg1);
if ((((((_arg1.fx == undefined)) || ((_arg1.fy == undefined)))) || ((_arg1.fz == undefined)))){
_focusPoint = _pos.copy();
} else {
_focusPoint = new WorkinPoint(_arg1.fx, _arg1.fy, _arg1.fz);
};
}
public function get center():WorkinPoint{
return (_screenCenter);
}
override public function get x():Number{
return (_pos.x);
}
override public function get y():Number{
return (_pos.y);
}
public function isOnscreen(_arg1:Renderable):Boolean{
if (((((Math.abs((_pos.x - (_arg1.pos.x + _arg1.displayCenter.x))) - _arg1.halfDisplayWidth) > _halfDimensions.x)) || (((Math.abs((_pos.y - (_arg1.pos.y + _arg1.displayCenter.y))) - _arg1.halfDisplayHeight) > _halfDimensions.y)))){
return (false);
};
return (true);
}
public function get z():Number{
return (_pos.z);
}
public function getRelativePos(_arg1:WorkinPoint):WorkinPoint{
return (new WorkinPoint((_pos.x + (_arg1.x - _pos.x)), (_pos.y + (_arg1.y - _pos.y))));
}
override public function update(_arg1:Number):void{
if (_paths.length > 0){
_updatePath(_arg1);
};
}
public function get fx():Number{
return (_pos.x);
}
public function get fy():Number{
return (_pos.y);
}
public function get fz():Number{
return (_pos.z);
}
override public function set x(_arg1:Number):void{
_pos.x = _arg1;
}
override public function set y(_arg1:Number):void{
_pos.y = _arg1;
}
public function set z(_arg1:Number):void{
_pos.z = _arg1;
}
public function set fx(_arg1:Number):void{
_pos.x = _arg1;
}
public function set fy(_arg1:Number):void{
_pos.y = _arg1;
}
public function set fz(_arg1:Number):void{
_pos.z = _arg1;
}
function setDimensions(_arg1:WorkinPoint):void{
_dimensions = _arg1;
_screenCenter = _dimensions.divideCopy(2);
_halfDimensions = _dimensions.divideCopy(2);
}
}
}//package com.workinman.paradise.world.camera
Section 56
//CameraManager (com.workinman.paradise.world.camera.CameraManager)
package com.workinman.paradise.world.camera {
import com.workinman.lib.math.*;
import flash.events.*;
import com.workinman.paradise.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise.events.*;
public class CameraManager {
private var _activeCameraID:String;
private var _worldRoom:EventDispatcher;
private var _activeCamera:BaseCamera;
private var _dimensions:WorkinPoint;
private var _cameras:Object;
public function CameraManager():void{
_registerEventRooms();
_dimensions = ParadiseConfig.DIMENSIONS.addPointCopy(ParadiseConfig.SCREEN_OFFSET);
_cameras = {};
_activeCameraID = "";
}
public function clear():void{
_activeCamera = null;
_worldRoom = null;
}
protected function _setActiveCamera(_arg1:String):void{
if ((((_activeCameraID == _arg1)) || (!(_cameras.hasOwnProperty(_arg1))))){
return;
};
_activeCameraID = _arg1;
_activeCamera = _cameras[_arg1];
_worldRoom.dispatchEvent(new ECamera(ParadiseConfig.EVENT_CAMERA_CHANGE, _activeCamera));
}
public function renderCameraView():void{
_worldRoom.dispatchEvent(new ECamera(ParadiseConfig.EVENT_RENDER_FROM_CAMERA, _activeCamera));
}
public function get camera():BaseCamera{
return (_activeCamera);
}
protected function _registerEventRooms():void{
_worldRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_WORLD);
}
public function getRelativePos(_arg1:WorkinPoint):WorkinPoint{
return (_activeCamera.getRelativePos(_arg1));
}
public function updateActiveCamera(_arg1:Number):void{
_activeCamera.update(_arg1);
}
public function changeCamera(_arg1:String):void{
_setActiveCamera(_arg1);
}
public function updateAllCameras(_arg1:Number):void{
}
public function addCustomCamera(_arg1:BaseCamera, _arg2:String, _arg3:Boolean=true):void{
_cameras[_arg2] = _arg1;
_cameras[_arg2].setDimensions(_dimensions);
if (((_arg3) || ((_activeCameraID == "")))){
_setActiveCamera(_arg2);
};
}
public function addSimpleCamera(_arg1:String, _arg2:Boolean=true, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0):void{
_cameras[_arg1] = new BaseCamera({x:_arg3, y:_arg4, z:_arg5, fx:_arg6, fy:_arg7, fz:_arg8});
_cameras[_arg1].setDimensions(_dimensions);
if (((_arg2) || ((_activeCameraID == "")))){
_setActiveCamera(_arg1);
};
}
}
}//package com.workinman.paradise.world.camera
Section 57
//Element (com.workinman.paradise.world.entitys.Element)
package com.workinman.paradise.world.entitys {
import com.workinman.lib.math.*;
import com.workinman.paradise.math.*;
import com.workinman.lib.display.*;
public class Element extends WorkinMovieClip {
protected var _velocity:WorkinPoint;
protected var _lastPos:WorkinPoint;
protected var _pos:WorkinPoint;
protected var _paths:Array;
public function Element(_arg1:Object){
_validateData(_arg1);
if (_pos == null){
_pos = new WorkinPoint(_arg1.x, _arg1.y, _arg1.z);
};
_lastPos = _pos.copy();
_setInitialVelocity();
_setInitialPath();
}
override public function moveBy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
setPath(new WorkinPoint((_pos.x + _arg1), (_pos.y + _arg2)), _arg3, _arg4);
}
protected function _setInitialVelocity():void{
_velocity = new WorkinPoint(0, 0);
}
protected function _onPathComplete():void{
}
override public function moveTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
setPath(new WorkinPoint(_arg1, _arg2), _arg3, _arg4);
}
protected function _updatePath(_arg1:Number):void{
_paths[0].update(_arg1);
if (_paths[0].hasPosition){
_pos.toPoint(_paths[0].current);
};
if (_paths[0].isComplete){
_paths.splice(0, 1);
if (_paths.length == 0){
_onPathComplete();
} else {
if (_paths[0].hasPosition){
_paths[0].startToPoint(_pos);
};
};
};
}
public function setDelay(_arg1:Number):void{
clearPaths();
addDelay(_arg1);
}
public function get pos():WorkinPoint{
return (_pos);
}
public function get exists():Boolean{
return (true);
}
public function addPath(_arg1:WorkinPoint, _arg2:Number, _arg3:String="linear"):void{
if (_arg2 == 0){
_pos.toPoint(_arg1);
return;
};
_paths.push(new MotionLine(_pos, _arg1, _arg2, _arg3));
if (_paths.length > 1){
_onPathBegin();
};
}
public function pos3DSet(_arg1:Number, _arg2:Number, _arg3:Number):void{
_pos.x = _arg1;
_pos.y = _arg2;
_pos.z = _arg3;
}
public function to(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_pos.to(_arg1, _arg2, _arg3);
}
public function clearPaths():void{
if (_paths.length == 0){
return;
};
_paths = [];
_onPathCancelled();
}
protected function _onPathBegin():void{
}
public function clearCurrentPath():void{
if (_paths.length == 0){
return;
};
_paths.shift();
if (_paths.length == 0){
_onPathCancelled();
};
}
public function update(_arg1:Number):void{
_lastPos.toPoint(_pos);
if (_paths.length == 0){
_pos.add((_velocity.x * _arg1), (_velocity.y * _arg1), (_velocity.z * _arg1));
} else {
_updatePath(_arg1);
};
}
public function addCurve(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:WorkinPoint, _arg4:Number, _arg5:String="linear"):void{
_paths.push(new MotionCurve(_pos, _arg1, _arg2, _arg3, _arg4, _arg5));
if (_paths.length > 1){
_onPathBegin();
};
}
protected function _onPathCancelled():void{
}
public function get isPathing():Boolean{
return ((_paths.length > 0));
}
public function addDelay(_arg1:Number):void{
_paths.push(new MotionDelay(_arg1));
}
override public function posSet(_arg1:Number, _arg2:Number):void{
_pos.x = _arg1;
_pos.y = _arg2;
}
public function setPath(_arg1:WorkinPoint, _arg2:Number, _arg3:String="linear"):void{
clearPaths();
addPath(_arg1, _arg2, _arg3);
}
public function setCurve(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:WorkinPoint, _arg4:Number, _arg5:String="linear"):void{
clearPaths();
addCurve(_arg1, _arg2, _arg3, _arg4, _arg5);
}
private function _validateData(_arg1:Object):void{
if (_arg1.x == undefined){
_arg1.x = 0;
};
if (_arg1.y == undefined){
_arg1.y = 0;
};
if (_arg1.z == undefined){
_arg1.z = 0;
};
}
public function toPoint(_arg1:WorkinPoint):void{
_pos.toPoint(_arg1);
}
public function get lastPos():WorkinPoint{
return (_lastPos);
}
protected function _setInitialPath():void{
_paths = [];
}
}
}//package com.workinman.paradise.world.entitys
Section 58
//ParaSprite (com.workinman.paradise.world.entitys.ParaSprite)
package com.workinman.paradise.world.entitys {
import com.workinman.paradise.assets.*;
public class ParaSprite extends Renderable {
protected var _assetClass:Class;
protected var _asset:GameAsset;
public function ParaSprite(_arg1:Object){
super(_arg1);
if (_arg1.asset == null){
_assetClass = _defaultAsset;
} else {
_assetClass = _arg1.asset;
};
_asset = new _assetClass();
addChild(_asset);
_onGenerateAsset();
_recalculateDimensions();
}
public function get assetClass():Class{
return (_assetClass);
}
protected function _onGenerateAsset():void{
}
override public function cleanUp():void{
super.cleanUp();
_asset.cleanUp();
}
public function get asset():GameAsset{
return (_asset);
}
protected function get _defaultAsset():Class{
return (GameAsset);
}
protected function _animate(_arg1:String):void{
_asset.animate(_arg1);
}
}
}//package com.workinman.paradise.world.entitys
Section 59
//Renderable (com.workinman.paradise.world.entitys.Renderable)
package com.workinman.paradise.world.entitys {
import com.workinman.lib.math.*;
import flash.events.*;
import com.workinman.paradise.*;
import com.workinman.paradise.world.camera.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise.events.*;
public class Renderable extends Element {
protected var _displayWidth:Number;
protected var _worldRoom:EventDispatcher;
protected var _halfDisplayWidth:Number;
protected var _mcVisible:Boolean;
protected var _viewRoom:EventDispatcher;
protected var _halfDisplayHeight:Number;
protected var _displayHeight:Number;
protected var _displayCenter:WorkinPoint;
protected var _depth:Number;
protected var _isOnscreen:Boolean;
public function Renderable(_arg1:Object){
super(_arg1);
_registerEventRooms();
_isOnscreen = false;
_mcVisible = false;
_displayWidth = 0;
_displayHeight = 0;
_halfDisplayWidth = 0;
_halfDisplayHeight = 0;
_displayCenter = new WorkinPoint();
_worldRoom.addEventListener(ParadiseConfig.EVENT_RENDER_FROM_CAMERA, _onRender, false, 0, true);
_worldRoom.addEventListener(ParadiseConfig.EVENT_CAMERA_CHANGE, _onCameraChange, false, 0, true);
}
protected function get _padDisplayDimensionsForNonCenteredAssets():Boolean{
return (false);
}
protected function _registerEventRooms():void{
_viewRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_VIEW);
_worldRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_WORLD);
}
protected function _draw():void{
_updateDepth();
_viewRoom.dispatchEvent(new EView(ParadiseConfig.EVENT_VIEW_DRAW, this));
}
public function get displayWidth():Number{
return (_displayWidth);
}
protected function get _assetRegistrationPoint():String{
return ("cc");
}
public function get displayHeight():Number{
return (_displayHeight);
}
public function get doDepthRender():Boolean{
return (false);
}
public function get depth():Number{
return (_depth);
}
override public function update(_arg1:Number):void{
}
override public function cleanUp():void{
super.cleanUp();
_erase();
_worldRoom.removeEventListener(ParadiseConfig.EVENT_CAMERA_CHANGE, _onCameraChange);
_worldRoom.removeEventListener(ParadiseConfig.EVENT_RENDER_FROM_CAMERA, _onRender);
}
public function get group():String{
return ("");
}
protected function _onCameraChange(_arg1:ECamera):void{
_onRender(_arg1);
}
protected function get _automaticallyDetermineDisplayDimensions():Boolean{
return (true);
}
public function onDrawn():void{
_mcVisible = true;
}
protected function _renderPosition(_arg1:BaseCamera):void{
x = (_arg1.center.x + (_pos.x - _arg1.x));
y = (_arg1.center.y + (_pos.y - _arg1.y));
}
public function get halfDisplayHeight():Number{
return (_halfDisplayHeight);
}
public function onErased():void{
_mcVisible = false;
}
protected function _recalculateDisplayCenter(_arg1:String=""):void{
switch (((_arg1)!="") ? _arg1 : _assetRegistrationPoint){
case "br":
_displayCenter.to(-(_halfDisplayWidth), -(_halfDisplayHeight));
break;
case "bc":
_displayCenter.to(0, -(_halfDisplayHeight));
break;
case "bl":
_displayCenter.to(_halfDisplayWidth, -(_halfDisplayHeight));
break;
case "cr":
_displayCenter.to(-(_halfDisplayWidth), 0);
break;
case "cl":
_displayCenter.to(_halfDisplayWidth, 0);
break;
case "tr":
_displayCenter.to(-(_halfDisplayWidth), _halfDisplayHeight);
break;
case "tc":
_displayCenter.to(0, _halfDisplayHeight);
break;
case "tl":
_displayCenter.to(_halfDisplayWidth, _halfDisplayHeight);
break;
case "cc":
default:
_displayCenter.to(0, 0);
break;
};
}
protected function _onRender(_arg1:ECamera):void{
_renderPosition(_arg1.camera);
_renderVisibility(_arg1.camera);
}
protected function _renderVisibility(_arg1:BaseCamera):void{
_isOnscreen = _arg1.isOnscreen(this);
if (((_isOnscreen) && (!(_mcVisible)))){
_draw();
} else {
if (((!(_isOnscreen)) && (_mcVisible))){
_erase();
};
};
}
public function get displayCenter():WorkinPoint{
return (_displayCenter);
}
protected function _recalculateDimensions():void{
if (_automaticallyDetermineDisplayDimensions){
_displayWidth = width;
_displayHeight = height;
if (_padDisplayDimensionsForNonCenteredAssets){
_halfDisplayWidth = width;
_halfDisplayHeight = height;
} else {
_halfDisplayWidth = (width / 2);
_halfDisplayHeight = (height / 2);
};
};
_recalculateDisplayCenter();
}
protected function _updateDepth():void{
_depth = _pos.z;
}
protected function _erase():void{
if (_mcVisible){
_viewRoom.dispatchEvent(new EView(ParadiseConfig.EVENT_VIEW_ERASE, this));
};
}
public function get halfDisplayWidth():Number{
return (_halfDisplayWidth);
}
}
}//package com.workinman.paradise.world.entitys
Section 60
//BaseController (com.workinman.paradise.BaseController)
package com.workinman.paradise {
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.geom.*;
import flash.ui.*;
public class BaseController {
private var _timeline:MovieClip;
private var _mouseRectangle:Rectangle;
public function BaseController(_arg1:MovieClip){
_timeline = _arg1;
}
private function _onMouseUp(_arg1:Event):void{
if (mouseInPlayArea){
WorkinDispatcher.getInstance().dispatchEvent(new Event(ParadiseConfig.EVENT_MOUSE_UP));
};
}
public function activateKeyboardControl(_arg1:MovieClip=null):void{
if (_arg1 == null){
_arg1 = _timeline;
};
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, _onKeyDown);
_arg1.addEventListener(KeyboardEvent.KEY_UP, _onKeyUp);
}
private function _onMouseClick(_arg1:Event):void{
if (mouseInPlayArea){
WorkinDispatcher.getInstance().dispatchEvent(new Event(ParadiseConfig.EVENT_MOUSE_CLICK));
};
}
private function _onKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.SPACE){
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_SPACEBAR, {keyCode:_arg1.keyCode, charCode:_arg1.charCode}));
} else {
if (_arg1.keyCode == Keyboard.ENTER){
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_ENTER, {keyCode:_arg1.keyCode, charCode:_arg1.charCode}));
};
};
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_KEY_DOWN, {keyCode:_arg1.keyCode, charCode:_arg1.charCode}));
}
public function get mouseInPlayArea():Boolean{
return (_mouseRectangle.contains(_timeline.mouseX, _timeline.mouseY));
}
private function _onMouseDown(_arg1:Event):void{
if (mouseInPlayArea){
WorkinDispatcher.getInstance().dispatchEvent(new Event(ParadiseConfig.EVENT_MOUSE_DOWN));
};
}
private function _onKeyUp(_arg1:KeyboardEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_KEY_UP, {keyCode:_arg1.keyCode, charCode:_arg1.charCode}));
}
public function activeMouseControl(_arg1:MovieClip=null, _arg2:Boolean=false):void{
if (_arg1 == null){
_arg1 = _timeline;
};
_mouseRectangle = new Rectangle(ParadiseConfig.SCREEN_OFFSET.x, ParadiseConfig.SCREEN_OFFSET.y, ParadiseConfig.DIMENSIONS.x, ParadiseConfig.DIMENSIONS.y);
_arg1.addEventListener(MouseEvent.CLICK, _onMouseClick);
if (_arg2){
return;
};
_arg1.addEventListener(MouseEvent.MOUSE_UP, _onMouseUp);
_arg1.addEventListener(MouseEvent.MOUSE_DOWN, _onMouseDown);
}
}
}//package com.workinman.paradise
Section 61
//BaseEngine (com.workinman.paradise.BaseEngine)
package com.workinman.paradise {
import com.workinman.lib.sound.*;
import com.workinman.paradise.view.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.net.*;
import flash.text.*;
public class BaseEngine {
protected var _view:ViewManager;
protected var _sound:SoundManager;
protected var _configXMLURL:String;
protected var _control:BaseController;
protected var _timeline:BaseTimeline;
protected var _debugText:TextField;
protected var _configXML:XML;
public function BaseEngine(_arg1:BaseTimeline){
_generate(_arg1);
}
public function clearDebug():void{
_debugText.text = "";
}
public function debug(_arg1:String):void{
if (!_DEBUG){
return;
};
if (_debugText == null){
_generateDebugField();
_debugText.text = "<[[ Debugger initialized ]]>";
};
_debugText.appendText("\n");
_debugText.appendText(_arg1);
}
protected function _generate(_arg1:BaseTimeline):void{
_timeline = _arg1;
if (_timeline.configurl != null){
_configXMLURL = _timeline.configurl;
} else {
_configXMLURL = "";
};
_generateState();
_generateSounds();
_generateControls();
_generateView();
_generateUI();
}
public function get sound():SoundManager{
return (_sound);
}
protected function _generateDebugField():void{
_debugText = new TextField();
_debugText.width = (ParadiseConfig.SCREEN_WIDTH - 70);
_debugText.height = (ParadiseConfig.SCREEN_HEIGHT - 70);
_debugText.x = 50;
_debugText.y = 50;
_debugText.textColor = 0xFFFFFF;
_timeline.addChild(_debugText);
}
public function get control():BaseController{
return (_control);
}
public function get timeline():BaseTimeline{
return (_timeline);
}
protected function _generateState():void{
}
public function get view():ViewManager{
return (_view);
}
protected function _generateView():void{
var _local1:MovieClip;
_local1 = new MovieClip();
_view = new ViewManager(_local1);
_timeline.addChild(_local1);
}
protected function _begin():void{
}
protected function _onConfigXMLReturn(_arg1:EXML):void{
XMLLoader.removeEventListener(XMLLoader.ON_XML, _onConfigXMLReturn);
if (_arg1.success){
_configXML = _arg1.xml;
_parseConfigXML();
} else {
if (_DEBUG){
debug(("Error Loading Config XML : " + _configXMLURL));
};
};
}
protected function _generateUI():void{
}
protected function _loadConfigXML():void{
XMLLoader.addEventListener(XMLLoader.ON_XML, _onConfigXMLReturn);
XMLLoader.load(_configXMLURL);
}
protected function _generateControls():void{
_control = new BaseController(_timeline);
_control.activeMouseControl();
_control.activateKeyboardControl();
}
protected function get _DEBUG():Boolean{
return (false);
}
protected function _generateSounds():void{
_sound = new SoundManager();
}
protected function _parseConfigXML():void{
_begin();
}
}
}//package com.workinman.paradise
Section 62
//BaseTimeline (com.workinman.paradise.BaseTimeline)
package com.workinman.paradise {
import flash.display.*;
public class BaseTimeline extends MovieClip {
public var configurl:String;
public function BaseTimeline():void{
_generate();
}
protected function _generate():void{
}
}
}//package com.workinman.paradise
Section 63
//ParadiseConfig (com.workinman.paradise.ParadiseConfig)
package com.workinman.paradise {
import com.workinman.lib.math.*;
public class ParadiseConfig {
public static var EVENT_KEY_UP:String = "onKeyUp";
public static var EVENT_MOUSE_DOWN:String = "onMouseDown";
public static var EVENT_CAMERA_CHANGE:String = "cameraChange";
public static var ROOM_VIEW:String = "view";
protected static var _SCREEN_CENTER:WorkinPoint;
public static var ROOM_WORLD:String = "world";
public static var EVENT_RENDER_FROM_CAMERA:String = "cameraRender";
public static var EVENT_VIEW_DRAW:String = "viewDraw";
public static var EVENT_RETURN:String = "onEnter";
public static var ROOM_ENGINE:String = "engine";
public static var EVENT_ENTER:String = "onEnter";
public static var EVENT_MOUSE_UP:String = "onMouseUp";
protected static var _SCREEN_OFFSET:WorkinPoint;
public static var EVENT_KEY_DOWN:String = "onKeyDown";
public static var EVENT_VIEW_ERASE:String = "viewErase";
public static var ROOM_CONTROL:String = "control";
protected static var _SCREEN_HEIGHT:Number = 400;
protected static var _DIMENSIONS:WorkinPoint;
public static var EVENT_MOUSE_CLICK:String = "onMouseClick";
public static var EVENT_SPACEBAR:String = "onSpacebar";
protected static var _SCREEN_WIDTH:Number = 550;
public function ParadiseConfig():void{
}
public static function get SCREEN_CENTER():WorkinPoint{
if (_SCREEN_CENTER == null){
_SCREEN_CENTER = new WorkinPoint(((_SCREEN_WIDTH / 2) + _SCREEN_OFFSET.x), ((_SCREEN_HEIGHT / 2) + _SCREEN_OFFSET.y));
};
return (_SCREEN_CENTER);
}
public static function set SCREEN_OFFSET(_arg1:WorkinPoint):void{
_SCREEN_OFFSET = _arg1.copy();
}
public static function get SCREEN_WIDTH():Number{
return (_SCREEN_WIDTH);
}
public static function set SCREEN_CENTER(_arg1:WorkinPoint):void{
_SCREEN_CENTER = _arg1.copy();
}
public static function set DIMENSIONS(_arg1:WorkinPoint):void{
_SCREEN_WIDTH = _arg1.x;
_SCREEN_HEIGHT = _arg1.y;
_SCREEN_OFFSET = new WorkinPoint(0, 0, 0);
}
public static function get SCREEN_OFFSET():WorkinPoint{
return (_SCREEN_OFFSET);
}
public static function get DIMENSIONS():WorkinPoint{
if (_DIMENSIONS == null){
_DIMENSIONS = new WorkinPoint(_SCREEN_WIDTH, _SCREEN_HEIGHT);
};
return (_DIMENSIONS);
}
public static function get SCREEN_HEIGHT():Number{
return (_SCREEN_HEIGHT);
}
public static function get SCREEN_BOTTOM():Number{
return ((_SCREEN_OFFSET.y + _SCREEN_HEIGHT));
}
public static function get SCREEN_TOP():Number{
return (_SCREEN_OFFSET.y);
}
public static function get SCREEN_RIGHT():Number{
return ((_SCREEN_OFFSET.x + _SCREEN_WIDTH));
}
public static function get SCREEN_LEFT():Number{
return (_SCREEN_OFFSET.x);
}
}
}//package com.workinman.paradise
Section 64
//WeaponButtercupStickLeft (com.wwb.princessbride.fire_swamp.assets.weapons.WeaponButtercupStickLeft)
package com.wwb.princessbride.fire_swamp.assets.weapons {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class WeaponButtercupStickLeft extends WeaponDisplayAsset {
public function WeaponButtercupStickLeft(){
WorkinDispatcher.getInstance().addEventListener(PlayerAppearanceManager.EVENT_BUTTERCUP_APPEARANCE_CHANGE, _updateVisibility);
}
protected function _updateVisibility(_arg1:Event):void{
if (((PlayerAppearanceManager.getButtercupFacingLeft()) && (PlayerAppearanceManager.getButtercupArmed()))){
visible = true;
} else {
visible = false;
};
}
}
}//package com.wwb.princessbride.fire_swamp.assets.weapons
Section 65
//WeaponButtercupStickRight (com.wwb.princessbride.fire_swamp.assets.weapons.WeaponButtercupStickRight)
package com.wwb.princessbride.fire_swamp.assets.weapons {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class WeaponButtercupStickRight extends WeaponDisplayAsset {
public function WeaponButtercupStickRight(){
WorkinDispatcher.getInstance().addEventListener(PlayerAppearanceManager.EVENT_BUTTERCUP_APPEARANCE_CHANGE, _updateVisibility);
}
protected function _updateVisibility(_arg1:Event):void{
if (((!(PlayerAppearanceManager.getButtercupFacingLeft())) && (PlayerAppearanceManager.getButtercupArmed()))){
visible = true;
} else {
visible = false;
};
}
}
}//package com.wwb.princessbride.fire_swamp.assets.weapons
Section 66
//WeaponDisplayAsset (com.wwb.princessbride.fire_swamp.assets.weapons.WeaponDisplayAsset)
package com.wwb.princessbride.fire_swamp.assets.weapons {
import flash.display.*;
public class WeaponDisplayAsset extends MovieClip {
public function WeaponDisplayAsset():void{
}
}
}//package com.wwb.princessbride.fire_swamp.assets.weapons
Section 67
//WeaponWestleySwordLeft (com.wwb.princessbride.fire_swamp.assets.weapons.WeaponWestleySwordLeft)
package com.wwb.princessbride.fire_swamp.assets.weapons {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class WeaponWestleySwordLeft extends WeaponDisplayAsset {
public function WeaponWestleySwordLeft(){
WorkinDispatcher.getInstance().addEventListener(PlayerAppearanceManager.EVENT_WESTLEY_APPEARANCE_CHANGE, _updateVisibility);
}
protected function _updateVisibility(_arg1:Event):void{
if (((((!(PlayerAppearanceManager.getWestleyFacingLeft())) && (PlayerAppearanceManager.getWestleySwordLeft()))) || (((PlayerAppearanceManager.getWestleyFacingLeft()) && (!(PlayerAppearanceManager.getWestleySwordLeft())))))){
visible = true;
} else {
visible = false;
};
}
}
}//package com.wwb.princessbride.fire_swamp.assets.weapons
Section 68
//WeaponWestleySwordRight (com.wwb.princessbride.fire_swamp.assets.weapons.WeaponWestleySwordRight)
package com.wwb.princessbride.fire_swamp.assets.weapons {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class WeaponWestleySwordRight extends WeaponDisplayAsset {
public function WeaponWestleySwordRight(){
WorkinDispatcher.getInstance().addEventListener(PlayerAppearanceManager.EVENT_WESTLEY_APPEARANCE_CHANGE, _updateVisibility);
}
protected function _updateVisibility(_arg1:Event):void{
if (((((PlayerAppearanceManager.getWestleyFacingLeft()) && (PlayerAppearanceManager.getWestleySwordLeft()))) || (((!(PlayerAppearanceManager.getWestleyFacingLeft())) && (!(PlayerAppearanceManager.getWestleySwordLeft())))))){
visible = true;
} else {
visible = false;
};
}
}
}//package com.wwb.princessbride.fire_swamp.assets.weapons
Section 69
//ArrowAsset (com.wwb.princessbride.fire_swamp.assets.ArrowAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class ArrowAsset extends GameAsset {
public function ArrowAsset(){
_addAnim("target", (getDefinitionByName("AssetArrowTarget") as Class));
_addAnim("idle", (getDefinitionByName("AssetArrowIdle") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 70
//BoulderAsset (com.wwb.princessbride.fire_swamp.assets.BoulderAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class BoulderAsset extends GameAsset {
public function BoulderAsset(){
_addAnim("idle", (getDefinitionByName("AssetBoulder") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 71
//BridgeAsset (com.wwb.princessbride.fire_swamp.assets.BridgeAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class BridgeAsset extends GameAsset {
public function BridgeAsset(){
_addAnim("open", (getDefinitionByName("AssetBridgeOpen") as Class));
_addAnim("close", (getDefinitionByName("AssetBridgeClose") as Class));
_addAnim("idleOpen", (getDefinitionByName("AssetBridgeIdleOpen") as Class));
_addAnim("idleClose", (getDefinitionByName("AssetBridgeIdleClose") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 72
//ButtercupAsset (com.wwb.princessbride.fire_swamp.assets.ButtercupAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class ButtercupAsset extends GameAsset {
public function ButtercupAsset(){
_addAnim("idle", (getDefinitionByName("AssetButtercupIdle") as Class));
_addAnim("run", (getDefinitionByName("AssetButtercupRun") as Class));
_addAnim("slide", (getDefinitionByName("AssetButtercupSlide") as Class));
_addAnim("edge", (getDefinitionByName("AssetButtercupSlide") as Class));
_addAnim("jump_up", (getDefinitionByName("AssetButtercupJumpUp") as Class));
_addAnim("jump_down", (getDefinitionByName("AssetButtercupJumpDown") as Class));
_addAnim("climb", (getDefinitionByName("AssetButtercupClimb") as Class));
_addAnim("attack_left", (getDefinitionByName("AssetButtercupAttackLeft") as Class));
_addAnim("attack_right", (getDefinitionByName("AssetButtercupAttackRight") as Class));
_addAnim("jump_attack_right", (getDefinitionByName("AssetButtercupAttackJumpLeft") as Class));
_addAnim("jump_attack_left", (getDefinitionByName("AssetButtercupAttackJumpRight") as Class));
_addAnim("damage", (getDefinitionByName("AssetButtercupDamageMelee") as Class));
_addAnim("firedamage", (getDefinitionByName("AssetButtercupDamageFire") as Class));
_addAnim("aim", (getDefinitionByName("AssetButtercupAim") as Class));
_addAnim("throw", (getDefinitionByName("AssetButtercupThrow") as Class));
_addAnim("crouch", (getDefinitionByName("AssetButtercupCrouch") as Class));
_addAnim("crawl", (getDefinitionByName("AssetButtercupCrawl") as Class));
_addAnim("swingback", (getDefinitionByName("AssetButtercupSwingBack") as Class));
_addAnim("swingfore", (getDefinitionByName("AssetButtercupSwingFore") as Class));
_addAnim("hold", (getDefinitionByName("AssetButtercupHold") as Class));
_addAnim("climbcap", (getDefinitionByName("AssetButtercupClimbTop") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 73
//CharEffectHeatAsset (com.wwb.princessbride.fire_swamp.assets.CharEffectHeatAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CharEffectHeatAsset extends GameAsset {
public function CharEffectHeatAsset(){
_addAnim("idle", (getDefinitionByName("AssetEffectFireHeat") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 74
//CharEffectPoisonAsset (com.wwb.princessbride.fire_swamp.assets.CharEffectPoisonAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CharEffectPoisonAsset extends GameAsset {
public function CharEffectPoisonAsset(){
_addAnim("idle", (getDefinitionByName("AssetEffectPoison") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 75
//CharEffectShieldAsset (com.wwb.princessbride.fire_swamp.assets.CharEffectShieldAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CharEffectShieldAsset extends GameAsset {
public function CharEffectShieldAsset(){
_addAnim("idle", (getDefinitionByName("AssetEffectFireShield") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 76
//CharEffectSparkleAsset (com.wwb.princessbride.fire_swamp.assets.CharEffectSparkleAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CharEffectSparkleAsset extends GameAsset {
public function CharEffectSparkleAsset(){
_addAnim("idle", (getDefinitionByName("AssetEffectSparkle") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 77
//CharEffectWaterAsset (com.wwb.princessbride.fire_swamp.assets.CharEffectWaterAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CharEffectWaterAsset extends GameAsset {
public function CharEffectWaterAsset(){
_addAnim("idle", (getDefinitionByName("AssetEffectWater") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 78
//CheckpointAsset (com.wwb.princessbride.fire_swamp.assets.CheckpointAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CheckpointAsset extends GameAsset {
public function CheckpointAsset(){
_addAnim("idleon", (getDefinitionByName("AssetCheckpointIdleOn") as Class));
_addAnim("idleoff", (getDefinitionByName("AssetCheckpointIdleOff") as Class));
_addAnim("trigger", (getDefinitionByName("AssetCheckpointTrigger") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 79
//CrumbsAsset (com.wwb.princessbride.fire_swamp.assets.CrumbsAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CrumbsAsset extends GameAsset {
public function CrumbsAsset(){
_addAnim("idle", (getDefinitionByName("AssetCrumbsIdle") as Class));
_addAnim("vanish", (getDefinitionByName("AssetCrumbsIdle") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 80
//CrumbsPileAsset (com.wwb.princessbride.fire_swamp.assets.CrumbsPileAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CrumbsPileAsset extends GameAsset {
public function CrumbsPileAsset(){
_addAnim("idle", (getDefinitionByName("AssetCrumbsProjectileIdle") as Class));
_addAnim("open", (getDefinitionByName("AssetCrumbsProjectileHit") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 81
//CrumbsProjectileAsset (com.wwb.princessbride.fire_swamp.assets.CrumbsProjectileAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class CrumbsProjectileAsset extends GameAsset {
public function CrumbsProjectileAsset(){
_addAnim("idle", (getDefinitionByName("AssetCrumbsProjectileIdle") as Class));
_addAnim("hit", (getDefinitionByName("AssetCrumbsProjectileHit") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 82
//DewAsset (com.wwb.princessbride.fire_swamp.assets.DewAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class DewAsset extends GameAsset {
public function DewAsset(){
_addAnim("idle", (getDefinitionByName("AssetDewIdle") as Class));
_addAnim("vanish", (getDefinitionByName("AssetDewVanish") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 83
//DewProjectileAsset (com.wwb.princessbride.fire_swamp.assets.DewProjectileAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class DewProjectileAsset extends GameAsset {
public function DewProjectileAsset(){
_addAnim("idle", (getDefinitionByName("AssetDewProjectileIdle") as Class));
_addAnim("hit", (getDefinitionByName("AssetDewProjectileHit") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 84
//EffectCrumbParticleAsset (com.wwb.princessbride.fire_swamp.assets.EffectCrumbParticleAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class EffectCrumbParticleAsset extends GameAsset {
public function EffectCrumbParticleAsset(){
_addAnim("idle", (getDefinitionByName("AssetCrumbParticle") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 85
//FireMossAsset (com.wwb.princessbride.fire_swamp.assets.FireMossAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class FireMossAsset extends GameAsset {
public function FireMossAsset(){
_addAnim("hangon", (getDefinitionByName("AssetHangingFireMossOn") as Class));
_addAnim("hangoff", (getDefinitionByName("AssetHangingFireMossOff") as Class));
_addAnim("reston", (getDefinitionByName("AssetRestingFireMossOn") as Class));
_addAnim("restoff", (getDefinitionByName("AssetRestingFireMossOff") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 86
//FireShieldAsset (com.wwb.princessbride.fire_swamp.assets.FireShieldAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class FireShieldAsset extends GameAsset {
public function FireShieldAsset(){
_addAnim("idle", (getDefinitionByName("AssetFireShieldIdle") as Class));
_addAnim("vanish", (getDefinitionByName("AssetFireShieldVanish") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 87
//FireSpanAsset (com.wwb.princessbride.fire_swamp.assets.FireSpanAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class FireSpanAsset extends GameAsset {
public function FireSpanAsset(){
_addAnim("small1", (getDefinitionByName("AssetFireSpanSmall1") as Class));
_addAnim("small2", (getDefinitionByName("AssetFireSpanSmall2") as Class));
_addAnim("small3", (getDefinitionByName("AssetFireSpanSmall3") as Class));
_addAnim("large1", (getDefinitionByName("AssetFireSpanLarge1") as Class));
_addAnim("large2", (getDefinitionByName("AssetFireSpanLarge2") as Class));
_addAnim("large3", (getDefinitionByName("AssetFireSpanLarge3") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 88
//FireSpoutAsset (com.wwb.princessbride.fire_swamp.assets.FireSpoutAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class FireSpoutAsset extends GameAsset {
public function FireSpoutAsset(){
_addAnim("idleOn", (getDefinitionByName("AssetFireSpoutIdleOn") as Class));
_addAnim("idleOff", (getDefinitionByName("AssetFireSpoutIdleOff") as Class));
_addAnim("on", (getDefinitionByName("AssetFireSpoutOn") as Class));
_addAnim("off", (getDefinitionByName("AssetFireSpoutOff") as Class));
animate("idleOn");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 89
//FlyRousAsset (com.wwb.princessbride.fire_swamp.assets.FlyRousAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class FlyRousAsset extends GameAsset {
public function FlyRousAsset(){
_addAnim("idle", (getDefinitionByName("AssetFlyRousFly") as Class));
_addAnim("pause", (getDefinitionByName("AssetFlyRousPause") as Class));
_addAnim("fly", (getDefinitionByName("AssetFlyRousFly") as Class));
_addAnim("dive", (getDefinitionByName("AssetFlyRousDive") as Class));
_addAnim("attack", (getDefinitionByName("AssetFlyRousAttack") as Class));
_addAnim("damage", (getDefinitionByName("AssetFlyRousDamage") as Class));
_addAnim("dead", (getDefinitionByName("AssetFlyRousDead") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 90
//GateAsset (com.wwb.princessbride.fire_swamp.assets.GateAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class GateAsset extends GameAsset {
public function GateAsset(){
_addAnim("open", (getDefinitionByName("AssetGateOpen") as Class));
_addAnim("close", (getDefinitionByName("AssetGateClose") as Class));
_addAnim("idleOpen", (getDefinitionByName("AssetGateIdleOpen") as Class));
_addAnim("idleClose", (getDefinitionByName("AssetGateIdleClose") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 91
//GemAsset (com.wwb.princessbride.fire_swamp.assets.GemAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class GemAsset extends GameAsset {
public function GemAsset(){
_addAnim("idle1", (getDefinitionByName("AssetGemIdle") as Class));
_addAnim("vanish1", (getDefinitionByName("AssetGemVanish") as Class));
_addAnim("idle2", (getDefinitionByName("AssetGemTwoIdle") as Class));
_addAnim("vanish2", (getDefinitionByName("AssetGemTwoVanish") as Class));
_addAnim("idle3", (getDefinitionByName("AssetGemThreeIdle") as Class));
_addAnim("vanish3", (getDefinitionByName("AssetGemThreeVanish") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 92
//GoalAsset (com.wwb.princessbride.fire_swamp.assets.GoalAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class GoalAsset extends GameAsset {
public function GoalAsset(){
_addAnim("idle", (getDefinitionByName("AssetGoalIdle") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 93
//LifeAsset (com.wwb.princessbride.fire_swamp.assets.LifeAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class LifeAsset extends GameAsset {
public function LifeAsset(){
_addAnim("idle", (getDefinitionByName("AssetLifeIdle") as Class));
_addAnim("vanish", (getDefinitionByName("AssetLifeVanish") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 94
//MultiplierAsset (com.wwb.princessbride.fire_swamp.assets.MultiplierAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class MultiplierAsset extends GameAsset {
public function MultiplierAsset(){
_addAnim("idleTwo", (getDefinitionByName("AssetMultiplierIdleTwo") as Class));
_addAnim("idleFive", (getDefinitionByName("AssetMultiplierIdleFive") as Class));
_addAnim("idleTen", (getDefinitionByName("AssetMultiplierIdleTen") as Class));
_addAnim("vanishTwo", (getDefinitionByName("AssetMultiplierVanishTwo") as Class));
_addAnim("vanishFive", (getDefinitionByName("AssetMultiplierVanishFive") as Class));
_addAnim("vanishTen", (getDefinitionByName("AssetMultiplierVanishTen") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 95
//PoisonSpanAsset (com.wwb.princessbride.fire_swamp.assets.PoisonSpanAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class PoisonSpanAsset extends GameAsset {
public function PoisonSpanAsset(){
_addAnim("small1", (getDefinitionByName("AssetPoisonSpanSmall1") as Class));
_addAnim("small2", (getDefinitionByName("AssetPoisonSpanSmall2") as Class));
_addAnim("small3", (getDefinitionByName("AssetPoisonSpanSmall3") as Class));
_addAnim("large1", (getDefinitionByName("AssetPoisonSpanLarge1") as Class));
_addAnim("large2", (getDefinitionByName("AssetPoisonSpanLarge2") as Class));
_addAnim("large3", (getDefinitionByName("AssetPoisonSpanLarge3") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 96
//PortalAsset (com.wwb.princessbride.fire_swamp.assets.PortalAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class PortalAsset extends GameAsset {
public function PortalAsset(){
_addAnim("idleOn", (getDefinitionByName("AssetPortalIdleOn") as Class));
_addAnim("idleOff", (getDefinitionByName("AssetPortalIdleOff") as Class));
_addAnim("on", (getDefinitionByName("AssetPortalOn") as Class));
_addAnim("off", (getDefinitionByName("AssetPortalOff") as Class));
animate("idleOn");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 97
//RousAsset (com.wwb.princessbride.fire_swamp.assets.RousAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class RousAsset extends GameAsset {
public function RousAsset(){
_addAnim("idle", (getDefinitionByName("AssetRousIdle") as Class));
_addAnim("pause", (getDefinitionByName("AssetRousPause") as Class));
_addAnim("run", (getDefinitionByName("AssetRousRun") as Class));
_addAnim("walk", (getDefinitionByName("AssetRousWalk") as Class));
_addAnim("slide", (getDefinitionByName("AssetRousSlide") as Class));
_addAnim("attack", (getDefinitionByName("AssetRousAttack") as Class));
_addAnim("damage", (getDefinitionByName("AssetRousDamage") as Class));
_addAnim("dead", (getDefinitionByName("AssetRousDead") as Class));
_addAnim("eat", (getDefinitionByName("AssetRousEat") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 98
//ScoreEffectAsset (com.wwb.princessbride.fire_swamp.assets.ScoreEffectAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class ScoreEffectAsset extends GameAsset {
public function ScoreEffectAsset(){
_addAnim("idle", (getDefinitionByName("AssetScoreEffect") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 99
//SpikeAsset (com.wwb.princessbride.fire_swamp.assets.SpikeAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class SpikeAsset extends GameAsset {
public function SpikeAsset(){
_addAnim("idle", (getDefinitionByName("AssetSpikeIdle") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 100
//StickAsset (com.wwb.princessbride.fire_swamp.assets.StickAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class StickAsset extends GameAsset {
public function StickAsset(){
_addAnim("idle", (getDefinitionByName("AssetStickIdle") as Class));
_addAnim("vanish", (getDefinitionByName("AssetStickVanish") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 101
//SwitchAsset (com.wwb.princessbride.fire_swamp.assets.SwitchAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class SwitchAsset extends GameAsset {
public function SwitchAsset(){
_addAnim("leverup", (getDefinitionByName("AssetLeverUp") as Class));
_addAnim("leverdown", (getDefinitionByName("AssetLeverDown") as Class));
_addAnim("levertoup", (getDefinitionByName("AssetLeverToUp") as Class));
_addAnim("levertodown", (getDefinitionByName("AssetLeverToDown") as Class));
_addAnim("padup", (getDefinitionByName("AssetPadUp") as Class));
_addAnim("paddown", (getDefinitionByName("AssetPadDown") as Class));
_addAnim("padtoup", (getDefinitionByName("AssetPadToUp") as Class));
_addAnim("padtodown", (getDefinitionByName("AssetPadToDown") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 102
//TimeAsset (com.wwb.princessbride.fire_swamp.assets.TimeAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class TimeAsset extends GameAsset {
public function TimeAsset(){
_addAnim("idle", (getDefinitionByName("AssetTimeIdle") as Class));
_addAnim("vanish", (getDefinitionByName("AssetTimeVanish") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 103
//WaterItemAsset (com.wwb.princessbride.fire_swamp.assets.WaterItemAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class WaterItemAsset extends GameAsset {
public function WaterItemAsset(){
_addAnim("idle", (getDefinitionByName("AssetWaterIdle") as Class));
_addAnim("vanish", (getDefinitionByName("AssetWaterVanish") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 104
//WaterSpanAsset (com.wwb.princessbride.fire_swamp.assets.WaterSpanAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class WaterSpanAsset extends GameAsset {
public function WaterSpanAsset(){
_addAnim("small1", (getDefinitionByName("AssetWaterSpanSmall1") as Class));
_addAnim("small2", (getDefinitionByName("AssetWaterSpanSmall1") as Class));
_addAnim("small3", (getDefinitionByName("AssetWaterSpanSmall1") as Class));
_addAnim("large1", (getDefinitionByName("AssetWaterSpanLarge1") as Class));
_addAnim("large2", (getDefinitionByName("AssetWaterSpanLarge1") as Class));
_addAnim("large3", (getDefinitionByName("AssetWaterSpanLarge1") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 105
//WestleyAsset (com.wwb.princessbride.fire_swamp.assets.WestleyAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class WestleyAsset extends GameAsset {
public function WestleyAsset(){
_addAnim("idle", (getDefinitionByName("AssetWestleyIdle") as Class));
_addAnim("run", (getDefinitionByName("AssetWestleyRun") as Class));
_addAnim("slide", (getDefinitionByName("AssetWestleySlide") as Class));
_addAnim("edge", (getDefinitionByName("AssetWestleySlide") as Class));
_addAnim("jump_up", (getDefinitionByName("AssetWestleyJumpUp") as Class));
_addAnim("jump_down", (getDefinitionByName("AssetWestleyJumpDown") as Class));
_addAnim("climb", (getDefinitionByName("AssetWestleyClimb") as Class));
_addAnim("push", (getDefinitionByName("AssetWestleyPush") as Class));
_addAnim("attack_left", (getDefinitionByName("AssetWestleyAttackLeft") as Class));
_addAnim("attack_right", (getDefinitionByName("AssetWestleyAttackRight") as Class));
_addAnim("jump_attack_left", (getDefinitionByName("AssetWestleyAttackJumpLeft") as Class));
_addAnim("jump_attack_right", (getDefinitionByName("AssetWestleyAttackJumpRight") as Class));
_addAnim("damage", (getDefinitionByName("AssetWestleyDamageMelee") as Class));
_addAnim("firedamage", (getDefinitionByName("AssetWestleyDamageFire") as Class));
_addAnim("aim", (getDefinitionByName("AssetWestleyAim") as Class));
_addAnim("throw", (getDefinitionByName("AssetWestleyThrow") as Class));
_addAnim("swingback", (getDefinitionByName("AssetWestleySwingBack") as Class));
_addAnim("swingfore", (getDefinitionByName("AssetWestleySwingFore") as Class));
_addAnim("hold", (getDefinitionByName("AssetWestleyHold") as Class));
_addAnim("climbcap", (getDefinitionByName("AssetWestleyClimbTop") as Class));
animate("idle");
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 106
//VineAsset (com.wwb.princessbride.fire_swamp.assets.VineAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.paradise.assets.*;
import flash.utils.*;
public class VineAsset extends GameAsset {
public function VineAsset(){
_addAnim("idle", (getDefinitionByName("AssetVineIdle") as Class));
_addAnim("coiled", (getDefinitionByName("AssetVineCoiled") as Class));
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 107
//VineLengthAsset (com.wwb.princessbride.fire_swamp.assets.VineLengthAsset)
package com.wwb.princessbride.fire_swamp.assets {
import com.workinman.lib.events.*;
import flash.display.*;
public class VineLengthAsset extends MovieClip {
public static var EVENT_SET_LENGTH:String = "setLen";
public function VineLengthAsset(){
parent.addEventListener(EVENT_SET_LENGTH, _onSetLength);
}
private function _onSetLength(_arg1:EData):void{
_len(_arg1.data.len);
}
private function _len(_arg1:Number):void{
y = (-(height) + _arg1);
}
}
}//package com.wwb.princessbride.fire_swamp.assets
Section 108
//BridgeData (com.wwb.princessbride.fire_swamp.data.gizmos.BridgeData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
public class BridgeData extends GizmoData {
public var dir:String;
public var isOpen:Boolean;
public var color:uint;
public var toggleEvent:String;
public var startClosed:Boolean;
private var _BRIDGE_Y_OFFSET:Number;// = 10
public function BridgeData(_arg1:XML, _arg2:SurfaceData){
_BRIDGE_Y_OFFSET = 10;
super(_arg1, _arg2);
y = (y + _BRIDGE_Y_OFFSET);
dir = _arg1.attribute("dir");
startClosed = ((_arg1.attribute("closed") == "true")) ? true : false;
isOpen = !(startClosed);
toggleEvent = _arg1.attribute("toggleevent");
if (_arg1.attribute("color") == undefined){
color = 0;
} else {
color = uint(_arg1.attribute("color"));
};
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
isOpen = Bridge(_arg1).isOpen;
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 109
//CheckpointData (com.wwb.princessbride.fire_swamp.data.gizmos.CheckpointData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
public class CheckpointData extends GizmoData {
public var triggered:Boolean;
public function CheckpointData(_arg1:XML, _arg2:SurfaceData){
triggered = false;
super(_arg1, _arg2);
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
triggered = Checkpoint(_arg1).isTriggered;
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 110
//FireMossData (com.wwb.princessbride.fire_swamp.data.gizmos.FireMossData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
public class FireMossData extends GizmoData {
public var hangOffset:Number;
public var isBurning:Boolean;
public var isHanging:Boolean;
public function FireMossData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
isHanging = ((_arg1.attribute("hanging") == "true")) ? true : false;
if (isHanging){
hangOffset = FireSwampConfig.unitsToPixels(Number(_arg1.attribute("hang")));
y = (y + hangOffset);
};
isBurning = true;
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
isBurning = FireMoss(_arg1).isBurning;
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 111
//FireSpoutData (com.wwb.princessbride.fire_swamp.data.gizmos.FireSpoutData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class FireSpoutData extends GizmoData {
public var behavior:String;
public var toggleEvent:String;
public var starttime:Number;
public var startBurning:Boolean;
public var ontime:Number;
public var offtime:Number;
public function FireSpoutData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
behavior = _arg1.attribute("behavior");
if (behavior == "pulse"){
ontime = Number(_arg1.attribute("ontime"));
offtime = Number(_arg1.attribute("offtime"));
starttime = Number(_arg1.attribute("starttime"));
startBurning = ((((starttime < ontime)) || ((starttime > offtime)))) ? true : false;
} else {
if (behavior == "constant"){
startBurning = ((_arg1.attribute("starton") == "false")) ? false : true;
if (_arg1.attribute("toggleevent") != undefined){
toggleEvent = _arg1.attribute("toggleevent");
} else {
toggleEvent = "";
};
//unresolved jump
};
};
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 112
//GateData (com.wwb.princessbride.fire_swamp.data.gizmos.GateData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
public class GateData extends GizmoData {
public var dir:String;
public var isOpen:Boolean;
public var color:uint;
public var toggleEvent:String;
public var startClosed:Boolean;
private var _GATE_Y_OFFSET:Number;// = 8
public function GateData(_arg1:XML, _arg2:SurfaceData){
_GATE_Y_OFFSET = 8;
super(_arg1, _arg2);
y = (y + _GATE_Y_OFFSET);
startClosed = ((_arg1.attribute("closed") == "true")) ? true : false;
isOpen = !(startClosed);
toggleEvent = _arg1.attribute("toggleevent");
if (_arg1.attribute("color") == undefined){
color = 0;
} else {
color = uint(_arg1.attribute("color"));
};
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
isOpen = Gate(_arg1).isOpen;
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 113
//GizmoData (com.wwb.princessbride.fire_swamp.data.gizmos.GizmoData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class GizmoData implements IEntityData {
public var orientation:String;
public var offset:Number;
public var x:Number;
public var y:Number;
public var type:String;
public function GizmoData(_arg1:XML, _arg2:SurfaceData){
type = String(_arg1.attribute("type"));
if (_arg1.attribute("orientation") != undefined){
orientation = _arg1.attribute("orientation");
} else {
orientation = "";
};
if (_arg1.attribute("offset") != undefined){
offset = FireSwampConfig.unitsToPixels(Number(_arg1.attribute("offset")));
} else {
offset = 0;
};
if (orientation != ""){
switch (orientation){
case "right":
x = (_arg2.x + _arg2.width);
break;
case "center":
x = (_arg2.x + (_arg2.width / 2));
break;
case "left":
default:
x = _arg2.x;
break;
};
} else {
x = (_arg2.x + FireSwampConfig.unitsToPixels(Number(_arg1.attribute("offset"))));
};
y = (_arg2.getYatX(x) + 1);
}
public function reconstruct(_arg1:FireSwampSprite):void{
x = _arg1.pos.x;
y = _arg1.pos.y;
}
public function toString():String{
return ("[gizmo DATA] id");
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 114
//GizmoDataLibrary (com.wwb.princessbride.fire_swamp.data.gizmos.GizmoDataLibrary)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class GizmoDataLibrary {
public static function generateGizmoData(_arg1:XML, _arg2:SurfaceData):GizmoData{
switch (_arg1.attribute("type").toLowerCase()){
case "checkpoint":
return (new CheckpointData(_arg1, _arg2));
case "firespout":
return (new FireSpoutData(_arg1, _arg2));
case "firemoss":
return (new FireMossData(_arg1, _arg2));
case "vine":
return (new VineData(_arg1, _arg2));
case "swingvine":
return (new SwingVineData(_arg1, _arg2));
case "switch":
return (new SwitchData(_arg1, _arg2));
case "bridge":
return (new BridgeData(_arg1, _arg2));
case "gate":
return (new GateData(_arg1, _arg2));
case "portal":
return (new PortalData(_arg1, _arg2));
case "spikes":
return (new SpikeData(_arg1, _arg2));
case "multiswitch":
return (new MultiSwitchData(_arg1, _arg2));
case "goal":
return (new GoalData(_arg1, _arg2));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 115
//GoalData (com.wwb.princessbride.fire_swamp.data.gizmos.GoalData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class GoalData extends GizmoData {
public function GoalData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 116
//MultiSwitchData (com.wwb.princessbride.fire_swamp.data.gizmos.MultiSwitchData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class MultiSwitchData extends SwitchData {
public function MultiSwitchData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 117
//PortalData (com.wwb.princessbride.fire_swamp.data.gizmos.PortalData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class PortalData extends GizmoData {
public var id:String;
public var toggleEvent:String;
public var powerless:Boolean;
public function PortalData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
id = _arg1.attribute("id");
if (_arg1.attribute("powerless") == undefined){
powerless = ((_arg1.attribute("powerless") == "true")) ? true : false;
toggleEvent = _arg1.attribute("toggleevent");
} else {
powerless = false;
};
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 118
//SpikeData (com.wwb.princessbride.fire_swamp.data.gizmos.SpikeData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class SpikeData extends GizmoData {
public function SpikeData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 119
//SwingVineData (com.wwb.princessbride.fire_swamp.data.gizmos.SwingVineData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class SwingVineData extends GizmoData {
public var dir:String;
public function SwingVineData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
dir = _arg1.attribute("dir");
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 120
//SwitchData (com.wwb.princessbride.fire_swamp.data.gizmos.SwitchData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
public class SwitchData extends GizmoData {
public var isHeldDown:Boolean;
public var toggle:Boolean;
public var isActive:Boolean;
public var event:String;
public var color:uint;
public function SwitchData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
toggle = ((_arg1.attribute("toggle") == "true")) ? true : false;
event = _arg1.attribute("event");
isActive = false;
isHeldDown = false;
if (_arg1.attribute("color") == undefined){
color = 0;
} else {
color = uint(_arg1.attribute("color"));
};
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
if (toggle == false){
isActive = Switch(_arg1).isActive;
isHeldDown = Switch(_arg1).isHeldDown;
};
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 121
//VineData (com.wwb.princessbride.fire_swamp.data.gizmos.VineData)
package com.wwb.princessbride.fire_swamp.data.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
public class VineData extends GizmoData {
public var length:Number;
public var coiled:Boolean;
public function VineData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
length = FireSwampConfig.unitsToPixels(Number(_arg1.attribute("length")));
coiled = ((_arg1.attribute("coiled") == "true")) ? true : false;
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
coiled = Vine(_arg1).isCoiled;
}
}
}//package com.wwb.princessbride.fire_swamp.data.gizmos
Section 122
//CrumbsItemData (com.wwb.princessbride.fire_swamp.data.items.CrumbsItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class CrumbsItemData extends ItemData {
public var noreset:Boolean;
public function CrumbsItemData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
if (_arg1.attribute("noreset") == "true"){
noreset = true;
} else {
noreset = false;
};
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 123
//DewItemData (com.wwb.princessbride.fire_swamp.data.items.DewItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class DewItemData extends ItemData {
private var _FLOAT_HEIGHT:Number;// = 20
public var noreset:Boolean;
public function DewItemData(_arg1:XML, _arg2:SurfaceData){
_FLOAT_HEIGHT = 20;
super(_arg1, _arg2);
if (_arg1.attribute("noreset") == "true"){
noreset = true;
} else {
noreset = false;
};
y = (y - _FLOAT_HEIGHT);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 124
//FireShieldData (com.wwb.princessbride.fire_swamp.data.items.FireShieldData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class FireShieldData extends ItemData {
private var _FLOAT_HEIGHT:Number;// = 20
public function FireShieldData(_arg1:XML, _arg2:SurfaceData){
_FLOAT_HEIGHT = 20;
super(_arg1, _arg2);
y = (y - _FLOAT_HEIGHT);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 125
//GemItemData (com.wwb.princessbride.fire_swamp.data.items.GemItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class GemItemData extends ItemData {
private var _FLOAT_HEIGHT:Number;// = 20
public var value:Number;
public function GemItemData(_arg1:XML, _arg2:SurfaceData){
_FLOAT_HEIGHT = 20;
super(_arg1, _arg2);
if (_arg1.attribute("value") != undefined){
value = Number(_arg1.attribute("value"));
} else {
value = 1;
};
y = (y - _FLOAT_HEIGHT);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 126
//ItemData (com.wwb.princessbride.fire_swamp.data.items.ItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.items.*;
public class ItemData implements IEntityData {
public var isConsumed:Boolean;
public var x:Number;
public var y:Number;
public var type:String;
public function ItemData(_arg1:XML, _arg2:SurfaceData){
var _local3:Number;
var _local4:String;
super();
type = String(_arg1.attribute("type"));
if (_arg1.attribute("height") != undefined){
_local3 = Number(_arg1.attribute("height"));
} else {
_local3 = 0;
};
if (_arg1.attribute("orientation") != undefined){
_local4 = _arg1.attribute("orientation");
} else {
_local4 = "";
};
if (_local4 != ""){
switch (_local4){
case "right":
x = (_arg2.x + _arg2.width);
break;
case "center":
x = (_arg2.x + (_arg2.width / 2));
break;
case "left":
default:
x = _arg2.x;
break;
};
} else {
x = (_arg2.x + FireSwampConfig.unitsToPixels(Number(_arg1.attribute("offset"))));
};
y = (_arg2.getYatX(x) - FireSwampConfig.unitsToPixels(_local3));
isConsumed = false;
}
public function reconstruct(_arg1:FireSwampSprite):void{
x = _arg1.pos.x;
y = _arg1.pos.y;
isConsumed = Item(_arg1).isConsumed;
}
public function toString():String{
return (((((("[Item DATA] type : " + type) + " , x : ") + x) + " , y : ") + y));
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 127
//ItemDataLibrary (com.wwb.princessbride.fire_swamp.data.items.ItemDataLibrary)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class ItemDataLibrary {
public static function generateItemData(_arg1:XML, _arg2:SurfaceData):ItemData{
switch (_arg1.attribute("type").toLowerCase()){
case "gem":
return (new GemItemData(_arg1, _arg2));
case "water":
return (new WaterItemData(_arg1, _arg2));
case "multiplier":
case "mult":
return (new MultiplierItemData(_arg1, _arg2));
case "life":
return (new LifeItemData(_arg1, _arg2));
case "dew":
return (new DewItemData(_arg1, _arg2));
case "crumbs":
return (new CrumbsItemData(_arg1, _arg2));
case "stick":
return (new StickItemData(_arg1, _arg2));
case "time":
return (new TimeItemData(_arg1, _arg2));
case "shield":
return (new FireShieldData(_arg1, _arg2));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 128
//LifeItemData (com.wwb.princessbride.fire_swamp.data.items.LifeItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class LifeItemData extends ItemData {
private var _FLOAT_HEIGHT:Number;// = 20
public function LifeItemData(_arg1:XML, _arg2:SurfaceData){
_FLOAT_HEIGHT = 20;
super(_arg1, _arg2);
y = (y - _FLOAT_HEIGHT);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 129
//MultiplierItemData (com.wwb.princessbride.fire_swamp.data.items.MultiplierItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class MultiplierItemData extends ItemData {
private var _FLOAT_HEIGHT:Number;// = 20
public var value:Number;
public function MultiplierItemData(_arg1:XML, _arg2:SurfaceData){
_FLOAT_HEIGHT = 20;
super(_arg1, _arg2);
if (_arg1.attribute("value") != undefined){
value = Number(_arg1.attribute("value"));
} else {
value = 1;
};
y = (y - _FLOAT_HEIGHT);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 130
//StickItemData (com.wwb.princessbride.fire_swamp.data.items.StickItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class StickItemData extends ItemData {
public var noreset:Boolean;
public function StickItemData(_arg1:XML, _arg2:SurfaceData){
super(_arg1, _arg2);
if (_arg1.attribute("noreset") == "true"){
noreset = true;
} else {
noreset = false;
};
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 131
//TimeItemData (com.wwb.princessbride.fire_swamp.data.items.TimeItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class TimeItemData extends ItemData {
private var _FLOAT_HEIGHT:Number;// = 20
public function TimeItemData(_arg1:XML, _arg2:SurfaceData){
_FLOAT_HEIGHT = 20;
super(_arg1, _arg2);
y = (y - _FLOAT_HEIGHT);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 132
//WaterItemData (com.wwb.princessbride.fire_swamp.data.items.WaterItemData)
package com.wwb.princessbride.fire_swamp.data.items {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class WaterItemData extends ItemData {
private var _FLOAT_HEIGHT:Number;// = 20
public function WaterItemData(_arg1:XML, _arg2:SurfaceData){
_FLOAT_HEIGHT = 20;
super(_arg1, _arg2);
y = (y - _FLOAT_HEIGHT);
}
}
}//package com.wwb.princessbride.fire_swamp.data.items
Section 133
//FlyRousData (com.wwb.princessbride.fire_swamp.data.mobs.FlyRousData)
package com.wwb.princessbride.fire_swamp.data.mobs {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class FlyRousData extends MobData {
private const _MIN_FLY_HEIGHT:Number = 4;
public var isAlive:Boolean;
public var flyheight:Number;
public var difficulty:Number;
public function FlyRousData(_arg1:XML, _arg2:SurfaceData){
if (_arg1.attribute("difficulty") == undefined){
difficulty = 0;
} else {
difficulty = Number(_arg1.attribute("difficulty"));
};
if (_arg1.attribute("height") == undefined){
flyheight = FireSwampConfig.unitsToPixels(_MIN_FLY_HEIGHT);
} else {
flyheight = FireSwampConfig.unitsToPixels(Number(_arg1.attribute("height")));
if (flyheight < _MIN_FLY_HEIGHT){
flyheight = FireSwampConfig.unitsToPixels(_MIN_FLY_HEIGHT);
};
};
isAlive = true;
super(_arg1, _arg2);
y = (y - 40);
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
isAlive = _arg1.isAlive;
}
override public function toString():String{
return (((((((("[FlyingRous DATA] type : " + type) + " , x : ") + x) + " , y : ") + y) + " , diff : ") + difficulty));
}
}
}//package com.wwb.princessbride.fire_swamp.data.mobs
Section 134
//MobData (com.wwb.princessbride.fire_swamp.data.mobs.MobData)
package com.wwb.princessbride.fire_swamp.data.mobs {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class MobData implements IEntityData {
public var x:Number;
public var y:Number;
public var type:String;
public function MobData(_arg1:XML, _arg2:SurfaceData){
var _local3:String;
super();
type = String(_arg1.attribute("type"));
if (_arg1.attribute("orientation") != undefined){
_local3 = _arg1.attribute("orientation");
} else {
_local3 = "";
};
if (_local3 != ""){
switch (_local3){
case "right":
x = (_arg2.x + _arg2.width);
break;
case "center":
x = (_arg2.x + (_arg2.width / 2));
break;
case "left":
default:
x = _arg2.x;
break;
};
} else {
x = (_arg2.x + FireSwampConfig.unitsToPixels(Number(_arg1.attribute("offset"))));
};
y = _arg2.getYatX(x);
}
public function reconstruct(_arg1:FireSwampSprite):void{
x = _arg1.pos.x;
y = _arg1.pos.y;
}
public function toString():String{
return (((((("[Mob DATA] type : " + type) + " , x : ") + x) + " , y : ") + y));
}
}
}//package com.wwb.princessbride.fire_swamp.data.mobs
Section 135
//MobDataLibrary (com.wwb.princessbride.fire_swamp.data.mobs.MobDataLibrary)
package com.wwb.princessbride.fire_swamp.data.mobs {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
public class MobDataLibrary {
public static function generateMobData(_arg1:XML, _arg2:SurfaceData):MobData{
switch (_arg1.attribute("type").toLowerCase()){
case "boulder":
return (new MobData(_arg1, _arg2));
case "rous":
return (new RousData(_arg1, _arg2));
case "flyingrous":
return (new FlyRousData(_arg1, _arg2));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.data.mobs
Section 136
//RousData (com.wwb.princessbride.fire_swamp.data.mobs.RousData)
package com.wwb.princessbride.fire_swamp.data.mobs {
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class RousData extends MobData {
public var isAlive:Boolean;
public var difficulty:Number;
public function RousData(_arg1:XML, _arg2:SurfaceData){
if (_arg1.attribute("difficulty") == undefined){
difficulty = 0;
} else {
difficulty = Number(_arg1.attribute("difficulty"));
};
isAlive = true;
super(_arg1, _arg2);
y = (y - 2);
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
isAlive = _arg1.isAlive;
}
override public function toString():String{
return (((((((("[Rous DATA] type : " + type) + " , x : ") + x) + " , y : ") + y) + " , diff : ") + difficulty));
}
}
}//package com.wwb.princessbride.fire_swamp.data.mobs
Section 137
//PlayerData (com.wwb.princessbride.fire_swamp.data.players.PlayerData)
package com.wwb.princessbride.fire_swamp.data.players {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
public class PlayerData implements IEntityData {
public var room:Number;
public var x:Number;
public var y:Number;
public var id:String;
public function PlayerData(_arg1:XML, _arg2:SurfaceData){
id = String(_arg1.attribute("id"));
room = Number(_arg1.attribute("room"));
x = (_arg2.x + FireSwampConfig.unitsToPixels(Number(_arg1.attribute("offset"))));
y = _arg2.getYatX(x);
}
public function reconstruct(_arg1:FireSwampSprite):void{
var _local2:Player;
_local2 = Player(_arg1);
x = _local2.pos.x;
y = _local2.pos.y;
}
public function toString():String{
return (((((((("[Player DATA] id : " + id) + " , room : ") + room) + " , x : ") + x) + " , y : ") + y));
}
}
}//package com.wwb.princessbride.fire_swamp.data.players
Section 138
//RoomData (com.wwb.princessbride.fire_swamp.data.rooms.RoomData)
package com.wwb.princessbride.fire_swamp.data.rooms {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.wwb.princessbride.fire_swamp.data.mobs.*;
public class RoomData {
public var platforms:Array;
private var _loop:Number;
public var mobs:Array;
public var pos:Number;
public var timelimit:Number;
public var ground:GroundData;
private var _loopb:Number;
public function RoomData(_arg1:XML){
var _local2:Number;
var _local3:SurfaceData;
super();
pos = Number(_arg1.attribute("pos"));
_local2 = FireSwampConfig.roomToPixels(pos);
if (_arg1.attribute("time") == undefined){
timelimit = 30;
} else {
timelimit = Number(_arg1.attribute("time"));
};
ground = new GroundData(_arg1.ground[0], _local2);
platforms = [];
if (_arg1.platforms != undefined){
_loop = _arg1.platforms.platform.length();
while (_loop--) {
platforms.push(new PlatformData(_arg1.platforms.platform[_loop], _local2));
};
};
mobs = [];
if (_arg1.mobs != undefined){
_loop = _arg1.mobs.mob.length();
while (_loop--) {
_local3 = _findPlatform(_arg1.mobs.mob[_loop].attribute("platform"));
mobs.push(MobDataLibrary.generateMobData(_arg1.mobs.mob[_loop], _local3));
};
};
}
public function getRousCount():Number{
var _local1:Number;
var _local2:Number;
_local1 = 0;
_local2 = mobs.length;
while (_local2--) {
if ((((mobs[_local2].type == "rous")) || ((mobs[_local2].type == "flyingrous")))){
_local1++;
};
};
return (_local1);
}
public function getPlatform(_arg1:String):SurfaceData{
return (_findPlatform(_arg1));
}
private function _findPlatform(_arg1:String):SurfaceData{
if (_arg1 == "ground"){
return (ground);
};
_loopb = platforms.length;
while (_loopb--) {
if (platforms[_loopb].id == _arg1){
return (platforms[_loopb]);
};
};
return (null);
}
public function toString():String{
return (((((("[Room DATA] pos : " + pos) + " platforms : ") + platforms.length) + " mobs : ") + mobs.length));
}
public function getGemCount(_arg1:Number):Number{
var _local2:Number;
var _local3:Number;
_local2 = ground.getGemCount(_arg1);
_local3 = platforms.length;
while (_local3--) {
_local2 = (_local2 + platforms[_local3].getGemCount(_arg1));
};
return (_local2);
}
}
}//package com.wwb.princessbride.fire_swamp.data.rooms
Section 139
//FireSpanData (com.wwb.princessbride.fire_swamp.data.spans.FireSpanData)
package com.wwb.princessbride.fire_swamp.data.spans {
public class FireSpanData extends SpanData {
public function FireSpanData(_arg1:XML){
super(_arg1);
}
override public function get type():String{
return ("fire");
}
override public function toString():String{
return (((("[FireSpan DATA] begin : " + begin) + " , end : ") + end));
}
}
}//package com.wwb.princessbride.fire_swamp.data.spans
Section 140
//GroundSpanData (com.wwb.princessbride.fire_swamp.data.spans.GroundSpanData)
package com.wwb.princessbride.fire_swamp.data.spans {
import com.wwb.princessbride.fire_swamp.*;
public class GroundSpanData extends SpanData {
public var height:Number;
public function GroundSpanData(_arg1:XML){
super(_arg1);
height = FireSwampConfig.unitsToPixels(Number(_arg1.attribute("height")));
}
override public function toString():String{
return (((((("[groundSpan DATA] begin : " + begin) + " , end : ") + end) + " height : ") + height));
}
override public function get type():String{
return ("ground");
}
}
}//package com.wwb.princessbride.fire_swamp.data.spans
Section 141
//PoisonSpanData (com.wwb.princessbride.fire_swamp.data.spans.PoisonSpanData)
package com.wwb.princessbride.fire_swamp.data.spans {
public class PoisonSpanData extends SpanData {
public function PoisonSpanData(_arg1:XML){
super(_arg1);
}
override public function get type():String{
return ("poison");
}
override public function toString():String{
return (((("[PoisonSpan DATA] begin : " + begin) + " , end : ") + end));
}
}
}//package com.wwb.princessbride.fire_swamp.data.spans
Section 142
//SpanData (com.wwb.princessbride.fire_swamp.data.spans.SpanData)
package com.wwb.princessbride.fire_swamp.data.spans {
import com.wwb.princessbride.fire_swamp.*;
public class SpanData {
public var begin:Number;
public var end:Number;
public function SpanData(_arg1:XML){
begin = FireSwampConfig.unitsToPixels(Math.abs(Number(_arg1.attribute("begin"))));
end = FireSwampConfig.unitsToPixels(Math.abs(Number(_arg1.attribute("end"))));
}
public function get type():String{
return ("BASESPAN");
}
public function toString():String{
return (((("[span DATA] begin : " + begin) + " , end : ") + end));
}
}
}//package com.wwb.princessbride.fire_swamp.data.spans
Section 143
//SpanDataLibrary (com.wwb.princessbride.fire_swamp.data.spans.SpanDataLibrary)
package com.wwb.princessbride.fire_swamp.data.spans {
public class SpanDataLibrary {
public static function generateSpanData(_arg1:XML):SpanData{
switch (_arg1.attribute("type").toLowerCase()){
case "ground":
return (new GroundSpanData(_arg1));
case "water":
return (new WaterSpanData(_arg1));
case "poison":
return (new PoisonSpanData(_arg1));
case "fire":
return (new FireSpanData(_arg1));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.data.spans
Section 144
//WaterSpanData (com.wwb.princessbride.fire_swamp.data.spans.WaterSpanData)
package com.wwb.princessbride.fire_swamp.data.spans {
public class WaterSpanData extends SpanData {
public function WaterSpanData(_arg1:XML){
super(_arg1);
}
override public function get type():String{
return ("water");
}
override public function toString():String{
return (((("[WaterSpan DATA] begin : " + begin) + " , end : ") + end));
}
}
}//package com.wwb.princessbride.fire_swamp.data.spans
Section 145
//GroundData (com.wwb.princessbride.fire_swamp.data.surfaces.GroundData)
package com.wwb.princessbride.fire_swamp.data.surfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class GroundData extends SurfaceData {
public function GroundData(_arg1:XML, _arg2:Number){
super(_arg1, _arg2);
x = _arg2;
y = (FireSwampConfig.roomBottom - FireSwampConfig.unitsToPixels(Number(_arg1.attribute("y"))));
width = FireSwampConfig.roomWidth;
id = "ground";
_generateGizmosAndSpans(_arg1);
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
}
override public function toString():String{
return (((((((("[ground DATA] : x : " + x) + " , y : ") + y) + " , gizmos : ") + gizmos.length) + " , spans : ") + spans.length));
}
}
}//package com.wwb.princessbride.fire_swamp.data.surfaces
Section 146
//PlatformData (com.wwb.princessbride.fire_swamp.data.surfaces.PlatformData)
package com.wwb.princessbride.fire_swamp.data.surfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class PlatformData extends SurfaceData {
public var bottomCollision:Boolean;
public function PlatformData(_arg1:XML, _arg2:Number){
super(_arg1, _arg2);
x = (_arg2 + FireSwampConfig.unitsToPixels(Number(_arg1.attribute("x"))));
y = (FireSwampConfig.roomBottom - FireSwampConfig.unitsToPixels(Number(_arg1.attribute("y"))));
width = FireSwampConfig.unitsToPixels(Number(_arg1.attribute("width")));
bottomCollision = ((_arg1.attribute("bottomCollision") == "true")) ? true : false;
_generateGizmosAndSpans(_arg1);
}
override public function reconstruct(_arg1:FireSwampSprite):void{
super.reconstruct(_arg1);
}
override public function toString():String{
return (((((((((("[platform DATA] id : " + id) + " , x : ") + x) + " , y : ") + y) + " , gizmos : ") + gizmos.length) + " , spans : ") + spans.length));
}
}
}//package com.wwb.princessbride.fire_swamp.data.surfaces
Section 147
//SurfaceData (com.wwb.princessbride.fire_swamp.data.surfaces.SurfaceData)
package com.wwb.princessbride.fire_swamp.data.surfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.data.items.*;
import com.wwb.princessbride.fire_swamp.data.gizmos.*;
import com.wwb.princessbride.fire_swamp.data.spans.*;
public class SurfaceData implements IEntityData {
public var items:Array;
private var _loop:Number;
public var gizmos:Array;
private var _width:Number;
public var id:String;
public var drawTiles:Boolean;
public var appearance:String;
public var spans:Array;
private var _x:Number;
private var _y:Number;
public function SurfaceData(_arg1:XML, _arg2:Number){
if (_arg1.attribute("id") != undefined){
id = _arg1.attribute("id");
} else {
id = "";
};
if (GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_TILES) == "true"){
drawTiles = true;
} else {
drawTiles = false;
};
if (GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_PINK_TILES) == "true"){
appearance = FireSwampConfig.DEBUG_TILESET;
} else {
if (_arg1.attribute("appearance") != undefined){
appearance = _arg1.attribute("appearance");
} else {
appearance = FireSwampConfig.DEFAULT_TILESET;
};
};
}
public function reconstruct(_arg1:FireSwampSprite):void{
}
public function set width(_arg1:Number):void{
_width = _arg1;
}
public function get width():Number{
return (_width);
}
public function get y():Number{
return (_y);
}
public function set y(_arg1:Number):void{
_y = _arg1;
}
protected function _generateGizmosAndSpans(_arg1:XML):void{
spans = [];
if (_arg1.spans != undefined){
_loop = _arg1.spans.span.length();
while (_loop--) {
spans.push(SpanDataLibrary.generateSpanData(_arg1.spans.span[_loop]));
};
};
gizmos = [];
if (_arg1.gizmos != undefined){
_loop = _arg1.gizmos.gizmo.length();
while (_loop--) {
gizmos.push(GizmoDataLibrary.generateGizmoData(_arg1.gizmos.gizmo[_loop], this));
};
};
items = [];
if (_arg1.items != undefined){
_loop = _arg1.items.item.length();
while (_loop--) {
items.push(ItemDataLibrary.generateItemData(_arg1.items.item[_loop], this));
};
};
}
public function getYatX(_arg1:Number):Number{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_arg1 = (_arg1 - x);
_local2 = spans.length;
_local3 = 100000;
_local4 = y;
while (_local2--) {
if (spans[_local2].type == "ground"){
if ((((spans[_local2].begin < _arg1)) && ((spans[_local2].end > _arg1)))){
if (Math.abs((spans[_local2].begin - _arg1)) <= _local3){
if ((((Math.abs((spans[_local2].begin - _arg1)) == _local3)) && ((_local4 <= (y - spans[_local2].height))))){
} else {
_local4 = (y - spans[_local2].height);
_local3 = Math.abs((spans[_local2].begin - _arg1));
};
};
};
};
};
return ((_local4 - 1));
}
public function toString():String{
return (((((((((("[surface DATA] id : " + id) + " , x : ") + x) + " , y : ") + y) + " , gizmos : ") + gizmos.length) + " , spans : ") + spans.length));
}
public function set x(_arg1:Number):void{
_x = _arg1;
}
public function get x():Number{
return (_x);
}
public function getGemCount(_arg1:Number):Number{
var _local2:Number;
var _local3:Number;
_local2 = 0;
_local3 = items.length;
while (_local3--) {
if ((items[_local3] is GemItemData)){
if (items[_local3].value == _arg1){
_local2++;
};
};
};
return (_local2);
}
}
}//package com.wwb.princessbride.fire_swamp.data.surfaces
Section 148
//BackgroundData (com.wwb.princessbride.fire_swamp.data.BackgroundData)
package com.wwb.princessbride.fire_swamp.data {
import flash.display.*;
import flash.utils.*;
public class BackgroundData {
private var _linkage:String;
private var _asset:DisplayObject;
private var _id:String;
public function BackgroundData(_arg1:String, _arg2:String){
_id = _arg1;
_linkage = _arg2;
_asset = new ((getDefinitionByName(_linkage) as Class));
}
public function toString():String{
return (((("[Background Data] " + _id) + " , url : ") + _linkage));
}
public function get linkage():String{
return (_linkage);
}
public function get asset():DisplayObject{
return (_asset);
}
public function get id():String{
return (_id);
}
}
}//package com.wwb.princessbride.fire_swamp.data
Section 149
//BackgroundManager (com.wwb.princessbride.fire_swamp.data.BackgroundManager)
package com.wwb.princessbride.fire_swamp.data {
import flash.events.*;
public class BackgroundManager extends EventDispatcher {
private var _loop:Number;
private var _sequentialDataLoadIndex:Number;
private var _backgrounds:Array;
public static var ON_ERROR:String = "onBackgroundManagerLoadError";
public static var ON_COMPLETE:String = "onBackgroundManagerLoadComplete";
public function BackgroundManager(){
_backgrounds = [];
}
public function cleanUp():void{
_sequentialDataLoadIndex = (_backgrounds.length + 1);
_loop = _backgrounds.length;
while (_loop--) {
_backgrounds[_loop].cleanUp();
};
_backgrounds = [];
}
public function getBackgroundCountByID(_arg1:String, _arg2:String):Number{
_loop = _backgrounds.length;
while (_loop--) {
if (_backgrounds[_loop].id == _arg1){
return (_backgrounds[_loop].getLayerCount(_arg2));
};
};
return (-1);
}
public function add(_arg1:String, _arg2:XML, _arg3:String):void{
_backgrounds.push(new BackgroundStorage(_arg1, _arg2, _arg3));
}
private function _findLayerByID(_arg1:String, _arg2:String, _arg3:Number):BackgroundData{
_loop = _backgrounds.length;
while (_loop--) {
if (_backgrounds[_loop].id == _arg1){
return (_backgrounds[_loop].getLayer(_arg2, _arg3));
};
};
return (null);
}
public function getBackgroundByID(_arg1:String, _arg2:String, _arg3:Number):BackgroundData{
return (_findLayerByID(_arg1, _arg2, _arg3));
}
}
}//package com.wwb.princessbride.fire_swamp.data
Section 150
//BackgroundStorage (com.wwb.princessbride.fire_swamp.data.BackgroundStorage)
package com.wwb.princessbride.fire_swamp.data {
import flash.events.*;
public class BackgroundStorage extends EventDispatcher {
private var _path:String;
private var _backgroundIDs:Array;
private var _backgrounds:Object;
private var _isCleaned:Boolean;
private var _id:String;
public static var ON_ERROR:String = "onBackgroundStorageError";
public static var ON_DATA:String = "onBackgroundStorageData";
public function BackgroundStorage(_arg1:String, _arg2:XML, _arg3:String){
var _local4:Number;
var _local5:Number;
super();
_id = _arg1;
_path = _arg3;
_backgrounds = {};
_backgroundIDs = [];
_isCleaned = false;
_local5 = _arg2.children().length();
while (_local5--) {
_backgroundIDs.push(_arg2.children()[_local5].name());
if (_backgrounds[_arg2.children()[_local5].name()] == undefined){
_backgrounds[_arg2.children()[_local5].name()] = [];
};
_local4 = 0;
while (_local4 < _arg2.children()[_local5].children().length()) {
_backgrounds[_arg2.children()[_local5].name()].push(new BackgroundData(_arg2.children()[_local5].name(), String(_arg2.children()[_local5].children()[_local4])));
_local4++;
};
if (_local4 == 1){
_backgrounds[_arg2.children()[_local5].name()].push(new BackgroundData(_arg2.children()[_local5].name(), String(_arg2.children()[_local5].children()[0])));
};
};
}
public function cleanUp():void{
var _local1:Number;
_isCleaned = true;
_local1 = _backgroundIDs.length;
while (_local1--) {
_backgrounds[_backgroundIDs[_local1]] = null;
};
_backgrounds = {};
_backgroundIDs = [];
}
public function get id():String{
return (_id);
}
public function getLayerCount(_arg1:String):Number{
return (_backgrounds[_arg1].length);
}
public function getLayer(_arg1:String, _arg2:Number):BackgroundData{
if (!_backgrounds.hasOwnProperty(_arg1)){
return (null);
};
if (_arg2 > (_backgrounds[_arg1].length - 1)){
_arg2 = (Math.floor((_arg2 % _backgrounds[_arg1].length)) - 1);
};
if (_arg2 < 0){
_arg2 = 0;
};
return (_backgrounds[_arg1][_arg2]);
}
}
}//package com.wwb.princessbride.fire_swamp.data
Section 151
//FireSwampLevelData (com.wwb.princessbride.fire_swamp.data.FireSwampLevelData)
package com.wwb.princessbride.fire_swamp.data {
import com.workinman.paradise.data.*;
import com.wwb.princessbride.fire_swamp.data.rooms.*;
import com.wwb.princessbride.fire_swamp.data.players.*;
public class FireSwampLevelData extends BaseLevelData {
private var _westley:PlayerData;
private var _backgroundSet:String;
private var _highestRoomPos:Number;
private var _levelName:String;
private var _rooms:Array;
private var _buttercup:PlayerData;
public function FireSwampLevelData(_arg1:LevelStorage){
var _local2:*;
_local2 = _arg1.dataXML;
_backgroundSet = _local2.attribute("background");
if (_local2.attribute("name") == undefined){
_levelName = _local2.attribute("");
} else {
_levelName = _local2.attribute("name");
};
_rooms = [];
_loop = _local2.rooms.room.length();
if (_loop == 0){
_rooms.push(new RoomData(_local2.rooms.room));
} else {
while (_loop--) {
_rooms.push(new RoomData(_local2.rooms.room[_loop]));
};
};
_loop = _local2.players.player.length();
while (_loop--) {
if (_local2.players.player[_loop].attribute("id") == "westley"){
_westley = new PlayerData(_local2.players.player[_loop], getRoom(_local2.players.player[_loop].attribute("room")).getPlatform(_local2.players.player[_loop].attribute("platform")));
} else {
if (_local2.players.player[_loop].attribute("id") == "buttercup"){
_buttercup = new PlayerData(_local2.players.player[_loop], getRoom(_local2.players.player[_loop].attribute("room")).getPlatform(_local2.players.player[_loop].attribute("platform")));
};
};
};
_highestRoomPos = 0;
_loop = _rooms.length;
while (_loop--) {
if (Number(_rooms[_loop].pos) > _highestRoomPos){
_highestRoomPos = Number(_rooms[_loop].pos);
};
};
super(_arg1);
}
public function getLevelRousCount():Number{
var _local1:Number;
var _local2:Number;
_local1 = 0;
_local2 = _rooms.length;
while (_local2--) {
_local1 = (_local1 + _rooms[_local2].getRousCount());
};
return (_local1);
}
public function getRoom(_arg1:Number):RoomData{
var _local2:Number;
_local2 = _rooms.length;
while (_local2--) {
if (_rooms[_local2].pos == _arg1){
return (_rooms[_local2]);
};
};
return (null);
}
public function get backgroundSet():String{
return (_backgroundSet);
}
public function getIsLastRoom(_arg1:Number):Boolean{
if (_arg1 == _highestRoomPos){
return (true);
};
return (false);
}
public function getButtercupData():PlayerData{
return (_buttercup);
}
public function getRoomTimeLimit(_arg1:Number):Number{
return (getRoom(_arg1).timelimit);
}
public function getRoomRousCount(_arg1:Number):Number{
return (getRoom(_arg1).getRousCount());
}
public function getWestleyData():PlayerData{
return (_westley);
}
public function toString():String{
return (("[Level] Rooms : " + _rooms.length));
}
public function getLevelGemCount(_arg1:Number):Number{
var _local2:Number;
var _local3:Number;
_local2 = 0;
_local3 = _rooms.length;
while (_local3--) {
_local2 = (_local2 + _rooms[_local3].getGemCount(_arg1));
};
return (_local2);
}
public function get levelName():String{
return (_levelName);
}
public function getRoomGemCount(_arg1:Number, _arg2:Number):Number{
return (getRoom(_arg1).getGemCount(_arg2));
}
public function getIsValidRoom(_arg1:Number):Boolean{
if ((((_arg1 < 1)) || ((_arg1 > _highestRoomPos)))){
return (false);
};
return (true);
}
public function getRoomCount():Number{
return (_rooms.length);
}
}
}//package com.wwb.princessbride.fire_swamp.data
Section 152
//FireSwampLevelManager (com.wwb.princessbride.fire_swamp.data.FireSwampLevelManager)
package com.wwb.princessbride.fire_swamp.data {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.paradise.data.*;
public class FireSwampLevelManager extends LevelManager {
override public function useDataLevels():void{
_levels.push(new LevelStorage(0, ""));
_levels[(_levels.length - 1)].loadFromData(LevelDataClass1.getXML());
_levels.push(new LevelStorage(1, ""));
_levels[(_levels.length - 1)].loadFromData(LevelDataClass2.getXML());
_levels.push(new LevelStorage(2, ""));
_levels[(_levels.length - 1)].loadFromData(LevelDataClass3.getXML());
_levels.push(new LevelStorage(3, ""));
_levels[(_levels.length - 1)].loadFromData(LevelDataClass4.getXML());
_levels.push(new LevelStorage(4, ""));
_levels[(_levels.length - 1)].loadFromData(LevelDataClass5.getXML());
}
}
}//package com.wwb.princessbride.fire_swamp.data
Section 153
//TutorialManager (com.wwb.princessbride.fire_swamp.data.TutorialManager)
package com.wwb.princessbride.fire_swamp.data {
import flash.events.*;
import com.workinman.paradise.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.net.*;
import com.workinman.lib.utils.*;
import flash.utils.*;
import princessbride.*;
import flash.ui.*;
public class TutorialManager extends MovieClip {
private const FILE_NAME:String = "tutorial.swf";
private var _container:MovieClip;
private var _prevShown:Boolean;
private var _isDisplayed:Boolean;
private var _libPrev:SimpleButton;
private var _libTutorial:MovieClip;
private var _nextShown:Boolean;
private var _libBackground:MovieClip;
private var _url:String;
private var _swf:DisplayObject;
private var _useLibrary:Boolean;
private var _libNext:SimpleButton;
public static const ON_COMPLETE:String = "tutLoadComplete";
public static const ON_CLOSED:String = "tutClosed";
public function TutorialManager(_arg1:String, _arg2:MovieClip){
_url = _arg1;
_container = _arg2;
_isDisplayed = false;
_useLibrary = false;
}
public function useLibraryTutorials():void{
_useLibrary = true;
_libBackground = new AssetTutorialShell();
addChild(_libBackground);
_nextShown = (_prevShown = false);
_libNext = new PBButton("NEXT");
_libNext.addEventListener(MouseEvent.CLICK, _onNextClick);
_libNext.x = 502;
_libNext.y = 330;
_libNext.addEventListener(MouseEvent.CLICK, _onNextClick);
_libPrev = new PBButton("PREV");
_libPrev.addEventListener(MouseEvent.CLICK, _onPrevClick);
_libPrev.x = 98;
_libPrev.y = 330;
_libPrev.addEventListener(MouseEvent.CLICK, _onPrevClick);
}
private function _onKey(_arg1:EData):void{
if ((((_arg1.data.keyCode == Keyboard.ENTER)) || ((_arg1.data.keyCode == Keyboard.SPACE)))){
_goNext();
};
}
private function _goNext():void{
if (_libTutorial.currentFrame < _libTutorial.totalFrames){
_libTutorial.nextFrame();
_libTutorial.stop();
_showLibButtons();
} else {
remove();
};
}
private function _onSWF(_arg1:ESWF):void{
SWFLoader.removeEventListener(SWFLoader.ON_SWF, _onSWF);
if (_arg1.success){
_swf = _arg1.swf;
addChild(_swf);
_swf.addEventListener(Event.COMPLETE, _onComplete);
//unresolved jump
};
dispatchEvent(new Event(ON_COMPLETE));
}
private function _showLibButtons():void{
if (_libTutorial.currentFrame == 1){
if (_prevShown){
removeChild(_libPrev);
_prevShown = false;
};
} else {
if (!_prevShown){
addChild(_libPrev);
_prevShown = true;
};
};
if (!_nextShown){
addChild(_libNext);
_nextShown = true;
};
}
private function _goPrev():void{
if (_libTutorial.currentFrame > 1){
_libTutorial.prevFrame();
_libTutorial.stop();
};
_showLibButtons();
}
private function _onPrevClick(_arg1:MouseEvent):void{
_goPrev();
}
private function _onNextClick(_arg1:MouseEvent):void{
_goNext();
}
public function displayAll():void{
if (_isDisplayed){
return;
};
if (_useLibrary){
};
_isDisplayed = true;
_container.addChild(this);
dispatchEvent(new Event("AllTutorials", true));
}
public function remove():void{
if (!_isDisplayed){
return;
};
if (_useLibrary){
removeChild(_libTutorial);
_libTutorial = null;
WorkinDispatcher.getInstance().removeEventListener(ParadiseConfig.EVENT_KEY_UP, _onKey);
};
_isDisplayed = false;
_container.removeChild(this);
dispatchEvent(new Event(ON_CLOSED));
if (_nextShown){
removeChild(_libNext);
_nextShown = false;
};
if (_prevShown){
removeChild(_libPrev);
_prevShown = false;
};
}
public function display(_arg1:Number=1):void{
if (_isDisplayed){
return;
};
_isDisplayed = true;
_container.addChild(this);
if (_useLibrary){
_libTutorial = new ((getDefinitionByName(("AssetTutorial" + _arg1)) as Class));
_libTutorial.x = 0;
_libTutorial.y = 0;
_libTutorial.gotoAndStop(1);
addChild(_libTutorial);
_showLibButtons();
WorkinDispatcher.getInstance().addEventListener(ParadiseConfig.EVENT_KEY_UP, _onKey);
} else {
dispatchEvent(new Event((("Level" + _arg1) + "Tutorial"), true));
};
}
private function _onComplete(_arg1:Event):void{
remove();
}
public function cleanUp():void{
remove();
try {
removeChild(_swf);
} catch(pError:Error) {
};
_swf = null;
}
public function load():void{
if (_useLibrary){
return;
};
SWFLoader.addEventListener(SWFLoader.ON_SWF, _onSWF);
SWFLoader.load((_url + FILE_NAME));
}
}
}//package com.wwb.princessbride.fire_swamp.data
Section 154
//ETrigger (com.wwb.princessbride.fire_swamp.events.ETrigger)
package com.wwb.princessbride.fire_swamp.events {
import flash.events.*;
public class ETrigger extends Event {
private var _on:Boolean;
public function ETrigger(_arg1:String, _arg2:Boolean){
super(_arg1, false, false);
_on = _arg2;
}
public function get on():Boolean{
return (_on);
}
}
}//package com.wwb.princessbride.fire_swamp.events
Section 155
//MultiEventObject (com.wwb.princessbride.fire_swamp.events.MultiEventObject)
package com.wwb.princessbride.fire_swamp.events {
public class MultiEventObject {
private var _count:Number;
private var _triggered:Number;
private var _event:String;
public function MultiEventObject(_arg1:String){
_event = _arg1;
_count = 1;
clearTriggers();
}
public function decrement():void{
_count--;
}
public function get triggered():Number{
return (_triggered);
}
public function clearTriggers():void{
_triggered = 0;
}
public function toString():String{
return (((((("[MultiEventObject] " + _event) + " count : ") + _count) + " triggered : ") + _triggered));
}
public function get isActivated():Boolean{
return ((_triggered >= _count));
}
public function get count():Number{
return (_count);
}
public function increment():void{
_count++;
}
public function detrigger():void{
_triggered--;
}
public function get event():String{
return (_event);
}
public function trigger():void{
_triggered++;
}
}
}//package com.wwb.princessbride.fire_swamp.events
Section 156
//Bonus (com.wwb.princessbride.fire_swamp.ui.interfaces.Bonus)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import flash.display.*;
import flash.text.*;
public class Bonus extends MovieClip {
public var bonus_txt:TextField;
public var txt:TextField;
public function Bonus(){
txt.text = "";
bonus_txt.text = "";
}
public function show(_arg1:String, _arg2:String):void{
txt.text = _arg1;
bonus_txt.text = _arg2;
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 157
//ButtercupSelectButton (com.wwb.princessbride.fire_swamp.ui.interfaces.ButtercupSelectButton)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
public class ButtercupSelectButton extends CharacterSelectButton {
public function ButtercupSelectButton(){
x = 341;
y = 609;
}
override protected function _click():void{
if (((_isSelected) || (!(_isEnabled)))){
return;
};
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_EVENT_BUTTERCUP_CLICK));
}
override protected function _onCharacterChange(_arg1:EData){
if (_arg1.data.player.character == "buttercup"){
select();
} else {
deselect();
};
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 158
//ButtonBuyNow (com.wwb.princessbride.fire_swamp.ui.interfaces.ButtonBuyNow)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
import com.workinman.lib.display.*;
public class ButtonBuyNow extends WorkinButton {
public function ButtonBuyNow():void{
}
override protected function _click():void{
super._click();
disable();
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_BUY_NOW));
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 159
//ButtonSummaryComplete (com.wwb.princessbride.fire_swamp.ui.interfaces.ButtonSummaryComplete)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
import com.workinman.lib.display.*;
public class ButtonSummaryComplete extends WorkinButton {
public function ButtonSummaryComplete():void{
}
override protected function _click():void{
super._click();
disable();
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_CLOSE_SUMMARY));
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 160
//BuyNowManager (com.wwb.princessbride.fire_swamp.ui.interfaces.BuyNowManager)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
public class BuyNowManager extends SummaryWindow {
public function BuyNowManager(){
addFrameScript(35, frame36);
super();
}
function frame36(){
stop();
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 161
//CharacterSelectButton (com.wwb.princessbride.fire_swamp.ui.interfaces.CharacterSelectButton)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.filters.*;
public class CharacterSelectButton extends MovieClip {
protected var _isDown:Boolean;
protected var _isEnabled:Boolean;
protected var _isOver:Boolean;
protected var _isDrawn:Boolean;
protected var _isSelected:Boolean;
public function CharacterSelectButton(){
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_PLAYER_CHANGE, _onCharacterChange);
buttonMode = true;
mouseEnabled = true;
mouseChildren = false;
useHandCursor = true;
_isOver = false;
_isDown = false;
_isSelected = false;
_isEnabled = true;
}
protected function _onRemoved(_arg1:Event):void{
_removeEventListeners();
_isDrawn = false;
}
protected function select():void{
_isSelected = true;
updateDisplay();
}
private function _onOverEvent(_arg1:MouseEvent):void{
_onOver();
}
private function _removeEventListeners():void{
if (_isDown){
GameEngine.getInstance().timeline.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
};
removeEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
removeEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
removeEventListener(MouseEvent.MOUSE_DOWN, _onDownEvent);
}
private function _addEventListeners():void{
addEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
addEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
addEventListener(MouseEvent.MOUSE_DOWN, _onDownEvent);
}
protected function _onDown():void{
_isDown = true;
if (!_isDrawn){
return;
};
updateDisplay();
GameEngine.getInstance().timeline.addEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
}
public function reset():void{
}
public function blur():void{
filters = [new BlurFilter(7, 7)];
}
private function _onUpEvent(_arg1:MouseEvent):void{
_onUp();
}
public function unblur():void{
filters = [];
}
private function _onOutEvent(_arg1:MouseEvent):void{
_onOut();
}
protected function _click():void{
}
private function _onDownEvent(_arg1:MouseEvent):void{
_onDown();
}
protected function _onOver():void{
_isOver = true;
updateDisplay();
}
private function _testMouseOver():Boolean{
if (!_isDrawn){
return (false);
};
if (hitTestPoint(GameEngine.getInstance().mousePoint.x, GameEngine.getInstance().mousePoint.y, true)){
return (true);
};
return (false);
}
public function enable():void{
if (_isEnabled){
return;
};
_isEnabled = true;
filters = [];
}
protected function updateDisplay():void{
if (_isSelected){
gotoAndStop(1);
return;
};
if (((_isDown) || (_isOver))){
gotoAndStop(3);
} else {
gotoAndStop(2);
};
}
protected function deselect():void{
_isSelected = false;
updateDisplay();
}
protected function _onDrawn(_arg1:Event):void{
_isDrawn = true;
_isOver = _testMouseOver();
_addEventListeners();
updateDisplay();
}
protected function _onUp():void{
if (_isDown){
GameEngine.getInstance().timeline.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
_isDown = false;
if (_testMouseOver()){
_click();
};
updateDisplay();
};
}
public function cleanUp():void{
_removeEventListeners();
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_PLAYER_CHANGE, _onCharacterChange);
}
protected function _onCharacterChange(_arg1:EData){
}
public function disable():void{
if (!_isEnabled){
return;
};
_isEnabled = false;
}
protected function _onOut():void{
_isOver = false;
updateDisplay();
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 162
//ExitManager (com.wwb.princessbride.fire_swamp.ui.interfaces.ExitManager)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
public class ExitManager extends MovieClip {
public var btnContinue:SimpleButton;
private var _isDrawn:Boolean;
private var _timeline:MovieClip;
public var btnKeepPlaying:SimpleButton;
public static const ON_CLOSED:String = "onExitManClosed";
public function ExitManager(){
_isDrawn = false;
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
return;
};
btnKeepPlaying.addEventListener(MouseEvent.CLICK, _onKeepPlayingClick);
btnContinue.addEventListener(MouseEvent.CLICK, _onContinueClick);
}
private function _onContinueClick(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.SHELL_OUTRO));
}
public function remove():void{
if (!_isDrawn){
return;
};
_timeline.removeChild(this);
_isDrawn = false;
dispatchEvent(new Event(ON_CLOSED));
}
public function assignParent(_arg1:MovieClip):void{
_timeline = _arg1;
}
public function get isDrawn():Boolean{
return (_isDrawn);
}
private function _onKeepPlayingClick(_arg1:MouseEvent):void{
remove();
}
public function cleanUp():void{
remove();
}
public function show():void{
if (_isDrawn){
return;
};
_timeline.addChild(this);
_isDrawn = true;
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 163
//FireSwampTextCounter (com.wwb.princessbride.fire_swamp.ui.interfaces.FireSwampTextCounter)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import flash.display.*;
import com.workinman.lib.display.*;
public class FireSwampTextCounter extends TextCounter {
public var bonus:MovieClip;
public function showBonus(_arg1:Number):void{
bonus.txt_mc.txt.text = ("+" + String(_arg1));
bonus.gotoAndPlay("in");
}
public function get isCounting():Boolean{
return (_isCounting);
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 164
//GameScoreSummary (com.wwb.princessbride.fire_swamp.ui.interfaces.GameScoreSummary)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import princessbride.*;
public class GameScoreSummary extends SummaryWindow {
public var btnContinue:SimpleButton;
public var total:FireSwampTextCounter;
public function GameScoreSummary(){
total.text = String((GameState.getInstance().baseScore + GameState.getInstance().score.currentGameTotal));
btnContinue = new PBButton("PLAY OUTRO");
btnContinue.addEventListener(MouseEvent.CLICK, _onContinueClick);
btnContinue.x = 519;
btnContinue.y = 564;
addChild(btnContinue);
btnContinue.addEventListener(MouseEvent.CLICK, _onContinueClick);
}
private function _onContinueClick(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.SHELL_OUTRO));
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 165
//GemDisplay (com.wwb.princessbride.fire_swamp.ui.interfaces.GemDisplay)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.text.*;
import com.workinman.paradise.ui.interfaces.*;
public class GemDisplay extends BaseInterface {
public var gem1circle:MovieClip;
public var gem2circle:MovieClip;
private var _isDrawn:Boolean;
private var _state:GameState;
public var gem3circle:MovieClip;
public var txt1:TextField;
public var gem1:MovieClip;
public var gem2:MovieClip;
public var txt2:TextField;
public var txt3:TextField;
public var gem3:MovieClip;
public function GemDisplay(){
x = 20;
y = 676;
_isDrawn = false;
_state = GameState.getInstance();
super();
}
private function _onRemoved(_arg1:Event):void{
_isDrawn = false;
}
override protected function _removeEventListeners():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_GEMS_UPDATE, _onUpdate);
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
super._removeEventListeners();
}
override protected function _addEventListeners():void{
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_GEMS_UPDATE, _onUpdate);
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
super._addEventListeners();
}
public function reset():void{
}
private function _hideGem(_arg1:MovieClip, _arg2:MovieClip):void{
_arg1.visible = false;
_arg2.visible = false;
}
public function updateDisplay(_arg1:Number=0):void{
if (!_isDrawn){
return;
};
if (_arg1 > 0){
this[("gem" + _arg1)].gotoAndPlay("spin");
this[("gem" + _arg1)].sparkle.gotoAndPlay(2);
};
if (_state.purplegem.availableThisRoom){
_showGem(gem1, gem1circle);
txt1.text = String(_state.purplegem.currentRoomTotal);
} else {
_hideGem(gem1, gem1circle);
txt1.text = "";
};
if (_state.greengem.availableThisRoom){
_showGem(gem2, gem2circle);
txt2.text = String(_state.greengem.currentRoomTotal);
} else {
_hideGem(gem2, gem2circle);
txt2.text = "";
};
if (_state.bluegem.availableThisRoom){
_showGem(gem3, gem3circle);
txt3.text = String(_state.bluegem.currentRoomTotal);
} else {
_hideGem(gem3, gem3circle);
txt3.text = "";
};
}
private function _onDrawn(_arg1:Event):void{
_isDrawn = true;
gem1.gotoAndStop("idle");
gem2.gotoAndStop("idle");
gem3.gotoAndStop("idle");
updateDisplay();
}
private function _showGem(_arg1:MovieClip, _arg2:MovieClip):void{
_arg1.visible = true;
_arg2.visible = true;
}
private function _onUpdate(_arg1:EData):void{
updateDisplay(_arg1.data.gem);
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 166
//GenericScoreSummary (com.wwb.princessbride.fire_swamp.ui.interfaces.GenericScoreSummary)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.sound.*;
import com.workinman.paradise.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.workinman.lib.display.*;
import flash.ui.*;
public class GenericScoreSummary extends SummaryWindow {
public var bonus4:Bonus;
public var bonus2:Bonus;
public var green:FireSwampTextCounter;
public var bonus3:Bonus;
protected var _removed:Boolean;
public var total:FireSwampTextCounter;
public var blue:FireSwampTextCounter;
protected var _state:GameState;
protected var _totalScore:Number;
public var rous:FireSwampTextCounter;
protected var _step:Number;
public var purple:FireSwampTextCounter;
public var time:FireSwampTextCounter;
public var bonus1:Bonus;
public function GenericScoreSummary(){
_state = GameState.getInstance();
_setInitialScore();
_removed = false;
total.text = String(_totalScore);
purple.isPercent = true;
green.isPercent = true;
blue.isPercent = true;
rous.isPercent = true;
purple.countRate = 100;
green.countRate = 100;
blue.countRate = 100;
rous.countRate = 100;
total.countRate = 1900;
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
y = (y + 30);
};
_step = 1;
purple.addEventListener(TextCounter.COMPLETE, _onPurpleComplete);
_populatePurple();
WorkinDispatcher.getInstance().addEventListener(ParadiseConfig.EVENT_KEY_UP, _onKeyUp);
}
protected function _setInitialScore():void{
_totalScore = _state.score.room;
}
protected function _onRousComplete(_arg1:Event):void{
rous.removeEventListener(TextCounter.COMPLETE, _onRousComplete);
_stopCountUpSound();
_nextStep();
}
protected function _playCountUpSound():void{
GlobalSound.getInstance().loopSound("scoreCount");
}
protected function _populateBlue():void{
blue.to(_state.bluegem.percentRoom);
_playCountUpSound();
}
protected function _addBonus(_arg1:Number, _arg2:FireSwampTextCounter):void{
_totalScore = (_totalScore + _arg1);
total.to(_totalScore);
_arg2.showBonus(_arg1);
GlobalSound.getInstance().playSound("scoreBonus");
}
private function _onKeyUp(_arg1:EData):void{
if ((((_arg1.data.keyCode == Keyboard.SPACE)) || ((_arg1.data.keyCode == Keyboard.ENTER)))){
WorkinDispatcher.getInstance().removeEventListener(ParadiseConfig.EVENT_KEY_UP, _onKeyUp);
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_CLOSE_SUMMARY));
};
}
protected function _populateRous():void{
rous.to(_state.rous.percentRoom);
_playCountUpSound();
}
protected function _onPurpleComplete(_arg1:Event):void{
purple.removeEventListener(TextCounter.COMPLETE, _onPurpleComplete);
_stopCountUpSound();
_nextStep();
}
protected function _onBlueComplete(_arg1:Event):void{
blue.removeEventListener(TextCounter.COMPLETE, _onBlueComplete);
_stopCountUpSound();
_nextStep();
}
protected function _populateGreen():void{
green.to(_state.greengem.percentRoom);
_playCountUpSound();
}
protected function _stopCountUpSound():void{
GlobalSound.getInstance().stopSound("scoreCount");
}
override protected function _onRemove(_arg1:Event):void{
var pEvent = _arg1;
super._onRemove(pEvent);
try {
WorkinDispatcher.getInstance().removeEventListener(ParadiseConfig.EVENT_KEY_DOWN, _onKeyUp);
} catch(pError:Error) {
};
_removed = true;
_stopCountUpSound();
if (_step == 1){
purple.removeEventListener(TextCounter.COMPLETE, _onPurpleComplete);
};
if (_step == 2){
green.removeEventListener(TextCounter.COMPLETE, _onGreenComplete);
};
if (_step == 3){
blue.removeEventListener(TextCounter.COMPLETE, _onBlueComplete);
};
if (_step == 4){
rous.removeEventListener(TextCounter.COMPLETE, _onRousComplete);
};
if (_step == 5){
time.removeEventListener(TextCounter.COMPLETE, _onTimeComplete);
};
if (_step == 6){
total.removeEventListener(TextCounter.COMPLETE, _onTotalComplete);
};
}
protected function _onGreenComplete(_arg1:Event):void{
green.removeEventListener(TextCounter.COMPLETE, _onGreenComplete);
_stopCountUpSound();
_nextStep();
}
protected function _populatePurple():void{
purple.to(_state.purplegem.percentRoom);
_playCountUpSound();
}
protected function _populateTime():void{
time.to(((_state.roomTime < 200)) ? _state.roomTime : 200);
_playCountUpSound();
}
protected function _nextStep():void{
if (_removed){
return;
};
_step++;
switch (_step){
case 2:
if (!_state.greengem.availableThisRoom){
_nextStep();
return;
};
green.addEventListener(TextCounter.COMPLETE, _onGreenComplete);
_populateGreen();
break;
case 3:
if (!_state.bluegem.availableThisRoom){
_nextStep();
return;
};
blue.addEventListener(TextCounter.COMPLETE, _onBlueComplete);
_populateBlue();
break;
case 4:
if (!_state.rous.availableThisRoom){
_nextStep();
return;
};
rous.addEventListener(TextCounter.COMPLETE, _onRousComplete);
_populateRous();
break;
case 5:
time.addEventListener(TextCounter.COMPLETE, _onTimeComplete);
_populateTime();
break;
case 6:
if (total.isCounting){
_playCountUpSound();
total.addEventListener(TextCounter.COMPLETE, _onTotalComplete);
} else {
_step++;
};
break;
};
}
protected function _onTotalComplete(_arg1:Event):void{
total.removeEventListener(TextCounter.COMPLETE, _onTotalComplete);
_stopCountUpSound();
_step++;
}
protected function _onTimeComplete(_arg1:Event):void{
time.removeEventListener(TextCounter.COMPLETE, _onTimeComplete);
_stopCountUpSound();
if (_state.roomTime > 200){
time.txt.appendText("+");
};
_nextStep();
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 167
//HeatMeter (com.wwb.princessbride.fire_swamp.ui.interfaces.HeatMeter)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise.ui.interfaces.*;
public class HeatMeter extends BaseInterface {
private var _MAX_FRAME:Number;// = 100
private var _currentFrame:Number;
public var meter_fill:MovieClip;
private var _isAnimating:Boolean;
private var _targetFrame:Number;
private static var _ANIMATION_RATE:Number = 40;
public function HeatMeter(){
_MAX_FRAME = 100;
x = 652;
y = 696;
_isAnimating = false;
if (!isNaN(GameState.getInstance().heat)){
_currentFrame = (_targetFrame = _calculateTargetFrame());
} else {
_currentFrame = (_targetFrame = _MAX_FRAME);
};
super();
}
private function _calculateTargetFrame():Number{
return ((100 - Math.floor(Math.round(((GameState.getInstance().heat / 100) * _MAX_FRAME)))));
}
override protected function _removeEventListeners():void{
if (_isAnimating){
_completeAnimation();
};
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_HEAT_UPDATE, _onUpdate);
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
super._removeEventListeners();
}
override protected function _addEventListeners():void{
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_HEAT_UPDATE, _onUpdate);
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
super._addEventListeners();
}
public function reset():void{
}
private function _animate(_arg1:EUpdate):void{
if (_currentFrame < _targetFrame){
_currentFrame = (_currentFrame + Math.floor((_ANIMATION_RATE * _arg1.dt)));
if (_currentFrame >= _targetFrame){
_completeAnimation();
};
} else {
if (_currentFrame > _targetFrame){
_currentFrame = (_currentFrame - Math.floor((_ANIMATION_RATE * _arg1.dt)));
if (_currentFrame <= _targetFrame){
_completeAnimation();
};
} else {
_completeAnimation();
};
};
updateDisplay();
}
public function updateDisplay():void{
if (_currentFrame == 0){
meter_fill.gotoAndStop(1);
return;
};
meter_fill.gotoAndStop(_currentFrame);
}
private function _completeAnimation():void{
if (!_isAnimating){
return;
};
_currentFrame = _targetFrame;
_isAnimating = false;
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _animate);
}
private function _onDrawn(_arg1:Event):void{
updateDisplay();
}
private function _onUpdate(_arg1:Event):void{
_targetFrame = _calculateTargetFrame();
if (_targetFrame > _MAX_FRAME){
_targetFrame = _MAX_FRAME;
};
if (!_isAnimating){
_isAnimating = true;
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _animate);
};
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 168
//LevelDebug (com.wwb.princessbride.fire_swamp.ui.interfaces.LevelDebug)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.display.*;
import flash.text.*;
public class LevelDebug extends MovieClip {
public function LevelDebug(){
var _local1:TextField;
var _local2:Number;
super();
_local1 = new TextField();
_local1.width = 100;
_local1.autoSize = TextFieldAutoSize.LEFT;
_local1.defaultTextFormat = new TextFormat("Helvetica", 12, 0xFFFFFF, true);
_local1.wordWrap = false;
_local1.multiline = false;
_local1.selectable = false;
_local1.embedFonts = true;
_local1.x = 0;
_local1.y = 3;
_local1.text = "Level:";
addChild(_local1);
_local2 = GameEngine.getInstance().levelManager.getLevelCount();
while (_local2--) {
_addLevelButton(_local2);
};
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
x = 20;
y = 40;
scaleX = (scaleY = 0.7);
} else {
x = 40;
y = 108;
};
}
public function _addLevelButton(_arg1:Number):void{
var _local2:MovieClip;
var _local3:TextField;
_local2 = new LevelDebugButton(_arg1);
_local2.graphics.lineStyle(1, 0x999999, 0.3);
_local2.graphics.beginFill(0, 0.3);
_local2.graphics.moveTo(0, 0);
_local2.graphics.lineTo(20, 0);
_local2.graphics.lineTo(20, 20);
_local2.graphics.lineTo(0, 20);
_local2.graphics.lineTo(0, 0);
_local3 = new TextField();
_local3.width = 30;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.defaultTextFormat = new TextFormat("Helvetica", 12, 0xFFFFFF, true);
_local3.wordWrap = false;
_local3.multiline = false;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.alpha = 0.6;
_local3.text = String((_arg1 + 1));
_local3.x = (9 - (_local3.textWidth / 2));
_local3.y = 2.5;
if (_arg1 > 12){
_arg1 = (_arg1 - 13);
_local2.y = 28;
};
_local2.x = (45 + (_arg1 * 30));
_local2.addChild(_local3);
addChild(_local2);
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 169
//LevelDebugButton (com.wwb.princessbride.fire_swamp.ui.interfaces.LevelDebugButton)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
import com.workinman.lib.display.*;
public class LevelDebugButton extends WorkinButton {
private var _levelnum:Number;
public function LevelDebugButton(_arg1:Number):void{
_levelnum = _arg1;
}
override protected function _click():void{
GameState.getInstance().levelnum = _levelnum;
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_DEBUG_LEVEL_WARP));
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 170
//LevelScoreSummary (com.wwb.princessbride.fire_swamp.ui.interfaces.LevelScoreSummary)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import princessbride.*;
public class LevelScoreSummary extends GenericScoreSummary {
public var btnOutro:SimpleButton;
public var btnContinue:SimpleButton;
public function LevelScoreSummary(){
time.isPercent = true;
time.countRate = 100;
btnContinue = new PBButton("CONTINUE");
btnContinue.addEventListener(MouseEvent.CLICK, _onContinueClick);
btnContinue.x = 807.6;
btnContinue.y = 729;
addChild(btnContinue);
if (GameState.getInstance().getConfigOption("hasExitReached") == "true"){
btnOutro = new PBButton("PLAY OUTRO");
btnOutro.addEventListener(MouseEvent.CLICK, _onOutroClick);
btnOutro.x = 700;
btnOutro.y = 729;
addChild(btnOutro);
btnContinue.x = 899.6;
};
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
x = (x - 30);
y = (y - 35);
} else {
y = (y - 60);
};
}
override protected function _onPurpleComplete(_arg1:Event):void{
if (_state.purplegem.ratioLevel == 1){
_addBonus(Math.round((_state.getGemLevelRatioBonus(1) * _state.purplegem.ratioLevel)), purple);
};
super._onPurpleComplete(_arg1);
}
override protected function _populateBlue():void{
blue.to(_state.bluegem.percentLevel);
_playCountUpSound();
}
private function _onOutroClick(_arg1:MouseEvent):void{
visible = false;
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_REPORT_LEVEL_COMPLETE_TO_SHELL, {level:(GameState.getInstance().levelnum + 1), score:GameState.getInstance().scoreToPublish}));
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.SHELL_OUTRO));
}
private function _onContinueClick(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_CLOSE_SUMMARY));
}
override protected function _populateRous():void{
rous.to(_state.rous.percentLevel);
_playCountUpSound();
}
override protected function _populatePurple():void{
purple.to(_state.purplegem.percentLevel);
_playCountUpSound();
}
override protected function _onBlueComplete(_arg1:Event):void{
if (_state.bluegem.ratioLevel == 1){
_addBonus(Math.round((_state.getGemLevelRatioBonus(3) * _state.bluegem.ratioLevel)), blue);
};
super._onBlueComplete(_arg1);
}
override protected function _onRousComplete(_arg1:Event):void{
if (_state.rous.ratioLevel == 1){
_addBonus(Math.round((_state.getRousLevelRatioBonus() * _state.rous.ratioLevel)), rous);
};
super._onRousComplete(_arg1);
}
override protected function _populateGreen():void{
green.to(_state.greengem.percentLevel);
_playCountUpSound();
}
override protected function _onGreenComplete(_arg1:Event):void{
if (_state.greengem.ratioLevel == 1){
_addBonus(Math.round((_state.getGemLevelRatioBonus(2) * _state.greengem.ratioLevel)), green);
};
super._onGreenComplete(_arg1);
}
override protected function _populateTime():void{
time.to(Math.round((_state.levelTimeRatio * 100)));
_playCountUpSound();
}
override protected function _setInitialScore():void{
_totalScore = _state.score.level;
}
override protected function _onTimeComplete(_arg1:Event):void{
if (_state.levelTimeRatio == 1){
_addBonus(_state.getTimeLevelRatioBonus(), time);
};
super._onTimeComplete(_arg1);
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 171
//MainHeader (com.wwb.princessbride.fire_swamp.ui.interfaces.MainHeader)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.text.*;
import com.workinman.paradise.ui.interfaces.*;
public class MainHeader extends BaseInterface {
public var btnPause:SimpleButton;
public var TxtLevel:TextField;
public var TxtScore:TextField;
private var _isEnabled:Boolean;
public var TxtGame:TextField;
public var btnHelp:SimpleButton;
public function MainHeader(){
_isEnabled = true;
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
btnPause.addEventListener(MouseEvent.CLICK, _onPauseClick);
btnHelp.addEventListener(MouseEvent.CLICK, _onHelpClick);
};
}
private function _onUpdateRoomDisplay(_arg1:EData):void{
if (GameState.getInstance().getConfigOption("browserBuild") != "true"){
TxtLevel.text = _arg1.data.name;
} else {
TxtLevel.text = "";
};
}
override protected function _removeEventListeners():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_ROOM_DISPLAY_CHANGE, _onUpdateRoomDisplay);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_SCORE_UPDATE, _onUpdateScoreDisplay);
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
super._removeEventListeners();
}
private function _onPauseClick(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.SHELL_MENU));
}
private function _onUpdateScoreDisplay(_arg1:EData):void{
TxtScore.text = _arg1.data.score;
}
override protected function _addEventListeners():void{
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_ROOM_DISPLAY_CHANGE, _onUpdateRoomDisplay);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_SCORE_UPDATE, _onUpdateScoreDisplay);
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
super._addEventListeners();
}
public function enable():void{
if (_isEnabled){
return;
};
_isEnabled = true;
filters = [];
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
btnPause.addEventListener(MouseEvent.CLICK, _onPauseClick);
btnHelp.addEventListener(MouseEvent.CLICK, _onHelpClick);
};
}
private function _onDrawn(_arg1:Event):void{
}
public function disable():void{
if (!_isEnabled){
return;
};
_isEnabled = false;
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
btnPause.removeEventListener(MouseEvent.CLICK, _onPauseClick);
btnHelp.removeEventListener(MouseEvent.CLICK, _onHelpClick);
};
}
private function _onHelpClick(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.SHELL_HELP));
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 172
//MultiplierDisplay (com.wwb.princessbride.fire_swamp.ui.interfaces.MultiplierDisplay)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.utils.*;
import com.workinman.paradise.ui.interfaces.*;
public class MultiplierDisplay extends BaseInterface {
private var _isDrawn:Boolean;
private var _multiplierDisplay:Array;
private var _state:GameState;
public function MultiplierDisplay(){
x = 975;
y = 188;
_isDrawn = false;
_state = GameState.getInstance();
_multiplierDisplay = [];
super();
}
private function _onRemoved(_arg1:Event):void{
_isDrawn = false;
_clearDisplay();
}
public function _drawDisplay():void{
var _local1:Number;
var _local2:Number;
if (!_isDrawn){
return;
};
_local1 = 0;
_local2 = 0;
while (_local2 < _multiplierDisplay.length) {
_multiplierDisplay[_local2].x = _local1;
_local1 = (_local1 - 80);
_local2++;
};
}
private function _onAdd(_arg1:EData):void{
var _local2:MovieClip;
switch (_arg1.data.mult){
case 2:
_local2 = new ((getDefinitionByName("AssetMultiplierHudTwo") as Class));
break;
case 5:
_local2 = new ((getDefinitionByName("AssetMultiplierHudFive") as Class));
break;
case 10:
_local2 = new ((getDefinitionByName("AssetMultiplierHudTen") as Class));
break;
};
_multiplierDisplay.push(_local2);
addChild(_local2);
_drawDisplay();
}
override protected function _removeEventListeners():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_MULT_ADD, _onAdd);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_MULT_REMOVE, _onRemove);
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
super._removeEventListeners();
}
override protected function _addEventListeners():void{
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_MULT_ADD, _onAdd);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_MULT_REMOVE, _onRemove);
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
super._addEventListeners();
}
public function reset():void{
}
private function _onRemove(_arg1:Event):void{
_clearDisplay();
}
private function _clearDisplay():void{
var _local1:Number;
_local1 = _multiplierDisplay.length;
while (_local1--) {
removeChild(_multiplierDisplay[_local1]);
};
_multiplierDisplay = [];
}
private function _onDrawn(_arg1:Event):void{
_isDrawn = true;
_drawDisplay();
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 173
//PauseManager (com.wwb.princessbride.fire_swamp.ui.interfaces.PauseManager)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import princessbride.*;
public class PauseManager extends MovieClip {
private var _isDrawn:Boolean;
public var btnMap:SimpleButton;
private var _timeline:MovieClip;
public var btnResume:SimpleButton;
public static const ON_CLOSED:String = "onPauseManClosed";
public function PauseManager(){
_isDrawn = false;
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
return;
};
btnResume = new PBButton("RESUME GAME");
btnResume.addEventListener(MouseEvent.CLICK, _onResumeClick);
btnResume.x = 401.6;
btnResume.y = 494.4;
addChild(btnResume);
btnMap = new PBButton("BACK TO MAP");
btnMap.addEventListener(MouseEvent.CLICK, _onMapClick);
btnMap.x = 628.2;
btnMap.y = 494.4;
addChild(btnMap);
btnResume.addEventListener(MouseEvent.CLICK, _onResumeClick);
btnMap.addEventListener(MouseEvent.CLICK, _onMapClick);
}
public function show():void{
if (_isDrawn){
return;
};
_timeline.addChild(this);
_isDrawn = true;
}
private function _onMapClick(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.SHELL_MAP));
}
public function remove():void{
if (!_isDrawn){
return;
};
_timeline.removeChild(this);
_isDrawn = false;
dispatchEvent(new Event(ON_CLOSED));
}
public function assignParent(_arg1:MovieClip):void{
_timeline = _arg1;
}
public function get isDrawn():Boolean{
return (_isDrawn);
}
public function cleanUp():void{
remove();
}
private function _onResumeClick(_arg1:MouseEvent):void{
remove();
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 174
//ResetRoomButton (com.wwb.princessbride.fire_swamp.ui.interfaces.ResetRoomButton)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise.ui.interfaces.*;
public class ResetRoomButton extends BaseInterface {
public function ResetRoomButton(){
buttonMode = true;
mouseEnabled = true;
mouseChildren = false;
useHandCursor = true;
x = 919;
y = 743;
super();
gotoAndStop(1);
}
protected function _onClickEvent(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_RESET_ROOM));
gotoAndStop(1);
}
override protected function _removeEventListeners():void{
removeEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
removeEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
removeEventListener(MouseEvent.CLICK, _onClickEvent);
super._removeEventListeners();
}
protected function _onOverEvent(_arg1:MouseEvent):void{
gotoAndStop(2);
}
override protected function _addEventListeners():void{
addEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
addEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
addEventListener(MouseEvent.CLICK, _onClickEvent);
super._addEventListeners();
}
public function reset():void{
}
protected function _onOutEvent(_arg1:MouseEvent):void{
gotoAndStop(1);
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 175
//RoomDebug (com.wwb.princessbride.fire_swamp.ui.interfaces.RoomDebug)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.text.*;
public class RoomDebug extends MovieClip {
private var _roomButtons:Array;
public function RoomDebug(){
var _local1:TextField;
super();
_local1 = new TextField();
_local1.width = 100;
_local1.autoSize = TextFieldAutoSize.LEFT;
_local1.defaultTextFormat = new TextFormat("Helvetica", 12, 0xFFFFFF, true);
_local1.wordWrap = false;
_local1.multiline = false;
_local1.selectable = false;
_local1.embedFonts = true;
_local1.x = 0;
_local1.y = 3;
_local1.text = "Room Skip:";
addChild(_local1);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_ROOMS_UPDATE, _onUpdate);
_roomButtons = [];
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
x = 450;
y = 68;
scaleX = (scaleY = 0.7);
} else {
x = 800;
y = 140;
};
}
public function _addRoomButton(_arg1:Number):void{
var _local2:MovieClip;
var _local3:TextField;
_arg1++;
_local2 = new RoomDebugButton(_arg1);
_local2.graphics.lineStyle(1, 0x999999, 0.3);
_local2.graphics.beginFill(0, 0.3);
_local2.graphics.moveTo(0, 0);
_local2.graphics.lineTo(20, 0);
_local2.graphics.lineTo(20, 20);
_local2.graphics.lineTo(0, 20);
_local2.graphics.lineTo(0, 0);
_local3 = new TextField();
_local3.width = 30;
_local3.autoSize = TextFieldAutoSize.CENTER;
_local3.defaultTextFormat = new TextFormat("Helvetica", 12, 0xFFFFFF, true);
_local3.wordWrap = false;
_local3.multiline = false;
_local3.selectable = false;
_local3.embedFonts = true;
_local3.alpha = 0.6;
_local3.text = String(_arg1);
_local3.x = (9 - (_local3.textWidth / 2));
_local3.y = 2.5;
_local2.x = (45 + (_arg1 * 30));
_local2.addChild(_local3);
addChild(_local2);
_roomButtons.push(_local2);
}
private function _onUpdate(_arg1:EData):void{
var _local2:Number;
_clearRoomButtons();
_local2 = _arg1.data.rooms;
while (_local2--) {
_addRoomButton(_local2);
};
}
private function _clearRoomButtons():void{
var _local1:Number;
_local1 = _roomButtons.length;
while (_local1--) {
removeChild(_roomButtons[_local1]);
};
_roomButtons = [];
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 176
//RoomDebugButton (com.wwb.princessbride.fire_swamp.ui.interfaces.RoomDebugButton)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.workinman.lib.display.*;
public class RoomDebugButton extends WorkinButton {
private var _roomnum:Number;
public function RoomDebugButton(_arg1:Number):void{
_roomnum = _arg1;
}
override protected function _click():void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_DEBUG_ROOM_WARP, {room:_roomnum}));
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 177
//RoomDisplay (com.wwb.princessbride.fire_swamp.ui.interfaces.RoomDisplay)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import flash.text.*;
import com.workinman.paradise.ui.interfaces.*;
public class RoomDisplay extends BaseInterface {
public var txt_room:TextField;
public function RoomDisplay(){
x = 43;
y = 26;
mouseEnabled = false;
mouseChildren = false;
super();
}
private function _onUpdateRoomDisplay(_arg1:EData):void{
txt_room.text = String(_arg1.data.name);
}
override protected function _removeEventListeners():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_ROOM_DISPLAY_CHANGE, _onUpdateRoomDisplay);
super._removeEventListeners();
}
override protected function _addEventListeners():void{
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_ROOM_DISPLAY_CHANGE, _onUpdateRoomDisplay);
super._addEventListeners();
}
public function reset():void{
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 178
//RoomScoreSummary (com.wwb.princessbride.fire_swamp.ui.interfaces.RoomScoreSummary)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import princessbride.*;
public class RoomScoreSummary extends GenericScoreSummary {
public var btnOutro:SimpleButton;
public var btnContinue:SimpleButton;
public function RoomScoreSummary(){
time.countRate = Math.round(_state.roomTime);
btnContinue = new PBButton("CONTINUE");
btnContinue.addEventListener(MouseEvent.CLICK, _onContinueClick);
btnContinue.x = 807.6;
btnContinue.y = 729;
addChild(btnContinue);
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
x = (x - 30);
y = (y - 35);
} else {
y = (y - 60);
};
}
override protected function _onPurpleComplete(_arg1:Event):void{
if (_state.purplegem.ratioRoom == 1){
_addBonus(Math.round((_state.getGemRoomRatioBonus(1) * _state.purplegem.ratioRoom)), purple);
};
super._onPurpleComplete(_arg1);
}
private function _onOutroClick(_arg1:MouseEvent):void{
visible = false;
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.SHELL_OUTRO));
}
private function _onContinueClick(_arg1:MouseEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_CLOSE_SUMMARY));
}
override protected function _onBlueComplete(_arg1:Event):void{
if (_state.bluegem.ratioRoom == 1){
_addBonus(Math.round((_state.getGemRoomRatioBonus(3) * _state.bluegem.ratioRoom)), blue);
};
super._onBlueComplete(_arg1);
}
override protected function _onRousComplete(_arg1:Event):void{
if (_state.rous.ratioRoom == 1){
_addBonus(Math.round((_state.getRousRoomRatioBonus() * _state.rous.ratioRoom)), rous);
};
super._onRousComplete(_arg1);
}
override protected function _onGreenComplete(_arg1:Event):void{
if (_state.greengem.ratioRoom == 1){
_addBonus(Math.round((_state.getGemRoomRatioBonus(2) * _state.greengem.ratioRoom)), green);
};
super._onGreenComplete(_arg1);
}
override protected function _onTimeComplete(_arg1:Event):void{
if (_state.roomTimeLimitBeaten){
_addBonus(_state.getTimeRoomRatioBonus(), time);
};
super._onTimeComplete(_arg1);
time.txt.appendText(" sec");
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 179
//ScoreDisplay (com.wwb.princessbride.fire_swamp.ui.interfaces.ScoreDisplay)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import flash.text.*;
public class ScoreDisplay extends TextDisplay {
private var _display:TextField;
private var _tag:TextField;
public function ScoreDisplay(){
_tag = new TextField();
_prepTextField(_tag, "Score: ");
addChild(_tag);
_display = new TextField();
_prepTextField(_display);
addChild(_display);
x = 690;
y = 700;
_display.x = (_tag.textWidth + 20);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_SCORE_UPDATE, _onUpdate);
_onUpdate(new EData("force", {score:GameState.getInstance().score.currentGameTotal}));
}
public function cleanUp():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_SCORE_UPDATE, _onUpdate);
}
private function _onUpdate(_arg1:EData):void{
_display.text = String((GameState.getInstance().baseScore + _arg1.data.score));
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 180
//SummaryWindow (com.wwb.princessbride.fire_swamp.ui.interfaces.SummaryWindow)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
public class SummaryWindow extends MovieClip {
public static const COMPLETE:String = "onComplete";
public function SummaryWindow(){
addEventListener(Event.REMOVED_FROM_STAGE, _onRemove);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_CLOSE_SUMMARY, _onClose);
super();
}
protected function _onClose(_arg1:Event):void{
dispatchEvent(new Event(COMPLETE));
}
protected function _onRemove(_arg1:Event):void{
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemove);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_CLOSE_SUMMARY, _onClose);
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 181
//TextDisplay (com.wwb.princessbride.fire_swamp.ui.interfaces.TextDisplay)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import flash.display.*;
import flash.text.*;
public class TextDisplay extends MovieClip {
protected function _prepTextField(_arg1:TextField, _arg2:String="", _arg3:Number=0, _arg4:String="helvetica"):void{
_arg1.width = 200;
_arg1.autoSize = TextFieldAutoSize.LEFT;
_arg1.wordWrap = false;
_arg1.multiline = false;
_arg1.selectable = false;
_arg1.embedFonts = true;
switch (_arg4){
case "helvetica":
default:
_arg1.defaultTextFormat = new TextFormat("Helvetica", 12, 0xFFFFFF, true);
break;
};
_arg1.text = _arg2;
}
public function reset():void{
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 182
//WestleySelectButton (com.wwb.princessbride.fire_swamp.ui.interfaces.WestleySelectButton)
package com.wwb.princessbride.fire_swamp.ui.interfaces {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
public class WestleySelectButton extends CharacterSelectButton {
public function WestleySelectButton(){
x = 410;
y = 24;
}
override protected function _click():void{
if (((_isSelected) || (!(_isEnabled)))){
return;
};
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_EVENT_WESTLEY_CLICK));
}
override protected function _onCharacterChange(_arg1:EData){
if (_arg1.data.player.character == "westley"){
select();
} else {
deselect();
};
}
}
}//package com.wwb.princessbride.fire_swamp.ui.interfaces
Section 183
//GameUI (com.wwb.princessbride.fire_swamp.ui.GameUI)
package com.wwb.princessbride.fire_swamp.ui {
import com.wwb.princessbride.fire_swamp.*;
import flash.display.*;
import com.wwb.princessbride.fire_swamp.ui.interfaces.*;
import com.workinman.paradise.ui.*;
public class GameUI extends BaseUI {
private var _gemDisplay:GemDisplay;
private var _score:ScoreDisplay;
private var _buttercupSelect:ButtercupSelectButton;
private var _timeline:MovieClip;
private var _roomDisplay:RoomDisplay;
private var _roomReset:ResetRoomButton;
private var _roomDebug:RoomDebug;
private var _multiplierDisplay:MultiplierDisplay;
private var _mainHeader:MainHeader;
private var _blackBottom:MovieClip;
private var _levelDebug:LevelDebug;
private var _westleySelect:WestleySelectButton;
private var _isPopulated:Boolean;
private var _heatMeter:HeatMeter;
public function GameUI(_arg1:MovieClip){
_timeline = _arg1;
_isPopulated = false;
}
public function unblur():void{
_mainHeader.unblur();
_westleySelect.unblur();
_buttercupSelect.unblur();
_gemDisplay.unblur();
_heatMeter.unblur();
}
public function enable():void{
_mainHeader.enable();
_westleySelect.enable();
_buttercupSelect.enable();
_roomReset.visible = true;
}
private function _generateHeatMeter():void{
_heatMeter = new HeatMeter();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_heatMeter.scaleX = (_heatMeter.scaleY = 0.5);
_heatMeter.x = (_heatMeter.x - 270);
_heatMeter.y = (_heatMeter.y - 320);
};
}
private function _generateMainHeader():void{
_mainHeader = new MainHeader();
}
private function _generateBlackBottom():void{
_blackBottom = new AssetBlackBottom();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_blackBottom.scaleX = (_blackBottom.scaleY = 0.7);
_blackBottom.y = 382;
} else {
_blackBottom.y = 672;
};
}
private function _generateScore():void{
_score = new ScoreDisplay();
}
private function _generateLevelDebug():void{
_levelDebug = new LevelDebug();
}
public function erase():void{
_timeline.removeChild(_mainHeader);
_timeline.removeChild(_blackBottom);
_timeline.removeChild(_gemDisplay);
_timeline.removeChild(_multiplierDisplay);
if (GameState.getInstance().getConfigOption("browserBuild") != "true"){
_timeline.removeChild(_roomReset);
};
_timeline.removeChild(_heatMeter);
_timeline.removeChild(_westleySelect);
_timeline.removeChild(_buttercupSelect);
if (GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_TILES) == "true"){
_timeline.removeChild(_levelDebug);
_timeline.removeChild(_roomDebug);
};
}
public function draw():void{
_timeline.addChild(_mainHeader);
_timeline.addChild(_blackBottom);
_timeline.addChild(_gemDisplay);
_timeline.addChild(_multiplierDisplay);
if (GameState.getInstance().getConfigOption("browserBuild") != "true"){
_timeline.addChild(_roomReset);
};
_timeline.addChild(_heatMeter);
_timeline.addChild(_westleySelect);
_timeline.addChild(_buttercupSelect);
if (GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_TILES) == "true"){
_timeline.addChild(_levelDebug);
_timeline.addChild(_roomDebug);
};
enable();
}
private function _generateRoomReset():void{
_roomReset = new ResetRoomButton();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_roomReset.scaleX = (_roomReset.scaleY = 0.5);
_roomReset.x = (_roomReset.x - 365);
_roomReset.y = (_roomReset.y - 360);
};
}
private function _generateMultiplierDisplay():void{
_multiplierDisplay = new MultiplierDisplay();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_multiplierDisplay.scaleX = (_multiplierDisplay.scaleY = 0.5);
_multiplierDisplay.x = (_multiplierDisplay.x - 0);
_multiplierDisplay.y = (_multiplierDisplay.y - 312);
};
}
public function cleanUp():void{
_mainHeader.cleanUp();
_gemDisplay.cleanUp();
_multiplierDisplay.cleanUp();
_roomReset.cleanUp();
_heatMeter.cleanUp();
_westleySelect.cleanUp();
_buttercupSelect.cleanUp();
}
private function _reset():void{
_gemDisplay.reset();
_multiplierDisplay.reset();
_roomReset.reset();
_heatMeter.reset();
_westleySelect.reset();
_buttercupSelect.reset();
}
private function _generateButtercupSelect():void{
_buttercupSelect = new ButtercupSelectButton();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_buttercupSelect.scaleX = (_buttercupSelect.scaleY = 0.5);
_buttercupSelect.x = (_buttercupSelect.x - 155);
_buttercupSelect.y = (_buttercupSelect.y - 285);
};
}
public function blur():void{
_mainHeader.blur();
_westleySelect.blur();
_buttercupSelect.blur();
_gemDisplay.blur();
_heatMeter.blur();
}
public function disable():void{
_mainHeader.disable();
_westleySelect.disable();
_buttercupSelect.disable();
_roomReset.visible = false;
}
public function populate():void{
if (_isPopulated){
erase();
};
_generateMainHeader();
_generateBlackBottom();
_generateGemDisplay();
_generateMultiplierDisplay();
_generateHeatMeter();
_generateWestleySelect();
_generateButtercupSelect();
_generateRoomReset();
if (GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_TILES) == "true"){
_generateLevelDebug();
_generateRoomDebug();
};
}
private function _generateRoomDisplay():void{
_roomDisplay = new RoomDisplay();
}
private function _generateGemDisplay():void{
_gemDisplay = new GemDisplay();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_gemDisplay.scaleX = (_gemDisplay.scaleY = 0.5);
_gemDisplay.x = (_gemDisplay.x - 0);
_gemDisplay.y = (_gemDisplay.y - 312);
};
}
private function _generateWestleySelect():void{
_westleySelect = new WestleySelectButton();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_westleySelect.scaleX = (_westleySelect.scaleY = 0.5);
_westleySelect.x = (_westleySelect.x - 180);
_westleySelect.y = (_westleySelect.y + 7);
};
}
private function _generateRoomDebug():void{
_roomDebug = new RoomDebug();
}
}
}//package com.wwb.princessbride.fire_swamp.ui
Section 184
//FireSwampCamera (com.wwb.princessbride.fire_swamp.world.camera.FireSwampCamera)
package com.wwb.princessbride.fire_swamp.world.camera {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.paradise.*;
import com.workinman.paradise.world.camera.*;
public class FireSwampCamera extends BaseCamera {
private var _SCROLL_RATE:Number;// = 700
public function FireSwampCamera(_arg1:Object){
_SCROLL_RATE = 700;
super(_arg1);
}
public function toRoom(_arg1:Number):void{
var _local2:Number;
_local2 = ((ParadiseConfig.SCREEN_CENTER.x + FireSwampConfig.roomCameraPos(_arg1)) - (2 * (_arg1 - 1)));
moveTo(_local2, _pos.y, (Math.abs((_local2 - _pos.x)) / _SCROLL_RATE), PennerManager.EASE_QUAD);
}
public function showRoom(_arg1:Number):void{
clearPaths();
_pos.x = ((ParadiseConfig.SCREEN_CENTER.x + ((_arg1 - 1) * ParadiseConfig.SCREEN_WIDTH)) - (2 * (_arg1 - 1)));
}
}
}//package com.wwb.princessbride.fire_swamp.world.camera
Section 185
//CharEffectHeat (com.wwb.princessbride.fire_swamp.world.entitys.effects.CharEffectHeat)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.assets.*;
public class CharEffectHeat extends Effect {
private var _flipped:Number;
private var _scale:Number;
private var _isFading:Boolean;
public function CharEffectHeat(_arg1:Object){
_arg1.asset = CharEffectHeatAsset;
super(_arg1);
_isFading = true;
_scale = (0.5 + Math.random());
_flipped = ((Math.random() < 0.5)) ? -1 : 1;
_asset.scaleX = (_asset.scaleY = (_scale * _flipped));
_asset.fadeTo(0, 0.7);
_setVelocity(0, -40);
}
override public function updateEverything(_arg1:Number):void{
super.updateEverything(_arg1);
}
override protected function get _removeAfterTimer():Boolean{
return (true);
}
override protected function get _removeTimerDuration():Number{
return (0.8);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 186
//CharEffectPoison (com.wwb.princessbride.fire_swamp.world.entitys.effects.CharEffectPoison)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.assets.*;
public class CharEffectPoison extends Effect {
private var _flipped:Number;
private var _scale:Number;
private var _isFading:Boolean;
public function CharEffectPoison(_arg1:Object){
_arg1.asset = CharEffectPoisonAsset;
super(_arg1);
_isFading = false;
_scale = (0.5 + Math.random());
_flipped = ((Math.random() < 0.5)) ? -1 : 1;
_asset.scaleX = (_asset.scaleY = (_scale * _flipped));
_setVelocity(0, -40);
}
override public function updateEverything(_arg1:Number):void{
super.updateEverything(_arg1);
}
override protected function get _removeAfterTimer():Boolean{
return (true);
}
override protected function get _removeTimerDuration():Number{
return (0.6);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 187
//CharEffectShield (com.wwb.princessbride.fire_swamp.world.entitys.effects.CharEffectShield)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.assets.*;
public class CharEffectShield extends Effect {
private var _flipped:Number;
private var _scale:Number;
private var _isFading:Boolean;
public function CharEffectShield(_arg1:Object){
_arg1.asset = CharEffectShieldAsset;
super(_arg1);
_isFading = true;
fadeTo(0, 0.25);
_setVelocity(0, 0);
}
override public function updateEverything(_arg1:Number):void{
super.updateEverything(_arg1);
}
override protected function get _removeAfterTimer():Boolean{
return (true);
}
override protected function get _removeTimerDuration():Number{
return (0.2);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 188
//CharEffectSparkle (com.wwb.princessbride.fire_swamp.world.entitys.effects.CharEffectSparkle)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.assets.*;
public class CharEffectSparkle extends Effect {
private var _flipped:Number;
private var _scale:Number;
private var _isFading:Boolean;
public function CharEffectSparkle(_arg1:Object){
_arg1.asset = CharEffectSparkleAsset;
super(_arg1);
_isFading = false;
_scale = (0.5 + Math.random());
_flipped = ((Math.random() < 0.5)) ? -1 : 1;
_asset.scaleX = (_asset.scaleY = (_scale * _flipped));
_setVelocity(0, -40);
}
override public function updateEverything(_arg1:Number):void{
super.updateEverything(_arg1);
}
override protected function get _removeAfterTimer():Boolean{
return (true);
}
override protected function get _removeTimerDuration():Number{
return (0.6);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 189
//CharEffectWater (com.wwb.princessbride.fire_swamp.world.entitys.effects.CharEffectWater)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.assets.*;
public class CharEffectWater extends Effect {
private var _flipped:Number;
private var _scale:Number;
private var _isFading:Boolean;
public function CharEffectWater(_arg1:Object){
_arg1.asset = CharEffectWaterAsset;
super(_arg1);
_isFading = false;
_scale = (0.5 + Math.random());
_flipped = ((Math.random() < 0.5)) ? -1 : 1;
_asset.scaleX = (_asset.scaleY = (_scale * _flipped));
_setVelocity(0, -40);
}
override public function updateEverything(_arg1:Number):void{
super.updateEverything(_arg1);
}
override protected function get _removeAfterTimer():Boolean{
return (true);
}
override protected function get _removeTimerDuration():Number{
return (0.6);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 190
//CrumbsProjectileEffect (com.wwb.princessbride.fire_swamp.world.entitys.effects.CrumbsProjectileEffect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class CrumbsProjectileEffect extends Effect {
private var _isUsedUp:Boolean;
private var _destination:WorkinPoint;
private var _MOVE_RATE:Number;// = 500
public function CrumbsProjectileEffect(_arg1:Object){
var _local2:WorkinPoint;
_MOVE_RATE = 500;
_arg1.asset = CrumbsProjectileAsset;
super(_arg1);
_isUsedUp = false;
_destination = _arg1.destination;
_local2 = new WorkinPoint();
_local2.toPoint(_pos.diff(_destination));
_local2.length = _MOVE_RATE;
_setVelocity(_local2.x, _local2.y, _local2.z);
_generateCollisionBox();
_setCollisionBox();
_animate("idle");
}
public function onUseUp():void{
_isUsedUp = true;
}
override protected function _applyVelocity(_arg1:Number):void{
if (_pos.diff(_destination).length < _velocity.multiplyCopy(_arg1).length){
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:pos.x, y:(pos.y + 4), type:"crumb"}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:(pos.x - 3), y:(pos.y + 2), type:"crumb"}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:(pos.x + 3), y:pos.y, type:"crumb"}));
_pos.toPoint(_destination);
GlobalSound.getInstance().playSound("crumbsHit");
_clearVelocity();
_collisionCenter = _collisionBox.getCollisionCenter(_pos);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_CRUMBS_COLLIDE, {source:this}));
} else {
_pos.addPoint(_velocity.multiplyCopy(_arg1));
};
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override public function get type():String{
return ("crumbs");
}
override protected function get _removeAfterAnimation():Boolean{
return (!(_hasVelocity));
}
override protected function _animate(_arg1:String):void{
_asset.animate(_arg1);
if (_arg1 == "idle"){
_asset.mc.rotation = 0;
} else {
_asset.mc.rotation = 0;
};
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("hit");
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 191
//DewProjectileEffect (com.wwb.princessbride.fire_swamp.world.entitys.effects.DewProjectileEffect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.events.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class DewProjectileEffect extends Effect {
private const _SPIN_RATE:Number = 420;
private var _isUsedUp:Boolean;
private var _destination:WorkinPoint;
private var _MOVE_RATE:Number;// = 500
private var _isSpinning:Boolean;
private var _spin:Number;
public function DewProjectileEffect(_arg1:Object){
var _local2:WorkinPoint;
_MOVE_RATE = 500;
_arg1.asset = DewProjectileAsset;
super(_arg1);
_isUsedUp = false;
_destination = _arg1.destination;
_local2 = new WorkinPoint();
_local2.toPoint(_pos.diff(_destination));
_local2.length = _MOVE_RATE;
_setVelocity(_local2.x, _local2.y, _local2.z);
_spin = 0;
_generateCollisionBox();
_setCollisionBox();
_isSpinning = true;
_animate("idle");
}
public function onUseUp():void{
_isUsedUp = true;
}
override public function updateEverything(_arg1:Number):void{
super.updateEverything(_arg1);
if (_isSpinning){
_spin = (_spin + (_SPIN_RATE * _arg1));
_asset.mc.rotation = _spin;
};
}
override protected function _applyVelocity(_arg1:Number):void{
if (_pos.diff(_destination).length < _velocity.multiplyCopy(_arg1).length){
_pos.toPoint(_destination);
_animate("hit");
GlobalSound.getInstance().playSound("crumbsHit");
_isSpinning = false;
_clearVelocity();
_collisionCenter = _collisionBox.getCollisionCenter(_pos);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_DEW_COLLIDE, {source:this}));
} else {
_pos.addPoint(_velocity.multiplyCopy(_arg1));
};
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override public function get type():String{
return ("dew");
}
override protected function get _removeAfterAnimation():Boolean{
return (!(_hasVelocity));
}
override protected function _animate(_arg1:String):void{
_asset.animate(_arg1);
if (_arg1 == "idle"){
_asset.mc.rotation = 0;
} else {
_asset.mc.rotation = 0;
};
_spin = 0;
}
public function testAndResolveDewCollision(_arg1:FireSwampSprite):void{
var _local2:WorkinPoint;
if (_isUsedUp){
return;
};
_local2 = collisionCenter.diff(_arg1.collisionCenter);
if ((((Math.abs(_local2.x) > (collisionWidthHalf + _arg1.collisionWidthHalf))) || ((Math.abs(_local2.y) > (collisionHeightHalf + _arg1.collisionHeightHalf))))){
return;
};
_arg1.onEntityCollision(this);
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("hit");
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 192
//Effect (com.wwb.princessbride.fire_swamp.world.entitys.effects.Effect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.workinman.lib.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class Effect extends FireSwampSprite {
protected var _removeTimer:Number;
protected var _hasVelocity:Boolean;
public function Effect(_arg1:Object){
super(_arg1);
if (_removeAfterTimer){
_setRemoveTimer();
};
}
protected function _clearVelocity():void{
_hasVelocity = false;
_velocity = new WorkinPoint(0, 0, 0);
}
public function updateEverything(_arg1:Number):void{
if (_removeAfterAnimation){
if (_asset.mc.currentFrame == _asset.mc.totalFrames){
_remove();
};
};
if (_removeAfterTimer){
_removeTimer = (_removeTimer - _arg1);
if (_removeTimer <= 0){
_remove();
};
};
if (_hasVelocity){
_applyVelocity(_arg1);
};
}
protected function _applyVelocity(_arg1:Number):void{
_pos.addPoint(_velocity.multiplyCopy(_arg1));
}
override public function get group():String{
return ("effects");
}
public function get room():Number{
return (-1);
}
override public function degenerate():void{
cleanUp();
_doDelete = true;
_doDegenerate = false;
}
protected function get _removeAfterTimer():Boolean{
return (false);
}
override public function get type():String{
return ("effect");
}
protected function get _removeTimerDuration():Number{
return (5);
}
protected function _setRemoveTimer():void{
_removeTimer = _removeTimerDuration;
}
protected function get _removeAfterAnimation():Boolean{
return (false);
}
protected function _remove():void{
if (_doDelete){
return;
};
degenerateAfterErase();
_erase();
}
protected function _setVelocity(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_hasVelocity = true;
_velocity = new WorkinPoint(_arg1, _arg2, _arg3);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 193
//EffectCrumbParticle (com.wwb.princessbride.fire_swamp.world.entitys.effects.EffectCrumbParticle)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.assets.*;
public class EffectCrumbParticle extends Effect {
private const _GRAVITY:Number = 300;
public function EffectCrumbParticle(_arg1:Object){
_arg1.asset = EffectCrumbParticleAsset;
super(_arg1);
_setVelocity((100 - (Math.random() * 200)), (-200 - (Math.random() * -200)));
_asset.scaleX = (_asset.scaleY = (1 - (Math.random() / 2)));
}
override public function updateEverything(_arg1:Number):void{
_velocity.y = (_velocity.y + (_GRAVITY * _arg1));
super.updateEverything(_arg1);
}
override protected function get _removeAfterTimer():Boolean{
return (true);
}
override protected function get _removeTimerDuration():Number{
return (1);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 194
//EffectLibrary (com.wwb.princessbride.fire_swamp.world.entitys.effects.EffectLibrary)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
public class EffectLibrary {
public static function generateNewEffect(_arg1:Object):Effect{
switch (_arg1.type){
case "score":
return (new ScoreEffect(_arg1));
case "dew":
return (new DewProjectileEffect(_arg1));
case "crumbs":
return (new CrumbsProjectileEffect(_arg1));
case "waterspan":
return (new WaterSpanEffect(_arg1));
case "firespan":
return (new FireSpanEffect(_arg1));
case "poisonspan":
return (new PoisonSpanEffect(_arg1));
case "select":
return (new CharEffectSparkle(_arg1));
case "heat":
return (new CharEffectHeat(_arg1));
case "water":
return (new CharEffectWater(_arg1));
case "poison":
return (new CharEffectPoison(_arg1));
case "shield":
return (new CharEffectShield(_arg1));
case "crumb":
return (new EffectCrumbParticle(_arg1));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 195
//FireSpanEffect (com.wwb.princessbride.fire_swamp.world.entitys.effects.FireSpanEffect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.workinman.paradise.assets.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class FireSpanEffect extends SpanEffect {
public function FireSpanEffect(_arg1:Object){
super(_arg1);
}
override protected function _getNewSpanAsset():GameAsset{
return (new FireSpanAsset());
}
override protected function get _OFFSET_Y():Number{
return (8);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 196
//GlowManager (com.wwb.princessbride.fire_swamp.world.entitys.effects.GlowManager)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.events.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.workinman.lib.utils.*;
public class GlowManager {
private var _timer:Number;
private var _ownerRef:FireSwampSprite;
private var _type:String;
private var _frequency:Number;
private var _scatter:Boolean;
public function GlowManager(_arg1:FireSwampSprite, _arg2:String, _arg3:Number, _arg4:Boolean=true){
_ownerRef = _arg1;
_frequency = _arg3;
_type = _arg2;
_scatter = _arg4;
_resetTimer();
}
public function get type():String{
return (_type);
}
public function update(_arg1:Number):void{
_timer = (_timer - _arg1);
if (_timer < 0){
showEffect();
_resetTimer();
};
}
private function _randx():Number{
if (!_scatter){
return (0);
};
return (((_ownerRef.displayWidth / 2) - (Math.random() * _ownerRef.displayWidth)));
}
private function _resetTimer():void{
_timer = _frequency;
}
public function showEffect():void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:(_ownerRef.pos.x + _randx()), y:(_ownerRef.pos.y + _randy()), type:_type}));
}
private function _randy():Number{
if (!_scatter){
return (-((_ownerRef.displayHeight / 2)));
};
return ((-(Math.random()) * _ownerRef.displayHeight));
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 197
//PoisonSpanEffect (com.wwb.princessbride.fire_swamp.world.entitys.effects.PoisonSpanEffect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.workinman.paradise.assets.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class PoisonSpanEffect extends SpanEffect {
public function PoisonSpanEffect(_arg1:Object){
super(_arg1);
}
override protected function _getNewSpanAsset():GameAsset{
return (new PoisonSpanAsset());
}
override protected function get _SMALL_WIDTH():Number{
return (50);
}
override protected function get _OFFSET_Y():Number{
return (8);
}
override protected function get _LARGE_WIDTH():Number{
return (140);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 198
//ScoreEffect (com.wwb.princessbride.fire_swamp.world.entitys.effects.ScoreEffect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class ScoreEffect extends Effect {
private var _alpha:Number;
private var _value:String;
private var _ALPHA_RATE:Number;// = 2
private var _isFading:Boolean;
public function ScoreEffect(_arg1:Object){
_ALPHA_RATE = 2;
_arg1.asset = ScoreEffectAsset;
super(_arg1);
_isFading = false;
_alpha = 1;
if (_arg1.isScore == true){
_value = (String(_arg1.value) + ((GameState.getInstance().multiplier > 1)) ? (" x" + String(GameState.getInstance().multiplier)) : "");
} else {
_value = String(_arg1.value);
};
_asset.mc.txt.text = _value;
_setVelocity(0, -80);
}
override public function updateEverything(_arg1:Number):void{
if (((!(_isFading)) && ((_removeTimer < 0.6)))){
_isFading = true;
};
if (_isFading){
_alpha = (_alpha - (_ALPHA_RATE * _arg1));
if (_alpha < 0){
_alpha = 0;
};
_asset.alpha = _alpha;
};
super.updateEverything(_arg1);
}
override public function get group():String{
return ("uieffects");
}
override protected function get _removeAfterTimer():Boolean{
return (true);
}
override protected function get _removeTimerDuration():Number{
return (2);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 199
//SpanEffect (com.wwb.princessbride.fire_swamp.world.entitys.effects.SpanEffect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.workinman.lib.math.*;
import com.workinman.paradise.assets.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class SpanEffect extends Effect {
protected var _end:WorkinPoint;
protected var _width:Number;
protected var _start:WorkinPoint;
protected var _room:Number;
protected var _effects:Array;
public function SpanEffect(_arg1:Object){
_arg1.asset = EmptyAsset;
_arg1.x = _arg1.start.x;
_arg1.y = (_arg1.start.y + _OFFSET_Y);
super(_arg1);
_room = _arg1.room;
_start = _arg1.start.copy();
_end = _arg1.end.copy();
_width = (_end.x - _start.x);
}
protected function _getNewSpanAsset():GameAsset{
return (new WaterSpanAsset());
}
override public function get group():String{
return ("ground");
}
protected function get _SMALL_WIDTH():Number{
return (80);
}
override public function get room():Number{
return (_room);
}
override public function onDrawn():void{
var _local1:Number;
var _local2:GameAsset;
var _local3:Number;
_effects = [];
_local1 = 0;
while (_local1 < (_width - _SMALL_WIDTH)) {
_local2 = _getNewSpanAsset();
_local2.y = 0;
_local2.x = _local1;
_effects.push(_local2);
_local3 = Math.ceil((Math.random() * 3));
if (_local3 == 0){
_local3 = 1;
};
if (((((_width - _local1) >= _LARGE_WIDTH)) && ((Math.abs(((_width - _local1) - _LARGE_WIDTH)) > 10)))){
_local2.animate(("large" + _local3));
_local1 = (_local1 + _LARGE_WIDTH);
} else {
_local2.animate(("small" + _local3));
_local1 = (_local1 + _SMALL_WIDTH);
};
_asset.addChild(_local2);
};
_asset.x = (_asset.x + 10);
super.onDrawn();
}
protected function get _OFFSET_Y():Number{
return (8);
}
override public function onErased():void{
var _local1:Number;
super.onErased();
_local1 = _effects.length;
while (_local1--) {
_asset.removeChild(_effects[_local1]);
};
_effects = [];
}
protected function get _LARGE_WIDTH():Number{
return (150);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 200
//WaterSpanEffect (com.wwb.princessbride.fire_swamp.world.entitys.effects.WaterSpanEffect)
package com.wwb.princessbride.fire_swamp.world.entitys.effects {
import com.workinman.paradise.assets.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class WaterSpanEffect extends SpanEffect {
public function WaterSpanEffect(_arg1:Object){
super(_arg1);
}
override protected function _getNewSpanAsset():GameAsset{
return (new WaterSpanAsset());
}
override protected function get _OFFSET_Y():Number{
return (0);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.effects
Section 201
//Bridge (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Bridge)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.utils.*;
import flash.geom.*;
import com.wwb.princessbride.fire_swamp.events.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Bridge extends Gizmo {
private var _toggleevent:String;
private var _color:uint;
private var _facingLeft:Boolean;
private var _startClosed:Boolean;
private var _isOpen:Boolean;
private var _dir:String;
private var _registrationPoint:String;
private var _transform:ColorTransform;
public function Bridge(_arg1:Object){
_arg1.asset = BridgeAsset;
_dir = _arg1.gizmoData.dir;
_facingLeft = ((_dir == "left")) ? true : false;
_startClosed = _arg1.gizmoData.startClosed;
_toggleevent = _arg1.gizmoData.toggleEvent;
_isOpen = _arg1.gizmoData.isOpen;
_color = _arg1.gizmoData.color;
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(_toggleevent, _onToggleEvent);
super(_arg1);
if (_isOpen){
_openIdle();
} else {
_closeIdle();
};
_generateCollisionLines();
}
private function _onToggleEvent(_arg1:ETrigger):void{
if (((((_arg1.on) && (_startClosed))) || (((!(_arg1.on)) && (!(_startClosed)))))){
_open();
} else {
_close();
};
}
override public function get entityCollisionAsSurface():Boolean{
return (true);
}
private function _closeIdle():void{
_animate("idleClose");
_isOpen = false;
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return (_registrationPoint);
}
public function get isOpen():Boolean{
return (_isOpen);
}
private function _openIdle():void{
_animate("idleOpen");
_isOpen = true;
}
override public function updateAnimation(_arg1:Number):void{
}
override public function cleanUp():void{
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).removeEventListener(_toggleevent, _onToggleEvent);
super.cleanUp();
}
override public function get entityCollisionAsBox():Boolean{
return (false);
}
private function _close():void{
GlobalSound.getInstance().stopSound("bridgeDown");
GlobalSound.getInstance().playSound("bridgeUp", true);
_animate("close");
_isOpen = false;
_recalculateDimensions();
_setCollisionBox();
_generateCollisionLines();
}
override public function get doComplexCollision():Boolean{
return (true);
}
override public function get type():String{
return ("bridge");
}
private function _open():void{
GlobalSound.getInstance().stopSound("bridgeUp");
GlobalSound.getInstance().playSound("bridgeDown", true);
_animate("open");
_isOpen = true;
_recalculateDimensions();
_setCollisionBox();
_generateCollisionLines();
}
override protected function _animate(_arg1:String):void{
var _local2:Number;
_local2 = 0;
if ((((_asset.animation == "open")) || ((_asset.animation == "close")))){
if (_asset.mc.currentFrame != _asset.mc.totalFrames){
_local2 = _asset.mc.currentFrame;
};
};
_asset.animate(_arg1);
if (_local2 > 0){
if ((_asset.mc.totalFrames - _local2) > 0){
_asset.mc.gotoAndPlay((_asset.mc.totalFrames - _local2));
};
};
if (_facingLeft){
_asset.scaleX = 1;
} else {
_asset.scaleX = -1;
};
if (_color == 0){
asset.mc.color.visible = false;
} else {
asset.mc.color.visible = true;
_transform = asset.mc.color.fill.transform.colorTransform;
_transform.color = _color;
asset.mc.color.fill.transform.colorTransform = _transform;
};
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
if (_isOpen){
_local1 = new WorkinPoint(147, 20);
if (_facingLeft){
_registrationPoint = "cr";
} else {
_registrationPoint = "cl";
};
} else {
_local1 = new WorkinPoint(20, 147);
if (_facingLeft){
_registrationPoint = "bl";
} else {
_registrationPoint = "br";
};
};
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 202
//Checkpoint (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Checkpoint)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.workinman.lib.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Checkpoint extends Gizmo {
private var _triggered:Boolean;
public function Checkpoint(_arg1:Object){
_arg1.asset = CheckpointAsset;
_triggered = _arg1.gizmoData.triggered;
super(_arg1);
if (_triggered){
_on();
} else {
_off();
};
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
protected function _on():void{
_triggered = true;
_animate("idleon");
}
protected function _trigger():void{
_triggered = true;
_animate("trigger");
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
if ((((_arg1.type == "dew")) || ((_arg1.type == "crumbspile")))){
return;
};
if (!_triggered){
_trigger();
};
}
protected function _off():void{
_triggered = false;
_animate("idleoff");
}
public function get isTriggered():Boolean{
return (_triggered);
}
override public function get type():String{
return ("checkpoint");
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("idleoff");
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 203
//FireMoss (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.FireMoss)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class FireMoss extends Gizmo {
private var _isHanging:Boolean;
private var _damage:Number;
private var _isBurning:Boolean;
public function FireMoss(_arg1:Object){
_isHanging = _arg1.gizmoData.isHanging;
_arg1.asset = FireMossAsset;
_isBurning = _arg1.gizmoData.isBurning;
super(_arg1);
if (_isBurning){
_on();
} else {
_off();
};
_damage = Number(GameState.getInstance().getConfigOption("fireMossHeatDamage"));
_generateCollisionLines();
}
override public function get entityCollisionAsSurface():Boolean{
return (_isBurning);
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ((_isHanging) ? "tc" : "bc");
}
private function _on():void{
_animate(((_isHanging) ? "hang" : "rest" + "on"));
_isBurning = true;
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
if (((!((_arg1.type == "dew"))) || (!(_isBurning)))){
return;
};
_off();
}
private function _off():void{
_animate(((_isHanging) ? "hang" : "rest" + "off"));
_isBurning = false;
}
override public function updateAnimation(_arg1:Number):void{
}
override public function get type():String{
return ("firemoss");
}
public function get isBurning():Boolean{
return (_isBurning);
}
override public function get damage():Number{
return (_damage);
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions(((_isHanging) ? "hang" : "rest" + "on"));
_displayWidth = (_local1.x * 0.85);
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 204
//FireSpout (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.FireSpout)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.sound.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.events.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class FireSpout extends Gizmo {
private var _active:Boolean;
private var _toggleevent:String;
private var _onTime:Number;
private var _damage:Number;
private var _pulseTimer:Number;
private var _startTime:Number;
private var _doesPulse:Boolean;
private var _offTime:Number;
private var _behavior:String;
public function FireSpout(_arg1:Object){
_arg1.asset = FireSpoutAsset;
_behavior = _arg1.gizmoData.behavior;
if (_behavior == "pulse"){
_doesPulse = true;
_onTime = _arg1.gizmoData.ontime;
_offTime = _arg1.gizmoData.offtime;
_startTime = _arg1.gizmoData.starttime;
} else {
if (_behavior == "constant"){
_doesPulse = false;
_toggleevent = _arg1.gizmoData.toggleEvent;
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(_toggleevent, _onToggleEvent);
_pulseTimer = 0;
};
};
super(_arg1);
if (_arg1.gizmoData.startBurning){
_onIdle();
if (_behavior == "pulse"){
_pulseTimer = (_onTime - _startTime);
};
} else {
_offIdle();
if (_behavior == "pulse"){
_pulseTimer = (_offTime - (_startTime - _onTime));
};
};
_damage = Number(GameState.getInstance().getConfigOption((_doesPulse) ? "fireSpoutHeatDamage" : "constantSpoutHeatDamage"));
_generateCollisionLines();
}
private function _onToggleEvent(_arg1:ETrigger):void{
if (_arg1.on){
_off();
} else {
_on();
};
}
override public function get entityCollisionAsSurface():Boolean{
return (_active);
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
private function _offIdle():void{
_animate("idleOff");
_active = false;
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
}
private function _on():void{
_animate("on");
_active = true;
if (_mcVisible){
GlobalSound.getInstance().playSound("firespoutOn");
};
}
override public function updateAnimation(_arg1:Number):void{
if (_doesPulse){
_pulseTimer = (_pulseTimer - _arg1);
if (_pulseTimer <= 0){
if (_active){
_off();
_pulseTimer = _offTime;
} else {
_on();
_pulseTimer = _onTime;
};
};
};
}
private function _off():void{
_animate("off");
_active = false;
if (_mcVisible){
GlobalSound.getInstance().playSound("firespoutOff");
};
}
override public function cleanUp():void{
if (_behavior == "constant"){
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).removeEventListener(_toggleevent, _onToggleEvent);
};
super.cleanUp();
}
public function get active():Boolean{
return (_active);
}
override public function get type():String{
return ("firespout");
}
private function _onIdle():void{
_animate("idleOn");
_active = true;
}
override public function get damage():Number{
return (_damage);
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("idleOn");
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 205
//Gate (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Gate)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.utils.*;
import flash.geom.*;
import com.wwb.princessbride.fire_swamp.events.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Gate extends Gizmo {
private var _toggleevent:String;
private var _color:uint;
private var _startClosed:Boolean;
private var _isOpen:Boolean;
private var _transform:ColorTransform;
public function Gate(_arg1:Object){
_arg1.asset = GateAsset;
_startClosed = _arg1.gizmoData.startClosed;
_toggleevent = _arg1.gizmoData.toggleEvent;
_isOpen = _arg1.gizmoData.isOpen;
_color = _arg1.gizmoData.color;
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(_toggleevent, _onToggleEvent);
super(_arg1);
if (_isOpen){
_openIdle();
} else {
_closeIdle();
};
_generateCollisionLines();
}
private function _onToggleEvent(_arg1:ETrigger):void{
if (((((_arg1.on) && (_startClosed))) || (((!(_arg1.on)) && (!(_startClosed)))))){
_open();
} else {
_close();
};
}
override public function get entityCollisionAsSurface():Boolean{
return (true);
}
private function _closeIdle():void{
_animate("idleClose");
_isOpen = false;
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
public function get isOpen():Boolean{
return (_isOpen);
}
private function _openIdle():void{
_animate("idleOpen");
_isOpen = true;
}
override public function updateAnimation(_arg1:Number):void{
}
override public function cleanUp():void{
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).removeEventListener(_toggleevent, _onToggleEvent);
super.cleanUp();
}
private function _close():void{
_animate("close");
_isOpen = false;
_recalculateDimensions();
_setCollisionBox();
_generateCollisionLines();
}
override public function get doComplexCollision():Boolean{
return (true);
}
override public function get type():String{
return ("gate");
}
private function _open():void{
_animate("open");
_isOpen = true;
_recalculateDimensions();
_setCollisionBox();
_generateCollisionLines();
}
override protected function _animate(_arg1:String):void{
var _local2:Number;
_local2 = 0;
if ((((_asset.animation == "open")) || ((_asset.animation == "close")))){
if (_asset.mc.currentFrame != _asset.mc.totalFrames){
_local2 = _asset.mc.currentFrame;
};
};
_asset.animate(_arg1);
if (_local2 > 0){
if ((_asset.mc.totalFrames - _local2) > 0){
_asset.mc.gotoAndPlay((_asset.mc.totalFrames - _local2));
};
};
if (_color == 0){
asset.mc.color.visible = false;
} else {
asset.mc.color.visible = true;
_transform = asset.mc.color.fill.transform.colorTransform;
_transform.color = _color;
asset.mc.color.fill.transform.colorTransform = _transform;
};
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
if (_isOpen){
_local1 = new WorkinPoint(0, 0);
} else {
_local1 = new WorkinPoint(14, 143);
};
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 206
//Gizmo (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Gizmo)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public class Gizmo extends RoomInhabitant {
public function Gizmo(_arg1:Object){
_generator = _arg1.gizmoData;
_arg1.x = _arg1.gizmoData.x;
_arg1.y = _arg1.gizmoData.y;
super(_arg1);
_setCollisionBox();
}
override public function get group():String{
return ("gizmos");
}
public function updateAnimation(_arg1:Number):void{
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 207
//GizmoLibrary (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.GizmoLibrary)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.data.gizmos.*;
public class GizmoLibrary {
public static function generateNewGizmo(_arg1:GizmoData, _arg2:Number):Gizmo{
switch (_arg1.type){
case "vine":
return (new Vine({gizmoData:_arg1, room:_arg2}));
case "swingvine":
return (new SwingVine({gizmoData:_arg1, room:_arg2}));
case "switch":
return (new Switch({gizmoData:_arg1, room:_arg2}));
case "multiswitch":
return (new MultiSwitch({gizmoData:_arg1, room:_arg2}));
case "firespout":
return (new FireSpout({gizmoData:_arg1, room:_arg2}));
case "firemoss":
return (new FireMoss({gizmoData:_arg1, room:_arg2}));
case "bridge":
return (new Bridge({gizmoData:_arg1, room:_arg2}));
case "gate":
return (new Gate({gizmoData:_arg1, room:_arg2}));
case "portal":
return (new Portal({gizmoData:_arg1, room:_arg2}));
case "spikes":
return (new Spike({gizmoData:_arg1, room:_arg2}));
case "checkpoint":
return (new Checkpoint({gizmoData:_arg1, room:_arg2}));
case "goal":
return (new Goal({gizmoData:_arg1, room:_arg2}));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 208
//Goal (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Goal)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.workinman.lib.math.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Goal extends Gizmo {
public function Goal(_arg1:Object){
_arg1.asset = GoalAsset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
override public function get type():String{
return ("goal");
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("idle");
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 209
//MultiSwitch (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.MultiSwitch)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
public class MultiSwitch extends Switch {
public function MultiSwitch(_arg1:Object){
super(_arg1);
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new EData(FireSwampConfig.EVENT_ANNOUNCE_MULTI_SWITCH, {event:_event}));
}
override protected function _trigger():void{
_heldDown = true;
if (!_toggle){
_active = !(_active);
if (_active){
_animate("todown");
} else {
_animate("toup");
};
} else {
_active = true;
_animate("todown");
};
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new EData(FireSwampConfig.EVENT_ACTIVATE_MULTI_SWITCH, {event:_event, on:_active}));
}
override public function cleanUp():void{
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new EData(FireSwampConfig.EVENT_REMOVE_MULTI_SWITCH, {event:_event}));
super.cleanUp();
}
override protected function _release():void{
_heldDown = false;
if (_toggle){
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new EData(FireSwampConfig.EVENT_ACTIVATE_MULTI_SWITCH, {event:_event, on:false}));
_active = false;
_animate("toup");
};
}
override public function get type():String{
return ("multiswitch");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 210
//Portal (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Portal)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.events.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Portal extends Gizmo {
private var _active:Boolean;
private var _toggleevent:String;
private var _powerless:Boolean;
private var _portalID:String;
public function Portal(_arg1:Object){
_arg1.asset = PortalAsset;
_portalID = _arg1.gizmoData.id;
_powerless = _arg1.gizmoData.powerless;
super(_arg1);
if (_powerless){
_offIdle();
_toggleevent = _arg1.gizmoData.toggleEvent;
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(_toggleevent, _onToggleEvent);
} else {
_onIdle();
};
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(FireSwampConfig.EVENT_PLAYER_PORTAL, _onPortalRequest);
if (GameState.getInstance().getConfigOption("showPortals") == "false"){
visible = false;
};
_generateCollisionLines();
}
private function _onToggleEvent(_arg1:ETrigger):void{
if (_arg1.on){
_off();
} else {
_on();
};
}
override public function get entityCollisionAsSurface():Boolean{
return (false);
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
private function _on():void{
_animate("on");
_active = true;
}
private function _onPortalRequest(_arg1:EData):void{
if (((!((_arg1.data.portal.id == _portalID))) || ((_arg1.data.portal == this)))){
return;
};
if (_powerless){
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new EData(FireSwampConfig.EVENT_PORTAL_RESPONSE, {fail:true}));
return;
};
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new EData(FireSwampConfig.EVENT_PORTAL_RESPONSE, {portal:this, fail:false}));
}
private function _offIdle():void{
_animate("idleOff");
_active = false;
}
private function _off():void{
_animate("off");
_active = false;
}
override public function cleanUp():void{
if (_powerless){
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).removeEventListener(_toggleevent, _onToggleEvent);
};
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).removeEventListener(FireSwampConfig.EVENT_PLAYER_PORTAL, _onPortalRequest);
super.cleanUp();
}
public function get active():Boolean{
return (_active);
}
public function get id():String{
return (_portalID);
}
override public function get type():String{
return ("portal");
}
private function _onIdle():void{
_animate("idleOn");
_active = true;
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = new WorkinPoint(15, 10);
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 211
//Spike (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Spike)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Spike extends Gizmo {
private var _damage:Number;
public function Spike(_arg1:Object){
_arg1.asset = SpikeAsset;
_damage = Number(GameState.getInstance().getConfigOption("fireMossHeatDamage"));
super(_arg1);
}
override public function get entityCollisionAsSurface():Boolean{
return (false);
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
override public function get type():String{
return ("spike");
}
override public function get damage():Number{
return (_damage);
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("idle");
_displayWidth = (_local1.x - 15);
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 212
//SwingVine (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.SwingVine)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.workinman.lib.math.*;
import com.workinman.paradise.world.camera.*;
import com.workinman.paradise.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.workinman.paradise.assets.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
public class SwingVine extends Gizmo {
private const _HANG_DEPTH:Number = 15;
private const _MAX_SWING_OFFSET:Number = 15;
private const _COLLISION_OFFSET_Y:Number = 60;
private const _COLLISION_OFFSET_X:Number = 130;
private const _IDLE_ROTATION:Number = 32;
private const _NUB_SWING_DIST:Number = 14;
private var _swingerRef:Player;
private var _isHeld:Boolean;
private var _vineLength:Number;
private var _idleDir:String;
private var _hangLine:WorkinPoint;
private var _diff:WorkinPoint;
private var _prevDiffX:Number;
private var _isSwinging:Boolean;
private var _swingOffset:Number;
private static var _SWING_RATE:Number = 50;
private static var _SWING_MAX:Number = 60;
private static var _HANG_Y_OFFSET:Number = 90;
private static var _HANG_X_OFFSET:Number = 150;
public function SwingVine(_arg1:Object){
_arg1.asset = EmptyAsset;
_hangLine = new WorkinPoint();
_vineLength = 190;
_idleDir = _arg1.gizmoData.dir;
super(_arg1);
_generateCollisionBox();
}
override protected function _generateCollisionBox():void{
_collisionBox = new CollisionBox(_hdBoxWidth, _hdBoxHeight, _displayCenter.addCopy((_COLLISION_OFFSET_X * ((_idleDir == "left")) ? -1 : 1), _COLLISION_OFFSET_Y, 0));
_collisionCenter = _collisionBox.getCollisionCenter(_pos);
}
public function onReleased():void{
if (_swingerRef.pos.x > _pos.x){
_idleDir = "right";
} else {
_idleDir = "left";
};
_generateCollisionBox();
_isHeld = false;
_isSwinging = false;
}
public function get isLeft():Boolean{
return ((_idleDir == "left"));
}
public function onSwing(_arg1:Player):void{
_swingerRef = _arg1;
_isSwinging = true;
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = _displayHeight;
}
override protected function get _assetRegistrationPoint():String{
return ("tc");
}
public function getCenterY():Number{
return ((_pos.y + _vineLength));
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
if (_arg1.type == "player"){
if (!Player(_arg1).isAirborne){
return;
};
};
}
override protected function _renderPosition(_arg1:BaseCamera):void{
super._renderPosition(_arg1);
_asset.mc.graphics.clear();
_asset.mc.graphics.lineStyle(3, 6264629, 1);
_asset.mc.graphics.moveTo(0, 0);
if (_isSwinging){
_diff = _pos.diff(_swingerRef.pos);
_asset.mc.graphics.curveTo((_diff.x / 2), (_diff.y - 90), _diff.x, (_diff.y - 60));
_swingOffset = (-(((_diff.x - _prevDiffX) / _MAX_SWING_OFFSET)) * _NUB_SWING_DIST);
_hangLine.to(_swingOffset, ((1 - Math.abs((_swingOffset / _NUB_SWING_DIST))) * _HANG_DEPTH));
_hangLine.length = _HANG_DEPTH;
_hangLine.add(_diff.x, _diff.y);
} else {
if (_isHeld){
_diff = _pos.diff(_swingerRef.pos);
_asset.mc.graphics.curveTo((_diff.x / 2), (_diff.y - 50), _diff.x, (_diff.y - 40));
_hangLine.to(_diff.x, (_diff.y - 20));
} else {
_diff = new WorkinPoint(((isLeft) ? -1 : 1 * _HANG_X_OFFSET), _HANG_Y_OFFSET);
_asset.mc.graphics.curveTo((_diff.x / 2), _diff.y, _diff.x, _diff.y);
_hangLine.to(_diff.x, (_diff.y + 20));
};
};
_asset.mc.graphics.lineTo(_hangLine.x, _hangLine.y);
_prevDiffX = _diff.x;
}
override public function get type():String{
return ("swingvine");
}
override protected function _recalculateDimensions():void{
_displayWidth = 50;
_displayHeight = 40;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
public function onHeld(_arg1:Player):void{
_swingerRef = _arg1;
_isHeld = true;
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 213
//Switch (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Switch)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.wwb.princessbride.fire_swamp.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise.events.*;
import flash.geom.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.events.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Switch extends Gizmo {
protected var _active:Boolean;
protected var _color:uint;
protected var _toggle:Boolean;
protected var _heldDownThisUpdate:Boolean;
protected var _heldDown:Boolean;
protected var _event:String;
protected var _transform:ColorTransform;
public function Switch(_arg1:Object){
_arg1.asset = SwitchAsset;
_toggle = _arg1.gizmoData.toggle;
_event = _arg1.gizmoData.event;
_heldDown = _arg1.gizmoData.isHeldDown;
_color = _arg1.gizmoData.color;
if (!_toggle){
_active = _arg1.gizmoData.isActive;
} else {
_active = false;
};
super(_arg1);
if (_toggle){
if (_heldDown){
_animate("down");
_heldDownThisUpdate = true;
} else {
_animate("up");
_heldDownThisUpdate = false;
};
} else {
if (_active){
_animate("down");
} else {
_animate("up");
};
};
}
public function get _assetPrefix():String{
return ((_toggle) ? "pad" : "lever");
}
override protected function _setCollisionBox():void{
collisionWidth = _displayWidth;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
protected function _trigger():void{
_heldDown = true;
if (!_toggle){
_active = !(_active);
if (_active){
_animate("todown");
} else {
_animate("toup");
};
} else {
_active = true;
_animate("todown");
};
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new ETrigger(_event, _active));
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
if ((((((_arg1.type == "dew")) || ((_arg1.type == "crumbspile")))) || (Mobile(_arg1).isAirborne))){
return;
};
_heldDownThisUpdate = true;
if (!_heldDown){
if (_arg1.type == "player"){
(_arg1 as Player).chat("switch");
};
_trigger();
};
}
public function get isHeldDown():Boolean{
return (_heldDown);
}
public function get isActive():Boolean{
return (_active);
}
override public function get type():String{
return ("switch");
}
protected function _release():void{
_heldDown = false;
if (_toggle){
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new ETrigger(_event, false));
_active = false;
_animate("toup");
};
}
override protected function _animate(_arg1:String):void{
super._animate((_assetPrefix + _arg1));
if (_color == 0){
asset.mc.color.visible = false;
} else {
asset.mc.color.visible = true;
_transform = asset.mc.color.fill.transform.colorTransform;
_transform.color = _color;
asset.mc.color.fill.transform.colorTransform = _transform;
};
}
override protected function _onRender(_arg1:ECamera):void{
if (((!(_heldDownThisUpdate)) && (_heldDown))){
_release();
};
super._onRender(_arg1);
_heldDownThisUpdate = false;
}
override protected function _recalculateDimensions():void{
_displayWidth = 26;
_displayHeight = 40;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 214
//Vine (com.wwb.princessbride.fire_swamp.world.entitys.gizmos.Vine)
package com.wwb.princessbride.fire_swamp.world.entitys.gizmos {
import com.workinman.lib.sound.*;
import com.workinman.lib.events.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Vine extends Gizmo {
private var _length:Number;
private var _coiled:Boolean;
private var _isUncoilAnimating:Boolean;
private var _uncoilProgress:Number;
private static var _ASSET_WIDTH:Number = 11;
private static var _UNCOIL_RATE:Number = 300;
public function Vine(_arg1:Object){
_arg1.asset = VineAsset;
_coiled = _arg1.gizmoData.coiled;
_length = _arg1.gizmoData.length;
super(_arg1);
_isUncoilAnimating = false;
_uncoilProgress = 0;
if (isCoiled){
_toCoiled();
} else {
_toUncoiled();
};
}
override protected function _setCollisionBox():void{
if (_coiled){
collisionWidth = 45;
collisionHeight = _ASSET_WIDTH;
} else {
collisionWidth = _ASSET_WIDTH;
collisionHeight = (_length + 10);
};
}
override protected function get _assetRegistrationPoint():String{
return ("tc");
}
private function _toUncoiled():void{
_animate("idle");
_setDisplayLength(_length);
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
if (!isCoiled){
return;
};
if (_arg1.type == "player"){
if (Player(_arg1).isAirborne){
return;
};
uncoil();
};
}
public function uncoil():void{
_animate("idle");
_setDisplayLength(1);
_isUncoilAnimating = true;
_coiled = false;
_recalculateDimensions();
_setCollisionBox();
GlobalSound.getInstance().playSound("dropVine");
}
override public function updateAnimation(_arg1:Number):void{
if (_isUncoilAnimating){
_uncoilProgress = (_uncoilProgress + (_UNCOIL_RATE * _arg1));
if (_uncoilProgress > _length){
_uncoilProgress = _length;
_isUncoilAnimating = false;
};
_setDisplayLength(_uncoilProgress);
};
}
private function _toCoiled():void{
_animate("coiled");
}
override public function get type():String{
return ("vine");
}
public function get isCoiled():Boolean{
return (_coiled);
}
private function _setDisplayLength(_arg1:Number):void{
_asset.dispatchToAnim(new EData(VineLengthAsset.EVENT_SET_LENGTH, {len:_arg1}));
}
override protected function _recalculateDimensions():void{
if (_coiled){
_displayWidth = _ASSET_WIDTH;
_displayHeight = _ASSET_WIDTH;
} else {
_displayWidth = _ASSET_WIDTH;
_displayHeight = (_length + 10);
};
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter((_coiled) ? "cc" : "");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.gizmos
Section 215
//Crumbs (com.wwb.princessbride.fire_swamp.world.entitys.items.Crumbs)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.workinman.lib.sound.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Crumbs extends Item {
private var _isConsumePermanent:Boolean;
public function Crumbs(_arg1:Object){
_arg1.asset = CrumbsAsset;
_isConsumePermanent = _arg1.itemData.noreset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
override protected function _onConsumed():void{
if (_isConsumed){
return;
};
_asset.visible = false;
super._onConsumed();
GlobalSound.getInstance().playSound("crumbsPickup");
}
override public function get respawnTime():Number{
return (10);
}
override protected function _onRespawn():void{
_asset.visible = true;
super._onRespawn();
}
override protected function _reactPlayerCollision(_arg1:Player):void{
}
override public function get consumeIsPermanent():Boolean{
return (_isConsumePermanent);
}
override public function get type():String{
return ("crumbs");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 216
//Dew (com.wwb.princessbride.fire_swamp.world.entitys.items.Dew)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.workinman.lib.sound.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Dew extends Item {
private var _isConsumePermanent:Boolean;
public function Dew(_arg1:Object){
_arg1.asset = DewAsset;
_isConsumePermanent = _arg1.itemData.noreset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override protected function _onConsumed():void{
if (_isConsumed){
return;
};
super._onConsumed();
GlobalSound.getInstance().playSound("dewPickup");
}
override public function get respawnTime():Number{
return (7);
}
override protected function _reactPlayerCollision(_arg1:Player):void{
}
override public function get consumeIsPermanent():Boolean{
return (_isConsumePermanent);
}
override public function get type():String{
return ("dew");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 217
//FireShield (com.wwb.princessbride.fire_swamp.world.entitys.items.FireShield)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.assets.*;
public class FireShield extends Item {
private var _VALUE:Number;// = 100
public function FireShield(_arg1:Object){
_VALUE = 100;
_arg1.asset = FireShieldAsset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override protected function _onConsumed():void{
super._onConsumed();
}
override public function get type():String{
return ("shield");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 218
//Gem (com.wwb.princessbride.fire_swamp.world.entitys.items.Gem)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Gem extends Item {
private var _value:Number;
public function Gem(_arg1:Object){
_value = _arg1.itemData.value;
_arg1.asset = GemAsset;
super(_arg1);
_animate("idle");
}
override protected function _setCollisionBox():void{
collisionWidth = 35;
collisionHeight = 25;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override protected function _onConsumed():void{
super._onConsumed();
GlobalSound.getInstance().playSound(("gemPickup" + _value));
GameState.getInstance().onPlayerGetGem(_value);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_SCORE_EFFECT, {x:_pos.x, y:_pos.y, isScore:true, value:GameState.getInstance().calculateGemScoreValue(_value)}));
}
override public function get type():String{
return ("gem");
}
override protected function _animate(_arg1:String):void{
super._animate((_arg1 + _value));
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 219
//Item (com.wwb.princessbride.fire_swamp.world.entitys.items.Item)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
public class Item extends RoomInhabitant {
public var _isConsumed:Boolean;
protected var _respawnTimer:Number;
public function Item(_arg1:Object){
_generator = _arg1.itemData;
_arg1.x = _arg1.itemData.x;
_arg1.y = _arg1.itemData.y;
super(_arg1);
_isConsumed = _arg1.itemData.isConsumed;
_setCollisionBox();
}
public function requestConsume():void{
if (_isConsumed){
return;
};
_onConsumed();
}
override public function get group():String{
return ("mobiles");
}
protected function _onConsumed():void{
if (_isConsumed){
return;
};
_animate("vanish");
_isConsumed = true;
if (!consumeIsPermanent){
_respawnTimer = respawnTime;
};
}
public function get respawnTime():Number{
return (5);
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
switch (_arg1.type){
case "player":
_reactPlayerCollision(Player(_arg1));
break;
};
}
public function updateAnimation(_arg1:Number):void{
if (((_isConsumed) && (!(consumeIsPermanent)))){
_respawnTimer = (_respawnTimer - _arg1);
if (_respawnTimer <= 0){
_onRespawn();
};
};
}
protected function _onRespawn():void{
_isConsumed = false;
_asset.alpha = 0;
_asset.alphaTo(1, 0.6);
_animate("idle");
}
protected function _reactPlayerCollision(_arg1:Player):void{
if (_isConsumed){
return;
};
_onConsumed();
}
override public function degenerate():void{
if (!consumeIsPermanent){
_isConsumed = false;
};
super.degenerate();
}
public function get consumeIsPermanent():Boolean{
return (true);
}
public function get isConsumed():Boolean{
return (_isConsumed);
}
override public function get type():String{
return ("item");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 220
//ItemLibrary (com.wwb.princessbride.fire_swamp.world.entitys.items.ItemLibrary)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.data.items.*;
public class ItemLibrary {
public static function generateNewItem(_arg1:ItemData, _arg2:Number):Item{
switch (_arg1.type){
case "gem":
return (new Gem({itemData:_arg1, room:_arg2}));
case "water":
return (new WaterItem({itemData:_arg1, room:_arg2}));
case "life":
return (new Life({itemData:_arg1, room:_arg2}));
case "shield":
return (new FireShield({itemData:_arg1, room:_arg2}));
case "multiplier":
case "mult":
return (new Multiplier({itemData:_arg1, room:_arg2}));
case "stick":
return (new Stick({itemData:_arg1, room:_arg2}));
case "dew":
return (new Dew({itemData:_arg1, room:_arg2}));
case "crumbs":
return (new Crumbs({itemData:_arg1, room:_arg2}));
case "time":
return (new Time({itemData:_arg1, room:_arg2}));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 221
//Life (com.wwb.princessbride.fire_swamp.world.entitys.items.Life)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.assets.*;
public class Life extends Item {
private var _VALUE:Number;// = 100
public function Life(_arg1:Object){
_VALUE = 100;
_arg1.asset = LifeAsset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override protected function _onConsumed():void{
super._onConsumed();
}
override public function get type():String{
return ("life");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 222
//Multiplier (com.wwb.princessbride.fire_swamp.world.entitys.items.Multiplier)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Multiplier extends Item {
private var _value:Number;
public function Multiplier(_arg1:Object){
_arg1.asset = MultiplierAsset;
_value = _arg1.itemData.value;
super(_arg1);
_onIdle();
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override protected function _onConsumed():void{
if (_isConsumed){
return;
};
switch (_value){
case 1:
_animate("vanishTwo");
break;
case 2:
_animate("vanishFive");
break;
case 3:
_animate("vanishTen");
break;
};
_isConsumed = true;
GlobalSound.getInstance().playSound("multPickup");
if (!consumeIsPermanent){
_respawnTimer = respawnTime;
};
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_COLLECT_MULTIPLIER, {value:getValue()}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_SCORE_EFFECT, {x:_pos.x, y:_pos.y, value:getValueDisplay()}));
}
private function getValueDisplay():String{
return (("x" + String(getValue())));
}
override public function get type():String{
return ("multiplier");
}
private function _onIdle():void{
switch (_value){
case 1:
_animate("idleTwo");
break;
case 2:
_animate("idleFive");
break;
case 3:
_animate("idleTen");
break;
};
}
private function getValue():Number{
switch (_value){
case 1:
default:
return (2);
case 2:
return (5);
case 3:
return (10);
};
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 223
//Stick (com.wwb.princessbride.fire_swamp.world.entitys.items.Stick)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Stick extends Item {
private var _isConsumePermanent:Boolean;
public function Stick(_arg1:Object){
_arg1.asset = StickAsset;
_isConsumePermanent = _arg1.itemData.noreset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = 15;
collisionHeight = 25;
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
override protected function _onConsumed():void{
super._onConsumed();
}
override protected function _reactPlayerCollision(_arg1:Player):void{
if (_arg1.character != "buttercup"){
return;
};
if (_isConsumed){
return;
};
_onConsumed();
}
override public function get consumeIsPermanent():Boolean{
return (_isConsumePermanent);
}
override public function get type():String{
return ("stick");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 224
//Time (com.wwb.princessbride.fire_swamp.world.entitys.items.Time)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.assets.*;
public class Time extends Item {
private var _VALUE:Number;// = 100
public function Time(_arg1:Object){
_VALUE = 100;
_arg1.asset = TimeAsset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override protected function _onConsumed():void{
super._onConsumed();
}
override public function get type():String{
return ("time");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 225
//WaterItem (com.wwb.princessbride.fire_swamp.world.entitys.items.WaterItem)
package com.wwb.princessbride.fire_swamp.world.entitys.items {
import com.wwb.princessbride.fire_swamp.assets.*;
public class WaterItem extends Item {
private var _VALUE:Number;// = 100
public function WaterItem(_arg1:Object){
_VALUE = 100;
_arg1.asset = WaterItemAsset;
super(_arg1);
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
override protected function _onConsumed():void{
super._onConsumed();
}
override public function get type():String{
return ("water");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.items
Section 226
//FlyRous (com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles.FlyRous)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.events.*;
import com.workinman.paradise.world.camera.*;
import com.workinman.paradise.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.world.entitys.surfaces.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class FlyRous extends Mobile {
private const _FLAP_SOUND_FREQUENCY:Number = 1.2;
private const _FADE_RATE:Number = 1;
private var _isSliding:Boolean;
private var _invincibleTimer:Number;
private var _attackTimer:Number;
private var _LAUNCH_RATE:Number;// = 90
private var _bloodthirstyFrictionRate:Number;
private var _hortMotion:Number;
private var _injuredTimer:Number;
private var _hasFoundSurface:Boolean;
private var _DEFAULT_HEALTH:Number;// = 60
private var _touchedSurfaceThisUpdate:Boolean;
private var _isAlive:Boolean;
private var _damage:Number;
private var _bloodthirstyAccelRate:Number;
private var _EDGE_CAUTION:Number;// = 10
private var _isEating:Boolean;
private var _isAttacking:Boolean;
private var _ATTACK_COOLDOWN_DURATION:Number;// = 0.8
private var _fadeOutTimer:Number;
private var _INJURED_DURATION:Number;// = 0.5
private var _difficulty:Number;
protected var _touchedKnockbackThisUpdate:Boolean;
private var _snapshotTimer:Number;
private var _ATTACK_END_FRAME:Number;// = 17
private var _knockbackForce:WorkinPoint;
private var _ATTACK_RANGE:Number;// = 105
private var _ATTACK_FRAME:Number;// = 11
private var _attackCooldownTimer:Number;
private var _bloodTarget:Mobile;
private var _fadeAlpha:Number;
private var _AGGRO_RADIUS:Number;// = 200
private var _INVINCIBLE_DURATION:Number;// = 0.5
private var _flapSoundTimer:Number;
private var _bloodthirstyMaxRate:Number;
private var _isInjured:Boolean;
private var _surface:SurfaceCollisionLine;
private var _ATTACK_DURATION:Number;// = 0.1
private var _health:Number;
private var _isLaunching:Boolean;
private var _isBloodthirsty:Boolean;
private var _MIN_ATTACK_RANGE:Number;// = 3
private var _hoverY:Number;
public function FlyRous(_arg1:Object):void{
_DEFAULT_HEALTH = 60;
_INJURED_DURATION = 0.5;
_INVINCIBLE_DURATION = 0.5;
_ATTACK_DURATION = 0.1;
_ATTACK_COOLDOWN_DURATION = 0.8;
_ATTACK_FRAME = 11;
_ATTACK_END_FRAME = 17;
_ATTACK_RANGE = 105;
_MIN_ATTACK_RANGE = 3;
_AGGRO_RADIUS = 200;
_LAUNCH_RATE = 90;
_EDGE_CAUTION = 10;
_generator = _arg1.mobData;
_arg1.asset = FlyRousAsset;
_arg1.x = _arg1.mobData.x;
_arg1.y = _arg1.mobData.y;
_isAlive = _arg1.mobData.isAlive;
super(_arg1);
_hoverY = (pos.y - _arg1.mobData.flyheight);
_difficulty = _arg1.mobData.difficulty;
_health = Number(GameState.getInstance().getConfigOption("flyingRousHealth"));
_damage = Number(GameState.getInstance().getConfigOption("flyingRousHeatDamage"));
_fadeAlpha = 1;
_snapshotTimer = 0.5;
_attackCooldownTimer = 0;
_flapSoundTimer = (Math.random() * _FLAP_SOUND_FREQUENCY);
_hortMotion = 0;
_invincibleTimer = 0;
_isLaunching = true;
_hasFoundSurface = false;
_isBloodthirsty = false;
_isSliding = false;
_isAttacking = false;
_isInjured = false;
_isEating = false;
_isWeightless = true;
_touchedKnockbackThisUpdate = false;
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_CRUMBS_PULSE, _onCrumbsPulse);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_CRUMBS_DESPAWN, _onCrumbsDespawn);
}
protected function _onEat():void{
_isEating = true;
_hortMotion = 0;
_voluntaryVelocity.x = 0;
if (_bloodTarget.pos.x < _pos.x){
_hortMotion = -1;
_asset.scaleX = 1;
_facingLeft = true;
} else {
_hortMotion = 1;
_asset.scaleX = -1;
_facingLeft = false;
};
}
public function get isDangerous():Boolean{
return (((((_isAttacking) && ((_asset.animation == "attack")))) && ((((_asset.mc.currentFrame >= _ATTACK_FRAME)) && ((_asset.mc.currentFrame <= _ATTACK_END_FRAME))))));
}
override protected function _setCollisionBox():void{
if (_isAlive){
collisionWidth = 70;
collisionHeight = 70;
} else {
collisionWidth = 15;
};
}
protected function _reactPlayerCollision(_arg1:Player):void{
if (!_isAlive){
return;
};
if (_arg1.isDangerous){
if (((((_arg1.isFacingLeft) && ((_arg1.pos.x > _pos.x)))) || (((!(_arg1.isFacingLeft)) && ((_arg1.pos.x < _pos.x)))))){
_takeKnockbackDamage(_arg1.damage, (_arg1.pos.x - _pos.x));
};
};
}
private function _takeDamage(_arg1:Number):void{
if (_invincibleTimer > 0){
return;
};
_invincibleTimer = _INVINCIBLE_DURATION;
_isAttacking = false;
_attackTimer = 0;
_health = (_health - _arg1);
}
private function _onCrumbsDespawn(_arg1:EData):void{
if (((_isBloodthirsty) && ((_arg1.data.source == _bloodTarget)))){
_endBloodrage();
_isEating = false;
};
}
private function _takeKnockbackDamage(_arg1:Number, _arg2:Number):void{
if (_invincibleTimer > 0){
return;
};
_isInjured = true;
_isEating = false;
_touchedKnockbackThisUpdate = true;
_takeDamage(_arg1);
if (_health <= 0){
_injuredTimer = 0;
_knockbackForce = new WorkinPoint(((_arg2 < 0)) ? 200 : -200, -100);
return;
};
_injuredTimer = _INJURED_DURATION;
_knockbackForce = new WorkinPoint(((_arg2 < 0)) ? 200 : -200, 0);
}
private function _applyEdgeCaution():void{
if (!_isAlive){
return;
};
if (_surface.length < (_EDGE_CAUTION * 2)){
if (_surface.centerX < (_pos.x - 10)){
_hortMotion = -1;
} else {
if (_surface.centerX > (_pos.x + 10)){
_hortMotion = 1;
} else {
_hortMotion = 0;
};
};
};
if (_hortMotion == 1){
if ((_surface.p1.x - _pos.x) < _EDGE_CAUTION){
_hortMotion = -1;
};
} else {
if (_hortMotion == -1){
if ((_pos.x - _surface.p0.x) < _EDGE_CAUTION){
_hortMotion = 1;
};
};
};
}
override public function updatePosition():void{
if (((!(_isAlive)) && (!(_touchedSurfaceThisUpdate)))){
_hasFoundSurface = false;
};
super.updatePosition();
if (_isLaunching){
if (pos.y < _hoverY){
_isLaunching = false;
_voluntaryVelocity.to(0, 0, 0);
pos.y = _hoverY;
};
} else {
if (_touchedKnockbackThisUpdate){
_voluntaryVelocity.x = 0;
if (_involuntaryVelocity.y < 0){
_knockbackForce.y = 0;
};
_addMomentaryForce(_knockbackForce);
};
};
_touchedSurfaceThisUpdate = false;
_touchedKnockbackThisUpdate = false;
}
private function _onDie():void{
var _local1:String;
_fadeOutTimer = 5;
_isAlive = false;
_isBloodthirsty = false;
_isAttacking = false;
_isEating = false;
_isLaunching = false;
_isWeightless = false;
_setCollisionBox();
_local1 = ((Math.random() < 0.5)) ? "1" : "2";
GlobalSound.getInstance().playSound(("rousDeath" + _local1));
GameState.getInstance().onPlayerKillFlyingRous();
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_SCORE_EFFECT, {x:_pos.x, y:_pos.y, isScore:true, value:GameState.getInstance().calculateRousScoreValue(true)}));
_generateCollisionBox();
}
override public function testAndResolveSurfaceCollision(_arg1:Surface):void{
if (_predictedMotionSweeps.length == 0){
return;
};
_loop = _arg1.collisionLines.length;
while (_loop--) {
if (_resolveSurfaceCollisions(_testLineCollision(_arg1.collisionLines[_loop]))){
if (_primaryCollision.surfaceLine.normal.x == 0){
if (_hasFoundSurface){
if (_surface == _primaryCollision.surfaceLine){
_touchedSurfaceThisUpdate = true;
};
} else {
if (((!(_isLaunching)) && (_isAlive))){
} else {
_hasFoundSurface = true;
_touchedSurfaceThisUpdate = true;
_surface = _primaryCollision.surfaceLine;
};
};
};
};
};
}
override public function get isAlive():Boolean{
return (_isAlive);
}
override protected function _setMotionRates():void{
super._setMotionRates();
_baseMaxRate = 60;
_baseGroundAccelRate = 100;
_baseGroundFrictionRate = 60;
_bloodthirstyMaxRate = 110;
_bloodthirstyAccelRate = 270;
_bloodthirstyFrictionRate = 100;
_voluntaryMaxRate = _baseMaxRate;
_groundAccelRate = _baseGroundAccelRate;
_groundFrictionRate = _baseGroundFrictionRate;
}
private function _updateAISnapshot():void{
var _local1:WorkinPoint;
if (!_isAlive){
return;
};
if (_isEating){
_hortMotion = 0;
_snapshotTimer = 1;
} else {
if (_isBloodthirsty){
_local1 = _bloodTarget.pos.diff(_pos);
if ((((_local1.x > _MIN_ATTACK_RANGE)) || ((Math.random() < 0.3)))){
if (_bloodTarget.pos.x < _pos.x){
_hortMotion = -1;
} else {
_hortMotion = 1;
};
} else {
if (Math.random() < 0.3){
} else {
if (_bloodTarget.pos.x < _pos.x){
_hortMotion = 1;
} else {
_hortMotion = -1;
};
};
};
if ((((Math.abs(_local1.x) < _ATTACK_RANGE)) && ((Math.abs(_local1.x) > _MIN_ATTACK_RANGE)))){
if (_bloodTarget.type == "crumbspile"){
} else {
_onAttack();
};
};
_snapshotTimer = 0.5;
} else {
if (_hortMotion == 0){
_hortMotion = ((Math.random() < 0.5)) ? -1 : 1;
} else {
_hortMotion = 0;
};
_snapshotTimer = (0.5 + (Math.random() * 3));
};
};
}
override public function get combatCollisionWidthHalf():Number{
return ((_hdBoxWidthHalf + 30));
}
override protected function _generateCollisionBox():void{
super._generateCollisionBox();
}
override public function updatePrediction(_arg1:Number):void{
_snapshotTimer = (_snapshotTimer - _arg1);
if (_invincibleTimer > 0){
_invincibleTimer = (_invincibleTimer - _arg1);
};
if (_isInjured){
_injuredTimer = (_injuredTimer - _arg1);
if (_injuredTimer < 0){
_isInjured = false;
if (_health <= 0){
_onDie();
};
};
};
if (_isLaunching){
if (_hasFoundSurface){
_voluntaryVelocity.add(0, (-(_arg1) * _LAUNCH_RATE));
} else {
_voluntaryVelocity.add(0, (_arg1 * _LAUNCH_RATE));
};
} else {
if (_isAlive){
if (_snapshotTimer < 0){
_updateAISnapshot();
};
if (_isAttacking){
_updateAttack(_arg1);
_voluntaryVelocity.decay(((_groundFrictionRate * _arg1) * 1.5));
} else {
_attackCooldownTimer = (_attackCooldownTimer - _arg1);
_applyEdgeCaution();
_flapSoundTimer = (_flapSoundTimer - _arg1);
if (_flapSoundTimer < 0){
if (_mcVisible){
GlobalSound.getInstance().playSound("rousFly");
};
_flapSoundTimer = (_FLAP_SOUND_FREQUENCY + Math.random());
};
};
if ((((_hortMotion < 0)) && (!(_isAttacking)))){
_voluntaryVelocity.add((-(_arg1) * (_groundAccelRate + ((_voluntaryVelocity.x > 0)) ? _groundFrictionRate : 0)), 0, 0);
if (_voluntaryVelocity.x > 0){
_isSliding = true;
};
} else {
if ((((_hortMotion > 0)) && (!(_isAttacking)))){
_voluntaryVelocity.add((_arg1 * (_groundAccelRate + ((_voluntaryVelocity.x < 0)) ? _groundFrictionRate : 0)), 0, 0);
if (_voluntaryVelocity.x < 0){
_isSliding = true;
};
} else {
_voluntaryVelocity.decay(((_groundFrictionRate * _arg1) * 1.5));
if (Math.abs(_voluntaryVelocity.x) > 0){
_isSliding = true;
};
};
};
} else {
_voluntaryVelocity.decay(((_airFrictionRate * _arg1) * 2));
if (!_isAlive){
if ((((_fadeOutTimer > 0)) || ((_fadeAlpha > 0)))){
_fadeOutTimer = (_fadeOutTimer - _arg1);
if (_fadeOutTimer < 0){
_fadeAlpha = (_fadeAlpha - (_FADE_RATE * _arg1));
if (_fadeAlpha < 0){
_fadeAlpha = 0;
};
_asset.alpha = _fadeAlpha;
};
};
};
};
};
if (_voluntaryVelocity.x > _voluntaryMaxRate){
_voluntaryVelocity.x = _voluntaryMaxRate;
};
if (_voluntaryVelocity.x < -(_voluntaryMaxRate)){
_voluntaryVelocity.x = -(_voluntaryMaxRate);
};
if (_involuntaryVelocity.x != 0){
_involuntaryVelocity.decayX(((_groundFrictionRate * _arg1) * 2));
};
super.updatePrediction(_arg1);
}
override public function get entityCollisionAsSurface():Boolean{
return (false);
}
protected function _updateAttack(_arg1:Number):void{
_attackTimer = (_attackTimer - _arg1);
if ((((_attackTimer <= 0)) && ((_asset.mc.currentFrame == _asset.mc.totalFrames)))){
_isAttacking = false;
_attackCooldownTimer = _ATTACK_COOLDOWN_DURATION;
_updateAISnapshot();
};
}
override protected function get _assetRegistrationPoint():String{
return ("cc");
}
protected function _onAttack():void{
if (((_isAttacking) || ((_attackCooldownTimer > 0)))){
return;
};
GlobalSound.getInstance().playSound("rousDive");
if (_bloodTarget.pos.x < _pos.x){
if (_voluntaryVelocity.x > 0){
_voluntaryVelocity.x = (_voluntaryVelocity.x * -1);
};
_hortMotion = -1;
_asset.scaleX = 1;
_facingLeft = true;
} else {
if (_voluntaryVelocity.x < 0){
_voluntaryVelocity.x = (_voluntaryVelocity.x * -1);
};
_hortMotion = 1;
_asset.scaleX = -1;
_facingLeft = false;
};
_isAttacking = true;
_attackTimer = _ATTACK_DURATION;
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
switch (_arg1.type){
case "player":
_reactPlayerCollision(Player(_arg1));
break;
};
}
override public function updateAI(_arg1:Array):void{
var _local2:Boolean;
var _local3:Number;
var _local4:Number;
if (!_isAlive){
return;
};
if (((_isBloodthirsty) && ((_bloodTarget.type == "crumbspile")))){
return;
};
_local2 = false;
_local3 = 0;
_local4 = _AGGRO_RADIUS;
_loop = _arg1.length;
while (_loop--) {
if (_arg1[_loop].pos.diff(_pos).length < _local4){
_local2 = true;
_local3 = _loop;
_local4 = _arg1[_loop].pos.diff(_pos).length;
};
};
if (((_local2) && (((!(_isBloodthirsty)) || (!((_bloodTarget == _arg1[_local3]))))))){
_bloodrage(_arg1[_local3]);
} else {
if (((_isBloodthirsty) && (!(_local2)))){
_endBloodrage();
};
};
}
override public function cleanUp():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_CRUMBS_PULSE, _onCrumbsPulse);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_CRUMBS_DESPAWN, _onCrumbsDespawn);
super.cleanUp();
}
private function _bloodrage(_arg1:Mobile):void{
if (_isLaunching){
return;
};
_isBloodthirsty = true;
_bloodTarget = _arg1;
_snapshotTimer = 0;
_voluntaryMaxRate = _bloodthirstyMaxRate;
_groundAccelRate = _bloodthirstyAccelRate;
_groundFrictionRate = _bloodthirstyFrictionRate;
}
override protected function _renderPosition(_arg1:BaseCamera):void{
x = (_arg1.center.x + (_pos.x - _arg1.x));
y = ((_arg1.center.y + (_pos.y - _arg1.y)) - (_isAlive) ? 36 : 0);
}
override protected function _determineAnimation():void{
if (!_isAlive){
_animate("dead");
} else {
if (_isInjured){
_animate("damage");
} else {
if (_isAttacking){
_animate("attack");
} else {
_animate("fly");
};
};
};
_isSliding = false;
}
override public function get combatCollisionHeightHalf():Number{
return ((_hdBoxHeightHalf + 50));
}
override public function get type():String{
return ("flyrous");
}
private function _onCrumbsPulse(_arg1:EData):void{
if (_arg1.data.source.pos.diff(_pos).length < _AGGRO_RADIUS){
_bloodrage(_arg1.data.source);
};
}
override public function onPause():void{
if (_isAlive){
_animate("pause");
};
}
override public function get damage():Number{
return ((_damage + (_difficulty * 5)));
}
private function _endBloodrage():void{
_isBloodthirsty = false;
_voluntaryMaxRate = _baseMaxRate;
_groundAccelRate = _baseGroundAccelRate;
_groundFrictionRate = _baseGroundFrictionRate;
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("idle");
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles
Section 227
//Rous (com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles.Rous)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.events.*;
import com.workinman.paradise.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.world.entitys.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Rous extends Mobile {
private const _FADE_RATE:Number = 1;
private var _isSliding:Boolean;
private var _invincibleTimer:Number;
private var _attackTimer:Number;
private var _bloodthirstyFrictionRate:Number;
private var _hortMotion:Number;
private var _injuredTimer:Number;
private var _hasFoundSurface:Boolean;
private var _DEFAULT_HEALTH:Number;// = 60
private var _touchedSurfaceThisUpdate:Boolean;
private var _isAlive:Boolean;
private var _damage:Number;
private var _EAT_DIST_Y:Number;// = 20
private var _bloodthirstyAccelRate:Number;
private var _EDGE_CAUTION:Number;// = 50
private var _isEating:Boolean;
private var _EAT_DIST_X:Number;// = 50
private var _isAttacking:Boolean;
private var _ATTACK_COOLDOWN_DURATION:Number;// = 0.8
private var _fadeOutTimer:Number;
private var _INJURED_DURATION:Number;// = 0.5
private var _difficulty:Number;
protected var _touchedKnockbackThisUpdate:Boolean;
private var _snapshotTimer:Number;
private var _ATTACK_END_FRAME:Number;// = 14
private var _knockbackForce:WorkinPoint;
private var _ATTACK_RANGE:Number;// = 70
private var _ATTACK_FRAME:Number;// = 11
private var _attackCooldownTimer:Number;
private var _bloodTarget:Mobile;
private var _fadeAlpha:Number;
private var _AGGRO_RADIUS:Number;// = 200
private var _INVINCIBLE_DURATION:Number;// = 0.5
private var _bloodthirstyMaxRate:Number;
private var _isInjured:Boolean;
private var _surface:SurfaceCollisionLine;
private var _ATTACK_DURATION:Number;// = 0.1
private var _health:Number;
private var _isBloodthirsty:Boolean;
private var _MIN_ATTACK_RANGE:Number;// = 2
public function Rous(_arg1:Object):void{
_DEFAULT_HEALTH = 60;
_INJURED_DURATION = 0.5;
_INVINCIBLE_DURATION = 0.5;
_ATTACK_DURATION = 0.1;
_ATTACK_COOLDOWN_DURATION = 0.8;
_ATTACK_FRAME = 11;
_ATTACK_END_FRAME = 14;
_EAT_DIST_X = 50;
_EAT_DIST_Y = 20;
_ATTACK_RANGE = 70;
_MIN_ATTACK_RANGE = 2;
_AGGRO_RADIUS = 200;
_EDGE_CAUTION = 50;
_generator = _arg1.mobData;
_arg1.asset = RousAsset;
_arg1.x = _arg1.mobData.x;
_arg1.y = _arg1.mobData.y;
super(_arg1);
_difficulty = _arg1.mobData.difficulty;
_health = Number(GameState.getInstance().getConfigOption("rousHealth"));
_damage = Number(GameState.getInstance().getConfigOption("rousHeatDamage"));
_snapshotTimer = 0.5;
_attackCooldownTimer = 0;
_fadeAlpha = 1;
_hortMotion = 0;
_invincibleTimer = 0;
_hasFoundSurface = false;
_isBloodthirsty = false;
_isSliding = false;
_isAttacking = false;
_isInjured = false;
_isEating = false;
_isAlive = _arg1.mobData.isAlive;
_touchedKnockbackThisUpdate = false;
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_CRUMBS_PULSE, _onCrumbsPulse);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_CRUMBS_DESPAWN, _onCrumbsDespawn);
}
protected function _onEat(_arg1:Mobile):void{
_isEating = true;
_hortMotion = 0;
_voluntaryVelocity.x = 0;
(_arg1 as CrumbsPile).onEat();
if (_bloodTarget.pos.x < _pos.x){
_hortMotion = -1;
_asset.scaleX = 1;
_facingLeft = true;
} else {
_hortMotion = 1;
_asset.scaleX = -1;
_facingLeft = false;
};
}
public function get isDangerous():Boolean{
return (((((_isAttacking) && ((_asset.animation == "attack")))) && ((((_asset.mc.currentFrame >= _ATTACK_FRAME)) && ((_asset.mc.currentFrame <= _ATTACK_END_FRAME))))));
}
override protected function _setCollisionBox():void{
collisionWidth = 62;
collisionHeight = 50;
}
protected function _reactPlayerCollision(_arg1:Player):void{
if (!_isAlive){
return;
};
if (_arg1.isDangerous){
if (((((_arg1.isFacingLeft) && ((_arg1.pos.x > _pos.x)))) || (((!(_arg1.isFacingLeft)) && ((_arg1.pos.x < _pos.x)))))){
_arg1.onAttackCauseDamage();
_takeKnockbackDamage(_arg1.damage, (_arg1.pos.x - _pos.x));
};
};
}
private function _takeDamage(_arg1:Number):void{
if (_invincibleTimer > 0){
return;
};
_invincibleTimer = _INVINCIBLE_DURATION;
_isAttacking = false;
_attackTimer = 0;
_health = (_health - _arg1);
}
private function _onCrumbsDespawn(_arg1:EData):void{
if (((_isBloodthirsty) && ((_arg1.data.source == _bloodTarget)))){
_endBloodrage();
_isEating = false;
};
}
private function _takeKnockbackDamage(_arg1:Number, _arg2:Number):void{
if (_invincibleTimer > 0){
return;
};
_isInjured = true;
_isEating = false;
_takeDamage(_arg1);
if (_health <= 0){
_injuredTimer = 0;
return;
};
_injuredTimer = _INJURED_DURATION;
_touchedKnockbackThisUpdate = true;
_knockbackForce = new WorkinPoint(((_arg2 < 0)) ? 220 : -220, -20, 0);
}
private function _applyEdgeCaution():void{
if (!_isAlive){
return;
};
if (_surface.length < (_EDGE_CAUTION * 2)){
if (_surface.centerX < (_pos.x - 10)){
_hortMotion = -1;
} else {
if (_surface.centerX > (_pos.x + 10)){
_hortMotion = 1;
} else {
_hortMotion = 0;
};
};
};
if (_hortMotion == 1){
if ((_surface.p1.x - _pos.x) < _EDGE_CAUTION){
_hortMotion = -1;
};
} else {
if (_hortMotion == -1){
if ((_pos.x - _surface.p0.x) < _EDGE_CAUTION){
_hortMotion = 1;
};
};
};
}
override public function updatePosition():void{
if (!_touchedSurfaceThisUpdate){
_hasFoundSurface = false;
};
super.updatePosition();
if (_touchedKnockbackThisUpdate){
_voluntaryVelocity.x = 0;
if (_involuntaryVelocity.y < 0){
_knockbackForce.y = 0;
};
_addMomentaryForce(_knockbackForce);
};
_touchedSurfaceThisUpdate = false;
_touchedKnockbackThisUpdate = false;
}
private function _onDie():void{
var _local1:String;
_fadeOutTimer = 5;
_isAlive = false;
_isBloodthirsty = false;
_isAttacking = false;
_isEating = false;
_local1 = ((Math.random() < 0.5)) ? "1" : "2";
GlobalSound.getInstance().playSound(("rousDeath" + _local1));
GameState.getInstance().onPlayerKillRous();
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_SCORE_EFFECT, {x:_pos.x, y:_pos.y, isScore:true, value:GameState.getInstance().calculateRousScoreValue()}));
}
override public function testAndResolveSurfaceCollision(_arg1:Surface):void{
if (_predictedMotionSweeps.length == 0){
return;
};
_loop = _arg1.collisionLines.length;
while (_loop--) {
if (_resolveSurfaceCollisions(_testLineCollision(_arg1.collisionLines[_loop]))){
if (_primaryCollision.surfaceLine.normal.x == 0){
if (_hasFoundSurface){
if (_surface == _primaryCollision.surfaceLine){
_touchedSurfaceThisUpdate = true;
};
} else {
_hasFoundSurface = true;
_touchedSurfaceThisUpdate = true;
_surface = _primaryCollision.surfaceLine;
};
};
};
};
}
override public function get isAlive():Boolean{
return (_isAlive);
}
override protected function _setMotionRates():void{
super._setMotionRates();
_baseMaxRate = 60;
_baseGroundAccelRate = 100;
_baseGroundFrictionRate = 60;
_bloodthirstyMaxRate = 110;
_bloodthirstyAccelRate = 270;
_bloodthirstyFrictionRate = 100;
_voluntaryMaxRate = _baseMaxRate;
_groundAccelRate = _baseGroundAccelRate;
_groundFrictionRate = _baseGroundFrictionRate;
}
private function _updateAISnapshot():void{
var _local1:WorkinPoint;
if (!_isAlive){
return;
};
if (_isEating){
_hortMotion = 0;
_snapshotTimer = 1;
} else {
if (_isBloodthirsty){
_local1 = _bloodTarget.pos.diff(_pos);
if ((((((_local1.x > _MIN_ATTACK_RANGE)) || ((Math.random() < 0.3)))) || ((_bloodTarget.type == "crumbspile")))){
if (_bloodTarget.pos.x < _pos.x){
_hortMotion = -1;
} else {
_hortMotion = 1;
};
} else {
if (Math.random() < 0.3){
} else {
if (_bloodTarget.pos.x < _pos.x){
_hortMotion = 1;
} else {
_hortMotion = -1;
};
};
};
if ((((Math.abs(_local1.length) < _ATTACK_RANGE)) && ((Math.abs(_local1.x) > _MIN_ATTACK_RANGE)))){
if (_bloodTarget.type == "crumbspile"){
if ((((Math.abs((_bloodTarget.pos.x - _pos.x)) < _EAT_DIST_X)) && ((Math.abs((_bloodTarget.pos.y - _pos.y)) < _EAT_DIST_Y)))){
_onEat(_bloodTarget);
};
} else {
_onAttack();
};
};
_snapshotTimer = 0.5;
} else {
if (_hortMotion == 0){
_hortMotion = ((Math.random() < 0.5)) ? -1 : 1;
} else {
_hortMotion = 0;
};
_snapshotTimer = (0.7 + (Math.random() * 2));
};
};
}
override public function get combatCollisionWidthHalf():Number{
return ((_hdBoxWidthHalf + _ATTACK_RANGE));
}
override public function updatePrediction(_arg1:Number):void{
_snapshotTimer = (_snapshotTimer - _arg1);
if (_invincibleTimer > 0){
_invincibleTimer = (_invincibleTimer - _arg1);
};
if (_isInjured){
_injuredTimer = (_injuredTimer - _arg1);
if (_injuredTimer < 0){
_isInjured = false;
if (_health <= 0){
_onDie();
};
};
};
if (((_hasFoundSurface) && (_isAlive))){
if (_snapshotTimer < 0){
_updateAISnapshot();
};
if (_isAttacking){
_updateAttack(_arg1);
_voluntaryVelocity.decay(((_groundFrictionRate * _arg1) * 1.5));
} else {
_attackCooldownTimer = (_attackCooldownTimer - _arg1);
_applyEdgeCaution();
};
if ((((_hortMotion < 0)) && (!(_isAttacking)))){
_voluntaryVelocity.add((-(_arg1) * (_groundAccelRate + ((_voluntaryVelocity.x > 0)) ? _groundFrictionRate : 0)), 0, 0);
if (_voluntaryVelocity.x > 0){
_isSliding = true;
};
} else {
if ((((_hortMotion > 0)) && (!(_isAttacking)))){
_voluntaryVelocity.add((_arg1 * (_groundAccelRate + ((_voluntaryVelocity.x < 0)) ? _groundFrictionRate : 0)), 0, 0);
if (_voluntaryVelocity.x < 0){
_isSliding = true;
};
} else {
_voluntaryVelocity.decay(((_groundFrictionRate * _arg1) * 1.5));
if (Math.abs(_voluntaryVelocity.x) > 0){
_isSliding = true;
};
};
};
} else {
_voluntaryVelocity.decay(((_airFrictionRate * _arg1) * 2));
if (!_isAlive){
if ((((_fadeOutTimer > 0)) || ((_fadeAlpha > 0)))){
_fadeOutTimer = (_fadeOutTimer - _arg1);
if (_fadeOutTimer < 0){
_fadeAlpha = (_fadeAlpha - (_FADE_RATE * _arg1));
if (_fadeAlpha < 0){
_fadeAlpha = 0;
};
_asset.alpha = _fadeAlpha;
};
};
};
};
if (_voluntaryVelocity.x > _voluntaryMaxRate){
_voluntaryVelocity.x = _voluntaryMaxRate;
};
if (_voluntaryVelocity.x < -(_voluntaryMaxRate)){
_voluntaryVelocity.x = -(_voluntaryMaxRate);
};
if (_involuntaryVelocity.x != 0){
_involuntaryVelocity.decayX(((_groundFrictionRate * _arg1) * 2));
};
super.updatePrediction(_arg1);
}
override public function get entityCollisionAsSurface():Boolean{
return (false);
}
protected function _updateAttack(_arg1:Number):void{
_attackTimer = (_attackTimer - _arg1);
if ((((_attackTimer <= 0)) && ((_asset.mc.currentFrame == _asset.mc.totalFrames)))){
_isAttacking = false;
_attackCooldownTimer = _ATTACK_COOLDOWN_DURATION;
_updateAISnapshot();
};
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
protected function _onAttack():void{
if (((_isAttacking) || ((_attackCooldownTimer > 0)))){
return;
};
GlobalSound.getInstance().playSound("rousAttack");
if (_bloodTarget.pos.x < _pos.x){
if (_voluntaryVelocity.x > 0){
_voluntaryVelocity.x = (_voluntaryVelocity.x * -1);
};
_hortMotion = -1;
_asset.scaleX = 1;
_facingLeft = true;
} else {
if (_voluntaryVelocity.x < 0){
_voluntaryVelocity.x = (_voluntaryVelocity.x * -1);
};
_hortMotion = 1;
_asset.scaleX = -1;
_facingLeft = false;
};
_isAttacking = true;
_attackTimer = _ATTACK_DURATION;
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
switch (_arg1.type){
case "player":
_reactPlayerCollision(Player(_arg1));
break;
};
}
override public function updateAI(_arg1:Array):void{
var _local2:Boolean;
var _local3:Number;
var _local4:Number;
if (!_isAlive){
return;
};
if (((_isBloodthirsty) && ((_bloodTarget.type == "crumbspile")))){
return;
};
_local2 = false;
_local3 = 0;
_local4 = _AGGRO_RADIUS;
_loop = _arg1.length;
while (_loop--) {
if (_arg1[_loop].pos.diff(_pos).length < _local4){
_local2 = true;
_local3 = _loop;
_local4 = _arg1[_loop].pos.diff(_pos).length;
};
};
if (((_local2) && (((!(_isBloodthirsty)) || (!((_bloodTarget == _arg1[_local3]))))))){
_bloodrage(_arg1[_local3]);
} else {
if (((_isBloodthirsty) && (!(_local2)))){
_endBloodrage();
};
};
}
override public function cleanUp():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_CRUMBS_PULSE, _onCrumbsPulse);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_CRUMBS_DESPAWN, _onCrumbsDespawn);
super.cleanUp();
}
private function _bloodrage(_arg1:Mobile):void{
_isBloodthirsty = true;
_bloodTarget = _arg1;
_snapshotTimer = 0;
_voluntaryMaxRate = _bloodthirstyMaxRate;
_groundAccelRate = _bloodthirstyAccelRate;
_groundFrictionRate = _bloodthirstyFrictionRate;
}
override public function get doComplexCollision():Boolean{
return (true);
}
override protected function _determineAnimation():void{
if (!_isAlive){
_animate("dead");
} else {
if (_isInjured){
_animate("damage");
} else {
if (_isEating){
_animate("eat");
} else {
if (_isAirborne){
if (_involuntaryVelocity.y < 0){
_animate("idle");
} else {
_animate("idle");
};
} else {
if (_isAttacking){
_animate("attack");
} else {
if (((_isSliding) && (_isBloodthirsty))){
_animate("slide");
} else {
if (Math.abs(_voluntaryVelocity.x) > 0){
_animate((_isBloodthirsty) ? "run" : "walk");
} else {
_animate("idle");
};
};
};
};
};
};
};
_isSliding = false;
}
override public function get type():String{
return ("rous");
}
private function _onCrumbsPulse(_arg1:EData):void{
if ((((Math.abs((_arg1.data.source.pos.x - _pos.x)) < _AGGRO_RADIUS)) && ((Math.abs((_arg1.data.source.pos.y - _pos.y)) < 5)))){
_bloodrage(_arg1.data.source);
};
}
override public function onPause():void{
if (_isAlive){
_animate("pause");
};
}
override public function get damage():Number{
return ((_damage + (_difficulty * 5)));
}
private function _endBloodrage():void{
_isBloodthirsty = false;
_voluntaryMaxRate = _baseMaxRate;
_groundAccelRate = _baseGroundAccelRate;
_groundFrictionRate = _baseGroundFrictionRate;
}
override protected function _recalculateDimensions():void{
var _local1:WorkinPoint;
_local1 = _asset.getFrameDimensions("idle");
_displayWidth = _local1.x;
_displayHeight = _local1.y;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles
Section 228
//Boulder (com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates.Boulder)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates {
import com.workinman.lib.sound.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Boulder extends Mobile {
private var _isPushed:Boolean;
private var _airborneTimer:Number;
private var _pushSource:Player;
public function Boulder(_arg1:Object){
_generator = _arg1.mobData;
_airborneTimer = 0;
_arg1.asset = BoulderAsset;
_arg1.x = _arg1.mobData.x;
_arg1.y = _arg1.mobData.y;
super(_arg1);
_generateCollisionLines();
}
override protected function _setCollisionBox():void{
collisionWidth = 50;
collisionHeight = 50;
}
public function onReleasePushed():void{
_isPushed = false;
_pushSource = null;
}
override public function updatePosition():void{
super.updatePosition();
if (_isPushed){
_pushSource.onUpdatePushPosition();
};
}
override public function get doNonCombatCollisionOnly():Boolean{
return (true);
}
override public function updatePrediction(_arg1:Number):void{
if (_isAirborne){
_airborneTimer = (_airborneTimer + _arg1);
};
super.updatePrediction(_arg1);
if (((!((_pos.x == _predictedPos.x))) || (!((_pos.y == _predictedPos.y))))){
_generateCollisionLines();
};
}
override public function get entityCollisionAsSurface():Boolean{
return (true);
}
override protected function _airborneOn():void{
_airborneTimer = 0;
super._airborneOn();
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
override public function get entityCollisionAsBox():Boolean{
return (false);
}
override public function get doComplexCollision():Boolean{
return (true);
}
override protected function _airborneOff():void{
if (_airborneTimer > 0.1){
GlobalSound.getInstance().playSound("boulderLand");
};
super._airborneOff();
}
override public function get type():String{
return ("boulder");
}
override public function get pushable():Boolean{
return (true);
}
override protected function _calculateVelocity(_arg1:Number):void{
if (((_isPushed) && (_pushSource.isFacing(this)))){
_voluntaryVelocity.toPoint(_pushSource.voluntaryVelocity);
} else {
_voluntaryVelocity.decay((_groundFrictionRate * _arg1));
};
super._calculateVelocity(_arg1);
}
public function onPushed(_arg1:Player):void{
_isPushed = true;
_pushSource = _arg1;
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates
Section 229
//CrumbsPile (com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates.CrumbsPile)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.events.*;
import com.workinman.paradise.world.camera.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class CrumbsPile extends Mobile {
private var _LIFESPAN_BASE:Number;// = 10
private var _lifespan:Number;
public function CrumbsPile(_arg1:Object){
_LIFESPAN_BASE = 10;
_arg1.asset = CrumbsPileAsset;
super(_arg1);
_lifespan = _LIFESPAN_BASE;
}
override protected function _setCollisionBox():void{
collisionWidth = 20;
collisionHeight = 20;
}
override public function degenerate():void{
cleanUp();
_doDelete = true;
_doDegenerate = false;
}
public function onEat():void{
_lifespan = 9;
}
override public function updatePrediction(_arg1:Number):void{
_lifespan = (_lifespan - _arg1);
if (_lifespan < 0){
if (_doDelete){
return;
};
degenerateAfterErase();
_erase();
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_CRUMBS_DESPAWN, {source:this}));
return;
};
super.updatePrediction(_arg1);
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
override public function updateAI(_arg1:Array):void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_CRUMBS_PULSE, {source:this}));
}
override protected function _renderPosition(_arg1:BaseCamera):void{
x = (_arg1.center.x + (_pos.x - _arg1.x));
y = ((_arg1.center.y + (_pos.y - _arg1.y)) + 5);
}
override protected function _airborneOff():void{
_isAirborne = false;
_animate("open");
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:pos.x, y:(pos.y + 4), type:"crumb"}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:(pos.x - 3), y:(pos.y + 2), type:"crumb"}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:(pos.x + 3), y:pos.y, type:"crumb"}));
}
override public function get type():String{
return ("crumbspile");
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates
Section 230
//Buttercup (com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.Buttercup)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs.players {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.sound.*;
import com.wwb.princessbride.fire_swamp.world.entitys.items.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Buttercup extends Player {
private var _damage:Number;
private var _isArmed:Boolean;
public static var EVENT_DISARMED:String = "onButtercupDisarmed";
public static var EVENT_ARMED:String = "onButtercupArmed";
public static var EVENT_CHANGE_FACE_RIGHT:String = "onButtercupFaceRight";
public static var EVENT_CHANGE_FACE_LEFT:String = "onButtercupFaceLeft";
public function Buttercup(_arg1:Object){
_arg1.asset = ButtercupAsset;
_isArmed = false;
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_DISARMED));
super(_arg1);
_jumpHeight = (Number(GameState.getInstance().getConfigOption("buttercupJumpHeight")) * FireSwampConfig.ppu);
_damage = Number(GameState.getInstance().getConfigOption("buttercupDamageToRous"));
}
override public function get isDangerous():Boolean{
return (((((_isAttacking) && ((_isAirborne) ? (_asset.mc.currentFrame > 5) : (_asset.mc.currentFrame > 11)))) && ((_isAirborne) ? (_asset.mc.currentFrame < 10) : (_asset.mc.currentFrame < 16))));
}
override protected function _reactStickCollision(_arg1:Stick):void{
_isArmed = true;
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_ARMED));
}
override protected function _onChangeFacing():void{
if (_facingLeft){
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_CHANGE_FACE_LEFT));
} else {
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_CHANGE_FACE_RIGHT));
};
}
override protected function _onAttack():void{
if (((_isAttacking) || (!(_isArmed)))){
return;
};
super._onAttack();
}
override protected function _playAttackHitSound():void{
GlobalSound.getInstance().playSound("attackHitStick");
}
public function removeStick():void{
_isArmed = false;
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_DISARMED));
}
override protected function _playJumpSound():void{
var _local1:String;
_local1 = ((Math.random() < 0.5)) ? "1" : "2";
GlobalSound.getInstance().playSound(("jumpButtercup" + _local1), true);
}
override protected function _playLandSound():void{
}
override public function get character():String{
return ("buttercup");
}
override public function chat(_arg1:String):void{
var _local2:Number;
if ((((_chatTimer > 0)) && (!((_arg1 == "success"))))){
return;
};
switch (_arg1){
case "switch":
if (Math.random() < 0.4){
_local2 = Math.ceil((Math.random() * 3));
if (_local2 == 0){
(_local2 == 1);
};
GlobalVoice.getInstance().playVO(("voWestleySwitch" + String(_local2)));
};
_setChatTimer(3);
break;
case "damage":
_local2 = Math.ceil((Math.random() * 3));
if (_local2 == 0){
(_local2 == 1);
};
GlobalVoice.getInstance().playVO(("voButtercupDamage" + String(_local2)));
_setChatTimer(5);
break;
};
}
override public function get damage():Number{
return (_damage);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs.players
Section 231
//Player (com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.Player)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs.players {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import flash.events.*;
import com.workinman.lib.sound.*;
import com.workinman.paradise.*;
import com.workinman.lib.events.*;
import com.workinman.paradise.world.camera.*;
import com.workinman.paradise.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.items.*;
import com.wwb.princessbride.fire_swamp.world.entitys.effects.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
import com.wwb.princessbride.fire_swamp.data.players.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles.*;
import flash.ui.*;
public class Player extends Mobile {
private const _POISON_GLOW_FREQUENCY:Number = 0.3;
private const _WATER_GLOW_FREQUENCY:Number = 0.3;
private const _HEAT_GLOW_FREQUENCY:Number = 0.1;
private const _ATTACK_COOLDOWN_DURATION:Number = 0.23;
private const _INJURED_DURATION:Number = 0.5;
private const _SHIELD_GLOW_FREQUENCY:Number = 0.08;
private const _JUMP_LAUNCH_RATE:Number = 300;
private const _SWING_COOLDOWN:Number = 0.25;
private const _PORTAL_COOLDOWN_DURATION:Number = 0.4;
private const _SWING_EXTENT_Y:Number = 55;
private const _INVINCIBLE_DURATION:Number = 1;
private const _SWING_EXTENT_X:Number = 100;
private const _SHIELD_DURATION:Number = 5;
private const _ATTACK_DURATION:Number = 0.25;
private const _VINE_TOP_SNAP:Number = 35;
protected const _COLLECT_DURATION:Number = 2;
private const _SELECT_GLOW_FREQUENCY:Number = 0.15;
private const _PUSH_RESIDUE_TIME:Number = 0.25;
private var _mouseHeld:Boolean;
private var _attackTimer:Number;
protected var _isCrouching:Boolean;
protected var _isSliding:Boolean;
private var _invincibleTimer:Number;
private var _poisonRatio:Number;
protected var _isThrowing:Boolean;
private var _mouseControlAngle:Number;
private var _injuredTimer:Number;
private var _isShieldGlowing:Boolean;
protected var _isWeightlessOnce:Boolean;
protected var _collectCooldown:Number;
protected var _isPushing:Boolean;
protected var _touchedPushThisUpdate:Boolean;
private var _pushRate:Number;
protected var _jumpHeight:Number;
protected var _touchedWaterThisUpdate:Boolean;
public var roomNum:Number;
private var _healTimer:Number;
protected var _touchedClimbThisUpdate:Boolean;
protected var _isAttacking:Boolean;
private var _isHortConsumed:Boolean;
protected var _isSwinging:Boolean;
private var _targetJumpY:Number;
private var _airborneDuration:Number;
private var _baseAirMaxHorizontalRate:Number;
private var _dt:Number;
protected var _hasAttackDamaged:Boolean;
protected var _chatTimer:Number;
private var _jumpTime:Number;
protected var _touchedPortalLastUpdate:Boolean;
private var _pushFrictionRate:Number;
private var _isHeatGlowing:Boolean;
private var _vertHeld:Number;
private var _swingGoal:WorkinPoint;
private var _hortHeld:Number;
private var _jumpDuration:Number;
private var _heatTimer:Number;
protected var _touchedKnockbackThisUpdate:Boolean;
protected var _isClimbing:Boolean;
protected var _hasJustSpawned:Boolean;
private var _knockbackForce:WorkinPoint;
private var _portalCooldown:Number;
private var _swingProgressRatio:Number;
private var _isActive:Boolean;
private var _rightBounds:Number;
private var _poisonMaxRate:Number;
protected var _isHoldingSwing:Boolean;
private var _attackCollisionBox:CollisionBox;
private var _gameEngine:GameEngine;
private var _swingCooldown:Number;
private var _isWaterGlowing:Boolean;
private var _climbReleaseDelay:Number;
private var _swingDir:Number;
protected var _pushTarget:Boulder;
private var _climbTarget:Vine;
private var _swingHeadedIn:Boolean;
private var _jumpChange:Number;
protected var _touchedPoisonThisUpdate:Boolean;
private var _swingCenter:WorkinPoint;
private var _leftBounds:Number;
private var _crouchMaxRate:Number;
protected var _isTeleporting:Boolean;
private var _pushResidue:Number;
private var _jumpStart:Number;
protected var _isInjured:Boolean;
private var _isSelectGlowing:Boolean;
private var _baseClimbRate:Number;
private var _poisonTimer:Number;
protected var _inLimbo:Boolean;
private var _mouseControlDiff:WorkinPoint;
private var _swingingSource:SwingVine;
protected var _glows:Array;
protected var _touchedPortalThisUpdate:Boolean;
private var _shieldTimer:Number;
protected var _isAiming:Boolean;
protected var _ammo:Item;
private var _climbRate:Number;
private var _isSpaceConsumed:Boolean;
private var _isPoisonGlowing:Boolean;
protected var _touchedHeatThisUpdate:Boolean;
private var _spaceHeld:Number;
protected var _isFireDamage:Boolean;
private var _attackCooldown:Number;
public function Player(_arg1:Object){
var _local2:PlayerData;
_local2 = _arg1.playerData;
_generator = _local2;
_gameEngine = GameEngine.getInstance();
WorkinDispatcher.getInstance().addEventListener(ParadiseConfig.EVENT_MOUSE_UP, _onMouseUp);
WorkinDispatcher.getInstance().addEventListener(ParadiseConfig.EVENT_MOUSE_DOWN, _onMouseDown);
WorkinDispatcher.getInstance().addEventListener(ParadiseConfig.EVENT_KEY_UP, _onKeyUp);
WorkinDispatcher.getInstance().addEventListener(ParadiseConfig.EVENT_KEY_DOWN, _onKeyDown);
_arg1.room = _local2.room;
_arg1.x = _local2.x;
_arg1.y = _local2.y;
_glows = [];
_vertHeld = 0;
_hortHeld = 0;
_spaceHeld = 0;
_healTimer = 0;
_attackCooldown = 0;
_heatTimer = 0.25;
_shieldTimer = 0;
_swingCooldown = 0;
_poisonTimer = 0;
_mouseControlAngle = 0;
_targetJumpY = 0;
_pushResidue = 0;
_mouseHeld = false;
_isSpaceConsumed = false;
_isHortConsumed = false;
_chatTimer = 0;
_collectCooldown = 0;
super(_arg1);
_hasJustSpawned = true;
_isWeightlessOnce = false;
_isCrouching = false;
_isClimbing = false;
_isPushing = false;
_isActive = false;
_inLimbo = true;
_isTeleporting = false;
_isAttacking = false;
_isInjured = false;
_isAiming = false;
_isThrowing = false;
_isSelectGlowing = false;
_isWaterGlowing = false;
_isShieldGlowing = false;
_isHeatGlowing = false;
_isPoisonGlowing = false;
_isFireDamage = false;
_hasAttackDamaged = false;
room = _room;
_isOnscreen = true;
_touchedPortalThisUpdate = false;
_touchedPortalLastUpdate = false;
_touchedKnockbackThisUpdate = false;
_animate("idle");
_facingLeft = false;
_asset.scaleX = -1;
_onChangeFacing();
}
protected function _applyWater(_arg1:Number):void{
_healTimer = (_healTimer + _arg1);
if (_healTimer >= 1){
_healTimer--;
GameState.getInstance().onPlayerHealDamage(Number(GameState.getInstance().getConfigOption("waterHealPerSecond")));
};
_playWaterGlow();
}
public function get isDangerous():Boolean{
return (((((_isAttacking) && ((_asset.mc.currentFrame > 5)))) && ((_isAirborne) ? (_asset.mc.currentFrame < 7) : (_asset.mc.currentFrame < 9))));
}
override protected function _resolveWallCollisionAftermath():void{
if (_isSwinging){
_onReleaseSwing();
_takeKnockbackDamage(0, _swingDir);
};
}
protected function _reactDewCollision(_arg1:Dew):void{
if (((((((((_arg1.isConsumed) || (_isAiming))) || (_isClimbing))) || (_isAirborne))) || ((_collectCooldown > 0)))){
return;
};
_arg1.requestConsume();
_ammo = _arg1;
_onAim();
}
protected function _reactBoulderCollision(_arg1:Boulder):void{
}
private function _takeDamage(_arg1:Number, _arg2:Boolean=false):void{
if (_invincibleTimer > 0){
return;
};
GameState.getInstance().onPlayerTakeDamage(_arg1);
chat("damage");
if (_arg2){
_isFireDamage = true;
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:(pos.x + 10), y:(pos.y - 80), type:"heat"}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:(pos.x - 30), y:(pos.y - 40), type:"heat"}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PARTICLE_EFFECT, {x:pos.x, y:(pos.y - 20), type:"heat"}));
} else {
_isFireDamage = false;
};
_invincibleTimer = _INVINCIBLE_DURATION;
}
override protected function _setCollisionBox():void{
collisionWidth = (_displayWidth * 0.55);
collisionHeight = _displayHeight;
}
protected function _onReleaseClimb():void{
GlobalSound.getInstance().stopSound("climbVine");
_climbReleaseDelay = 0.5;
_isClimbing = false;
_isEthereal = false;
_isWeightless = false;
_climbTarget = null;
}
private function _playWaterGlow():void{
if (_isWaterGlowing){
return;
};
_isWaterGlowing = true;
_addGlow(new GlowManager(this, "water", _WATER_GLOW_FREQUENCY));
}
private function _addGlow(_arg1:GlowManager):void{
var _local2:Number;
_local2 = _glows.length;
while (_local2--) {
if (_glows[_local2].type == _arg1.type){
return;
};
};
_glows.push(_arg1);
}
protected function _onHoldSwing(_arg1:SwingVine):void{
if (_hortHeld != 0){
_isHortConsumed = true;
};
_isHoldingSwing = true;
_voluntaryVelocity.to(0, 0, 0);
_swingingSource = _arg1;
_swingingSource.onHeld(this);
}
public function get swingDir():Number{
return (_swingDir);
}
private function _takeKnockbackDamage(_arg1:Number, _arg2:Number, _arg3:Boolean=false):void{
if (_invincibleTimer > 0){
return;
};
_isInjured = true;
if (_isPushing){
_onReleasePush();
};
_pushResidue = 0;
if (_isClimbing){
_onReleaseClimb();
};
if (_isSwinging){
_onReleaseSwing();
};
if (_isAiming){
_onCancelAim();
};
if (_isThrowing){
_onReleaseThrow();
};
_injuredTimer = _INJURED_DURATION;
_touchedKnockbackThisUpdate = true;
_knockbackForce = new WorkinPoint(((_arg2 < 0)) ? 200 : -200, -230, 0);
_isWeightlessOnce = true;
_targetJumpY = _pos.y;
_jumpTime = 0;
_takeDamage(_arg1, _arg3);
}
protected function _onReleaseThrow():void{
_isThrowing = false;
}
override protected function _reactPoisonSurfaceCollision(_arg1:WorkinPoint):void{
_touchedPoisonThisUpdate = true;
}
private function _playHeatGlow():void{
if (_isHeatGlowing){
return;
};
_isHeatGlowing = true;
_addGlow(new GlowManager(this, "heat", _HEAT_GLOW_FREQUENCY));
}
protected function _onReleaseSwing():void{
clearPaths();
_isHoldingSwing = false;
_isEthereal = false;
_isWeightless = false;
_swingingSource.onReleased();
_swingCooldown = _SWING_COOLDOWN;
if (_isSwinging){
_isSwinging = false;
if (_swingingSource.pos.x > _pos.x){
if (_voluntaryVelocity.x > 0){
_voluntaryVelocity.x = (_voluntaryVelocity.x * -1);
};
} else {
if (_voluntaryVelocity.x < 0){
_voluntaryVelocity.x = (_voluntaryVelocity.x * -1);
};
};
_voluntaryVelocity.x = (_voluntaryVelocity.x * 2);
_onJump();
};
}
private function _removeWaterGlow():void{
if (!_isWaterGlowing){
return;
};
_isWaterGlowing = false;
_removeGlow("water");
}
protected function _reactSwingVineCollision(_arg1:SwingVine):void{
if (((((((((((_isActive) && (!(_isInjured)))) && (!(_isSwinging)))) && (!(_isHoldingSwing)))) && (!(_isCrouching)))) && ((_swingCooldown <= 0)))){
if (((_isAirborne) && ((_vertHeld == -1)))){
_onSwing(_arg1);
} else {
if (!_isAirborne){
_predictedPos.toPoint(_pos);
_onHoldSwing(_arg1);
};
};
};
}
protected function _applyHeat(_arg1:Number):void{
if (isShielded){
return;
};
_heatTimer = (_heatTimer + _arg1);
if (_heatTimer >= 0.25){
_heatTimer = (_heatTimer - 0.25);
GameState.getInstance().onPlayerTakeDamage(Math.round((0.25 * Number(GameState.getInstance().getConfigOption("fireGroundHeatDamagePerSecond")))));
};
_playHeatGlow();
}
public function onRoomRegenerated():void{
_inLimbo = false;
}
override public function updatePosition():void{
if (_inLimbo){
return;
};
if (_isClimbing){
if (!_touchedClimbThisUpdate){
_onReleaseClimb();
} else {
if (((((_predictedPos.y - _climbTarget.pos.y) < _VINE_TOP_SNAP)) && ((_vertHeld < 0)))){
_predictedPos.y = (_climbTarget.pos.y - 0.5);
_onReleaseClimb();
_animate("climbcap");
};
};
};
if (((_isPushing) && (!(_touchedPushThisUpdate)))){
onUpdatePushPosition();
_onReleasePush();
};
if (_touchedWaterThisUpdate){
_applyWater(_dt);
} else {
if (_isWaterGlowing){
_removeWaterGlow();
};
};
if (_touchedPoisonThisUpdate){
_applyPoison(_dt);
};
if (_touchedHeatThisUpdate){
_applyHeat(_dt);
} else {
if (_isHeatGlowing){
_removeHeatGlow();
};
};
super.updatePosition();
if (_pos.x < _leftBounds){
_pos.x = _leftBounds;
};
if (_pos.x > _rightBounds){
_pos.x = _rightBounds;
};
_touchedClimbThisUpdate = false;
_touchedPushThisUpdate = false;
_touchedPortalLastUpdate = _touchedPortalThisUpdate;
_touchedPortalThisUpdate = false;
_touchedWaterThisUpdate = false;
_touchedPoisonThisUpdate = false;
_touchedHeatThisUpdate = false;
}
protected function _applyFireShield():void{
_shieldTimer = Number(GameState.getInstance().getConfigOption("fireShieldDuration"));
_playShieldGlow();
}
private function _playShieldGlow():void{
if (_isShieldGlowing){
return;
};
_isShieldGlowing = true;
_addGlow(new GlowManager(this, "shield", _SHIELD_GLOW_FREQUENCY, false));
}
public function get isShielded():Boolean{
return ((_shieldTimer > 0));
}
protected function _reactStickCollision(_arg1:Stick):void{
}
private function _playSelectGlow():void{
_isSelectGlowing = true;
_addGlow(new GlowManager(this, "select", _SELECT_GLOW_FREQUENCY));
}
protected function _reactShieldCollision(_arg1:FireShield):void{
if (_arg1.isConsumed){
return;
};
_applyFireShield();
}
private function _playPoisonGlow():void{
if (_isPoisonGlowing){
return;
};
_isPoisonGlowing = true;
_addGlow(new GlowManager(this, "poison", _POISON_GLOW_FREQUENCY));
}
protected function _reactGate(_arg1:Gate):void{
if (((!(_arg1.isOpen)) && ((Math.abs((_arg1.pos.x - _pos.x)) < (_arg1.collisionWidth - 0.2))))){
_takeKnockbackDamage(0, (_arg1.pos.x - _pos.x));
};
}
private function _onKeyUp(_arg1:EData):void{
switch (_arg1.data.keyCode){
case 65:
case Keyboard.LEFT:
if (_hortHeld == -1){
_hortHeld = 0;
};
_isHortConsumed = false;
break;
case 68:
case Keyboard.RIGHT:
if (_hortHeld == 1){
_hortHeld = 0;
};
_isHortConsumed = false;
break;
case 87:
case Keyboard.UP:
if (_vertHeld == -1){
_vertHeld = 0;
};
break;
case 83:
case Keyboard.DOWN:
if (_vertHeld == 1){
_vertHeld = 0;
};
break;
case Keyboard.SPACE:
_spaceHeld = 0;
_isSpaceConsumed = false;
break;
};
}
public function isFacing(_arg1:Mobile):Boolean{
if (_arg1 == null){
return (false);
};
return (((((_facingLeft) && ((_arg1.pos.x < _pos.x)))) || (((!(_facingLeft)) && ((_arg1.pos.x > _pos.x))))));
}
public function onAttackCauseDamage():void{
if (_hasAttackDamaged){
return;
};
_hasAttackDamaged = true;
_playAttackHitSound();
}
override public function set room(_arg1:Number):void{
_room = _arg1;
_leftBounds = FireSwampConfig.getRoomLeftBounds(_room);
_rightBounds = FireSwampConfig.getRoomRightBounds(_room);
if (_isSwinging){
_onReleaseSwing();
};
}
protected function _reactSwitchCollision():void{
}
private function _onMouseUp(_arg1:Event):void{
if (_isAiming){
_onThrow();
};
}
private function _removeGlow(_arg1:String):void{
var _local2:Number;
_local2 = _glows.length;
while (_local2--) {
if (_glows[_local2].type == _arg1){
_glows.splice(_local2, 1);
return;
};
};
}
override protected function _setMotionRates():void{
_crouchMaxRate = 0;
_poisonRatio = Number(GameState.getInstance().getConfigOption("poisonSlowPercent"));
_baseAirMaxHorizontalRate = 124;
_baseClimbRate = 110;
_climbRate = _baseClimbRate;
_pushRate = 60;
_pushFrictionRate = 400;
super._setMotionRates();
_baseMaxRate = 160;
}
override protected function _testEntitySurfaceCollision(_arg1:FireSwampSprite):Boolean{
var _local2:Boolean;
if ((((_arg1.type == "firespout")) && (isShielded))){
return (false);
};
_local2 = false;
_loop = _arg1.collisionLines.length;
while (_loop--) {
if (((_isPushing) && ((_arg1 == _pushTarget)))){
if (_testLineCollision(_arg1.collisionLines[_loop]).length > 0){
_local2 = true;
};
} else {
if (!_arg1.pushable){
if (_resolveSurfaceCollisions(_testLineCollision(_arg1.collisionLines[_loop]))){
_local2 = true;
};
} else {
if (_resolveSurfaceCollisions(_testLineCollision(_arg1.collisionLines[_loop]))){
if (_arg1.collisionLines[_loop].normal.x != 0){
_local2 = true;
};
};
};
};
};
return (_local2);
}
protected function _onAim():void{
if (_isAiming){
return;
};
_isAiming = true;
_isAttacking = false;
_onReleaseCrouch();
if (_isPushing){
_onReleasePush();
};
_pushResidue = 0;
_voluntaryVelocity.to(0, 0, 0);
}
public function setActive():void{
_isActive = true;
_playSelectGlow();
}
private function _onMouseDown(_arg1:Event):void{
}
public function onUpdatePushPosition():void{
_loop = _pushTarget.collisionLines.length;
while (_loop--) {
_resolveSurfaceCollisions(_testLineCollision(_pushTarget.collisionLines[_loop]));
};
}
override public function get combatCollisionWidthHalf():Number{
return ((_isAttacking) ? (_hdBoxWidthHalf + 30) : _hdBoxWidthHalf);
}
override protected function _onPathComplete():void{
_updateSwingGoal();
}
override protected function _draw():void{
if (_hasJustSpawned){
_inLimbo = false;
_hasJustSpawned = false;
};
super._draw();
}
private function _updateSwingGoal():void{
var _local1:String;
var _local2:Number;
var _local3:Number;
_swingHeadedIn = false;
_swingProgressRatio = 0;
if (_predictedPos.x > _swingCenter.x){
if (_swingDir > 0){
_swingDir = -1;
};
_swingGoal.toPoint(_swingCenter);
} else {
if (_predictedPos.x == _swingCenter.x){
_swingGoal.to((_swingCenter.x + ((_swingDir > 0)) ? _SWING_EXTENT_X : -(_SWING_EXTENT_X)), (_swingCenter.y - _SWING_EXTENT_Y));
_swingHeadedIn = true;
} else {
if (_swingDir < 0){
_swingDir = 1;
};
_swingGoal.toPoint(_swingCenter);
};
};
_local2 = ((_pos.x - _swingGoal.x) / 2);
_local3 = ((_pos.y - _swingGoal.y) / 2);
if (_swingHeadedIn){
setCurve(_swingGoal, _predictedPos.addCopy((_local2 * -1), 0), _swingGoal.addCopy(0, _local3), 0.6, PennerManager.EASE_LINEAR);
} else {
setCurve(_swingGoal, _predictedPos.addCopy(0, _local3), _swingGoal.addCopy(_local2, 0), 0.6, PennerManager.EASE_LINEAR);
};
_voluntaryVelocity = _paths[0].start.diff(_paths[0].end);
}
protected function _reactVineCollision(_arg1:Vine):void{
if (_arg1.isCoiled){
return;
};
if (_isClimbing){
_touchedClimbThisUpdate = true;
} else {
if (((_isActive) && (!((_vertHeld == 0))))){
if ((((_pos.y <= _arg1.pos.y)) && ((_vertHeld == -1)))){
return;
};
_onClimb(_arg1);
};
};
}
override protected function _generateCollisionBox():void{
super._generateCollisionBox();
_attackCollisionBox = new CollisionBox((_hdBoxWidth + 25), _hdBoxHeight, _displayCenter);
}
override public function updatePrediction(_arg1:Number):void{
_dt = _arg1;
if (_invincibleTimer > 0){
_invincibleTimer = (_invincibleTimer - _arg1);
};
if (_attackCooldown > 0){
_attackCooldown = (_attackCooldown - _arg1);
};
if (_collectCooldown > 0){
_collectCooldown = (_collectCooldown - _arg1);
};
if (_portalCooldown > 0){
_portalCooldown = (_portalCooldown - _arg1);
};
if (((((_inLimbo) || (_isTeleporting))) || (_isAiming))){
return;
};
if (_isThrowing){
if (_asset.mc.currentFrame == _asset.mc.totalFrames){
_onReleaseThrow();
} else {
return;
};
};
if (_pushResidue > 0){
_pushResidue = (_pushResidue - _dt);
if ((((_pushResidue <= 0)) && (!(_isPushing)))){
GlobalSound.getInstance().stopSound("push");
};
};
_loop = _glows.length;
while (_loop--) {
_glows[_loop].update(_dt);
};
if (_isInjured){
_injuredTimer = (_injuredTimer - _arg1);
if (_injuredTimer < 0){
_isInjured = false;
_isFireDamage = false;
};
};
if (_isAttacking){
_updateAttack(_arg1);
};
if (((_spaceHeld) && (!(_isSpaceConsumed)))){
if (((!(_isSwinging)) && (!(_isClimbing)))){
_onAttack();
};
_isSpaceConsumed = true;
};
if (_swingCooldown > 0){
_swingCooldown = (_swingCooldown - _arg1);
};
if (_shieldTimer > 0){
_shieldTimer = (_shieldTimer - _arg1);
if (_shieldTimer <= 0){
_removeShieldGlow();
};
};
if (_chatTimer > 0){
_chatTimer = (_chatTimer - _arg1);
};
if (!_isInjured){
if (_isSwinging){
_swingProgressRatio = _paths[0].pathRatio;
if (((((((!(_isHortConsumed)) && (!((_hortHeld == 0))))) && ((_swingCooldown <= 0)))) && (_isActive))){
_onReleaseSwing();
};
} else {
if (_isHoldingSwing){
if (((((!(_isHortConsumed)) && (!((_hortHeld == 0))))) && (_isActive))){
if (((((_swingingSource.isLeft) && ((_hortHeld == 1)))) || (((!(_swingingSource.isLeft)) && ((_hortHeld == -1)))))){
_onSwing();
} else {
if (((((_swingingSource.isLeft) && ((_hortHeld == -1)))) || (((!(_swingingSource.isLeft)) && ((_hortHeld == 1)))))){
_onReleaseSwing();
};
};
};
} else {
if (((_isActive) && (_isClimbing))){
if (_vertHeld < 0){
_voluntaryVelocity.y = -(_climbRate);
GlobalSound.getInstance().loopSound("climbVine");
} else {
if (_vertHeld > 0){
_voluntaryVelocity.y = _climbRate;
GlobalSound.getInstance().loopSound("climbVine");
} else {
_voluntaryVelocity.y = 0;
GlobalSound.getInstance().stopSound("climbVine");
};
};
if (((!(_isHortConsumed)) && (!((_hortHeld == 0))))){
_onReleaseClimb();
_onJump();
};
} else {
if (((_isActive) && (_isPushing))){
if (_hortHeld < 0){
_voluntaryVelocity.to(-(_pushRate), 0, 0);
} else {
if (_hortHeld > 0){
_voluntaryVelocity.to(_pushRate, 0, 0);
} else {
_voluntaryVelocity.decay((_pushFrictionRate * _arg1));
};
};
} else {
if (_isAirborne){
_airborneDuration = (_airborneDuration + _dt);
if (_climbReleaseDelay > 0){
_climbReleaseDelay = (_climbReleaseDelay - _arg1);
};
if (_isActive){
if (_hortHeld < 0){
_voluntaryVelocity.add((-(_arg1) * _airAccelRate), 0, 0);
} else {
if (_hortHeld > 0){
_voluntaryVelocity.add((_arg1 * _airAccelRate), 0, 0);
} else {
_voluntaryVelocity.decay((_airFrictionRate * _arg1));
};
};
} else {
_voluntaryVelocity.decay((_airFrictionRate * _arg1));
};
if (_airborneDuration > 4){
_predictedPos.x = (FireSwampConfig.getRoomLeftBounds(room) + 40);
_predictedPos.y = 0;
};
} else {
if (_isActive){
if ((((_hortHeld < 0)) && (!(_isAttacking)))){
_voluntaryVelocity.add((-(_arg1) * (_groundAccelRate + ((_voluntaryVelocity.x > 0)) ? _groundFrictionRate : 0)), 0, 0);
if (_voluntaryVelocity.x > 0){
_isSliding = true;
};
} else {
if ((((_hortHeld > 0)) && (!(_isAttacking)))){
_voluntaryVelocity.add((_arg1 * (_groundAccelRate + ((_voluntaryVelocity.x < 0)) ? _groundFrictionRate : 0)), 0, 0);
if (_voluntaryVelocity.x < 0){
_isSliding = true;
};
} else {
_voluntaryVelocity.decay(((_groundFrictionRate * _arg1) * 1.5));
if (Math.abs(_voluntaryVelocity.x) > 0){
_isSliding = true;
};
};
};
} else {
if (_voluntaryVelocity.length > 0){
_voluntaryVelocity.decay((_groundFrictionRate * _arg1));
};
};
};
};
};
};
};
if (_voluntaryVelocity.x > _voluntaryMaxRate){
_voluntaryVelocity.x = _voluntaryMaxRate;
};
if (_voluntaryVelocity.x < -(_voluntaryMaxRate)){
_voluntaryVelocity.x = -(_voluntaryMaxRate);
};
if (_isActive){
if ((((((((((((((_vertHeld < 0)) && (!(_isAirborne)))) && (!(_isClimbing)))) && (!(_isAttacking)))) && (!(_isAiming)))) && (!(_isInjured)))) && (!(_isTeleporting)))){
_onJump();
};
if (_isSelectGlowing){
if (((((!((_vertHeld == 0))) || (!((_hortHeld == 0))))) || (_isAttacking))){
_removeSelectGlow();
};
};
};
} else {
if (_voluntaryVelocity.length > 0){
_voluntaryVelocity.decay((_groundFrictionRate * _arg1));
};
};
if (_involuntaryVelocity.x != 0){
_involuntaryVelocity.decayX(((_groundFrictionRate * _arg1) * 2));
};
if (_poisonTimer > 0){
_poisonTimer = (_poisonTimer - _arg1);
if (_poisonTimer < 0){
if (_isAirborne){
_voluntaryMaxRate = _baseAirMaxHorizontalRate;
} else {
_voluntaryMaxRate = _baseMaxRate;
};
_removePoisonGlow();
};
};
super.updatePrediction(_arg1);
}
override protected function _airborneOn():void{
super._airborneOn();
if (((_isHoldingSwing) && (!(_isSwinging)))){
_onReleaseSwing();
};
_airborneDuration = 0;
_voluntaryMaxRate = (_baseAirMaxHorizontalRate * ((_poisonTimer > 0)) ? _poisonRatio : 1);
}
public function get isAiming():Boolean{
return (_isAiming);
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
private function _removeHeatGlow():void{
if (!_isHeatGlowing){
return;
};
_isHeatGlowing = false;
_removeGlow("heat");
_heatTimer = 0.25;
}
protected function _setChatTimer(_arg1:Number=1):void{
_chatTimer = _arg1;
}
protected function _onReleasePush():void{
_isPushing = false;
_pushTarget.onReleasePushed();
_pushResidue = _PUSH_RESIDUE_TIME;
}
public function onRoomDegenerated():void{
_inLimbo = true;
}
protected function _onAttack():void{
if (((((((!(_isActive)) || (_isAttacking))) || (_isClimbing))) || ((_attackCooldown > 0)))){
return;
};
if (_isHoldingSwing){
_onReleaseSwing();
};
_isAttacking = true;
_hasAttackDamaged = false;
_attackTimer = _ATTACK_DURATION;
GlobalSound.getInstance().playSound("attackMiss");
}
protected function _applyPoison(_arg1:Number):void{
_poisonTimer = Number(GameState.getInstance().getConfigOption("poisonSlowDuration"));
_voluntaryMaxRate = _poisonMaxRate;
_voluntaryMaxRate = (_baseMaxRate * ((_poisonTimer > 0)) ? _poisonRatio : 1);
_playPoisonGlow();
}
protected function _reactSpikeCollision(_arg1:Spike):void{
_takeKnockbackDamage(_arg1.damage, (_arg1.pos.x - _pos.x));
}
override public function get group():String{
return ("players");
}
protected function _playAttackHitSound():void{
}
protected function _reactFireSpout(_arg1:FireSpout):void{
if (isShielded){
return;
};
if (_arg1.active){
_takeKnockbackDamage(_arg1.damage, (_arg1.pos.x - _pos.x), true);
};
}
private function _removeSelectGlow():void{
if (!_isSelectGlowing){
return;
};
_isSelectGlowing = false;
_removeGlow("select");
}
protected function _playJumpSound():void{
}
override public function onEntityCollision(_arg1:FireSwampSprite):void{
switch (_arg1.type){
case "switch":
_reactSwitchCollision();
break;
case "rous":
_reactRousCollision(Rous(_arg1));
break;
case "flyrous":
_reactFlyRousCollision(FlyRous(_arg1));
break;
case "vine":
_reactVineCollision(Vine(_arg1));
break;
case "firespout":
_reactFireSpout(FireSpout(_arg1));
break;
case "gate":
_reactGate(Gate(_arg1));
break;
case "firemoss":
_reactFireMoss(FireMoss(_arg1));
break;
case "boulder":
_reactBoulderCollision(Boulder(_arg1));
break;
case "portal":
_reactPortalCollision(Portal(_arg1));
break;
case "stick":
_reactStickCollision(Stick(_arg1));
break;
case "spike":
_reactSpikeCollision(Spike(_arg1));
break;
case "dew":
_reactDewCollision(Dew(_arg1));
break;
case "crumbs":
_reactCrumbsCollision(Crumbs(_arg1));
break;
case "swingvine":
_reactSwingVineCollision(SwingVine(_arg1));
break;
case "shield":
_reactShieldCollision(FireShield(_arg1));
break;
};
}
public function get mouseControlAngle():Number{
return (_mouseControlAngle);
}
private function _removePoisonGlow():void{
if (!_isPoisonGlowing){
return;
};
_isPoisonGlowing = false;
_removeGlow("poison");
}
private function _removeShieldGlow():void{
if (!_isShieldGlowing){
return;
};
_isShieldGlowing = false;
_removeGlow("shield");
}
protected function _onPush(_arg1:Boulder):void{
if (((_isAttacking) || (_isAirborne))){
return;
};
if (((!(_isPushing)) && ((_pushResidue <= 0)))){
GlobalSound.getInstance().loopSound("push");
};
_isPushing = true;
_pushTarget = _arg1;
_pushTarget.onPushed(this);
_voluntaryVelocity.to(0, 0, 0);
_touchedPushThisUpdate = true;
}
public function _onReleaseCrouch():void{
}
protected function _reactFlyRousCollision(_arg1:FlyRous):void{
if (((_arg1.isDangerous) && (!(_isAttacking)))){
if (((((_arg1.isFacingLeft) && ((_arg1.pos.x > _pos.x)))) || (((!(_arg1.isFacingLeft)) && ((_arg1.pos.x < _pos.x)))))){
_takeKnockbackDamage(_arg1.damage, (_arg1.pos.x - _pos.x));
};
};
}
protected function _onClimb(_arg1:Vine):void{
if ((((_climbReleaseDelay > 0)) || (((!(_isAirborne)) && (_isAttacking))))){
return;
};
_isClimbing = true;
_isAirborne = false;
_isAttacking = false;
_isEthereal = true;
_isWeightless = true;
_climbTarget = _arg1;
_onReleaseCrouch();
_involuntaryVelocity.to(0, 0, 0);
_voluntaryVelocity.to(0, 0, 0);
_momentaryForces = [];
if (_hortHeld != 0){
_isHortConsumed = true;
};
if ((((_vertHeld > 0)) && (((_predictedPos.y - _climbTarget.pos.y) < _VINE_TOP_SNAP)))){
_predictedPos.y = ((_climbTarget.pos.y + _VINE_TOP_SNAP) + 6);
};
_touchedClimbThisUpdate = true;
_predictedPos.x = _arg1.pos.x;
}
protected function _updateAttack(_arg1:Number):void{
_attackTimer = (_attackTimer - _arg1);
if ((((_attackTimer <= 0)) && ((_asset.mc.currentFrame == _asset.mc.totalFrames)))){
_isAttacking = false;
_attackCooldown = _ATTACK_COOLDOWN_DURATION;
};
}
protected function _onPortalResponse(_arg1:EData):void{
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).removeEventListener(FireSwampConfig.EVENT_PORTAL_RESPONSE, _onPortalResponse);
if (!_isTeleporting){
return;
};
if (_arg1.data.fail){
return;
};
_portalCooldown = _PORTAL_COOLDOWN_DURATION;
_pos.toPoint(_arg1.data.portal.pos);
_predictedPos.toPoint(_arg1.data.portal.pos);
_targetJumpY = _pos.y;
_jumpChange = 0;
_jumpDuration = 0;
_jumpTime = 0;
_isTeleporting = false;
}
protected function _onThrow():void{
if (((((!(_isAiming)) || (_isThrowing))) || (!(_isActive)))){
return;
};
_isAiming = false;
_isThrowing = false;
_collectCooldown = Number(GameState.getInstance().getConfigOption("dewCollectCooldown"));
GlobalSound.getInstance().playSound("throw");
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PLAYER_THROW, {ammo:_ammo, source:this}));
}
override protected function _determineAnimation():void{
if (_asset.animation == "climbcap"){
if (_asset.mc.currentFrame == _asset.mc.totalFrames){
_animate("idle");
};
return;
};
if (_isSwinging){
if (((_swingHeadedIn) && ((_swingProgressRatio > 0.4)))){
_animate("swingback");
} else {
_animate("swingfore");
};
} else {
if (_isHoldingSwing){
_animate("hold");
} else {
if (_isTeleporting){
_animate("jump_up");
} else {
if (_isInjured){
if (_isFireDamage){
_animate("firedamage");
} else {
_animate("damage");
};
} else {
if (_isAiming){
_animate("aim");
} else {
if (_isThrowing){
_animate("throw");
} else {
if (_isClimbing){
_animate("climb");
if ((((_vertHeld == 0)) || (!(_isActive)))){
_asset.mc.stop();
} else {
_asset.mc.play();
};
} else {
if (((_isPushing) || ((((_pushResidue > 0)) && (isFacing(_pushTarget)))))){
_animate("push");
} else {
if (_isAirborne){
if (_isAttacking){
_animate(("jump_attack_" + (_facingLeft) ? "left" : "right"));
} else {
if (_involuntaryVelocity.y < 0){
_animate("jump_up");
} else {
_animate("jump_down");
};
};
} else {
if (_isAttacking){
_animate(("attack_" + (_facingLeft) ? "left" : "right"));
} else {
if (_isSliding){
_animate("slide");
} else {
if (Math.abs(_voluntaryVelocity.x) > 0){
_animate("run");
} else {
_animate("idle");
};
};
};
};
};
};
};
};
};
};
};
};
_isSliding = false;
}
protected function _playLandSound():void{
}
protected function _onSwing(_arg1:SwingVine=null):void{
if (_arg1 != null){
_swingingSource = _arg1;
};
_isSwinging = true;
_isAirborne = false;
_isAttacking = false;
_isEthereal = true;
_isWeightless = true;
_onReleaseCrouch();
_involuntaryVelocity.to(0, 0, 0);
_voluntaryVelocity.to(0, 0, 0);
_swingCooldown = _SWING_COOLDOWN;
_momentaryForces = [];
if (_hortHeld != 0){
_isHortConsumed = true;
};
_swingingSource.onSwing(this);
_swingGoal = new WorkinPoint();
_swingCenter = new WorkinPoint(_swingingSource.pos.x, _swingingSource.getCenterY());
_swingDir = (_swingingSource.isLeft) ? 1 : -1;
_updateSwingGoal();
}
override public function get character():String{
return ("player");
}
override protected function _airborneOff():void{
super._airborneOff();
if (_airborneDuration > 0.5){
_playLandSound();
};
_airborneDuration = 0;
_voluntaryMaxRate = (_baseMaxRate * ((_poisonTimer > 0)) ? _poisonRatio : 1);
if (_isAttacking){
_isAttacking = false;
_attackCooldown = _ATTACK_COOLDOWN_DURATION;
};
_climbReleaseDelay = 0;
}
protected function _reactRousCollision(_arg1:Rous):void{
if (((_arg1.isDangerous) && (!(_isAttacking)))){
if (((((_arg1.isFacingLeft) && ((_arg1.pos.x > (_pos.x - 15))))) || (((!(_arg1.isFacingLeft)) && ((_arg1.pos.x < (_pos.x + 15))))))){
_takeKnockbackDamage(_arg1.damage, (_arg1.pos.x - _pos.x));
};
};
}
override public function get type():String{
return ("player");
}
override public function onPause():void{
}
private function _onKeyDown(_arg1:EData):void{
switch (_arg1.data.keyCode){
case 65:
case Keyboard.LEFT:
_hortHeld = -1;
break;
case 68:
case Keyboard.RIGHT:
_hortHeld = 1;
break;
case 87:
case Keyboard.UP:
_vertHeld = -1;
break;
case 83:
case Keyboard.DOWN:
_vertHeld = 1;
break;
case Keyboard.SPACE:
_spaceHeld = 1;
break;
};
}
public function setInactive():void{
_isActive = false;
_removeSelectGlow();
if (_isClimbing){
_voluntaryVelocity.y = 0;
};
}
public function chat(_arg1:String):void{
if ((((_chatTimer > 0)) && (!((_arg1 == "success"))))){
return;
};
}
protected function _reactFireMoss(_arg1:FireMoss):void{
if (isShielded){
return;
};
if (_arg1.isBurning){
_takeKnockbackDamage(_arg1.damage, (_arg1.pos.x - _pos.x), true);
};
}
protected function _onCancelAim():void{
_isAiming = false;
}
override protected function _reactWaterSurfaceCollision(_arg1:WorkinPoint):void{
_touchedWaterThisUpdate = true;
}
protected function _reactPortalCollision(_arg1:Portal):void{
if (_isAirborne){
return;
};
_touchedPortalThisUpdate = true;
if (((((((!(_arg1.active)) || (_isTeleporting))) || (_touchedPortalLastUpdate))) || ((_portalCooldown > 0)))){
return;
};
_isTeleporting = true;
GlobalSound.getInstance().playSound("portal");
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(FireSwampConfig.EVENT_PORTAL_RESPONSE, _onPortalResponse);
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new EData(FireSwampConfig.EVENT_PLAYER_PORTAL, {portal:_arg1}));
}
protected function _reactCrumbsCollision(_arg1:Crumbs):void{
if (((((((_arg1.isConsumed) || (_isClimbing))) || (_isAirborne))) || ((_collectCooldown > 0)))){
return;
};
_arg1.requestConsume();
_ammo = _arg1;
_onAim();
}
override protected function _renderVisibility(_arg1:BaseCamera):void{
if (!_mcVisible){
_draw();
};
}
override protected function _recalculateDimensions():void{
_displayWidth = 20;
_displayHeight = (_isCrouching) ? 67 : 44;
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
_recalculateDisplayCenter();
}
protected function _onJump():void{
if (_isPushing){
_onReleasePush();
};
if (_isHoldingSwing){
_onReleaseSwing();
};
_addMomentaryForce(new WorkinPoint(0, -100, 0));
_targetJumpY = (_pos.y - _jumpHeight);
_playJumpSound();
_jumpChange = -(_jumpHeight);
_jumpDuration = (_jumpHeight / 110);
_jumpTime = _jumpDuration;
_jumpStart = pos.y;
_isWeightlessOnce = true;
_pushResidue = 0;
GlobalSound.getInstance().stopSound("push");
}
override protected function _calculateVelocity(_arg1:Number):void{
var _local2:Number;
if (_touchedKnockbackThisUpdate){
_voluntaryVelocity.x = 0;
if (_voluntaryVelocity.y < 0){
_knockbackForce.y = 0;
};
if (_involuntaryVelocity.y < 0){
_knockbackForce.y = 0;
};
_clearMomentaryForces();
_addMomentaryForce(_knockbackForce);
};
_touchedKnockbackThisUpdate = false;
_momentaryVoluntaryMotion.to((_voluntaryVelocity.x * _arg1), (_voluntaryVelocity.y * _arg1));
_loop = _momentaryForces.length;
while (_loop--) {
_involuntaryVelocity.addPoint(_momentaryForces[_loop]);
};
if (((((_isAirborne) && ((_involuntaryVelocity.y < 0)))) && ((_pos.y > _targetJumpY)))){
_local2 = (_arg1 * ((_involuntaryVelocity.y < 0)) ? 2 : 1);
_loop = _persistantForces.length;
while (_loop--) {
_involuntaryVelocity.add((_persistantForces[_loop].x * _local2), 0);
};
} else {
if (((!(_isWeightless)) && (!(_isWeightlessOnce)))){
_local2 = (_arg1 * ((_involuntaryVelocity.y < 0)) ? 2 : 1);
_loop = _persistantForces.length;
while (_loop--) {
_involuntaryVelocity.add((_persistantForces[_loop].x * _local2), (_persistantForces[_loop].y * _local2));
};
} else {
_isWeightlessOnce = false;
};
};
_velocity.to((_involuntaryVelocity.x + _voluntaryVelocity.x), (_involuntaryVelocity.y + _voluntaryVelocity.y));
if (((((_isAirborne) && ((_involuntaryVelocity.y < 0)))) && ((_pos.y > _targetJumpY)))){
_velocity.y = -(_JUMP_LAUNCH_RATE);
_jumpTime = (_jumpTime - _arg1);
if (((!((_jumpDuration == 0))) && (!((_jumpChange == 0))))){
_velocity.y = (-(((((_jumpChange * (_jumpTime / _jumpDuration)) * (_jumpTime / _jumpDuration)) / _jumpChange) + 0.25)) * _JUMP_LAUNCH_RATE);
};
};
}
override protected function _reactFireSurfaceCollision(_arg1:WorkinPoint):void{
_touchedHeatThisUpdate = true;
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs.players
Section 232
//Westley (com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.Westley)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs.players {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Westley extends Player {
private var _damage:Number;
public static var EVENT_CHANGE_SWORD_RIGHT:String = "onWestleySwordRight";
public static var EVENT_CHANGE_SWORD_LEFT:String = "onWestleySwordLeft";
public static var EVENT_CHANGE_FACE_RIGHT:String = "onWestleyFaceRight";
public static var EVENT_CHANGE_FACE_LEFT:String = "onWestleyFaceLeft";
public function Westley(_arg1:Object){
_arg1.asset = WestleyAsset;
super(_arg1);
_jumpHeight = (Number(GameState.getInstance().getConfigOption("westleyJumpHeight")) * FireSwampConfig.ppu);
_damage = Number(GameState.getInstance().getConfigOption("westleyDamageToRous"));
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_CHANGE_SWORD_RIGHT));
}
override protected function _reactBoulderCollision(_arg1:Boulder):void{
if (_isAirborne){
return;
};
if (_isPushing){
_touchedPushThisUpdate = true;
} else {
_onPush(_arg1);
};
}
override protected function _onChangeFacing():void{
if (_facingLeft){
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_CHANGE_FACE_LEFT));
} else {
WorkinDispatcher.getInstance().dispatchEvent(new Event(EVENT_CHANGE_FACE_RIGHT));
};
}
override protected function _playAttackHitSound():void{
GlobalSound.getInstance().playSound("attackHitSword");
}
override protected function _playJumpSound():void{
var _local1:String;
_local1 = ((Math.random() < 0.5)) ? "1" : "2";
GlobalSound.getInstance().playSound(("jumpWestley" + _local1), true);
}
override protected function _playLandSound():void{
}
override public function get character():String{
return ("westley");
}
override public function chat(_arg1:String):void{
var _local2:Number;
if ((((_chatTimer > 0)) && (!((_arg1 == "success"))))){
return;
};
switch (_arg1){
case "switch":
if (Math.random() < 0.4){
_local2 = Math.ceil((Math.random() * 3));
if (_local2 == 0){
(_local2 == 1);
};
GlobalVoice.getInstance().playVO(("voWestleySwitch" + String(_local2)));
};
_setChatTimer(3);
break;
case "damage":
GlobalSound.getInstance().playSound("jumpWestley1");
_setChatTimer(0.7);
break;
case "success":
_local2 = Math.ceil((Math.random() * 6));
if (_local2 == 0){
(_local2 == 1);
};
GlobalVoice.getInstance().playVO(("voWestleySuccess" + String(_local2)));
_setChatTimer();
break;
case "kill":
GlobalVoice.getInstance().playVO("voWestleyKill");
_setChatTimer();
break;
};
}
override public function get damage():Number{
return (_damage);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs.players
Section 233
//Mobile (com.wwb.princessbride.fire_swamp.world.entitys.mobs.Mobile)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.paradise.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.surfaces.*;
public class Mobile extends RoomInhabitant {
protected var _isAirborne:Boolean;
protected var _voluntaryMaxRate:Number;
private var _shortestDistanceContender:Number;
protected var _voluntaryVelocity:WorkinPoint;
protected var _facingLeft:Boolean;
private var _pathOriginPos:WorkinPoint;
protected var _groundFrictionRate:Number;
protected var _collisions:Array;
protected var _loopb:Number;
protected var _loopc:Number;
protected var _interceptResult:InterceptResult;
protected var _airAccelRate:Number;
protected var _primaryCollision:SurfaceCollisionResult;
protected var _involuntaryVelocity:WorkinPoint;
protected var _predictedPos:WorkinPoint;
protected var _groundAccelRate:Number;
protected var _baseGroundFrictionRate:Number;
private var _lineVetoed:Boolean;
protected var _baseGroundAccelRate:Number;
protected var _isEthereal:Boolean;
protected var _baseMaxRate:Number;
protected var _predictedMotionSweeps:Array;
protected var _persistantForces:Array;
protected var _isWeightless:Boolean;
private var _touchedGroundThisUpdate:Boolean;
protected var _airFrictionRate:Number;
protected var _isEdge:Boolean;
protected var _momentaryForces:Array;
protected var _leftOverMotion:WorkinLine;
protected var _loop:Number;
protected var _baseAirAccelRate:Number;
protected var _baseAirFrictionRate:Number;
private var _shortestDistanceIndex:Number;
protected var _momentaryVoluntaryMotion:WorkinPoint;
private var _shortestDistance:Number;
public function Mobile(_arg1:Object):void{
super(_arg1);
_velocity = new WorkinPoint();
_voluntaryVelocity = new WorkinPoint();
_involuntaryVelocity = new WorkinPoint();
_momentaryVoluntaryMotion = new WorkinPoint();
_predictedMotionSweeps = [];
_momentaryForces = [];
_persistantForces = [];
_applyGravity();
_predictedPos = new WorkinPoint();
_pathOriginPos = new WorkinPoint();
_setMotionRates();
_isAirborne = true;
_isEthereal = false;
_isWeightless = false;
_facingLeft = true;
_onChangeFacing();
_setCollisionBox();
}
protected function _reactFireSurfaceCollision(_arg1:WorkinPoint):void{
}
protected function _resolveWallCollisionAftermath():void{
}
protected function _testEntityBoxCollision(_arg1:FireSwampSprite):Boolean{
var _local2:WorkinPoint;
_local2 = collisionCenter.diff(_arg1.collisionCenter);
if ((((Math.abs(_local2.x) > (collisionWidthHalf + _arg1.collisionWidthHalf))) || ((Math.abs(_local2.y) > (collisionHeightHalf + _arg1.collisionHeightHalf))))){
return (false);
};
return (true);
}
override protected function _setCollisionBox():void{
}
public function get involuntaryVelocity():WorkinPoint{
return (_involuntaryVelocity);
}
protected function _reactPoisonSurfaceCollision(_arg1:WorkinPoint):void{
}
private function _resolveSurfaceCollisionEffects(_arg1:SurfaceCollisionLine):void{
var _local2:Array;
var _local3:Number;
_local2 = _arg1.effects;
_local3 = _local2.length;
while (_local3--) {
if ((((_local2[_local3] == "ground")) || ((_local2[_local3] == "appearance")))){
} else {
if (_local2[_local3] == "fire"){
_reactFireSurfaceCollision(_arg1.center);
} else {
if (_local2[_local3] == "water"){
_reactWaterSurfaceCollision(_arg1.center);
} else {
if (_local2[_local3] == "poison"){
_reactPoisonSurfaceCollision(_arg1.center);
};
};
};
};
};
}
public function get isEthereal():Boolean{
return (_isEthereal);
}
public function get velocity():WorkinPoint{
return (_velocity);
}
protected function _applyGravity():void{
_addPersistantForce(new WorkinPoint(0, FireSwampConfig.GRAVITY_FORCE, 0));
}
public function get isWeightless():Boolean{
return (_isWeightless);
}
public function updatePosition():void{
_pos.toPoint(_predictedPos);
_pathOriginPos.toPoint(_predictedPos);
_collisionCenter = _collisionBox.getCollisionCenter(_pos);
if (_touchedGroundThisUpdate){
if (_isAirborne){
_airborneOff();
};
} else {
if (!_isAirborne){
_airborneOn();
};
};
_touchedGroundThisUpdate = false;
_momentaryForces = [];
_determineAnimation();
}
public function testAndResolveEntityCollision(_arg1:FireSwampSprite):void{
if (_arg1.entityCollisionAsSurface){
if (_testEntitySurfaceCollision(_arg1)){
_resolveEntityCollision(_arg1);
return;
};
};
if (_arg1.entityCollisionAsBox){
if (_testEntityBoxCollision(_arg1)){
_resolveEntityCollision(_arg1);
};
};
}
public function testAndResolveCombatCollision(_arg1:FireSwampSprite):void{
var _local2:WorkinPoint;
if (_arg1.doNonCombatCollisionOnly){
testAndResolveEntityCollision(_arg1);
return;
};
_local2 = collisionCenter.diff(_arg1.collisionCenter);
if ((((Math.abs(_local2.x) > (combatCollisionWidthHalf + _arg1.combatCollisionWidthHalf))) || ((Math.abs(_local2.y) > (combatCollisionHeightHalf + _arg1.combatCollisionHeightHalf))))){
return;
};
_resolveEntityCollision(_arg1);
}
protected function _onChangeFacing():void{
}
public function testAndResolveSurfaceCollision(_arg1:Surface):void{
if ((((_predictedMotionSweeps.length == 0)) || (((_isEthereal) && (!((_arg1.group == "ground"))))))){
return;
};
_loop = _arg1.collisionLines.length;
while (_loop--) {
_resolveSurfaceCollisions(_testLineCollision(_arg1.collisionLines[_loop]));
};
}
override protected function _animate(_arg1:String):void{
super._animate(_arg1);
if ((((_voluntaryVelocity.x > 0)) && (_facingLeft))){
_facingLeft = false;
_asset.scaleX = -1;
_onChangeFacing();
} else {
if ((((_voluntaryVelocity.x < 0)) && (!(_facingLeft)))){
_facingLeft = true;
_asset.scaleX = 1;
_onChangeFacing();
};
};
}
public function get predictedMotionSweeps():Array{
return (_predictedMotionSweeps);
}
private function _debugDrawSweeps():void{
var _local1:Number;
graphics.clear();
graphics.lineStyle(1, 0xCC0000);
_local1 = _predictedMotionSweeps.length;
while (_local1--) {
graphics.moveTo((_predictedMotionSweeps[_local1].line.p0.x - _pos.x), (_predictedMotionSweeps[_local1].line.p0.y - _pos.y));
graphics.lineTo((_predictedMotionSweeps[_local1].line.p1.x - _pos.x), (_predictedMotionSweeps[_local1].line.p1.y - _pos.y));
};
}
protected function _testEntitySurfaceCollision(_arg1:FireSwampSprite):Boolean{
var _local2:Boolean;
_local2 = false;
_loop = _arg1.collisionLines.length;
while (_loop--) {
if (_resolveSurfaceCollisions(_testLineCollision(_arg1.collisionLines[_loop]))){
_local2 = true;
};
};
return (_local2);
}
protected function _setMotionRates():void{
_baseMaxRate = 220;
_baseGroundAccelRate = 500;
_baseGroundFrictionRate = 300;
_baseAirAccelRate = 340;
_baseAirFrictionRate = 150;
_voluntaryMaxRate = _baseMaxRate;
_groundAccelRate = _baseGroundAccelRate;
_groundFrictionRate = _baseGroundFrictionRate;
_airAccelRate = _baseAirAccelRate;
_airFrictionRate = _baseAirFrictionRate;
}
protected function _resolveEntityCollision(_arg1:FireSwampSprite):void{
onEntityCollision(_arg1);
_arg1.onEntityCollision(this);
}
override protected function _updatePath(_arg1:Number):void{
_paths[0].update(_arg1);
if (_paths[0].hasPosition){
_predictedPos.toPoint(_paths[0].current);
};
if (_paths[0].isComplete){
_paths.splice(0, 1);
if (_paths.length == 0){
_onPathComplete();
} else {
if (_paths[0].hasPosition){
_paths[0].startToPoint(_pos);
};
};
};
}
public function updatePrediction(_arg1:Number):void{
if (isPathing){
_updatePath(_arg1);
} else {
_calculateVelocity(_arg1);
_predictedPos.to((_pos.x + (_velocity.x * _arg1)), (_pos.y + (_velocity.y * _arg1)));
if (_predictedPos.x < 0){
_predictedPos.x = 0;
};
};
_predictedMotionSweeps = _collisionBox.getCollisionLineArray(_pos, _predictedPos);
}
public function get momentaryMotion():WorkinPoint{
return (_momentaryVoluntaryMotion);
}
protected function _airborneOn():void{
_isAirborne = true;
}
protected function _clearMomentaryForces():void{
_momentaryForces = [];
}
public function get isAirborne():Boolean{
return (_isAirborne);
}
override public function get group():String{
return ("mobiles");
}
public function updateAI(_arg1:Array):void{
}
protected function _addPersistantForce(_arg1:WorkinPoint):void{
_persistantForces.push(_arg1);
}
protected function _resolveSurfaceCollisions(_arg1:Array):Boolean{
_loopb = _arg1.length;
if (_loopb == 0){
return (false);
};
if ((((_loopb == 1)) && ((_arg1[0].motionSweep.flag == "f")))){
_isEdge = true;
} else {
_isEdge = false;
};
_shortestDistance = 100000;
_shortestDistanceIndex = -1;
while (_loopb--) {
_shortestDistanceContender = _arg1[_loopb].motionSweep.line.p0.distTo(_arg1[_loopb].intercept);
if (_shortestDistanceContender < _shortestDistance){
_shortestDistance = _shortestDistanceContender;
_shortestDistanceIndex = _loopb;
};
};
_primaryCollision = _arg1[_shortestDistanceIndex];
if (((!((_primaryCollision.motionSweep.flag == "f"))) && (_primaryCollision.surfaceLine.standable))){
return (false);
};
if ((((_primaryCollision.motionSweep.flag == "f")) && (!(_primaryCollision.surfaceLine.standable)))){
if ((((_primaryCollision.surfaceLine.normal.x == 1)) && (_primaryCollision.intercept.equals(_primaryCollision.surfaceLine.p0)))){
return (false);
};
if ((((_primaryCollision.surfaceLine.normal.x == -1)) && (_primaryCollision.intercept.equals(_primaryCollision.surfaceLine.p1)))){
return (false);
};
};
_involuntaryVelocity.dampenByPoint(_involuntaryVelocity.deflectOffCopy(_primaryCollision.surfaceLine.vector));
_voluntaryVelocity.dampenByPoint(_voluntaryVelocity.deflectOffCopy(_primaryCollision.surfaceLine.vector));
_leftOverMotion = new WorkinLine(_primaryCollision.intercept.copy(), _primaryCollision.intercept.addPointCopy(_primaryCollision.intercept.diff(_primaryCollision.motionSweep.line.p1).projectOntoCopy(_primaryCollision.surfaceLine.vector)));
if ((((_primaryCollision.motionSweep.flag == "f")) && (_primaryCollision.surfaceLine.standable))){
_touchedGroundThisUpdate = true;
if (_isAirborne){
_predictedPos = _primaryCollision.intercept.subtractPointCopy(_primaryCollision.vertex.point);
} else {
_leftOverMotion.length = _momentaryVoluntaryMotion.length;
_predictedPos = _leftOverMotion.p1.subtractPointCopy(_primaryCollision.vertex.point);
};
} else {
_predictedPos = _leftOverMotion.p1.subtractPointCopy(_primaryCollision.vertex.point);
_resolveWallCollisionAftermath();
};
_pathOriginPos = _primaryCollision.surfaceLine.p0.addPointCopy(_primaryCollision.surfaceLine.p0.diff(_pos.addPointCopy(_primaryCollision.vertex.point)).projectOntoCopy(_primaryCollision.surfaceLine.vector)).subtractPointCopy(_primaryCollision.vertex.point);
_predictedMotionSweeps = _collisionBox.getCollisionLineArray(_pathOriginPos, _predictedPos);
_resolveSurfaceCollisionEffects(_primaryCollision.surfaceLine);
return (true);
}
protected function _determineAnimation():void{
}
public function get voluntaryVelocity():WorkinPoint{
return (_voluntaryVelocity);
}
public function get character():String{
return ("none");
}
protected function _airborneOff():void{
_isAirborne = false;
}
public function onPause():void{
}
protected function _reactWaterSurfaceCollision(_arg1:WorkinPoint):void{
}
protected function _testLineCollision(_arg1:SurfaceCollisionLine):Array{
if (_predictedMotionSweeps.length == 0){
return ([]);
};
if ((((_arg1.normal.y <= 0)) && ((((_pos.x < ((_arg1.p0.x - collisionWidth) - 20))) || ((_pos.x > ((_arg1.p1.x + collisionWidth) + 20))))))){
return ([]);
};
_collisions = [];
if (_predictedMotionSweeps[0].line.vector.dot(_arg1.normal) < 0){
_loopb = _predictedMotionSweeps.length;
while (_loopb--) {
if (_predictedMotionSweeps[_loopb].testExclusion(_arg1)){
} else {
_interceptResult = _predictedMotionSweeps[_loopb].line.testLineSegmentIntercept(_arg1);
if (_interceptResult.success){
_collisions.push(new SurfaceCollisionResult(_interceptResult, _collisionBox.getVertexByID(_predictedMotionSweeps[_loopb].id), _predictedMotionSweeps[_loopb], _arg1));
};
};
};
};
return (_collisions);
}
public function get isFacingLeft():Boolean{
return (_facingLeft);
}
protected function _calculateVelocity(_arg1:Number):void{
_momentaryVoluntaryMotion = _voluntaryVelocity.multiplyCopy(_arg1);
_loop = _momentaryForces.length;
while (_loop--) {
_involuntaryVelocity.addPoint(_momentaryForces[_loop]);
};
if (!_isWeightless){
_loop = _persistantForces.length;
while (_loop--) {
_involuntaryVelocity.addPoint(_persistantForces[_loop].multiplyCopy(_arg1));
};
};
_velocity.toPoint(_involuntaryVelocity.addPointCopy(_voluntaryVelocity));
}
protected function _addMomentaryForce(_arg1:WorkinPoint):void{
_momentaryForces.push(_arg1);
}
public function get predictedPos():WorkinPoint{
return (_predictedPos);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs
Section 234
//MobLibrary (com.wwb.princessbride.fire_swamp.world.entitys.mobs.MobLibrary)
package com.wwb.princessbride.fire_swamp.world.entitys.mobs {
import com.wwb.princessbride.fire_swamp.data.mobs.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.hostiles.*;
public class MobLibrary {
public static function generateNewMob(_arg1:MobData, _arg2:Number):Mobile{
switch (_arg1.type){
case "boulder":
return (new Boulder({mobData:_arg1, room:_arg2}));
case "rous":
return (new Rous({mobData:_arg1, room:_arg2}));
case "flyingrous":
return (new FlyRous({mobData:_arg1, room:_arg2}));
};
return (null);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.mobs
Section 235
//Ground (com.wwb.princessbride.fire_swamp.world.entitys.surfaces.Ground)
package com.wwb.princessbride.fire_swamp.world.entitys.surfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.paradise.*;
import flash.display.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import flash.geom.*;
import flash.utils.*;
public class Ground extends Surface {
private var _isLastRoomGround:Boolean;
public function Ground(_arg1:Object){
var _local2:GroundData;
var _local3:Number;
_local2 = _arg1.groundData;
_generator = _local2;
_drawTiles = _local2.drawTiles;
_pos = new WorkinPoint(_local2.x, 0, 0);
_isLastRoomGround = _arg1.isLast;
_local3 = _local2.y;
_appearance = _local2.appearance;
_p0 = new WorkinPoint(_pos.x, _local3);
_p1 = new WorkinPoint((_pos.x + FireSwampConfig.roomWidth), _local3);
_room = _arg1.room;
_generateSpanMap(_local2.spans);
_generateCollisionLines();
super({room:_arg1.room});
}
override protected function get _assetRegistrationPoint():String{
return ("tl");
}
override public function get group():String{
return ("ground");
}
override protected function _onGenerateAsset():void{
var _local1:BitmapData;
var _local2:BitmapData;
var _local3:BitmapData;
var _local4:Sprite;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Boolean;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
if (!_drawTiles){
return;
};
_local1 = new BitmapData(ParadiseConfig.SCREEN_WIDTH, (ParadiseConfig.SCREEN_HEIGHT + (ParadiseConfig.SCREEN_OFFSET.x * 2)), true, 0);
_local3 = new BitmapData(20, 20);
_local3.draw(new ((getDefinitionByName("debug_ground") as Class)));
_local4 = new Sprite();
_local4.graphics.beginBitmapFill(_local3.clone(), new Matrix());
_local5 = 0;
_local4.graphics.moveTo((_collisionLines[0].p0.x - _pos.x), ParadiseConfig.SCREEN_BOTTOM);
while (_local5 < _collisionLines.length) {
if ((((_collisionLines[_local5].p0.y == FireSwampConfig.roomBottom)) || ((_collisionLines[_local5].p1.y == FireSwampConfig.roomBottom)))){
_local5++;
} else {
_local4.graphics.lineTo((_collisionLines[_local5].p0.x - _pos.x), _collisionLines[_local5].p0.y);
_local4.graphics.lineTo((_collisionLines[_local5].p1.x - _pos.x), _collisionLines[_local5].p1.y);
_local5++;
};
};
_local4.graphics.lineTo((_collisionLines[(_collisionLines.length - 1)].p1.x - _pos.x), ParadiseConfig.SCREEN_BOTTOM);
_local4.graphics.lineTo((_collisionLines[0].p0.x - _pos.x), ParadiseConfig.SCREEN_BOTTOM);
_local4.graphics.lineTo((_collisionLines[0].p0.x - _pos.x), _collisionLines[0].p0.y);
_local4.graphics.endFill();
_local1.draw(_local4);
_loop = _collisionLines.length;
while (_loop--) {
if (_collisionLines[_loop].p0.y != _collisionLines[_loop].p1.y){
} else {
_local6 = (_collisionLines[_loop].p0.x - _pos.x);
_local7 = _collisionLines[_loop].p0.y;
if (_loop > 0){
_local12 = ((_collisionLines[(_loop - 1)].centerY < _local7)) ? -1 : ((_collisionLines[(_loop - 1)].centerY > _local7)) ? 1 : 0;
} else {
_local12 = 1;
};
if (_loop < (_collisionLines.length - 1)){
_local13 = ((_collisionLines[(_loop + 1)].centerY < _local7)) ? -1 : ((_collisionLines[(_loop + 1)].centerY > _local7)) ? 1 : 0;
} else {
_local13 = 1;
};
if (_local13 == 0){
_local14 = 0;
} else {
_local14 = _local3.width;
};
_local15 = _local3.height;
if (_local12 != 0){
_local2 = _local3;
_local1.copyPixels(_local2, new Rectangle(0, 0, _local2.width, _local2.height), new Point((_collisionLines[_loop].p0.x - _pos.x), (_local7 - (_local2.height - _local15))));
_local6 = (_local6 + _local2.width);
};
_local2 = _local3;
_local8 = _local2.width;
_local9 = _local2.height;
_local11 = true;
while (_local11) {
_local10 = ((_collisionLines[_loop].p1.x - _pos.x) - _local6);
if (_local10 > _local8){
_local10 = _local8;
};
_local1.copyPixels(_local2, new Rectangle(0, 0, _local10, _local9), new Point(_local6, _local7));
_local6 = (_local6 + _local10);
if (_local6 >= ((_collisionLines[_loop].p1.x - _pos.x) - _local14)){
_local11 = false;
};
};
if (_local13 != 0){
_local2 = _local3;
_local1.copyPixels(_local2, new Rectangle(0, 0, _local2.width, _local2.height), new Point(((_collisionLines[_loop].p1.x - _local2.width) - _pos.x), (_local7 - (_local2.height - _local15))));
};
};
};
_asset.addChild(new Bitmap(_local1));
_asset.cacheAsBitmap = true;
}
override protected function _generateCollisionLines():void{
super._generateCollisionLines();
if (_isLastRoomGround){
_addCollisionLine(new WorkinPoint((_pos.x + FireSwampConfig.roomWidth), FireSwampConfig.roomBottom), new WorkinPoint((_pos.x + FireSwampConfig.roomWidth), ParadiseConfig.SCREEN_TOP), []);
};
if (_room == 1){
_addCollisionLine(new WorkinPoint(0, ParadiseConfig.SCREEN_TOP, 0), new WorkinPoint(0, FireSwampConfig.roomBottom, 0), []);
};
_addCollisionLine(new WorkinPoint(_pos.x, FireSwampConfig.roomBottom), new WorkinPoint(_pos.x, _p0.y), []);
_addCollisionLine(new WorkinPoint(_p1.x, _p1.y), new WorkinPoint(_p1.x, FireSwampConfig.roomBottom), []);
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.surfaces
Section 236
//Platform (com.wwb.princessbride.fire_swamp.world.entitys.surfaces.Platform)
package com.wwb.princessbride.fire_swamp.world.entitys.surfaces {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.paradise.*;
import flash.display.*;
import com.wwb.princessbride.fire_swamp.data.surfaces.*;
import com.workinman.paradise.math.*;
import flash.geom.*;
import flash.utils.*;
public class Platform extends Surface {
private var _width:Number;
private var _bottomCollision:Boolean;
private var _bitmapAsset:Bitmap;
private var _id:String;
public function Platform(_arg1:Object){
var _local2:PlatformData;
_local2 = _arg1.platformData;
_generator = _local2;
_drawTiles = _local2.drawTiles;
_pos = new WorkinPoint(_local2.x, _local2.y, 0);
_width = _local2.width;
_id = _local2.id;
_bottomCollision = _local2.bottomCollision;
_appearance = _local2.appearance;
_p0 = new WorkinPoint(_pos.x, _pos.y);
_p1 = new WorkinPoint((_pos.x + _width), _pos.y);
_generateSpanMap(_local2.spans);
_generateCollisionLines();
super({room:_arg1.room});
}
override protected function get _assetRegistrationPoint():String{
return ("tl");
}
override public function get group():String{
return ("platforms");
}
override protected function _onGenerateAsset():void{
var _local1:BitmapData;
var _local2:BitmapData;
var _local3:BitmapData;
var _local4:Sprite;
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:Boolean;
var _local16:Number;
var _local17:Number;
var _local18:Number;
if (!_drawTiles){
return;
};
_local1 = new BitmapData(ParadiseConfig.SCREEN_WIDTH, (ParadiseConfig.SCREEN_HEIGHT + (ParadiseConfig.SCREEN_OFFSET.x * 2)), true, 0);
_local3 = new BitmapData(20, 20);
_local3.draw(new ((getDefinitionByName("debug_ground") as Class)));
_local4 = new Sprite();
_local5 = 0;
_local6 = 10000;
_local5 = _collisionLines.length;
while (_local5--) {
if ((_collisionLines[_local5].p0.x - _pos.x) < _local6){
_local6 = (_collisionLines[_local5].p0.x - _pos.x);
};
if ((_collisionLines[_local5].p1.x - _pos.x) < _local6){
_local6 = (_collisionLines[_local5].p1.x - _pos.x);
};
};
_local7 = _local6;
_local6 = -10000;
_local5 = _collisionLines.length;
while (_local5--) {
if ((_collisionLines[_local5].p0.x - _pos.x) > _local6){
_local6 = (_collisionLines[_local5].p0.x - _pos.x);
};
if ((_collisionLines[_local5].p1.x - _pos.x) > _local6){
_local6 = (_collisionLines[_local5].p1.x - _pos.x);
};
};
_local8 = _local6;
_local9 = (_bottomCollision) ? 0 : _local3.height;
_local9 = (_bottomCollision) ? 0 : _local3.height;
_local4.graphics.beginBitmapFill(_local3.clone(), new Matrix());
_local5 = 0;
_local4.graphics.moveTo((_collisionLines[0].p0.x - _pos.x), (_collisionLines[0].p0.y + _local9));
while (_local5 < _collisionLines.length) {
_local4.graphics.lineTo((_collisionLines[_local5].p0.x - _pos.x), (_collisionLines[_local5].p0.y + _local9));
_local4.graphics.lineTo((_collisionLines[_local5].p1.x - _pos.x), (_collisionLines[_local5].p1.y + _local9));
_local5++;
};
_local4.graphics.lineTo((_collisionLines[0].p0.x - _pos.x), (_collisionLines[0].p0.y + _local9));
_local4.graphics.endFill();
_local1.draw(_local4);
_loop = _collisionLines.length;
while (_loop--) {
if (((!((_collisionLines[_loop].p0.y == _collisionLines[_loop].p1.y))) || ((_collisionLines[_loop].p0.x > _collisionLines[_loop].p1.x)))){
} else {
_local10 = (_collisionLines[_loop].p0.x - _pos.x);
_local11 = _collisionLines[_loop].p0.y;
if (_loop > 0){
_local16 = ((_collisionLines[(_loop - 1)].centerY < _local11)) ? -1 : ((_collisionLines[(_loop - 1)].centerY > _local11)) ? 1 : 0;
} else {
_local16 = 1;
};
if (_loop < (_collisionLines.length - 1)){
_local17 = ((_collisionLines[(_loop + 1)].centerY < _local11)) ? -1 : ((_collisionLines[(_loop + 1)].centerY > _local11)) ? 1 : 0;
} else {
_local17 = 1;
};
_local18 = _local3.width;
_local9 = _local3.height;
_local2 = _local3;
_local1.copyPixels(_local2, new Rectangle(0, 0, _local2.width, _local2.height), new Point((_collisionLines[_loop].p0.x - _pos.x), (_local11 - (_local2.height - _local9))));
_local10 = (_local10 + _local2.width);
_local2 = _local3;
_local12 = _local2.width;
_local13 = _local2.height;
_local15 = true;
while (_local15) {
_local14 = ((_collisionLines[_loop].p1.x - _local10) - _pos.x);
if (_local14 > _local12){
_local14 = _local12;
};
_local1.copyPixels(_local2, new Rectangle(0, 0, _local14, _local13), new Point(_local10, _local11));
_local10 = (_local10 + _local14);
if (_local10 >= ((_collisionLines[_loop].p1.x - _local18) - _pos.x)){
_local15 = false;
};
};
_local2 = _local3;
_local1.copyPixels(_local2, new Rectangle(0, 0, _local2.width, _local2.height), new Point(((_collisionLines[_loop].p1.x - _local2.width) - _pos.x), _local11));
};
};
_local10 = _local7;
_local11 = (_collisionLines[0].p0.y + _local3.height);
_local18 = _local3.width;
_local9 = _local3.height;
_local2 = _local3;
_local1.copyPixels(_local2, new Rectangle(0, 0, _local2.width, _local2.height), new Point((_collisionLines[0].p0.x - _pos.x), _local11));
_local10 = (_local10 + _local2.width);
_local2 = _local3;
_local12 = _local2.width;
_local13 = _local2.height;
_local15 = true;
while (_local15) {
_local14 = (_local8 - _local10);
if (_local14 > _local12){
_local14 = _local12;
};
_local1.copyPixels(_local2, new Rectangle(0, 0, _local14, _local13), new Point(_local10, _local11));
_local10 = (_local10 + _local14);
if (_local10 >= (_local8 - _local18)){
_local15 = false;
};
};
_local2 = _local3;
_local1.copyPixels(_local2, new Rectangle(0, 0, _local2.width, _local2.height), new Point((_local8 - _local2.width), _local11));
_bitmapAsset = new Bitmap(_local1);
_bitmapAsset.y = -(_pos.y);
_asset.addChild(_bitmapAsset);
_asset.cacheAsBitmap = true;
}
override public function cleanUp():void{
try {
_bitmapAsset.bitmapData.dispose();
} catch(pError:Error) {
};
super.cleanUp();
}
override protected function _generateCollisionLines():void{
super._generateCollisionLines();
}
public function get id():String{
return (_id);
}
private function _getPlatformTileID(_arg1:SurfaceCollisionLine, _arg2:Number=1, _arg3:Boolean=false, _arg4:Boolean=false):String{
if (_arg1.p0.y == _pos.y){
return (((_arg2 < 0)) ? (_arg3) ? (_arg4) ? FireSwampConfig.TILEID_PLATFORM_BOOKEND_LEFT_UP : FireSwampConfig.TILEID_PLATFORM_BOOKEND_RIGHT_UP : FireSwampConfig.TILEID_PLATFORM : ((_arg2 > 0)) ? (_arg3) ? (_arg4) ? FireSwampConfig.TILEID_PLATFORM_BOOKEND_LEFT_DOWN : FireSwampConfig.TILEID_PLATFORM_BOOKEND_RIGHT_DOWN : FireSwampConfig.TILEID_PLATFORM : FireSwampConfig.TILEID_PLATFORM);
//unresolved jump
};
return (((_arg2 < 0)) ? (_arg3) ? (_arg4) ? FireSwampConfig.TILEID_GROUND_BOOKEND_LEFT_UP : FireSwampConfig.TILEID_GROUND_BOOKEND_RIGHT_UP : FireSwampConfig.TILEID_GROUND : ((_arg2 > 0)) ? (_arg3) ? (_arg4) ? FireSwampConfig.TILEID_GROUND_BOOKEND_LEFT_DOWN : FireSwampConfig.TILEID_GROUND_BOOKEND_RIGHT_DOWN : FireSwampConfig.TILEID_GROUND : FireSwampConfig.TILEID_GROUND);
}
override protected function _debugDrawCollisionLines():void{
var _local1:Number;
_asset.graphics.clear();
_asset.graphics.lineStyle(1, 0);
_local1 = _collisionLines.length;
while (_local1--) {
_asset.graphics.moveTo((_collisionLines[_local1].p0.x - _pos.x), (_collisionLines[_local1].p0.y - _pos.y));
_asset.graphics.lineTo((_collisionLines[_local1].p1.x - _pos.x), (_collisionLines[_local1].p1.y - _pos.y));
};
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.surfaces
Section 237
//Surface (com.wwb.princessbride.fire_swamp.world.entitys.surfaces.Surface)
package com.wwb.princessbride.fire_swamp.world.entitys.surfaces {
import com.workinman.lib.math.*;
import com.workinman.paradise.math.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.*;
public class Surface extends RoomInhabitant {
protected var _appearance:String;
protected var _p0:WorkinPoint;
protected var _p1:WorkinPoint;
protected var _spanEffects:Array;
protected var _spanmap:Array;
protected var _drawTiles:Boolean;
protected var _loopb:Number;
protected var _loopc:Number;
protected var _loop:Number;
public function Surface(_arg1:Object){
super(_arg1);
}
protected function _generateSpanMap(_arg1:Array):void{
var _local2:Array;
var _local3:Number;
var _local4:Array;
var _local5:Array;
var _local6:Array;
var _local7:Number;
_local2 = [];
_local3 = _arg1.length;
while (_local3--) {
_local2.push({x:_arg1[_local3].begin, flag:"start", type:_arg1[_local3].type, span:_arg1[_local3], id:_local3});
_local2.push({x:_arg1[_local3].end, flag:"stop", type:_arg1[_local3].type, span:_arg1[_local3], id:_local3});
};
_local2.sortOn("x", Array.NUMERIC);
_local4 = [];
_local5 = [];
_local3 = 0;
while (_local3 < _local2.length) {
if (_local2[_local3].flag == "start"){
_local5.push({span:_local2[_local3].span, id:_local2[_local3].id});
} else {
if (_local2[_local3].flag == "stop"){
_local7 = _local5.length;
while (_local7--) {
if (_local5[_local7].id == _local2[_local3].id){
_local5.splice(_local7, 1);
};
};
};
};
if ((((_local3 < (_local2.length - 1))) && ((_local2[(_local3 + 1)].x == _local2[_local3].x)))){
_local3++;
} else {
_local6 = [];
_local7 = _local5.length;
while (_local7--) {
_local6.push(_local5[_local7].span);
};
_local4.push({x:_local2[_local3].x, effects:_local6});
_local3++;
};
};
_spanmap = [];
_local3 = _local4.length;
while (_local3--) {
if (_local3 < (_local4.length - 1)){
_spanmap.push(new Span({start:_local4[_local3].x, end:(_local4[_local3].x + (_local4[(_local3 + 1)].x - _local4[_local3].x)), isCap:false, effects:_local4[_local3].effects}));
} else {
_spanmap.push(new Span({start:_local4[_local3].x, end:1000, isCap:true, effects:_local4[_local3].effects}));
};
};
}
public function get spanEffects():Array{
return (_spanEffects);
}
override public function get doDepthRender():Boolean{
return (true);
}
public function get sortY():Number{
var _local1:Number;
var _local2:Number;
_local1 = 1000;
_local2 = _collisionLines.length;
while (_local2--) {
if (_collisionLines[_local2].p0.y < _local1){
_local1 = _collisionLines[_local2].p0.y;
};
if (_collisionLines[_local2].p1.y < _local1){
_local1 = _collisionLines[_local2].p1.y;
};
};
return (_local1);
}
override protected function _generateCollisionLines():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Array;
var _local6:String;
var _local7:Number;
var _local8:Number;
_spanEffects = [];
if (_spanmap.length == 0){
_addCollisionLine(_p0, _p1, []);
return;
};
_local1 = _p0.x;
_local2 = _p1.y;
_local3 = _local2;
_local4 = 0;
_addCollisionLine(new WorkinPoint(_local1, _local2), new WorkinPoint((_local1 + _spanmap[(_spanmap.length - 1)].start), _local2), []);
_local7 = _spanmap.length;
while (_local7--) {
_local6 = _appearance;
_local5 = [];
_local4 = _local2;
_local8 = _spanmap[_local7].effects.length;
while (_local8--) {
switch (_spanmap[_local7].effects[_local8].type){
case "ground":
if ((((_spanmap[_local7].effects[_local8].height > 0)) && (((_local2 - _spanmap[_local7].effects[_local8].height) > _local4)))){
break;
};
if ((((_spanmap[_local7].effects[_local8].height < 0)) && (((_local2 - _spanmap[_local7].effects[_local8].height) < _local4)))){
break;
};
_local4 = (_local2 - _spanmap[_local7].effects[_local8].height);
break;
case "appearance":
_local6 = _spanmap[_local7].effects[_local8].appearance;
break;
default:
_local5.push(_spanmap[_local7].effects[_local8].type);
break;
};
};
if ((_local1 + _spanmap[_local7].start) > _p1.x){
_spanmap[_local7].start = _p1.x;
};
if ((_local1 + _spanmap[_local7].end) > _p1.x){
_spanmap[_local7].end = _p1.x;
};
if (_spanmap[_local7].isCap){
if (_local4 != _local3){
_addCollisionLine(new WorkinPoint((_local1 + _spanmap[_local7].start), _local3), new WorkinPoint((_local1 + _spanmap[_local7].start), _local4), [], _local6);
_local3 = _local4;
};
_addCollisionLine(new WorkinPoint((_local1 + _spanmap[_local7].start), _local3), new WorkinPoint(_p1.x, _local3), _local5, _local6);
} else {
if (_local4 != _local3){
_addCollisionLine(new WorkinPoint((_local1 + _spanmap[_local7].start), _local3), new WorkinPoint((_local1 + _spanmap[_local7].start), _local4), [], _local6);
_local3 = _local4;
};
_addCollisionLine(new WorkinPoint((_local1 + _spanmap[_local7].start), _local3), new WorkinPoint((_local1 + _spanmap[_local7].end), _local3), _local5, _local6);
};
};
_loop = _collisionLines.length;
while (_loop--) {
_local7 = _collisionLines[_loop].effects.length;
while (_local7--) {
if ((((((_collisionLines[_loop].effects[_local7] == "water")) || ((_collisionLines[_loop].effects[_local7] == "fire")))) || ((_collisionLines[_loop].effects[_local7] == "poison")))){
_spanEffects.push({effect:_collisionLines[_loop].effects[_local7], start:_collisionLines[_loop].p0, end:_collisionLines[_loop].p1});
};
};
};
}
protected function _addCollisionLine(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:Array, _arg4:String=""):void{
if (_collisionLines == null){
_collisionLines = [];
};
if (_arg4 == ""){
_arg4 = _appearance;
};
if ((((_arg1.x == _arg2.x)) && ((_arg1.y == _arg2.y)))){
return;
};
_collisionLines.push(new SurfaceCollisionLine(_arg1, _arg2, _arg3, _arg4));
}
override protected function _updateDepth():void{
_depth = _pos.y;
}
protected function _debugDrawCollisionLines():void{
var _local1:Number;
_asset.graphics.clear();
_asset.graphics.lineStyle(1, 0);
_local1 = _collisionLines.length;
while (_local1--) {
_asset.graphics.moveTo((_collisionLines[_local1].p0.x - _pos.x), _collisionLines[_local1].p0.y);
_asset.graphics.lineTo((_collisionLines[_local1].p1.x - _pos.x), _collisionLines[_local1].p1.y);
};
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys.surfaces
Section 238
//Arrow (com.wwb.princessbride.fire_swamp.world.entitys.Arrow)
package com.wwb.princessbride.fire_swamp.world.entitys {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.paradise.*;
import com.workinman.paradise.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.assets.*;
public class Arrow extends ParaSprite {
private var _screenOffsetX:Number;
private var _screenOffsetY:Number;
private var _angle:Number;
public function Arrow(_arg1:Object):void{
_arg1.asset = ArrowAsset;
_screenOffsetX = ParadiseConfig.SCREEN_OFFSET.x;
_screenOffsetY = ParadiseConfig.SCREEN_OFFSET.y;
super(_arg1);
_animate("idle");
}
override public function get group():String{
return ("arrow");
}
public function updateArrow(_arg1:Player, _arg2:Number):void{
_pos.toPoint(GameEngine.getInstance().mousePoint.addCopy(FireSwampConfig.roomToPixels(_arg1.room), 0, 0));
_pos.subtract(_screenOffsetX, _screenOffsetY, 0);
if (_arg1.isAiming){
_animate("target");
return;
};
_animate("idle");
}
public function show():void{
visible = true;
}
public function hide():void{
visible = false;
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys
Section 239
//Background (com.wwb.princessbride.fire_swamp.world.entitys.Background)
package com.wwb.princessbride.fire_swamp.world.entitys {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.paradise.*;
import flash.display.*;
import com.workinman.paradise.world.camera.*;
import flash.geom.*;
public class Background extends FireSwampSprite {
private var _FAR_MULTIPLIER:Number;// = 0.35
private var _far:BackgroundLayer;
private var _zeroPoint:Point;
private var _horizon:BackgroundLayer;
private var _screenHeight:Number;
private var _lastCameraX:Number;
private var _effect:BackgroundLayer;
private var _isCleaned:Boolean;
private var _bgSet:String;
private var _renderContainer:MovieClip;
private var _screenWidth:Number;
private var _near:BackgroundLayer;
private var _screenCenter:WorkinPoint;
private var _NEAR_MULTIPLIER:Number;// = 1
public function Background(_arg1:String){
_NEAR_MULTIPLIER = 1;
_FAR_MULTIPLIER = 0.35;
_zeroPoint = new Point(0, 0);
_screenCenter = ParadiseConfig.SCREEN_CENTER;
_screenWidth = ParadiseConfig.SCREEN_WIDTH;
_screenHeight = ParadiseConfig.SCREEN_HEIGHT;
_isCleaned = false;
_bgSet = _arg1;
_near = new BackgroundLayer("near", _NEAR_MULTIPLIER);
_addBackgroundTiles(_near, "near");
_effect = new BackgroundLayer("effect", _NEAR_MULTIPLIER);
_addBackgroundTiles(_effect, "effect");
_far = new BackgroundLayer("far", _FAR_MULTIPLIER);
_addBackgroundTiles(_far, "far");
_horizon = new BackgroundLayer("horizon", 0);
_horizon.cacheAsBitmap = true;
_addBackgroundTiles(_horizon, "horizon");
_horizon.drawAtZero();
_lastCameraX = -100000;
_renderContainer = new MovieClip();
_renderContainer.addChild(_horizon);
_renderContainer.addChild(_far);
_renderContainer.addChild(_effect);
_renderContainer.addChild(_near);
if (((!((GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_BACKGROUND) == "false"))) && (!((GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_TILES) == "true"))))){
addChild(_renderContainer);
};
super({});
}
override protected function get _assetRegistrationPoint():String{
return ("bc");
}
override public function get group():String{
return ("background");
}
private function _addBackgroundTiles(_arg1:BackgroundLayer, _arg2:String):void{
var _local3:Number;
var _local4:Number;
_local3 = GameEngine.getInstance().backgroundManager.getBackgroundCountByID(_bgSet, _arg2);
_local4 = 0;
while (_local4 < _local3) {
_arg1.addTile(GameEngine.getInstance().backgroundManager.getBackgroundByID(_bgSet, _arg2, _local4));
_local4++;
};
}
override public function cleanUp():void{
if (((!((GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_BACKGROUND) == "false"))) && (!((GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_TILES) == "true"))))){
removeChild(_renderContainer);
};
_renderContainer.removeChild(_horizon);
_renderContainer.removeChild(_far);
_renderContainer.removeChild(_effect);
_renderContainer.removeChild(_near);
_renderContainer = null;
_isCleaned = true;
_near.cleanUp();
_effect.cleanUp();
_far.cleanUp();
_horizon.cleanUp();
super.cleanUp();
_near = null;
_far = null;
_effect = null;
_horizon = null;
}
override protected function _renderPosition(_arg1:BaseCamera):void{
if (_isCleaned){
return;
};
if (_arg1.x == _lastCameraX){
return;
};
_near.update(_arg1);
_effect.update(_arg1);
_far.update(_arg1);
_horizon.update(_arg1);
_lastCameraX = _arg1.x;
}
override public function get type():String{
return ("background");
}
override protected function _renderVisibility(_arg1:BaseCamera):void{
if (_isCleaned){
return;
};
_isOnscreen = true;
if (!_mcVisible){
_draw();
};
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys
Section 240
//BackgroundLayer (com.wwb.princessbride.fire_swamp.world.entitys.BackgroundLayer)
package com.wwb.princessbride.fire_swamp.world.entitys {
import com.workinman.lib.math.*;
import com.workinman.paradise.*;
import flash.display.*;
import com.wwb.princessbride.fire_swamp.data.*;
import com.workinman.paradise.world.camera.*;
import flash.geom.*;
public class BackgroundLayer extends MovieClip {
private var _cameraRatio:Number;
private var _zeroPoint:Point;
private var _removeUnused:Boolean;
private var _loop:Number;
private var _screenWidth:Number;
private var _tiles:Array;
private var _screenHeight:Number;
private var _relativeX:Number;
private var _set:String;
private var _screenWidthHalf:Number;
private var _screenCenter:WorkinPoint;
public function BackgroundLayer(_arg1:String, _arg2:Number){
_tiles = [];
_set = _arg1;
_removeUnused = true;
_zeroPoint = new Point(0, 0);
_screenCenter = ParadiseConfig.SCREEN_CENTER;
_screenWidth = ParadiseConfig.SCREEN_WIDTH;
_screenHeight = ParadiseConfig.SCREEN_HEIGHT;
_screenWidthHalf = (_screenWidth / 2);
_cameraRatio = _arg2;
}
public function update(_arg1:BaseCamera):void{
var _local2:Number;
var _local3:Number;
if (_cameraRatio == 0){
return;
};
_local2 = (((_arg1.x * _cameraRatio) - _screenWidthHalf) / _screenWidth);
_local2 = Math.floor(Math.abs(_local2));
if (_local2 > (_tiles.length - 1)){
(_local2 % (_tiles.length - 1));
_local2--;
};
if (_local2 > (_tiles.length - 1)){
_local2 = (_tiles.length - 1);
};
if (!_tiles[_local2].isDrawn){
addChild(_tiles[_local2]);
_tiles[_local2].onDrawn();
_removeUnused = true;
};
_tiles[_local2].x = _calculateRelativeX(_arg1.x, _cameraRatio);
_local3 = _local2;
if ((_local2 + 1) > (_tiles.length - 1)){
_local2 = 0;
} else {
_local2++;
};
if (!_tiles[_local2].isDrawn){
addChild(_tiles[_local2]);
_tiles[_local2].onDrawn();
_removeUnused = true;
};
_tiles[_local2].x = (_calculateRelativeX(_arg1.x, _cameraRatio) + _screenWidth);
if (_removeUnused){
_loop = _tiles.length;
while (_loop--) {
if (((((!((_loop == _local3))) && (!((_loop == _local2))))) && (_tiles[_loop].isDrawn))){
_tiles[_loop].onErased();
removeChild(_tiles[_loop]);
};
};
_removeUnused = false;
};
_loop = _tiles.length;
}
public function cleanUp():void{
_loop = _tiles.length;
while (_loop--) {
if (_tiles[_loop].isDrawn){
removeChild(_tiles[_loop]);
};
_tiles[_loop].cleanUp();
delete _tiles[_loop];
};
_tiles = null;
}
private function _calculateRelativeX(_arg1:Number, _arg2:Number):Number{
_relativeX = (_arg1 - _screenWidthHalf);
return ((-((_relativeX - (Math.floor((_relativeX / _screenWidth)) * _screenWidth))) * _arg2));
}
public function drawAtZero():void{
addChild(_tiles[0]);
_tiles[0].onDrawn();
}
public function addTile(_arg1:BackgroundData):void{
_tiles.push(new BackgroundTile(_arg1));
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys
Section 241
//BackgroundTile (com.wwb.princessbride.fire_swamp.world.entitys.BackgroundTile)
package com.wwb.princessbride.fire_swamp.world.entitys {
import flash.events.*;
import flash.display.*;
import com.wwb.princessbride.fire_swamp.data.*;
public class BackgroundTile extends Sprite {
private var _isOnscreen:Boolean;
private var _isDrawn:Boolean;
private var _data:BackgroundData;
private var _asset:DisplayObject;
public function BackgroundTile(_arg1:BackgroundData){
_data = _arg1;
addChild(_data.asset);
_isOnscreen = false;
_isDrawn = false;
}
public function onDrawn():void{
_isDrawn = true;
}
public function onOnscreen():void{
_isOnscreen = true;
}
private function _onAssetErased(_arg1:Event):void{
if (!_isDrawn){
return;
};
_isDrawn = false;
}
public function onErased():void{
_isDrawn = false;
}
override public function toString():String{
return (("[Background Tile] " + _asset));
}
public function get isOnscreen():Boolean{
return (_isOnscreen);
}
public function onOffscreen():void{
_isOnscreen = false;
}
public function get isDrawn():Boolean{
return (_isDrawn);
}
private function _onAssetDrawn(_arg1:Event):void{
if (_isDrawn){
return;
};
_isDrawn = true;
}
public function cleanUp():void{
removeChild(_data.asset);
_asset = null;
_data = null;
_isDrawn = false;
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys
Section 242
//FireSwampSprite (com.wwb.princessbride.fire_swamp.world.entitys.FireSwampSprite)
package com.wwb.princessbride.fire_swamp.world.entitys {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.paradise.world.camera.*;
import com.workinman.paradise.math.*;
import com.workinman.paradise.world.entitys.*;
public class FireSwampSprite extends ParaSprite {
protected var _collisionCenter:WorkinPoint;
protected var _hdBoxHeightHalf:Number;
protected var _hdBoxWidthHalf:Number;
protected var _collisionLines:Array;
protected var _collisionBox:CollisionBox;
protected var _generator:IEntityData;
protected var _hdBoxWidth:Number;
protected var _hdBoxHeight:Number;
protected var _doDelete:Boolean;
protected var _doDegenerate:Boolean;
public function FireSwampSprite(_arg1:Object){
super(_arg1);
_doDelete = false;
_doDegenerate = false;
}
protected function _debugDrawBox(_arg1:Boolean=true):void{
if (_arg1){
graphics.clear();
};
graphics.lineStyle(1, 0xCC00);
graphics.moveTo(_collisionBox.getVertexByID(0).point.x, _collisionBox.getVertexByID(0).point.y);
graphics.lineTo(_collisionBox.getVertexByID(1).point.x, _collisionBox.getVertexByID(1).point.y);
graphics.lineTo(_collisionBox.getVertexByID(3).point.x, _collisionBox.getVertexByID(3).point.y);
graphics.lineTo(_collisionBox.getVertexByID(4).point.x, _collisionBox.getVertexByID(4).point.y);
graphics.lineTo(_collisionBox.getVertexByID(0).point.x, _collisionBox.getVertexByID(0).point.y);
}
public function get combatCollisionWidthHalf():Number{
return (_hdBoxWidthHalf);
}
public function get collisionCenter():WorkinPoint{
return (_collisionCenter);
}
public function get collisionWidthHalf():Number{
return (_hdBoxWidthHalf);
}
public function get doDelete():Boolean{
return (_doDelete);
}
protected function _generateCollisionBox():void{
_collisionBox = new CollisionBox(collisionWidth, collisionHeight, _displayCenter);
_collisionCenter = _collisionBox.getCollisionCenter(_pos);
}
public function get entityCollisionAsSurface():Boolean{
return (false);
}
protected function _setCollisionBox():void{
collisionWidth = _hdBoxWidth;
collisionHeight = _hdBoxHeight;
}
public function onEntityCollision(_arg1:FireSwampSprite):void{
}
public function get collisionHeightHalf():Number{
return (_hdBoxHeightHalf);
}
protected function _generateCollisionLines():void{
_collisionLines = [];
_collisionLines.push(new SurfaceCollisionLine(_pos.addPointCopy(_collisionBox.getVertexByID(0).point), _pos.addPointCopy(_collisionBox.getVertexByID(1).point), [], ""));
_collisionLines.push(new SurfaceCollisionLine(_pos.addPointCopy(_collisionBox.getVertexByID(1).point), _pos.addPointCopy(_collisionBox.getVertexByID(3).point), [], ""));
_collisionLines.push(new SurfaceCollisionLine(_pos.addPointCopy(_collisionBox.getVertexByID(3).point), _pos.addPointCopy(_collisionBox.getVertexByID(4).point), [], ""));
_collisionLines.push(new SurfaceCollisionLine(_pos.addPointCopy(_collisionBox.getVertexByID(4).point), _pos.addPointCopy(_collisionBox.getVertexByID(0).point), [], ""));
}
public function get collisionLines():Array{
return (_collisionLines);
}
public function get entityCollisionAsBox():Boolean{
return (true);
}
public function degenerate():void{
cleanUp();
_generator.reconstruct(this);
_doDelete = true;
_doDegenerate = false;
}
public function get collisionHeight():Number{
return (_hdBoxHeight);
}
public function get doComplexCollision():Boolean{
return (false);
}
public function get collisionBox():CollisionBox{
return (_collisionBox);
}
public function get type():String{
return ("generic");
}
override public function onErased():void{
super.onErased();
if (_doDegenerate){
degenerate();
};
}
public function get combatCollisionHeightHalf():Number{
return (_hdBoxHeightHalf);
}
public function set collisionWidth(_arg1:Number):void{
_hdBoxWidth = _arg1;
_hdBoxWidthHalf = (_arg1 / 2);
_generateCollisionBox();
}
public function get pushable():Boolean{
return (false);
}
public function get damage():Number{
return (100);
}
override protected function _renderVisibility(_arg1:BaseCamera):void{
if (_doDelete){
_isOnscreen = false;
} else {
_isOnscreen = _arg1.isOnscreen(this);
};
if (((_isOnscreen) && (!(_mcVisible)))){
_draw();
} else {
if (((!(_isOnscreen)) && (_mcVisible))){
_erase();
};
};
}
public function get collisionWidth():Number{
return (_hdBoxWidth);
}
public function get doNonCombatCollisionOnly():Boolean{
return (false);
}
public function get isAlive():Boolean{
return (true);
}
public function degenerateAfterErase():void{
if (_mcVisible){
_doDegenerate = true;
} else {
degenerate();
};
}
public function set collisionHeight(_arg1:Number):void{
_hdBoxHeight = _arg1;
_hdBoxHeightHalf = (_arg1 / 2);
_generateCollisionBox();
}
public function destroy():void{
cleanUp();
_doDelete = true;
_doDegenerate = false;
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys
Section 243
//Foreground (com.wwb.princessbride.fire_swamp.world.entitys.Foreground)
package com.wwb.princessbride.fire_swamp.world.entitys {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import com.workinman.paradise.*;
import flash.display.*;
import com.workinman.paradise.world.camera.*;
import flash.geom.*;
public class Foreground extends FireSwampSprite {
private var _zeroPoint:Point;
private var _screenHeight:Number;
private var _lastCameraX:Number;
private var _bgSet:String;
private var _renderContainer:MovieClip;
private var _screenWidth:Number;
private var _fore:BackgroundLayer;
private var _screenCenter:WorkinPoint;
private var _NEAR_MULTIPLIER:Number;// = 1
public function Foreground(_arg1:String){
_NEAR_MULTIPLIER = 1;
_zeroPoint = new Point(0, 0);
_screenCenter = ParadiseConfig.SCREEN_CENTER;
_screenWidth = ParadiseConfig.SCREEN_WIDTH;
_screenHeight = ParadiseConfig.SCREEN_HEIGHT;
_bgSet = _arg1;
_fore = new BackgroundLayer("fore", _NEAR_MULTIPLIER);
_addBackgroundTiles(_fore, "fore");
_lastCameraX = -100000;
_renderContainer = new MovieClip();
_renderContainer.addChild(_fore);
if (((!((GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_BACKGROUND) == "false"))) && (!((GameEngine.getInstance().getFlag(FireSwampConfig.FLAG_SHOW_TILES) == "true"))))){
addChild(_renderContainer);
};
super({});
}
override protected function get _assetRegistrationPoint():String{
return ("tc");
}
override public function get group():String{
return ("foreground");
}
private function _addBackgroundTiles(_arg1:BackgroundLayer, _arg2:String):void{
var _local3:Number;
var _local4:Number;
_local3 = GameEngine.getInstance().backgroundManager.getBackgroundCountByID(_bgSet, _arg2);
_local4 = 0;
while (_local4 < _local3) {
_arg1.addTile(GameEngine.getInstance().backgroundManager.getBackgroundByID(_bgSet, _arg2, _local4));
_local4++;
};
if (_local3 == 1){
_arg1.addTile(GameEngine.getInstance().backgroundManager.getBackgroundByID(_bgSet, _arg2, 1));
};
}
override public function cleanUp():void{
_fore.cleanUp();
super.cleanUp();
}
override protected function _renderPosition(_arg1:BaseCamera):void{
if (_arg1.x == _lastCameraX){
return;
};
_fore.update(_arg1);
_lastCameraX = _arg1.x;
}
override public function get type():String{
return ("foreground");
}
override protected function _renderVisibility(_arg1:BaseCamera):void{
_isOnscreen = true;
if (!_mcVisible){
_draw();
};
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys
Section 244
//RoomInhabitant (com.wwb.princessbride.fire_swamp.world.entitys.RoomInhabitant)
package com.wwb.princessbride.fire_swamp.world.entitys {
public class RoomInhabitant extends FireSwampSprite {
protected var _room:Number;
public function RoomInhabitant(_arg1:Object){
_room = _arg1.room;
super(_arg1);
}
public function get room():Number{
return (_room);
}
public function set room(_arg1:Number):void{
_room = _arg1;
}
}
}//package com.wwb.princessbride.fire_swamp.world.entitys
Section 245
//Span (com.wwb.princessbride.fire_swamp.world.Span)
package com.wwb.princessbride.fire_swamp.world {
import com.wwb.princessbride.fire_swamp.*;
public class Span {
public var start:Number;
public var isCap:Boolean;
public var effects:Array;
public var end:Number;
public function Span(_arg1:Object){
start = _arg1.start;
end = _arg1.end;
if (end > FireSwampConfig.roomWidth){
end = FireSwampConfig.roomWidth;
};
isCap = _arg1.isCap;
effects = _arg1.effects;
}
public function toString():String{
return ((((((("[Span] " + start) + " -> ") + end) + (isCap) ? " ( cap ) " : "") + " effects : ") + effects));
}
}
}//package com.wwb.princessbride.fire_swamp.world
Section 246
//WorldManager (com.wwb.princessbride.fire_swamp.world.WorldManager)
package com.wwb.princessbride.fire_swamp.world {
import com.wwb.princessbride.fire_swamp.*;
import com.workinman.lib.math.*;
import flash.events.*;
import com.workinman.lib.sound.*;
import com.workinman.paradise.*;
import com.workinman.lib.events.*;
import com.wwb.princessbride.fire_swamp.data.*;
import com.wwb.princessbride.fire_swamp.world.camera.*;
import com.workinman.paradise.world.camera.*;
import com.wwb.princessbride.fire_swamp.world.entitys.*;
import com.wwb.princessbride.fire_swamp.world.entitys.items.*;
import com.wwb.princessbride.fire_swamp.world.entitys.effects.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.*;
import com.wwb.princessbride.fire_swamp.world.entitys.gizmos.*;
import com.wwb.princessbride.fire_swamp.data.rooms.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
import com.wwb.princessbride.fire_swamp.world.entitys.surfaces.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.inanimates.*;
public class WorldManager {
private var _isResetRoom:Boolean;
private var _arrow:Arrow;
private var _activeRoomBoundsLeft:Number;
private var _fps:Number;
private var _dt:Number;
private var _loopb:Number;
private var _debugTimer:Number;
private var _mobs:Array;
private var _isPaused:Boolean;
private var _gizmos:Array;
private var _generatedRoomNums:Array;
private var _doRender:Boolean;
private var _activePlayer:Player;
private var _loop:Number;
private var _grounds:Array;
private var _state:GameState;
private var _isArrowVisible:Boolean;
private var _roomTime:Number;
private var _activeRoomBoundsRight:Number;
private var _cameras:CameraManager;
private var _buttercup:Buttercup;
private var _items:Array;
private var _effects:Array;
private var _multiplierTimer:Number;
private var _activeRoomNum:Number;
private var _background:Background;
private var _levelData:FireSwampLevelData;
private var _westley:Westley;
private var _isGameOver:Boolean;
private var _platforms:Array;
private var _foreground:Foreground;
public function WorldManager(_arg1:FireSwampLevelData):void{
_addEventListeners();
_generate(_arg1);
}
private function _setActiveRoom(_arg1:Number):void{
var _local2:Number;
_local2 = _activeRoomNum;
_activeRoomNum = _arg1;
_activeRoomBoundsLeft = FireSwampConfig.getRoomLeftBounds(_activeRoomNum);
_activeRoomBoundsRight = (FireSwampConfig.getRoomRightBounds(_activeRoomNum) - 25);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_ROOM_DISPLAY_CHANGE, {name:_levelData.levelName}));
_state.setRoomTotals(_levelData.getRoomTimeLimit(_arg1), _levelData.getRoomGemCount(_arg1, 1), _levelData.getRoomGemCount(_arg1, 2), _levelData.getRoomGemCount(_arg1, 3), _levelData.getRoomRousCount(_arg1));
_generateSurroundingRooms(_activeRoomNum);
_degenerateNonSurroundingRooms(_activeRoomNum);
_moveCameraToActiveRoom(_local2);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_GEMS_UPDATE, {gem:0}));
}
public function requestRender():void{
_cameras.renderCameraView();
}
private function _activateButtercup():void{
_westley.setInactive();
_buttercup.setActive();
_activePlayer = _buttercup;
_setActiveRoom(_activePlayer.room);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PLAYER_CHANGE, {player:_buttercup}));
}
private function _onToggleKeyEvent(_arg1:EData):void{
if ((((_arg1.data.keyCode == 17)) || ((_arg1.data.keyCode == 90)))){
_toggleActivePlayer();
};
}
private function _degenerateRoom(_arg1:Number):void{
var _local2:Boolean;
var _local3:Number;
_local2 = false;
_local3 = _generatedRoomNums.length;
while (_local3--) {
if (_generatedRoomNums[_local3] == _arg1){
_generatedRoomNums.splice(_local3, 1);
_local2 = true;
_local3 = 0;
};
};
if (!_local2){
return;
};
if (_westley.room == _arg1){
_westley.onRoomDegenerated();
};
if (_buttercup.room == _arg1){
_buttercup.onRoomDegenerated();
};
_local3 = _gizmos.length;
while (_local3--) {
if (_gizmos[_local3].room == _arg1){
_gizmos[_local3].degenerateAfterErase();
};
};
_local3 = _items.length;
while (_local3--) {
if (_items[_local3].room == _arg1){
_items[_local3].degenerateAfterErase();
};
};
_local3 = _mobs.length;
while (_local3--) {
if (_mobs[_local3].room == _arg1){
_mobs[_local3].degenerateAfterErase();
};
};
_local3 = _platforms.length;
while (_local3--) {
if (_platforms[_local3].room == _arg1){
_platforms[_local3].degenerateAfterErase();
};
};
_local3 = _grounds.length;
while (_local3--) {
if (_grounds[_local3].room == _arg1){
_grounds[_local3].degenerateAfterErase();
};
};
_local3 = _effects.length;
while (_local3--) {
if (_effects[_local3].room == _arg1){
_effects[_local3].degenerateAfterErase();
};
};
}
private function _advanceToRoom(_arg1:Number):void{
if ((((((_activeRoomNum == _arg1)) || ((_arg1 < 1)))) || (!(_levelData.getIsValidRoom(_arg1))))){
return;
};
unpause();
if (_buttercup.predictedPos.x != _buttercup.pos.x){
_buttercup.pos.toPoint(_buttercup.predictedPos);
};
_buttercup.room = _arg1;
_buttercup.pos.x = (_buttercup.pos.x + 40);
if (_buttercup.pos.x < (FireSwampConfig.roomToPixels(_arg1) + 10)){
_buttercup.pos.x = (FireSwampConfig.roomToPixels(_arg1) + 10);
};
if (_westley.predictedPos.x != _westley.pos.x){
_westley.pos.toPoint(_westley.predictedPos);
};
_westley.room = _arg1;
_westley.pos.x = (_westley.pos.x + 40);
if (_westley.pos.x < (FireSwampConfig.roomToPixels(_arg1) + 10)){
_westley.pos.x = (FireSwampConfig.roomToPixels(_arg1) + 10);
};
_roomTime = 0;
_buttercup.removeStick();
_state.recordRoomStartPos(_westley.pos, _buttercup.pos);
_setActiveRoom(_arg1);
}
private function _onWestleyClickEvent(_arg1:Event):void{
if (_isPaused){
return;
};
_activateWestley();
GlobalSound.getInstance().playSound("charSelect");
}
private function _onPlayersChangeRoom():void{
pause();
_state.onAssignRoomTime(_roomTime);
GameEngine.getInstance().showRoomSummary();
}
public function get camera():FireSwampCamera{
return ((_cameras.camera as FireSwampCamera));
}
private function _onPlayerThrow(_arg1:EData):void{
var _local2:WorkinPoint;
_local2 = GameEngine.getInstance().mousePoint;
_local2.add(FireSwampConfig.roomToPixels(_arg1.data.source.room), -(ParadiseConfig.SCREEN_OFFSET.y), 0);
_generateEffect(_arg1.data.ammo.type, {x:_arg1.data.source.pos.x, y:(_arg1.data.source.pos.y - 15), destination:_local2});
}
private function _generateGizmos(_arg1:Array, _arg2:Number):void{
var _local3:Number;
_local3 = _arg1.length;
while (_local3--) {
_gizmos.push(GizmoLibrary.generateNewGizmo(_arg1[_local3], _arg2));
};
}
public function onCloseRoomSummary():void{
var _local1:Number;
_state.onPlayerCompleteRoom();
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_SCORE_UPDATE, {score:(_state.score.currentGameTotal + _state.baseScore)}));
_local1 = (_activeRoomNum + 1);
if (_levelData.getIsLastRoom((_local1 - 1))){
if (_state.roomsThisLevel == 1){
onCloseLevelSummary();
} else {
GameEngine.getInstance().showLevelSummary();
};
return;
};
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_CLEAR_SCREENSHOT));
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.REFOCUS_STAGE));
_advanceToRoom(_local1);
}
private function _addEventListeners():void{
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _update);
Updater.getInstance().lockFPS(30);
WorkinDispatcher.getInstance().addEventListener(ParadiseConfig.EVENT_KEY_DOWN, _onToggleKeyEvent);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_PLAYER_THROW, _onPlayerThrow);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_DEW_COLLIDE, _onDewCollision);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_CRUMBS_COLLIDE, _onCrumbCollision);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_GAME_OVER, _onGameOver);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_RESET_ROOM, _onResetRoom);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_EVENT_BUTTERCUP_CLICK, _onButtercupClickEvent);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.UI_EVENT_WESTLEY_CLICK, _onWestleyClickEvent);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_DEBUG_ROOM_WARP, _onDebugRoomWarp);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_COLLECT_MULTIPLIER, _onCollectMultiplier);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_SCORE_EFFECT, _onSpawnScoreEffect);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_PARTICLE_EFFECT, _onSpawnParticleEffect);
}
private function _generateItems(_arg1:Array, _arg2:Number):void{
var _local3:Number;
_local3 = _arg1.length;
while (_local3--) {
if (_arg1[_local3].isConsumed){
} else {
_items.push(ItemLibrary.generateNewItem(_arg1[_local3], _arg2));
};
};
}
private function _onDewCollision(_arg1:EData):void{
var _local2:Number;
_local2 = _gizmos.length;
while (_local2--) {
_arg1.data.source.testAndResolveDewCollision(_gizmos[_local2]);
};
_arg1.data.source.onUseUp();
}
public function get exists():Boolean{
return (true);
}
private function _hideArrow():void{
if (!_isArrowVisible){
return;
};
GameEngine.getInstance().showMouse();
_arrow.hide();
_isArrowVisible = false;
}
private function _activateWestley():void{
_westley.setActive();
_buttercup.setInactive();
_activePlayer = _westley;
_setActiveRoom(_activePlayer.room);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_PLAYER_CHANGE, {player:_westley}));
}
private function _generateSurroundingRooms(_arg1:Number):void{
if (_arg1 < (_levelData.getRoomCount() - 1)){
_generateRoom((_arg1 + 1));
};
_generateRoom(_arg1);
}
private function _moveCameraToActiveRoom(_arg1:Number=-1):void{
if (_arg1 < 0){
_arg1 = _activeRoomNum;
};
if (Math.abs((_arg1 - _activeRoomNum)) > 1){
camera.showRoom(_activeRoomNum);
} else {
camera.toRoom(_activeRoomNum);
};
}
private function _onButtercupClickEvent(_arg1:Event):void{
if (_isPaused){
return;
};
_activateButtercup();
GlobalSound.getInstance().playSound("charSelect");
}
public function onCloseLevelSummary():void{
_state.onPlayerCompleteLevel();
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_SCORE_UPDATE, {score:(_state.score.currentGameTotal + _state.baseScore)}));
_cameras.clear();
_cameras = null;
_doRender = false;
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.REFOCUS_STAGE));
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_LEVEL_COMPLETE));
}
private function _onGameOver(_arg1:Event):void{
_isGameOver = true;
_state.startRoom = _activeRoomNum;
}
private function _generateEffect(_arg1:String, _arg2:Object):void{
_arg2.type = _arg1;
_effects.push(EffectLibrary.generateNewEffect(_arg2));
}
private function _degenerateNonSurroundingRooms(_arg1:Number):void{
var _local2:Number;
_local2 = _generatedRoomNums.length;
while (_local2--) {
if (((!((_generatedRoomNums[_local2] == _arg1))) && (!((_generatedRoomNums[_local2] == (_arg1 + 1)))))){
_degenerateRoom(_generatedRoomNums[_local2]);
};
};
}
private function _showArrow():void{
if (_isArrowVisible){
return;
};
GameEngine.getInstance().hideMouse();
_arrow.show();
_isArrowVisible = true;
}
private function _onCrumbCollision(_arg1:EData):void{
_arg1.data.source.onUseUp();
_mobs.push(new CrumbsPile({x:_arg1.data.source.pos.x, y:_arg1.data.source.pos.y, room:_activeRoomNum}));
}
private function _onDebugRoomWarp(_arg1:EData):void{
var _local2:Number;
_local2 = _arg1.data.room;
if (_local2 > _levelData.getRoomCount()){
return;
};
_state.onPlayerCompleteRoom();
_advanceToRoom(_local2);
_buttercup.room = _local2;
_buttercup.pos.x = (FireSwampConfig.getRoomLeftBounds(_local2) + 5);
_buttercup.pos.y = 100;
_westley.room = _local2;
_westley.pos.x = (FireSwampConfig.getRoomLeftBounds(_local2) + 10);
_westley.pos.y = 100;
_setActiveRoom(_local2);
}
private function _degenerateAllRooms():void{
var _local1:*;
_generatedRoomNums = [];
_local1 = _gizmos.length;
while (_local1--) {
_gizmos[_local1].degenerate();
};
_local1 = _items.length;
while (_local1--) {
_items[_local1].degenerate();
};
_local1 = _mobs.length;
while (_local1--) {
_mobs[_local1].degenerate();
};
_local1 = _platforms.length;
while (_local1--) {
_platforms[_local1].degenerate();
};
_local1 = _grounds.length;
while (_local1--) {
_grounds[_local1].degenerate();
};
_local1 = _effects.length;
while (_local1--) {
_effects[_local1].degenerate();
};
_gizmos = [];
_items = [];
_mobs = [];
_platforms = [];
_grounds = [];
_effects = [];
_westley.degenerate();
_buttercup.degenerate();
_arrow.cleanUp();
_background.cleanUp();
_foreground.cleanUp();
_activePlayer = null;
_background = null;
_foreground = null;
_westley = null;
_buttercup = null;
_arrow = null;
}
private function _toggleActivePlayer():void{
if (_isPaused){
return;
};
if (_activePlayer == _westley){
_activateButtercup();
} else {
_activateWestley();
};
GlobalSound.getInstance().playSound("charSelect");
}
private function _onCollectMultiplier(_arg1:EData):void{
_multiplierTimer = Number(_state.getConfigOption("multiplierDuration"));
_state.onPlayerGetMultiplier(_arg1.data.value);
}
private function _onSpawnParticleEffect(_arg1:EData):void{
var _local2:Object;
_local2 = {};
_local2.x = _arg1.data.x;
_local2.y = _arg1.data.y;
_generateEffect(_arg1.data.type, _local2);
}
public function cleanUp():void{
_degenerateAllRooms();
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _update);
WorkinDispatcher.getInstance().removeEventListener(ParadiseConfig.EVENT_KEY_DOWN, _onToggleKeyEvent);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_PLAYER_THROW, _onPlayerThrow);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_DEW_COLLIDE, _onDewCollision);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_CRUMBS_COLLIDE, _onCrumbCollision);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_GAME_OVER, _onGameOver);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_RESET_ROOM, _onResetRoom);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_EVENT_BUTTERCUP_CLICK, _onButtercupClickEvent);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.UI_EVENT_WESTLEY_CLICK, _onWestleyClickEvent);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_DEBUG_ROOM_WARP, _onDebugRoomWarp);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_COLLECT_MULTIPLIER, _onCollectMultiplier);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_SCORE_EFFECT, _onSpawnScoreEffect);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_PARTICLE_EFFECT, _onSpawnParticleEffect);
}
private function _generate(_arg1:FireSwampLevelData):void{
_levelData = _arg1;
_state = GameState.getInstance();
_generatedRoomNums = [];
_state.setLevelTotals(_levelData.getRoomCount(), _levelData.getLevelGemCount(1), _levelData.getLevelGemCount(2), _levelData.getLevelGemCount(3), _levelData.getLevelRousCount());
_isPaused = false;
_platforms = [];
_grounds = [];
_gizmos = [];
_items = [];
_effects = [];
_mobs = [];
_roomTime = 0;
_multiplierTimer = 0;
_arrow = new Arrow({});
_isArrowVisible = false;
_isGameOver = false;
_isResetRoom = false;
_westley = new Westley({playerData:_levelData.getWestleyData()});
_buttercup = new Buttercup({playerData:_levelData.getButtercupData()});
_westley.room = _state.startRoom;
_buttercup.room = _state.startRoom;
if (_state.startRoom > 1){
_buttercup.pos.to(_state.buttercupRoomStart.x, (_state.buttercupRoomStart.y - 2));
_westley.pos.to(_state.westleyRoomStart.x, (_state.westleyRoomStart.y - 2));
};
_state.recordRoomStartPos(_westley.pos, _buttercup.pos);
_background = new Background(_levelData.backgroundSet);
_foreground = new Foreground(_levelData.backgroundSet);
_doRender = true;
_debugTimer = 0;
_fps = 0;
_cameras = new CameraManager();
_cameras.addCustomCamera(new FireSwampCamera({x:(FireSwampConfig.getRoomLeftBounds(_westley.room) + (ParadiseConfig.SCREEN_WIDTH / 2)), y:((ParadiseConfig.SCREEN_OFFSET.y / 2) + (ParadiseConfig.SCREEN_HEIGHT / 2))}), "main", true);
camera.showRoom(_westley.room);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_ROOMS_UPDATE, {rooms:_levelData.getRoomCount()}));
_activateWestley();
_update(new EUpdate(Updater.EVENT_UPDATE, 0.1));
}
private function _generateRoom(_arg1:Number):void{
var _local2:Number;
var _local3:RoomData;
_local2 = _generatedRoomNums.length;
while (_local2--) {
if (_generatedRoomNums[_local2] == _arg1){
return;
};
};
_local3 = _levelData.getRoom(_arg1);
_grounds.push(new Ground({groundData:_local3.ground, room:_local3.pos, isLast:_levelData.getIsLastRoom(_arg1)}));
_generateGizmos(_local3.ground.gizmos, _local3.pos);
_generateItems(_local3.ground.items, _local3.pos);
_generateSpanEffects(_grounds[(_grounds.length - 1)].spanEffects, _local3.pos);
_loop = _local3.platforms.length;
while (_loop--) {
_platforms.push(new Platform({platformData:_local3.platforms[_loop], room:_local3.pos}));
_generateGizmos(_local3.platforms[_loop].gizmos, _arg1);
_generateItems(_local3.platforms[_loop].items, _arg1);
_generateSpanEffects(_platforms[(_platforms.length - 1)].spanEffects, _local3.pos);
};
_platforms.sortOn("sortY", (Array.NUMERIC | Array.DESCENDING));
_loop = _local3.mobs.length;
while (_loop--) {
_mobs.push(MobLibrary.generateNewMob(_local3.mobs[_loop], _local3.pos));
};
_generatedRoomNums.push(_arg1);
if (_westley.room == _arg1){
_westley.onRoomRegenerated();
};
if (_buttercup.room == _arg1){
_buttercup.onRoomRegenerated();
};
}
private function _generateSpanEffects(_arg1:Array, _arg2:Number):void{
var _local3:Object;
var _local4:Number;
_local4 = _arg1.length;
while (_local4--) {
_local3 = {type:(_arg1[_local4].effect + "span"), start:_arg1[_local4].start, end:_arg1[_local4].end, room:_arg2};
_effects.push(EffectLibrary.generateNewEffect(_local3));
};
}
private function _onSpawnScoreEffect(_arg1:EData):void{
var _local2:Object;
_local2 = {};
_local2.x = _arg1.data.x;
_local2.y = _arg1.data.y;
_local2.value = _arg1.data.value;
if (_arg1.data.isScore != undefined){
_local2.isScore = _arg1.data.isScore;
} else {
_local2.isScore = false;
};
_generateEffect("score", _local2);
}
private function _update(_arg1:EUpdate):void{
if (_isPaused){
return;
};
if (_arg1.dt > 0.1){
_dt = 0.1;
} else {
_dt = _arg1.dt;
};
_cameras.updateActiveCamera(_dt);
_loop = _effects.length;
while (_loop--) {
_effects[_loop].updateEverything(_dt);
if (_effects[_loop].doDelete){
_effects.splice(_loop, 1);
};
};
if (_multiplierTimer > 0){
_multiplierTimer = (_multiplierTimer - _dt);
if (_multiplierTimer <= 0){
_state.onResetMultiplier();
};
};
_westley.updatePrediction(_dt);
_buttercup.updatePrediction(_dt);
_arrow.updateArrow(_activePlayer, _dt);
_loopb = _platforms.length;
while (_loopb--) {
_westley.testAndResolveSurfaceCollision(_platforms[_loopb]);
_buttercup.testAndResolveSurfaceCollision(_platforms[_loopb]);
if (_platforms[_loopb].doDelete){
_platforms.splice(_loopb, 1);
};
};
_loopb = _grounds.length;
while (_loopb--) {
_westley.testAndResolveSurfaceCollision(_grounds[_loopb]);
_buttercup.testAndResolveSurfaceCollision(_grounds[_loopb]);
if (_grounds[_loopb].doDelete){
_grounds.splice(_loopb, 1);
};
};
_loop = _mobs.length;
while (_loop--) {
if (_mobs[_loop].room == _activeRoomNum){
_mobs[_loop].updateAI([_westley, _buttercup]);
_mobs[_loop].updatePrediction(_dt);
_loopb = _grounds.length;
while (_loopb--) {
_mobs[_loop].testAndResolveSurfaceCollision(_grounds[_loopb]);
};
_loopb = _platforms.length;
while (_loopb--) {
_mobs[_loop].testAndResolveSurfaceCollision(_platforms[_loopb]);
};
_westley.testAndResolveCombatCollision(_mobs[_loop]);
_buttercup.testAndResolveCombatCollision(_mobs[_loop]);
if (_mobs[_loop].doComplexCollision){
_loopb = _mobs.length;
while (_loopb--) {
_mobs[_loop].testAndResolveEntityCollision(_mobs[_loopb]);
};
_loopb = _gizmos.length;
while (_loopb--) {
if (_gizmos[_loopb].doComplexCollision){
_mobs[_loop].testAndResolveEntityCollision(_gizmos[_loopb]);
};
};
};
_mobs[_loop].updatePosition();
};
if (_mobs[_loop].doDelete){
_mobs.splice(_loop, 1);
};
};
_loop = _items.length;
while (_loop--) {
_items[_loop].updateAnimation(_dt);
_westley.testAndResolveEntityCollision(_items[_loop]);
_buttercup.testAndResolveEntityCollision(_items[_loop]);
if (_items[_loop].doDelete){
_items.splice(_loop, 1);
};
};
_loop = _gizmos.length;
while (_loop--) {
_gizmos[_loop].updateAnimation(_dt);
_westley.testAndResolveEntityCollision(_gizmos[_loop]);
_buttercup.testAndResolveEntityCollision(_gizmos[_loop]);
_loopb = _mobs.length;
while (_loopb--) {
_mobs[_loopb].testAndResolveEntityCollision(_gizmos[_loop]);
};
if (_gizmos[_loop].doDelete){
_gizmos.splice(_loop, 1);
};
};
_westley.updatePosition();
_buttercup.updatePosition();
if (GameEngine.getInstance().control.mouseInPlayArea){
_showArrow();
} else {
_hideArrow();
};
_roomTime = (_roomTime + _dt);
if ((((_westley.pos.x > _activeRoomBoundsRight)) && ((_buttercup.pos.x > _activeRoomBoundsRight)))){
if (((!(_westley.isAirborne)) && (!(_buttercup.isAirborne)))){
_onPlayersChangeRoom();
};
};
if (_doRender){
_cameras.renderCameraView();
};
if (_isGameOver){
GameEngine.getInstance().onWorldDeclareGameOver();
} else {
if (_isResetRoom){
GameEngine.getInstance().onWorldDeclareResetRoomr();
};
};
}
private function _onResetRoom(_arg1:Event):void{
_isResetRoom = true;
_state.startRoom = _activeRoomNum;
}
public function get roomCount():Number{
return (_levelData.getRoomCount());
}
public function pause():void{
_isPaused = true;
_buttercup.onPause();
_westley.onPause();
_loop = _mobs.length;
while (_loop--) {
_mobs[_loop].onPause();
};
}
public function unpause():void{
_isPaused = false;
}
}
}//package com.wwb.princessbride.fire_swamp.world
Section 247
//Collectable (com.wwb.princessbride.fire_swamp.Collectable)
package com.wwb.princessbride.fire_swamp {
public class Collectable {
public var level:Number;
public var total:Number;
public var id:String;
public var totalAvailableLevel:Number;
public var totalAvailableRoom:Number;
public var room:Number;
public function Collectable(_arg1:String){
id = _arg1;
zero();
}
public function get percentRoom():Number{
return (((totalAvailableRoom == 0)) ? 100 : Math.round(((room / totalAvailableRoom) * 100)));
}
public function get availableThisRoom():Boolean{
return ((totalAvailableRoom > 0));
}
public function get ratioRoom():Number{
return (((totalAvailableRoom == 0)) ? 0 : (room / totalAvailableRoom));
}
public function onWipeRoom():void{
level = (level - room);
room = 0;
}
public function get currentLevelTotal():Number{
return ((total + level));
}
public function get ratioLevel():Number{
return (((totalAvailableLevel == 0)) ? 0 : (level / totalAvailableLevel));
}
public function zero():void{
total = (level = (room = 0));
totalAvailableLevel = (totalAvailableRoom = 0);
}
public function collect(_arg1:Number=1):void{
room = (room + _arg1);
}
public function onResetRoom():void{
room = 0;
}
public function onCompleteLevel():void{
total = (total + level);
level = 0;
}
public function get currentRoomTotal():Number{
return (room);
}
public function onResetLevel():void{
level = 0;
room = 0;
}
public function get currentGameTotal():Number{
return (((total + level) + room));
}
public function onCompleteRoom():void{
level = (level + room);
room = 0;
}
public function get availableThisLevel():Boolean{
return ((totalAvailableLevel > 0));
}
public function get percentLevel():Number{
return (((totalAvailableLevel == 0)) ? 100 : Math.round(((level / totalAvailableLevel) * 100)));
}
}
}//package com.wwb.princessbride.fire_swamp
Section 248
//ConfigDataClass (com.wwb.princessbride.fire_swamp.ConfigDataClass)
package com.wwb.princessbride.fire_swamp {
public class ConfigDataClass {
public static function getXML():XML{
var _local1:XML;
_local1 = new XML();
_local1.ignoreComments = false;
_local1.ignoreProcessingInstructions = false;
_local1.ignoreWhitespace = true;
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_local1 = XML("<princess_bride_fire_swamp_config><levels><level num='0'>FS_xml/FireSwampLevel_b_1.xml</level><level num='1'>FS_xml/FireSwampLevel_b_2.xml</level><level num='2'>FS_xml/FireSwampLevel_b_3.xml</level><level num='3'>FS_xml/FireSwampLevel_b_4.xml</level><level num='4'>FS_xml/FireSwampLevel_b_5.xml</level></levels><tutorial path='FS_media/tutorials/' /><flags><pinktiles>false</pinktiles><showtiles>false</showtiles><showbackground>true</showbackground></flags><assets path='FS_media/assets/'></assets><backgrounds path='FS_media/backgrounds/'><background id='level1b'><fore><img>fs_fg0004</img></fore><near><img>fs_bg0004</img></near><effect><img>bg_swamp_fog</img></effect><mid><img>fs_fg0004</img></mid><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level2b'><fore><img>fs_fg0007</img></fore><near><img>fs_bg0007</img></near><effect><img>bg_swamp_fog</img></effect><mid><img>fs_fg0007</img></mid><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level3b'><fore><img>fs_fg0008</img></fore><near><img>fs_bg0008</img></near><effect><img>bg_swamp_fog</img></effect><mid><img>fs_fg0008</img></mid><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level4b'><fore><img>fs_fg0012</img></fore><near><img>fs_bg0012</img></near><effect><img>bg_swamp_fog</img></effect><mid><img>fs_fg0012</img></mid><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level5b'><fore><img>fs_fg0022</img> <!--FORGROUND --></fore><near><img>fs_bg0022</img> <!--PLATFORMS --></near><effect><img>bg_swamp_fog</img></effect><mid><img>fs_fg0022</img> <!--GRASS VINES --></mid><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background></backgrounds><config><buttercupJumpHeight>10</buttercupJumpHeight><westleyJumpHeight>7</westleyJumpHeight><buttercupDamageToRous>20</buttercupDamageToRous><westleyDamageToRous>20</westleyDamageToRous><rousHealth>60</rousHealth><flyingRousHealth>40</flyingRousHealth><waterHealPerSecond>5</waterHealPerSecond><poisonSlowPercent>.3</poisonSlowPercent><poisonSlowDuration>5</poisonSlowDuration><fireShieldDuration>5</fireShieldDuration><rousHeatDamage>20</rousHeatDamage><flyingRousHeatDamage>15</flyingRousHeatDamage><fireMossHeatDamage>15</fireMossHeatDamage><spikeHeatDamage>20</spikeHeatDamage><fireSpoutHeatDamage>5</fireSpoutHeatDamage><constantSpoutHeatDamage>5</constantSpoutHeatDamage><fireGroundHeatDamagePerSecond>15</fireGroundHeatDamagePerSecond><gem1value>25</gem1value><gem2value>75</gem2value><gem3value>150</gem3value><rousValue>100</rousValue><flyingRousValue>300</flyingRousValue><gem1RoomCollectRatioBonus>100</gem1RoomCollectRatioBonus><gem2RoomCollectRatioBonus>200</gem2RoomCollectRatioBonus><gem3RoomCollectRatioBonus>300</gem3RoomCollectRatioBonus><rousRoomCollectRatioBonus>150</rousRoomCollectRatioBonus><timeRoomBonus>500</timeRoomBonus><gem1LevelCollectRatioBonus>200</gem1LevelCollectRatioBonus><gem2LevelCollectRatioBonus>400</gem2LevelCollectRatioBonus><gem3LevelCollectRatioBonus>600</gem3LevelCollectRatioBonus><rousLevelCollectRatioBonus>300</rousLevelCollectRatioBonus><timeLevelBonus>1000</timeLevelBonus><multiplierDurationInSeconds>7</multiplierDurationInSeconds></config></princess_bride_fire_swamp_config>");
} else {
_local1 = XML("<princess_bride_fire_swamp_config><levels><level num='0' name='Welcome'>FS_xml/FireSwampLevel1.xml</level><level num='1' name='Fight and Jump!'>FS_xml/FireSwampLevel2.xml</level><level num='2' name='Climb Up!'>FS_xml/FireSwampLevel3.xml</level><level num='3' name='Tangled Vines'>FS_xml/FireSwampLevel4.xml</level><level num='4' name='Life Water'>FS_xml/FireSwampLevel5.xml</level>\t\t<level num='5' name='The Vine Intervention'>FS_xml/FireSwampLevel6.xml</level><level num='6' name='Moving Boulders'>FS_xml/FireSwampLevel7.xml</level>\t\t<level num='7' name='Great Walls of Fire!'>FS_xml/FireSwampLevel8.xml</level>\t\t<level num='8' name='Bridging the Gap'>FS_xml/FireSwampLevel9.xml</level><level num='9' name='Feed the R.O.U.S.s'>FS_xml/FireSwampLevel10.xml</level>\t\t<level num='10' name='Secret Tree Trunks'>FS_xml/FireSwampLevel11.xml</level>\t\t<level num='11' name='Crossing the Chasm'>FS_xml/FireSwampLevel12.xml</level>\t\t<level num='12' name='Flying R.O.U.S.s!'>FS_xml/FireSwampLevel13.xml</level>\t\t<level num='13' name='Divide and Conquer'>FS_xml/FireSwampLevel14.xml</level><level num='14' name='Teamwork!'>FS_xml/FireSwampLevel15.xml</level><level num='15' name='Portal Peril'>FS_xml/FireSwampLevel16.xml</level>\t\t<level num='16' name='Swing Time'>FS_xml/FireSwampLevel17.xml</level><level num='17' name='Trapped'>FS_xml/FireSwampLevel18.xml</level>\t\t<level num='18' name='The End is Near'>FS_xml/FireSwampLevel19.xml</level><!--<level num='19' name='Level 20'>FS_xml/FireSwampLevel20.xml</level>--></levels><tutorial path='FS_media/tutorials/' /><flags><pinktiles>false</pinktiles><showtiles>false</showtiles><showbackground>true</showbackground><showportals>false</showportals></flags><assets path='FS_media/assets/'><asset>asset_westley.swf</asset><asset>asset_buttercup.swf</asset><asset>asset_rous.swf</asset><asset>asset_boulder.swf</asset><asset>asset_vine.swf</asset><asset>asset_firespout.swf</asset><asset>asset_switch.swf</asset><asset>asset_bridge.swf</asset><asset>asset_portal.swf</asset><asset>asset_gem.swf</asset><asset>asset_stick.swf</asset><asset>asset_spike.swf</asset><asset>asset_firemoss.swf</asset><asset>asset_dew.swf</asset><asset>asset_crumbs.swf</asset><asset>asset_arrow.swf</asset><asset>asset_checkpoint.swf</asset><asset>asset_multiplier.swf</asset><asset>asset_fireshield.swf</asset><asset>asset_wateritem.swf</asset><asset>asset_life.swf</asset><asset>asset_time.swf</asset><asset>asset_flyingrous.swf</asset><asset>asset_goal.swf</asset><asset>asset_swingvine.swf</asset><asset>asset_gate.swf</asset><asset>asset_waterSpan.swf</asset><asset>asset_fireSpan.swf</asset><asset>asset_poisonSpan.swf</asset><asset>asset_effects.swf</asset><asset>asset_backgrounds.swf</asset></assets><backgrounds path='FS_media/backgrounds/'><background id='swamp'><fore><img>bg_swamp_NO_fore</img></fore><near><img>bg_swamp_empty</img><!--<img>bg_swamp_screenGRID</img>--></near><effect><img>bg_swamp_fog</img></effect>\t\t<far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level1'><fore><img>fs_fg0001</img> <!--FORGROUND --></fore><near><img>fs_bg0001</img> <!--PLATFORMS --></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level2'><fore><img>fs_fg0002</img> <!--FORGROUND --></fore><near><img>fs_bg0002</img> <!--PLATFORMS --></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level3'><fore><img>fs_fg0003</img> <!--FORGROUND --></fore>\t\t<near><img>fs_bg0003</img> <!--PLATFORMS --></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level4'><fore><img>fs_fg0004</img> <!--FORGROUND --></fore>\t<near><img>fs_bg0004</img> <!--PLATFORMS --></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level5'><fore><img>fs_fg0005</img> <!--FORGROUND --></fore>\t\t<near><img>fs_bg0005</img> <!--PLATFORMS --></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level6'><fore><img>fs_fg0006</img> <!--FORGROUND --><img>fs_fg0007</img></fore>\t\t<near><img>fs_bg0006</img> <!--PLATFORMS --><img>fs_bg0007</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level7'><fore><img>fs_fg0008</img> <!--FORGROUND --><img>fs_fg0009</img></fore>\t\t<near><img>fs_bg0008</img> <!--PLATFORMS --><img>fs_bg0009</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level8'><fore><img>fs_fg0010</img> <!--FORGROUND --><img>fs_fg0011</img></fore>\t\t<near><img>fs_bg0010</img> <!--PLATFORMS --><img>fs_bg0011</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level9'><fore><img>fs_fg0012</img> <!--FORGROUND --><img>fs_fg0013</img></fore>\t\t<near><img>fs_bg0012</img> <!--PLATFORMS --><img>fs_bg0013</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background>\t\t<background id='level10'><fore><img>fs_fg0014</img> <!--FORGROUND --><img>fs_fg0015</img></fore>\t\t<near><img>fs_bg0014</img> <!--PLATFORMS --><img>fs_bg0015</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level11'><fore><img>fs_fg0016</img> <!--FORGROUND --><img>fs_fg0017</img><img>fs_fg0018</img></fore>\t\t<near><img>fs_bg0016</img> <!--PLATFORMS --><img>fs_bg0017</img><img>fs_bg0018</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level12'><fore><img>fs_fg0019</img> <!--FORGROUND --><img>fs_fg0020</img><img>fs_fg0021</img></fore>\t\t<near><img>fs_bg0019</img> <!--PLATFORMS --><img>fs_bg0020</img><img>fs_bg0021</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level13'><fore><img>fs_fg0022</img> <!--FORGROUND --><img>fs_fg0023</img><img>fs_fg0024</img></fore>\t\t<near><img>fs_bg0022</img> <!--PLATFORMS --><img>fs_bg0023</img><img>fs_bg0024</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level14'><fore><img>fs_fg0025</img> <!--FORGROUND --><img>fs_fg0026</img><img>fs_fg0027</img></fore>\t\t<near><img>fs_bg0025</img> <!--PLATFORMS --><img>fs_bg0026</img><img>fs_bg0027</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level15'><fore><img>fs_fg0028</img> <!--FORGROUND --><img>fs_fg0029</img><img>fs_fg0030</img></fore>\t\t<near><img>fs_bg0028</img> <!--PLATFORMS --><img>fs_bg0029</img><img>fs_bg0030</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level16'><fore><img>fs_fg0031</img> <!--FORGROUND --><img>fs_fg0032</img><img>fs_fg0033</img></fore>\t\t<near><img>fs_bg0031</img> <!--PLATFORMS --><img>fs_bg0032</img><img>fs_bg0033</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level17'><fore><img>fs_fg0034</img> <!--FORGROUND --><img>fs_fg0035</img><img>fs_fg0036</img></fore>\t\t<near><img>fs_bg0034</img> <!--PLATFORMS --><img>fs_bg0035</img><img>fs_bg0036</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level18'><fore><img>fs_fg0037</img> <!--FORGROUND --><img>fs_fg0038</img><img>fs_fg0039</img><img>fs_fg0040</img></fore>\t\t<near><img>fs_bg0037</img> <!--PLATFORMS --><img>fs_bg0038</img><img>fs_bg0039</img><img>fs_bg0040</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background><background id='level19'><fore><img>fs_fg0041</img> <img>fs_fg0042</img><img>fs_fg0043</img><img>fs_fg0044</img></fore>\t\t<near><img>fs_bg0041</img> <img>fs_bg0042</img><img>fs_bg0043</img><img>fs_bg0044</img></near><effect><img>bg_swamp_fog</img></effect><far><img>bg_swamp_mid</img></far><horizon><img>bg_swamp_horizon</img></horizon></background></backgrounds><tilesets path='FS_media/tiles/'><tileset id='debug'><ground>debug_ground</ground><ground_fill>debug_ground</ground_fill><ground_bookend_left_down>debug_ground</ground_bookend_left_down><ground_bookend_right_down>debug_ground</ground_bookend_right_down><ground_bookend_left_up>debug_ground</ground_bookend_left_up><ground_bookend_right_up>debug_ground</ground_bookend_right_up><platform>debug_ground</platform><platform_bookend_left_down>debug_ground</platform_bookend_left_down><platform_bookend_right_down>debug_ground</platform_bookend_right_down><platform_bookend_left_up>debug_ground</platform_bookend_left_up><platform_bookend_right_up>debug_ground</platform_bookend_right_up><platform_underside>debug_ground</platform_underside><platform_underside_bookend_left>debug_ground</platform_underside_bookend_left><platform_underside_bookend_right>debug_ground</platform_underside_bookend_right><bg>debug_invis</bg><bg_bookend_left>debug_invis</bg_bookend_left><bg_bookend_right>debug_invis</bg_bookend_right></tileset></tilesets><config><buttercupJumpHeight>10</buttercupJumpHeight><westleyJumpHeight>7</westleyJumpHeight><buttercupDamageToRous>20</buttercupDamageToRous><westleyDamageToRous>20</westleyDamageToRous><dewCollectCooldown>1</dewCollectCooldown><rousHealth>60</rousHealth><flyingRousHealth>60</flyingRousHealth><waterHealPerSecond>5</waterHealPerSecond><poisonSlowPercent>.3</poisonSlowPercent><poisonSlowDuration>5</poisonSlowDuration><fireShieldDuration>5</fireShieldDuration><rousHeatDamage>20</rousHeatDamage><flyingRousHeatDamage>15</flyingRousHeatDamage>\t\t<fireMossHeatDamage>15</fireMossHeatDamage><spikeHeatDamage>20</spikeHeatDamage><fireSpoutHeatDamage>5</fireSpoutHeatDamage><constantSpoutHeatDamage>5</constantSpoutHeatDamage>\t\t<fireGroundHeatDamagePerSecond>15</fireGroundHeatDamagePerSecond><!--<gem1value>25</gem1value><gem2value>75</gem2value><gem3value>150</gem3value><rousValue>100</rousValue><flyingRousValue>300</flyingRousValue><gem1RoomCollectRatioBonus>100</gem1RoomCollectRatioBonus><gem2RoomCollectRatioBonus>200</gem2RoomCollectRatioBonus><gem3RoomCollectRatioBonus>300</gem3RoomCollectRatioBonus><rousRoomCollectRatioBonus>150</rousRoomCollectRatioBonus><timeRoomBonus>500</timeRoomBonus><gem1LevelCollectRatioBonus>200</gem1LevelCollectRatioBonus><gem2LevelCollectRatioBonus>400</gem2LevelCollectRatioBonus><gem3LevelCollectRatioBonus>600</gem3LevelCollectRatioBonus><rousLevelCollectRatioBonus>300</rousLevelCollectRatioBonus><timeLevelBonus>1000</timeLevelBonus>--><gem1value>100</gem1value><gem2value>200</gem2value><gem3value>300</gem3value><rousValue>400</rousValue><flyingRousValue>600</flyingRousValue><gem1RoomCollectRatioBonus>200</gem1RoomCollectRatioBonus><gem2RoomCollectRatioBonus>400</gem2RoomCollectRatioBonus><gem3RoomCollectRatioBonus>600</gem3RoomCollectRatioBonus><rousRoomCollectRatioBonus>800</rousRoomCollectRatioBonus><timeRoomBonus>1000</timeRoomBonus><gem1LevelCollectRatioBonus>400</gem1LevelCollectRatioBonus><gem2LevelCollectRatioBonus>800</gem2LevelCollectRatioBonus><gem3LevelCollectRatioBonus>1200</gem3LevelCollectRatioBonus><rousLevelCollectRatioBonus>1600</rousLevelCollectRatioBonus><timeLevelBonus>2000</timeLevelBonus><multiplierDurationInSeconds>7</multiplierDurationInSeconds></config></princess_bride_fire_swamp_config>");
};
return (_local1);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 249
//FireSwampConfig (com.wwb.princessbride.fire_swamp.FireSwampConfig)
package com.wwb.princessbride.fire_swamp {
public class FireSwampConfig {
public static var TILEID_PLATFORM_UNDERSIDE:String = "platform_underside";
public static var TILEID_PLATFORM_BOOKEND_RIGHT_UP:String = "platform_bookend_right_up";
public static var FLAG_PINK_TILES:String = "flagPinkTiles";
public static var TILEID_BG:String = "bg";
public static var SHELL_HELP:String = "pbfsonShellHelp";
public static var EVENT_LEVEL_COMPLETE:String = "pbfsLevelComplete";
public static var EVENT_CRUMBS_COLLIDE:String = "pbfsCrumbsCollide";
public static var SHELL_QUIT:String = "pbfsonShellQuit";
public static var EVENT_CLOSE_SUMMARY:String = "pbfsonCloseSummary";
public static var UI_SCORE_UPDATE:String = "pbfsonScoreUpdate";
public static var EVENT_ANNOUNCE_MULTI_SWITCH:String = "pbfsAnnounceMultiSwitch";
public static var SHELL_MENU:String = "pbfsonShellMenu";
public static var GOLD_GEM_VALUE:Number = 1000;
public static var EVENT_DEBUG_LEVEL_WARP:String = "pbfsLevelWarp";
public static var TILEID_PLATFORM_BOOKEND_LEFT_UP:String = "platform_bookend_left_up";
public static var TILEID_GROUND:String = "ground";
public static var UI_GEMS_UPDATE:String = "pbfsonGemsUpdate";
public static var UI_MULT_ADD:String = "pbfsonMultAdd";
public static var TILEID_GROUND_FILL:String = "ground_fill";
public static var UI_MULT_REMOVE:String = "pbfsonMultRemove";
public static var EVENT_WIPE_REMOVE:String = "pbfsonWipeRemove";
public static var TILEID_PLATFORM_FILL:String = "platform_fill";
public static var FLAG_SHOW_TILES:String = "flagShowTiles";
public static var UI_EVENT_WESTLEY_CLICK:String = "pbfsonClickWestley";
public static var TILEID_BG_BOOKEND_RIGHT:String = "bg_bookend_right";
public static var EVENT_WIPE_LOAD:String = "pbfsonWipeLoaded";
public static var TILEID_GROUND_BOOKEND_RIGHT_DOWN:String = "ground_bookend_right_down";
public static var EVENT_CRUMBS_DESPAWN:String = "pbfsCrumbsDespawn";
public static var TILEID_PLATFORM_UNDERSIDE_BOOKEND_LEFT:String = "platform_underside_bookend_left";
public static var PURPLE_GEM_VALUE:Number = 100;
public static var EVENT_START_GAME_AT_LEVEL:String = "pbfsonStartGameAtLevel";
public static var REFOCUS_STAGE:String = "pbfsonRefocusStage";
public static var EVENT_PLAYER_PORTAL:String = "pbfsPlayerPortal";
public static var GRAVITY_FORCE:Number = 780;
public static var TILEID_GROUND_BOOKEND_LEFT_DOWN:String = "ground_bookend_left_down";
public static var EVENT_ROOM_DISPLAY_CHANGE:String = "pbfsRoomDisplayChange";
public static var EVENT_PLAYER_THROW:String = "pbfsPlayThrow";
public static var TILEID_PLATFORM_BOOKEND_RIGHT_DOWN:String = "platform_bookend_right_down";
public static var EVENT_DEW_COLLIDE:String = "pbfsDewCollide";
public static var EVENT_BUY_NOW:String = "pbfsonBuyNow";
private static var _PIXELS_PER_UNIT:Number = 10;
public static var EVENT_DEBUG_ROOM_WARP:String = "pbfsRoomWarp";
public static var SHELL_MAP:String = "pbfsonShellMap";
public static var EVENT_GAME_OVER:String = "pbfsGameOver";
public static var ROOM_TRIGGERS:String = "PBFSTriggerRoom";
public static var EVENT_SCORE_EFFECT:String = "pbfsonDrawScoreEffect";
public static var EVENT_PARTICLE_EFFECT:String = "pbfsonDrawParticleEffect";
public static var TILEID_PLATFORM:String = "platform";
public static var EVENT_REMOVE_MULTI_SWITCH:String = "pbfsRemoveMultiSwitch";
public static var DEFAULT_TILESET:String = "debug";
public static var TILEID_BG_BOOKEND_LEFT:String = "bg_bookend_left";
private static var _mdmPath:String;
public static var EVENT_SHOW_HELP:String = "pbfsonShowHelp";
public static var TILEID_GROUND_BOOKEND_LEFT_UP:String = "ground_bookend_left_up";
public static var DEBUG_TILESET:String = "debug";
public static var EVENT_PLAYER_CHANGE:String = "pbfsOnChangePlayer";
public static var EVENT_GAME_LOAD_COMPLETE:String = "pbfsonGameLoadComplete";
public static var UI_HEAT_UPDATE:String = "pbfsonHeatUpdate";
public static var EVENT_RESET_ROOM:String = "pbfsResetRoom";
public static var EVENT_REPORT_LEVEL_COMPLETE_TO_SHELL:String = "pbfsonReportLevelComplete";
public static var UI_EVENT_BUTTERCUP_CLICK:String = "pbfsonClickButtercup";
public static var UI_ROOMS_UPDATE:String = "pbfsonRoomsUpdate";
public static var EVENT_CLEAR_SCREENSHOT:String = "pbfsonCleaScreenshot";
public static var EVENT_ACTIVATE_MULTI_SWITCH:String = "pbfsActivateMultiSwitch";
public static var FLAG_SHOW_BACKGROUND:String = "flagShowBackground";
public static var GREEN_GEM_VALUE:Number = 400;
public static var TILEID_PLATFORM_UNDERSIDE_BOOKEND_RIGHT:String = "platform_underside_bookend_right";
private static var _UNITS_PER_ROOM:Number = 102;
public static var TILEID_GROUND_BOOKEND_RIGHT_UP:String = "ground_bookend_right_up";
public static var EVENT_PORTAL_RESPONSE:String = "pbfsPortalResponse";
public static var TILEID_PLATFORM_BOOKEND_LEFT_DOWN:String = "platform_bookend_left_down";
public static var EVENT_SHOW_PAUSE:String = "pbfsonShowPause";
public static var EVENT_COLLECT_MULTIPLIER:String = "pbfsonCollectMultiplier";
public static var SHELL_OUTRO:String = "pbfsonShellOutro";
public static var EVENT_CRUMBS_PULSE:String = "pbfsCrumbsPulse";
public static function set mdmPath(_arg1:String):void{
_mdmPath = _arg1;
}
public static function roomToPixels(_arg1:Number):Number{
return (((_arg1 - 1) * roomWidth));
}
public static function get mdmPath():String{
return (_mdmPath);
}
public static function pixelsToUnits(_arg1:Number):Number{
return ((_arg1 / _PIXELS_PER_UNIT));
}
public static function roomCameraPos(_arg1:Number):Number{
return (roomToPixels(_arg1));
}
public static function get ppu():Number{
return (_PIXELS_PER_UNIT);
}
public static function roomToUnits(_arg1:Number):Number{
return (((_arg1 - 1) * _UNITS_PER_ROOM));
}
public static function unitsToPixels(_arg1:Number):Number{
if (_arg1 == _UNITS_PER_ROOM){
return (0x0400);
};
return ((_arg1 * _PIXELS_PER_UNIT));
}
public static function get roomWidth():Number{
return ((_UNITS_PER_ROOM * _PIXELS_PER_UNIT));
}
public static function getRoomLeftBounds(_arg1:Number):Number{
return ((roomToPixels(_arg1) + 5));
}
public static function getRoomRightBounds(_arg1:Number):Number{
return (((roomToPixels(_arg1) + roomWidth) - 5));
}
public static function get roomHeight():Number{
return (576);
}
public static function get roomBottom():Number{
return (576);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 250
//GameEngine (com.wwb.princessbride.fire_swamp.GameEngine)
package com.wwb.princessbride.fire_swamp {
import com.workinman.lib.math.*;
import flash.events.*;
import com.workinman.lib.sound.*;
import com.workinman.paradise.*;
import com.workinman.paradise.view.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.wwb.princessbride.fire_swamp.data.*;
import com.workinman.paradise.data.*;
import com.wwb.princessbride.fire_swamp.ui.*;
import com.workinman.lib.utils.*;
import flash.net.*;
import flash.text.*;
import flash.geom.*;
import com.wwb.princessbride.fire_swamp.ui.interfaces.*;
import com.wwb.princessbride.fire_swamp.world.*;
import com.workinman.lib.display.*;
import flash.ui.*;
import flash.filters.*;
public class GameEngine extends BaseEngine {
private var _transition:WorkinMovieClip;
private var _screenshot:Bitmap;
private var _backgroundManager:BackgroundManager;
private var _tutorialManager:TutorialManager;
private var _ui:GameUI;
private var _summaryWindow:SummaryWindow;
private var _intro:MovieClip;
private var _levelManager:LevelManager;
private var _deathFlash:MovieClip;
private var _assetManager:AssetManager;
private var _flags:Object;
private var _deathSequenceTimer:Number;
private var _state:GameState;
private var _world:WorldManager;
private var _buyWindow:BuyNowManager;
private var _isCleaned:Boolean;
private var _hasScreenshot:Boolean;
private var _pauseManager:PauseManager;
private var _isGenerated:Boolean;
private var _SHOW_LOADER:Boolean;// = false
private var _loaderLights:Sprite;
private var _exitManager:ExitManager;
private static const _DEFAULT_CONFIG_XML_URL:String = "FS_xml/FireSwampConfig.xml";
private static var _instance:GameEngine;
public function GameEngine(_arg1:GameTimeline):void{
_SHOW_LOADER = false;
_isGenerated = false;
_isCleaned = false;
_transition = null;
_intro = null;
super(_arg1);
}
public function onWorldDeclareGameOver():void{
onGameOver();
}
private function _onRoomSummaryClose(_arg1:Event):void{
_addEndRoomBonuses();
if (control.mouseInPlayArea){
hideMouse();
};
_summaryWindow.removeEventListener(SummaryWindow.COMPLETE, _onRoomSummaryClose);
(_timeline as GameTimeline).ui_container.removeChild(_summaryWindow);
_summaryWindow = null;
_world.onCloseRoomSummary();
}
private function _loaderLightsFill(_arg1:Number):void{
var _local2:Number;
_local2 = 5;
while (_local2--) {
if (_local2 <= (_arg1 - 1)){
_loaderLights.graphics.beginFill(0xFF00);
} else {
_loaderLights.graphics.beginFill(0xFF0000);
};
_loaderLights.graphics.drawCircle((_local2 * 38), 0, 15);
};
}
public function showRoomSummary():void{
_showScreenshot(true);
showMouse();
_summaryWindow = new RoomScoreSummary();
(_timeline as GameTimeline).ui_container.addChild(_summaryWindow);
_summaryWindow.addEventListener(SummaryWindow.COMPLETE, _onRoomSummaryClose);
}
override public function get sound():SoundManager{
return (GlobalSound.getInstance());
}
private function _beginTutorialDataLoad():void{
_tutorialManager.addEventListener(TutorialManager.ON_COMPLETE, _completeTutorialDataLoad);
_tutorialManager.load();
}
override protected function _generateState():void{
_state = GameState.getInstance();
}
public function showLevelSummary():void{
showMouse();
_showScreenshot(true);
_summaryWindow = new LevelScoreSummary();
(_timeline as GameTimeline).ui_container.addChild(_summaryWindow);
_summaryWindow.addEventListener(SummaryWindow.COMPLETE, _onLevelSummaryClose);
}
override protected function _parseConfigXML():void{
var _local1:String;
var _local2:Number;
if (_SHOW_LOADER){
_loaderLightsFill(1);
};
_addFlag(FireSwampConfig.FLAG_PINK_TILES, "false");
_addFlag(FireSwampConfig.FLAG_SHOW_TILES, "false");
_addFlag(FireSwampConfig.FLAG_SHOW_BACKGROUND, String(true));
_levelManager = new FireSwampLevelManager();
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
_local2 = _configXML.levels.level.length();
if (_local2 == 0){
_levelManager.add(Number(_configXML.levels.level.attribute("num")), (FireSwampConfig.mdmPath + _configXML.levels.level.valueOf()));
} else {
while (_local2--) {
_levelManager.add(Number(_configXML.levels.level[_local2].attribute("num")), (FireSwampConfig.mdmPath + _configXML.levels.level[_local2].valueOf()));
};
};
};
_local1 = (FireSwampConfig.mdmPath + _configXML.tutorial.attribute("path"));
_tutorialManager = new TutorialManager(_local1, (_timeline as GameTimeline).ui_container);
_assetManager = new AssetManager();
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
_local1 = (FireSwampConfig.mdmPath + _configXML.assets.attribute("path"));
if (_local1.charAt((_local1.length - 1)) != "/"){
_local1 = (_local1 + "/");
};
_local2 = _configXML.assets.asset.length();
while (_local2--) {
_assetManager.add((_local1 + String(_configXML.assets.asset[_local2].valueOf())));
};
};
GameState.getInstance().setConfigOption("buttercupJumpHeight", _configXML.config.buttercupJumpHeight.valueOf());
GameState.getInstance().setConfigOption("westleyJumpHeight", _configXML.config.westleyJumpHeight.valueOf());
GameState.getInstance().setConfigOption("buttercupDamageToRous", _configXML.config.buttercupDamageToRous.valueOf());
GameState.getInstance().setConfigOption("westleyDamageToRous", _configXML.config.westleyDamageToRous.valueOf());
GameState.getInstance().setConfigOption("rousHealth", _configXML.config.rousHealth.valueOf());
GameState.getInstance().setConfigOption("flyingRousHealth", _configXML.config.flyingRousHealth.valueOf());
GameState.getInstance().setConfigOption("fireShieldDuration", _configXML.config.fireShieldDuration.valueOf());
GameState.getInstance().setConfigOption("dewCollectCooldown", _configXML.config.dewCollectCooldown.valueOf());
GameState.getInstance().setConfigOption("waterHealPerSecond", _configXML.config.waterHealPerSecond.valueOf());
GameState.getInstance().setConfigOption("poisonSlowPercent", _configXML.config.poisonSlowPercent.valueOf());
GameState.getInstance().setConfigOption("poisonSlowDuration", _configXML.config.poisonSlowDuration.valueOf());
GameState.getInstance().setConfigOption("rousHeatDamage", _configXML.config.rousHeatDamage.valueOf());
GameState.getInstance().setConfigOption("flyingRousHeatDamage", _configXML.config.rousHeatDamage.valueOf());
GameState.getInstance().setConfigOption("fireMossHeatDamage", _configXML.config.fireMossHeatDamage.valueOf());
GameState.getInstance().setConfigOption("constantSpoutHeatDamage", _configXML.config.constantSpoutHeatDamage.valueOf());
GameState.getInstance().setConfigOption("fireSpoutHeatDamage", _configXML.config.fireSpoutHeatDamage.valueOf());
GameState.getInstance().setConfigOption("fireGroundHeatDamagePerSecond", _configXML.config.fireGroundHeatDamagePerSecond.valueOf());
GameState.getInstance().setConfigOption("gem1value", _configXML.config.gem1value.valueOf());
GameState.getInstance().setConfigOption("gem2value", _configXML.config.gem2value.valueOf());
GameState.getInstance().setConfigOption("gem3value", _configXML.config.gem3value.valueOf());
GameState.getInstance().setConfigOption("rousValue", _configXML.config.rousValue.valueOf());
GameState.getInstance().setConfigOption("flyingRousValue", _configXML.config.flyingRousValue.valueOf());
GameState.getInstance().setConfigOption("multiplierDuration", _configXML.config.multiplierDurationInSeconds.valueOf());
GameState.getInstance().setConfigOption("gem1RoomCollectRatioBonus", _configXML.config.gem1RoomCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("gem2RoomCollectRatioBonus", _configXML.config.gem2RoomCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("gem3RoomCollectRatioBonus", _configXML.config.gem3RoomCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("rousRoomCollectRatioBonus", _configXML.config.rousRoomCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("timeRoomBonus", _configXML.config.timeRoomBonus.valueOf());
GameState.getInstance().setConfigOption("gem1LevelCollectRatioBonus", _configXML.config.gem1LevelCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("gem2LevelCollectRatioBonus", _configXML.config.gem2LevelCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("gem3LevelCollectRatioBonus", _configXML.config.gem3LevelCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("rousLevelCollectRatioBonus", _configXML.config.rousLevelCollectRatioBonus.valueOf());
GameState.getInstance().setConfigOption("timeLevelBonus", _configXML.config.timeLevelBonus.valueOf());
GameState.getInstance().setConfigOption("showPortals", _configXML.flags.showportals.valueOf());
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
_beginTutorialDataLoad();
} else {
_tutorialManager.useLibraryTutorials();
_levelManager.useDataLevels();
_generateBackgroundManager();
if (_SHOW_LOADER){
_loaderLightsClear();
};
_onLoadComplete();
};
}
private function _addEndLevelBonuses():void{
if (_state.purplegem.ratioLevel == 1){
_state.onAddScoreBonus(Math.round(_state.getGemLevelRatioBonus(1)));
};
if (_state.greengem.ratioLevel == 1){
_state.onAddScoreBonus(Math.round(_state.getGemLevelRatioBonus(2)));
};
if (_state.bluegem.ratioLevel == 1){
_state.onAddScoreBonus(Math.round(_state.getGemLevelRatioBonus(3)));
};
if (_state.rous.ratioLevel == 1){
_state.onAddScoreBonus(Math.round(_state.getRousLevelRatioBonus()));
};
if (_state.levelTimeRatio == 1){
_state.onAddScoreBonus(_state.getTimeLevelRatioBonus());
};
}
private function _generateBackgroundManager():void{
var _local1:String;
var _local2:Number;
_backgroundManager = new BackgroundManager();
_local1 = "";
_local2 = _configXML.backgrounds.background.length();
while (_local2--) {
_backgroundManager.add(String(_configXML.backgrounds.background[_local2].attribute("id")), _configXML.backgrounds.background[_local2], _local1);
};
}
public function showGameSummary():void{
showMouse();
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_buyWindow = new BuyNowManager();
(_timeline as GameTimeline).ui_container.addChild(_buyWindow);
} else {
_summaryWindow = new GameScoreSummary();
(_timeline as GameTimeline).ui_container.addChild(_summaryWindow);
};
}
private function _playRandomMusic():void{
var _local1:Number;
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
_local1 = Math.ceil((Math.random() * 3));
if (_local1 == 0){
_local1 = 1;
};
sound.playMusic(("music" + String(_local1)));
} else {
sound.playMusic("music1");
};
}
override protected function get _DEBUG():Boolean{
return (false);
}
private function _onClearScreenshot(_arg1:Event):void{
_removeScreenshot();
}
override protected function _loadConfigXML():void{
_configXML = ConfigDataClass.getXML();
_parseConfigXML();
}
override protected function _generateSounds():void{
super._generateSounds();
SoundLoader.loadSounds();
}
private function _updateDeathTimer(_arg1:EUpdate):void{
_deathSequenceTimer = (_deathSequenceTimer - _arg1.dt);
if (_deathSequenceTimer < 0){
(_timeline as GameTimeline).game_container.removeChild(_deathFlash);
GlobalSound.getInstance().playMusic();
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _updateDeathTimer);
_startLevel(false);
_runTransition();
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.REFOCUS_STAGE));
};
}
private function _onWipeUpdate(_arg1:EUpdate):void{
if (_intro.currentFrame == _intro.totalFrames){
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_WIPE_REMOVE, {swf:_intro}));
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _onWipeUpdate);
_intro = null;
sound.playMusic("music1");
};
}
public function exitGame():void{
cleanUp();
}
private function _onHelpPressed(_arg1:Event):void{
if (((_exitManager.isDrawn) || (_pauseManager.isDrawn))){
return;
};
if (_world != null){
_world.pause();
_showScreenshot(false);
};
_ui.disable();
_tutorialManager.displayAll();
_tutorialManager.addEventListener(TutorialManager.ON_CLOSED, _onTutorialClose);
}
private function _failSequentialAssetDataLoad(_arg1:EData):void{
_assetManager.removeEventListener(AssetManager.ON_COMPLETE, _completeSequentialAssetDataLoad);
_assetManager.removeEventListener(AssetManager.ON_ERROR, _failSequentialAssetDataLoad);
if (_DEBUG){
debug((("Error Loading Game Assets from <assets>. " + _arg1.data.url) + " not found."));
};
}
private function _onExitClosed(_arg1:Event):void{
if (_isCleaned){
return;
};
_exitManager.removeEventListener(ExitManager.ON_CLOSED, _onPauseClosed);
if (_world != null){
_runTransition();
_cleanUpGameplay();
_state.nextLevel();
_playRandomMusic();
_startLevel();
};
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.REFOCUS_STAGE));
}
public function unpauseGameplay():void{
}
public function pauseGameplay():void{
}
public function _onLevelWarp(_arg1:Event):void{
_cleanUpGameplay();
_state.startRoom = 1;
_startLevel();
}
private function _removeEventListeners():void{
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_START_GAME_AT_LEVEL, _onBeginGameAtLevel);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_LEVEL_COMPLETE, _onLevelComplete);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_DEBUG_LEVEL_WARP, _onLevelWarp);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_BUY_NOW, _onBuyNow);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_CLEAR_SCREENSHOT, _onClearScreenshot);
if (_deathSequenceTimer > 0){
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _updateDeathTimer);
};
}
private function _runTransition():void{
if (!_hasScreenshot){
return;
};
try {
(_timeline as GameTimeline).game_container.removeChild(_transition);
_transition.removeEventListener(WorkinMovieClip.COMPLETE_TRACK, _onTransitionTrackComplete);
} catch(pError:Error) {
};
_transition = new AssetFireTransition();
(_timeline as GameTimeline).game_container.addChild(_transition);
_screenshot.mask = _transition;
_transition.addEventListener(WorkinMovieClip.COMPLETE_TRACK, _onTransitionTrackComplete);
_transition.trackPlay(1, _transition.totalFrames);
}
private function _addEventListeners():void{
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_START_GAME_AT_LEVEL, _onBeginGameAtLevel);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_LEVEL_COMPLETE, _onLevelComplete);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_DEBUG_LEVEL_WARP, _onLevelWarp);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_BUY_NOW, _onBuyNow);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_CLEAR_SCREENSHOT, _onClearScreenshot);
}
public function onWorldDeclareResetRoomr():void{
onResetRoom();
}
private function _completeSequentialAssetDataLoad(_arg1:Event):void{
_assetManager.removeEventListener(AssetManager.ON_COMPLETE, _completeSequentialAssetDataLoad);
_assetManager.removeEventListener(AssetManager.ON_ERROR, _failSequentialAssetDataLoad);
if (_SHOW_LOADER){
_loaderLightsFill(3);
};
if (_isCleaned){
return;
};
_generateBackgroundManager();
if (_SHOW_LOADER){
_loaderLightsClear();
};
_onLoadComplete();
}
private function _addEndRoomBonuses():void{
if (_state.purplegem.ratioRoom == 1){
_state.onAddScoreBonus(Math.round(_state.getGemRoomRatioBonus(1)));
};
if (_state.greengem.ratioRoom == 1){
_state.onAddScoreBonus(Math.round(_state.getGemRoomRatioBonus(2)));
};
if (_state.bluegem.ratioRoom == 1){
_state.onAddScoreBonus(Math.round(_state.getGemRoomRatioBonus(3)));
};
if (_state.rous.ratioRoom == 1){
_state.onAddScoreBonus(Math.round(_state.getRousRoomRatioBonus()));
};
if (_state.roomTimeLimitBeaten){
_state.onAddScoreBonus(_state.getTimeRoomRatioBonus());
};
}
override protected function _generateDebugField():void{
_debugText = new TextField();
_debugText.width = (ParadiseConfig.SCREEN_WIDTH - 70);
_debugText.height = (ParadiseConfig.SCREEN_HEIGHT - 70);
_debugText.x = 50;
_debugText.y = 50;
_debugText.textColor = 0xFFFFFF;
(_timeline as GameTimeline).game_container.addChild(_debugText);
}
private function _onTutorialClose(_arg1:Event):void{
var pEvent = _arg1;
if (_isCleaned){
return;
};
_ui.enable();
_removeScreenshot();
try {
(_timeline as GameTimeline).game_container.removeChild(_transition);
_transition.removeEventListener(WorkinMovieClip.COMPLETE_TRACK, _onTransitionTrackComplete);
_transition = null;
} catch(pError:Error) {
};
_tutorialManager.removeEventListener(TutorialManager.ON_CLOSED, _onTutorialClose);
if (_world != null){
_world.unpause();
};
hideMouse();
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.REFOCUS_STAGE));
}
public function kill():void{
cleanUp();
}
private function _showScreenshot(_arg1:Boolean=true):void{
var _local2:ColorTransform;
if (_hasScreenshot){
return;
};
_hasScreenshot = true;
_screenshot = new Bitmap(_view.getContentsAsBitmap());
if (_arg1){
_screenshot.filters = [new BlurFilter(10, 10)];
_local2 = new ColorTransform(0.8, 0.8, 0.8, 1, -30, -30, -30, 0);
_screenshot.bitmapData.colorTransform(new Rectangle(0, 0, _screenshot.width, _screenshot.height), _local2);
_ui.blur();
};
(_timeline as GameTimeline).game_container.addChild(_screenshot);
}
override protected function _generateUI():void{
_ui = new GameUI((_timeline as GameTimeline).ui_container);
}
private function _removeScreenshot():void{
if (!_hasScreenshot){
return;
};
_ui.unblur();
_hasScreenshot = false;
(_timeline as GameTimeline).game_container.removeChild(_screenshot);
_screenshot.mask = null;
_screenshot.bitmapData.dispose();
_screenshot = null;
}
private function _addFlag(_arg1:String, _arg2:String):void{
_flags[_arg1] = _arg2;
}
public function hideMouse():void{
}
private function _waitForInit(_arg1:EUpdate):void{
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _waitForInit);
_loadConfigXML();
}
public function get levelManager():LevelManager{
return (_levelManager);
}
private function _beginSequentialLevelDataLoad():void{
_levelManager.addEventListener(LevelManager.ON_COMPLETE, _completeSequentialLevelDataLoad);
_levelManager.addEventListener(LevelManager.ON_ERROR, _failSequentialLevelDataLoad);
_levelManager.beginSequentialDataLoad();
}
private function _onBuyNow(_arg1:Event):void{
navigateToURL(new URLRequest("http://elicense.com/wwbiggies/pbg1"), "_blank");
}
public function get state():GameState{
return (_state);
}
public function get ui():GameUI{
return (_ui);
}
override protected function _generateView():void{
_view = new ViewManager((_timeline as GameTimeline).game_container);
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
(_timeline as GameTimeline).game_container.scaleX = ((_timeline as GameTimeline).game_container.scaleY = 0.59);
};
_view.addGroup("background", 1);
_view.addGroup("platforms", 2);
_view.addGroup("ground", 3);
_view.addGroup("gizmos", 4);
_view.addGroup("mobiles", 5);
_view.addGroup("players", 6);
_view.addGroup("effects", 7);
_view.addGroup("foreground", 8);
_view.addGroup("uieffects", 9);
_view.addGroup("arrow", 10);
}
private function _loaderLightsGenerate():void{
_loaderLights = new Sprite();
_loaderLightsFill(0);
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_loaderLights.x = 200;
_loaderLights.y = 130;
} else {
_loaderLights.x = ((ParadiseConfig.SCREEN_WIDTH / 2) - (_loaderLights.width / 2));
_loaderLights.y = 190;
};
_timeline.addChild(_loaderLights);
_loaderLightsFill(0);
}
public function get assetManager():AssetManager{
return (_assetManager);
}
private function _loaderLightsClear():void{
_timeline.removeChild(_loaderLights);
}
private function _onPauseClosed(_arg1:Event):void{
if (_isCleaned){
return;
};
_ui.enable();
_removeScreenshot();
_pauseManager.removeEventListener(PauseManager.ON_CLOSED, _onPauseClosed);
if (_world != null){
_world.unpause();
};
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.REFOCUS_STAGE));
}
public function get backgroundManager():BackgroundManager{
return (_backgroundManager);
}
public function onResetRoom():void{
_cleanUpGameplay();
_state.wipeRoomScore();
_state.resetRoom();
_startLevel(false);
}
override protected function _generateControls():void{
_control = new BaseController(_timeline);
_control.activeMouseControl();
}
protected function _beginGameAtLevel(_arg1:Number):void{
var _local2:Number;
_state.resetGame();
_state.levelnum = _arg1;
_ui.populate();
_startLevel();
_local2 = Math.ceil((Math.random() * 3));
if (_local2 == 0){
_local2 = 1;
};
if (GameState.getInstance().getConfigOption("browserBuild") != "true"){
if (_arg1 == 0){
sound.playMusic("music1");
} else {
sound.playMusic(("music" + String(_local2)));
};
};
}
public function showMouse():void{
Mouse.show();
}
private function _onLevelSummaryClose(_arg1:Event):void{
_addEndLevelBonuses();
if (control.mouseInPlayArea){
hideMouse();
};
_summaryWindow.removeEventListener(SummaryWindow.COMPLETE, _onRoomSummaryClose);
(_timeline as GameTimeline).ui_container.removeChild(_summaryWindow);
_summaryWindow = null;
_world.onCloseLevelSummary();
}
public function cleanUp():void{
_isCleaned = true;
_cleanUpGameplay();
if (_world != null){
_world.cleanUp();
};
if (_intro != null){
try {
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _onWipeUpdate);
} catch(pError:Error) {
};
};
if (_transition != null){
try {
(_timeline as GameTimeline).game_container.removeChild(_transition);
_transition.removeEventListener(WorkinMovieClip.COMPLETE_TRACK, _onTransitionTrackComplete);
} catch(pError:Error) {
};
};
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
Bitmap.prototype.smoothing = false;
};
_removeEventListeners();
sound.cleanUp();
try {
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
} catch(e) {
};
_tutorialManager.cleanUp();
_levelManager.cleanUp();
_assetManager.cleanUp();
_backgroundManager.cleanUp();
_pauseManager.cleanUp();
_exitManager.cleanUp();
_ui.cleanUp();
_tutorialManager = null;
_levelManager = null;
_assetManager = null;
_backgroundManager = null;
try {
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_SHOW_HELP, _onHelpPressed);
} catch(pError:Error) {
};
GlobalSound.getInstance().cleanUp();
GlobalVoice.getInstance().cleanUp();
}
private function _cleanUpGameplay():void{
if (_world == null){
return;
};
_world.cleanUp();
_view.clear();
_world = null;
_ui.disable();
try {
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
} catch(e) {
};
}
private function _getTutorialExists(_arg1:Number):Boolean{
var _local2:Array;
var _local3:Number;
_local2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18];
_local3 = _local2.length;
while (_local3--) {
if (_local2[_local3] == _arg1){
return (true);
};
};
return (false);
}
override protected function _generate(_arg1:BaseTimeline):void{
if (_isGenerated){
return;
};
_flags = {};
GameState.getInstance().setConfigOption("hasExitReached", "false");
GameState.getInstance().setConfigOption("browserBuild", (((_arg1 as GameTimeline).isBrowser)==true) ? "true" : "false");
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
Bitmap.prototype.smoothing = true;
(_arg1 as GameTimeline).game_container.x = ((_arg1 as GameTimeline).game_container.x - 2);
};
ParadiseConfig.DIMENSIONS = new WorkinPoint(0x0400, 576);
ParadiseConfig.SCREEN_CENTER = new WorkinPoint(0x0200, 384);
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
ParadiseConfig.SCREEN_OFFSET = new WorkinPoint(0, 66);
} else {
ParadiseConfig.SCREEN_OFFSET = new WorkinPoint(0, 96);
};
FireSwampConfig.mdmPath = (_arg1 as GameTimeline).basePath;
super._generate(_arg1);
MultiEventTracker.getInstance();
if (_SHOW_LOADER){
_loaderLightsGenerate();
};
_pauseManager = new PauseManager();
_pauseManager.assignParent((_arg1 as GameTimeline).ui_container);
_exitManager = new ExitManager();
_exitManager.assignParent((_arg1 as GameTimeline).ui_container);
if (_configXMLURL == ""){
_configXMLURL = _DEFAULT_CONFIG_XML_URL;
};
_configXMLURL = (FireSwampConfig.mdmPath + _configXMLURL);
_addEventListeners();
_isGenerated = true;
if (GameState.getInstance().getConfigOption("browserBuild") == "false"){
_loadConfigXML();
} else {
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _waitForInit);
};
}
private function _failSequentialLevelDataLoad(_arg1:EData):void{
_levelManager.removeEventListener(LevelManager.ON_COMPLETE, _completeSequentialLevelDataLoad);
_levelManager.removeEventListener(LevelManager.ON_ERROR, _failSequentialLevelDataLoad);
if (_DEBUG){
debug((("Error Loading XML from <levels>. " + _arg1.data.url) + " not found."));
};
}
private function _onLoadComplete():void{
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_SHOW_PAUSE, _onPausePressed);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_SHOW_HELP, _onHelpPressed);
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_GAME_LOAD_COMPLETE));
}
public function _startLevel(_arg1:Boolean=true):void{
var _local2:FireSwampLevelData;
_state.resetLevel(_arg1);
if (_levelManager.getLastLevel() < _state.levelnum){
showGameSummary();
return;
};
_local2 = new FireSwampLevelData(_levelManager.getLevelStorage(_state.levelnum));
_ui.draw();
_world = new WorldManager(_local2);
if (((_getTutorialExists((_state.levelnum + 1))) && ((_state.startRoom == 1)))){
_world.pause();
_showScreenshot(false);
_tutorialManager.display((_state.levelnum + 1));
_tutorialManager.addEventListener(TutorialManager.ON_CLOSED, _onTutorialClose);
_world.requestRender();
showMouse();
};
}
public function getFlag(_arg1:String):String{
return (_flags[_arg1]);
}
private function _completeSequentialLevelDataLoad(_arg1:Event):void{
_levelManager.removeEventListener(LevelManager.ON_COMPLETE, _completeSequentialLevelDataLoad);
_levelManager.removeEventListener(LevelManager.ON_ERROR, _failSequentialLevelDataLoad);
if (_SHOW_LOADER){
_loaderLightsFill(2);
};
if (_isCleaned){
return;
};
_beginSequentialAssetDataLoad();
}
public function onGameOver():void{
_showScreenshot(false);
_deathFlash = new AssetDeathFlash();
_deathFlash.x = ParadiseConfig.SCREEN_OFFSET.x;
_deathFlash.y = ParadiseConfig.SCREEN_OFFSET.y;
(_timeline as GameTimeline).game_container.addChild(_deathFlash);
_cleanUpGameplay();
GlobalSound.getInstance().stopMusic();
_state.wipeRoomScore();
_state.resetRoom();
_deathSequenceTimer = 1.5;
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _updateDeathTimer);
}
private function _completeTutorialDataLoad(_arg1:Event):void{
_tutorialManager.removeEventListener(TutorialManager.ON_COMPLETE, _completeTutorialDataLoad);
if (_isCleaned){
return;
};
_beginSequentialLevelDataLoad();
}
private function _onPausePressed(_arg1:Event):void{
if (_exitManager.isDrawn){
return;
};
if (_world != null){
_world.pause();
_showScreenshot(true);
};
_ui.disable();
_pauseManager.show();
_pauseManager.addEventListener(PauseManager.ON_CLOSED, _onPauseClosed);
}
public function get mousePoint():WorkinPoint{
return (new WorkinPoint(_timeline.mouseX, _timeline.mouseY, 0));
}
private function _onTransitionTrackComplete(_arg1:Event):void{
(_timeline as GameTimeline).game_container.removeChild(_transition);
_removeScreenshot();
_transition.removeEventListener(WorkinMovieClip.COMPLETE_TRACK, _onTransitionTrackComplete);
_transition = null;
}
public function get roomCount():Number{
return (_world.roomCount);
}
private function _onExitReached():void{
if (_world != null){
_world.pause();
_showScreenshot(true);
};
GameState.getInstance().setConfigOption("hasExitReached", "true");
_exitManager.show();
_exitManager.addEventListener(ExitManager.ON_CLOSED, _onExitClosed);
}
private function _beginSequentialAssetDataLoad():void{
_assetManager.addEventListener(AssetManager.ON_COMPLETE, _completeSequentialAssetDataLoad);
_assetManager.addEventListener(AssetManager.ON_ERROR, _failSequentialAssetDataLoad);
_assetManager.beginSequentialDataLoad();
}
private function _onBeginGameAtLevel(_arg1:EData):void{
if (_arg1.data.level > (Number(GameState.getInstance().getConfigOption("naturalExit")) - 1)){
GameState.getInstance().setConfigOption("hasExitReached", "true");
};
GameState.getInstance().baseScore = Number(GameState.getInstance().getConfigOption("baseScore"));
if (GameState.getInstance().getConfigOption("browserBuild") == "true"){
_intro = new AssetIntroWipe();
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_WIPE_LOAD, {swf:_intro}));
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _onWipeUpdate);
};
_beginGameAtLevel(_arg1.data.level);
}
public function _onLevelComplete(_arg1:Event):void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_REPORT_LEVEL_COMPLETE_TO_SHELL, {level:(_state.levelnum + 1), score:_state.scoreToPublish}));
if ((_state.levelnum + 1) == Number(GameState.getInstance().getConfigOption("naturalExit"))){
_onExitReached();
return;
};
_showScreenshot(true);
_runTransition();
_cleanUpGameplay();
_state.nextLevel();
_playRandomMusic();
_startLevel();
}
public static function initialize(_arg1:GameTimeline):void{
if (_instance != null){
return;
};
_instance = new GameEngine(_arg1);
}
public static function getInstance():GameEngine{
if (_instance == null){
};
return (_instance);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 251
//GameState (com.wwb.princessbride.fire_swamp.GameState)
package com.wwb.princessbride.fire_swamp {
import com.workinman.lib.math.*;
import flash.events.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.world.entitys.mobs.players.*;
public class GameState {
private var _roomTimesComplete:Number;
public var purplegem:Collectable;
private var _buttercupFacingLeft:Boolean;
public var baseScore:Number;
private var _buttercupRoomStart:WorkinPoint;
private var _roomTimeLimit:Number;
private var _multiplier:Number;
public var greengem:Collectable;
private var _westleyFacingLeft:Boolean;
private var _buttercupArmed:Boolean;
private var _roomsThisLevel:Number;
private var _score:Collectable;
private var _westleyRoomStart:WorkinPoint;
public var rous:Collectable;
public var scoreToPublish:Number;
private var _roomTime:Number;
public var bluegem:Collectable;
private var _heat:Number;
private var _startRoom:Number;
private var _levelnum:Number;
private var _westleySwordLeft:Boolean;
private var _configOptions:Object;
private static var _instance:GameState;
public function GameState():void{
}
public function calculateRousScoreValue(_arg1:Boolean=false):Number{
if (_arg1){
return (Number(getConfigOption("flyingRousValue")));
};
return (Number(getConfigOption("rousValue")));
}
public function set levelnum(_arg1:Number):void{
_levelnum = _arg1;
}
public function onPlayerCompleteLevel():void{
scoreToPublish = _score.level;
_score.onCompleteLevel();
purplegem.onCompleteLevel();
greengem.onCompleteLevel();
bluegem.onCompleteLevel();
rous.onCompleteLevel();
}
private function _onWestleyAppearanceChange():void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(PlayerAppearanceManager.EVENT_WESTLEY_APPEARANCE_CHANGE));
}
public function init():void{
WorkinDispatcher.getInstance().addEventListener(Westley.EVENT_CHANGE_FACE_LEFT, _onWestleyFaceLeft);
WorkinDispatcher.getInstance().addEventListener(Westley.EVENT_CHANGE_FACE_RIGHT, _onWestleyFaceRight);
WorkinDispatcher.getInstance().addEventListener(Westley.EVENT_CHANGE_SWORD_LEFT, _onWestleySwordLeft);
WorkinDispatcher.getInstance().addEventListener(Westley.EVENT_CHANGE_SWORD_RIGHT, _onWestleySwordRight);
WorkinDispatcher.getInstance().addEventListener(Buttercup.EVENT_ARMED, _onButtercupArmed);
WorkinDispatcher.getInstance().addEventListener(Buttercup.EVENT_DISARMED, _onButtercupDisarmed);
WorkinDispatcher.getInstance().addEventListener(Buttercup.EVENT_CHANGE_FACE_LEFT, _onButtercupFaceLeft);
WorkinDispatcher.getInstance().addEventListener(Buttercup.EVENT_CHANGE_FACE_RIGHT, _onButtercupFaceRight);
_configOptions = {};
_score = new Collectable("score");
purplegem = new Collectable("purple");
greengem = new Collectable("green");
bluegem = new Collectable("blue");
rous = new Collectable("rous");
resetGame();
}
public function get roomTimeLimitBeaten():Boolean{
return ((_roomTime < _roomTimeLimit));
}
public function onAssignRoomTime(_arg1:Number):void{
_roomTime = (Math.round((_arg1 * 10)) / 10);
if (roomTimeLimitBeaten){
_roomTimesComplete++;
};
}
public function getGemLevelRatioBonus(_arg1:Number):Number{
if (_arg1 == 1){
return (Number(getConfigOption("gem1LevelCollectRatioBonus")));
};
if (_arg1 == 2){
return (Number(getConfigOption("gem2LevelCollectRatioBonus")));
};
if (_arg1 == 3){
return (Number(getConfigOption("gem3LevelCollectRatioBonus")));
};
return (0);
}
public function get levelTimeRatio():Number{
return ((_roomTimesComplete / _roomsThisLevel));
}
public function getRousLevelRatioBonus():Number{
return (Number(getConfigOption("rousLevelCollectRatioBonus")));
}
private function _onWestleySwordLeft(_arg1:Event):void{
PlayerAppearanceManager.westleySwordLeft = true;
_onWestleyAppearanceChange();
}
public function getTimeRoomRatioBonus():Number{
return (Number(getConfigOption("timeRoomBonus")));
}
public function onPlayerHealDamage(_arg1:Number):void{
_heat = (_heat - _arg1);
if (_heat < 0){
_heat = 0;
};
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_HEAT_UPDATE));
}
private function _onWestleySwordRight(_arg1:Event):void{
PlayerAppearanceManager.westleySwordLeft = false;
_onWestleyAppearanceChange();
}
public function get westleyRoomStart():WorkinPoint{
return (_westleyRoomStart);
}
private function _onButtercupFaceRight(_arg1:Event):void{
PlayerAppearanceManager.buttercupFacingLeft = false;
_onButtercupAppearanceChange();
}
private function _onWestleyFaceRight(_arg1:Event):void{
PlayerAppearanceManager.westleyFacingLeft = false;
_onWestleyAppearanceChange();
}
public function get roomTime():Number{
return (_roomTime);
}
public function nextLevel():void{
_levelnum++;
_startRoom = 1;
}
public function get startRoom():Number{
return (_startRoom);
}
public function get roomsThisLevel():Number{
return (_roomsThisLevel);
}
public function onPlayerCompleteRoom():void{
_score.onCompleteRoom();
purplegem.onCompleteRoom();
greengem.onCompleteRoom();
bluegem.onCompleteRoom();
rous.onCompleteRoom();
_multiplier = 1;
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_MULT_REMOVE));
}
public function resetLevel(_arg1:Boolean=true):void{
_buttercupArmed = false;
_heat = 0;
_roomTimesComplete = 0;
if (_arg1){
purplegem.onResetLevel();
greengem.onResetLevel();
bluegem.onResetLevel();
rous.onResetLevel();
_score.onResetLevel();
};
resetRoom();
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_HEAT_UPDATE));
}
private function _onButtercupArmed(_arg1:Event):void{
PlayerAppearanceManager.buttercupArmed = true;
_onButtercupAppearanceChange();
}
public function recordRoomStartPos(_arg1:WorkinPoint, _arg2:WorkinPoint):void{
_westleyRoomStart.toPoint(_arg1);
_buttercupRoomStart.toPoint(_arg2);
}
public function getRousRoomRatioBonus():Number{
return (Number(getConfigOption("rousRoomCollectRatioBonus")));
}
private function _onButtercupFaceLeft(_arg1:Event):void{
PlayerAppearanceManager.buttercupFacingLeft = true;
_onButtercupAppearanceChange();
}
public function onPlayerKillFlyingRous():void{
rous.collect();
_addScore(calculateRousScoreValue(true));
}
public function get levelnum():Number{
return (_levelnum);
}
public function setRoomTotals(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{
_roomTimeLimit = _arg1;
purplegem.totalAvailableRoom = _arg2;
greengem.totalAvailableRoom = _arg3;
bluegem.totalAvailableRoom = _arg4;
rous.totalAvailableRoom = _arg5;
}
public function onAddScoreBonus(_arg1:Number):void{
_score.level = (_score.level + _arg1);
}
public function setLevelTotals(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{
_roomsThisLevel = _arg1;
purplegem.totalAvailableLevel = _arg2;
greengem.totalAvailableLevel = _arg3;
bluegem.totalAvailableLevel = _arg4;
rous.totalAvailableLevel = _arg5;
}
public function get score():Collectable{
return (_score);
}
public function onPlayerTakeDamage(_arg1:Number):void{
_heat = (_heat + _arg1);
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_HEAT_UPDATE));
if (_heat >= 100){
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_GAME_OVER));
};
}
public function getGemRoomRatioBonus(_arg1:Number):Number{
if (_arg1 == 1){
return (Number(getConfigOption("gem1RoomCollectRatioBonus")));
};
if (_arg1 == 2){
return (Number(getConfigOption("gem2RoomCollectRatioBonus")));
};
if (_arg1 == 3){
return (Number(getConfigOption("gem3RoomCollectRatioBonus")));
};
return (0);
}
public function onResetMultiplier():void{
_multiplier = 1;
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_MULT_REMOVE));
}
public function get roomTimeRatio():Number{
return ((1 - (_roomTime / _roomTimeLimit)));
}
public function get buttercupRoomStart():WorkinPoint{
return (_buttercupRoomStart);
}
private function _onButtercupDisarmed(_arg1:Event):void{
PlayerAppearanceManager.buttercupArmed = false;
_onButtercupAppearanceChange();
}
private function _onButtercupAppearanceChange():void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(PlayerAppearanceManager.EVENT_BUTTERCUP_APPEARANCE_CHANGE));
}
public function set startRoom(_arg1:Number):void{
_startRoom = _arg1;
}
public function get multiplier():Number{
return (_multiplier);
}
public function getTimeLevelRatioBonus():Number{
return (Number(getConfigOption("timeLevelBonus")));
}
public function resetRoom():void{
_roomTime = 0;
_multiplier = 1;
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.UI_MULT_REMOVE));
purplegem.onResetRoom();
greengem.onResetRoom();
bluegem.onResetRoom();
rous.onResetRoom();
_score.onResetRoom();
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_SCORE_UPDATE, {score:(_score.currentGameTotal + baseScore)}));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_GEMS_UPDATE, {gem:0}));
}
public function getConfigOption(_arg1:String):String{
return (_configOptions[_arg1]);
}
private function _addScore(_arg1:Number):void{
_score.collect((_arg1 * _multiplier));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_SCORE_UPDATE, {score:(_score.currentGameTotal + baseScore)}));
}
private function _onWestleyFaceLeft(_arg1:Event):void{
PlayerAppearanceManager.westleyFacingLeft = true;
_onWestleyAppearanceChange();
}
public function setConfigOption(_arg1:String, _arg2:String):void{
_configOptions[_arg1] = _arg2;
}
public function onPlayerGetGem(_arg1:Number):void{
if (_arg1 == 1){
purplegem.collect();
} else {
if (_arg1 == 2){
greengem.collect();
} else {
if (_arg1 == 3){
bluegem.collect();
};
};
};
_addScore(calculateGemScoreValue(_arg1));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_GEMS_UPDATE, {gem:_arg1}));
}
public function resetGame():void{
_levelnum = 0;
_startRoom = 1;
_westleyRoomStart = new WorkinPoint();
_buttercupRoomStart = new WorkinPoint();
_score.zero();
purplegem.zero();
greengem.zero();
bluegem.zero();
rous.zero();
}
public function calculateGemScoreValue(_arg1:Number):Number{
if (_arg1 == 1){
return (Number(getConfigOption("gem1value")));
};
if (_arg1 == 2){
return (Number(getConfigOption("gem2value")));
};
if (_arg1 == 3){
return (Number(getConfigOption("gem3value")));
};
return (0);
}
public function get heat():Number{
return (_heat);
}
public function onPlayerKillRous():void{
rous.collect();
_addScore(calculateRousScoreValue());
}
public function wipeRoomScore():void{
}
public function onPlayerGetMultiplier(_arg1:Number):void{
_multiplier = (_multiplier * _arg1);
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.UI_MULT_ADD, {mult:_arg1}));
}
public static function getInstance():GameState{
if (_instance == null){
_instance = new (GameState);
_instance.init();
};
return (_instance);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 252
//GameTimeline (com.wwb.princessbride.fire_swamp.GameTimeline)
package com.wwb.princessbride.fire_swamp {
import com.workinman.paradise.*;
import flash.display.*;
public class GameTimeline extends BaseTimeline {
public var isDebug:Boolean;
public var game_container:MovieClip;
public var ui_container:MovieClip;
public var isBrowser:Boolean;
public var basePath:String;
public function GameTimeline(_arg1:Boolean=false, _arg2:Boolean=false):void{
basePath = "";
isBrowser = _arg1;
game_container = new MovieClip();
ui_container = new MovieClip();
addChild(game_container);
addChild(ui_container);
isDebug = _arg2;
if (isDebug){
beginGame(basePath);
};
}
public function beginGame(_arg1:String):void{
basePath = _arg1;
GameEngine.initialize(this);
}
public function exitGame():void{
GameEngine.getInstance().exitGame();
}
}
}//package com.wwb.princessbride.fire_swamp
Section 253
//IEntityData (com.wwb.princessbride.fire_swamp.IEntityData)
package com.wwb.princessbride.fire_swamp {
import com.wwb.princessbride.fire_swamp.world.entitys.*;
public interface IEntityData {
function reconstruct(_arg1:FireSwampSprite):void;
function toString():String;
}
}//package com.wwb.princessbride.fire_swamp
Section 254
//LevelDataClass1 (com.wwb.princessbride.fire_swamp.LevelDataClass1)
package com.wwb.princessbride.fire_swamp {
public class LevelDataClass1 {
public static function getXML():XML{
var _local1:XML;
_local1 = new XML();
_local1.ignoreComments = false;
_local1.ignoreProcessingInstructions = false;
_local1.ignoreWhitespace = true;
_local1 = XML("<princess_bride_fire_swamp_level background='level1b'><rooms><!-- level init 4 -1 --><room pos='1'><ground y='1' appearance='grass'><spans><span type='ground' begin='0' end='10' height='40'/><span type='ground' begin='95' end='102.4' height='31'/></spans><items><item type='gem' offset='70' height='10' value='1'/><item type='gem' offset='70' height='14' value='1'/><item type='gem' offset='70' height='18' value='1'/></items></ground><platforms><platform x='0' y='41' width='15' appearance='grass' bottomCollision='false' id='npcStart'/><platform x='55' y='10' width='6' appearance='grass' bottomCollision='false'/><platform x='45' y='18' width='6' appearance='grass' bottomCollision='false'/><platform x='52' y='26' width='6' appearance='grass' bottomCollision='false'/><platform x='63' y='32' width='55' appearance='grass' bottomCollision='false'><gizmos><gizmo type='vine' offset='7' length='24' coiled='true'/></gizmos><gizmos><gizmo type='goal' offset='35'/></gizmos></platform></platforms></room></rooms><players><!--<player id='westley' room='1' platform='npcStart' offset='10' /><player id='buttercup' room='1' platform='npcStart' offset='5' />--><player id='westley' room='1' platform='npcStart' offset='10' /><player id='buttercup' room='1' platform='npcStart' offset='5' /></players></princess_bride_fire_swamp_level>");
return (_local1);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 255
//LevelDataClass2 (com.wwb.princessbride.fire_swamp.LevelDataClass2)
package com.wwb.princessbride.fire_swamp {
public class LevelDataClass2 {
public static function getXML():XML{
var _local1:XML;
_local1 = new XML();
_local1.ignoreComments = false;
_local1.ignoreProcessingInstructions = false;
_local1.ignoreWhitespace = true;
_local1 = XML("<princess_bride_fire_swamp_level background='level2b' name='The Vine Intervention'><rooms><!-- level 6 - 1 --><room pos='1' time='60'><ground y='1' appearance='grass' ><items><item type='multiplier' offset='63' height='20'/><item type='gem' offset='15' height='30' value='1'/><item type='gem' offset='15' height='26' value='1'/><item type='gem' offset='15' height='22' value='1'/><item type='gem' offset='68' height='5' value='2'/></items>\t\t<spans><span type='ground' begin='7' end='11' height='3'/><span type='ground' begin='10' end='14' height='6'/><span type='ground' begin='13' end='22' height='3'/><span type='water' begin='45' end='55' /><span type='ground' begin='40' end='45' height='3'/><span type='ground' begin='55' end='59' height='19'/><span type='ground' begin='80' end='90' height='3'/><span type='ground' begin='87' end='93' height='9'/><span type='ground' begin='91' end='95' height='15'/><span type='ground' begin='95' end='102.4' height='20'/><!--<span type='ground' begin='99' end='102.5' height='24'/>--></spans><gizmos><gizmo type='goal' offset='100'/></gizmos></ground><platforms><!--<platform x='45' y='2' width='10' appearance='grass' bottomCollision='true'><spans><span type='water' begin='0' end='10' height='1'/></spans></platform>--><platform x='20' y='39' width='10' appearance='grass'><gizmos><gizmo type='vine' offset='6' length='30' coiled='true'/><gizmo type='firespout' offset='2' behavior='pulse' ontime='2' offtime='2' starttime='1'/></gizmos></platform><platform x='35' y='30' width='9' appearance='grass'/>\t\t\t\t\t<platform x='45' y='40' width='13' appearance='grass'><gizmos><gizmo type='vine' offset='4' length='20' coiled='false'/></gizmos></platform><platform x='46' y='14' width='6' appearance='grass'/><platform x='66' y='44' width='8' appearance='grass'/><platform x='55' y='20' width='12' appearance='grass'><gizmos><gizmo type='vine' offset='8' length='10' coiled='false'/><gizmo type='firespout' offset='2' behavior='pulse' ontime='2' offtime='2' starttime='0'/></gizmos></platform><platform x='79' y='35' width='9' appearance='grass'><gizmos><gizmo type='firespout' offset='3' behavior='pulse' ontime='2' offtime='2' starttime='1'/></gizmos><items><item type='gem' offset='3' height='8' value='1'/><item type='gem' offset='3' height='5' value='1'/><item type='gem' offset='3' height='2' value='1'/></items></platform></platforms><mobs><mob type='rous' platform='ground' offset='30' /><mob type='rous' platform='ground' offset='75' /></mobs></room></rooms>\t<players><player id='westley' room='1' platform='ground' offset='5' /><player id='buttercup' room='1' platform='ground' offset='3' /></players></princess_bride_fire_swamp_level>");
return (_local1);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 256
//LevelDataClass3 (com.wwb.princessbride.fire_swamp.LevelDataClass3)
package com.wwb.princessbride.fire_swamp {
public class LevelDataClass3 {
public static function getXML():XML{
var _local1:XML;
_local1 = new XML();
_local1.ignoreComments = false;
_local1.ignoreProcessingInstructions = false;
_local1.ignoreWhitespace = true;
_local1 = XML("<princess_bride_fire_swamp_level background='level3b' name='Moving Boulders'><rooms><!-- level 7 - 1 - boulders --><room pos='1' time='30'><ground y='1' appearance='grass'><spans><span type='ground' begin='0' end='30' height='20'/><span type='ground' begin='30' end='38' height='5'/><span type='ground' begin='38' end='50' height='20'/><span type='ground' begin='80' end='90' height='20'/><span type='ground' begin='50' end='55' height='5'/><span type='water' begin='90' end='95' height='1'/></spans>\t\t<items><item type='gem' offset='33' height='10' value='1'/><item type='gem' offset='85' height='10' value='2'/></items><gizmos><gizmo type='goal' offset='100'/></gizmos></ground><platforms>\t\t\t\t\t\t\t<platform appearance='grass' x='15' y='30' width='10' bottomCollision='true'><spans>\t<span type='ground' begin='0' end='10' height='10'/></spans>\t\t\t\t\t</platform><platform appearance='fire' x='30' y='7' width='10'><spans>\t<span type='fire' begin='0' end='10' height='10'/></spans>\t\t\t\t\t</platform><platform appearance='grass' x='40' y='30' width='10' bottomCollision='true'><items>\t<item type='multiplier' offset='2' height='2'/>\t<item type='gem' offset='7' height='2' value='1'/>\t\t\t\t\t\t</items><spans>\t<span type='ground' begin='0' end='10' height='10'/></spans>\t\t\t\t\t</platform>\t<platform appearance='grass' x='60' y='30' width='15'><items>\t<item type='gem' offset='2' height='2' value='1'/>\t<item type='gem' offset='13' height='2' value='1'/></items><gizmos>\t<gizmo type='vine' offset='7' length='20' coiled='true'/></gizmos></platform>\t<platform appearance='grass' x='30' y='30' width='5' /><platform appearance='grass' x='30' y='40' width='5' /><platform appearance='grass' x='50' y='14' width='5' /></platforms><mobs><mob type='boulder' platform='ground' offset='20' /><mob type='boulder' platform='ground' offset='34' /><mob type='rous' platform='ground' offset='60' /><mob type='rous' platform='ground' offset='70' /></mobs></room></rooms>\t<players><!--\t<player id='westley' room='1' platform='npcStart' offset='10' /><player id='buttercup' room='1' platform='npcStart' offset='5' />-->\t<player id='westley' room='1' platform='ground' offset='10' /><player id='buttercup' room='1' platform='ground' offset='5' /></players></princess_bride_fire_swamp_level>");
return (_local1);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 257
//LevelDataClass4 (com.wwb.princessbride.fire_swamp.LevelDataClass4)
package com.wwb.princessbride.fire_swamp {
public class LevelDataClass4 {
public static function getXML():XML{
var _local1:XML;
_local1 = new XML();
_local1.ignoreComments = false;
_local1.ignoreProcessingInstructions = false;
_local1.ignoreWhitespace = true;
_local1 = XML("<princess_bride_fire_swamp_level background='level4b'><rooms><!-- level 9 new - 1 simple bridge --><room pos='1'><ground y='1' appearance='grass'><items><item type='gem' offset='16' height='5'/><item type='gem' offset='30' height='1'/><item type='gem' offset='33' height='1'/><item type='gem' offset='73' height='13'/><item type='gem' offset='71' height='24'/><item type='gem' offset='75' height='24'/><item type='gem' offset='71' height='1'/><item type='gem' offset='75' height='1'/></items><spans><span type='ground' begin='15' end='20' height='8'/><span type='water' begin='60' end='65' height='1'/><span type='water' begin='67' end='72' height='1'/><span type='ground' begin='96' end='102.4' height='20'/></spans><gizmos><gizmo type='goal' offset='100'/></gizmos></ground><platforms><platform x='20' y='8' width='7' appearance='grass' bottomCollision='true'><spans><span type='ground' begin='0' end='7' height='5'></span></spans></platform><platform x='27' y='13' width='9' appearance='grass' bottomCollision='true'><spans><span type='ground' begin='0' end='9' height='5'></span></spans></platform><platform x='35' y='16' width='3' appearance='grass' bottomCollision='true'><spans><span type='ground' begin='0' end='3' height='16'></span></spans></platform><platform x='7' y='32' width='30' appearance='grass'><gizmos><gizmo type='vine' offset='3' length='21' coiled='true'/><gizmo type='vine' offset='15' length='10' coiled='false'/><gizmo type='switch' offset='20' toggle='false' event='openbridge' color='0x990000'/><gizmo type='bridge' offset='30' dir='right' closed='true' toggleevent='openbridge' color='0x990000'/></gizmos></platform><platform x='65' y='24' width='3' appearance='grass' bottomCollision='true'><spans><span type='ground' begin='0' end='3' height='15'></span></spans></platform><platform x='60' y='24' width='6' appearance='grass' bottomCollision='true'></platform><platform x='65' y='0' width='3' appearance='grass' bottomCollision='true'><spans><span type='ground' begin='0' end='3' height='12'></span></spans></platform><platform x='45' y='6' width='5' appearance='grass' bottomCollision='true'></platform><platform x='50' y='12' width='3' appearance='grass' bottomCollision='true'><gizmos><gizmo type='bridge' offset='3' dir='right' closed='true' toggleevent='openbridge2' color='0x1099EA'/></gizmos></platform><platform x='38' y='18' width='5' appearance='grass' bottomCollision='true'><gizmos><gizmo type='switch' offset='3' toggle='false' event='openbridge2' color='0x1099EA'/></gizmos></platform><platform x='66' y='10' width='15' appearance='grass' bottomCollision='false'/><platform x='87' y='18' width='7' appearance='grass' bottomCollision='true'><gizmos><gizmo type='vine' offset='3' length='10' coiled='true'/></gizmos></platform><platform x='66' y='24' width='13' appearance='grass' bottomCollision='true'></platform><platform x='45' y='23' width='8' appearance='grass' bottomCollision='true'><gizmos><gizmo type='vine' offset='2' length='10' coiled='false'/></gizmos></platform></platforms><mobs><mob type='rous' platform='ground' orientation='center' /><mob type='rous' platform='ground' offset='80' /></mobs></room></rooms><players><player id='westley' room='1' platform='ground' offset='10' /><player id='buttercup' room='1' platform='ground' offset='5' /><!--<player id='westley' room='1' platform='npcStart' offset='10' /><player id='buttercup' room='1' platform='npcStart' offset='5' />--></players></princess_bride_fire_swamp_level>");
return (_local1);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 258
//LevelDataClass5 (com.wwb.princessbride.fire_swamp.LevelDataClass5)
package com.wwb.princessbride.fire_swamp {
public class LevelDataClass5 {
public static function getXML():XML{
var _local1:XML;
_local1 = new XML();
_local1.ignoreComments = false;
_local1.ignoreProcessingInstructions = false;
_local1.ignoreWhitespace = true;
_local1 = XML("<princess_bride_fire_swamp_level background='level5b'><rooms><!-- 9 - 1 - --><room pos='1'><ground y='1' appearance='grass'><items><item type='stick' platform='ground' offset='28' noreset='true'/><item type='gem' offset='33' height='10' value='1'/><item type='gem' offset='43' height='10' value='1'/><item type='gem' offset='53' height='10' value='1'/><item type='multiplier' offset='85' height='1'/></items><spans><span type='ground' begin='90' end='103.4' height='19'/></spans></ground><platforms>\t\t\t\t<platform x='20' y='20' width='45' appearance='grass' id='flyPlatform_01'></platform><platform x='75' y='20' width='27' appearance='grass'><gizmos><gizmo type='goal' offset='23'/></gizmos></platform><platform x='9' y='35' width='6' appearance='grass'><gizmos><gizmo type='vine' offset='5' length='10' coiled='false' />\t</gizmos></platform><platform x='30' y='35' width='33' appearance='grass' id='flyPlatform_02'><items><item type='gem' offset='15' height='2' value='2'/></items></platform><platform x='70' y='43' width='8' appearance='grass'><gizmos><gizmo type='vine' offset='5' length='35' coiled='true' />\t</gizmos></platform><platform x='66' y='10' width='6' appearance='grass'/><platform x='20' y='40' width='4' appearance='grass'/></platforms><mobs><mob type='flyingrous' platform='flyPlatform_01' offset='15' height='0'/><mob type='flyingrous' platform='flyPlatform_02' offset='20' height='0'/></mobs></room></rooms><players><!--<player id='westley' room='1' platform='npcStart' offset='10' /><player id='buttercup' room='1' platform='npcStart' offset='5' />--><player id='westley' room='1' platform='ground' offset='7' /><player id='buttercup' room='1' platform='ground' offset='4' /></players></princess_bride_fire_swamp_level>");
return (_local1);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 259
//MultiEventTracker (com.wwb.princessbride.fire_swamp.MultiEventTracker)
package com.wwb.princessbride.fire_swamp {
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.wwb.princessbride.fire_swamp.events.*;
public class MultiEventTracker {
private var _loop:Number;
private var _multiEvents:Array;
private static var _instance:MultiEventTracker;
public function MultiEventTracker():void{
}
private function _onMultiSwitchActivate(_arg1:EData):void{
var _local2:Boolean;
_loop = _multiEvents.length;
while (_loop--) {
if (_multiEvents[_loop].event == _arg1.data.event){
_local2 = _multiEvents[_loop].isActivated;
if (_arg1.data.on){
_multiEvents[_loop].trigger();
} else {
_multiEvents[_loop].detrigger();
};
if (_multiEvents[_loop].isActivated){
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new ETrigger(_arg1.data.event, true));
} else {
if (((_local2) && (!(_multiEvents[_loop].isActivated)))){
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).dispatchEvent(new ETrigger(_arg1.data.event, false));
};
};
return;
};
};
}
private function _update(_arg1:EUpdate):void{
}
private function _onMultiSwitchRemove(_arg1:EData):void{
var _local2:Boolean;
_loop = _multiEvents.length;
_local2 = false;
while (((!(_local2)) && (_loop--))) {
if (_multiEvents[_loop].event == _arg1.data.event){
_local2 = true;
};
};
if (_local2){
_multiEvents[_loop].decrement();
if (_multiEvents[_loop].count <= 0){
_multiEvents.splice(_loop, 1);
};
};
}
public function init():void{
_multiEvents = [];
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _update);
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(FireSwampConfig.EVENT_ANNOUNCE_MULTI_SWITCH, _onMultiSwitchAnnounce);
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(FireSwampConfig.EVENT_REMOVE_MULTI_SWITCH, _onMultiSwitchRemove);
WorkinDispatcher.getInstance().getRoom(FireSwampConfig.ROOM_TRIGGERS).addEventListener(FireSwampConfig.EVENT_ACTIVATE_MULTI_SWITCH, _onMultiSwitchActivate);
}
private function _onMultiSwitchAnnounce(_arg1:EData):void{
var _local2:Boolean;
_loop = _multiEvents.length;
_local2 = false;
while (((!(_local2)) && (_loop--))) {
if (_multiEvents[_loop].event == _arg1.data.event){
_local2 = true;
};
};
if (_local2){
_multiEvents[_loop].increment();
} else {
_multiEvents.push(new MultiEventObject(_arg1.data.event));
};
}
public static function getInstance():MultiEventTracker{
if (_instance == null){
_instance = new (MultiEventTracker);
_instance.init();
};
return (_instance);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 260
//PlayerAppearanceManager (com.wwb.princessbride.fire_swamp.PlayerAppearanceManager)
package com.wwb.princessbride.fire_swamp {
public class PlayerAppearanceManager {
private static var _buttercupFacingLeft:Boolean;
public static var EVENT_BUTTERCUP_APPEARANCE_CHANGE:String = "onButtercupAppearanceChange";
private static var _westleySwordLeft:Boolean;
private static var _westleyFacingLeft:Boolean;
private static var _buttercupArmed:Boolean;
public static var EVENT_WESTLEY_APPEARANCE_CHANGE:String = "onWestleyAppearanceChange";
public static function getWestleySwordLeft():Boolean{
return (_westleySwordLeft);
}
public static function getWestleyFacingLeft():Boolean{
return (_westleyFacingLeft);
}
public static function getButtercupFacingLeft():Boolean{
return (_buttercupFacingLeft);
}
public static function set westleyFacingLeft(_arg1:Boolean){
_westleyFacingLeft = _arg1;
}
public static function set westleySwordLeft(_arg1:Boolean){
_westleySwordLeft = _arg1;
}
public static function getButtercupArmed():Boolean{
return (_buttercupArmed);
}
public static function set buttercupArmed(_arg1:Boolean){
_buttercupArmed = _arg1;
}
public static function set buttercupFacingLeft(_arg1:Boolean){
_buttercupFacingLeft = _arg1;
}
}
}//package com.wwb.princessbride.fire_swamp
Section 261
//SoundLoader (com.wwb.princessbride.fire_swamp.SoundLoader)
package com.wwb.princessbride.fire_swamp {
import com.workinman.lib.sound.*;
public class SoundLoader {
public static function loadSounds():void{
var _local1:SoundManager;
var _local2:VoiceManager;
_local1 = GlobalSound.getInstance();
_local1.addSound("music1", fs_gamemusic_level1v1m);
_local1.addSound("music2", fs_gamemusic_level2v1m);
_local1.addSound("music3", fs_gamemusic_level3v1m);
_local1.registerSound("portal", Portal_Use);
_local1.registerSound("landPoison", land_cartoony);
_local1.registerSound("dewPickup", Projectile_Bottle_PU);
_local1.registerSound("dewHit", sfx_bottle_hit);
_local1.registerSound("throw", sfx_bottle_throw_alt);
_local1.registerSound("crumbsPickup", sfx_crumbs_pickup);
_local1.registerSound("crumbsHit", sfx_crumbs_hit_alt);
_local1.registerSound("push", sfx_boulder_alt);
_local1.registerSound("boulderLand", bouldercrash);
_local1.registerSound("firespoutOn", FireSpout_On);
_local1.registerSound("firespoutOff", FireSpout_Off);
_local1.registerSound("gemPickup1", Gem1_PU_alt5_2);
_local1.registerSound("gemPickup2", Gem1_PU_alt5);
_local1.registerSound("gemPickup3", Gem1_PU_alt5_3);
_local1.registerSound("multPickup", sfx_multiplier);
_local1.registerSound("jumpWestley1", jump_natural);
_local1.registerSound("jumpWestley2", jump_natural_alt);
_local1.registerSound("landWestley", land_natural);
_local1.registerSound("jumpButtercup1", sfx_Butter_jump_takeoff_2);
_local1.registerSound("jumpButtercup2", sfx_Butter_jump_takeoff_5);
_local1.registerSound("landButtercup", sfx_Butter_jump_takeoff_1);
_local1.registerSound("climbVine", Vine_Climb);
_local1.registerSound("dropVine", sfx_vine_release_alt2);
_local1.registerSound("attackMiss", sfx_attack_miss);
_local1.registerSound("attackHitSword", sfx_attack_sword);
_local1.registerSound("attackHitStick", sfx_attack_stick);
_local1.registerSound("bridgeUp", sfx_bridge_raise);
_local1.registerSound("bridgeDown", sfx_bridge_lower);
_local1.registerSound("rousFly", safx_rous_fly);
_local1.registerSound("rousAttack", sfx_rous_attack);
_local1.registerSound("rousDeath1", sfx_rous_death);
_local1.registerSound("rousDeath2", sfx_rous_death_alt);
_local1.registerSound("rousDive", sfx_rous_dive);
_local1.registerSound("scoreCount", sfx_shell_score);
_local1.registerSound("scoreBonus", sfx_shell_bonus);
_local1.registerSound("charSelect", sfx_shell_select);
_local2 = GlobalVoice.getInstance();
_local2.registerVO("voButtercupDamage1", fs_bcdamage);
_local2.registerVO("voButtercupDamage2", fs_wesbcdamage01);
_local2.registerVO("voButtercupDamage3", fs_wesbcdamage02);
_local2.registerVO("voButtercupSwitch1", fs_bcswitch);
_local2.registerVO("voButtercupSwitch2", fs_wesbcswitch02);
_local2.registerVO("voWestleyKill", fs_weskill);
_local2.registerVO("voWestleySwitch1", fs_wesswitch01);
_local2.registerVO("voWestleySwitch2", fs_wesswitch02);
_local2.registerVO("voWestleySwitch3", fs_wesswitch03);
_local2.registerVO("voWestleySuccess1", fs_wessuccess01);
_local2.registerVO("voWestleySuccess2", fs_wessuccess02);
_local2.registerVO("voWestleySuccess3", fs_wessuccess03);
_local2.registerVO("voWestleySuccess4", fs_wessuccess04);
_local2.registerVO("voWestleySuccess5", fs_wessuccess05);
_local2.registerVO("voWestleySuccess6", fs_wessuccess06);
}
}
}//package com.wwb.princessbride.fire_swamp
Section 262
//_loadingscreen_1 (FireSwampBrowser_fla._loadingscreen_1)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class _loadingscreen_1 extends MovieClip {
public var loadbar:MovieClip;
}
}//package FireSwampBrowser_fla
Section 263
//_preloader_6 (FireSwampBrowser_fla._preloader_6)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class _preloader_6 extends MovieClip {
public function _preloader_6(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 264
//_preloaderAudio_261 (FireSwampBrowser_fla._preloaderAudio_261)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class _preloaderAudio_261 extends MovieClip {
public function _preloaderAudio_261(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 265
//bonus_anim_232 (FireSwampBrowser_fla.bonus_anim_232)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class bonus_anim_232 extends MovieClip {
public var txt_mc:MovieClip;
public function bonus_anim_232(){
addFrameScript(1, frame2, 12, frame13);
}
function frame13(){
stop();
}
function frame2(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 266
//bonus_score_234 (FireSwampBrowser_fla.bonus_score_234)
package FireSwampBrowser_fla {
import flash.display.*;
import flash.text.*;
public dynamic class bonus_score_234 extends MovieClip {
public var txt:TextField;
}
}//package FireSwampBrowser_fla
Section 267
//buynow_actual_buttonglint_moving_272 (FireSwampBrowser_fla.buynow_actual_buttonglint_moving_272)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class buynow_actual_buttonglint_moving_272 extends MovieClip {
public function buynow_actual_buttonglint_moving_272(){
addFrameScript(32, frame33);
}
function frame33(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 268
//color_coil_10 (FireSwampBrowser_fla.color_coil_10)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class color_coil_10 extends MovieClip {
public var fill:MovieClip;
}
}//package FireSwampBrowser_fla
Section 269
//effectsparkle_modified_202 (FireSwampBrowser_fla.effectsparkle_modified_202)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class effectsparkle_modified_202 extends MovieClip {
public function effectsparkle_modified_202(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 270
//gemsparkleeffect_217 (FireSwampBrowser_fla.gemsparkleeffect_217)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class gemsparkleeffect_217 extends MovieClip {
public function gemsparkleeffect_217(){
addFrameScript(0, frame1, 23, frame24);
}
function frame1(){
stop();
}
function frame24(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 271
//gemui_215 (FireSwampBrowser_fla.gemui_215)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class gemui_215 extends MovieClip {
public var sparkle:MovieClip;
public function gemui_215(){
addFrameScript(1, frame2);
}
function frame2(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 272
//MainTimeline (FireSwampBrowser_fla.MainTimeline)
package FireSwampBrowser_fla {
import com.wwb.princessbride.fire_swamp.*;
import flash.events.*;
import com.workinman.paradise.*;
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.media.*;
import flash.net.*;
import princessbride.events.*;
import flash.text.*;
import flash.geom.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.filters.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var tRatio:Number;
public var loader:MovieClip;
public var tBrowser:Boolean;
public var tGameName:String;
public var game_container:MovieClip;
public var _timer:Timer;
public var tIsDrawn:Boolean;
public var tStandAlone:Boolean;
public var tTimeline;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2);
}
public function _onEventRemoved(_arg1:Event):void{
}
public function _onEventGameInit(_arg1:GameEvent):void{
GameState.getInstance().setConfigOption("naturalExit", String(_arg1.getNaturalExit()));
tGameName = _arg1.getGameName();
tTimeline.beginGame(_arg1.getBasePath());
}
public function _onRefocusStage(_arg1:Event):void{
stage.focus = this;
}
public function _timerHandler(_arg1:Event):void{
tRatio = (loaderInfo.bytesLoaded / loaderInfo.bytesTotal);
loader.loadbar.width = (tRatio * 600);
if (tRatio == 1){
_timer.removeEventListener("timer", _timerHandler);
_timer.stop();
_timer = null;
gotoAndStop(2);
};
}
public function _onEventGameStart(_arg1:GameEvent):void{
GameState.getInstance().setConfigOption("baseScore", String(_arg1.getScore()));
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_START_GAME_AT_LEVEL, {level:(_arg1.getLevel() - 1)}));
}
public function exitGame(){
_removeEventListeners();
tTimeline.exitGame();
}
public function _onKeyDown(_arg1:KeyboardEvent){
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_KEY_DOWN, {keyCode:_arg1.keyCode, charCode:_arg1.charCode}));
}
public function _removeEventListeners():void{
if (tIsDrawn){
stage.removeEventListener(KeyboardEvent.KEY_DOWN, _onKeyDown);
stage.removeEventListener(KeyboardEvent.KEY_UP, _onKeyUp);
};
removeEventListener(GameEvent.INIT, _onEventGameInit);
removeEventListener(GameEvent.START, _onEventGameStart);
removeEventListener(Event.REMOVED_FROM_STAGE, _onEventRemoved);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.SHELL_QUIT, _onShellQuit);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.SHELL_MENU, _onShellMenu);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.SHELL_HELP, _onShellHelp);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.SHELL_MAP, _onShellMap);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_WIPE_LOAD, _onWipeLoad);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_WIPE_REMOVE, _onWipeRemove);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.SHELL_OUTRO, _onShellOutro);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_GAME_LOAD_COMPLETE, _onEventGameReady);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.EVENT_REPORT_LEVEL_COMPLETE_TO_SHELL, _onEventLevelComplete);
WorkinDispatcher.getInstance().removeEventListener(FireSwampConfig.REFOCUS_STAGE, _onRefocusStage);
}
public function _addEventListeners():void{
addEventListener(GameEvent.INIT, _onEventGameInit);
addEventListener(GameEvent.START, _onEventGameStart);
addEventListener(Event.REMOVED_FROM_STAGE, _onEventRemoved);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.SHELL_QUIT, _onShellQuit);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.SHELL_MENU, _onShellMenu);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.SHELL_HELP, _onShellHelp);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.SHELL_MAP, _onShellMap);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.SHELL_OUTRO, _onShellOutro);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_WIPE_LOAD, _onWipeLoad);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_WIPE_REMOVE, _onWipeRemove);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_GAME_LOAD_COMPLETE, _onEventGameReady);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.EVENT_REPORT_LEVEL_COMPLETE_TO_SHELL, _onEventLevelComplete);
WorkinDispatcher.getInstance().addEventListener(FireSwampConfig.REFOCUS_STAGE, _onRefocusStage);
}
public function _onWipeLoad(_arg1:EData):void{
addChild(_arg1.data.swf);
}
public function _onEventGameReady(_arg1:Event):void{
if (tStandAlone){
GameState.getInstance().setConfigOption("baseScore", "0");
GameState.getInstance().setConfigOption("naturalExit", "10");
WorkinDispatcher.getInstance().dispatchEvent(new EData(FireSwampConfig.EVENT_START_GAME_AT_LEVEL, {level:0}));
} else {
dispatchEvent(new GameEvent(GameEvent.READY));
};
}
public function _onKeyUp(_arg1:KeyboardEvent){
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_KEY_UP, {keyCode:_arg1.keyCode, charCode:_arg1.charCode}));
}
function frame2(){
tBrowser = true;
tStandAlone = true;
tIsDrawn = false;
tGameName = "";
try {
stage.addEventListener(KeyboardEvent.KEY_DOWN, _onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, _onKeyUp);
stage.focus = this;
tIsDrawn = true;
} catch(pError:Error) {
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
};
_addEventListeners();
tTimeline = new GameTimeline(tBrowser, tStandAlone);
game_container.addChild(tTimeline);
stop();
}
public function _onEventLevelComplete(_arg1:EData):void{
if (tStandAlone){
return;
};
dispatchEvent(new GameEvent(GameEvent.SAVE, _arg1.data.level, _arg1.data.score, tGameName));
}
function frame1(){
_timer = new Timer(0, 0);
_timer.addEventListener("timer", _timerHandler);
_timer.start();
tRatio = 0;
stop();
}
public function _onShellHelp(_arg1:Event):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_SHOW_HELP));
}
public function _onShellQuit(_arg1:Event):void{
exitGame();
dispatchEvent(new GameEvent(GameEvent.QUIT));
}
public function _onShellMap(_arg1:Event):void{
exitGame();
dispatchEvent(new GameEvent(GameEvent.QUIT));
}
public function _onWipeRemove(_arg1:EData):void{
removeChild(_arg1.data.swf);
}
public function _onDrawn(_arg1:Event){
stage.addEventListener(KeyboardEvent.KEY_DOWN, _onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, _onKeyUp);
stage.focus = this;
tIsDrawn = true;
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
}
public function _onShellOutro(_arg1:Event):void{
exitGame();
dispatchEvent(new GameEvent(GameEvent.OUTRO));
}
public function _onShellMenu(_arg1:Event):void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(FireSwampConfig.EVENT_SHOW_PAUSE));
}
}
}//package FireSwampBrowser_fla
Section 273
//pr_branch_01_123 (FireSwampBrowser_fla.pr_branch_01_123)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class pr_branch_01_123 extends MovieClip {
public var fill:MovieClip;
}
}//package FireSwampBrowser_fla
Section 274
//pr_button_01_130 (FireSwampBrowser_fla.pr_button_01_130)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class pr_button_01_130 extends MovieClip {
public var fill:MovieClip;
}
}//package FireSwampBrowser_fla
Section 275
//score_header_229 (FireSwampBrowser_fla.score_header_229)
package FireSwampBrowser_fla {
import flash.display.*;
public dynamic class score_header_229 extends MovieClip {
public function score_header_229(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package FireSwampBrowser_fla
Section 276
//GameEvent (princessbride.events.GameEvent)
package princessbride.events {
import flash.events.*;
public class GameEvent extends Event {
private var level:Number;
private var score:uint;
private var basePath:String;
private var gameName:String;
private var naturalExit:Number;
public static const START:String = "gameEventStart";
public static const READY:String = "gameEventReady";
public static const OUTRO:String = "gameEventOutro";
public static const QUIT:String = "gameEventQuit";
public static const INIT:String = "gameEventInit";
public static const FINISH:String = "gameEventFinish";
public static const SAVE:String = "gameEventSave";
public function GameEvent(_arg1:String, _arg2:Number=1, _arg3:uint=0, _arg4:String="", _arg5:String="", _arg6:Number=1.79769313486232E308, _arg7:Boolean=true, _arg8:Boolean=false){
super(_arg1, _arg7, _arg8);
this.level = _arg2;
this.score = _arg3;
this.gameName = _arg4;
this.basePath = _arg5;
this.naturalExit = _arg6;
}
public function getBasePath():String{
return (basePath);
}
public function getGameName():String{
return (gameName);
}
public function getLevel():Number{
return (level);
}
public function getScore():uint{
return (score);
}
override public function toString():String{
return ((((((((((((("GameEvent[type:" + type) + ", level:") + level) + ", score:") + score) + ", gameName:") + gameName) + ", basePath:") + basePath) + ", naturalExit:") + naturalExit) + "]"));
}
override public function clone():Event{
return (new GameEvent(type, level, score, gameName, basePath, naturalExit, bubbles, cancelable));
}
public function getNaturalExit():Number{
return (naturalExit);
}
}
}//package princessbride.events
Section 277
//PBButton (princessbride.PBButton)
package princessbride {
import flash.display.*;
public class PBButton extends SimpleButton {
public function PBButton(_arg1:String){
upState = new ButtonDisplayState(_arg1, 0x2E2E2E);
overState = new ButtonDisplayState(_arg1, 10992959);
downState = overState;
hitTestState = upState;
}
}
}//package princessbride
import flash.display.*;
import flash.text.*;
import flash.geom.*;
class ButtonField extends TextField {
private static const FMT:TextFormat = new TextFormat("Booter - One Zero", 20, 0xFFFFFF);
private static const ALT_FMT:TextFormat = new TextFormat("Arial", 16, 0xFFFFFF);
private function ButtonField(_arg1:String){
antiAliasType = AntiAliasType.ADVANCED;
autoSize = TextFieldAutoSize.LEFT;
defaultTextFormat = FMT;
embedFonts = true;
selectable = false;
this.text = _arg1;
if (textHeight == 0){
embedFonts = false;
defaultTextFormat = ALT_FMT;
setTextFormat(ALT_FMT);
};
}
override public function set text(_arg1:String):void{
super.text = _arg1.toUpperCase();
}
override public function appendText(_arg1:String):void{
super.appendText(_arg1.toUpperCase());
}
}
class ButtonDisplayState extends Sprite {
private static const VERT_PADDING:int = 24;
private static const HORIZ_PADDING:int = 42;
private function ButtonDisplayState(_arg1:String, _arg2:uint){
createLabel(_arg1);
createBackground(_arg2);
}
private function createLabel(_arg1:String):void{
var _local2:ButtonField;
_local2 = new ButtonField(_arg1);
_local2.x = -((_local2.width / 2));
_local2.y = -((_local2.height / 2));
addChild(_local2);
}
private function createBackground(_arg1:uint):void{
var _local2:int;
var _local3:int;
var _local4:Shape;
var _local5:Matrix;
_local2 = (getChildAt(0).width + HORIZ_PADDING);
_local3 = (getChildAt(0).height + VERT_PADDING);
_local4 = new Shape();
_local4.graphics.lineStyle(2, _arg1, 1, true);
_local4.graphics.beginFill(0, 1);
_local4.graphics.drawRoundRect(-((_local2 / 2)), -((_local3 / 2)), _local2, _local3, _local3, _local3);
_local4.graphics.endFill();
_local5 = new Matrix();
_local5.createGradientBox(_local2, (_local3 * 0.75), (Math.PI / 2), -((_local2 / 2)), -((_local3 / 2)));
_local4.graphics.lineStyle();
_local4.graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xFFFFFF], [0.22, 0], [0, 0xFF], _local5);
_local4.graphics.drawRoundRect(-((_local2 / 2)), -((_local3 / 2)), _local2, _local3, _local3, _local3);
_local4.graphics.endFill();
addChildAt(_local4, 0);
}
}
Section 278
//AssetArrowIdle (AssetArrowIdle)
package {
import flash.display.*;
public dynamic class AssetArrowIdle extends MovieClip {
}
}//package
Section 279
//AssetArrowTarget (AssetArrowTarget)
package {
import flash.display.*;
public dynamic class AssetArrowTarget extends MovieClip {
}
}//package
Section 280
//AssetBlackBottom (AssetBlackBottom)
package {
import flash.display.*;
public dynamic class AssetBlackBottom extends MovieClip {
}
}//package
Section 281
//AssetBoulder (AssetBoulder)
package {
import flash.display.*;
public dynamic class AssetBoulder extends MovieClip {
}
}//package
Section 282
//AssetBridgeClose (AssetBridgeClose)
package {
import flash.display.*;
public dynamic class AssetBridgeClose extends MovieClip {
public var color:MovieClip;
public function AssetBridgeClose(){
addFrameScript(38, frame39);
}
function frame39(){
stop();
}
}
}//package
Section 283
//AssetBridgeIdleClose (AssetBridgeIdleClose)
package {
import flash.display.*;
public dynamic class AssetBridgeIdleClose extends MovieClip {
public var color:MovieClip;
}
}//package
Section 284
//AssetBridgeIdleOpen (AssetBridgeIdleOpen)
package {
import flash.display.*;
public dynamic class AssetBridgeIdleOpen extends MovieClip {
public var color:MovieClip;
}
}//package
Section 285
//AssetBridgeOpen (AssetBridgeOpen)
package {
import flash.display.*;
public dynamic class AssetBridgeOpen extends MovieClip {
public var color:MovieClip;
public function AssetBridgeOpen(){
addFrameScript(41, frame42);
}
function frame42(){
stop();
}
}
}//package
Section 286
//AssetButtercupAim (AssetButtercupAim)
package {
import flash.display.*;
public dynamic class AssetButtercupAim extends MovieClip {
}
}//package
Section 287
//AssetButtercupAttackJumpLeft (AssetButtercupAttackJumpLeft)
package {
import flash.display.*;
public dynamic class AssetButtercupAttackJumpLeft extends MovieClip {
public function AssetButtercupAttackJumpLeft(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package
Section 288
//AssetButtercupAttackJumpRight (AssetButtercupAttackJumpRight)
package {
import flash.display.*;
public dynamic class AssetButtercupAttackJumpRight extends MovieClip {
public function AssetButtercupAttackJumpRight(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package
Section 289
//AssetButtercupAttackLeft (AssetButtercupAttackLeft)
package {
import flash.display.*;
public dynamic class AssetButtercupAttackLeft extends MovieClip {
public function AssetButtercupAttackLeft(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package
Section 290
//AssetButtercupAttackRight (AssetButtercupAttackRight)
package {
import flash.display.*;
public dynamic class AssetButtercupAttackRight extends MovieClip {
public function AssetButtercupAttackRight(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package
Section 291
//AssetButtercupClimb (AssetButtercupClimb)
package {
import flash.display.*;
public dynamic class AssetButtercupClimb extends MovieClip {
}
}//package
Section 292
//AssetButtercupClimbDown (AssetButtercupClimbDown)
package {
import flash.display.*;
public dynamic class AssetButtercupClimbDown extends MovieClip {
}
}//package
Section 293
//AssetButtercupClimbTop (AssetButtercupClimbTop)
package {
import flash.display.*;
public dynamic class AssetButtercupClimbTop extends MovieClip {
public function AssetButtercupClimbTop(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package
Section 294
//AssetButtercupCrawl (AssetButtercupCrawl)
package {
import flash.display.*;
public dynamic class AssetButtercupCrawl extends MovieClip {
}
}//package
Section 295
//AssetButtercupCrouch (AssetButtercupCrouch)
package {
import flash.display.*;
public dynamic class AssetButtercupCrouch extends MovieClip {
}
}//package
Section 296
//AssetButtercupDamageFire (AssetButtercupDamageFire)
package {
import flash.display.*;
public dynamic class AssetButtercupDamageFire extends MovieClip {
}
}//package
Section 297
//AssetButtercupDamageMelee (AssetButtercupDamageMelee)
package {
import flash.display.*;
public dynamic class AssetButtercupDamageMelee extends MovieClip {
}
}//package
Section 298
//AssetButtercupDie (AssetButtercupDie)
package {
import flash.display.*;
public dynamic class AssetButtercupDie extends MovieClip {
}
}//package
Section 299
//AssetButtercupEdge (AssetButtercupEdge)
package {
import flash.display.*;
public dynamic class AssetButtercupEdge extends MovieClip {
}
}//package
Section 300
//AssetButtercupHold (AssetButtercupHold)
package {
import flash.display.*;
public dynamic class AssetButtercupHold extends MovieClip {
}
}//package
Section 301
//AssetButtercupIdle (AssetButtercupIdle)
package {
import flash.display.*;
public dynamic class AssetButtercupIdle extends MovieClip {
}
}//package
Section 302
//AssetButtercupIdleAnim (AssetButtercupIdleAnim)
package {
import flash.display.*;
public dynamic class AssetButtercupIdleAnim extends MovieClip {
}
}//package
Section 303
//AssetButtercupJumpDown (AssetButtercupJumpDown)
package {
import flash.display.*;
public dynamic class AssetButtercupJumpDown extends MovieClip {
public function AssetButtercupJumpDown(){
addFrameScript(11, frame12);
}
function frame12(){
gotoAndPlay(7);
}
}
}//package
Section 304
//AssetButtercupJumpLand (AssetButtercupJumpLand)
package {
import flash.display.*;
public dynamic class AssetButtercupJumpLand extends MovieClip {
}
}//package
Section 305
//AssetButtercupJumpUp (AssetButtercupJumpUp)
package {
import flash.display.*;
public dynamic class AssetButtercupJumpUp extends MovieClip {
public function AssetButtercupJumpUp(){
addFrameScript(0, frame1, 14, frame15);
}
function frame15(){
gotoAndPlay(9);
}
function frame1(){
gotoAndPlay(8);
}
}
}//package
Section 306
//AssetButtercupRun (AssetButtercupRun)
package {
import flash.display.*;
public dynamic class AssetButtercupRun extends MovieClip {
}
}//package
Section 307
//AssetButtercupSlide (AssetButtercupSlide)
package {
import flash.display.*;
public dynamic class AssetButtercupSlide extends MovieClip {
}
}//package
Section 308
//AssetButtercupSwingBack (AssetButtercupSwingBack)
package {
import flash.display.*;
public dynamic class AssetButtercupSwingBack extends MovieClip {
}
}//package
Section 309
//AssetButtercupSwingFore (AssetButtercupSwingFore)
package {
import flash.display.*;
public dynamic class AssetButtercupSwingFore extends MovieClip {
}
}//package
Section 310
//AssetButtercupThrow (AssetButtercupThrow)
package {
import flash.display.*;
public dynamic class AssetButtercupThrow extends MovieClip {
}
}//package
Section 311
//AssetButtercupVictory (AssetButtercupVictory)
package {
import flash.display.*;
public dynamic class AssetButtercupVictory extends MovieClip {
}
}//package
Section 312
//AssetDeathFlash (AssetDeathFlash)
package {
import flash.display.*;
public dynamic class AssetDeathFlash extends MovieClip {
public function AssetDeathFlash(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 313
//AssetEffectFireHeat (AssetEffectFireHeat)
package {
import flash.display.*;
public dynamic class AssetEffectFireHeat extends MovieClip {
}
}//package
Section 314
//AssetEffectSparkle (AssetEffectSparkle)
package {
import flash.display.*;
public dynamic class AssetEffectSparkle extends MovieClip {
}
}//package
Section 315
//AssetEffectWater (AssetEffectWater)
package {
import flash.display.*;
public dynamic class AssetEffectWater extends MovieClip {
}
}//package
Section 316
//AssetFireSpanLarge1 (AssetFireSpanLarge1)
package {
import flash.display.*;
public dynamic class AssetFireSpanLarge1 extends MovieClip {
}
}//package
Section 317
//AssetFireSpanLarge2 (AssetFireSpanLarge2)
package {
import flash.display.*;
public dynamic class AssetFireSpanLarge2 extends MovieClip {
}
}//package
Section 318
//AssetFireSpanLarge3 (AssetFireSpanLarge3)
package {
import flash.display.*;
public dynamic class AssetFireSpanLarge3 extends MovieClip {
}
}//package
Section 319
//AssetFireSpanSmall1 (AssetFireSpanSmall1)
package {
import flash.display.*;
public dynamic class AssetFireSpanSmall1 extends MovieClip {
}
}//package
Section 320
//AssetFireSpanSmall2 (AssetFireSpanSmall2)
package {
import flash.display.*;
public dynamic class AssetFireSpanSmall2 extends MovieClip {
}
}//package
Section 321
//AssetFireSpanSmall3 (AssetFireSpanSmall3)
package {
import flash.display.*;
public dynamic class AssetFireSpanSmall3 extends MovieClip {
}
}//package
Section 322
//AssetFireSpoutIdleOff (AssetFireSpoutIdleOff)
package {
import flash.display.*;
public dynamic class AssetFireSpoutIdleOff extends MovieClip {
}
}//package
Section 323
//AssetFireSpoutIdleOn (AssetFireSpoutIdleOn)
package {
import flash.display.*;
public dynamic class AssetFireSpoutIdleOn extends MovieClip {
}
}//package
Section 324
//AssetFireSpoutOff (AssetFireSpoutOff)
package {
import flash.display.*;
public dynamic class AssetFireSpoutOff extends MovieClip {
public function AssetFireSpoutOff(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 325
//AssetFireSpoutOn (AssetFireSpoutOn)
package {
import flash.display.*;
public dynamic class AssetFireSpoutOn extends MovieClip {
public function AssetFireSpoutOn(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package
Section 326
//AssetFireTransition (AssetFireTransition)
package {
import com.workinman.lib.display.*;
public dynamic class AssetFireTransition extends WorkinMovieClip {
}
}//package
Section 327
//AssetFlyRousAttack (AssetFlyRousAttack)
package {
import flash.display.*;
public dynamic class AssetFlyRousAttack extends MovieClip {
public function AssetFlyRousAttack(){
addFrameScript(26, frame27);
}
function frame27(){
stop();
}
}
}//package
Section 328
//AssetFlyRousDamage (AssetFlyRousDamage)
package {
import flash.display.*;
public dynamic class AssetFlyRousDamage extends MovieClip {
}
}//package
Section 329
//AssetFlyRousDead (AssetFlyRousDead)
package {
import flash.display.*;
public dynamic class AssetFlyRousDead extends MovieClip {
public function AssetFlyRousDead(){
addFrameScript(22, frame23);
}
function frame23(){
stop();
}
}
}//package
Section 330
//AssetFlyRousDive (AssetFlyRousDive)
package {
import flash.display.*;
public dynamic class AssetFlyRousDive extends MovieClip {
}
}//package
Section 331
//AssetFlyRousFly (AssetFlyRousFly)
package {
import flash.display.*;
public dynamic class AssetFlyRousFly extends MovieClip {
}
}//package
Section 332
//AssetFlyRousPause (AssetFlyRousPause)
package {
import flash.display.*;
public dynamic class AssetFlyRousPause extends MovieClip {
}
}//package
Section 333
//AssetGemIdle (AssetGemIdle)
package {
import flash.display.*;
public dynamic class AssetGemIdle extends MovieClip {
}
}//package
Section 334
//AssetGemThreeIdle (AssetGemThreeIdle)
package {
import flash.display.*;
public dynamic class AssetGemThreeIdle extends MovieClip {
}
}//package
Section 335
//AssetGemThreeVanish (AssetGemThreeVanish)
package {
import flash.display.*;
public dynamic class AssetGemThreeVanish extends MovieClip {
public function AssetGemThreeVanish(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package
Section 336
//AssetGemTwoIdle (AssetGemTwoIdle)
package {
import flash.display.*;
public dynamic class AssetGemTwoIdle extends MovieClip {
}
}//package
Section 337
//AssetGemTwoVanish (AssetGemTwoVanish)
package {
import flash.display.*;
public dynamic class AssetGemTwoVanish extends MovieClip {
public function AssetGemTwoVanish(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package
Section 338
//AssetGemVanish (AssetGemVanish)
package {
import flash.display.*;
public dynamic class AssetGemVanish extends MovieClip {
public function AssetGemVanish(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package
Section 339
//AssetGoalIdle (AssetGoalIdle)
package {
import flash.display.*;
public dynamic class AssetGoalIdle extends MovieClip {
}
}//package
Section 340
//AssetIntroWipe (AssetIntroWipe)
package {
import flash.events.*;
import flash.display.*;
public dynamic class AssetIntroWipe extends MovieClip {
public var btn_play:SimpleButton;
public function AssetIntroWipe(){
addFrameScript(178, frame179, 179, frame180, 308, frame309);
}
function frame180(){
play();
}
function frame179(){
stop();
btn_play.addEventListener(MouseEvent.CLICK, onButtonClicked);
}
function frame309(){
dispatchEvent(new Event(Event.INIT));
stop();
}
public function onButtonClicked(_arg1:MouseEvent):void{
this.nextFrame();
dispatchEvent(new Event(Event.COMPLETE));
btn_play.removeEventListener(MouseEvent.CLICK, onButtonClicked);
}
}
}//package
Section 341
//AssetLeverDown (AssetLeverDown)
package {
import flash.display.*;
public dynamic class AssetLeverDown extends MovieClip {
public var color:MovieClip;
}
}//package
Section 342
//AssetLeverToDown (AssetLeverToDown)
package {
import flash.display.*;
public dynamic class AssetLeverToDown extends MovieClip {
public var color:MovieClip;
public function AssetLeverToDown(){
addFrameScript(16, frame17);
}
function frame17(){
stop();
}
}
}//package
Section 343
//AssetLeverToUp (AssetLeverToUp)
package {
import flash.display.*;
public dynamic class AssetLeverToUp extends MovieClip {
public var color:MovieClip;
public function AssetLeverToUp(){
addFrameScript(16, frame17);
}
function frame17(){
stop();
}
}
}//package
Section 344
//AssetLeverUp (AssetLeverUp)
package {
import flash.display.*;
public dynamic class AssetLeverUp extends MovieClip {
public var color:MovieClip;
}
}//package
Section 345
//AssetMultiplierHudFive (AssetMultiplierHudFive)
package {
import flash.display.*;
public dynamic class AssetMultiplierHudFive extends MovieClip {
}
}//package
Section 346
//AssetMultiplierHudTen (AssetMultiplierHudTen)
package {
import flash.display.*;
public dynamic class AssetMultiplierHudTen extends MovieClip {
}
}//package
Section 347
//AssetMultiplierHudTwo (AssetMultiplierHudTwo)
package {
import flash.display.*;
public dynamic class AssetMultiplierHudTwo extends MovieClip {
}
}//package
Section 348
//AssetMultiplierIdleFive (AssetMultiplierIdleFive)
package {
import flash.display.*;
public dynamic class AssetMultiplierIdleFive extends MovieClip {
}
}//package
Section 349
//AssetMultiplierIdleTen (AssetMultiplierIdleTen)
package {
import flash.display.*;
public dynamic class AssetMultiplierIdleTen extends MovieClip {
}
}//package
Section 350
//AssetMultiplierIdleTwo (AssetMultiplierIdleTwo)
package {
import flash.display.*;
public dynamic class AssetMultiplierIdleTwo extends MovieClip {
}
}//package
Section 351
//AssetMultiplierVanishFive (AssetMultiplierVanishFive)
package {
import flash.display.*;
public dynamic class AssetMultiplierVanishFive extends MovieClip {
public function AssetMultiplierVanishFive(){
addFrameScript(20, frame21);
}
function frame21(){
stop();
}
}
}//package
Section 352
//AssetMultiplierVanishTen (AssetMultiplierVanishTen)
package {
import flash.display.*;
public dynamic class AssetMultiplierVanishTen extends MovieClip {
public function AssetMultiplierVanishTen(){
addFrameScript(20, frame21);
}
function frame21(){
stop();
}
}
}//package
Section 353
//AssetMultiplierVanishTwo (AssetMultiplierVanishTwo)
package {
import flash.display.*;
public dynamic class AssetMultiplierVanishTwo extends MovieClip {
public function AssetMultiplierVanishTwo(){
addFrameScript(20, frame21);
}
function frame21(){
stop();
}
}
}//package
Section 354
//AssetPadDown (AssetPadDown)
package {
import flash.display.*;
public dynamic class AssetPadDown extends MovieClip {
public var color:MovieClip;
}
}//package
Section 355
//AssetPadToDown (AssetPadToDown)
package {
import flash.display.*;
public dynamic class AssetPadToDown extends MovieClip {
public var color:MovieClip;
public function AssetPadToDown(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package
Section 356
//AssetPadToUp (AssetPadToUp)
package {
import flash.display.*;
public dynamic class AssetPadToUp extends MovieClip {
public var color:MovieClip;
public function AssetPadToUp(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package
Section 357
//AssetPadUp (AssetPadUp)
package {
import flash.display.*;
public dynamic class AssetPadUp extends MovieClip {
public var color:MovieClip;
}
}//package
Section 358
//AssetRousAttack (AssetRousAttack)
package {
import flash.display.*;
public dynamic class AssetRousAttack extends MovieClip {
public function AssetRousAttack(){
addFrameScript(21, frame22);
}
function frame22(){
stop();
}
}
}//package
Section 359
//AssetRousDamage (AssetRousDamage)
package {
import flash.display.*;
public dynamic class AssetRousDamage extends MovieClip {
}
}//package
Section 360
//AssetRousDead (AssetRousDead)
package {
import flash.display.*;
public dynamic class AssetRousDead extends MovieClip {
public function AssetRousDead(){
addFrameScript(25, frame26);
}
function frame26(){
stop();
}
}
}//package
Section 361
//AssetRousEat (AssetRousEat)
package {
import flash.display.*;
public dynamic class AssetRousEat extends MovieClip {
}
}//package
Section 362
//AssetRousIdle (AssetRousIdle)
package {
import flash.display.*;
public dynamic class AssetRousIdle extends MovieClip {
}
}//package
Section 363
//AssetRousPause (AssetRousPause)
package {
import flash.display.*;
public dynamic class AssetRousPause extends MovieClip {
}
}//package
Section 364
//AssetRousRun (AssetRousRun)
package {
import flash.display.*;
public dynamic class AssetRousRun extends MovieClip {
}
}//package
Section 365
//AssetRousSlide (AssetRousSlide)
package {
import flash.display.*;
public dynamic class AssetRousSlide extends MovieClip {
}
}//package
Section 366
//AssetRousWalk (AssetRousWalk)
package {
import flash.display.*;
public dynamic class AssetRousWalk extends MovieClip {
}
}//package
Section 367
//AssetScoreEffect (AssetScoreEffect)
package {
import flash.display.*;
import flash.text.*;
public dynamic class AssetScoreEffect extends MovieClip {
public var txt:TextField;
}
}//package
Section 368
//AssetStickIdle (AssetStickIdle)
package {
import flash.display.*;
public dynamic class AssetStickIdle extends MovieClip {
}
}//package
Section 369
//AssetStickVanish (AssetStickVanish)
package {
import flash.display.*;
public dynamic class AssetStickVanish extends MovieClip {
public function AssetStickVanish(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 370
//AssetTutorial1 (AssetTutorial1)
package {
import flash.display.*;
public dynamic class AssetTutorial1 extends MovieClip {
}
}//package
Section 371
//AssetTutorial2 (AssetTutorial2)
package {
import flash.display.*;
public dynamic class AssetTutorial2 extends MovieClip {
}
}//package
Section 372
//AssetTutorial3 (AssetTutorial3)
package {
import flash.display.*;
public dynamic class AssetTutorial3 extends MovieClip {
}
}//package
Section 373
//AssetTutorial4 (AssetTutorial4)
package {
import flash.display.*;
public dynamic class AssetTutorial4 extends MovieClip {
}
}//package
Section 374
//AssetTutorial5 (AssetTutorial5)
package {
import flash.display.*;
public dynamic class AssetTutorial5 extends MovieClip {
}
}//package
Section 375
//AssetTutorialShell (AssetTutorialShell)
package {
import flash.display.*;
public dynamic class AssetTutorialShell extends MovieClip {
public var mcBlockBack:MovieClip;
}
}//package
Section 376
//AssetWaterSpanLarge1 (AssetWaterSpanLarge1)
package {
import flash.display.*;
public dynamic class AssetWaterSpanLarge1 extends MovieClip {
}
}//package
Section 377
//AssetWaterSpanLarge2 (AssetWaterSpanLarge2)
package {
import flash.display.*;
public dynamic class AssetWaterSpanLarge2 extends MovieClip {
}
}//package
Section 378
//AssetWaterSpanLarge3 (AssetWaterSpanLarge3)
package {
import flash.display.*;
public dynamic class AssetWaterSpanLarge3 extends MovieClip {
}
}//package
Section 379
//AssetWaterSpanSmall1 (AssetWaterSpanSmall1)
package {
import flash.display.*;
public dynamic class AssetWaterSpanSmall1 extends MovieClip {
}
}//package
Section 380
//AssetWaterSpanSmall2 (AssetWaterSpanSmall2)
package {
import flash.display.*;
public dynamic class AssetWaterSpanSmall2 extends MovieClip {
}
}//package
Section 381
//AssetWaterSpanSmall3 (AssetWaterSpanSmall3)
package {
import flash.display.*;
public dynamic class AssetWaterSpanSmall3 extends MovieClip {
}
}//package
Section 382
//AssetWestleyAim (AssetWestleyAim)
package {
import flash.display.*;
public dynamic class AssetWestleyAim extends MovieClip {
}
}//package
Section 383
//AssetWestleyAttackJumpLeft (AssetWestleyAttackJumpLeft)
package {
import flash.display.*;
public dynamic class AssetWestleyAttackJumpLeft extends MovieClip {
public function AssetWestleyAttackJumpLeft(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package
Section 384
//AssetWestleyAttackJumpRight (AssetWestleyAttackJumpRight)
package {
import flash.display.*;
public dynamic class AssetWestleyAttackJumpRight extends MovieClip {
public function AssetWestleyAttackJumpRight(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package
Section 385
//AssetWestleyAttackLeft (AssetWestleyAttackLeft)
package {
import flash.display.*;
public dynamic class AssetWestleyAttackLeft extends MovieClip {
public function AssetWestleyAttackLeft(){
addFrameScript(13, frame14);
}
function frame14(){
stop();
}
}
}//package
Section 386
//AssetWestleyAttackRight (AssetWestleyAttackRight)
package {
import flash.display.*;
public dynamic class AssetWestleyAttackRight extends MovieClip {
public function AssetWestleyAttackRight(){
addFrameScript(13, frame14);
}
function frame14(){
stop();
}
}
}//package
Section 387
//AssetWestleyClimb (AssetWestleyClimb)
package {
import flash.display.*;
public dynamic class AssetWestleyClimb extends MovieClip {
}
}//package
Section 388
//AssetWestleyClimbTop (AssetWestleyClimbTop)
package {
import flash.display.*;
public dynamic class AssetWestleyClimbTop extends MovieClip {
public function AssetWestleyClimbTop(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package
Section 389
//AssetWestleyCrouch (AssetWestleyCrouch)
package {
import flash.display.*;
public dynamic class AssetWestleyCrouch extends MovieClip {
}
}//package
Section 390
//AssetWestleyDamageFire (AssetWestleyDamageFire)
package {
import flash.display.*;
public dynamic class AssetWestleyDamageFire extends MovieClip {
}
}//package
Section 391
//AssetWestleyDamageMelee (AssetWestleyDamageMelee)
package {
import flash.display.*;
public dynamic class AssetWestleyDamageMelee extends MovieClip {
}
}//package
Section 392
//AssetWestleyDie (AssetWestleyDie)
package {
import flash.display.*;
public dynamic class AssetWestleyDie extends MovieClip {
}
}//package
Section 393
//AssetWestleyEdge (AssetWestleyEdge)
package {
import flash.display.*;
public dynamic class AssetWestleyEdge extends MovieClip {
}
}//package
Section 394
//AssetWestleyHold (AssetWestleyHold)
package {
import flash.display.*;
public dynamic class AssetWestleyHold extends MovieClip {
}
}//package
Section 395
//AssetWestleyIdle (AssetWestleyIdle)
package {
import flash.display.*;
public dynamic class AssetWestleyIdle extends MovieClip {
}
}//package
Section 396
//AssetWestleyIdleAnim (AssetWestleyIdleAnim)
package {
import flash.display.*;
public dynamic class AssetWestleyIdleAnim extends MovieClip {
}
}//package
Section 397
//AssetWestleyJumpDown (AssetWestleyJumpDown)
package {
import flash.display.*;
public dynamic class AssetWestleyJumpDown extends MovieClip {
public function AssetWestleyJumpDown(){
addFrameScript(11, frame12);
}
function frame12(){
gotoAndPlay(7);
}
}
}//package
Section 398
//AssetWestleyJumpLand (AssetWestleyJumpLand)
package {
import flash.display.*;
public dynamic class AssetWestleyJumpLand extends MovieClip {
}
}//package
Section 399
//AssetWestleyJumpUp (AssetWestleyJumpUp)
package {
import flash.display.*;
public dynamic class AssetWestleyJumpUp extends MovieClip {
public function AssetWestleyJumpUp(){
addFrameScript(0, frame1, 13, frame14);
}
function frame14(){
gotoAndPlay(9);
}
function frame1(){
gotoAndPlay(8);
}
}
}//package
Section 400
//AssetWestleyPush (AssetWestleyPush)
package {
import flash.display.*;
public dynamic class AssetWestleyPush extends MovieClip {
}
}//package
Section 401
//AssetWestleyRun (AssetWestleyRun)
package {
import flash.display.*;
public dynamic class AssetWestleyRun extends MovieClip {
}
}//package
Section 402
//AssetWestleySlide (AssetWestleySlide)
package {
import flash.display.*;
public dynamic class AssetWestleySlide extends MovieClip {
}
}//package
Section 403
//AssetWestleySwingBack (AssetWestleySwingBack)
package {
import flash.display.*;
public dynamic class AssetWestleySwingBack extends MovieClip {
}
}//package
Section 404
//AssetWestleySwingFore (AssetWestleySwingFore)
package {
import flash.display.*;
public dynamic class AssetWestleySwingFore extends MovieClip {
}
}//package
Section 405
//AssetWestleySwitch (AssetWestleySwitch)
package {
import flash.display.*;
public dynamic class AssetWestleySwitch extends MovieClip {
public function AssetWestleySwitch(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package
Section 406
//AssetWestleyThrow (AssetWestleyThrow)
package {
import flash.display.*;
public dynamic class AssetWestleyThrow extends MovieClip {
}
}//package
Section 407
//AssetWestleyVictory (AssetWestleyVictory)
package {
import flash.display.*;
public dynamic class AssetWestleyVictory extends MovieClip {
}
}//package
Section 408
//AssetVineCoiled (AssetVineCoiled)
package {
import flash.display.*;
public dynamic class AssetVineCoiled extends MovieClip {
}
}//package
Section 409
//AssetVineIdle (AssetVineIdle)
package {
import flash.display.*;
public dynamic class AssetVineIdle extends MovieClip {
}
}//package
Section 410
//bg_swamp_fog (bg_swamp_fog)
package {
import flash.display.*;
public dynamic class bg_swamp_fog extends MovieClip {
}
}//package
Section 411
//bg_swamp_horizon (bg_swamp_horizon)
package {
import flash.display.*;
public dynamic class bg_swamp_horizon extends MovieClip {
}
}//package
Section 412
//bg_swamp_mid (bg_swamp_mid)
package {
import flash.display.*;
public dynamic class bg_swamp_mid extends MovieClip {
}
}//package
Section 413
//Booter (Booter)
package {
import flash.text.*;
public dynamic class Booter extends Font {
}
}//package
Section 414
//bouldercrash (bouldercrash)
package {
import flash.media.*;
public dynamic class bouldercrash extends Sound {
}
}//package
Section 415
//buynow_actual_buttonBuyNow (buynow_actual_buttonBuyNow)
package {
import com.wwb.princessbride.fire_swamp.ui.interfaces.*;
public dynamic class buynow_actual_buttonBuyNow extends ButtonBuyNow {
}
}//package
Section 416
//buynow_btn_next (buynow_btn_next)
package {
import com.wwb.princessbride.fire_swamp.ui.interfaces.*;
public dynamic class buynow_btn_next extends ButtonBuyNow {
}
}//package
Section 417
//Fire_boulder_idle (Fire_boulder_idle)
package {
import flash.display.*;
public dynamic class Fire_boulder_idle extends MovieClip {
}
}//package
Section 418
//FireSpout_Off (FireSpout_Off)
package {
import flash.media.*;
public dynamic class FireSpout_Off extends Sound {
}
}//package
Section 419
//FireSpout_On (FireSpout_On)
package {
import flash.media.*;
public dynamic class FireSpout_On extends Sound {
}
}//package
Section 420
//fs_bcdamage (fs_bcdamage)
package {
import flash.media.*;
public dynamic class fs_bcdamage extends Sound {
}
}//package
Section 421
//fs_bcswitch (fs_bcswitch)
package {
import flash.media.*;
public dynamic class fs_bcswitch extends Sound {
}
}//package
Section 422
//fs_bg0004 (fs_bg0004)
package {
import flash.display.*;
public dynamic class fs_bg0004 extends MovieClip {
}
}//package
Section 423
//fs_bg0007 (fs_bg0007)
package {
import flash.display.*;
public dynamic class fs_bg0007 extends MovieClip {
}
}//package
Section 424
//fs_bg0008 (fs_bg0008)
package {
import flash.display.*;
public dynamic class fs_bg0008 extends MovieClip {
}
}//package
Section 425
//fs_bg0012 (fs_bg0012)
package {
import flash.display.*;
public dynamic class fs_bg0012 extends MovieClip {
}
}//package
Section 426
//fs_bg0022 (fs_bg0022)
package {
import flash.display.*;
public dynamic class fs_bg0022 extends MovieClip {
}
}//package
Section 427
//fs_fg0004 (fs_fg0004)
package {
import flash.display.*;
public dynamic class fs_fg0004 extends MovieClip {
}
}//package
Section 428
//fs_fg0007 (fs_fg0007)
package {
import flash.display.*;
public dynamic class fs_fg0007 extends MovieClip {
}
}//package
Section 429
//fs_fg0008 (fs_fg0008)
package {
import flash.display.*;
public dynamic class fs_fg0008 extends MovieClip {
}
}//package
Section 430
//fs_fg0012 (fs_fg0012)
package {
import flash.display.*;
public dynamic class fs_fg0012 extends MovieClip {
}
}//package
Section 431
//fs_fg0022 (fs_fg0022)
package {
import flash.display.*;
public dynamic class fs_fg0022 extends MovieClip {
}
}//package
Section 432
//fs_gamemusic_level1v1m (fs_gamemusic_level1v1m)
package {
import flash.media.*;
public dynamic class fs_gamemusic_level1v1m extends Sound {
}
}//package
Section 433
//fs_gamemusic_level2v1m (fs_gamemusic_level2v1m)
package {
import flash.media.*;
public dynamic class fs_gamemusic_level2v1m extends Sound {
}
}//package
Section 434
//fs_gamemusic_level3v1m (fs_gamemusic_level3v1m)
package {
import flash.media.*;
public dynamic class fs_gamemusic_level3v1m extends Sound {
}
}//package
Section 435
//fs_wesbcdamage01 (fs_wesbcdamage01)
package {
import flash.media.*;
public dynamic class fs_wesbcdamage01 extends Sound {
}
}//package
Section 436
//fs_wesbcdamage02 (fs_wesbcdamage02)
package {
import flash.media.*;
public dynamic class fs_wesbcdamage02 extends Sound {
}
}//package
Section 437
//fs_wesbcswitch02 (fs_wesbcswitch02)
package {
import flash.media.*;
public dynamic class fs_wesbcswitch02 extends Sound {
}
}//package
Section 438
//fs_weskill (fs_weskill)
package {
import flash.media.*;
public dynamic class fs_weskill extends Sound {
}
}//package
Section 439
//fs_wessuccess01 (fs_wessuccess01)
package {
import flash.media.*;
public dynamic class fs_wessuccess01 extends Sound {
}
}//package
Section 440
//fs_wessuccess02 (fs_wessuccess02)
package {
import flash.media.*;
public dynamic class fs_wessuccess02 extends Sound {
}
}//package
Section 441
//fs_wessuccess03 (fs_wessuccess03)
package {
import flash.media.*;
public dynamic class fs_wessuccess03 extends Sound {
}
}//package
Section 442
//fs_wessuccess04 (fs_wessuccess04)
package {
import flash.media.*;
public dynamic class fs_wessuccess04 extends Sound {
}
}//package
Section 443
//fs_wessuccess05 (fs_wessuccess05)
package {
import flash.media.*;
public dynamic class fs_wessuccess05 extends Sound {
}
}//package
Section 444
//fs_wessuccess06 (fs_wessuccess06)
package {
import flash.media.*;
public dynamic class fs_wessuccess06 extends Sound {
}
}//package
Section 445
//fs_wesswitch01 (fs_wesswitch01)
package {
import flash.media.*;
public dynamic class fs_wesswitch01 extends Sound {
}
}//package
Section 446
//fs_wesswitch02 (fs_wesswitch02)
package {
import flash.media.*;
public dynamic class fs_wesswitch02 extends Sound {
}
}//package
Section 447
//fs_wesswitch03 (fs_wesswitch03)
package {
import flash.media.*;
public dynamic class fs_wesswitch03 extends Sound {
}
}//package
Section 448
//Gem1_PU_alt5 (Gem1_PU_alt5)
package {
import flash.media.*;
public dynamic class Gem1_PU_alt5 extends Sound {
}
}//package
Section 449
//Gem1_PU_alt5_2 (Gem1_PU_alt5_2)
package {
import flash.media.*;
public dynamic class Gem1_PU_alt5_2 extends Sound {
}
}//package
Section 450
//Gem1_PU_alt5_3 (Gem1_PU_alt5_3)
package {
import flash.media.*;
public dynamic class Gem1_PU_alt5_3 extends Sound {
}
}//package
Section 451
//Helvetica (Helvetica)
package {
import flash.text.*;
public dynamic class Helvetica extends Font {
}
}//package
Section 452
//jump_natural (jump_natural)
package {
import flash.media.*;
public dynamic class jump_natural extends Sound {
}
}//package
Section 453
//jump_natural_alt (jump_natural_alt)
package {
import flash.media.*;
public dynamic class jump_natural_alt extends Sound {
}
}//package
Section 454
//land_cartoony (land_cartoony)
package {
import flash.media.*;
public dynamic class land_cartoony extends Sound {
}
}//package
Section 455
//land_natural (land_natural)
package {
import flash.media.*;
public dynamic class land_natural extends Sound {
}
}//package
Section 456
//Portal_Use (Portal_Use)
package {
import flash.media.*;
public dynamic class Portal_Use extends Sound {
}
}//package
Section 457
//Projectile_Bottle_PU (Projectile_Bottle_PU)
package {
import flash.media.*;
public dynamic class Projectile_Bottle_PU extends Sound {
}
}//package
Section 458
//safx_rous_fly (safx_rous_fly)
package {
import flash.media.*;
public dynamic class safx_rous_fly extends Sound {
}
}//package
Section 459
//sfx_attack_miss (sfx_attack_miss)
package {
import flash.media.*;
public dynamic class sfx_attack_miss extends Sound {
}
}//package
Section 460
//sfx_attack_stick (sfx_attack_stick)
package {
import flash.media.*;
public dynamic class sfx_attack_stick extends Sound {
}
}//package
Section 461
//sfx_attack_sword (sfx_attack_sword)
package {
import flash.media.*;
public dynamic class sfx_attack_sword extends Sound {
}
}//package
Section 462
//sfx_bottle_hit (sfx_bottle_hit)
package {
import flash.media.*;
public dynamic class sfx_bottle_hit extends Sound {
}
}//package
Section 463
//sfx_bottle_throw_alt (sfx_bottle_throw_alt)
package {
import flash.media.*;
public dynamic class sfx_bottle_throw_alt extends Sound {
}
}//package
Section 464
//sfx_boulder_alt (sfx_boulder_alt)
package {
import flash.media.*;
public dynamic class sfx_boulder_alt extends Sound {
}
}//package
Section 465
//sfx_bridge_lower (sfx_bridge_lower)
package {
import flash.media.*;
public dynamic class sfx_bridge_lower extends Sound {
}
}//package
Section 466
//sfx_bridge_raise (sfx_bridge_raise)
package {
import flash.media.*;
public dynamic class sfx_bridge_raise extends Sound {
}
}//package
Section 467
//sfx_Butter_jump_takeoff_1 (sfx_Butter_jump_takeoff_1)
package {
import flash.media.*;
public dynamic class sfx_Butter_jump_takeoff_1 extends Sound {
}
}//package
Section 468
//sfx_Butter_jump_takeoff_2 (sfx_Butter_jump_takeoff_2)
package {
import flash.media.*;
public dynamic class sfx_Butter_jump_takeoff_2 extends Sound {
}
}//package
Section 469
//sfx_Butter_jump_takeoff_5 (sfx_Butter_jump_takeoff_5)
package {
import flash.media.*;
public dynamic class sfx_Butter_jump_takeoff_5 extends Sound {
}
}//package
Section 470
//sfx_crumbs_hit_alt (sfx_crumbs_hit_alt)
package {
import flash.media.*;
public dynamic class sfx_crumbs_hit_alt extends Sound {
}
}//package
Section 471
//sfx_crumbs_pickup (sfx_crumbs_pickup)
package {
import flash.media.*;
public dynamic class sfx_crumbs_pickup extends Sound {
}
}//package
Section 472
//sfx_multiplier (sfx_multiplier)
package {
import flash.media.*;
public dynamic class sfx_multiplier extends Sound {
}
}//package
Section 473
//sfx_rous_attack (sfx_rous_attack)
package {
import flash.media.*;
public dynamic class sfx_rous_attack extends Sound {
}
}//package
Section 474
//sfx_rous_death (sfx_rous_death)
package {
import flash.media.*;
public dynamic class sfx_rous_death extends Sound {
}
}//package
Section 475
//sfx_rous_death_alt (sfx_rous_death_alt)
package {
import flash.media.*;
public dynamic class sfx_rous_death_alt extends Sound {
}
}//package
Section 476
//sfx_rous_dive (sfx_rous_dive)
package {
import flash.media.*;
public dynamic class sfx_rous_dive extends Sound {
}
}//package
Section 477
//sfx_shell_bonus (sfx_shell_bonus)
package {
import flash.media.*;
public dynamic class sfx_shell_bonus extends Sound {
}
}//package
Section 478
//sfx_shell_score (sfx_shell_score)
package {
import flash.media.*;
public dynamic class sfx_shell_score extends Sound {
}
}//package
Section 479
//sfx_shell_select (sfx_shell_select)
package {
import flash.media.*;
public dynamic class sfx_shell_select extends Sound {
}
}//package
Section 480
//sfx_vine_release_alt2 (sfx_vine_release_alt2)
package {
import flash.media.*;
public dynamic class sfx_vine_release_alt2 extends Sound {
}
}//package
Section 481
//Vine_Climb (Vine_Climb)
package {
import flash.media.*;
public dynamic class Vine_Climb extends Sound {
}
}//package