Section 1
//GameButton (com.nick.spongebob.pirate_bounce.ui.buttons.GameButton)
package com.nick.spongebob.pirate_bounce.ui.buttons {
import com.workinman.lib.sound.*;
import com.workinman.lib.display.*;
public class GameButton extends WorkinButton {
override protected function _click():void{
GlobalSound.instance.playSound("buttondown");
}
override protected function _onOver():void{
super._onOver();
GlobalSound.instance.playSound("buttonover");
}
}
}//package com.nick.spongebob.pirate_bounce.ui.buttons
Section 2
//HelpPlayButton (com.nick.spongebob.pirate_bounce.ui.buttons.HelpPlayButton)
package com.nick.spongebob.pirate_bounce.ui.buttons {
import com.nick.spongebob.pirate_bounce.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class HelpPlayButton extends GameButton {
public function HelpPlayButton(){
addFrameScript(0, frame1, 1, frame2);
super();
}
override protected function _click():void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(GameConfig.NAV_GAME));
disable();
super._click();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package com.nick.spongebob.pirate_bounce.ui.buttons
Section 3
//PayoffPlayAgainButton (com.nick.spongebob.pirate_bounce.ui.buttons.PayoffPlayAgainButton)
package com.nick.spongebob.pirate_bounce.ui.buttons {
import com.nick.spongebob.pirate_bounce.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class PayoffPlayAgainButton extends GameButton {
public function PayoffPlayAgainButton(){
addFrameScript(0, frame1, 1, frame2);
super();
}
override protected function _click():void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(GameConfig.NAV_GAME));
disable();
super._click();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package com.nick.spongebob.pirate_bounce.ui.buttons
Section 4
//SoundToggle (com.nick.spongebob.pirate_bounce.ui.buttons.SoundToggle)
package com.nick.spongebob.pirate_bounce.ui.buttons {
import flash.events.*;
import com.workinman.lib.sound.*;
import flash.display.*;
import com.workinman.lib.display.*;
public class SoundToggle extends WorkinButton {
public var icon_mc:MovieClip;
public var glow_mc:MovieClip;
public function SoundToggle(){
addFrameScript(0, frame1);
super();
glow_mc.visible = false;
if (GlobalSound.instance.isSoundOff){
gotoAndStop("off");
} else {
gotoAndStop("on");
};
}
override protected function _onUp():void{
if (_isDown){
stage.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
_isDown = false;
_dispatch(UP);
if (_testMouseOver()){
_click();
};
};
}
override protected function _onOver():void{
glow_mc.visible = true;
icon_mc.visible = false;
_dispatch(OVER);
}
function frame1(){
stop();
}
override protected function _onDown():void{
_isDown = true;
if (!_isDrawn){
return;
};
stage.addEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
_dispatch(DOWN);
}
override protected function _click():void{
GlobalSound.instance.soundEffectsToggle();
if (GlobalSound.instance.isSoundOff){
gotoAndStop("off");
} else {
gotoAndStop("on");
};
}
override protected function _onOut():void{
glow_mc.visible = false;
icon_mc.visible = true;
_dispatch(OUT);
}
}
}//package com.nick.spongebob.pirate_bounce.ui.buttons
Section 5
//SplashPlayButton (com.nick.spongebob.pirate_bounce.ui.buttons.SplashPlayButton)
package com.nick.spongebob.pirate_bounce.ui.buttons {
import com.nick.spongebob.pirate_bounce.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class SplashPlayButton extends GameButton {
public function SplashPlayButton(){
addFrameScript(0, frame1, 1, frame2);
super();
}
override protected function _click():void{
WorkinDispatcher.getInstance().dispatchEvent(new Event(GameConfig.NAV_HELP));
disable();
super._click();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package com.nick.spongebob.pirate_bounce.ui.buttons
Section 6
//GenericDisplay (com.nick.spongebob.pirate_bounce.ui.displays.GenericDisplay)
package com.nick.spongebob.pirate_bounce.ui.displays {
import flash.events.*;
import flash.display.*;
public class GenericDisplay extends MovieClip {
public function GenericDisplay(){
_addEventListeners();
}
protected function _removeEventListeners():void{
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
}
protected function _onRemoved(_arg1:Event):void{
_removeEventListeners();
}
protected function _addEventListeners():void{
addEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
}
}
}//package com.nick.spongebob.pirate_bounce.ui.displays
Section 7
//ResultCoin (com.nick.spongebob.pirate_bounce.ui.displays.ResultCoin)
package com.nick.spongebob.pirate_bounce.ui.displays {
import flash.display.*;
public class ResultCoin extends MovieClip {
private const _FALL_RATE_MAX:Number = 350;
private const _FALL_RATE_MIN:Number = 180;
private const _SPIN_RATE:Number = 40;
public var doDelete:Boolean;
private var _fallRate:Number;
public function ResultCoin(_arg1:Boolean=false){
doDelete = false;
x = (10 + (Math.random() * 380));
y = -50;
_fallRate = (_arg1) ? _FALL_RATE_MIN : _FALL_RATE_MAX;
var _local2:Number = Math.ceil((Math.random() * 7));
if (_local2 == 0){
_local2 = 1;
};
if (_arg1){
_local2 = (_local2 + 7);
};
gotoAndStop(_local2);
scaleX = (scaleY = (_arg1) ? 0.67 : 1);
}
public function update(_arg1:Number):void{
y = (y + (_fallRate * _arg1));
rotation = (rotation + (_SPIN_RATE * _arg1));
if (y > 550){
doDelete = true;
};
}
}
}//package com.nick.spongebob.pirate_bounce.ui.displays
Section 8
//ScoreDisplay (com.nick.spongebob.pirate_bounce.ui.displays.ScoreDisplay)
package com.nick.spongebob.pirate_bounce.ui.displays {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import flash.text.*;
public class ScoreDisplay extends GenericDisplay {
public var txt:TextField;
public function ScoreDisplay(){
_init();
}
private function _onUpdate(_arg1:ENumber):void{
txt.text = String(_arg1.data);
}
override protected function _removeEventListeners():void{
super._removeEventListeners();
WorkinDispatcher.instance.removeEventListener(GameConfig.UI_SCORE_CHANGE, _onUpdate);
}
override protected function _addEventListeners():void{
WorkinDispatcher.instance.addEventListener(GameConfig.UI_SCORE_CHANGE, _onUpdate);
super._addEventListeners();
}
private function _init():void{
txt.text = String(GameState.instance.score);
}
}
}//package com.nick.spongebob.pirate_bounce.ui.displays
Section 9
//TokenDisplay (com.nick.spongebob.pirate_bounce.ui.displays.TokenDisplay)
package com.nick.spongebob.pirate_bounce.ui.displays {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import flash.text.*;
public class TokenDisplay extends GenericDisplay {
public var txt:TextField;
public function TokenDisplay(){
addFrameScript(5, frame6);
super();
_init();
}
private function _onUpdate(_arg1:ENumber):void{
gotoAndStop((_arg1.data + 1));
}
function frame6(){
stop();
}
override protected function _removeEventListeners():void{
super._removeEventListeners();
WorkinDispatcher.instance.removeEventListener(GameConfig.UI_GHOST_TOKEN_CHANGE, _onUpdate);
}
override protected function _addEventListeners():void{
WorkinDispatcher.instance.addEventListener(GameConfig.UI_GHOST_TOKEN_CHANGE, _onUpdate);
super._addEventListeners();
}
private function _init():void{
gotoAndStop((GameState.instance.ghostTokens + 1));
}
}
}//package com.nick.spongebob.pirate_bounce.ui.displays
Section 10
//Gameplay (com.nick.spongebob.pirate_bounce.ui.screens.Gameplay)
package com.nick.spongebob.pirate_bounce.ui.screens {
public class Gameplay extends Screen {
override public function get id():String{
return ("gameplay");
}
}
}//package com.nick.spongebob.pirate_bounce.ui.screens
Section 11
//Help (com.nick.spongebob.pirate_bounce.ui.screens.Help)
package com.nick.spongebob.pirate_bounce.ui.screens {
import com.nick.spongebob.pirate_bounce.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class Help extends Screen {
private var _TOTAL_PAGES:Number;// = 1
private var _page:Number;
public function Help(){
addFrameScript(15, frame16);
super();
addEventListener(Event.REMOVED_FROM_STAGE, _onRemoveFromStage);
WorkinDispatcher.getInstance().addEventListener(GameConfig.REQUEST_NEXT_HELP_PAGE, _onNextPage);
WorkinDispatcher.getInstance().addEventListener(GameConfig.REQUEST_PREV_HELP_PAGE, _onPrevPage);
_page = 1;
}
protected function _onNextPage(_arg1:Event):void{
_page++;
if (_page > _TOTAL_PAGES){
_page = _TOTAL_PAGES;
};
_goPage();
}
private function _onRemoveFromStage(_arg1:Event):void{
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemoveFromStage);
WorkinDispatcher.getInstance().removeEventListener(GameConfig.REQUEST_NEXT_HELP_PAGE, _onNextPage);
WorkinDispatcher.getInstance().removeEventListener(GameConfig.REQUEST_PREV_HELP_PAGE, _onPrevPage);
}
private function _goPage():void{
gotoAndStop(_page);
}
protected function _onPrevPage(_arg1:Event):void{
_page--;
if (_page < 1){
_page = 1;
};
_goPage();
}
function frame16(){
stop();
}
}
}//package com.nick.spongebob.pirate_bounce.ui.screens
Section 12
//Highscore (com.nick.spongebob.pirate_bounce.ui.screens.Highscore)
package com.nick.spongebob.pirate_bounce.ui.screens {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.net.*;
public class Highscore extends Screen {
public var bg:MovieClip;
private var _hsb:DisplayObject;
public function Highscore(){
bg.mouseEnabled = true;
SWFLoader.addEventListener(SWFLoader.ON_SWF, _onSWF);
SWFLoader.load((GameConfig.swfpath + GameConfig.hsbfile));
}
private function _onSWF(_arg1:ESWF):void{
if (_arg1.success){
_hsb = _arg1.swf;
addChild(_hsb);
};
}
override public function close():void{
SWFLoader.removeEventListener(SWFLoader.ON_SWF, _onSWF);
if (_hsb != null){
removeChild(_hsb);
_hsb = null;
};
super.close();
}
override public function get id():String{
return ("highscore");
}
override protected function get _openedFrame():Number{
return (1);
}
private function _onHSBClose(_arg1:Event):void{
close();
}
}
}//package com.nick.spongebob.pirate_bounce.ui.screens
Section 13
//Menu (com.nick.spongebob.pirate_bounce.ui.screens.Menu)
package com.nick.spongebob.pirate_bounce.ui.screens {
public class Menu extends Screen {
}
}//package com.nick.spongebob.pirate_bounce.ui.screens
Section 14
//Results (com.nick.spongebob.pirate_bounce.ui.screens.Results)
package com.nick.spongebob.pirate_bounce.ui.screens {
import flash.display.*;
import com.nick.spongebob.pirate_bounce.ui.displays.*;
public class Results extends Screen {
private const _COIN_DURATION:Number = 0.15;
public var nearcontainer_mc:MovieClip;
public var farcontainer_mc:MovieClip;
private var _farcoins:Array;
private var _loop:Number;
private var _coinTimer:Number;
private var _nearcoins:Array;
private var _nearFarAlternator:Boolean;
public function Results(){
addFrameScript(15, frame16);
super();
_nearcoins = [];
_farcoins = [];
_coinTimer = 0;
_nearFarAlternator = ((Math.random() < 0.5)) ? true : false;
}
override public function get id():String{
return ("splash");
}
override public function cleanUp():void{
_loop = _nearcoins.length;
while (_loop--) {
nearcontainer_mc.removeChild(_nearcoins[_loop]);
};
_nearcoins = [];
_loop = _farcoins.length;
while (_loop--) {
farcontainer_mc.removeChild(_farcoins[_loop]);
};
_farcoins = [];
super.cleanUp();
}
override protected function _onOpened():void{
super._onOpened();
}
override public function update(_arg1:Number):void{
super.update(_arg1);
_coinTimer = (_coinTimer - _arg1);
if (_coinTimer < 0){
_coinTimer = _COIN_DURATION;
if (_nearFarAlternator){
_spawnNearCoin();
} else {
_spawnFarCoin();
};
_nearFarAlternator = !(_nearFarAlternator);
};
_loop = _nearcoins.length;
while (_loop--) {
_nearcoins[_loop].update(_arg1);
if (_nearcoins[_loop].doDelete){
nearcontainer_mc.removeChild(_nearcoins[_loop]);
_nearcoins.splice(_loop, 1);
};
};
_loop = _farcoins.length;
while (_loop--) {
_farcoins[_loop].update(_arg1);
if (_farcoins[_loop].doDelete){
farcontainer_mc.removeChild(_farcoins[_loop]);
_farcoins.splice(_loop, 1);
};
};
}
override protected function get _openedFrame():Number{
return (16);
}
private function _spawnFarCoin():void{
_farcoins.push(new ResultCoin(true));
farcontainer_mc.addChild(_farcoins[(_farcoins.length - 1)]);
}
private function _spawnNearCoin():void{
_nearcoins.push(new ResultCoin(false));
nearcontainer_mc.addChild(_nearcoins[(_nearcoins.length - 1)]);
}
function frame16(){
stop();
}
}
}//package com.nick.spongebob.pirate_bounce.ui.screens
Section 15
//Screen (com.nick.spongebob.pirate_bounce.ui.screens.Screen)
package com.nick.spongebob.pirate_bounce.ui.screens {
import com.nick.spongebob.pirate_bounce.ui.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
import com.workinman.lib.display.*;
public class Screen extends WorkinMovieClip {
protected var _isClosing:Boolean;
protected var _isOpening:Boolean;
public function Screen(){
_isOpening = true;
}
protected function get _closedFrame():Number{
return (totalFrames);
}
public function enable():void{
}
override public function cleanUp():void{
super.cleanUp();
}
protected function get _openedFrame():Number{
return (1);
}
protected function _onOpened():void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(ScreenManager.EVENT_SCREEN_OPENED, {screen:this}));
_isOpening = false;
}
public function disable():void{
}
public function update(_arg1:Number):void{
if (_isOpening){
if (currentFrame == _openedFrame){
_onOpened();
};
} else {
if (_isClosing){
if (currentFrame == _closedFrame){
_onClosed();
};
};
};
}
protected function _onClosed():void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(ScreenManager.EVENT_SCREEN_CLOSED, {screen:this}));
_isClosing = false;
}
public function close():void{
_isClosing = true;
if (_closedFrame != currentFrame){
gotoAndPlay("out");
} else {
_onClosed();
};
}
public function get id():String{
return ("screen");
}
}
}//package com.nick.spongebob.pirate_bounce.ui.screens
Section 16
//Splash (com.nick.spongebob.pirate_bounce.ui.screens.Splash)
package com.nick.spongebob.pirate_bounce.ui.screens {
public class Splash extends Screen {
public function Splash(){
addFrameScript(157, frame158);
super();
}
override public function get id():String{
return ("splash");
}
override protected function get _openedFrame():Number{
return (55);
}
function frame158(){
stop();
}
override protected function _onOpened():void{
super._onOpened();
}
}
}//package com.nick.spongebob.pirate_bounce.ui.screens
Section 17
//ScreenManager (com.nick.spongebob.pirate_bounce.ui.ScreenManager)
package com.nick.spongebob.pirate_bounce.ui {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import com.nick.spongebob.pirate_bounce.ui.screens.*;
import flash.events.*;
import com.workinman.lib.utils.*;
public class ScreenManager {
private const _CALLBACK_CLOSE_BOTTOM:String = "callcloseBottom";
private const _CALLBACK_CLOSE_SPECIFIC:String = "callcloseSpecific";
private const _CALLBACK_CLOSE_ALL:String = "callcloseAll";
private const _CALLBACK_CLOSE_ALL_SEQ:String = "callcloseAllSeq";
private const _CALLBACK_CLOSE_ALL_OVER_SEQ:String = "callcloseAllOverSeq";
private const _CALLBACK_CLOSE_ALL_OVER:String = "callcloseAllOver";
private const _CALLBACK_CLOSE_TOP:String = "callcloseTop";
private var _loop:Number;
private var _queuedScreen:String;
private var _timeline:GameTimeline;
private var _screens:Array;
private var _sequenceState:String;
public static var EVENT_GAMEPLAY_CLOSED:String = "onCloseGameplay";
public static var EVENT_SCREEN_CLOSED:String = "onClosed";
public static var EVENT_SCREEN_OPENED:String = "onOpened";
private static var _instance:ScreenManager;
public static var EVENT_GAMEPLAY_OPENED:String = "onOpenGameplay";
public function ScreenManager(_arg1:GameTimeline){
_timeline = _arg1;
_screens = [];
Updater.instance.addEventListener(Updater.EVENT_UPDATE, _update);
_addEventListeners();
}
private function _enableAllOverlaysSequential():void{
_screens[(_screens.length - 1)].enable();
}
public function closeScreen(_arg1:String):void{
_closeSpecific(_arg1);
}
private function _closeAllSequential():void{
_sequenceState = _CALLBACK_CLOSE_ALL_SEQ;
_screens[(_screens.length - 1)].close();
}
private function _closeAllOverlaysSequential():void{
_sequenceState = _CALLBACK_CLOSE_ALL_OVER_SEQ;
_screens[(_screens.length - 1)].close();
}
private function _closeBottom():void{
_sequenceState = _CALLBACK_CLOSE_BOTTOM;
_screens[0].close();
}
private function _onNavSplash(_arg1:Event){
goSplash();
}
private function _enableAllSequential():void{
_screens[(_screens.length - 1)].enable();
}
private function _findScreenIndex(_arg1:Screen):Number{
_loop = _screens.length;
while (_loop--) {
if (_arg1 == _screens[_loop]){
return (_loop);
};
};
return (-1);
}
private function _onScreenOpened(_arg1:EData):void{
_customOpenEvent(_arg1.data.screen);
}
private function _onScreenClosed(_arg1:EData):void{
_removeScreen(_arg1.data.screen);
switch (_sequenceState){
case _CALLBACK_CLOSE_ALL:
_showQueuedScreen();
break;
case _CALLBACK_CLOSE_BOTTOM:
case _CALLBACK_CLOSE_SPECIFIC:
case _CALLBACK_CLOSE_TOP:
_customCloseEvent(_arg1.data.screen);
break;
case _CALLBACK_CLOSE_ALL_SEQ:
if (_screens.length == 0){
_showQueuedScreen();
} else {
_screens[(_screens.length - 1)].close();
};
break;
case _CALLBACK_CLOSE_ALL_OVER_SEQ:
if (_screens.length > 1){
_screens[(_screens.length - 1)].close();
} else {
_enableBottom();
};
break;
case _CALLBACK_CLOSE_ALL_OVER:
_enableBottom();
break;
};
}
private function _closeTop():void{
_sequenceState = _CALLBACK_CLOSE_TOP;
_screens[(_screens.length - 1)].close();
}
private function _enableAll():void{
_loop = _screens.length;
while (_loop--) {
_screens[_loop].enable();
};
}
private function _onNavHelp(_arg1:Event){
goHelp();
}
public function showHighscores():void{
_addScreen(new Highscore());
}
private function _closeAllOverlays():void{
_sequenceState = _CALLBACK_CLOSE_ALL_OVER;
_loop = _screens.length;
while (_loop--) {
_screens[_loop].close();
if (_loop == 1){
_loop = 0;
};
};
}
public function goGameplay():void{
_queuedScreen = "gameplay";
_closeAll();
}
private function _customCloseEvent(_arg1:Screen):void{
switch (_arg1.id){
case "highscore":
case "help":
_enableAll();
break;
case "splash":
case "gameplay":
case "help":
case "results":
default:
_showQueuedScreen();
break;
};
}
private function _disableAll():void{
_loop = _screens.length;
while (_loop--) {
_screens[_loop].disable();
};
}
public function showResults():void{
_addScreen(new Results());
}
private function _showQueuedScreen():void{
switch (_queuedScreen){
case "splash":
showSplash();
break;
case "gameplay":
showGameplay();
break;
case "help":
showHelp();
break;
case "results":
showResults();
break;
case "highscore":
case "menu":
break;
};
}
private function _onNavClose(_arg1:EString){
_closeSpecific(_arg1.data);
}
public function showGameplay():void{
_addScreen(new Gameplay());
}
public function showSplash():void{
_addScreen(new Splash());
}
private function _customOpenEvent(_arg1:Screen):void{
switch (_arg1.id){
case "splash":
break;
case "gameplay":
WorkinDispatcher.instance.dispatchEvent(new Event(EVENT_GAMEPLAY_OPENED));
break;
case "help":
break;
case "results":
break;
case "help":
break;
case "highscore":
break;
default:
break;
};
}
public function goHelp():void{
_queuedScreen = "help";
_closeAll();
}
public function goHighscores():void{
_queuedScreen = "highscore";
_disableAll();
showHighscores();
}
private function _disableBottom():void{
_screens[0].disable();
}
private function _addEventListeners():void{
WorkinDispatcher.instance.addEventListener(EVENT_SCREEN_CLOSED, _onScreenClosed);
WorkinDispatcher.instance.addEventListener(EVENT_SCREEN_OPENED, _onScreenOpened);
WorkinDispatcher.instance.addEventListener(GameConfig.NAV_SPLASH, _onNavSplash);
WorkinDispatcher.instance.addEventListener(GameConfig.NAV_GAME, _onNavGame);
WorkinDispatcher.instance.addEventListener(GameConfig.NAV_HELP, _onNavHelp);
WorkinDispatcher.instance.addEventListener(GameConfig.NAV_RESULTS, _onNavResults);
WorkinDispatcher.instance.addEventListener(GameConfig.NAV_MENU, _onNavMenu);
WorkinDispatcher.instance.addEventListener(GameConfig.NAV_CLOSE_SCREEN, _onNavClose);
WorkinDispatcher.instance.addEventListener(GameConfig.NAV_HIGHSCORE, _onNavHighscore);
}
private function _removeEventListeners():void{
WorkinDispatcher.instance.removeEventListener(EVENT_SCREEN_CLOSED, _onScreenClosed);
WorkinDispatcher.instance.removeEventListener(EVENT_SCREEN_OPENED, _onScreenOpened);
WorkinDispatcher.instance.removeEventListener(GameConfig.NAV_SPLASH, _onNavSplash);
WorkinDispatcher.instance.removeEventListener(GameConfig.NAV_GAME, _onNavGame);
WorkinDispatcher.instance.removeEventListener(GameConfig.NAV_HELP, _onNavHelp);
WorkinDispatcher.instance.removeEventListener(GameConfig.NAV_RESULTS, _onNavResults);
WorkinDispatcher.instance.removeEventListener(GameConfig.NAV_MENU, _onNavMenu);
WorkinDispatcher.instance.removeEventListener(GameConfig.NAV_HIGHSCORE, _onNavHighscore);
WorkinDispatcher.instance.removeEventListener(GameConfig.NAV_CLOSE_SCREEN, _onNavClose);
}
private function _closeSpecific(_arg1:String):void{
_sequenceState = _CALLBACK_CLOSE_SPECIFIC;
_screens[_findScreenIndexByID(_arg1)].close();
}
private function _enableTop():void{
_screens[(_screens.length - 1)].enable();
}
private function _disableAllSequential():void{
_screens[(_screens.length - 1)].disable();
}
private function _onNavMenu(_arg1:Event){
goMenu();
}
public function showHelp():void{
_addScreen(new Help());
}
private function _findScreenIndexByID(_arg1:String):Number{
_loop = _screens.length;
while (_loop--) {
if (_arg1 == _screens[_loop].id){
return (_loop);
};
};
return (-1);
}
private function _disableAllOverlaysSequential():void{
_screens[(_screens.length - 1)].disable();
}
private function _enableAllOverlays():void{
_loop = _screens.length;
while (_loop--) {
_screens[_loop].enable();
if (_loop == 1){
_loop = 0;
};
};
}
public function goMenu():void{
Main.instance.pauseGameplay();
_disableAll();
showMenu();
}
private function _update(_arg1:EUpdate):void{
_loop = _screens.length;
while (_loop--) {
_screens[_loop].update(_arg1.dt);
};
}
private function _onNavHighscore(_arg1:Event){
goHighscores();
}
private function _disableTop():void{
_screens[(_screens.length - 1)].disable();
}
private function _enableBottom():void{
_screens[0].enable();
}
private function _addScreen(_arg1:Screen):void{
_screens.push(_arg1);
_timeline.ui_container.addChild(_arg1);
}
public function goSplash():void{
_queuedScreen = "splash";
_closeAll();
}
private function _onNavResults(_arg1:Event){
goResults();
}
public function goResults():void{
_queuedScreen = "results";
_closeAll();
}
private function _removeScreen(_arg1:Screen):void{
var _local2:Number = _findScreenIndex(_arg1);
_timeline.ui_container.removeChild(_screens[_local2]);
_screens[_local2].cleanUp();
_screens.splice(_local2, 1);
}
private function _closeAll():void{
_sequenceState = _CALLBACK_CLOSE_ALL;
_loop = _screens.length;
while (_loop--) {
_screens[_loop].close();
};
}
private function _onNavGame(_arg1:Event){
goGameplay();
}
private function _disableAllOverlays():void{
_loop = _screens.length;
while (_loop--) {
_screens[_loop].disable();
if (_loop == 1){
_loop = 0;
};
};
}
public function showMenu():void{
_addScreen(new Menu());
}
public static function init(_arg1:GameTimeline):void{
_instance = new ScreenManager(_arg1);
}
public static function get instance():ScreenManager{
if (_instance == null){
return (null);
};
return (_instance);
}
}
}//package com.nick.spongebob.pirate_bounce.ui
Section 18
//GameCamera (com.nick.spongebob.pirate_bounce.world.cameras.GameCamera)
package com.nick.spongebob.pirate_bounce.world.cameras {
import com.workinman.paradise2.world.camera.*;
public class GameCamera extends BaseCamera {
public function GameCamera(_arg1:Object){
super(_arg1);
}
}
}//package com.nick.spongebob.pirate_bounce.world.cameras
Section 19
//Background (com.nick.spongebob.pirate_bounce.world.entitys.Background)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class Background extends GameEntity {
public function Background(_arg1:Object){
super(_arg1);
}
override protected function get _isAlwaysVisible():Boolean{
return (true);
}
override protected function get _defaultAsset():Class{
return (AssetBackground);
}
override public function get group():String{
return ("bg");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 20
//Boat (com.nick.spongebob.pirate_bounce.world.entitys.Boat)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.nick.spongebob.pirate_bounce.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.math.*;
import com.workinman.paradise2.world.camera.*;
import com.workinman.lib.utils.*;
public class Boat extends GameEntity {
private const _TIP_RATE:Number = 140;
private const _BOB_MAGNITUDE:Number = 6;
private const _ROTATION_Y_OFFSET:Number = 58;
private const _BOB_DURATION:Number = 2;
private const _BASE_SURFACE_OFFSET:Number = -87;
private var _surfaceLine:WorkinLine;
private var _isTipping:Boolean;
private var _rotationTarget:Number;
private var _isBumping:Boolean;
private var _rotation:Number;
private var _drawContainer:MovieClip;
private var _bumpStage:Number;
private var _bobY:Number;
private var _bobTimer:Number;
public function Boat(_arg1:Object){
super(_arg1);
_drawContainer = new MovieClip();
addChild(_drawContainer);
_isTipping = false;
_isBumping = false;
_bumpStage = 0;
_rotation = 0;
_bobY = 0;
_rotationTarget = 0;
_nextPos.to(197.1, 473.6);
_surfaceLine = new WorkinLine(_pos.addCopy(-245, _BASE_SURFACE_OFFSET), _pos.addCopy(245, _BASE_SURFACE_OFFSET));
}
private function _updateSurfaceLineRotation():void{
_surfaceLine.p0.to(_surfaceLine.p0.x, ((_BASE_SURFACE_OFFSET + ((-(_rotation) / 12) * _ROTATION_Y_OFFSET)) + _bobY));
_surfaceLine.p1.to(_surfaceLine.p1.x, ((_BASE_SURFACE_OFFSET + ((_rotation / 12) * _ROTATION_Y_OFFSET)) + _bobY));
_surfaceLine.recalculate();
}
public function getSurfacePoint(_arg1:Number):Number{
var _local2:* = (Math.abs(((_pos.x + _surfaceLine.p0.x) - _arg1)) / _surfaceLine.vector.length);
return (((_pos.y + _surfaceLine.getPoint(_local2).y) + _bobY));
}
public function tipDown(_arg1:Boolean):void{
_isTipping = true;
_rotationTarget = (_arg1) ? -12 : 12;
_bobTimer = _BOB_DURATION;
}
override protected function get _defaultAsset():Class{
return (AssetBoat);
}
override public function updatePrediction(_arg1:Number):void{
super.updatePrediction(_arg1);
if (_bobTimer > 0){
_bobTimer = (_bobTimer - _arg1);
if (_bobTimer < 0){
_bobTimer = 0;
};
_bobY = ((-(Math.sin(((_bobTimer * Math.PI) * 3))) * _BOB_MAGNITUDE) * (_bobTimer / _BOB_DURATION));
};
if (_isTipping){
if (_rotation > _rotationTarget){
_rotation = (_rotation - (_TIP_RATE * _arg1));
if (_rotation <= _rotationTarget){
_isTipping = false;
_isBumping = true;
_bumpStage = 1;
_rotation = _rotationTarget;
WorkinDispatcher.instance.dispatchEvent(new Event(GameConfig.EVENT_BOAT_TIP_COMPLETE));
};
} else {
_rotation = (_rotation + (_TIP_RATE * _arg1));
if (_rotation >= _rotationTarget){
_isTipping = false;
_isBumping = true;
_bumpStage = 1;
_rotation = _rotationTarget;
WorkinDispatcher.instance.dispatchEvent(new Event(GameConfig.EVENT_BOAT_TIP_COMPLETE));
};
};
_updateSurfaceLineRotation();
} else {
if (_isBumping){
if (_bumpStage == 1){
_rotation = ((_rotationTarget < 0)) ? (_rotationTarget - 0.5) : (_rotationTarget + 0.5);
_bumpStage++;
} else {
_rotation = _rotationTarget;
_isBumping = false;
};
_updateSurfaceLineRotation();
};
};
}
override protected function _renderPosition(_arg1:BaseCamera):void{
super._renderPosition(_arg1);
y = (y + _bobY);
_asset.rotation = _rotation;
}
override public function get group():String{
return ("bg");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 21
//Effect (com.nick.spongebob.pirate_bounce.world.entitys.Effect)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class Effect extends GameEntity {
protected var _lifespanRemaining:Number;
public function Effect(_arg1:Object){
super(_arg1);
_lifespanRemaining = _lifespan;
}
override public function updatePrediction(_arg1:Number):void{
super.updatePrediction(_arg1);
_lifespanRemaining = (_lifespanRemaining - _arg1);
if (_lifespanRemaining < 0){
doDelete = true;
};
}
protected function get _lifespan():Number{
return (3);
}
override public function get group():String{
return ("effects");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 22
//FloatingScoreText (com.nick.spongebob.pirate_bounce.world.entitys.FloatingScoreText)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class FloatingScoreText extends GameEntity {
public function FloatingScoreText(_arg1:Object){
super(_arg1);
_asset.txt.text = String(_arg1.value);
_velocity.y = -120;
}
override public function updatePrediction(_arg1:Number):void{
super.updatePrediction(_arg1);
if (_pos.x < -100){
doDelete = true;
};
}
override protected function get _defaultAsset():Class{
return (AssetScore);
}
override public function get group():String{
return ("effects");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 23
//Foreground (com.nick.spongebob.pirate_bounce.world.entitys.Foreground)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class Foreground extends GameEntity {
public function Foreground(_arg1:Object){
super(_arg1);
}
override protected function get _isAlwaysVisible():Boolean{
return (true);
}
override protected function get _defaultAsset():Class{
return (AssetForeground);
}
override public function get group():String{
return ("foreground");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 24
//GameEntity (com.nick.spongebob.pirate_bounce.world.entitys.GameEntity)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.workinman.lib.math.*;
import com.workinman.paradise2.world.entitys.*;
public class GameEntity extends ParaSprite {
public var doDelete:Boolean;
public function GameEntity(_arg1:Object){
super(_arg1);
doDelete = false;
}
public function get radius():Number{
return (20);
}
public function get collisionCenter():WorkinPoint{
return (_pos);
}
override protected function _animate(_arg1:String):void{
_asset.gotoAndStop(_arg1);
}
public function testPlayerCollision(_arg1:Player):Boolean{
return ((_arg1.collisionCenter.distTo(_pos) < (_arg1.radius + radius)));
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 25
//GameTimer (com.nick.spongebob.pirate_bounce.world.entitys.GameTimer)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
public class GameTimer extends GameEntity {
private const _BLINK_DUR:Number = 0.07;
private var _blinkTimer:Number;
public function GameTimer(_arg1:Object){
super(_arg1);
_nextPos.to(162, 0);
_pos.to(162, 0);
_asset.gotoAndStop(100);
WorkinDispatcher.instance.addEventListener(GameConfig.UI_TIME_CHANGE, _onUpdate);
}
override public function cleanUp():void{
super.cleanUp();
WorkinDispatcher.instance.removeEventListener(GameConfig.UI_TIME_CHANGE, _onUpdate);
}
override protected function get _defaultAsset():Class{
return (AssetTimer);
}
override public function get group():String{
return ("timer");
}
private function _onUpdate(_arg1:ENumber):void{
var _local2:Number = _arg1.data;
if (_local2 == 0){
_local2 = 0.01;
};
_asset.gotoAndStop(Math.ceil((_local2 * 100)));
}
override public function update(_arg1:Number):void{
if (_blinkTimer > 0){
_blinkTimer = (_blinkTimer - _arg1);
if (_blinkTimer <= 0){
_asset.timer_mc.gotoAndStop(1);
};
};
}
public function blink(_arg1:Boolean):void{
_asset.timer_mc.gotoAndStop((_arg1) ? 2 : 3);
_blinkTimer = _BLINK_DUR;
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 26
//Ghost (com.nick.spongebob.pirate_bounce.world.entitys.Ghost)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
public class Ghost extends Passer {
private var _particleTimer:Number;
private var _isDangerous:Boolean;
public function Ghost(_arg1:Object){
super(_arg1);
var _local2:Number = Math.ceil((Math.random() * 4));
if (_local2 == 0){
_local2 = 1;
};
_asset.gotoAndStop(_local2);
_isDangerous = true;
if (_dir > 0){
_asset.scaleX = -1;
};
_particleTimer = particleFrequency;
}
public function get timeValue():Number{
return (-10);
}
public function get isDangerous():Boolean{
return (_isDangerous);
}
override protected function get _defaultAsset():Class{
return (AssetGhost);
}
override public function get radius():Number{
return (20);
}
override protected function get _flyRate():Number{
return ((90 + (Math.random() * 40)));
}
private function get particleFrequency():Number{
return ((0.2 + (Math.random() * 0.2)));
}
override public function updatePrediction(_arg1:Number):void{
super.updatePrediction(_arg1);
_particleTimer = (_particleTimer - _arg1);
if (_particleTimer < 0){
WorkinDispatcher.instance.dispatchEvent(new EData(GameConfig.EVENT_PARTICLE, {x:(_pos.x + ((Math.random() * 40) * -(_dir))), y:(_pos.y + (-15 + (Math.random() * 30))), type:GameConfig.PARTICLE_GHOST}));
_particleTimer = particleFrequency;
};
}
public function onHit():void{
_isDangerous = false;
doDelete = true;
}
override public function get group():String{
return ("ghosts");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 27
//GhostBurstEffect (com.nick.spongebob.pirate_bounce.world.entitys.GhostBurstEffect)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class GhostBurstEffect extends Effect {
private const _FLY_RATE:Number = 120;
public function GhostBurstEffect(_arg1:Object){
super(_arg1);
_velocity = _arg1.velocity;
_velocity.length = _FLY_RATE;
}
override protected function get _defaultAsset():Class{
return (AssetParticleGhost);
}
override protected function get _lifespan():Number{
return (1.2);
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 28
//GhostEffect (com.nick.spongebob.pirate_bounce.world.entitys.GhostEffect)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class GhostEffect extends Effect {
public function GhostEffect(_arg1:Object){
super(_arg1);
}
override protected function get _lifespan():Number{
return (3);
}
override protected function get _defaultAsset():Class{
return (AssetParticleGhost);
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 29
//Passer (com.nick.spongebob.pirate_bounce.world.entitys.Passer)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.nick.spongebob.pirate_bounce.world.*;
public class Passer extends GameEntity {
protected var _dir:Number;
public function Passer(_arg1:Object){
super(_arg1);
if (_pos.x == WorldManager.LEFT_SPAWN){
_dir = 1;
} else {
_dir = -1;
};
_velocity.x = (_flyRate * _dir);
}
override public function updatePrediction(_arg1:Number):void{
super.updatePrediction(_arg1);
if ((((_dir > 0)) && ((_pos.x > WorldManager.RIGHT_SPAWN)))){
doDelete = true;
} else {
if ((((_dir < 0)) && ((_pos.x < WorldManager.LEFT_SPAWN)))){
doDelete = true;
};
};
}
protected function get _flyRate():Number{
return (150);
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 30
//Patrick (com.nick.spongebob.pirate_bounce.world.entitys.Patrick)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class Patrick extends Player {
public function Patrick(_arg1:Object){
super(_arg1);
_isFirstJump = false;
}
override protected function get _leftBound():Number{
return (230);
}
override protected function get _rightBound():Number{
return (370);
}
override protected function get _mouseOffest():Number{
return (90);
}
override protected function get _defaultAsset():Class{
return (AssetPatrick);
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 31
//Pickup (com.nick.spongebob.pirate_bounce.world.entitys.Pickup)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import com.workinman.lib.sound.*;
import com.workinman.lib.utils.*;
public class Pickup extends Passer {
private const _SPARKLE_RATE:Number = 0.2;
private var _points:Number;
private var _collected:Boolean;
private var _sparkleTimer:Number;
protected var _value:Number;
public function Pickup(_arg1:Object){
_value = _arg1.value;
_collected = false;
_points = _determinePoints();
if (_value > 2){
_sparkleTimer = _SPARKLE_RATE;
};
super(_arg1);
}
override public function get group():String{
return ("pickups");
}
public function get points():Number{
return (_points);
}
override public function testPlayerCollision(_arg1:Player):Boolean{
if (_collected){
return (false);
};
return (super.testPlayerCollision(_arg1));
}
public function get timeValue():Number{
return (_determineTimeValue());
}
public function get collected():Boolean{
return (_collected);
}
public function collect():void{
_animate("vanish");
_collected = true;
_velocity.to(0, 0);
GameState.instance.onAddScore(_points);
switch (_value){
case 1:
default:
GlobalSound.instance.playSound("coin1");
break;
case 2:
GlobalSound.instance.playSound("coin2");
break;
case 3:
GlobalSound.instance.playSound("coin3");
break;
case 4:
GlobalSound.instance.playSound("coin4");
GameState.instance.onCollectGhostToken();
break;
};
}
public function get value():Number{
return (_value);
}
override protected function get _defaultAsset():Class{
switch (_value){
case 1:
default:
return (AssetPickupCopper);
case 2:
return (AssetPickupSilver);
case 3:
return (AssetPickupGold);
case 4:
return (AssetPickupSpecial);
};
}
protected function _determinePoints():Number{
switch (_value){
case 1:
default:
return (10);
case 2:
return (75);
case 3:
return (250);
case 4:
return (25);
};
}
override public function update(_arg1:Number):void{
super.update(_arg1);
if (((_collected) && (!((_asset.anim == null))))){
if (_asset.anim.currentFrame == _asset.anim.totalFrames){
doDelete = true;
};
};
if (_sparkleTimer > 0){
_sparkleTimer = (_sparkleTimer - _arg1);
if (_sparkleTimer <= 0){
WorkinDispatcher.instance.dispatchEvent(new EData(GameConfig.EVENT_PARTICLE, {x:(_pos.x + (5 - (Math.random() * 10))), y:(_pos.y + (5 - (Math.random() * 10))), type:GameConfig.PARTICLE_SPARKLE}));
_sparkleTimer = _SPARKLE_RATE;
};
};
}
override public function get radius():Number{
return (15);
}
override protected function get _flyRate():Number{
if (_value == 1){
return (120);
};
if (_value == 2){
return (180);
};
return (220);
}
protected function _determineTimeValue():Number{
switch (_value){
case 1:
default:
return (1);
case 2:
return (4);
case 3:
return (8);
case 4:
return (3);
};
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 32
//Player (com.nick.spongebob.pirate_bounce.world.entitys.Player)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import flash.events.*;
import com.workinman.lib.math.*;
import com.workinman.lib.utils.*;
import flash.filters.*;
public class Player extends GameEntity {
protected const _GRAVITY_STRONG_Y:Number = 1100;
protected const _MOUSE_CHASE_RATE:Number = 400;
protected const _GRAVITY_Y:Number = 700;
protected const _GHOST_MODE_DURATION:Number = 3;
protected const _LAUNCH_VELOCITY:Number = -420;
protected const _DROP_VELOCITY:Number = 240;
protected const _AIR_IDLE:String = "airIdle";
protected const _CEILING_Y:Number = 180;
protected const _TEMP_FLOOR_Y:Number = 384;
protected const _GROUND_IDLE:String = "groundIdle";
protected const _GROUND_LAUNCH:String = "groundLaunch";
protected const _AIR_UP:String = "airUp";
protected const _GHOST_PARTICLE_FREQUENCY:Number = 0.1;
protected const _AIR_DOWN:String = "airDown";
protected const _CEILING_CAP_Y:Number = 90;
protected const _GROUND_LAND:String = "groundLand";
private var _isGhostMode:Boolean;
protected var _state:String;
private var _ghostParticleTimer:Number;
private var _ghostModeTimer:Number;
protected var _isFirstJump:Boolean;
private var _lastMousePoint:Number;
protected var _collisionCenter:WorkinPoint;
private var _groundY:Number;
public function Player(_arg1:Object){
super(_arg1);
_collisionCenter = new WorkinPoint();
_updateCollisionCenter();
_groundY = _TEMP_FLOOR_Y;
_pos.y = _groundY;
_nextPos.y = _groundY;
_state = _GROUND_IDLE;
_isFirstJump = true;
_isGhostMode = false;
_updateAnimation();
_lastMousePoint = 0;
}
public function get isAirborne():Boolean{
return ((((((_state == _AIR_UP)) || ((_state == _AIR_IDLE)))) || ((_state == _AIR_DOWN))));
}
private function _doGroundLaunch():void{
_state = _GROUND_LAUNCH;
_updateAnimation();
}
private function _onAirUpComplete():void{
_doAirDown();
}
protected function _updateAnimation():void{
var _local1:String;
switch (_state){
case _GROUND_IDLE:
_local1 = "idle";
break;
case _GROUND_LAUNCH:
_local1 = "jump up";
break;
case _GROUND_LAND:
_local1 = "down squish";
break;
case _AIR_UP:
_local1 = "up";
break;
case _AIR_IDLE:
_local1 = "up squish";
break;
case _AIR_DOWN:
_local1 = "down";
break;
};
_animate(_local1);
}
public function get isCollideable():Boolean{
return ((((((_state == _AIR_UP)) || ((_state == _AIR_DOWN)))) && (!(_isGhostMode))));
}
public function get isSpongebob():Boolean{
return (false);
}
override public function get radius():Number{
return (30);
}
private function _doAirUp():void{
_state = _AIR_UP;
_velocity.to(0, _LAUNCH_VELOCITY);
_updateAnimation();
}
private function _endGhostMode():void{
if (!_isGhostMode){
return;
};
_isGhostMode = false;
_asset.filters = [];
_asset.alpha = 1;
}
public function get isOnGround():Boolean{
return ((((((_state == _GROUND_IDLE)) || ((_state == _GROUND_LAUNCH)))) || ((_state == _GROUND_LAND))));
}
private function _onGroundLaunchComplete():void{
_doAirUp();
}
protected function _updateCollisionCenter():void{
_collisionCenter.to(_pos.x, (_pos.y - 48));
}
override public function get collisionCenter():WorkinPoint{
return (_collisionCenter);
}
private function _onAirDownComplete():void{
_doGroundLand();
}
private function _onGroundLandComplete():void{
_doGroundIdle();
}
private function _onAirIdleComplete():void{
_doAirDown();
}
private function _doAirDown():void{
_state = _AIR_DOWN;
_updateAnimation();
}
public function setGhostMode():void{
if (_isGhostMode){
return;
};
_isGhostMode = true;
_asset.filters = [new GlowFilter(10996082, 1, 30, 30), new BlurFilter(2, 2)];
_asset.alpha = 0.6;
_ghostModeTimer = _GHOST_MODE_DURATION;
_ghostParticleTimer = _GHOST_PARTICLE_FREQUENCY;
}
protected function get _leftBound():Number{
return (0);
}
private function _doAirIdle():void{
_velocity.to(0, 0);
_pos.to(_pos.x, _CEILING_Y);
_nextPos.to(_pos.x, _CEILING_Y);
_state = _AIR_IDLE;
_updateAnimation();
}
private function _doGroundIdle():void{
_state = _GROUND_IDLE;
_updateAnimation();
}
override public function updatePrediction(_arg1:Number):void{
super.updatePrediction(_arg1);
if (isMouseChaseable){
if (Main.instance.mousePoint.x < _lastMousePoint){
_nextPos.x = (_nextPos.x - (_MOUSE_CHASE_RATE * _arg1));
} else {
if (Main.instance.mousePoint.x > _lastMousePoint){
_nextPos.x = (_nextPos.x + (_MOUSE_CHASE_RATE * _arg1));
};
};
if (_nextPos.x > _rightBound){
_nextPos.x = _rightBound;
} else {
if (_nextPos.x < _leftBound){
_nextPos.x = _leftBound;
};
};
};
switch (_state){
case _GROUND_LAUNCH:
if (((!((_asset.anim == null))) && ((_asset.anim.currentFrame == _asset.anim.totalFrames)))){
_onGroundLaunchComplete();
};
break;
case _GROUND_LAND:
if (((!((_asset.anim == null))) && ((_asset.anim.currentFrame == _asset.anim.totalFrames)))){
_onGroundLandComplete();
};
break;
case _AIR_UP:
if (_nextPos.y < _CEILING_Y){
_onAirUpComplete();
};
break;
case _AIR_DOWN:
if ((((_nextPos.y < _CEILING_Y)) && ((_velocity.y < 0)))){
_velocity.y = (_velocity.y + (_GRAVITY_STRONG_Y * _arg1));
} else {
_velocity.y = (_velocity.y + (_GRAVITY_Y * _arg1));
};
if (_nextPos.y > _groundY){
_onAirDownComplete();
};
break;
case _AIR_IDLE:
if (((!((_asset.anim == null))) && ((_asset.anim.currentFrame == _asset.anim.totalFrames)))){
_onAirIdleComplete();
};
break;
};
if (_ghostModeTimer > 0){
_ghostModeTimer = (_ghostModeTimer - _arg1);
if (_ghostModeTimer <= 0){
_endGhostMode();
} else {
_ghostParticleTimer = (_ghostParticleTimer - _arg1);
if (_ghostParticleTimer < 0){
_ghostParticleTimer = _GHOST_PARTICLE_FREQUENCY;
WorkinDispatcher.instance.dispatchEvent(new EData(GameConfig.EVENT_PARTICLE, {x:(_collisionCenter.x + (-30 + (Math.random() * 60))), y:(_collisionCenter.y + (-20 + (Math.random() * 40))), type:GameConfig.PARTICLE_PLAYER_GHOST}));
};
};
};
_lastMousePoint = Main.instance.mousePoint.x;
}
override public function updatePosition(_arg1:Number):void{
super.updatePosition(_arg1);
_updateCollisionCenter();
}
public function get isGhostMode():Boolean{
return (_isGhostMode);
}
public function launch():void{
if (_state != _GROUND_IDLE){
return;
};
_doAirUp();
}
public function get isInteractable():Boolean{
return ((((_state == _GROUND_IDLE)) || ((_state == _AIR_IDLE))));
}
public function takeDamage():void{
if (_state == _AIR_UP){
_doAirDown();
_velocity.to(0, _DROP_VELOCITY);
} else {
if (_state == _AIR_DOWN){
_velocity.y = -100;
};
};
}
protected function get _rightBound():Number{
return (400);
}
private function _doGroundLand():void{
_state = _GROUND_LAND;
_pos.to(_pos.x, _groundY);
_nextPos.to(_pos.x, _groundY);
_velocity.to(0, 0);
_updateAnimation();
WorkinDispatcher.instance.dispatchEvent(new Event(GameConfig.EVENT_BOAT_DOWN));
}
public function onClick():void{
if ((((_state == _GROUND_IDLE)) && (_isFirstJump))){
_doGroundLaunch();
_isFirstJump = false;
} else {
if (!_isGhostMode){
WorkinDispatcher.instance.dispatchEvent(new Event(GameConfig.EVENT_GHOST_MODE));
};
};
}
public function get isMouseChaseable():Boolean{
return ((((_state == _AIR_UP)) || ((_state == _AIR_DOWN))));
}
public function updateGroundPosition(_arg1:Boat):void{
_groundY = _arg1.getSurfacePoint(_pos.x);
if (isOnGround){
_nextPos.y = (_pos.y = _groundY);
};
}
protected function get _mouseOffest():Number{
return (0);
}
override public function get group():String{
return ("players");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 33
//SparkleEffect (com.nick.spongebob.pirate_bounce.world.entitys.SparkleEffect)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class SparkleEffect extends Effect {
public function SparkleEffect(_arg1:Object){
super(_arg1);
}
override protected function get _lifespan():Number{
return (3);
}
override protected function get _defaultAsset():Class{
return (AssetParticleSparkle);
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 34
//Spongebob (com.nick.spongebob.pirate_bounce.world.entitys.Spongebob)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class Spongebob extends Player {
public function Spongebob(_arg1:Object){
super(_arg1);
}
override protected function get _rightBound():Number{
return (170);
}
override public function get isSpongebob():Boolean{
return (true);
}
override protected function get _leftBound():Number{
return (30);
}
override protected function get _mouseOffest():Number{
return (-90);
}
override protected function get _defaultAsset():Class{
return (AssetSpongebob);
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 35
//TimeBonus (com.nick.spongebob.pirate_bounce.world.entitys.TimeBonus)
package com.nick.spongebob.pirate_bounce.world.entitys {
import com.workinman.lib.math.*;
public class TimeBonus extends GameEntity {
private var _value:Number;
public function TimeBonus(_arg1:Object){
_value = _arg1.value;
super(_arg1);
_asset.txt.text = (((_value > 0)) ? "+" : "" + String(_arg1.value));
setPath(new WorkinPoint(200, 39), 1.5, PennerManager.EASE_OUT);
}
public function get value():Number{
return (_value);
}
override protected function _onPathComplete():void{
super._onPathComplete();
doDelete = true;
}
override protected function get _defaultAsset():Class{
return (((_value < 0)) ? AssetTimeBonusRed : AssetTimeBonusGreen);
}
override public function get group():String{
return ("effects");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 36
//TimeUp (com.nick.spongebob.pirate_bounce.world.entitys.TimeUp)
package com.nick.spongebob.pirate_bounce.world.entitys {
public class TimeUp extends GameEntity {
public function TimeUp(_arg1:Object){
super(_arg1);
}
override protected function get _isAlwaysVisible():Boolean{
return (true);
}
override protected function get _defaultAsset():Class{
return (AssetTimeUp);
}
override public function get group():String{
return ("effects");
}
}
}//package com.nick.spongebob.pirate_bounce.world.entitys
Section 37
//WorldManager (com.nick.spongebob.pirate_bounce.world.WorldManager)
package com.nick.spongebob.pirate_bounce.world {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import flash.events.*;
import com.workinman.lib.sound.*;
import com.workinman.paradise2.*;
import com.workinman.lib.math.*;
import com.nick.spongebob.pirate_bounce.world.cameras.*;
import com.nick.spongebob.pirate_bounce.world.entitys.*;
import com.workinman.paradise2.world.camera.*;
import com.workinman.lib.utils.*;
public class WorldManager {
private const _TIME_UP_DURATION:Number = 4;
private var _loop:Number;
private var _ghostTimer:Number;
private var _state:GameState;
private var _spongebob:Spongebob;
private var _timeUpTimer:Number;
private var _boat:Boat;
private var _cameras:CameraManager;
private var _dt:Number;
private var _pickups:Array;
private var _loopb:Number;
private var _patrick:Patrick;
private var _timer:GameTimer;
private var _ghostTimerDuration:Number;
private var _effects:Array;
private var _background:Background;
private var _timeBonus:Array;
private var _isPaused:Boolean;
private var _pickupList:Array;
private var _foreground:Foreground;
private var _ghosts:Array;
private var _activePlayer:Player;
private var _timeUp:TimeUp;
private var _pickupTimer:Number;
private var _viewRoom:EventDispatcher;
public static const RIGHT_SPAWN:Number = 600;
public static const LEFT_SPAWN:Number = -200;
public function WorldManager():void{
_state = GameState.instance;
_viewRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_VIEW);
_generate();
}
private function _levelUp():void{
GameState.instance.nextLevel();
_generateGhostFrequency(GameState.instance.level);
_generatePickupList(GameState.instance.level);
}
private function _generateGhostFrequency(_arg1:Number):void{
_ghostTimerDuration = (5 - ((_arg1 - 1) / 2));
if (_ghostTimerDuration < 0.5){
_ghostTimerDuration = 0.5;
};
}
private function _testPlayerPickupCollision(_arg1:Pickup):void{
if (_arg1.collected){
return;
};
if (_arg1.testPlayerCollision(_activePlayer)){
_arg1.collect();
spawnTimeBonus(_arg1.pos.x, _arg1.pos.y, _arg1.timeValue);
};
}
private function _onMouseClick(_arg1:Event):void{
if (_timeUpTimer > 0){
return;
};
if ((((Main.instance.mousePoint.x < 75)) && ((Main.instance.mousePoint.y > 420)))){
return;
};
_activePlayer.onClick();
}
private function _onSpawnParticle(_arg1:EData):void{
var _local2:Effect;
switch (_arg1.data.type){
case GameConfig.PARTICLE_SPARKLE:
_local2 = new SparkleEffect({x:_arg1.data.x, y:_arg1.data.y});
break;
case GameConfig.PARTICLE_PLAYER_GHOST:
_local2 = new GhostEffect({x:_arg1.data.x, y:_arg1.data.y});
break;
case GameConfig.PARTICLE_GHOST:
_local2 = new GhostEffect({x:_arg1.data.x, y:_arg1.data.y});
break;
};
_effects.push(_local2);
}
private function _getRandomGhostY():Number{
return ((100 + (Math.random() * 130)));
}
private function _spawnGhostBurst(_arg1:GameEntity):void{
var _local3:Number;
var _local4:Number;
var _local2:Number = 8;
var _local5:Number = 15;
while (_local2--) {
if (_local2 == 0){
_local3 = -(_local5);
_local4 = -(_local5);
} else {
if (_local2 == 7){
_local3 = -(_local5);
_local4 = 0;
} else {
if (_local2 == 6){
_local3 = -(_local5);
_local4 = _local5;
} else {
if (_local2 == 5){
_local3 = 0;
_local4 = _local5;
} else {
if (_local2 == 4){
_local3 = _local5;
_local4 = _local5;
} else {
if (_local2 == 3){
_local3 = _local5;
_local4 = 0;
} else {
if (_local2 == 2){
_local3 = _local5;
_local4 = -(_local5);
} else {
_local3 = 0;
_local4 = -(_local5);
};
};
};
};
};
};
};
_effects.push(new GhostBurstEffect({x:(_arg1.collisionCenter.x + _local3), y:(_arg1.collisionCenter.y + _local3), velocity:new WorkinPoint(_local3, _local4)}));
};
}
private function _onGameOver(_arg1:String="normal"):void{
GlobalSound.instance.playSound("laugh");
WorkinDispatcher.getInstance().dispatchEvent(new Event(GameConfig.EVENT_GAME_OVER));
}
private function _onToggleKeyEvent(_arg1:EData):void{
if ((((_arg1.data.keyCode == 17)) || ((_arg1.data.keyCode == 90)))){
};
}
public function spawnTimeBonus(_arg1:Number, _arg2:Number, _arg3:Number):void{
_timeBonus.push(new TimeBonus({x:_arg1, y:_arg2, value:_arg3}));
}
private function _spawnPickup():void{
var _local1:Number = Math.floor((_pickupList.length * Math.random()));
if (_local1 == _pickupList.length){
_local1 = 0;
};
_pickups.push(new Pickup({x:((Math.random() < 0.5)) ? LEFT_SPAWN : RIGHT_SPAWN, y:_getRandomPickupY(), value:_pickupList[_local1]}));
_pickupList.splice(_local1, 1);
if (_pickupList.length == 0){
_levelUp();
};
}
private function _onBoatDown(_arg1:Event):void{
_boat.tipDown((_activePlayer.isSpongebob) ? true : false);
_onChangeActivePlayer();
}
public function spawnScoreText(_arg1:Number, _arg2:Number, _arg3:Number):void{
_effects.push(new FloatingScoreText({x:_arg1, y:_arg2, value:_arg3}));
}
public function get camera():GameCamera{
return ((_cameras.camera as GameCamera));
}
public function get isGameOver():Boolean{
return (isGameOver);
}
private function _testPlayerGhostCollision(_arg1:Ghost):void{
if (((((!(_activePlayer.isCollideable)) && (!(_activePlayer.isGhostMode)))) || (!(_arg1.isDangerous)))){
return;
};
if (_arg1.testPlayerCollision(_activePlayer)){
if (_activePlayer.isGhostMode){
_arg1.onHit();
_spawnGhostBurst(_arg1);
GameState.instance.onAddScore(200);
spawnTimeBonus(_arg1.pos.x, _arg1.pos.y, 5);
} else {
_activePlayer.takeDamage();
GlobalSound.instance.playSound("ghost");
_arg1.onHit();
_spawnGhostBurst(_arg1);
spawnTimeBonus(_arg1.pos.x, _arg1.pos.y, _arg1.timeValue);
};
};
}
private function _resetPickupTimer():void{
_pickupTimer = (0.5 + (Math.random() * 1.5));
}
private function _generatePickupList(_arg1:Number):void{
var _local7:Number;
_pickupList = [];
var _local2:Array = [];
var _local3:Number = ((_arg1 > 9)) ? 0 : 1;
var _local4:Number = ((_arg1 > 2)) ? 1 : 0;
var _local5:Number = ((_arg1 > 1)) ? Math.ceil((_arg1 / 4)) : 0;
var _local6:Number = (((10 - _local5) - _local3) - _local4);
while (_local3--) {
_local2.push(4);
};
while (_local4--) {
_local2.push(3);
};
if (_local5 > 0){
while (_local5--) {
_local2.push(2);
};
};
if (_local6 > 0){
while (_local6--) {
_local2.push(1);
};
};
var _local8:Number = _local2.length;
while (_local8--) {
_local7 = Math.floor((Math.random() * _local2.length));
if (_local7 == _local2.length){
_local7 = 0;
};
_pickupList.push(_local2[_local7]);
_local2.splice(_local7, 1);
};
}
private function _onBoatSnap(_arg1:Event):void{
_activePlayer.launch();
}
public function cleanUp():void{
WorkinDispatcher.instance.dispatchEvent(new Event(ParadiseConfig.EVENT_CLEAN_UP_WORLD));
_removeEventListeners();
}
private function _removeEventListeners():void{
WorkinDispatcher.instance.removeEventListener(ParadiseConfig.EVENT_MOUSE_DOWN, _onMouseClick);
WorkinDispatcher.instance.removeEventListener(GameConfig.EVENT_CHANGE_ACTIVE_PLAYER, _onChangeActivePlayer);
WorkinDispatcher.instance.removeEventListener(GameConfig.EVENT_PARTICLE, _onSpawnParticle);
WorkinDispatcher.instance.removeEventListener(GameConfig.EVENT_GHOST_MODE, _onGhostMode);
WorkinDispatcher.instance.removeEventListener(GameConfig.EVENT_BOAT_DOWN, _onBoatDown);
WorkinDispatcher.instance.removeEventListener(GameConfig.EVENT_BOAT_TIP_COMPLETE, _onBoatSnap);
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _update);
}
private function _getRandomPickupY():Number{
return ((100 + (Math.random() * 200)));
}
private function _addEventListeners():void{
WorkinDispatcher.instance.addEventListener(ParadiseConfig.EVENT_MOUSE_DOWN, _onMouseClick);
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_CHANGE_ACTIVE_PLAYER, _onChangeActivePlayer);
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_PARTICLE, _onSpawnParticle);
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_GHOST_MODE, _onGhostMode);
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_BOAT_DOWN, _onBoatDown);
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_BOAT_TIP_COMPLETE, _onBoatSnap);
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _update);
Updater.getInstance().setGameMode();
Updater.getInstance().lockFPS(60);
}
public function nextLevel():void{
_state.onAddScore((15 * _state.level));
unpause();
}
private function _generate():void{
_addEventListeners();
_cameras = new CameraManager();
_cameras.addSimpleCamera("main", true, (ParadiseConfig.SCREEN_WIDTH / 2), (ParadiseConfig.SCREEN_HEIGHT / 2));
_spongebob = new Spongebob({x:99});
_patrick = new Patrick({x:311.3});
_background = new Background({});
_foreground = new Foreground({});
_boat = new Boat({});
_timer = new GameTimer({});
_activePlayer = _spongebob;
_ghosts = [];
_pickups = [];
_effects = [];
_timeBonus = [];
_timeUpTimer = 0;
_generateGhostFrequency(GameState.instance.level);
_generatePickupList(GameState.instance.level);
_resetPickupTimer();
_resetGhostTimer();
}
public function get exists():Boolean{
return (true);
}
private function _update(_arg1:EUpdate):void{
if (_arg1.dt > 0.2){
_dt = 0.2;
} else {
_dt = _arg1.dt;
};
if (_timeUpTimer > 0){
_timeUpTimer = (_timeUpTimer - _dt);
_timeUp.update(_dt);
if (_timeUpTimer < 0){
WorkinDispatcher.instance.dispatchEvent(new Event(GameConfig.EVENT_GAME_OVER));
};
_cameras.renderCameraView();
return;
};
_pickupTimer = (_pickupTimer - _dt);
if (_pickupTimer < 0){
_spawnPickup();
_resetPickupTimer();
};
_ghostTimer = (_ghostTimer - _dt);
if (_ghostTimer < 0){
_spawnGhost();
_resetGhostTimer();
};
_timer.update(_dt);
_boat.update(_dt);
_spongebob.updateGroundPosition(_boat);
_patrick.updateGroundPosition(_boat);
_spongebob.update(_dt);
_patrick.update(_dt);
_loop = _pickups.length;
while (_loop--) {
_pickups[_loop].update(_dt);
_testPlayerPickupCollision(_pickups[_loop]);
if (_pickups[_loop].doDelete){
_pickups[_loop].cleanUp();
_pickups.splice(_loop, 1);
};
};
_loop = _ghosts.length;
while (_loop--) {
_ghosts[_loop].update(_dt);
_testPlayerGhostCollision(_ghosts[_loop]);
if (_ghosts[_loop].doDelete){
_ghosts[_loop].cleanUp();
_ghosts.splice(_loop, 1);
};
};
_loop = _effects.length;
while (_loop--) {
_effects[_loop].update(_dt);
if (_effects[_loop].doDelete){
_effects[_loop].cleanUp();
_effects.splice(_loop, 1);
};
};
_loop = _timeBonus.length;
while (_loop--) {
_timeBonus[_loop].update(_dt);
if (_timeBonus[_loop].doDelete){
GameState.instance.applyTimeBonus(_timeBonus[_loop].value);
_timer.blink(((_timeBonus[_loop].value > 0)) ? true : false);
_timeBonus[_loop].cleanUp();
_timeBonus.splice(_loop, 1);
};
};
_cameras.renderCameraView();
if ((((_state.time <= 0)) && ((_timeBonus.length == 0)))){
_onTimeUp();
} else {
_state.timeCountdown(_dt);
};
}
private function _onTimeUp():void{
_timeUp = new TimeUp({});
_timeUp.update(0);
_timeUpTimer = _TIME_UP_DURATION;
}
private function _spawnGhost():void{
_ghosts.push(new Ghost({x:((Math.random() < 0.5)) ? LEFT_SPAWN : RIGHT_SPAWN, y:_getRandomGhostY()}));
}
private function _onGhostMode(_arg1:Event):void{
if (GameState.instance.ghostTokens <= 0){
return;
};
GameState.instance.onUseGhostToken();
_spongebob.setGhostMode();
_patrick.setGhostMode();
GlobalSound.instance.playSound("powerup");
_spawnGhostBurst(_spongebob);
_spawnGhostBurst(_patrick);
}
private function _resetGhostTimer():void{
_ghostTimer = (_ghostTimerDuration + (Math.random() * 1.5));
}
public function pause():void{
_isPaused = true;
}
private function _onChangeActivePlayer():void{
if (_activePlayer.isSpongebob){
_activePlayer = _patrick;
GlobalSound.instance.playSound("creak1");
} else {
_activePlayer = _spongebob;
GlobalSound.instance.playSound("creak2");
};
}
public function unpause():void{
_isPaused = false;
}
}
}//package com.nick.spongebob.pirate_bounce.world
Section 38
//GameConfig (com.nick.spongebob.pirate_bounce.GameConfig)
package com.nick.spongebob.pirate_bounce {
public class GameConfig {
public static const EVENT_GAME_OVER:String = "onGameOver";
public static const UI_HEALTH_CHANGE:String = "onHealthChange";
public static const EVENT_TRANSITION_OPENED:String = "onTransOpened";
public static const EVENT_CHANGE_ACTIVE_PLAYER:String = "onChangeActivePlayer";
public static const EVENT_TRANSITION_CLOSED:String = "onTransClosed";
public static const EVENT_LOADER_CLOSED:String = "onLoaderClosed";
public static const EVENT_BOAT_TIP_COMPLETE:String = "onBoatTipComplete";
public static const EVENT_LEVEL_COMPLETE:String = "onLevelComplete";
public static const NAV_RESULTS:String = "goNavResults";
public static const NAV_MENU:String = "goNavMenu";
public static const REQUEST_ANNOUNCEMENT:String = "onRequestAnnouncement";
public static const NAV_SPLASH:String = "onNavSplash";
public static const REQUEST_TRANSITION:String = "onTransTransition";
public static const PARTICLE_PLAYER_GHOST:String = "particlePlayerGhost";
public static const EVENT_PARTICLE:String = "onSpawnParticle";
public static const UI_POWERUPS_CHANGE:String = "onPowerupChange";
public static const REQUEST_PREV_HELP_PAGE:String = "onPrevHelpPage";
public static const NAV_GAME:String = "onNavGame";
public static const UI_GHOST_TOKEN_CHANGE:String = "onGhostTokenChange";
public static const EVENT_BOAT_DOWN:String = "onBoatCollide";
public static const PARTICLE_SPARKLE:String = "particleSparkle";
public static const UI_TIME_CHANGE:String = "onTimeChange";
public static const HIGHSCORE_ALLOWED_ID:String = "isHighscoreBoardAllowed";
public static const BUTTON_MENU:String = "onButtonMenu";
public static const REQUEST_NEXT_HELP_PAGE:String = "onNextHelpPage";
public static const NAV_HIGHSCORE:String = "goNavHighscore";
public static const EVENT_ENGINE_INIT_REQUEST:String = "onEngineInitRequest";
public static const EVENT_GHOST_MODE:String = "onGhostMode";
public static const UI_SCORE_CHANGE:String = "onScoreChange";
public static const NAV_CLOSE_SCREEN:String = "onCloseNavScreen";
public static const EVENT_ENGINE_INIT_COMPLETE:String = "onEngineInitComplete";
public static const PARTICLE_GHOST:String = "particleGhost";
public static const EVENT_HIGHSCORES_LOADED:String = "onHighscoreLoaded";
public static const NAV_HELP:String = "goNavHelp";
private static var _configOptions:Object;
private static var _configXML:Object;
public static var userdatapath:String;
public static var swfpath:String;
public static var hsbfile:String;
public static var xmlpath:String;
private static var _configData:Object;
public static var highscorepath:String;
public static var savescorepath:String;
public static var gamefile:String;
public static function setConfigData(_arg1:String, _arg2:Object):void{
if (_configData == null){
_configData = {};
};
_configData[_arg1] = _arg2;
}
public static function getConfigData(_arg1:String):Object{
if ((((_configData == null)) || (!(_configData.hasOwnProperty(_arg1))))){
return (false);
};
return (_configData[_arg1]);
}
public static function getConfigXML(_arg1:String):Object{
if ((((_configXML == null)) || (!(_configXML.hasOwnProperty(_arg1))))){
return (null);
};
return (_configXML[_arg1]);
}
public static function setConfigXML(_arg1:String, _arg2:XML):void{
if (_configXML == null){
_configXML = {};
};
_configXML[_arg1] = _arg2;
}
public static function setConfigOption(_arg1:String, _arg2:String):void{
if (_configOptions == null){
_configOptions = {};
};
_configOptions[_arg1] = _arg2;
}
public static function getConfigOption(_arg1:String):String{
if ((((_configOptions == null)) || ((_configOptions[_arg1] == undefined)))){
return ("");
};
return (_configOptions[_arg1]);
}
}
}//package com.nick.spongebob.pirate_bounce
Section 39
//GameState (com.nick.spongebob.pirate_bounce.GameState)
package com.nick.spongebob.pirate_bounce {
import com.workinman.lib.events.*;
import com.workinman.lib.utils.*;
public class GameState {
private var _level:Number;
private var _ghostTokens:Number;
private var _damage:Number;
private var _score:Number;
private var _time:Number;
public var isGameOver:Boolean;
private static var _instance:GameState;
public function GameState():void{
}
public function get level():Number{
return (_level);
}
public function get ghostTokens():Number{
return (_ghostTokens);
}
public function applyTimeBonus(_arg1:Number):void{
_time = (_time + _arg1);
if (_time > 60){
_time = 60;
};
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_TIME_CHANGE, ((_time < 0)) ? 0 : (_time / 60)));
}
public function get time():Number{
return (_time);
}
public function init():void{
resetGame();
}
public function get score():Number{
return (_score);
}
public function onTakeDamage():void{
_damage++;
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_HEALTH_CHANGE, _damage));
}
public function resetGame():void{
_level = 1;
_score = 0;
_damage = 0;
_ghostTokens = 3;
_time = 40;
isGameOver = false;
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_HEALTH_CHANGE, _damage));
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_GHOST_TOKEN_CHANGE, _ghostTokens));
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_SCORE_CHANGE, _score));
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_TIME_CHANGE, ((_time < 0)) ? 0 : (_time / 60)));
resetLevel();
}
public function timeCountdown(_arg1:Number):void{
_time = (_time - _arg1);
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_TIME_CHANGE, ((_time < 0)) ? 0 : (_time / 60)));
}
public function nextLevel():void{
_level++;
resetLevel();
}
public function onCollectGhostToken():void{
_ghostTokens++;
if (_ghostTokens > 5){
_ghostTokens = 5;
return;
};
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_GHOST_TOKEN_CHANGE, _ghostTokens));
}
public function get damage():Number{
return (_damage);
}
public function onUseGhostToken():void{
_ghostTokens--;
if (_ghostTokens < 0){
_ghostTokens = 0;
};
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_GHOST_TOKEN_CHANGE, _ghostTokens));
}
public function resetLevel():void{
}
public function onAddScore(_arg1:Number):void{
_score = (_score + _arg1);
WorkinDispatcher.instance.dispatchEvent(new ENumber(GameConfig.UI_SCORE_CHANGE, _score));
}
public static function get instance():GameState{
if (_instance == null){
_instance = new (GameState);
_instance.init();
};
return (_instance);
}
}
}//package com.nick.spongebob.pirate_bounce
Section 40
//GameTimeline (com.nick.spongebob.pirate_bounce.GameTimeline)
package com.nick.spongebob.pirate_bounce {
import com.workinman.lib.events.*;
import flash.events.*;
import com.workinman.paradise2.*;
import com.workinman.lib.utils.*;
public class GameTimeline extends BaseTimeline {
public function GameTimeline():void{
WorkinDispatcher.instance.dispatchEvent(new EDebug("[ Add Timeline Event Listener ]"));
if (!stage){
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_ENGINE_INIT_REQUEST, _onExternalInitRequest);
} else {
_beginSecure();
};
}
private function _beginSecure():void{
try {
stage.dispatchEvent(new Event("stageTestEvent"));
_begin();
} catch(pError:Error) {
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
};
}
override protected function _begin():void{
super._begin();
Main.initialize(this);
}
override protected function _generate():void{
}
private function _onDrawn(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
_begin();
}
private function _onExternalInitRequest(_arg1:Event):void{
WorkinDispatcher.instance.removeEventListener(GameConfig.EVENT_ENGINE_INIT_REQUEST, _onExternalInitRequest);
_beginSecure();
}
}
}//package com.nick.spongebob.pirate_bounce
Section 41
//Main (com.nick.spongebob.pirate_bounce.Main)
package com.nick.spongebob.pirate_bounce {
import com.nick.spongebob.pirate_bounce.ui.*;
import com.workinman.lib.events.*;
import flash.events.*;
import com.workinman.paradise2.*;
import com.workinman.paradise2.view.*;
import flash.display.*;
import com.workinman.lib.math.*;
import com.workinman.lib.utils.*;
import com.nick.spongebob.pirate_bounce.world.*;
import flash.ui.*;
import flash.external.*;
public class Main extends BaseEngine {
private var _state:GameState;
private var _world:WorldManager;
public var hasActiveWorld:Boolean;
private var _ui:ScreenManager;
private static var _instance:Main;
public function Main(_arg1:GameTimeline):void{
super(_arg1);
}
public function unpauseGameplay():void{
_resumeCurrentGame();
}
public function cleanUp():void{
_sound.cleanUp();
}
override protected function _addEventListeners():void{
super._addEventListeners();
WorkinDispatcher.instance.addEventListener(ScreenManager.EVENT_GAMEPLAY_CLOSED, _onGameplayScreenClosed);
WorkinDispatcher.instance.addEventListener(ScreenManager.EVENT_GAMEPLAY_OPENED, _onGameplayScreenOpen);
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_LEVEL_COMPLETE, _onLevelComplete);
WorkinDispatcher.instance.addEventListener(GameConfig.EVENT_GAME_OVER, _onGameOver);
}
public function hideMouse():void{
Mouse.hide();
}
protected function _onGameOver(_arg1:Event):void{
_state.isGameOver = true;
_endGame();
_ui.goResults();
}
override protected function _beginEngine():void{
WorkinDispatcher.instance.dispatchEvent(new EDebug("[ Data Load Sequence Complete.]"));
WorkinDispatcher.instance.dispatchEvent(new Event(GameConfig.EVENT_ENGINE_INIT_COMPLETE));
_ui.showSplash();
}
protected function _suspendCurrentGame():void{
if (!hasActiveWorld){
return;
};
_world.pause();
}
public function get state():GameState{
return (_state);
}
public function get ui():ScreenManager{
return (_ui);
}
protected function _cleanUpGame():void{
_world.cleanUp();
_world = null;
hasActiveWorld = false;
}
override protected function _generateView():void{
var _local1:MovieClip = new MovieClip();
_view = new ViewManager(_local1);
(_timeline as GameTimeline).game_container.addChild(_local1);
_view.addLayer("bg");
_view.addLayer("boat");
_view.addLayer("players");
_view.addLayer("pickups");
_view.addLayer("ghosts");
_view.addLayer("timer");
_view.addLayer("foreground");
_view.addLayer("effects");
}
override protected function _generate(_arg1:BaseTimeline):void{
hasActiveWorld = false;
ParadiseConfig.DIMENSIONS = new WorkinPoint(400, 500);
ParadiseConfig.SCREEN_CENTER = new WorkinPoint((ParadiseConfig.DIMENSIONS.x / 2), (ParadiseConfig.DIMENSIONS.y / 2));
ParadiseConfig.SCREEN_OFFSET = new WorkinPoint(0, 0);
super._generate(_arg1);
_beginEngine();
}
private function _onGameplayScreenClosed(_arg1:Event):void{
}
override protected function _generateState():void{
_state = GameState.instance;
}
public function pauseGameplay():void{
_suspendCurrentGame();
}
protected function _resumeCurrentGame():void{
if (!hasActiveWorld){
return;
};
_world.unpause();
}
protected function _beginNewGame():void{
try {
ExternalInterface.call("trackKidsGamePlay", "spongebob-ghostly-gold-grab");
} catch(pErr:Error) {
};
if (hasActiveWorld){
_cleanUpGame();
};
_state.resetGame();
_world = new WorldManager();
hasActiveWorld = true;
}
override protected function _generateControls():void{
_control = new BaseController(_timeline);
_control.activateMouseControl();
}
public function get mousePoint():WorkinPoint{
return (new WorkinPoint(_timeline.mouseX, _timeline.mouseY, 0));
}
public function _endGame():void{
_cleanUpGame();
_view.clear();
}
public function showMouse():void{
Mouse.show();
}
override protected function _generateUI():void{
ScreenManager.init((_timeline as GameTimeline));
_ui = ScreenManager.instance;
}
override protected function _generateSounds():void{
super._generateSounds();
SoundLoader.loadSounds();
}
private function _onGameplayScreenOpen(_arg1:Event):void{
if (!hasActiveWorld){
_beginNewGame();
} else {
_resumeCurrentGame();
};
}
protected function _onLevelComplete(_arg1:Event):void{
_state.nextLevel();
_endGame();
_world = new WorldManager();
hasActiveWorld = true;
WorkinDispatcher.instance.dispatchEvent(new EData(GameConfig.REQUEST_ANNOUNCEMENT, {text:("Level " + _state.level)}));
}
public static function get instance():Main{
if (_instance == null){
};
return (_instance);
}
public static function initialize(_arg1:GameTimeline):void{
if (_instance != null){
return;
};
_instance = new Main(_arg1);
}
}
}//package com.nick.spongebob.pirate_bounce
Section 42
//SoundLoader (com.nick.spongebob.pirate_bounce.SoundLoader)
package com.nick.spongebob.pirate_bounce {
import com.workinman.lib.sound.*;
public class SoundLoader {
public static function loadSounds():void{
var _local1:SoundManager = GlobalSound.getInstance();
_local1.addSound("coin1", coin1);
_local1.addSound("coin2", coin2);
_local1.addSound("coin3", coin3);
_local1.addSound("coin4", coin4);
_local1.addSound("creak1", floorcreak06);
_local1.addSound("creak2", floorcreak08);
_local1.addSound("ghost", ghost_screecher_01);
_local1.addSound("laugh", monster_laugh01);
_local1.addSound("buttondown", buttondown);
_local1.addSound("buttonover", buttonover);
_local1.addSound("powerup", power_up);
}
}
}//package com.nick.spongebob.pirate_bounce
Section 43
//WorkinTweenBase (com.workinman.lib.display.tweener.WorkinTweenBase)
package com.workinman.lib.display.tweener {
import flash.events.*;
import com.workinman.lib.math.*;
public class WorkinTweenBase extends EventDispatcher {
protected var _dur:Number;
protected var _delay:Number;
protected var _ease:String;
protected var _change:Number;
protected var _in:Number;
protected var _scope:Object;
protected var _out:Number;
protected var _delayCounter:Number;
protected var _useCurrentIn:Boolean;
protected var _isComplete:Boolean;
protected var _formula:Function;
protected var _time:Number;
protected var _current:Number;
protected var _isError:Boolean;
public static const INVALID_IN_VALUE:Number = -10000.85412;
public static var ERROR:String = "onTweenError";
public static var COMPLETE:String = "onTweenComplete";
public function WorkinTweenBase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number, _arg6:Object){
_scope = _arg6;
_dur = _arg3;
_delay = (_delayCounter = _arg5);
if (_arg1 == INVALID_IN_VALUE){
_useCurrentIn = true;
} else {
_useCurrentIn = false;
};
_in = _arg1;
_out = _arg2;
_resetIn();
_current = _in;
_ease = _arg4;
_formula = PennerManager.getEaseFunction(_ease);
_time = 0;
_isComplete = false;
_isError = false;
}
public function complete():void{
_onComplete(false);
}
public function get dur():Number{
return (_dur);
}
public function get isComplete():Boolean{
return (_isComplete);
}
public function get isError():Boolean{
return (_isError);
}
protected function _setInToProp():void{
}
public function update(_arg1:Number):void{
if (_delayCounter > 0){
_delayCounter = (_delayCounter - _arg1);
if (_delayCounter < 0){
_arg1 = Math.abs(_delayCounter);
_resetIn();
} else {
return;
};
};
_time = (_time + _arg1);
if (_time > _dur){
_time = _dur;
};
if (_time != 0){
_current = _formula(_in, _change, _time, _dur);
};
if (_time == _dur){
complete();
};
}
public function get timeRangeTop():Number{
return ((_delay + _dur));
}
public function equals(_arg1:String, _arg2:Number, _arg3:Number):Boolean{
return (false);
}
protected function _resetIn():void{
if (_useCurrentIn){
_setInToProp();
};
_change = (_out - _in);
}
protected function _onComplete(_arg1:Boolean=true):void{
_isComplete = true;
_current = _out;
if (_arg1){
dispatchEvent(new Event(COMPLETE));
};
}
public function get doDelete():Boolean{
return ((((_delayCounter <= 0)) && (((_isComplete) || (_isError)))));
}
protected function _onError():void{
_isError = true;
dispatchEvent(new Event(ERROR));
}
public function get isRunning():Boolean{
return ((((_delayCounter <= 0)) && (!(((_isComplete) || (_isError))))));
}
public function render(_arg1:Object){
}
public function get current():Number{
return (_current);
}
public function get timeRangeBottom():Number{
return (_delay);
}
public function cleanUp():void{
_formula = null;
_scope = null;
}
}
}//package com.workinman.lib.display.tweener
Section 44
//WorkinTweener (com.workinman.lib.display.tweener.WorkinTweener)
package com.workinman.lib.display.tweener {
import com.workinman.lib.events.*;
import flash.events.*;
import com.workinman.lib.math.*;
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 _updateLoop:Number;
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{
if (_activeScopes == null){
return (-1);
};
var _local2:Number = _activeScopes.length;
while (_local2--) {
if (_activeScopes[_local2].scope == _arg1){
return (_local2);
};
};
return (-1);
}
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);
}
private static function _cleanData(_arg1:Object):void{
if (((!(_arg1.hasOwnProperty("start"))) || (isNaN(_arg1.start)))){
_arg1.start = WorkinTweenBase.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 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{
_updateLoop = _activeScopes.length;
while (_updateLoop--) {
_activeScopes[_updateLoop].updateTweens(_arg1.dt);
if (_activeScopes[_updateLoop].doDelete){
_activeScopes[_updateLoop].cleanUp();
_activeScopes.splice(_updateLoop, 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 45
//WorkinTweenFrame (com.workinman.lib.display.tweener.WorkinTweenFrame)
package com.workinman.lib.display.tweener {
public class WorkinTweenFrame extends WorkinTweenBase {
public function WorkinTweenFrame(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number, _arg6:Object):void{
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
}
public function get prop():String{
return ("frame");
}
override public function render(_arg1:Object){
if (_current < 0){
_arg1.gotoAndStop(1);
} else {
_arg1.gotoAndStop(Math.ceil(_current));
};
}
override protected function _setInToProp():void{
_in = _scope.currentFrame;
}
override public function equals(_arg1:String, _arg2:Number, _arg3:Number):Boolean{
if (_arg1 == WorkinTweener.TWEEN_FRAME){
if (((isComplete) || (isError))){
return (false);
};
if (((((_arg2 - timeRangeBottom) < _delay)) || ((Math.abs((timeRangeBottom - _arg2)) < _arg3)))){
return (true);
};
};
return (false);
}
}
}//package com.workinman.lib.display.tweener
Section 46
//WorkinTweenProp (com.workinman.lib.display.tweener.WorkinTweenProp)
package com.workinman.lib.display.tweener {
public class WorkinTweenProp extends WorkinTweenBase {
private var _prop:String;
public function WorkinTweenProp(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number, _arg6:Object, _arg7:String):void{
_prop = _arg7;
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
}
override protected function _setInToProp():void{
_in = _scope[_prop];
}
public function get prop():String{
return (_prop);
}
override public function render(_arg1:Object){
_arg1[_prop] = _current;
}
override public function equals(_arg1:String, _arg2:Number, _arg3:Number):Boolean{
if (_prop == _arg1){
if (((isComplete) || (isError))){
return (false);
};
if (((((_arg2 - timeRangeBottom) < _delay)) || ((Math.abs((timeRangeBottom - _arg2)) < _arg3)))){
return (true);
};
};
return (false);
}
}
}//package com.workinman.lib.display.tweener
Section 47
//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);
}
private function _generateNewTween(_arg1:String, _arg2:Object):void{
var _local3:Array = _getTweenProperties(_arg1, _arg2);
_loop = _local3.length;
switch (_arg1){
case WorkinTweener.TWEEN_FRAME:
_tweens.push(new WorkinTweenFrame(((_arg2.start)!=undefined) ? _arg2.start : WorkinTweenBase.INVALID_IN_VALUE, _arg2.end, _arg2.dur, _arg2.ease, _arg2.delay, _scope));
break;
case WorkinTweener.TWEEN_POS:
case WorkinTweener.TWEEN_POS_3D:
case WorkinTweener.TWEEN_SCALE:
while (_loop--) {
_tweens.push(new WorkinTweenProp(WorkinTweenBase.INVALID_IN_VALUE, _arg2[_local3[_loop]], _arg2.dur, _arg2.ease, _arg2.delay, _scope, _local3[_loop]));
};
break;
case WorkinTweener.TWEEN_BLUR:
case WorkinTweener.TWEEN_SHADOW:
case WorkinTweener.TWEEN_GLOW:
default:
while (_loop--) {
_tweens.push(new WorkinTweenProp(_arg2.start, _arg2.end, _arg2.dur, _arg2.ease, _arg2.delay, _scope, _local3[_loop]));
};
break;
};
}
public function announceComplete():void{
try {
_scope.onTweensComplete();
} catch(pErr:Error) {
};
}
public function unpause():void{
_isPaused = false;
}
public function pause():void{
_isPaused = true;
}
private function _getTweenProperties(_arg1:String, _arg2:Object):Array{
switch (_arg1){
case WorkinTweener.TWEEN_PROP:
return ([_arg2.prop]);
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:
case WorkinTweener.TWEEN_BLUR:
case WorkinTweener.TWEEN_GLOW:
case WorkinTweener.TWEEN_SHADOW:
case WorkinTweener.TWEEN_FRAME:
case WorkinTweener.TWEEN_IDLE:
default:
return ([]);
};
}
public function addTween(_arg1:String, _arg2:Object):void{
if (!_validateProperty(_arg1, _arg2)){
return;
};
_generateNewTween(_arg1, _arg2);
}
public function cleanUp():void{
_loop = _tweens.length;
while (_loop--) {
_tweens[_loop].cleanUp();
};
_tweens = [];
_scope = null;
}
public function completeAllTweens():void{
_loop = _tweens.length;
while (_loop--) {
_tweens[_loop].finish();
_tweens[_loop].render(_scope);
_tweens[_loop].cleanUp();
};
_tweens = [];
announceComplete();
}
public function get scope():Object{
return (_scope);
}
public function get doDelete():Boolean{
return ((_tweens.length == 0));
}
public function updateTweens(_arg1:Number):void{
if (_isPaused){
return;
};
_loop = _tweens.length;
while (_loop--) {
_tweens[_loop].update(_arg1);
_tweens[_loop].render(_scope);
if (_tweens[_loop].doDelete){
_tweens[_loop].cleanUp();
_tweens.splice(_loop, 1);
};
};
if (_tweens.length == 0){
announceComplete();
};
}
private function _validateProperty(_arg1:String, _arg2:Object):Boolean{
var _local3:Array = _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{
var _local4:Number;
var _local3:Array = _getTweenProperties(_arg1, _arg2);
_loop = _tweens.length;
while (_loop--) {
_local4 = _local3.length;
if (_local4 == 0){
if (_tweens[_loop].equals(_arg1, _arg2.delay, _arg2.dur)){
return (true);
};
} else {
while (_local4--) {
if (_tweens[_loop].equals(_local3[_local4], _arg2.delay, _arg2.dur)){
return (true);
};
};
};
};
return (false);
}
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);
}
public function stopAllTweens():void{
_loop = _tweens.length;
while (_loop--) {
_tweens[_loop].cleanUp();
};
_tweens = [];
announceComplete();
}
}
}//package com.workinman.lib.display.tweener
Section 48
//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 _isDragged:Boolean;
protected var _isDown:Boolean;
protected var _hasUpAnimation:Boolean;
protected var _hitBox:Sprite;
protected var _isDrawn:Boolean;
protected var _frame:Number;
protected var _isEnabled:Boolean;
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 static var DRAG:String = "workinBtnDrag";
public static var CANCEL_DRAG:String = "workinBtnCancelDrag";
public static var OVER:String = "workinBtnOver";
public static var DROP:String = "workinBtnDrop";
public function WorkinButton(){
addEventListener(Event.ADDED_TO_STAGE, _onDrawn, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemoved, false, 0, true);
_isDown = false;
_isDragged = false;
_isDrawn = ((stage == null)) ? false : true;
_hasUpAnimation = ((totalFrames > 3)) ? true : false;
_generateHitBox();
enable();
}
protected function _onDown():void{
if (!_isDrawn){
return;
};
_isDown = true;
_renderDown();
stage.addEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
_dispatch(DOWN);
}
public function enable():void{
buttonMode = true;
mouseEnabled = true;
mouseChildren = false;
useHandCursor = true;
_isEnabled = true;
if (!_isDrawn){
_renderUp();
} else {
if (_testMouseOver()){
_renderOver();
} else {
_renderUp();
};
};
}
override public function cleanUp():void{
super.cleanUp();
disable();
removeEventListener(Event.ADDED_TO_STAGE, _onDrawn);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemoved);
if (_hitBox != null){
removeChild(_hitBox);
};
_removeEventListeners();
}
protected function _renderReturnUp():void{
_frame = ((totalFrames > 3)) ? 4 : 1;
gotoAndStop(_frame);
}
protected function _onOverEvent(_arg1:MouseEvent):void{
_onOver();
}
protected function _onOutEvent(_arg1:MouseEvent):void{
_onOut();
}
protected function _onDrawn(_arg1:Event):void{
_isDrawn = true;
_addEventListeners();
}
protected function _onDrop():void{
_isDragged = false;
_dispatch(DROP);
}
protected function _removeEventListeners():void{
removeEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
removeEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
removeEventListener(MouseEvent.MOUSE_DOWN, _onDownEvent);
if (_isDown){
stage.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
};
}
protected function _click():void{
_dispatch(CLICK);
}
protected function _onRemoved(_arg1:Event):void{
if (_isDown){
stage.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
};
_removeEventListeners();
_isDrawn = false;
}
protected function _testMouseOver():Boolean{
if (!_isDrawn){
return (false);
};
if (hitTestPoint(stage.mouseX, stage.mouseY, true)){
return (true);
};
return (false);
}
protected function _renderDisabled():void{
_frame = _DISABLE_FRAME;
gotoAndStop(_frame);
}
protected function _dispatch(_arg1:String):void{
if (!_DO_DISPATCH){
return;
};
dispatchEvent(new Event(_arg1));
}
protected function _onUp():void{
if (_isDown){
stage.removeEventListener(MouseEvent.MOUSE_UP, _onUpEvent);
_isDown = false;
if (_testMouseOver()){
_renderOver();
_click();
if (_isDragged){
_onCancelDrag();
};
} else {
_renderReturnUp();
if (_isDragged){
_onDrop();
};
};
_dispatch(UP);
};
}
protected function _renderUp():void{
_frame = 1;
gotoAndStop(_frame);
}
protected function get _DISABLE_FRAME():Number{
return (1);
}
protected function _addEventListeners():void{
addEventListener(MouseEvent.MOUSE_OVER, _onOverEvent);
addEventListener(MouseEvent.MOUSE_OUT, _onOutEvent);
addEventListener(MouseEvent.MOUSE_DOWN, _onDownEvent);
}
protected function _generateHitBox():void{
if (!_CREATE_HIT_BOX){
return;
};
_hitBox = new Sprite();
_hitBox.graphics.beginFill(0xFF0000, 0);
if ((((_CUSTOM_HIT_BOX.x == 0)) || ((_CUSTOM_HIT_BOX.y == 0)))){
_hitBox.graphics.moveTo(0, 0);
_hitBox.graphics.lineTo(width, 0);
_hitBox.graphics.lineTo(width, height);
_hitBox.graphics.lineTo(0, height);
_hitBox.graphics.lineTo(0, 0);
} else {
_hitBox.graphics.moveTo(0, 0);
_hitBox.graphics.lineTo(_CUSTOM_HIT_BOX.x, 0);
_hitBox.graphics.lineTo(_CUSTOM_HIT_BOX.x, _CUSTOM_HIT_BOX.y);
_hitBox.graphics.lineTo(0, _CUSTOM_HIT_BOX.y);
_hitBox.graphics.lineTo(0, 0);
};
addChild(_hitBox);
}
public function disable():void{
buttonMode = false;
useHandCursor = false;
mouseEnabled = false;
_isEnabled = false;
_renderDisabled();
}
protected function _renderOver():void{
_frame = 2;
gotoAndStop(_frame);
}
protected function _onDrag():void{
_isDragged = true;
_dispatch(DRAG);
}
protected function _onCancelDrag():void{
_isDragged = false;
_dispatch(CANCEL_DRAG);
}
public function get frame():Number{
return (_frame);
}
protected function get _DO_DISPATCH():Boolean{
return (true);
}
protected function _onOver():void{
if (_isDown){
_renderDown();
} else {
_renderOver();
};
_dispatch(OVER);
}
protected function get _CUSTOM_HIT_BOX():Point{
return (new Point(0, 0));
}
protected function _onUpEvent(_arg1:MouseEvent):void{
_onUp();
}
protected function _onDownEvent(_arg1:MouseEvent):void{
_onDown();
}
protected function get _CREATE_HIT_BOX():Boolean{
return (true);
}
protected function _renderDown():void{
_frame = 3;
gotoAndStop(_frame);
}
protected function _onOut():void{
if (_isDown){
_renderDown();
if (!_isDragged){
_onDrag();
};
} else {
if (_hasUpAnimation){
_renderReturnUp();
} else {
_renderUp();
};
};
_dispatch(OUT);
}
}
}//package com.workinman.lib.display
Section 49
//WorkinDebugger (com.workinman.lib.display.WorkinDebugger)
package com.workinman.lib.display {
import com.workinman.lib.events.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import flash.text.*;
public class WorkinDebugger extends MovieClip {
private var _text:TextField;
public static var EVENT_DEBUG:String = "onWorkinDebug";
public function WorkinDebugger(_arg1:uint=0){
WorkinDispatcher.instance.addEventListener(EVENT_DEBUG, _onDebug);
addEventListener(Event.ADDED_TO_STAGE, _onDrawn);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemove);
_text = new TextField();
_text.autoSize = TextFieldAutoSize.LEFT;
_text.wordWrap = true;
_text.multiline = true;
_text.selectable = true;
if (_arg1 != 0){
_text.textColor = _arg1;
};
_text.x = (_text.y = 20);
_text.text = "<[[ Debugger Initialized ]]>";
_text.appendText("\n");
addChild(_text);
}
private function _onRemove(_arg1:Event):void{
}
private function _onDebug(_arg1:EString):void{
print(_arg1.data);
}
private function _onDrawn(_arg1:Event):void{
_text.width = (stage.width - 10);
_text.height = (stage.height - 10);
}
public function print(_arg1:String):void{
_text.appendText(_arg1);
_text.appendText("\n");
}
public static function debug(_arg1:String):void{
WorkinDispatcher.instance.dispatchEvent(new EString(EVENT_DEBUG, _arg1));
}
}
}//package com.workinman.lib.display
Section 50
//WorkinMovieClip (com.workinman.lib.display.WorkinMovieClip)
package com.workinman.lib.display {
import com.workinman.lib.events.*;
import flash.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 _isTracking:Boolean;
protected var _trackOutFrame:Number;
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 onTweensComplete():void{
dispatchEvent(new Event(COMPLETE_TWEEN));
_onTweenComplete();
}
public function completeTweens():void{
WorkinTweener.completeScope(this);
}
override public function stop():void{
if (_isTracking){
stopTrack();
};
super.stop();
}
public function rotateSet(_arg1:Number):void{
rotation = _arg1;
}
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 shadowOut(_arg1:Number=1, _arg2:String="linear", _arg3:Number=0):void{
}
public function glowOut(_arg1:Number=1, _arg2:String="linear", _arg3:Number=0, _arg4:uint=0):void{
}
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});
}
protected function _completeTrack():void{
gotoAndStop(_trackOutFrame);
dispatchEvent(new Event(COMPLETE_TRACK));
_clearTrack();
}
public function clearTweens():void{
WorkinTweener.removeScope(this);
}
override public function gotoAndStop(_arg1:Object, _arg2:String=null):void{
if (_isTracking){
stopTrack();
};
super.gotoAndStop(_arg1, _arg2);
}
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);
}
protected function _clearTrack():void{
if (!_isTracking){
return;
};
_isTracking = false;
_trackDelayTimer = 0;
Updater.getInstance().removeEventListener(Updater.EVENT_UPDATE, _onTrack);
}
public function blurBy(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
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 shadowSet(_arg1:Object, _arg2:Number=0):void{
}
public function alphaSet(_arg1:Number):void{
alpha = _arg1;
}
public function blurInit(_arg1: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 glowSet(_arg1:Object, _arg2:Number=0):void{
}
public function shadowBy(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function frameSet(_arg1:Number):void{
gotoAndStop(_arg1);
}
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 scaleSet(_arg1:Number, _arg2:Number):void{
scaleX = _arg1;
scaleY = _arg2;
}
public function shadowTo(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function glowInit(_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 blurTo(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function cleanUp():void{
_clearTrack();
}
public function propTo(_arg1:String, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:Number=0):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_PROP, {prop:_arg1, end:_arg2, dur:_arg3, ease:_arg4, delay:_arg5});
}
public function fadeSet(_arg1:Number):void{
alphaSet(_arg1);
}
override public function gotoAndPlay(_arg1:Object, _arg2:String=null):void{
if (_isTracking){
stopTrack();
};
super.gotoAndPlay(_arg1, _arg2);
}
protected function _onTweenComplete():void{
}
public function addTween(_arg1:String, _arg2:Object):void{
WorkinTweener.addTween(this, _arg1, _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 clear():void{
}
public function propTween(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String="linear", _arg6:Number=0, _arg7:MovieClip=null):void{
WorkinTweener.addTween(this, WorkinTweener.TWEEN_PROP, {prop:_arg1, start:_arg2, end:_arg3, dur:_arg4, ease:_arg5, delay:_arg6});
}
public function shadowInit(_arg1:Number=0):void{
}
public function blurRemove(_arg1:Number=0):void{
}
public function glowBy(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):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 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 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 shadowRemove(_arg1:Number=0):void{
}
public function blurOut(_arg1:Number=1, _arg2:String="linear", _arg3:Number=0):void{
}
public function glowTo(_arg1:Object, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
}
public function stopTrack():void{
_clearTrack();
dispatchEvent(new Event(STOP_TRACK));
}
protected function _onTrack(_arg1:EUpdate):void{
if (_trackDelayTimer > 0){
_trackDelayTimer = (_trackDelayTimer - _arg1.dt);
if (_trackDelayTimer <= 0){
play();
};
};
if (currentFrame >= _trackOutFrame){
_completeTrack();
};
}
public function unpauseTween():void{
WorkinTweener.unpauseScope(this);
}
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 glowRemove(_arg1:Number=0):void{
}
public function fadeBy(_arg1:Number, _arg2:Number, _arg3:String="linear", _arg4:Number=0):void{
alphaBy(_arg1, _arg2, _arg3, _arg4);
}
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 blurSet(_arg1:Object, _arg2:Number=0):void{
}
public function posSet(_arg1:Number, _arg2:Number):void{
x = _arg1;
y = _arg2;
}
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 colorSet(_arg1:uint):void{
var _local2:ColorTransform = transform.colorTransform;
_local2.color = _arg1;
transform.colorTransform = _local2;
}
}
}//package com.workinman.lib.display
Section 51
//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 52
//EDebug (com.workinman.lib.events.EDebug)
package com.workinman.lib.events {
import com.workinman.lib.display.*;
public class EDebug extends EString {
public function EDebug(_arg1:String){
super(WorkinDebugger.EVENT_DEBUG, _arg1);
}
}
}//package com.workinman.lib.events
Section 53
//ENumber (com.workinman.lib.events.ENumber)
package com.workinman.lib.events {
import flash.events.*;
public class ENumber extends Event {
private var _data:Number;
public function ENumber(_arg1:String, _arg2:Number){
super(_arg1, false, false);
_data = _arg2;
}
public function get data():Number{
return (_data);
}
}
}//package com.workinman.lib.events
Section 54
//EProgress (com.workinman.lib.events.EProgress)
package com.workinman.lib.events {
import flash.events.*;
public class EProgress extends Event {
private var _url:String;
private var _bytesLoaded:Number;
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 url():String{
return (_url);
}
public function get bytesTotal():Number{
return (_bytesTotal);
}
public function get ratio():Number{
return ((_bytesLoaded / _bytesTotal));
}
public function get bytesLoaded():Number{
return (_bytesLoaded);
}
}
}//package com.workinman.lib.events
Section 55
//EString (com.workinman.lib.events.EString)
package com.workinman.lib.events {
import flash.events.*;
public class EString extends Event {
private var _data:String;
public function EString(_arg1:String, _arg2:String){
super(_arg1, false, false);
_data = _arg2;
}
public function get data():String{
return (_data);
}
}
}//package com.workinman.lib.events
Section 56
//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 _swf:DisplayObject;
private var _success:Boolean;
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 57
//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 58
//InterceptResult (com.workinman.lib.math.InterceptResult)
package com.workinman.lib.math {
public class InterceptResult {
private var _success:Boolean;
private var _line1:WorkinLine;
private var _result:WorkinPoint;
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 get line1():WorkinLine{
return (_line1);
}
public function get line2():WorkinLine{
return (_line2);
}
public function set line2(_arg1:WorkinLine):void{
_line2 = _arg1;
}
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 59
//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 60
//PennerManager (com.workinman.lib.math.PennerManager)
package com.workinman.lib.math {
public class PennerManager {
public static var EASE_IN:String = "easeIn";
public static var EASE_WAVE_OUT:String = "waveOut";
public static var LINEAR:String = "linear";
public static var EASE_BOUNCE_IN:String = "bounceIn";
public static var EASE_CIRCLE_OUT:String = "circleOut";
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_SPACE_IN:String = "spaceIn";
public static var EASE_CIRCLE:String = "circle";
public static var EASE_SPACE:String = "space";
public static var EASE_OUT:String = "easeOut";
public static var EASE_ELASTIC:String = "elastic";
public static var EASE_QUAD_OUT:String = "quadOut";
public static var EASE_BUMP_IN:String = "bumpIn";
public static var EASE_CUBIC_OUT:String = "cubicOut";
public static var EASE_CUBIC_IN:String = "cubicIn";
public static var EASE_EXPO_OUT:String = "expoOut";
public static var EASE_LINEAR:String = "linear";
public static var EASE_CUBIC:String = "cubic";
public static var EASE_EXPO:String = "expo";
public static var EASE_WAVE:String = "wave";
public static var EASE_QUAD_IN:String = "quadIn";
public static var EASE_ELASTIC_OUT:String = "elasticOut";
public static var EASE_BUMP_OUT:String = "bumpOut";
public static var EASE_WAVE_IN:String = "waveIn";
public static var EASE_ELASTIC_IN:String = "elasticIn";
public static var EASE_CIRCLE_IN:String = "circleIn";
public static var EASE_BUMP:String = "bump";
public static var EASE_BOUNCE_OUT:String = "bounceOut";
public static var EASE:String = "ease";
public static var EASE_QUAD:String = "quad";
public static var EASE_BOUNCE:String = "bounce";
protected static function _tweenCubicIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInCubic(_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 _tweenBumpOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutBack(_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 _tweenCubicOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutCubic(_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 _tweenExpoIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInExpo(_arg3, _arg1, _arg2, _arg4));
}
public static function getGTweenEase(_arg1:String):Function{
switch (_arg1){
case EASE_IN:
case EASE_QUAD_IN:
return (PennerEasing.easeInQuad);
case EASE_OUT:
case EASE_QUAD_OUT:
return (PennerEasing.easeOutQuad);
case EASE:
case EASE_QUAD:
return (PennerEasing.easeInOutQuad);
case EASE_EXPO:
return (PennerEasing.easeInOutExpo);
case EASE_EXPO_IN:
return (PennerEasing.easeInExpo);
case EASE_EXPO_OUT:
return (PennerEasing.easeOutExpo);
case EASE_ELASTIC:
return (PennerEasing.easeInOutElastic);
case EASE_ELASTIC_IN:
return (PennerEasing.easeInElastic);
case EASE_ELASTIC_OUT:
return (PennerEasing.easeOutElastic);
case EASE_BUMP:
return (PennerEasing.easeInOutBack);
case EASE_BUMP_IN:
return (PennerEasing.easeInBack);
case EASE_BUMP_OUT:
return (PennerEasing.easeOutBack);
case EASE_BOUNCE:
return (PennerEasing.easeInOutBounce);
case EASE_BOUNCE_IN:
return (PennerEasing.easeInBounce);
case EASE_BOUNCE_OUT:
return (PennerEasing.easeOutBounce);
case EASE_CUBIC:
return (PennerEasing.easeInOutCubic);
case EASE_CUBIC_IN:
return (PennerEasing.easeInCubic);
case EASE_CUBIC_OUT:
return (PennerEasing.easeOutCubic);
case EASE_SPACE:
return (PennerEasing.easeInOutQuart);
case EASE_SPACE_IN:
return (PennerEasing.easeInQuart);
case EASE_SPACE_OUT:
return (PennerEasing.easeOutQuart);
case EASE_BLAST:
return (PennerEasing.easeInOutQuint);
case EASE_BLAST_IN:
return (PennerEasing.easeInQuint);
case EASE_BLAST_OUT:
return (PennerEasing.easeOutQuint);
case EASE_WAVE:
return (PennerEasing.easeInOutSine);
case EASE_WAVE_IN:
return (PennerEasing.easeInSine);
case EASE_WAVE_OUT:
return (PennerEasing.easeOutSine);
case EASE_CIRCLE:
return (PennerEasing.easeInOutCirc);
case EASE_CIRCLE_IN:
return (PennerEasing.easeInCirc);
case EASE_CIRCLE_OUT:
return (PennerEasing.easeOutCirc);
case EASE_LINEAR:
default:
return (PennerEasing.linear);
};
}
protected static function _tweenCircleOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutCirc(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenBounceIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInBounce(_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 _tweenBumpBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutBack(_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 _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 _tweenBlastBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutQuint(_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 _tweenBounceOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutBounce(_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 _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 _tweenBounceBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutBounce(_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 _tweenSpaceIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInQuart(_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 _tweenElasticOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutElastic(_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 _tweenCubicBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutCubic(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenElasticBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutElastic(_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 _tweenExpoOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeOutExpo(_arg3, _arg1, _arg2, _arg4));
}
protected static function _tweenCircleBoth(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (PennerEasing.easeInOutCirc(_arg3, _arg1, _arg2, _arg4));
}
}
}//package com.workinman.lib.math
Section 61
//WorkinBezier (com.workinman.lib.math.WorkinBezier)
package com.workinman.lib.math {
public class WorkinBezier {
private var _loop:Number;
protected var _length:Number;
protected var _c0:WorkinPoint;
protected var _c1:WorkinPoint;
private var _cVal:Object;
protected var _p0:WorkinPoint;
protected var _p1:WorkinPoint;
private var _aVal:Object;
private var _bVal: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 get p1():WorkinPoint{
return (_p1);
}
public function copy():WorkinBezier{
return (new WorkinBezier(_p0, _p1, _c0, _c1, _segments));
}
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 set p1(_arg1:WorkinPoint):void{
_p1 = _arg1;
}
public function testPointIntercept(_arg1:WorkinPoint, _arg2:Number=3):Boolean{
var _local3:Array = 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 set p0(_arg1:WorkinPoint):void{
_p0 = _arg1;
}
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 testLineIntercept(_arg1:WorkinLine, _arg2:Number=3):InterceptResult{
var _local4:InterceptResult;
var _local3:Array = getAsLines(_arg2);
_loop = _local3.length;
while (_loop--) {
_local4 = _arg1.testLineIntercept(_local3[_loop]);
if (_local4.success){
return (_local4);
};
};
return (new InterceptResult(false));
}
public function get center():WorkinPoint{
return (getPoint(0.5));
}
public function getAsLines(_arg1:Number=3):Array{
var _local2:WorkinPoint = p0;
var _local3:* = [];
var _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 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 testLineSegmentIntercept(_arg1:WorkinLine, _arg2:Number=3):InterceptResult{
var _local4:InterceptResult;
var _local3:Array = 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 testBezierIntercept(_arg1:WorkinBezier, _arg2:Number=3):InterceptResult{
var _local5:InterceptResult;
var _local6:Number;
var _local3:Array = getAsLines(_arg2);
var _local4:Array = _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 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 62
//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();
}
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 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);
}
public function toLine(_arg1:WorkinLine):void{
_p0.toPoint(_arg1.p0);
_p1.toPoint(_arg1.p1);
_calcProperties();
}
public function recalculate():void{
_calcProperties();
}
public function testLineSegmentIntercept(_arg1:WorkinLine, _arg2:Boolean=false):InterceptResult{
var _local3:Number = ((-(_arg1.vector.x) * _vector.y) + (_vector.x * _arg1.vector.y));
var _local4:Number = (p0.x - _arg1.p0.x);
var _local5:Number = (p0.y - _arg1.p0.y);
var _local6:Number = (((-(_vector.y) * _local4) + (_vector.x * _local5)) / _local3);
var _local7:Number = (((_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 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=0):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 shiftOrigin(_arg1:Number):void{
var _local2:WorkinPoint = _vector.reverseCopy();
_local2.length = _arg1;
_p0.addPoint(_local2);
_calcProperties();
}
public function get yIntercept():Number{
return (_yIntercept);
}
public function testLineDot(_arg1:WorkinLine):Number{
return (_vector.dot(_arg1.normal));
}
public function testLineIntercept(_arg1:WorkinLine):InterceptResult{
_inverseDeterminate = (1 / ((_slope * -1) - (_arg1.slope * -1)));
var _local2:WorkinPoint = 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 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 get center():WorkinPoint{
return (new WorkinPoint((_p0.x + (_vector.x / 2)), (_p0.y + (_vector.y / 2))));
}
public function originTo(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_p0.to(_arg1, _arg2, _arg3);
_p0.clean();
_calcProperties();
}
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 = _p0.copy();
_p0.toPoint(_p1);
_p1.toPoint(_local1);
_calcProperties();
}
public function copy():WorkinLine{
return (new WorkinLine(_p0, _p1));
}
public function projectOntoLine(_arg1:WorkinLine):WorkinLine{
var _local2:Number = _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 shiftEnd(_arg1:Number):void{
length = (length + _arg1);
}
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 63
//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 set y(_arg1:Number):void{
_y = _arg1;
}
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 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{
if (_length == 0){
return (new WorkinPoint(0, 0, 0));
};
var _local2:Number = (_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 distTo2D(_arg1:WorkinPoint):Number{
return (Math.abs(Math.sqrt((((_x - _arg1.x) * (_x - _arg1.x)) + ((_y - _arg1.y) * (_y - _arg1.y))))));
}
public function rotate(_arg1:Number):void{
var _local2:Number = Math.cos(((_arg1 * Math.PI) / 180));
var _local3:Number = 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 projectOnto(_arg1:WorkinPoint):void{
var _local2:WorkinPoint = _arg1.normalizeCopy();
var _local3:Number = dot(_local2);
to((_local3 * _local2.x), (_local3 * _local2.y), 0);
}
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 = _arg1.normalizeCopy();
var _local3:Number = dot(_local2);
return (new WorkinPoint((_local3 * _local2.x), (_local3 * _local2.y), 0));
}
public function reverse():void{
x = -(x);
y = -(y);
z = -(z);
}
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 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 = Math.cos(((_arg1 * Math.PI) / 180));
var _local3:Number = Math.sin(((_arg1 * Math.PI) / 180));
return (new WorkinPoint(((x * _local2) - (y * _local3)), ((x * _local3) - (y * _local2))));
}
}
}//package com.workinman.lib.math
Section 64
//SWFLoader (com.workinman.lib.net.SWFLoader)
package com.workinman.lib.net {
import com.workinman.lib.events.*;
import flash.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 65
//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);
}
public static function get instance():SoundManager{
return (getInstance());
}
}
}//package com.workinman.lib.sound
Section 66
//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 _isLoading:Boolean;
protected var _isMusicStoppedByMute:Boolean;
protected var _isSoundOff:Boolean;
protected var _sounds:Object;
protected var _isMusicOff:Boolean;
protected var _currentVolume:Number;
protected var _currentMusicID:String;
public function SoundManager():void{
_sounds = {};
_externalSounds = [];
_currentMusicID = "";
_isLoading = false;
_isSoundOff = false;
_isMusicOff = false;
_currentVolume = 1;
}
public function musicOff():void{
if (isMusicPlaying){
_isMusicStoppedByMute = true;
} else {
_isMusicStoppedByMute = false;
};
stopMusic();
_isMusicOff = true;
}
public function soundEffectsOff():void{
_isSoundOff = true;
}
public function get isMusicPlaying():Boolean{
return (isSoundPlaying(_currentMusicID));
}
public function muteOff(_arg1:Boolean=true):void{
_isSoundOff = false;
if (_arg1 == false){
setVolume(_currentVolume, "all");
} else {
musicOn();
};
}
public function unpauseSound(_arg1:String):void{
resumeSound(_arg1);
}
public function fadeOutMusic():void{
if (_isMusicOff){
_isMusicStoppedByMute = false;
};
if ((((_currentMusicID == "")) || (!(isSoundPlaying(_currentMusicID))))){
return;
};
fadeOutSound(_currentMusicID);
}
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;
if (_isSoundOff == false){
_currentVolume = _arg1;
};
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{
if (_sounds[_arg1] != undefined){
return;
};
_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].pause();
}
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 stopMusic():void{
if (_currentMusicID == ""){
return;
};
if (_isMusicOff){
_isMusicStoppedByMute = false;
};
stopSound(_currentMusicID);
}
public function get currentMusic():String{
return (_currentMusicID);
}
public function soundEffectsOn():void{
_isSoundOff = false;
}
public function loopSound(_arg1:String, _arg2:SoundTransform=null):void{
if (!_verifySound(_arg1)){
return;
};
_sounds[_arg1].loop(_arg2);
}
public function muteToggle():void{
if (isMute){
muteOff();
} else {
muteOn();
};
}
public function fadeInSound(_arg1:String, _arg2:Number=-1):void{
if (!_verifySound(_arg1)){
return;
};
_sounds[_arg1].fadeIn(0, 0, null, _arg2);
}
public function playMusic(_arg1:String=null, _arg2:SoundTransform=null):void{
if (_isMusicOff){
if (_arg1 != null){
_currentMusicID = _arg1;
_isMusicStoppedByMute = true;
};
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 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 get isMusicOff():Boolean{
return (_isMusicOff);
}
private function _verifySound(_arg1:String, _arg2:Boolean=false):Boolean{
return (((((_arg2) || (!(_isSoundOff)))) && (!((_sounds[_arg1] == null)))));
}
public function muteOn(_arg1:Boolean=true):void{
_isSoundOff = true;
if (_arg1 == false){
setVolume(0, "all");
} else {
musicOff();
};
}
public function getSound(_arg1:String):WorkinSoundData{
return (_sounds[_arg1]);
}
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);
};
}
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 stopAllSounds():void{
var _local1:String;
for (_local1 in _sounds) {
if (_sounds[_local1].isPlaying){
stopSound(_local1);
};
};
}
public function musicOn():void{
_isMusicOff = false;
if (_isMusicStoppedByMute){
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 addSound(_arg1:String, _arg2:Class, _arg3:String="def"):void{
registerSound(_arg1, _arg2, _arg3);
}
public function get isMute():Boolean{
return (((_isMusicOff) && (_isSoundOff)));
}
private function _verifyMusic(_arg1:String, _arg2:Boolean=false):Boolean{
return (((((_arg2) || (!(_isMusicOff)))) && (!((_sounds[_arg1] == null)))));
}
public function fadeOutSound(_arg1:String, _arg2:Number=-1):void{
if (!_verifySound(_arg1, true)){
return;
};
_sounds[_arg1].fadeOut(_arg2);
}
}
}//package com.workinman.lib.sound
Section 67
//WorkinSoundData (com.workinman.lib.sound.WorkinSoundData)
package com.workinman.lib.sound {
import com.workinman.lib.events.*;
import flash.events.*;
import com.workinman.lib.utils.*;
import flash.media.*;
import flash.net.*;
public class WorkinSoundData extends EventDispatcher {
private var _group:String;
private var _sound:Sound;
private var _isPlaying:Boolean;
private var _isLooping:Boolean;
private var _volume:Number;
private var _pausePosition:Number;
private var _isLoading:Boolean;
private var _channel:SoundChannel;
private var _id:String;
private var _fadeDir:Number;
private var _isPaused:Boolean;
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){
var pClass = _arg1;
var pStream = _arg2;
var pContext = _arg3;
super();
if (pClass == null){
_isLoading = true;
try {
_sound = new Sound(pStream, pContext);
_addLoadingListeners();
} catch(pErr:Error) {
};
} else {
_sound = new (pClass);
_isLoading = false;
};
_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;
_removeChannelListener();
_channel.stop();
_channel = null;
dispatchEvent(new Event(SOUND_STOP));
}
public function get group():String{
return (_group);
}
private function _onSoundComplete(_arg1:Event):void{
_isPlaying = false;
dispatchEvent(new Event(COMPLETE));
_removeChannelListener();
if (_isLooping){
play(0, 100);
};
}
public function get bytesTotal():Number{
return (_sound.bytesTotal);
}
public function get volume():Number{
return (_volume);
}
public function get id():String{
return (_id);
}
private function _setVolume(_arg1:Number):void{
var _local2:SoundTransform = _channel.soundTransform;
_local2.volume = _arg1;
_channel.soundTransform = _local2;
}
public function loop(_arg1:SoundTransform=null):void{
if (_isLoading){
return;
};
if (_isPlaying){
if (_isLooping){
return;
};
stop();
};
play(0, 100, _arg1);
_isLooping = true;
}
private function _removeLoadingListeners():void{
if (!_isLoading){
return;
};
try {
_sound.removeEventListener(Event.COMPLETE, _onLoadComplete);
_sound.removeEventListener(IOErrorEvent.IO_ERROR, _onLoadError);
} catch(pErr:Error) {
};
}
public function get position():Number{
return ((_isPlaying) ? _channel.position : 0);
}
public function get isPlaying():Boolean{
return (_isPlaying);
}
public function resume(_arg1:Number=-1):void{
if (_arg1 >= 0){
_pausePosition = _arg1;
};
play();
}
public function fadeOut(_arg1:Number):void{
if (((!(_isPlaying)) || (_isLoading))){
return;
};
if (!_isFading){
_fadeVol = _volume;
};
_fadeDir = -1;
if (_arg1 > 0){
_fadeRate = _arg1;
};
_beginFade();
}
public function set volume(_arg1:Number):void{
_volume = _arg1;
if (_isPlaying){
_setVolume(_volume);
};
}
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))) || (!((_fadeVol == _volume))))){
_setVolume(_volume);
_fadeVol = _volume;
};
dispatchEvent(new Event(SOUND_PLAY));
return (_channel);
}
public function set id(_arg1:String):void{
_id = _arg1;
}
public function fadeIn(_arg1:Number=0, _arg2:int=0, _arg3:SoundTransform=null, _arg4:Number=-1):void{
var _local5:Number;
if (((_isLoading) || (((_isPlaying) && (!(_isFading)))))){
return;
};
if (!_isPlaying){
_local5 = _volume;
_volume = 0;
play(_arg1, _arg2, _arg3);
_volume = _local5;
};
if (!_isFading){
_fadeVol = 0;
};
if (_arg4 > 0){
_fadeRate = _arg4;
};
_fadeDir = 1;
_beginFade();
}
public function get isLooping():Boolean{
return (_isLooping);
}
private function _beginFade():void{
if (_isFading){
return;
};
_setVolume(_fadeVol);
Updater.getInstance().addEventListener(Updater.EVENT_UPDATE, _fade, false, 0, true);
_isFading = true;
}
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);
};
_removeLoadingListeners();
}
private function _removeChannelListener():void{
try {
_channel.removeEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
} catch(pError:Error) {
};
}
private function _onLoadComplete(_arg1:Event):void{
_removeLoadingListeners();
_isLoading = false;
}
private function _addLoadingListeners():void{
_sound.addEventListener(Event.COMPLETE, _onLoadComplete);
_sound.addEventListener(IOErrorEvent.IO_ERROR, _onLoadError);
}
private function _onLoadError(_arg1:IOErrorEvent):void{
_removeLoadingListeners();
}
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;
_setVolume(_volume);
_completeFade();
return;
};
} else {
_fadeVol = (_fadeVol - (_arg1.dt * _fadeRate));
if (_fadeVol <= 0){
_fadeVol = 0;
_setVolume(_fadeVol);
_completeFade();
stop();
return;
};
};
_fadeVol = (Math.round((_fadeVol * 1000)) / 1000);
_setVolume(_fadeVol);
}
public function pause():void{
if (!_isPlaying){
return;
};
_isPlaying = false;
_isPaused = true;
_pausePosition = _channel.position;
_channel.stop();
_removeChannelListener();
_channel = null;
dispatchEvent(new Event(SOUND_PAUSE));
}
public function set fadeRate(_arg1:Number):void{
_fadeRate = _arg1;
}
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;
}
}
}//package com.workinman.lib.sound
Section 68
//Updater (com.workinman.lib.utils.Updater)
package com.workinman.lib.utils {
import com.workinman.lib.events.*;
import flash.events.*;
import flash.utils.*;
public class Updater extends EventDispatcher {
private var _loop:Number;
private var _timer:Timer;
private var _listenerCount:Number;
private var _lastTimer:Number;
private var _isGameMode:Boolean;
private var _minimumUpdateTime:Number;
private var _deltaTime:Number;
private var _currentTimer:Number;
private var _autoStart:Boolean;
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);
}
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;
_isGameMode = false;
}
public function stop():void{
pause();
}
public function setAsGameTimer(_arg1:Boolean=true):void{
setGameMode(_arg1);
}
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;
if (_isGameMode){
_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 setGameMode(_arg1:Boolean=true):void{
_isGameMode = _arg1;
}
public function get autoStart():Boolean{
return (_autoStart);
}
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 get instance():Updater{
return (getInstance());
}
public static function getInstance():Updater{
if (_instance == null){
_instance = new (Updater);
_instance.init();
};
return (_instance);
}
}
}//package com.workinman.lib.utils
Section 69
//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);
}
public static function get instance():WorkinDispatcher{
return (getInstance());
}
}
}//package com.workinman.lib.utils
Section 70
//BasicAsset (com.workinman.paradise2.assets.BasicAsset)
package com.workinman.paradise2.assets {
import com.workinman.lib.events.*;
import flash.display.*;
import com.workinman.lib.math.*;
import com.workinman.lib.display.*;
public class BasicAsset extends WorkinMovieClip {
public var anim:MovieClip;
protected var _currentFrame:String;
public function BasicAsset(){
_currentFrame = "";
}
public function animate(_arg1:String):void{
if (_currentFrame == _arg1){
return;
};
_currentFrame = _arg1;
if (anim != null){
anim.gotoAndStop(1);
};
gotoAndStop(_arg1);
}
public function getFrameDimensions(_arg1:String):WorkinPoint{
return (new WorkinPoint());
}
public function get animCurrentFrame():Number{
if (anim == null){
return (0);
};
return (anim.currentFrame);
}
public function get animComplete():Boolean{
if (anim == null){
return (false);
};
return ((anim.currentFrame == anim.totalFrames));
}
protected function _addAnim(_arg1:String, _arg2:Class):void{
}
public function getFrameArt(_arg1:String):Class{
return (null);
}
public function dispatchToAnim(_arg1:EData):void{
if (anim == null){
return;
};
anim.dispatchEvent(_arg1);
}
public function get mc():MovieClip{
return (anim);
}
public function get animTotalFrames():Number{
if (anim == null){
return (-1);
};
return (anim.totalFrames);
}
public function get animation():String{
return (_currentFrame);
}
}
}//package com.workinman.paradise2.assets
Section 71
//ECamera (com.workinman.paradise2.events.ECamera)
package com.workinman.paradise2.events {
import flash.events.*;
import com.workinman.paradise2.world.camera.*;
public class ECamera extends Event {
private var _request:String;
private var _camera:BaseCamera;
public function ECamera(_arg1:String, _arg2:BaseCamera){
super(_arg1, false, false);
_camera = _arg2;
}
public function get camera():BaseCamera{
return (_camera);
}
}
}//package com.workinman.paradise2.events
Section 72
//EView (com.workinman.paradise2.events.EView)
package com.workinman.paradise2.events {
import flash.events.*;
import com.workinman.paradise2.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.paradise2.events
Section 73
//MotionCurve (com.workinman.paradise2.math.MotionCurve)
package com.workinman.paradise2.math {
import flash.events.*;
import com.workinman.lib.math.*;
public class MotionCurve extends EventDispatcher {
private var _current:WorkinPoint;
private var _formula:Function;
private var _pathRatio:Number;
private var _timeElapsed:Number;
private var _duration:Number;
private var _bezier:WorkinBezier;
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);
}
public function get y():Number{
return (_current.y);
}
public function get isComplete():Boolean{
return ((timeRatio == 1));
}
public function get timeRatio():Number{
return (_timeRatio);
}
public function update(_arg1:Number):void{
_updatePath(_arg1);
}
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 endToPoint(_arg1:WorkinPoint):void{
_bezier.endToPoint(_arg1);
_calculatePath();
}
public function startToPoint(_arg1:WorkinPoint):void{
_bezier.originToPoint(_arg1);
_calculatePath();
}
public function get duration():Number{
return (_duration);
}
public function get end():WorkinPoint{
return (_bezier.p1);
}
public function get start():WorkinPoint{
return (_bezier.p0);
}
public function get hasPosition():Boolean{
return (true);
}
private function _calculatePath():void{
_current = _bezier.getPoint(_pathRatio);
}
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 current():WorkinPoint{
return (_current);
}
public function startTo(_arg1:Number, _arg2:Number, _arg3:Number):void{
_bezier.originTo(_arg1, _arg2, _arg3);
_calculatePath();
}
}
}//package com.workinman.paradise2.math
Section 74
//MotionDelay (com.workinman.paradise2.math.MotionDelay)
package com.workinman.paradise2.math {
import flash.events.*;
public class MotionDelay extends EventDispatcher {
private var _timeElapsed:Number;
private var _duration:Number;
private var _ratio: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 get duration():Number{
return (_duration);
}
public function get hasPosition():Boolean{
return (false);
}
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);
}
}
}//package com.workinman.paradise2.math
Section 75
//MotionLine (com.workinman.paradise2.math.MotionLine)
package com.workinman.paradise2.math {
import flash.events.*;
import com.workinman.lib.math.*;
public class MotionLine extends EventDispatcher {
private var _current:WorkinPoint;
private var _line:WorkinLine;
private var _formula:Function;
private var _pathRatio:Number;
private var _timeElapsed:Number;
private var _duration:Number;
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);
_duration = _arg3;
_timeElapsed = 0;
_timeRatio = 0;
_pathRatio = 0;
_calculatePath();
_formula = PennerManager.getEaseFunction(_arg4);
}
public function get y():Number{
return (_current.y);
}
public function get isComplete():Boolean{
return ((timeRatio == 1));
}
public function get diff():WorkinPoint{
return (_line.vector);
}
public function update(_arg1:Number):void{
_updatePath(_arg1);
}
public function get timeRatio():Number{
return (_timeRatio);
}
public function endToPoint(_arg1:WorkinPoint):void{
_line.endToPoint(_arg1);
_calculatePath();
}
public function get duration():Number{
return (_duration);
}
public function startToPoint(_arg1:WorkinPoint):void{
_line.originToPoint(_arg1);
_calculatePath();
}
public function get end():WorkinPoint{
return (_line.p1);
}
public function get start():WorkinPoint{
return (_line.p0);
}
public function get hasPosition():Boolean{
return (true);
}
private function _calculatePath():void{
_current = _line.getPoint(_pathRatio);
}
public function get pathRatio():Number{
return (_pathRatio);
}
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 current():WorkinPoint{
return (_current);
}
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.paradise2.math
Section 76
//ViewGroup (com.workinman.paradise2.view.groups.ViewGroup)
package com.workinman.paradise2.view.groups {
import flash.display.*;
import com.workinman.paradise2.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 resortZ():void{
_renderables.sortOn("depth", (Array.NUMERIC | Array.DESCENDING));
_loop = 0;
while (_loop < _renderables.length) {
_container.removeChild(_renderables[_loop]);
_container.addChild(_renderables[_loop]);
_loop++;
};
}
public function clear():void{
_loop = _renderables.length;
while (_loop--) {
_container.removeChild(_renderables[_loop]);
};
_renderables = [];
}
public function cleanUp():void{
clear();
_container = null;
}
public function eraseMC(_arg1:Renderable):void{
var pRenderable = _arg1;
_loop = _renderables.length;
while (_loop--) {
if (_renderables[_loop] == pRenderable){
_renderables.splice(_loop, 1);
_loop = 0;
};
};
try {
_container.removeChild(pRenderable);
pRenderable.onErased();
} catch(pError:Error) {
};
}
public function drawMC(_arg1:Renderable):void{
var _local2:Number;
if (_arg1.doDepthRender){
_renderables.push(_arg1);
_renderables.sortOn("depth", (Array.NUMERIC | Array.DESCENDING));
_loop = _renderables.length;
_local2 = 0;
while (_loop--) {
if (_renderables[_loop] == _arg1){
_local2 = _loop;
_loop = 0;
};
};
_container.addChildAt(_arg1, _local2);
} else {
_renderables.push(_arg1);
_container.addChild(_arg1);
};
_arg1.onDrawn();
}
}
}//package com.workinman.paradise2.view.groups
Section 77
//ViewManager (com.workinman.paradise2.view.ViewManager)
package com.workinman.paradise2.view {
import com.workinman.lib.events.*;
import flash.events.*;
import com.workinman.paradise2.*;
import flash.display.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise2.events.*;
import flash.geom.*;
import com.workinman.paradise2.view.groups.*;
public class ViewManager extends EventDispatcher {
private var _loop:Number;
private var _screenshotOverlay:Bitmap;
private var _timeline:MovieClip;
private var _hasScreenshot:Boolean;
private var _DEF_GROUP_NAME:String;// = "base"
private var _groups:Object;
private var _viewRoom:EventDispatcher;
public function ViewManager(_arg1:MovieClip){
_timeline = _arg1;
_viewRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_VIEW);
_viewRoom.addEventListener(ParadiseConfig.EVENT_VIEW_DRAW, _draw);
_viewRoom.addEventListener(ParadiseConfig.EVENT_VIEW_ERASE, _erase);
_viewRoom.addEventListener(ParadiseConfig.EVENT_Z_SORT_ALL, _zSortAll);
_viewRoom.addEventListener(ParadiseConfig.EVENT_Z_SORT_GROUP, _zSortGroup);
_groups = {};
_hasScreenshot = false;
addGroup(_DEF_GROUP_NAME, 0);
}
public function cleanUp():void{
var _local1:*;
clearContentsBitmap();
_screenshotOverlay = null;
for (_local1 in _groups) {
_groups[_local1].cleanUp();
};
}
private function _zSortGroup(_arg1:EString):void{
_groups[_arg1.data].resortZ();
}
public function hide():void{
_timeline.visible = false;
}
public function resort():void{
}
public function clear():void{
var _local1:*;
for (_local1 in _groups) {
_groups[_local1].clear();
};
}
public function showContentsAsBitmap():void{
if (_hasScreenshot){
clearContentsBitmap();
};
_hasScreenshot = true;
_screenshotOverlay = new Bitmap(getContentsAsBitmap());
_timeline.addChild(_screenshotOverlay);
}
public function clearContentsBitmap():void{
if (!_hasScreenshot){
return;
};
_hasScreenshot = false;
_timeline.removeChild(_screenshotOverlay);
_screenshotOverlay.bitmapData.dispose();
}
public function addGroup(_arg1:String, _arg2:Number=-1, _arg3:Boolean=false):void{
addLayer(_arg1, _arg2, _arg3);
}
public function _draw(_arg1:EView):void{
if (_groups[((_arg1.renderable.group == "")) ? _DEF_GROUP_NAME : _arg1.renderable.group] == undefined){
return;
};
_groups[((_arg1.renderable.group == "")) ? _DEF_GROUP_NAME : _arg1.renderable.group].drawMC(_arg1.renderable);
}
public function _erase(_arg1:EView):void{
_groups[((_arg1.renderable.group == "")) ? _DEF_GROUP_NAME : _arg1.renderable.group].eraseMC(_arg1.renderable);
}
private function _zSortAll(_arg1:EString):void{
var _local2:*;
for (_local2 in _groups) {
_groups[_local2].resortZ();
};
}
public function addLayer(_arg1:String, _arg2:Number=-1, _arg3:Boolean=false):void{
var _local4:Sprite = new Sprite();
_local4.x = ParadiseConfig.SCREEN_OFFSET.x;
_local4.y = ParadiseConfig.SCREEN_OFFSET.y;
if (_arg3){
_local4.scrollRect = new Rectangle(0, 0, ParadiseConfig.SCREEN_WIDTH, ParadiseConfig.SCREEN_HEIGHT);
};
if (_arg2 < 0){
_timeline.addChild(_local4);
} else {
_timeline.addChildAt(_local4, _arg2);
};
_groups[_arg1] = new ViewGroup(_local4);
}
public function getContentsAsBitmap():BitmapData{
var _local1:BitmapData = 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);
}
public function show():void{
_timeline.visible = true;
}
}
}//package com.workinman.paradise2.view
Section 78
//BaseCamera (com.workinman.paradise2.world.camera.BaseCamera)
package com.workinman.paradise2.world.camera {
import com.workinman.lib.math.*;
import com.workinman.paradise2.world.entitys.*;
public class BaseCamera extends Element {
protected var _screenCenter:WorkinPoint;
protected var _focusY:Number;
protected var _focusZ:Number;
protected var _dimensions:WorkinPoint;
protected var _focusPoint:WorkinPoint;
protected var _halfDimensions:WorkinPoint;
public function BaseCamera(_arg1:Object){
super(_arg1);
if ((((_arg1.fx == undefined)) || ((_arg1.fy == undefined)))){
_focusPoint = new WorkinPoint();
} else {
_focusPoint = new WorkinPoint(_arg1.fx, _arg1.fy);
};
}
public function getRelativePos(_arg1:WorkinPoint):WorkinPoint{
return (new WorkinPoint((_pos.x + (_arg1.x - _pos.x)), (_pos.y + (_arg1.y - _pos.y))));
}
public function get fx():Number{
return (_pos.x);
}
public function get fy():Number{
return (_pos.y);
}
public function get fz():Number{
return (_pos.z);
}
public function get center():WorkinPoint{
return (_screenCenter);
}
function setDimensions(_arg1:WorkinPoint):void{
_dimensions = _arg1;
_screenCenter = _dimensions.divideCopy(2);
_halfDimensions = _dimensions.divideCopy(2);
}
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 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;
}
override public function set x(_arg1:Number):void{
_pos.x = _arg1;
}
override public function set y(_arg1:Number):void{
_pos.y = _arg1;
}
override public function get x():Number{
return (_pos.x);
}
override public function get y():Number{
return (_pos.y);
}
}
}//package com.workinman.paradise2.world.camera
Section 79
//CameraManager (com.workinman.paradise2.world.camera.CameraManager)
package com.workinman.paradise2.world.camera {
import flash.events.*;
import com.workinman.paradise2.*;
import com.workinman.lib.math.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise2.events.*;
public class CameraManager {
private var _activeCameraID:String;
private var _activeCamera:BaseCamera;
private var _dimensions:WorkinPoint;
private var _worldRoom:EventDispatcher;
private var _cameras:Object;
public function CameraManager():void{
_registerEventRooms();
_dimensions = ParadiseConfig.DIMENSIONS.addPointCopy(ParadiseConfig.SCREEN_OFFSET);
_cameras = {};
_activeCameraID = "";
}
public function renderCameraView():void{
_worldRoom.dispatchEvent(new ECamera(ParadiseConfig.EVENT_RENDER_FROM_CAMERA, _activeCamera));
}
public function cleanUp():void{
clear();
}
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));
}
protected function _registerEventRooms():void{
_worldRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_WORLD);
}
public function clear():void{
_activeCamera = null;
_worldRoom = null;
}
public function getRelativePos(_arg1:WorkinPoint):WorkinPoint{
return (_activeCamera.getRelativePos(_arg1));
}
public function changeCamera(_arg1:String):void{
_setActiveCamera(_arg1);
}
public function addCustomCamera(_arg1:BaseCamera, _arg2:String="custom", _arg3:Boolean=true):void{
if ((((_arg2 == "custom")) && (!((_cameras[_arg2] == undefined))))){
};
_cameras[_arg2] = _arg1;
_cameras[_arg2].setDimensions(_dimensions);
if (((_arg3) || ((_activeCameraID == "")))){
_setActiveCamera(_arg2);
};
}
public function get camera():BaseCamera{
return (_activeCamera);
}
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.paradise2.world.camera
Section 80
//Element (com.workinman.paradise2.world.entitys.Element)
package com.workinman.paradise2.world.entitys {
import com.workinman.lib.math.*;
import com.workinman.paradise2.math.*;
import com.workinman.lib.display.*;
public class Element extends WorkinMovieClip {
protected var _driveTarget:WorkinPoint;
protected var _loop:Number;
protected var _pos:WorkinPoint;
protected var _lastMotionLine:WorkinLine;
protected var _nextPos:WorkinPoint;
protected var _lastPos:WorkinPoint;
protected var _driveVector:WorkinPoint;
protected var _overdrive:Boolean;
protected var _velocity:WorkinPoint;
protected var _isDriving:Boolean;
protected var _frictionRate:Number;
protected var _terminalRate:Number;
protected var _accelerationRate:Number;
protected var _motionLine:WorkinLine;
protected var _paths:Array;
protected var _decelerationRate:Number;
public function Element(_arg1:Object){
_validateData(_arg1);
if (_pos == null){
_pos = new WorkinPoint(_arg1.x, _arg1.y, _arg1.z);
};
_lastPos = _pos.copy();
_nextPos = _pos.copy();
_motionLine = new WorkinLine(new WorkinPoint(), new WorkinPoint());
_lastMotionLine = new WorkinLine(new WorkinPoint(), new WorkinPoint());
_setInitialVelocity();
_setInitialPath();
_setInitialRates();
}
public function get lastMotionLine():WorkinLine{
return (_lastMotionLine);
}
public function _updateDrive(_arg1:Number):void{
_driveVector = _pos.diff(_driveTarget);
var _local2:WorkinPoint = _driveVector.normalizeCopy();
if ((((_driveVector.length < (_local2.multiplyCopy((_decelerationRate * _arg1)).length / 2))) && (((!(_overdrive)) || (((_overdrive) && ((_velocity.length < 4)))))))){
_velocity.to(0, 0, 0);
completeDrive();
return;
};
if (_driveVector.length < ((_velocity.length / 2) * (_velocity.length / _decelerationRate))){
if (_overdrive){
_local2.multiply((_frictionRate * _arg1));
} else {
_local2.multiply((_decelerationRate * _arg1));
};
_local2.reverse();
} else {
_local2.multiply((_accelerationRate * _arg1));
};
if ((_velocity.x * _local2.x) < 0){
_local2.x = (_local2.x + ((_frictionRate * _arg1) * ((_local2.x > 0)) ? 1 : -1));
};
if ((_velocity.y * _local2.y) < 0){
_local2.y = (_local2.y + ((_frictionRate * _arg1) * ((_local2.y > 0)) ? 1 : -1));
};
_velocity.addPoint(_local2);
if (_velocity.length > _terminalRate){
_velocity.length = _terminalRate;
};
}
public function get accelerationRate(){
return (_accelerationRate);
}
public function get terminalRate(){
return (_terminalRate);
}
public function set accelerationRate(_arg1:Number){
_accelerationRate = _arg1;
}
public function updatePosition(_arg1:Number):void{
_lastPos.toPoint(_pos);
_pos.toPoint(_nextPos);
_lastMotionLine.toLine(_motionLine.copy());
_calculateMotion();
}
public function get isPathing():Boolean{
return ((_paths.length > 0));
}
public function get motionVector():WorkinPoint{
return (_motionLine.vector);
}
protected function _onPathComplete():void{
}
protected function _setInitialVelocity():void{
_velocity = new WorkinPoint(0, 0);
_isDriving = false;
_driveTarget = new WorkinPoint(0, 0);
_overdrive = false;
}
public function clearPaths():void{
if (_paths.length == 0){
return;
};
_paths = [];
_onPathCancelled();
}
public function driveTo(_arg1:WorkinPoint, _arg2:Boolean=false):void{
if (_arg1.equals(_pos)){
return;
};
_driveTarget = _arg1.copy();
_isDriving = true;
_overdrive = _arg2;
}
public function setPath(_arg1:WorkinPoint, _arg2:Number=-1, _arg3:String="linear"):void{
clearPaths();
addPath(_arg1, _arg2, _arg3);
}
protected function _updatePath(_arg1:Number):void{
_paths[0].update(_arg1);
if (_paths[0].hasPosition){
_nextPos.toPoint(_paths[0].current);
_velocity.to((_nextPos.x - _lastPos.x), (_nextPos.y - _lastPos.y), (_nextPos.z - _lastPos.z));
_velocity.multiply((1 / _arg1));
};
if (_paths[0].isComplete){
_paths.splice(0, 1);
if (_paths.length == 0){
_onPathComplete();
} else {
if (_paths[0].hasPosition){
_paths[0].startToPoint(_nextPos);
};
};
};
}
public function clearCurrentPath():void{
if (_paths.length == 0){
return;
};
_paths.shift();
if (_paths.length == 0){
_onPathCancelled();
};
}
protected function _onPathBegin():void{
}
public function updatePrediction(_arg1:Number):void{
if (_paths.length > 0){
_updatePath(_arg1);
} else {
_updateVelocity(_arg1);
};
_calculateMotion();
}
public function get isDriving():Boolean{
return (_isDriving);
}
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 get decelerationRate(){
return (_decelerationRate);
}
public function predictionToPoint(_arg1:WorkinPoint):void{
_nextPos.toPoint(_arg1);
_calculateMotion();
}
public function setDelay(_arg1:Number):void{
clearPaths();
addDelay(_arg1);
}
public function update(_arg1:Number):void{
updatePrediction(_arg1);
updatePosition(_arg1);
}
public function get motionLine():WorkinLine{
return (_motionLine);
}
protected function _clearVelocity():void{
_velocity.to(0, 0);
}
public function clearDrive(_arg1:Boolean=false):void{
_driveTarget = _pos.copy();
if (!_arg1){
_velocity.to(0, 0, 0);
};
_isDriving = false;
}
public function addCurve(_arg1:WorkinPoint, _arg2:WorkinPoint, _arg3:WorkinPoint, _arg4:Number=-1, _arg5:String="linear"):void{
if (_arg4 < 0){
_arg4 = (_pos.diff(_arg1).length / _terminalRate);
};
_paths.push(new MotionCurve(_pos, _arg1, _arg2, _arg3, _arg4, _arg5));
if (_paths.length > 1){
_onPathBegin();
};
}
public function get lastMotionVector():WorkinPoint{
return (_lastMotionLine.vector);
}
public function completeDrive():void{
_nextPos.toPoint(_driveTarget);
_isDriving = false;
}
public function get pos():WorkinPoint{
return (_pos);
}
public function toPoint(_arg1:WorkinPoint):void{
_lastPos.toPoint(_pos);
_pos.toPoint(_arg1);
_nextPos.toPoint(_pos);
}
public function get velocity():WorkinPoint{
return (_velocity);
}
public function get lastPos():WorkinPoint{
return (_lastPos);
}
public function set decelerationRate(_arg1:Number){
_decelerationRate = _arg1;
}
public function addDelay(_arg1:Number):void{
_paths.push(new MotionDelay(_arg1));
}
protected function _setInitialPath():void{
_paths = [];
}
public function predictionTo(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_nextPos.to(_arg1, _arg2, _arg3);
_calculateMotion();
}
protected function _updateVelocity(_arg1:Number):void{
if (_isDriving){
_updateDrive(_arg1);
};
_nextPos.add((_velocity.x * _arg1), (_velocity.y * _arg1), (_velocity.z * _arg1));
}
public function addPath(_arg1:WorkinPoint, _arg2:Number=-1, _arg3:String="linear"):void{
if (_arg2 < 0){
_arg2 = (_pos.diff(_arg1).length / _terminalRate);
};
_paths.push(new MotionLine(_pos, _arg1, _arg2, _arg3));
if (_paths.length > 1){
_onPathBegin();
};
}
protected function _onPathCancelled():void{
}
protected function _setInitialRates():void{
decelerationRate = 260;
accelerationRate = 200;
terminalRate = 300;
frictionRate = 150;
}
override public function toString():String{
return (((("[Element] " + _pos) + " -> ") + _nextPos));
}
public function set frictionRate(_arg1:Number){
_frictionRate = _arg1;
}
public function set terminalRate(_arg1:Number){
_terminalRate = _arg1;
}
public function get frictionRate(){
return (_frictionRate);
}
public function to(_arg1:Number, _arg2:Number, _arg3:Number=0):void{
_lastPos.toPoint(_pos);
_pos.to(_arg1, _arg2, _arg3);
_nextPos.toPoint(_pos);
_calculateMotion();
}
public function get predictedPos():WorkinPoint{
return (_nextPos);
}
protected function _calculateMotion():void{
_motionLine.to(_pos, _nextPos);
}
}
}//package com.workinman.paradise2.world.entitys
Section 81
//ParaSprite (com.workinman.paradise2.world.entitys.ParaSprite)
package com.workinman.paradise2.world.entitys {
import flash.display.*;
import com.workinman.lib.display.*;
import com.workinman.paradise2.assets.*;
public class ParaSprite extends Renderable {
protected var _assetClass:Class;
protected var _isAssetComplex:Boolean;
protected var _asset:MovieClip;
protected var _isAssetWorkinMC:Boolean;
protected var _isAssetMC:Boolean;
public function ParaSprite(_arg1:Object){
super(_arg1);
if (_arg1.asset == null){
_assetClass = _defaultAsset;
} else {
_assetClass = _arg1.asset;
};
_asset = new _assetClass();
_isAssetWorkinMC = false;
_isAssetComplex = false;
_isAssetMC = false;
if ((_asset is WorkinMovieClip)){
_isAssetWorkinMC = true;
} else {
if ((_asset is BasicAsset)){
_isAssetComplex = true;
} else {
_isAssetMC = true;
};
};
addChild(_asset);
_onGenerateAsset();
_recalculateDimensions();
}
override public function onDrawn():void{
_mcVisible = true;
}
protected function _onGenerateAsset():void{
}
public function get assetClass():Class{
return (_assetClass);
}
protected function _animate(_arg1:String):void{
if (!_isAssetComplex){
_asset.gotoAndStop(_arg1);
return;
};
_asset.animate(_arg1);
}
public function get asset():MovieClip{
return (_asset);
}
protected function get _defaultAsset():Class{
return (BasicAsset);
}
override public function cleanUp():void{
super.cleanUp();
if (_isAssetMC){
return;
};
_asset.cleanUp();
}
}
}//package com.workinman.paradise2.world.entitys
Section 82
//Renderable (com.workinman.paradise2.world.entitys.Renderable)
package com.workinman.paradise2.world.entitys {
import flash.events.*;
import com.workinman.paradise2.*;
import com.workinman.lib.math.*;
import com.workinman.paradise2.world.camera.*;
import com.workinman.lib.utils.*;
import com.workinman.paradise2.events.*;
public class Renderable extends Element {
protected var _displayWidth:Number;
protected var _displayHeight:Number;
protected var _worldRoom:EventDispatcher;
protected var _halfDisplayHeight:Number;
protected var _renderVisibility:Function;
protected var _displayCenter:WorkinPoint;
protected var _depth:Number;
protected var _halfDisplayWidth:Number;
protected var _isOnscreen:Boolean;
protected var _mcVisible:Boolean;
protected var _viewRoom:EventDispatcher;
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);
_worldRoom.addEventListener(ParadiseConfig.EVENT_CAMERA_CHANGE, _onCameraChange);
WorkinDispatcher.instance.addEventListener(ParadiseConfig.EVENT_CLEAN_UP_WORLD, _onCleanUpEvent);
_assignRenderVisibility();
}
public function get displayHeight():Number{
return (_displayHeight);
}
public function onDrawn():void{
_mcVisible = true;
}
protected function get _padDisplayDimensionsForNonCenteredAssets():Boolean{
return (false);
}
protected function get _isAlwaysVisible():Boolean{
return (false);
}
public function get halfDisplayHeight():Number{
return (_halfDisplayHeight);
}
protected function _registerEventRooms():void{
_viewRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_VIEW);
_worldRoom = WorkinDispatcher.getInstance().getRoom(ParadiseConfig.ROOM_WORLD);
}
public function get group():String{
return ("");
}
protected function _draw():void{
_updateDepth();
_viewRoom.dispatchEvent(new EView(ParadiseConfig.EVENT_VIEW_DRAW, this));
}
public function get displayWidth():Number{
return (_displayWidth);
}
public function get isDrawn():Boolean{
return (_mcVisible);
}
protected function _onRender(_arg1:ECamera):void{
_renderPosition(_arg1.camera);
_renderVisibility(_arg1.camera);
}
public function get doDepthRender():Boolean{
return (false);
}
protected function _erase():void{
if (_mcVisible){
_viewRoom.dispatchEvent(new EView(ParadiseConfig.EVENT_VIEW_ERASE, this));
};
}
public function get displayCenter():WorkinPoint{
return (_displayCenter);
}
protected function _renderCustomVisibility(_arg1:BaseCamera):void{
}
protected function _updateDepth():void{
_depth = _pos.z;
}
public function onErased():void{
_mcVisible = false;
}
protected function _recalculateDimensions():void{
if (_automaticallyDetermineDisplayDimensions){
_displayWidth = width;
_displayHeight = height;
if (_padDisplayDimensionsForNonCenteredAssets){
_halfDisplayWidth = width;
_halfDisplayHeight = height;
} else {
_halfDisplayWidth = (width / 2);
_halfDisplayHeight = (height / 2);
};
} else {
_halfDisplayWidth = (_displayWidth / 2);
_halfDisplayHeight = (_displayHeight / 2);
};
_recalculateDisplayCenter();
}
public function get depth():Number{
return (_depth);
}
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 get _useCustomVisibility():Boolean{
return (false);
}
override public function cleanUp():void{
super.cleanUp();
_erase();
_worldRoom.removeEventListener(ParadiseConfig.EVENT_CAMERA_CHANGE, _onCameraChange);
_worldRoom.removeEventListener(ParadiseConfig.EVENT_RENDER_FROM_CAMERA, _onRender);
WorkinDispatcher.instance.removeEventListener(ParadiseConfig.EVENT_CLEAN_UP_WORLD, _onCleanUpEvent);
}
private function _onCleanUpEvent(_arg1:Event):void{
cleanUp();
}
protected function _onCameraChange(_arg1:ECamera):void{
_onRender(_arg1);
}
private function _renderAlwaysVisibility(_arg1:BaseCamera):void{
if (!_mcVisible){
_draw();
};
}
protected function get _automaticallyDetermineDisplayDimensions():Boolean{
return (true);
}
protected function get _assetRegistrationPoint():String{
return ("cc");
}
private function _renderCameraVisibility(_arg1:BaseCamera):void{
_isOnscreen = _arg1.isOnscreen(this);
if (((_isOnscreen) && (!(_mcVisible)))){
_draw();
} else {
if (((!(_isOnscreen)) && (_mcVisible))){
_erase();
};
};
}
protected function _assignRenderVisibility():void{
if (_isAlwaysVisible){
_renderVisibility = _renderAlwaysVisibility;
} else {
if (_useCustomVisibility){
_renderVisibility = _renderCustomVisibility;
} else {
_renderVisibility = _renderCameraVisibility;
};
};
}
public function get halfDisplayWidth():Number{
return (_halfDisplayWidth);
}
protected function _renderPosition(_arg1:BaseCamera):void{
x = (_arg1.center.x + (_pos.x - _arg1.x));
y = (_arg1.center.y + (_pos.y - _arg1.y));
}
}
}//package com.workinman.paradise2.world.entitys
Section 83
//BaseController (com.workinman.paradise2.BaseController)
package com.workinman.paradise2 {
import com.workinman.lib.events.*;
import flash.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 _onMouseClick(_arg1:Event):void{
if (mouseInPlayArea){
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_MOUSE_CLICK, {x:_timeline.stage.mouseX, y:_timeline.stage.mouseY}));
};
}
private function _onMouseUp(_arg1:Event):void{
if (mouseInPlayArea){
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_MOUSE_UP, {x:_timeline.stage.mouseX, y:_timeline.stage.mouseY}));
};
}
public function activateKeyboardControl(_arg1:MovieClip=null):void{
if (_arg1 == null){
_arg1 = _timeline;
};
_arg1.stage.addEventListener(KeyboardEvent.KEY_DOWN, _onKeyDown);
_arg1.stage.addEventListener(KeyboardEvent.KEY_UP, _onKeyUp);
}
private function _onMouseDown(_arg1:Event):void{
if (mouseInPlayArea){
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_MOUSE_DOWN, {x:_timeline.stage.mouseX, y:_timeline.stage.mouseY}));
};
}
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, ctrlKey:_arg1.ctrlKey, shiftKey:_arg1.shiftKey, altKey:_arg1.altKey}));
};
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_KEY_DOWN, {keyCode:_arg1.keyCode, charCode:_arg1.charCode, ctrlKey:_arg1.ctrlKey, shiftKey:_arg1.shiftKey, altKey:_arg1.altKey}));
}
public function activateMouseControl(_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.stage.addEventListener(MouseEvent.CLICK, _onMouseClick);
if (_arg2){
return;
};
_arg1.stage.addEventListener(MouseEvent.MOUSE_UP, _onMouseUp);
_arg1.stage.addEventListener(MouseEvent.MOUSE_DOWN, _onMouseDown);
}
public function get mouseInPlayArea():Boolean{
return (_mouseRectangle.contains(_timeline.mouseX, _timeline.mouseY));
}
private function _onKeyUp(_arg1:KeyboardEvent):void{
WorkinDispatcher.getInstance().dispatchEvent(new EData(ParadiseConfig.EVENT_KEY_UP, {keyCode:_arg1.keyCode, charCode:_arg1.charCode, ctrlKey:_arg1.ctrlKey, shiftKey:_arg1.shiftKey, altKey:_arg1.altKey}));
}
}
}//package com.workinman.paradise2
Section 84
//BaseEngine (com.workinman.paradise2.BaseEngine)
package com.workinman.paradise2 {
import com.workinman.lib.sound.*;
import com.workinman.paradise2.view.*;
import flash.display.*;
import flash.text.*;
public class BaseEngine {
protected var _view:ViewManager;
protected var _sound:SoundManager;
protected var _control:BaseController;
protected var _timeline:BaseTimeline;
protected var _debugText:TextField;
protected var _configXMLURL:String;
protected var _configXML:XML;
public function BaseEngine(_arg1:BaseTimeline){
_generate(_arg1);
}
public function clearDebug():void{
_debugText.text = "";
}
protected function _addEventListeners():void{
}
protected function _beginEngine():void{
}
public function get sound():SoundManager{
return (_sound);
}
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;
_addEventListeners();
if (_timeline.configurl != null){
_configXMLURL = _timeline.configurl;
} else {
_configXMLURL = "";
};
_generateState();
_generateSounds();
_generateControls();
_generateView();
_generateUI();
}
protected function _removeEventListeners():void{
}
protected function _generateView():void{
var _local1:MovieClip = new MovieClip();
_view = new ViewManager(_local1);
_timeline.addChild(_local1);
}
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);
}
protected function _generateState():void{
}
public function get control():BaseController{
return (_control);
}
public function get view():ViewManager{
return (_view);
}
protected function _generateControls():void{
_control = new BaseController(_timeline);
_control.activateMouseControl();
_control.activateKeyboardControl();
}
protected function _generateUI():void{
}
protected function get _DEBUG():Boolean{
return (false);
}
protected function _generateSounds():void{
_sound = GlobalSound.getInstance();
}
}
}//package com.workinman.paradise2
Section 85
//BaseTimeline (com.workinman.paradise2.BaseTimeline)
package com.workinman.paradise2 {
import flash.display.*;
public class BaseTimeline extends MovieClip {
public var game_container:MovieClip;
public var ui_container:MovieClip;
public var transition_container:MovieClip;
public var configurl:String;
public function BaseTimeline():void{
_generate();
}
protected function _begin():void{
transition_container = new MovieClip();
ui_container = new MovieClip();
game_container = new MovieClip();
addChild(game_container);
addChild(ui_container);
addChild(transition_container);
}
protected function _generate():void{
}
}
}//package com.workinman.paradise2
Section 86
//ParadiseConfig (com.workinman.paradise2.ParadiseConfig)
package com.workinman.paradise2 {
import com.workinman.lib.math.*;
public class ParadiseConfig {
public static var EVENT_KEY_UP:String = "paraOnKeyUp";
public static var EVENT_MOUSE_DOWN:String = "paraOnMouseDown";
public static var EVENT_CAMERA_CHANGE:String = "paraCameraChange";
public static var ROOM_VIEW:String = "view";
public static var EVENT_Z_SORT_ALL:String = "paraZSortAll";
protected static var _SCREEN_CENTER:WorkinPoint;
public static var ROOM_WORLD:String = "world";
public static var EVENT_RENDER_FROM_CAMERA:String = "paraCameraRender";
public static var EVENT_CLEAN_UP_WORLD:String = "paraCleanUpWorld";
public static var EVENT_VIEW_DRAW:String = "paraViewDraw";
public static var ROOM_ENGINE:String = "engine";
public static var EVENT_Z_SORT_GROUP:String = "paraZSortGroup";
public static var EVENT_MOUSE_UP:String = "paraOnMouseUp";
protected static var _SCREEN_OFFSET:WorkinPoint;
public static var EVENT_KEY_DOWN:String = "paraOnKeyDown";
public static var EVENT_VIEW_ERASE:String = "paraViewErase";
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 = "paraOnMouseClick";
protected static var _SCREEN_WIDTH:Number = 600;
public static var EVENT_SPACEBAR:String = "paraOnSpacebar";
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.paradise2
Section 87
//_preload_1 (spongebob_ghostly_gold_fla._preload_1)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class _preload_1 extends MovieClip {
public function _preload_1(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 88
//bob_down_squish_67 (spongebob_ghostly_gold_fla.bob_down_squish_67)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class bob_down_squish_67 extends MovieClip {
public function bob_down_squish_67(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 89
//bob_up_squish_65 (spongebob_ghostly_gold_fla.bob_up_squish_65)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class bob_up_squish_65 extends MovieClip {
public function bob_up_squish_65(){
addFrameScript(3, frame4);
}
function frame4(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 90
//copper_dubloon_vanish_70 (spongebob_ghostly_gold_fla.copper_dubloon_vanish_70)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class copper_dubloon_vanish_70 extends MovieClip {
public function copper_dubloon_vanish_70(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 91
//ghost_pirate_body_36 (spongebob_ghostly_gold_fla.ghost_pirate_body_36)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class ghost_pirate_body_36 extends MovieClip {
public function ghost_pirate_body_36(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 92
//gold_dubloon_vanish_74 (spongebob_ghostly_gold_fla.gold_dubloon_vanish_74)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class gold_dubloon_vanish_74 extends MovieClip {
public function gold_dubloon_vanish_74(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 93
//intro_sponge_scare_loop_33 (spongebob_ghostly_gold_fla.intro_sponge_scare_loop_33)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class intro_sponge_scare_loop_33 extends MovieClip {
public function intro_sponge_scare_loop_33(){
addFrameScript(122, frame123);
}
function frame123(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 94
//MainTimeline (spongebob_ghostly_gold_fla.MainTimeline)
package spongebob_ghostly_gold_fla {
import com.nick.spongebob.pirate_bounce.*;
import com.workinman.lib.events.*;
import flash.events.*;
import flash.display.*;
import com.workinman.lib.utils.*;
public dynamic class MainTimeline extends MovieClip {
public var tTimeline:GameTimeline;
public var tLoader:MovieClip;
public var tRatio:Number;
public function MainTimeline(){
addFrameScript(0, frame1, 4, frame5);
}
function frame1(){
tLoader = new AssetLoader();
addChild(tLoader);
Updater.instance.addEventListener(Updater.EVENT_UPDATE, _update);
stop();
}
public function _update(_arg1:EUpdate):void{
tRatio = (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal);
if (tRatio == 0){
tRatio = 0.01;
};
tLoader.gotoAndStop(Math.ceil((tRatio * 100)));
if (tRatio == 1){
gotoAndStop(5);
Updater.instance.removeEventListener(Updater.EVENT_UPDATE, _update);
removeChild(tLoader);
};
}
function frame5(){
tTimeline = new GameTimeline();
addChild(tTimeline);
WorkinDispatcher.instance.dispatchEvent(new Event(GameConfig.EVENT_ENGINE_INIT_REQUEST));
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 95
//patrick_downsquish_112 (spongebob_ghostly_gold_fla.patrick_downsquish_112)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class patrick_downsquish_112 extends MovieClip {
public function patrick_downsquish_112(){
addFrameScript(2, frame3);
}
function frame3(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 96
//patrick_up_squish_110 (spongebob_ghostly_gold_fla.patrick_up_squish_110)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class patrick_up_squish_110 extends MovieClip {
public function patrick_up_squish_110(){
addFrameScript(3, frame4);
}
function frame4(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 97
//silver_dubloon_vanish_72 (spongebob_ghostly_gold_fla.silver_dubloon_vanish_72)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class silver_dubloon_vanish_72 extends MovieClip {
public function silver_dubloon_vanish_72(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 98
//special_dubloon_vanish_77 (spongebob_ghostly_gold_fla.special_dubloon_vanish_77)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class special_dubloon_vanish_77 extends MovieClip {
public function special_dubloon_vanish_77(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 99
//timer_anim_98 (spongebob_ghostly_gold_fla.timer_anim_98)
package spongebob_ghostly_gold_fla {
import flash.display.*;
public dynamic class timer_anim_98 extends MovieClip {
public function timer_anim_98(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spongebob_ghostly_gold_fla
Section 100
//AssetBackground (AssetBackground)
package {
import flash.display.*;
public dynamic class AssetBackground extends MovieClip {
}
}//package
Section 101
//AssetBoat (AssetBoat)
package {
import flash.display.*;
public dynamic class AssetBoat extends MovieClip {
}
}//package
Section 102
//AssetForeground (AssetForeground)
package {
import flash.display.*;
public dynamic class AssetForeground extends MovieClip {
}
}//package
Section 103
//AssetGhost (AssetGhost)
package {
import flash.display.*;
public dynamic class AssetGhost extends MovieClip {
public function AssetGhost(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 104
//AssetLoader (AssetLoader)
package {
import flash.display.*;
public dynamic class AssetLoader extends MovieClip {
public function AssetLoader(){
addFrameScript(99, frame100);
}
function frame100(){
stop();
}
}
}//package
Section 105
//AssetParticleCoin (AssetParticleCoin)
package {
import flash.display.*;
public dynamic class AssetParticleCoin extends MovieClip {
public function AssetParticleCoin(){
addFrameScript(6, frame7);
}
function frame7(){
stop();
}
}
}//package
Section 106
//AssetParticleGhost (AssetParticleGhost)
package {
import flash.display.*;
public dynamic class AssetParticleGhost extends MovieClip {
public function AssetParticleGhost(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package
Section 107
//AssetParticleSparkle (AssetParticleSparkle)
package {
import flash.display.*;
public dynamic class AssetParticleSparkle extends MovieClip {
public function AssetParticleSparkle(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package
Section 108
//AssetPatrick (AssetPatrick)
package {
import flash.display.*;
public dynamic class AssetPatrick extends MovieClip {
public var anim:MovieClip;
public function AssetPatrick(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 109
//AssetPickup (AssetPickup)
package {
import flash.display.*;
public dynamic class AssetPickup extends MovieClip {
}
}//package
Section 110
//AssetPickupCopper (AssetPickupCopper)
package {
import flash.display.*;
public dynamic class AssetPickupCopper extends MovieClip {
public var anim:MovieClip;
}
}//package
Section 111
//AssetPickupGold (AssetPickupGold)
package {
import flash.display.*;
public dynamic class AssetPickupGold extends MovieClip {
public var anim:MovieClip;
}
}//package
Section 112
//AssetPickupSilver (AssetPickupSilver)
package {
import flash.display.*;
public dynamic class AssetPickupSilver extends MovieClip {
public var anim:MovieClip;
}
}//package
Section 113
//AssetPickupSpecial (AssetPickupSpecial)
package {
import flash.display.*;
public dynamic class AssetPickupSpecial extends MovieClip {
public var anim:MovieClip;
}
}//package
Section 114
//AssetScore (AssetScore)
package {
import flash.display.*;
import flash.text.*;
public dynamic class AssetScore extends MovieClip {
public var txt:TextField;
}
}//package
Section 115
//AssetSpongebob (AssetSpongebob)
package {
import flash.display.*;
public dynamic class AssetSpongebob extends MovieClip {
public var anim:MovieClip;
public function AssetSpongebob(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 116
//AssetTimeBonusGreen (AssetTimeBonusGreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class AssetTimeBonusGreen extends MovieClip {
public var txt:TextField;
}
}//package
Section 117
//AssetTimeBonusRed (AssetTimeBonusRed)
package {
import flash.display.*;
import flash.text.*;
public dynamic class AssetTimeBonusRed extends MovieClip {
public var txt:TextField;
}
}//package
Section 118
//AssetTimer (AssetTimer)
package {
import flash.display.*;
public dynamic class AssetTimer extends MovieClip {
public var timer_mc:MovieClip;
}
}//package
Section 119
//AssetTimeUp (AssetTimeUp)
package {
import flash.display.*;
public dynamic class AssetTimeUp extends MovieClip {
public function AssetTimeUp(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 120
//buttondown (buttondown)
package {
import flash.media.*;
public dynamic class buttondown extends Sound {
}
}//package
Section 121
//buttonover (buttonover)
package {
import flash.media.*;
public dynamic class buttonover extends Sound {
}
}//package
Section 122
//coin1 (coin1)
package {
import flash.media.*;
public dynamic class coin1 extends Sound {
}
}//package
Section 123
//coin2 (coin2)
package {
import flash.media.*;
public dynamic class coin2 extends Sound {
}
}//package
Section 124
//coin3 (coin3)
package {
import flash.media.*;
public dynamic class coin3 extends Sound {
}
}//package
Section 125
//coin4 (coin4)
package {
import flash.media.*;
public dynamic class coin4 extends Sound {
}
}//package
Section 126
//floorcreak06 (floorcreak06)
package {
import flash.media.*;
public dynamic class floorcreak06 extends Sound {
}
}//package
Section 127
//floorcreak08 (floorcreak08)
package {
import flash.media.*;
public dynamic class floorcreak08 extends Sound {
}
}//package
Section 128
//GameScoreUI (GameScoreUI)
package {
import com.nick.spongebob.pirate_bounce.ui.displays.*;
public dynamic class GameScoreUI extends ScoreDisplay {
}
}//package
Section 129
//ghost_screecher_01 (ghost_screecher_01)
package {
import flash.media.*;
public dynamic class ghost_screecher_01 extends Sound {
}
}//package
Section 130
//monster_laugh01 (monster_laugh01)
package {
import flash.media.*;
public dynamic class monster_laugh01 extends Sound {
}
}//package
Section 131
//PayoffScore (PayoffScore)
package {
import com.nick.spongebob.pirate_bounce.ui.displays.*;
public dynamic class PayoffScore extends ScoreDisplay {
}
}//package
Section 132
//power_up (power_up)
package {
import flash.media.*;
public dynamic class power_up extends Sound {
}
}//package