Section 1
//ActController (com.cipherprime.auditorium.controllers.ActController)
package com.cipherprime.auditorium.controllers {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
public class ActController extends Controller {
public function ActController(m:Model){
super(m);
}
public function startAct():void{
var level:Object;
for each (level in model.currentAct.levels.list) {
tricycle.levelModel.newChild(level);
};
model.start();
}
public function event_ActLoaded():void{
startAct();
}
public function nextAct():void{
tricycle.audioModel.removeAll();
model.loadNextAct();
}
}
}//package com.cipherprime.auditorium.controllers
Section 2
//AudioController (com.cipherprime.auditorium.controllers.AudioController)
package com.cipherprime.auditorium.controllers {
import com.cipherprime.tricycle.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.utils.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.gs.*;
import com.cipherprime.auditorium.models.flow.warps.modifiers.*;
import com.cipherprime.auditorium.*;
public class AudioController extends Controller {
private var _active:Boolean;// = true
private var _audioLinkage:Dictionary;
private var _audioModel:Model;
public function AudioController(m:Model){
_audioLinkage = new Dictionary();
_audioModel = Tricycle.getInstance().audioModel;
super(m);
}
public function event_PauseGame():void{
model.pause();
}
public function linkAudio():void{
var i:Number;
var w:ContainerModifier;
var track:AudioHelper;
if (_active){
_startAudio();
} else {
for each (track in _audioModel.currentSong.tracks.list) {
TweenLite.to(track, tricycle.config.constants.audio.fadeOutTime, {volume:0, onComplete:_startAudio});
};
};
i = 0;
for each (w in model.containers.list) {
_audioLinkage[w] = _audioModel.currentSong.tracks.getAt(i);
++i;
if (i >= _audioModel.currentSong.numTracks){
break;
};
};
}
public function event_ResumeGame():void{
model.resume();
}
public function event_ContainerLevelChanged():void{
if (((_active) && (_audioLinkage[model.lastContainerUpdated]))){
_audioLinkage[model.lastContainerUpdated].volume = model.lastContainerUpdated.level;
};
}
public function startAct():void{
_active = true;
}
public function event_LevelRendered():void{
if (tricycle.config.mode != Configuration.EDITOR_MODE){
linkAudio();
};
}
public function renderAct():void{
_audioModel.renderAct(tricycle.actModel.currentAct);
}
public function event_LevelComplete():void{
if (tricycle.config.mode != Configuration.EDITOR_MODE){
unlinkAudio();
};
}
private function _startAudio():void{
_audioModel.stop();
_audioModel.play();
_audioModel.volume = 0;
_active = true;
}
public function unlinkAudio():void{
_active = false;
_audioLinkage = new Dictionary();
}
public function loadLevel():void{
_audioModel.currentSong.loadTracks(tricycle.levelModel.currentLevel.numContainers);
}
}
}//package com.cipherprime.auditorium.controllers
Section 3
//EditorController (com.cipherprime.auditorium.controllers.EditorController)
package com.cipherprime.auditorium.controllers {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
public class EditorController extends Controller {
public function EditorController(m:Model){
super(m);
}
public function init():void{
}
public function resetLevel():void{
tricycle.flowModel.removeAll();
tricycle.levelModel.children.removeAt(0);
}
}
}//package com.cipherprime.auditorium.controllers
Section 4
//FlowController (com.cipherprime.auditorium.controllers.FlowController)
package com.cipherprime.auditorium.controllers {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
public class FlowController extends Controller {
public function FlowController(m:Model){
super(m);
}
public function event_PauseGame():void{
model.pause();
}
public function event_ResumeGame():void{
model.resume();
}
}
}//package com.cipherprime.auditorium.controllers
Section 5
//GameController (com.cipherprime.auditorium.controllers.GameController)
package com.cipherprime.auditorium.controllers {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.cipherprime.auditorium.models.xml.parsers.*;
import com.cipherprime.auditorium.views.item.items.*;
import com.cipherprime.auditorium.models.events.*;
public class GameController extends Controller {
private var _paused:Boolean;// = false
public function GameController(m:Model){
super(m);
}
private function _renderCurrentLevel(timing:Number=0):void{
tricycle.flowModel.renderLevel(tricycle.levelModel.currentLevel, timing);
tricycle.flowView.fading = false;
}
public function startLevel():void{
tricycle.flowModel.startLevel();
}
public function renderLevel():void{
if (tricycle.levelModel.lastChildModified == tricycle.levelModel.currentLevel){
_renderCurrentLevel(0);
};
}
public function transitionLevel():void{
tricycle.winSfx.play();
_transitionLevel();
}
public function init():void{
tricycle.winSfx = new AudioHelper("lib/sfx/cymbalSwell.mp3");
tricycle.winSfx.load();
tricycle.actModel.loadActPlaylist(tricycle.config.urls.playlist);
}
public function nextLevel():void{
tricycle.levelModel.loadNextLevel();
}
public function resume():void{
_paused = false;
tricycle.gameModel.sendToModels(GameEvent.RESUME_GAME);
}
public function get paused():Boolean{
return (_paused);
}
public function pause():void{
_paused = true;
tricycle.gameModel.sendToModels(GameEvent.PAUSE_GAME);
}
private function _transitionLevel():void{
tricycle.flowView.addToBlurRenderer(tricycle.layers.background);
tricycle.flowView.addToBlurRenderer(tricycle.layers.radii);
tricycle.flowView.addToBlurRenderer(tricycle.layers.foreground);
tricycle.flowView.fading = true;
tricycle.flowModel.removeAll();
}
public function loadLevel():void{
tricycle.levelModel.loadCurrentLevel();
}
}
}//package com.cipherprime.auditorium.controllers
Section 6
//ItemsController (com.cipherprime.auditorium.controllers.ItemsController)
package com.cipherprime.auditorium.controllers {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import com.cipherprime.auditorium.views.item.*;
import flash.utils.*;
import com.cipherprime.auditorium.views.item.element.elements.*;
import com.gs.*;
import com.cipherprime.auditorium.models.flow.warps.*;
import com.cipherprime.auditorium.views.item.type.*;
import com.cipherprime.auditorium.views.item.items.*;
public class ItemsController extends Controller {
private var _itemsBeingRemoved:Number;// = 0
private var _itemLookup:Dictionary;
public function ItemsController(m:Model){
super(m);
_itemLookup = new Dictionary();
}
public function addStreamItem():Item{
var item:ItemType = new Flow();
item.Init(view.editorMode);
item.x = model.lastStreamAdded.x;
item.y = model.lastStreamAdded.y;
item.vx = model.lastStreamAdded.vx;
item.vy = model.lastStreamAdded.vy;
item.addElement(model.lastStreamAdded, "Flow");
_itemLookup[model.lastStreamAdded] = item;
return (item);
}
public function get ItemLookUp():Dictionary{
return (_itemLookup);
}
public function animateItem():void{
var updateItem:Item = _itemLookup[model.lastWarpUpdated];
if (updateItem){
TweenLite.to(updateItem, 1, {x:model.lastWarpUpdated.x, y:model.lastWarpUpdated.y, radius:model.lastWarpUpdated.radius});
};
}
private function _removeItem(item:Item):void{
view.removeItem(item);
if (!view.editorMode){
_itemsBeingRemoved--;
if (_itemsBeingRemoved == 0){
tricycle.gameController.nextLevel();
};
};
}
public function removeItem(stream:Boolean=false):void{
var fadeOut:Number;
var deleteItem:Item = (stream) ? _itemLookup[model.lastStreamRemoved] : _itemLookup[model.lastWarpRemoved];
if (deleteItem){
fadeOut = tricycle.config.constants.item.fadeOutTime;
TweenLite.to(deleteItem, fadeOut, {alpha:0, scaleX:0.5, scaleY:0.5, onComplete:_removeItem, onCompleteParams:[deleteItem]});
if (!view.editorMode){
_itemsBeingRemoved++;
};
};
}
public function addItem():Item{
var item:ItemType;
var fadeIn:Number;
var itemsFamily:String = "com.cipherprime.auditorium.views.item.items.";
var warpName:String = getQualifiedClassName(model.lastWarpInitialized);
var itemName:String = warpName.substring((warpName.lastIndexOf(":") + 1), warpName.lastIndexOf("Modifier"));
var ItemClass:Class = (getDefinitionByName((itemsFamily + itemName)) as Class);
if (itemName == "Portal"){
if ((((model.lastWarpAdded is PortalExitWarp)) || ((model.lastWarpadded is PortalEntranceWarp)))){
model.lastWarpAdded.portal.type = ItemClass;
} else {
model.lastWarpAdded.type = ItemClass;
};
return (null);
} else {
item = (new (ItemClass) as ItemType);
item.Init(view.editorMode);
item.x = model.lastWarpAdded.position.x;
item.y = model.lastWarpAdded.position.y;
item.radius = model.lastWarpAdded.radius;
item.addElement(model.lastWarpAdded, model.lastWarpAdded.name);
if ((item is Color)){
(item as Color).color = model.lastWarpAdded.colors[0];
} else {
if ((item is Container)){
(item as Container).initIcon(model.lastWarpAdded.colors.length);
(item as Container).colors = model.lastWarpAdded.colors;
};
};
model.lastWarpAdded.type = ItemClass;
_itemLookup[model.lastWarpAdded] = item;
fadeIn = tricycle.config.constants.item.fadeInTime;
};
{1.4:!NULL!, !NULL!:!NULL!, !NULL!:!NULL!}.from(!NULL!, !NULL!, !NULL!);
return ((item as Item));
}
public function updateContainer():void{
var levels:Array;
var item:Item = _itemLookup[model.lastContainerUpdated];
if (item){
levels = model.lastContainerUpdated.levels;
view.updateContainer(item, levels);
};
}
}
}//package com.cipherprime.auditorium.controllers
Section 7
//Act (com.cipherprime.auditorium.models.act.Act)
package com.cipherprime.auditorium.models.act {
import com.cipherprime.utils.*;
public class Act {
private var _levels:Cipher;
private var _song:Object;
private var _title:String;
private var _levelCursor:int;// = 0
public function Act(){
super();
_levels = new Cipher();
}
public function get levels():Cipher{
return (_levels);
}
public function init(params:Object):void{
_levels.concat(params.levels);
_song = params.song;
_title = params.title;
}
public function get song():Object{
return (_song);
}
public function get title():String{
return (_title);
}
}
}//package com.cipherprime.auditorium.models.act
Section 8
//ActModel (com.cipherprime.auditorium.models.act.ActModel)
package com.cipherprime.auditorium.models.act {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.utils.helpers.*;
import flash.net.*;
import com.cipherprime.auditorium.models.xml.parsers.*;
import com.cipherprime.auditorium.models.events.*;
public class ActModel extends CrudModel {
private var _currentActNumber:Number;// = 0
private var _sharedObject:SharedObject;
private var _playList:XmlHelper;
private var _started:Boolean;// = false
public function ActModel(){
super();
_ChildClass = Act;
_sharedObject = SharedObject.getLocal("lastLevel");
}
public function get currentAct():Act{
return (children.getAt(_currentActNumber));
}
public function resumeAct():void{
_currentActNumber = _sharedObject.data.act;
}
public function get started():Boolean{
return (_started);
}
private function _notifyLoaded():void{
_sharedObject.data.act = _currentActNumber;
dispatchModelEvent(ActEvent.ACT_LOADED);
}
public function start():void{
dispatchModelEvent(ActEvent.ACT_INTRO);
}
public function play():void{
_started = true;
dispatchModelEvent(ActEvent.ACT_STARTED);
}
private function _onPlaylistLoad():void{
var aXml:XML;
for each (aXml in _playList.xml.acts.act) {
newChild(ActParser.decode(aXml));
};
_notifyLoaded();
}
public function loadNextAct():void{
_started = false;
if (_currentActNumber < (children.length - 1)){
_currentActNumber++;
_notifyLoaded();
} else {
_currentActNumber = 0;
dispatchModelEvent(ActEvent.ACT_COMPLETE);
};
}
public function get currentActNumber():Number{
return (_currentActNumber);
}
public function removeAll():void{
var numActs:Number = children.length;
var a:Number = 0;
while (a < numActs) {
children.removeAt(0);
a++;
};
}
public function loadActPlaylist(fileUrl:String):void{
_playList = new XmlHelper(fileUrl);
_playList.onLoad = _onPlaylistLoad;
_playList.load();
}
}
}//package com.cipherprime.auditorium.models.act
Section 9
//AudioModel (com.cipherprime.auditorium.models.audio.AudioModel)
package com.cipherprime.auditorium.models.audio {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.auditorium.models.act.*;
import com.cipherprime.tricycle.utils.helpers.*;
public class AudioModel extends CrudModel {
private var _currentSong:Song;
public function AudioModel(){
super();
_ChildClass = Song;
}
public function stop(e:Event=null):void{
if (_currentSong){
_currentSong.stop();
};
}
public function set volume(value:Number):void{
var s:Song;
var t:AudioHelper;
for each (s in children.list) {
for each (t in s.tracks.list) {
t.volume = value;
};
};
}
override public function addChild(child){
_currentSong = child;
return (super.addChild(child));
}
public function resume(e:Event=null):void{
var s:Song;
for each (s in children.list) {
s.resume();
};
}
public function get currentSong():Song{
return (_currentSong);
}
public function get currentSongLength():Number{
return (_currentSong.length);
}
public function pause(e:Event=null):void{
var s:Song;
for each (s in children.list) {
s.pause();
};
}
public function play(e:Event=null):void{
if (_currentSong){
_currentSong.play();
};
}
public function renderAct(act:Act):void{
newChild(act.song);
}
public function removeAll():void{
var numSongs:Number = children.length;
var s:Number = 0;
while (s < numSongs) {
children.getAt(0).die();
children.removeAt(0);
s++;
};
}
}
}//package com.cipherprime.auditorium.models.audio
Section 10
//Song (com.cipherprime.auditorium.models.audio.Song)
package com.cipherprime.auditorium.models.audio {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import flash.utils.*;
import com.cipherprime.utils.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.cipherprime.auditorium.models.events.*;
public class Song extends EventDispatcher {
private var _length:Number;
private var _tracks:Cipher;
public var model:Model;
private var _trackLoaded:Array;
private var _playTimer:Timer;
private var _loaderTimer:Timer;
public function Song(){
super();
_tracks = new Cipher();
_trackLoaded = new Array();
}
public function die():void{
stop();
_tracks.killAll();
}
public function stop():void{
var t:AudioHelper;
if (_tracks.length){
for each (t in _tracks.list) {
t.stop();
};
};
}
public function get tracks():Cipher{
return (_tracks);
}
public function addTracks(... _args):void{
var t:AudioHelper;
for each (t in _args) {
addTrack(t);
};
}
public function newTrack(fileUrl:String):AudioHelper{
var t:AudioHelper = new AudioHelper(fileUrl);
return (addTrack(t));
}
public function init(params:Object=null):void{
var trackName:String;
if (((params) && (params.tracks))){
for each (trackName in params.tracks) {
newTrack(trackName);
};
};
}
public function _play(e:TimerEvent=null):void{
var i:Number;
var t:AudioHelper;
if (_tracks.length){
if (((_playTimer) && (_playTimer.hasEventListener(TimerEvent.TIMER)))){
_playTimer.stop();
_playTimer.removeEventListener(TimerEvent.TIMER, _play);
};
i = 0;
while (i < _tracks.length) {
if (_trackLoaded[i]){
t = _tracks.getAt(i);
t.play(-1);
};
i++;
};
};
}
public function loadTracks(numTracks:uint):void{
var i:Number = 0;
while (i < numTracks) {
if (!_trackLoaded[i]){
_trackLoaded[i] = true;
tracks.getAt(i).load();
};
i++;
};
_loaderTimer = new Timer(30);
_loaderTimer.addEventListener(TimerEvent.TIMER, _updateLoadProgress);
_loaderTimer.start();
}
public function get firstTrack():AudioHelper{
return (_tracks.getAt(0));
}
public function get percentsLoaded():Array{
var track:AudioHelper;
var percents:Array = new Array();
for each (track in tracks.list) {
percents.push(track.percentLoaded);
};
return (percents);
}
public function addTrack(t:AudioHelper):AudioHelper{
_tracks.add(t);
return (t);
}
public function resume():void{
var t:AudioHelper;
for each (t in _tracks.list) {
t.resume();
};
}
public function get numTracks():Number{
return (_tracks.length);
}
public function get position():Number{
if (firstTrack){
return (firstTrack.position);
};
return (0);
}
public function play():void{
_play();
}
public function get length():Number{
if (firstTrack){
return (firstTrack.length);
};
return (0);
}
public function pause():void{
var t:AudioHelper;
for each (t in _tracks.list) {
t.pause();
};
}
public function get percentLoaded():int{
var percent:int;
var i:Number = 0;
while (i < percentsLoaded.length) {
percent = (percent + percentsLoaded[i]);
i++;
};
if (percentsLoaded.length){
percent = (percent / _trackLoaded.length);
} else {
percent = 0;
};
return (percent);
}
private function _updateLoadProgress(e:TimerEvent=null):void{
var loaded:Boolean;
var i:Number = 0;
while (i < _trackLoaded.length) {
loaded = ((loaded) && ((tracks.getAt(i).percentLoaded == 1)));
i++;
};
if (loaded){
_loaderTimer.stop();
_loaderTimer.removeEventListener(TimerEvent.TIMER, _updateLoadProgress);
model.dispatchModelEvent(AudioEvent.TRACKS_LOADED);
};
model.dispatchModelEvent(AudioEvent.SONG_LOAD_PROGRESS);
}
}
}//package com.cipherprime.auditorium.models.audio
Section 11
//DefaultSettings (com.cipherprime.auditorium.models.editor.DefaultSettings)
package com.cipherprime.auditorium.models.editor {
import com.cipherprime.tricycle.*;
import com.cipherprime.auditorium.models.flow.*;
public class DefaultSettings {
public static var tricycle:Tricycle = Tricycle.getInstance();
public function DefaultSettings(){
super();
}
public static function stream():void{
var streamParams:Object = {color:0xFFFFFF, x:(tricycle.stage.stageWidth / 2), y:(tricycle.stage.stageHeight / 2), totalParticles:100, noise:30};
tricycle.flowModel.newStream(streamParams);
tricycle.flowModel.startStreams();
tricycle.editorView.currentLevelSaved = false;
}
public static function container(type:String, colors:Array):void{
var warpParams:Object = {x:(tricycle.stage.stageWidth / 2), y:(tricycle.stage.stageHeight / 2), colors:colors, radius:40};
tricycle.flowModel.newWarp(FlowModel.getClassFromName(type), warpParams);
tricycle.editorView.currentLevelSaved = false;
}
public static function colorObject(type:String, c:uint):void{
var warpParams:Object = {x:(tricycle.stage.stageWidth / 2), y:(tricycle.stage.stageHeight / 2), colors:[c], radius:40};
tricycle.flowModel.newWarp(FlowModel.getClassFromName(type), warpParams);
tricycle.editorView.currentLevelSaved = false;
}
public static function warp(type:String):void{
var strengths:Object = {AttractModifier:4, RepelModifier:-4, RiseModifier:4, FallModifier:-4, PushModifier:4, PullModifier:-4, RabbitModifier:1.2, SnailModifier:0.9, BlackHoleModifier:6, DeflectModifier:0};
var warpParams:Object = {x:(tricycle.stage.stageWidth / 2), y:(tricycle.stage.stageHeight / 2), strength:strengths[type], mode:((((type == "AttractModifier")) || ((type == "RepelModifier")))) ? Warp.MODE_SPHERICAL : Warp.MODE_LINEAR, radius:40};
if ((((type == "BlackHoleModifier")) || ((type == "IonStormModifier")))){
warpParams.radius = 80;
};
if (type == "DivideModifier"){
warpParams.radius = 20;
};
if (type == "PortalModifier"){
warpParams = {entrance:{x:((tricycle.stage.stageWidth / 2) - 100), y:(tricycle.stage.stageHeight / 2), radius:15}, exit:{x:((tricycle.stage.stageWidth / 2) + 100), y:(tricycle.stage.stageHeight / 2), radius:15}};
};
tricycle.flowModel.newWarp(FlowModel.getClassFromName(type), warpParams);
tricycle.editorView.currentLevelSaved = false;
}
}
}//package com.cipherprime.auditorium.models.editor
Section 12
//EditorModel (com.cipherprime.auditorium.models.editor.EditorModel)
package com.cipherprime.auditorium.models.editor {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import flash.utils.*;
import com.cipherprime.auditorium.models.flow.warps.*;
import com.cipherprime.utils.display.*;
import com.cipherprime.auditorium.models.events.*;
public class EditorModel extends Model {
private var _statusTimer:Timer;
private var _statusTf:TextDisplay;
public function EditorModel(){
_statusTf = new TextDisplay();
super();
}
private function _clearStatus(e:TimerEvent=null):void{
_statusTimer.removeEventListener(TimerEvent.TIMER, arguments.callee);
_statusTimer.stop();
status("");
}
public function start():void{
sendToModels(GlobalEvent.START);
sendToModels(EditorEvent.START_EDITOR);
tricycle.globalDrag = new DragWarp();
tricycle.globalDrag.init({strength:0.97});
tricycle.layers.foreground.addChild(_statusTf);
_statusTf.y = (tricycle.stage.stageHeight - 20);
}
public function status(text:String, fadeout:Number=0):void{
_statusTf.text = text;
if (fadeout){
_statusTimer = new Timer(fadeout);
_statusTimer.addEventListener(TimerEvent.TIMER, _clearStatus);
_statusTimer.reset();
_statusTimer.start();
} else {
if (_statusTimer){
_statusTimer.stop();
if (_statusTimer.hasEventListener(TimerEvent.TIMER)){
_statusTimer.removeEventListener(TimerEvent.TIMER, _clearStatus);
};
};
};
}
public function sendToModels(event:String):void{
tricycle.flowModel.dispatchModelEvent(event);
tricycle.audioModel.dispatchModelEvent(event);
tricycle.levelModel.dispatchModelEvent(event);
tricycle.editorModel.dispatchModelEvent(event);
}
public function request(text:String, onEntered:Function, defaultText:String=null):void{
var textInput:TextInput;
var text = text;
var onEntered = onEntered;
var defaultText = defaultText;
status(text);
if (!defaultText){
textInput = new TextInput();
} else {
textInput = new TextInput(defaultText);
};
tricycle.layers.foreground.addChild(textInput);
textInput.x = (_statusTf.textWidth + _statusTf.x);
textInput.y = _statusTf.y;
textInput.addEventListener(TextInput.ENTERED, function (e:Event):void{
textInput.removeEventListener(TextInput.ENTERED, arguments.callee);
onEntered.call(this, e.target.tf.text);
tricycle.layers.foreground.removeChild(textInput);
});
}
}
}//package com.cipherprime.auditorium.models.editor
Section 13
//ActEvent (com.cipherprime.auditorium.models.events.ActEvent)
package com.cipherprime.auditorium.models.events {
public class ActEvent {
public static var PLAYLIST_LOADED:String = "PlaylistLoaded";
public static var ACT_LOADED:String = "ActLoaded";
public static var ACT_STARTED:String = "ActStarted";
public static var ACT_COMPLETE:String = "ActComplete";
public static var ACT_INTRO:String = "ActIntro";
public function ActEvent(){
super();
}
}
}//package com.cipherprime.auditorium.models.events
Section 14
//AudioEvent (com.cipherprime.auditorium.models.events.AudioEvent)
package com.cipherprime.auditorium.models.events {
public class AudioEvent {
public static const SONG_READY:String = "SongReady";
public static const SONG_LOAD_PROGRESS:String = "SongLoadProgress";
public static const TRACK_ENDED:String = "TrackEnded";
public static const SONG_EXIT_POINT:String = "SongExitPoint";
public static const BUFFER_ERROR:String = "BufferError";
public static const OUTRO_COMPLETE:String = "OutroComplete";
public static const INTRO_COMPLETE:String = "IntroComplete";
public static const SONG_ADDED:String = "SongAdded";
public static const INTRO_LOADED:String = "IntroLoaded";
public static const OUTRO_LOADED:String = "OutroLoaded";
public static const TRACK_ADDED:String = "TrackAdded";
public static const TRACKS_LOADED:String = "TracksLoaded";
public function AudioEvent(){
super();
}
}
}//package com.cipherprime.auditorium.models.events
Section 15
//EditorEvent (com.cipherprime.auditorium.models.events.EditorEvent)
package com.cipherprime.auditorium.models.events {
public class EditorEvent {
public static const START_EDITOR:String = "StartEditor";
public function EditorEvent(){
super();
}
}
}//package com.cipherprime.auditorium.models.events
Section 16
//FlowEvent (com.cipherprime.auditorium.models.events.FlowEvent)
package com.cipherprime.auditorium.models.events {
public class FlowEvent {
public static const STREAM_REMOVED:String = "StreamRemoved";
public static const WARP_REMOVED:String = "WarpRemoved";
public static const FLOW_ADDED:String = "FlowAdded";
public static const STREAM_CREATED:String = "StreamCreated";
public static const FRAME_READY:String = "FrameReady";
public static const WARP_CREATED:String = "WarpCreated";
public static const DEMO_MODE_START:String = "DemoModeStart";
public static const STREAM_STARTED:String = "StreamStarted";
public static const CONTAINER_FULL:String = "ContainerFull";
public static const LEVEL_RENDERED:String = "LevelRendered";
public static const PARTICLE_UPDATE:String = "ParticleUpdate";
public static const LEVEL_COMPLETE:String = "LevelComplete";
public static const PARTICLE_RESET:String = "ParticleReset";
public static const FLOW_CREATED:String = "FlowCreated";
public static const CONTAINER_DEMO_COMPLETE:String = "ContainerDemoComplete";
public static const REMOVE_ITEM_MODE:String = "RemoveItemMode";
public static const CONTAINER_LEVEL_CHANGED:String = "ContainerLevelChanged";
public static const STREAM_UPDATED:String = "StreamUpdated";
public static const STREAM_ADDED:String = "StreamAdded";
public static const WARP_UPDATED:String = "WarpUpdated";
public static const PARTICLE_ADDED:String = "ParticleAdded";
public static const WARP_ADDED:String = "WarpAdded";
public static const STREAM_INIT:String = "StreamInit";
public static const WARP_INIT:String = "WarpInit";
public static const DEMO_MODE_COMPLETE:String = "DemoModeComplete";
public static const STREAM_STOPPED:String = "StreamStopped";
public function FlowEvent(){
super();
}
}
}//package com.cipherprime.auditorium.models.events
Section 17
//GameEvent (com.cipherprime.auditorium.models.events.GameEvent)
package com.cipherprime.auditorium.models.events {
public class GameEvent {
public static const RESUME_GAME:String = "ResumeGame";
public static const START_GAME:String = "StartGame";
public static const CONTINUE_GAME:String = "ContinueGame";
public static const START_INTRO:String = "StartIntro";
public static const LOAD_INTRO:String = "LoadIntro";
public static const PAUSE_GAME:String = "PauseGame";
public static const END_GAME:String = "EndGame";
public function GameEvent(){
super();
}
}
}//package com.cipherprime.auditorium.models.events
Section 18
//GlobalEvent (com.cipherprime.auditorium.models.events.GlobalEvent)
package com.cipherprime.auditorium.models.events {
public class GlobalEvent {
public static const START:String = "Start";
public function GlobalEvent(){
super();
}
}
}//package com.cipherprime.auditorium.models.events
Section 19
//LevelEvent (com.cipherprime.auditorium.models.events.LevelEvent)
package com.cipherprime.auditorium.models.events {
public class LevelEvent {
public static const LEVEL_LOADED:String = "LevelLoaded";
public static const LEVEL_ADDED:String = "LevelAdded";
public static const LEVEL_READY:String = "LevelReady";
public static const LEVELS_COMPLETE:String = "LevelsComplete";
public static const START_LEVELS:String = "StartLevels";
public static const LEVEL_SAVED:String = "LevelSaved";
public static const LEVEL_TRANSITION_READY:String = "LevelTransitionReady";
public function LevelEvent(){
super();
}
}
}//package com.cipherprime.auditorium.models.events
Section 20
//AttractModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.AttractModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class AttractModifier extends GravityWarp {
public function AttractModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
if (strength < 0){
strength = -(strength);
};
mode = MODE_SPHERICAL;
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 21
//BlackHoleModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.BlackHoleModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class BlackHoleModifier extends BlackHoleWarp {
public function BlackHoleModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 22
//ColorModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.ColorModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class ColorModifier extends ChromaWarp {
public function ColorModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 23
//ContainerModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.ContainerModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class ContainerModifier extends ContainerWarp {
public function ContainerModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 24
//DeflectModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.DeflectModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class DeflectModifier extends FilterWarp {
public function DeflectModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 25
//DivideModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.DivideModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class DivideModifier extends SplitWarp {
public function DivideModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 26
//FallModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.FallModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class FallModifier extends GravityWarp {
public function FallModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
if (strength > 0){
strength = -(strength);
};
mode = MODE_LINEAR;
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 27
//IonStormModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.IonStormModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class IonStormModifier extends IonStormWarp {
public function IonStormModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 28
//PortalEntranceModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.PortalEntranceModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class PortalEntranceModifier extends PortalEntranceWarp {
public function PortalEntranceModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 29
//PortalExitModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.PortalExitModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class PortalExitModifier extends PortalExitWarp {
public function PortalExitModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 30
//PortalModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.PortalModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class PortalModifier extends PortalWarp {
public function PortalModifier(){
super();
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 31
//PullModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.PullModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.euclid.*;
import com.cipherprime.auditorium.models.flow.warps.*;
public class PullModifier extends GravityWarp {
public function PullModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
if (strength > 0){
strength = -(strength);
};
v = new Vector(strength, 0);
mode = MODE_LINEAR;
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 32
//PushModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.PushModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.euclid.*;
import com.cipherprime.auditorium.models.flow.warps.*;
public class PushModifier extends GravityWarp {
public function PushModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
if (strength < 0){
strength = -(strength);
};
v = new Vector(strength, 0);
mode = MODE_LINEAR;
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 33
//RabbitModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.RabbitModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class RabbitModifier extends DragWarp {
public function RabbitModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
strength = Math.abs(strength);
if (strength < 1){
strength = (1 / strength);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 34
//RepelModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.RepelModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class RepelModifier extends GravityWarp {
public function RepelModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
if (strength > 0){
strength = -(strength);
};
mode = MODE_SPHERICAL;
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 35
//RiseModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.RiseModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class RiseModifier extends GravityWarp {
public function RiseModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
if (strength < 0){
strength = -(strength);
};
mode = MODE_LINEAR;
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 36
//SnailModifier (com.cipherprime.auditorium.models.flow.warps.modifiers.SnailModifier)
package com.cipherprime.auditorium.models.flow.warps.modifiers {
import com.cipherprime.auditorium.models.flow.warps.*;
public class SnailModifier extends DragWarp {
public function SnailModifier(){
super();
}
override public function init(params:Object):void{
super.init(params);
strength = Math.abs(strength);
if (strength > 1){
strength = (1 / strength);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps.modifiers
Section 37
//BlackHoleWarp (com.cipherprime.auditorium.models.flow.warps.BlackHoleWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.euclid.*;
public class BlackHoleWarp extends Warp {
protected var vf:VectorField;
public function BlackHoleWarp(){
super();
_isObstacle = true;
}
override public function init(params:Object):void{
var v:Vector;
var params = params;
super.init(params);
v = new Vector();
vf = new VectorField(position.x, position.y);
vf.field = function (xv:Number, yv:Number):Vector{
var angle:Number = Math.atan2((yv - position.y), (xv - position.x));
angle = (angle + ((Math.PI / 2) + (Math.PI / 4)));
v.setVector(Math.cos(angle), Math.sin(angle));
v.add(new Vector((position.x - xv), (position.y - yv)).normalize().scale((-0.25 * strength)));
return (v.scale((-((Calc.dist(xv, yv, position.x, position.y) / radius)) * strength)));
};
}
override public function apply(p:Particle):void{
if (inRange(p)){
p.vector.add(vf.getVector(p.x, p.y));
p.vector.scale(0.8);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 38
//ChromaWarp (com.cipherprime.auditorium.models.flow.warps.ChromaWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
public class ChromaWarp extends Warp {
public var colors:Array;
public var c:Number;// = 0
public function ChromaWarp(){
super();
_isObstacle = true;
}
public function getNextColor():uint{
if (c >= colors.length){
c = 0;
};
return (colors[c++]);
}
override public function init(params:Object):void{
super.init(params);
colors = new Array();
colors = (params.colors) ? params.colors : [0xFFFFFF, 0xFF00FF];
}
override public function apply(p:Particle):void{
if (inRange(p)){
p.color = getNextColor();
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 39
//ContainerWarp (com.cipherprime.auditorium.models.flow.warps.ContainerWarp)
package com.cipherprime.auditorium.models.flow.warps {
import flash.events.*;
import com.cipherprime.auditorium.models.flow.*;
import flash.utils.*;
import com.cipherprime.auditorium.models.events.*;
public class ContainerWarp extends Warp {
private var _filledTimer:Timer;
private var _reduceTimer:Timer;
private var _fullThreshold:Number;// = 0.94
public var addRate:Number;// = 0.01
public var reduceRate:Number;// = 0.1
public var levels:Array;
public var colors:Array;
private var _done:Boolean;// = false
public var demoComplete:Boolean;// = true
public function ContainerWarp(){
_reduceTimer = new Timer(100);
_filledTimer = new Timer(1000, 1);
super();
colors = new Array();
levels = new Array();
_isObstacle = true;
}
public function get level():Number{
var l:Number;
var average:Number = 0;
for each (l in levels) {
average = (average + l);
};
average = (average / levels.length);
return (average);
}
public function stayFull():void{
_reduceTimer.removeEventListener(TimerEvent.TIMER, reduce);
if (_filledTimer.hasEventListener(TimerEvent.TIMER)){
_filledTimer.removeEventListener(TimerEvent.TIMER, startReduce);
};
_done = true;
}
override public function init(params:Object):void{
super.init(params);
colors = params.colors;
levels = new Array(colors.length);
var i:Number = 0;
while (i < colors.length) {
levels[i] = 0;
i++;
};
_reduceTimer.addEventListener(TimerEvent.TIMER, reduce, false, 0, true);
_reduceTimer.start();
}
public function get isFull():Boolean{
if (level > FlowModel.CONTAINER_THRESHOLD){
return (true);
};
return (false);
}
public function startReduce(e:TimerEvent):void{
_filledTimer.removeEventListener(TimerEvent.TIMER, startReduce);
_reduceTimer.addEventListener(TimerEvent.TIMER, reduce);
}
override public function resume():void{
_reduceTimer.start();
}
override public function apply(p:Particle):void{
var change:Boolean;
var i:Number;
if (!_done){
change = false;
if (inRange(p)){
i = 0;
while (i < colors.length) {
if ((((colors[i] == p.color)) && ((levels[i] < 1)))){
levels[i] = (((levels[i] + addRate) >= 1)) ? 1 : (levels[i] + addRate);
change = true;
};
i++;
};
};
if (change){
_reduceTimer.removeEventListener(TimerEvent.TIMER, reduce);
if (_filledTimer.hasEventListener(TimerEvent.TIMER)){
_filledTimer.removeEventListener(TimerEvent.TIMER, startReduce);
_filledTimer.reset();
};
_notify();
} else {
if (!_filledTimer.hasEventListener(TimerEvent.TIMER)){
_filledTimer.addEventListener(TimerEvent.TIMER, startReduce, false, 0, true);
_filledTimer.start();
};
};
};
}
public function reduce(e:Event):void{
var i:Number = 0;
while (i < colors.length) {
levels[i] = (((levels[i] - reduceRate) <= 0)) ? 0 : (levels[i] - reduceRate);
i++;
};
_notify();
}
override public function pause():void{
_reduceTimer.stop();
_filledTimer.stop();
}
private function _notify(e:Event=null):void{
if (flowModel){
flowModel.lastContainerUpdated = this;
flowModel.dispatchModelEvent(FlowEvent.CONTAINER_LEVEL_CHANGED);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 40
//DragWarp (com.cipherprime.auditorium.models.flow.warps.DragWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
public class DragWarp extends Warp {
public function DragWarp(){
super();
_isControl = true;
}
override public function apply(p:Particle):void{
if (inRange(p)){
p.vector.scale(strength);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 41
//FilterWarp (com.cipherprime.auditorium.models.flow.warps.FilterWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.euclid.*;
public class FilterWarp extends Warp {
private var _effect:Number;// = 0.2
public function FilterWarp(){
super();
_isControl = true;
}
override public function apply(p:Particle):void{
var angle:Number;
var normal:Vector;
if (inRange(p)){
angle = Math.atan2((p.y - position.y), (p.x - position.x));
normal = new Vector(Math.cos(angle), Math.sin(angle)).normalize();
p.x = (position.x + (normal.x * radius));
p.y = (position.y + (normal.y * radius));
normal.setMagnitude((2 * (p.vector.dot(normal) / normal.dot(normal))));
p.vector.setMagnitude(-(p.vector.getLength()));
p.vector.add(normal);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 42
//GravityWarp (com.cipherprime.auditorium.models.flow.warps.GravityWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.euclid.*;
public class GravityWarp extends Warp {
protected var vf:VectorField;
protected var n:Vector;
protected var v:Vector;
protected var nvf:VectorField;
public function GravityWarp(){
super();
_isControl = true;
}
public function init2():void{
n = v;
nvf = new VectorField(position.x, position.y);
nvf.field = function (xv:Number, yv:Number):Vector{
var r:Number = Calc.dist(xv, yv, position.x, position.y);
v = n;
v.setMagnitude((strength - ((r / radius) * strength)));
return (v);
};
}
override public function apply(p:Particle):void{
if (inRange(p)){
switch (mode){
case MODE_LINEAR:
p.vector.add(v);
break;
case MODE_SPHERICAL:
p.vector.add(vf.getVector(p.x, p.y).scale(strength));
break;
};
};
}
override public function init(params:Object):void{
var params = params;
super.init(params);
v = new Vector(0, -(strength));
vf = new VectorField(position.x, position.y);
vf.field = function (xv:Number, yv:Number):Vector{
v.setVector((position.x - xv), (position.y - yv)).normalize();
return (v);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 43
//IonStormWarp (com.cipherprime.auditorium.models.flow.warps.IonStormWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
public class IonStormWarp extends Warp {
public function IonStormWarp(){
super();
_isObstacle = true;
}
override public function apply(p:Particle):void{
var angle:Number;
if (inRange(p)){
angle = ((Math.PI / 12) * ((Math.random() > 0.5)) ? 1 : -1);
p.vector.rotate(angle);
p.vector.scale(1.01);
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 44
//PortalEntranceWarp (com.cipherprime.auditorium.models.flow.warps.PortalEntranceWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
public class PortalEntranceWarp extends Warp {
public var portal:PortalWarp;
public function PortalEntranceWarp(){
super();
_isObstacle = true;
}
override public function onRemove():void{
if (portal){
portal.remove();
};
}
override public function get properties():Object{
return (null);
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 45
//PortalExitWarp (com.cipherprime.auditorium.models.flow.warps.PortalExitWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
public class PortalExitWarp extends Warp {
public var portal:PortalWarp;
public function PortalExitWarp(){
super();
_isObstacle = true;
}
override public function onRemove():void{
if (portal){
portal.remove();
};
}
override public function get properties():Object{
return (null);
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 46
//PortalWarp (com.cipherprime.auditorium.models.flow.warps.PortalWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.tricycle.*;
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.auditorium.models.flow.warps.modifiers.*;
public class PortalWarp extends Warp {
private var _removing:Boolean;// = false
public var _entrance:PortalEntranceModifier;
private var _tricycle:Tricycle;
public var _exit:PortalExitModifier;
public function PortalWarp(){
_tricycle = Tricycle.getInstance();
super();
_isObstacle = true;
}
override public function get properties():Object{
return ({entrance:{x:entrance.x, y:entrance.y, radius:entrance.radius}, exit:{x:exit.x, y:exit.y, radius:exit.radius}});
}
public function remove():void{
if (!_removing){
_removing = true;
_tricycle.flowModel.removeWarp(_entrance);
_tricycle.flowModel.removeWarp(_exit);
_tricycle.flowModel.removeWarp(this);
};
}
override public function apply(p:Particle):void{
if (entrance.inRange(p)){
p.x = (exit.x - (p.x - entrance.x));
p.y = (exit.y - (p.y - entrance.y));
p.lx = p.x;
p.ly = p.y;
};
}
override public function init(params:Object):void{
super.init(params);
_entrance = _tricycle.flowModel.newWarp(PortalEntranceModifier, params.entrance);
_exit = _tricycle.flowModel.newWarp(PortalExitModifier, params.exit);
_entrance.portal = this;
_exit.portal = this;
}
public function get entrance():PortalEntranceModifier{
return (_entrance);
}
public function get exit():PortalExitModifier{
return (_exit);
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 47
//SplitWarp (com.cipherprime.auditorium.models.flow.warps.SplitWarp)
package com.cipherprime.auditorium.models.flow.warps {
import com.cipherprime.auditorium.models.flow.*;
import flash.utils.*;
public class SplitWarp extends Warp {
private var _particleDictionary:Dictionary;
public function SplitWarp(){
super();
_particleDictionary = new Dictionary();
_isObstacle = true;
}
override public function apply(p:Particle):void{
var angle:Number;
if (inRange(p)){
if (!_particleDictionary[p]){
angle = ((Math.PI / 6) * ((Math.random() > 0.5)) ? 1 : -1);
p.vector.rotate(angle);
_particleDictionary[p] = true;
};
} else {
if (_particleDictionary[p]){
_particleDictionary[p] = false;
};
};
}
}
}//package com.cipherprime.auditorium.models.flow.warps
Section 48
//FlowModel (com.cipherprime.auditorium.models.flow.FlowModel)
package com.cipherprime.auditorium.models.flow {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import flash.utils.*;
import com.cipherprime.utils.*;
import com.cipherprime.auditorium.models.level.*;
import com.cipherprime.auditorium.models.flow.warps.modifiers.*;
import com.cipherprime.auditorium.*;
import com.cipherprime.auditorium.models.flow.warps.*;
import com.cipherprime.auditorium.models.events.*;
public class FlowModel extends Model {
private var _lastWarpRemoved:Warp;
private var _renderPauseTimer:Timer;
private var _demoMode:Boolean;// = false
private var _level:Level;
private var _completeTimer:Timer;
private var _lastWarpInitialized:Warp;
private var _renderTimer:Timer;
private var _controls:Cipher;
private var _numControls:Number;
private var _demoTimer:Timer;
private var _lastStreamAdded:Stream;
public var lastContainerUpdated:ContainerWarp;
private var _containers:Cipher;
private var _streams:Cipher;
private var _defaultStartingX:Number;// = -1
private var _defaultStartingY:Number;// = -1
private var _defaultRadius:Number;// = 50
private var _lastStreamInitialized:Stream;
private var _lastStreamRemoved:Stream;
private var _defaultSpacing:Number;// = 20
private var _lastWarpAdded:Warp;
private var _warps:Cipher;
private var _o:Number;// = 0
private var _fullTimer:Timer;
public static var CONTAINER_THRESHOLD:Number = 0.93;
public static var CONTROL_PREVIEW:Number = 1500;
public function FlowModel(){
_renderTimer = new Timer(50);
_demoTimer = new Timer(6000);
_fullTimer = new Timer(1000);
super();
_streams = new Cipher();
_warps = new Cipher();
_containers = new Cipher();
_controls = new Cipher();
if (tricycle.config.constants.flow){
CONTAINER_THRESHOLD = tricycle.config.constants.flow.containerFullThreshold;
CONTROL_PREVIEW = tricycle.config.constants.flow.controlPreviewTime;
_defaultRadius = tricycle.config.constants.flow.controlRadius;
_defaultSpacing = tricycle.config.constants.flow.controlSpacing;
};
_renderPauseTimer = new Timer(CONTROL_PREVIEW);
}
public function addStream(s:Stream):Stream{
var w:Warp;
s.flowModel = this;
_streams.add(s);
for each (w in _warps.list) {
s.addWarp(w);
};
_lastStreamAdded = s;
dispatchModelEvent(FlowEvent.STREAM_ADDED);
return ((s as Stream));
}
private function _progressiveRender(e:TimerEvent=null):void{
var e = e;
if (_o < _level.objects.length){
if (_level.objects.getAt(_o) == Level.PAUSE_RENDER){
_renderTimer.stop();
_renderPauseTimer.addEventListener(TimerEvent.TIMER, function (e:TimerEvent=null):void{
_o++;
_renderPauseTimer.removeEventListener(TimerEvent.TIMER, arguments.callee);
_renderPauseTimer.stop();
_renderTimer.start();
});
_renderPauseTimer.start();
} else {
newObject(_level.objects.getAt(_o));
_o++;
};
} else {
_renderTimer.stop();
_renderTimer.removeEventListener(TimerEvent.TIMER, _progressiveRender);
dispatchModelEvent(FlowEvent.LEVEL_RENDERED);
};
}
private function _endTimer(e:TimerEvent=null):void{
var c:ContainerWarp;
_fullTimer.removeEventListener(TimerEvent.TIMER, _endTimer);
_completeTimer.stop();
_completeTimer.removeEventListener(Event.ENTER_FRAME, checkContainerLevels);
for each (c in _containers.list) {
c.stayFull();
};
_done();
}
public function renderLevel(level:Level, transitionLength:Number=500):void{
_renderTimer = new Timer((transitionLength / (level.objects.length * 1.5)));
_o = 0;
_level = level;
demoMode = !(level.randomize);
_renderTimer.addEventListener(TimerEvent.TIMER, _progressiveRender);
_renderTimer.start();
}
public function addStreams(streamArray:Array):void{
var s:Stream;
for each (s in streamArray) {
addStream(s);
};
}
public function get objects():Cipher{
var _objects:Cipher = new Cipher();
_objects.concat(streams);
_objects.concat(warps);
return (_objects);
}
public function stopStreams():void{
var s:Stream;
for each (s in streams.list) {
if (s.on){
s.stop();
};
};
}
public function get containers():Cipher{
return (_containers);
}
public function removeAll():void{
var myWarp:Warp;
var numWarps:Number = _warps.length;
var w:Number = 0;
while (w < numWarps) {
myWarp = _warps.remove();
if (myWarp){
removeWarp(myWarp);
};
w++;
};
var numStreams:Number = _streams.length;
var s:Number = 0;
while (s < numStreams) {
removeStream(_streams.remove());
s++;
};
_defaultStartingX = -1;
}
public function removeStream(s:Stream):Stream{
s.stop();
_streams.remove(s);
_lastStreamRemoved = s;
dispatchModelEvent(FlowEvent.STREAM_REMOVED);
return (s);
}
public function get demoMode():Boolean{
return (_demoMode);
}
private function _done(e:Event=null):void{
if (_demoTimer.hasEventListener(TimerEvent.TIMER)){
_demoTimer.stop();
_demoTimer.removeEventListener(TimerEvent.TIMER, _done);
dispatchModelEvent(FlowEvent.DEMO_MODE_COMPLETE);
};
dispatchModelEvent(FlowEvent.LEVEL_COMPLETE);
}
public function checkContainerLevels(e:Event):void{
var levelsFull:Boolean;
var c:ContainerWarp;
if (_containers.length){
levelsFull = true;
for each (c in _containers.list) {
levelsFull = ((levelsFull) && (c.isFull));
};
if (tricycle.config.mode != Configuration.EDITOR_MODE){
if (levelsFull){
if (!_fullTimer.hasEventListener(TimerEvent.TIMER)){
_fullTimer.addEventListener(TimerEvent.TIMER, _endTimer);
};
if (!_fullTimer.running){
_fullTimer.start();
};
} else {
if (_fullTimer.running){
_fullTimer.reset();
};
if (_fullTimer.hasEventListener(TimerEvent.TIMER)){
_fullTimer.removeEventListener(TimerEvent.TIMER, _endTimer);
};
};
};
};
}
public function removeWarp(w:Warp):Warp{
var s:Stream;
for each (s in _streams.list) {
s.removeWarp(w);
};
_warps.remove(w);
_containers.remove(w);
_controls.remove(w);
_lastWarpRemoved = w;
w.onRemove();
dispatchModelEvent(FlowEvent.WARP_REMOVED);
return (w);
}
public function resume():void{
var s:Stream;
var w:Warp;
for each (s in streams.list) {
s.resume();
};
for each (w in containers.list) {
w.resume();
};
}
public function pause():void{
var s:Stream;
var w:Warp;
for each (s in streams.list) {
s.pause();
};
for each (w in containers.list) {
w.pause();
};
}
public function checkContainerDemoComplete(e:Event):void{
var c:ContainerWarp;
var demoComplete:Boolean;
for each (c in _containers.list) {
demoComplete = ((demoComplete) && (c.demoComplete));
};
if (demoComplete){
_demoTimer.stop();
_demoTimer.removeEventListener(Event.ENTER_FRAME, checkContainerDemoComplete);
dispatchModelEvent(FlowEvent.CONTAINER_DEMO_COMPLETE);
};
}
public function initWarp(w:Warp, params:Object):Warp{
var i:uint;
w.init(params);
if ((((((tricycle.config.mode == Configuration.GAME_MODE)) && (_level))) && (w.isControl))){
if (_defaultStartingX < 0){
_numControls = _level.numControls;
_defaultStartingX = (((tricycle.stage.stageWidth - (((_numControls * _defaultRadius) * 2) + ((_numControls - 1) * _defaultSpacing))) / 2) + _defaultRadius);
};
if (_defaultStartingY < 0){
_defaultStartingY = (tricycle.stage.stageHeight / 2);
};
i = _controls.getIndexOf(w);
w.x = (_defaultStartingX + ((i * _defaultRadius) * 2));
if (i > 0){
w.x = (w.x + (_defaultSpacing * i));
};
w.y = _defaultStartingY;
w.radius = _defaultRadius;
};
_lastWarpInitialized = w;
dispatchModelEvent(FlowEvent.WARP_INIT);
return (w);
}
public function get lastWarpInitialized():Warp{
return (_lastWarpInitialized);
}
public function clearLevel():void{
stopStreams();
_o = (objects.length - 1);
_renderTimer.addEventListener(TimerEvent.TIMER, _progressiveClear);
_renderTimer.start();
}
public function newStream(params:Object=null):Stream{
var s:Stream = addStream(new Stream());
if (params){
initStream(s, params);
};
return (s);
}
public function get lastStreamInitialized():Stream{
return (_lastStreamInitialized);
}
public function newWarp(ClassType:Class, params:Object=null):Warp{
var w:Warp = addWarp((new (ClassType) as Warp));
if (params){
initWarp(w, params);
};
return (w);
}
public function addWarp(w:Warp):Warp{
var s:Stream;
w.flowModel = this;
_warps.add(w);
if ((w is ContainerModifier)){
_containers.add(w);
};
if (w.isControl){
_controls.add(w);
};
for each (s in _streams.list) {
s.addWarp(w);
};
_lastWarpAdded = w;
dispatchModelEvent(FlowEvent.WARP_ADDED);
return ((w as Warp));
}
public function addWarps(warpArray:Array):void{
var w:Warp;
for each (w in warpArray) {
addWarp(w);
};
}
public function set demoMode(mode:Boolean):void{
_demoMode = false;
}
public function startRemoveMode():void{
dispatchModelEvent(FlowEvent.REMOVE_ITEM_MODE);
}
public function startLevel():void{
startStreams();
if (demoMode){
_demoTimer.addEventListener(TimerEvent.TIMER, _done);
_demoTimer.start();
} else {
_completeTimer = new Timer(50);
_completeTimer.addEventListener(TimerEvent.TIMER, checkContainerLevels);
_completeTimer.start();
};
}
public function initStream(s:Stream, params:Object):Stream{
s.init(params);
_lastStreamInitialized = s;
dispatchModelEvent(FlowEvent.STREAM_INIT);
return (s);
}
public function startStreams():void{
var s:Stream;
for each (s in streams.list) {
if (!s.on){
s.start();
};
};
}
public function get lastStreamRemoved():Stream{
return (_lastStreamRemoved);
}
public function get lastWarpRemoved():Warp{
return (_lastWarpRemoved);
}
public function get lastWarpAdded():Warp{
return (_lastWarpAdded);
}
public function removeObject(o){
if ((o is Warp)){
return (removeWarp((o as Warp)));
};
if ((o is Stream)){
return (removeStream((o as Stream)));
};
throw (new Error(("Object being removed must be a Warp or a Stream: " + o)));
}
public function get warps():Cipher{
return (_warps);
}
public function get lastStreamAdded():Stream{
return (_lastStreamAdded);
}
public function initObject(o, params:Object){
if ((o is Warp)){
return (initWarp((o as Warp), params));
};
if ((o is Stream)){
return (initStream((o as Stream), params));
};
throw (new Error("Object being initialized must be a Warp or a Stream"));
}
private function _progressiveClear(e:TimerEvent=null):void{
if (_o >= 0){
removeObject(objects.getAt(_o));
_o--;
} else {
_renderTimer.stop();
_renderTimer.removeEventListener(TimerEvent.TIMER, _progressiveClear);
};
}
public function get streams():Cipher{
return (_streams);
}
public function newObject(obj:Object){
if (("classType" in obj)){
return (newWarp(obj.classType, obj));
};
return (newStream(obj));
}
public static function getClassFromName(warpName:String):Class{
return ((getDefinitionByName(("com.cipherprime.auditorium.models.flow.warps.modifiers." + warpName)) as Class));
}
}
}//package com.cipherprime.auditorium.models.flow
Section 49
//Particle (com.cipherprime.auditorium.models.flow.Particle)
package com.cipherprime.auditorium.models.flow {
import flash.geom.*;
import com.cipherprime.euclid.*;
public class Particle {
public var vector:Vector;
public var color:uint;// = 14540287
public var lx:Number;// = 0
public var ly:Number;// = 0
public var y:Number;// = 0
public var alpha:Number;// = 1
public var x:Number;// = 0
public function Particle(){
vector = new Vector();
super();
}
public function get position():Point{
return (new Point(x, y));
}
public function update():void{
lx = x;
ly = y;
x = (x + vector.x);
y = (y + vector.y);
}
public function set position(value:Point):void{
x = value.x;
y = value.y;
}
}
}//package com.cipherprime.auditorium.models.flow
Section 50
//Stream (com.cipherprime.auditorium.models.flow.Stream)
package com.cipherprime.auditorium.models.flow {
import com.cipherprime.tricycle.*;
import flash.events.*;
import flash.utils.*;
import com.cipherprime.utils.*;
import com.cipherprime.auditorium.models.events.*;
public class Stream {
public var vx:Number;
public var vy:Number;
public var numParticles:Number;// = 0
public var totalParticles:Number;
private var _updateInterval:uint;// = 33
public var flowModel:FlowModel;
private var _particleTimer:Timer;
public var noise:Number;
private var tricycle:Tricycle;
public var color:Number;
private var _warps:Cipher;
private var _particles:Cipher;
public var x:Number;
public var y:Number;
private var _on:Boolean;// = false
public function Stream(){
tricycle = Tricycle.getInstance();
super();
_warps = new Cipher();
_particles = new Cipher();
_particleTimer = new Timer(_updateInterval);
}
public function pause():void{
_particleTimer.stop();
}
public function addWarps(... _args):void{
var w:Warp;
for each (w in _args) {
addWarp(w);
};
}
public function addWarp(w:Warp):void{
_warps.add(w);
}
public function init(params:Object):void{
x = (params.x) ? params.x : 0;
y = (params.y) ? params.y : 0;
vx = ((params.vx)!=null) ? params.vx : 10;
vy = ((params.vy)!=null) ? params.vy : 10;
noise = (params.noise) ? params.noise : 30;
color = (params.color) ? params.color : 14540287;
totalParticles = (params.totalParticles) ? params.totalParticles : 100;
}
public function stop():void{
_particleTimer.removeEventListener(TimerEvent.TIMER, generate);
flowModel.dispatchModelEvent(FlowEvent.STREAM_STOPPED);
}
public function newParticle():void{
initParticle(new Particle());
}
public function addParticle(p:Particle):void{
_particles.add(p);
numParticles = _particles.list.length;
}
public function resetParticle():void{
_particles.killAt(0);
newParticle();
}
public function removeWarps(... _args):void{
var w:Warp;
for each (w in _args) {
removeWarp(w);
};
}
public function get particles():Cipher{
return (_particles);
}
public function start():void{
_particleTimer.addEventListener(TimerEvent.TIMER, generate);
_particleTimer.addEventListener(TimerEvent.TIMER, update);
_particleTimer.start();
_on = true;
flowModel.dispatchModelEvent(FlowEvent.STREAM_STARTED);
}
public function update(e:TimerEvent):void{
var p:Particle;
var w:Warp;
for each (p in _particles.list) {
p.update();
for each (w in _warps.list) {
w.apply(p);
};
tricycle.globalDrag.apply(p);
};
flowModel.dispatchModelEvent(FlowEvent.FRAME_READY);
}
public function resume():void{
_particleTimer.start();
}
public function initParticle(p:Particle):void{
p.x = x;
p.y = y;
p.vector.x = vx;
p.vector.y = vy;
p.color = color;
if (noise){
p.x = (p.x + ((Math.random() - 0.5) * noise));
p.y = (p.y + ((Math.random() - 0.5) * noise));
};
addParticle(p);
}
public function generate(e:TimerEvent):void{
if ((numParticles < totalParticles)){
newParticle();
} else {
resetParticle();
};
}
public function get on():Boolean{
return (_on);
}
public function get warps():Cipher{
return (_warps);
}
public function removeWarp(w:Warp):void{
_warps.remove(w);
}
}
}//package com.cipherprime.auditorium.models.flow
Section 51
//Warp (com.cipherprime.auditorium.models.flow.Warp)
package com.cipherprime.auditorium.models.flow {
import flash.geom.*;
import com.cipherprime.euclid.*;
public class Warp {
public var strength:Number;
public var name:String;// = "Warp"
protected var _isControl:Boolean;// = false
public var radius:Number;
public var flowModel:FlowModel;
public var mode:String;// = "omni"
public var position:Point;
protected var _isObstacle:Boolean;// = false
public var type:Class;
public static const MODE_LINEAR:String = "linear";
public static const MODE_OMNI:String = "omni";
public static const MODE_SPHERICAL:String = "spherical";
public function Warp(){
position = new Point();
super();
}
public function onRemove():void{
}
public function init(params:Object):void{
position.x = (params.x) ? params.x : 0;
position.y = (params.y) ? params.y : 0;
strength = (params.strength) ? params.strength : 4;
radius = (params.radius) ? params.radius : -1;
mode = (params.mode) ? params.mode : MODE_OMNI;
}
public function get isControl():Boolean{
return (_isControl);
}
public function get properties():Object{
return ({x:x, y:y, strength:strength, radius:radius, mode:mode});
}
public function inRange(p:Particle):Boolean{
return ((((radius <= 0)) || ((Calc.dist(position.x, position.y, p.x, p.y) <= radius))));
}
public function get isObstacle():Boolean{
return (_isObstacle);
}
public function resume():void{
}
public function apply(p:Particle):void{
}
public function set y(value:Number):void{
position.y = value;
}
public function pause():void{
}
public function set x(value:Number):void{
position.x = value;
}
public function get y():Number{
return (position.y);
}
public function get x():Number{
return (position.x);
}
}
}//package com.cipherprime.auditorium.models.flow
Section 52
//GameModel (com.cipherprime.auditorium.models.game.GameModel)
package com.cipherprime.auditorium.models.game {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.auditorium.models.flow.warps.*;
import com.cipherprime.auditorium.models.events.*;
public class GameModel extends Model {
public function GameModel(){
super();
}
public function startGame():void{
sendToModels(GlobalEvent.START);
sendToModels(GameEvent.START_GAME);
tricycle.globalDrag = new DragWarp();
tricycle.globalDrag.init({strength:0.97});
}
public function loadIntro():void{
dispatchModelEvent(GameEvent.LOAD_INTRO);
}
public function continueGame():void{
dispatchModelEvent(GameEvent.CONTINUE_GAME);
}
public function startIntro():void{
dispatchModelEvent(GameEvent.START_INTRO);
}
public function end():void{
sendToModels(GameEvent.END_GAME);
}
public function sendToModels(event:String):void{
tricycle.flowModel.dispatchModelEvent(event);
tricycle.audioModel.dispatchModelEvent(event);
tricycle.actModel.dispatchModelEvent(event);
tricycle.levelModel.dispatchModelEvent(event);
tricycle.gameModel.dispatchModelEvent(event);
}
public function resumeGame():void{
tricycle.actModel.resumeAct();
tricycle.levelModel.resumeLevel();
startGame();
}
}
}//package com.cipherprime.auditorium.models.game
Section 53
//Level (com.cipherprime.auditorium.models.level.Level)
package com.cipherprime.auditorium.models.level {
import com.cipherprime.tricycle.model.*;
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.utils.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.cipherprime.auditorium.models.flow.warps.modifiers.*;
import com.cipherprime.auditorium.models.xml.parsers.*;
public class Level {
public var useIntroTiming:Boolean;// = true
public var nextLevel:String;
private var _controls:Cipher;
private var _file:XmlHelper;
private var _numControls:Number;// = 0
public var model:Model;
private var _warps:Cipher;
public var url:String;
public var randomize:Boolean;// = true
private var _streams:Cipher;
public static var PAUSE_RENDER:String = "PauseRender";
public function Level(){
super();
_streams = new Cipher();
_warps = new Cipher();
_controls = new Cipher();
}
public function addWarp(params:Object):void{
var w:Warp = new params.classType();
if (w.isControl){
_numControls++;
_controls.add(params);
} else {
_warps.add(params);
};
}
public function get streams():Cipher{
return (_streams);
}
public function init(params:Object):void{
url = params.url;
}
public function get objects():Cipher{
var objects:Cipher = new Cipher();
objects.concat(_controls);
objects.add(Level.PAUSE_RENDER);
objects.concat(_warps);
objects.concat(_streams);
return (objects);
}
public function get numControls():Number{
return (_numControls);
}
public function settings(params:Object):void{
nextLevel = params.nextLevel;
useIntroTiming = !((params.useIntroTiming == "false"));
randomize = !((params.randomize == "false"));
}
public function load():void{
_file = new XmlHelper(url);
_file.noCache = true;
_file.onLoad = parse;
_file.load();
}
public function get warps():Cipher{
return (_warps);
}
public function parse():void{
var lXml:XML;
var sXml:XML;
var wXml:XML;
for each (lXml in _file.xml.level) {
settings(LevelParser.decode(lXml));
};
for each (sXml in _file.xml.streams.stream) {
_streams.add(StreamParser.decode(sXml));
};
for each (wXml in _file.xml.warps.warp) {
addWarp(WarpParser.decode(wXml));
};
model.levelReady(this);
}
public function get numContainers():Number{
var warp:Object;
var num:Number = 0;
for each (warp in _warps.list) {
if (warp.classType == ContainerModifier){
num++;
};
};
return (num);
}
}
}//package com.cipherprime.auditorium.models.level
Section 54
//LevelModel (com.cipherprime.auditorium.models.level.LevelModel)
package com.cipherprime.auditorium.models.level {
import com.cipherprime.tricycle.model.*;
import flash.net.*;
import com.cipherprime.auditorium.models.events.*;
public class LevelModel extends CrudModel {
private var _sharedObject:SharedObject;
public var demoMode:Boolean;// = false
private var _currentLevelNumber:Number;// = 0
public function LevelModel(){
super();
_ChildClass = Level;
_sharedObject = SharedObject.getLocal("lastLevel");
}
public function loadNextLevel():void{
if (_currentLevelNumber < (children.length - 1)){
_currentLevelNumber++;
_sharedObject.data.level = _currentLevelNumber;
currentLevel.load();
} else {
_currentLevelNumber = 0;
removeAllChildren();
dispatchModelEvent(LevelEvent.LEVELS_COMPLETE);
};
}
override public function initChild(child, params:Object){
demoMode = !((params.randomize == "false"));
return (super.initChild(child, params));
}
public function loadCurrentLevel():void{
_sharedObject.data.level = _currentLevelNumber;
currentLevel.load();
}
public function get currentLevel():Level{
return (children.getAt(_currentLevelNumber));
}
public function get currentLevelNumber():Number{
return (_currentLevelNumber);
}
public function resumeLevel():void{
_currentLevelNumber = _sharedObject.data.level;
}
public function get nextLevel():Level{
return (children.getAt(_currentLevelNumber++));
}
public function levelReady(l:Level):void{
_lastChildModified = l;
dispatchModelEvent(LevelEvent.LEVEL_READY);
}
}
}//package com.cipherprime.auditorium.models.level
Section 55
//ActParser (com.cipherprime.auditorium.models.xml.parsers.ActParser)
package com.cipherprime.auditorium.models.xml.parsers {
import com.cipherprime.utils.*;
public class ActParser {
public function ActParser(){
super();
}
public static function decode(aXml:XML):Object{
var song:Object;
var lXml:XML;
var sXml:XML;
var levels:Cipher = new Cipher();
for each (lXml in aXml.levels.level) {
levels.add({url:lXml.@url});
};
for each (sXml in aXml.audio.song) {
song = SongParser.decode(sXml);
};
return ({levels:levels, song:song, title:aXml.@title});
}
}
}//package com.cipherprime.auditorium.models.xml.parsers
Section 56
//LevelParser (com.cipherprime.auditorium.models.xml.parsers.LevelParser)
package com.cipherprime.auditorium.models.xml.parsers {
public class LevelParser {
public function LevelParser(){
super();
}
public static function decode(xml:XML):Object{
return ({name:xml.@name, nextLevel:xml.next.@url, useIntroTiming:xml.useIntroTiming, randomize:xml.randomize});
}
public static function encode(o:Object):XML{
var xml:XML = new XML(<level></level>
);
xml.@name = o.name;
xml.next.@url = o.nextLevel;
return (xml);
}
}
}//package com.cipherprime.auditorium.models.xml.parsers
Section 57
//SongParser (com.cipherprime.auditorium.models.xml.parsers.SongParser)
package com.cipherprime.auditorium.models.xml.parsers {
import com.cipherprime.tricycle.utils.helpers.*;
public class SongParser {
public function SongParser(){
super();
}
public static function decode(xml:XML):Object{
var tXml:XML;
var tracks:Array = new Array();
for each (tXml in xml.track) {
tracks.push(tXml.@url);
};
return ({tracks:tracks});
}
public static function encode(o:Object):XML{
var t:AudioHelper;
var tXml:XML;
var xml:XML = new XML(<song></song>
);
for each (t in o.tracks.list) {
tXml = new XML(<track/>
);
tXml.@url = t.url;
xml.appendChild(tXml);
};
return (xml);
}
}
}//package com.cipherprime.auditorium.models.xml.parsers
Section 58
//StreamParser (com.cipherprime.auditorium.models.xml.parsers.StreamParser)
package com.cipherprime.auditorium.models.xml.parsers {
import com.cipherprime.utils.*;
public class StreamParser {
public function StreamParser(){
super();
}
public static function decode(xml:XML):Object{
return ({x:Convert.stringToPoint(xml.position).x, y:Convert.stringToPoint(xml.position).y, vx:Convert.stringToPoint(xml.vector).x, vy:Convert.stringToPoint(xml.vector).y, noise:xml.noise, color:xml.color, totalParticles:xml.totalParticles});
}
public static function encode(o:Object):XML{
var xml:XML = new XML(<stream></stream>
);
xml.position = ((o.x + ", ") + o.y);
xml.vector = ((o.vx + ", ") + o.vy);
xml.noise = o.noise;
xml.color = o.color;
xml.totalParticles = o.totalParticles;
return (xml);
}
}
}//package com.cipherprime.auditorium.models.xml.parsers
Section 59
//WarpParser (com.cipherprime.auditorium.models.xml.parsers.WarpParser)
package com.cipherprime.auditorium.models.xml.parsers {
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.utils.*;
import com.cipherprime.auditorium.models.flow.warps.modifiers.*;
import com.cipherprime.auditorium.models.flow.warps.*;
public class WarpParser {
public function WarpParser(){
super();
}
public static function decode(xml:XML):Object{
var warpParams:Object;
var colors:Array;
var cXml:XML;
var entrance:Object;
var exit:Object;
var WarpClass:Class = FlowModel.getClassFromName(xml.@type);
warpParams = {classType:WarpClass, x:Convert.stringToPoint(xml.position).x, y:Convert.stringToPoint(xml.position).y, radius:xml.radius, strength:xml.strength, mode:xml.mode};
if (xml.color){
colors = new Array();
for each (cXml in xml.color) {
colors.push(cXml);
};
warpParams.colors = colors;
};
if (xml.entrance){
entrance = {x:Convert.stringToPoint(xml.entrance.position).x, y:Convert.stringToPoint(xml.entrance.position).y, radius:xml.entrance.radius};
warpParams.entrance = entrance;
};
if (xml.exit){
exit = {x:Convert.stringToPoint(xml.exit.position).x, y:Convert.stringToPoint(xml.exit.position).y, radius:xml.exit.radius};
warpParams.exit = exit;
};
return (warpParams);
}
public static function encode(o:Object):XML{
var c:uint;
var xml:XML = new XML(<warp></warp>
);
if ((o is PortalWarp)){
xml.entrance.position = ((o.entrance.x + ", ") + o.entrance.y);
xml.entrance.radius = o.entrance.radius;
xml.exit.position = ((o.exit.x + ", ") + o.exit.y);
xml.exit.radius = o.exit.radius;
} else {
xml.position = ((o.x + ", ") + o.y);
xml.radius = o.radius;
xml.strength = o.strength;
xml.mode = o.mode;
if (("colors" in o)){
for each (c in o.colors) {
xml.* = (xml.* + new XML((("<color>" + ??esc_xelem
) + "</color>")));
};
};
};
xml.@type = Convert.objectToClassName(o);
return (xml);
}
}
}//package com.cipherprime.auditorium.models.xml.parsers
Section 60
//XmlModel (com.cipherprime.auditorium.models.xml.XmlModel)
package com.cipherprime.auditorium.models.xml {
import com.cipherprime.tricycle.*;
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.utils.*;
import com.cipherprime.auditorium.models.audio.*;
import flash.net.*;
import com.cipherprime.auditorium.models.flow.warps.*;
import com.cipherprime.auditorium.views.item.type.types.*;
import com.cipherprime.auditorium.models.xml.parsers.*;
public class XmlModel extends Model {
public function XmlModel(){
super();
}
public function status(text:String, delay:Number=0):void{
Tricycle.getInstance().editorModel.status(text, delay);
}
public function saveXml(name:String=""):void{
var song:Song;
var s:Stream;
var obstacles:Cipher;
var goals:Cipher;
var controls:Cipher;
var w:Warp;
var request:URLRequest;
var loader:URLLoader;
var test:Object;
var xml:XML = new XML(<data/>
);
var levelXml:XML = new XML(<level></level>
);
var streamXml:XML = new XML(<streams></streams>
);
var warpXml:XML = new XML(<warps></warps>
);
var audioXml:XML = new XML(<audio></audio>
);
xml.appendChild(levelXml);
xml.appendChild(audioXml);
xml.appendChild(streamXml);
xml.appendChild(warpXml);
levelXml.randomize = !(tricycle.levelModel.demoMode);
name = ((name.substring((name.length - 4)) == ".xml")) ? name : (name + ".xml");
if (name == ".xml"){
name = (("level" + new Date().time) + ".xml");
};
tricycle.editorView.currentLevelName = name;
for each (song in tricycle.audioModel.children.list) {
audioXml.appendChild(SongParser.encode(song));
};
for each (s in tricycle.flowModel.streams.list) {
streamXml.appendChild(StreamParser.encode(s));
};
obstacles = new Cipher();
goals = new Cipher();
controls = new Cipher();
for each (w in tricycle.flowModel.warps.list) {
if (((!((w is PortalEntranceWarp))) || (!((w is PortalExitWarp))))){
test = new w.type();
if ((test is Obstacle)){
obstacles.add(w);
} else {
if ((test is Goal)){
goals.add(w);
} else {
if ((test is Control)){
controls.add(w);
};
};
};
};
};
for each (w in obstacles.list) {
warpXml.appendChild(WarpParser.encode(w));
};
for each (w in goals.list) {
warpXml.appendChild(WarpParser.encode(w));
};
for each (w in controls.list) {
warpXml.appendChild(WarpParser.encode(w));
};
request = new URLRequest(((tricycle.config.urls.editor + "savelevel.php?name=") + name));
request.data = xml;
request.contentType = "text/xml";
request.method = URLRequestMethod.POST;
loader = new URLLoader();
status((("Saving " + name) + "..."));
loader.addEventListener(Event.COMPLETE, _onSaveComplete, false, 0, true);
loader.addEventListener(IOErrorEvent.IO_ERROR, _onSaveIOError, false, 0, true);
loader.load(request);
}
private function _onSaveComplete(e:Event=null):void{
status("Save Complete", 3000);
}
private function _onSaveIOError(e:IOErrorEvent=null):void{
status(("Error saving level: " + e.text), 3000);
}
}
}//package com.cipherprime.auditorium.models.xml
Section 61
//EditorRouter (com.cipherprime.auditorium.routers.EditorRouter)
package com.cipherprime.auditorium.routers {
import flash.display.*;
import com.cipherprime.utils.*;
import com.cipherprime.auditorium.models.flow.warps.*;
import com.cipherprime.tricycle.router.*;
public class EditorRouter extends Router {
public var defaultSettings:Object;
public var myMenu:Menu;
public var menuHolder:Sprite;
public function EditorRouter(){
super();
addModels(tricycle.editorModel, tricycle.flowModel, tricycle.audioModel, tricycle.levelModel);
}
public function event_AudioModel_SongLoadProgress():void{
tricycle.editorView.showSongLoadProgress();
}
public function event_LevelModel_ChildInitialized():void{
tricycle.gameController.loadLevel();
}
public function event_FlowModel_WarpRemoved():void{
if (((tricycle.audioModel.currentSong) && ((tricycle.flowModel.lastWarpRemoved is ContainerWarp)))){
tricycle.audioController.unlinkAudio();
tricycle.audioController.linkAudio();
};
}
public function event_FlowModel_LevelRendered():void{
tricycle.gameController.startLevel();
}
public function event_LevelModel_LevelReady():void{
tricycle.gameController.renderLevel();
}
public function event_EditorModel_Start():void{
tricycle.editorController.init();
}
public function event_FlowModel_WarpAdded():void{
if (((tricycle.audioModel.currentSong) && ((tricycle.flowModel.lastWarpAdded is ContainerWarp)))){
tricycle.audioController.unlinkAudio();
tricycle.audioController.linkAudio();
};
}
}
}//package com.cipherprime.auditorium.routers
Section 62
//GameRouter (com.cipherprime.auditorium.routers.GameRouter)
package com.cipherprime.auditorium.routers {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import flash.utils.*;
import com.cipherprime.tricycle.router.*;
public class GameRouter extends Router {
private var _renderLevelTimer:Timer;
public function GameRouter(){
_renderLevelTimer = new Timer(30);
super();
addModels(tricycle.actModel, tricycle.audioModel, tricycle.flowModel, tricycle.gameModel, tricycle.levelModel);
}
public function event_GameModel_EndGame():void{
var m:Model;
for each (m in models) {
if (("removeAll" in m)){
var _local4 = m;
_local4["removeAll"]();
};
};
}
public function event_FlowModel_LevelComplete():void{
tricycle.gameController.transitionLevel();
}
public function event_LevelModel_LevelReady():void{
tricycle.audioController.loadLevel();
}
public function event_ActModel_ActComplete():void{
tricycle.gameModel.end();
}
public function event_GameModel_ResumeGame():void{
tricycle.gameController.resume();
}
public function event_AudioModel_SongLoadProgress():void{
tricycle.actView.updateSongLoadProgress(tricycle.audioModel.currentSong.percentLoaded);
}
public function event_FlowModel_LevelRendered():void{
tricycle.gameController.startLevel();
}
public function event_ActModel_ActStarted():void{
tricycle.actView.updateLevelIndicator(tricycle.levelModel.currentLevelNumber);
tricycle.audioController.startAct();
}
public function event_AudioModel_TracksLoaded():void{
_renderLevelTimer.addEventListener(TimerEvent.TIMER, _renderLevel);
_renderLevelTimer.start();
}
public function event_GameModel_Start():void{
tricycle.gameController.init();
}
public function event_FlowModel_DemoModeComplete():void{
tricycle.layersView.hideDemoClip();
}
public function event_FlowModel_DemoModeStart():void{
tricycle.layersView.showDemoClip();
}
public function event_GameModel_PauseGame():void{
tricycle.gameController.pause();
}
public function event_ActModel_ActIntro():void{
tricycle.audioController.renderAct();
tricycle.gameController.loadLevel();
}
private function _renderLevel(e:TimerEvent=null):void{
if (tricycle.actModel.started){
tricycle.gameController.renderLevel();
tricycle.actView.updateLevelIndicator(tricycle.levelModel.currentLevelNumber);
_renderLevelTimer.removeEventListener(TimerEvent.TIMER, _renderLevel);
_renderLevelTimer.reset();
};
}
public function event_LevelModel_LevelsComplete():void{
tricycle.actController.nextAct();
}
}
}//package com.cipherprime.auditorium.routers
Section 63
//TrackingRouter (com.cipherprime.auditorium.routers.TrackingRouter)
package com.cipherprime.auditorium.routers {
import flash.events.*;
import flash.utils.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.cipherprime.tricycle.router.*;
public class TrackingRouter extends Router {
private var _updateGameTimeFile:XmlHelper;
private var _gameTimeTimer:Timer;
private var _createGameFile:XmlHelper;
private var _gameId:Number;
private var _serverUrl:String;// = "http://www.playauditorium.com/"
private var _updateGameFile:XmlHelper;
public static const EVENT_GAME_FINISHED:Number = 2;
public static const EVENT_LEVEL_FINISHED:Number = 3;
public static const EVENT_GAME_TIME:Number = 5;
public static const EVENT_GAME_START:Number = 1;
public static const EVENT_ACT_FINISHED:Number = 4;
public function TrackingRouter(){
_gameTimeTimer = new Timer(20000);
super();
addModels(tricycle.actModel, tricycle.audioModel, tricycle.levelModel, tricycle.flowModel, tricycle.gameModel);
_createGameFile = new XmlHelper((_serverUrl + "creategame.php"));
_updateGameFile = new XmlHelper((_serverUrl + "updategame.php"));
_updateGameFile.noCache = true;
_updateGameTimeFile = new XmlHelper((_serverUrl + "updategametime.php"));
_updateGameTimeFile.noCache = true;
}
public function event_GameModel_EndGame():void{
_updateGameFile.request = {game_id:_gameId, event_id:EVENT_GAME_FINISHED};
_updateGameFile.load();
_gameTimeTimer.removeEventListener(TimerEvent.TIMER, _updateGameTimer);
_gameTimeTimer.reset();
}
private function _getGameId():void{
_gameId = _createGameFile.xml.@id;
_updateGameFile.request = {game_id:_gameId, event_id:EVENT_GAME_START};
_updateGameFile.load();
}
private function _updateGameTimer(e:Event=null):void{
_updateGameTimeFile.request = {game_id:_gameId};
_updateGameTimeFile.load();
}
public function event_FlowModel_LevelComplete():void{
_updateGameFile.request = {game_id:_gameId, event_id:EVENT_LEVEL_FINISHED};
_updateGameFile.load();
}
public function event_LevelModel_LevelsComplete():void{
_updateGameFile.request = {game_id:_gameId, event_id:EVENT_ACT_FINISHED};
_updateGameFile.load();
}
public function event_GameModel_StartGame():void{
_createGameFile.onLoad = _getGameId;
_createGameFile.load();
_gameTimeTimer.addEventListener(TimerEvent.TIMER, _updateGameTimer);
_gameTimeTimer.start();
}
}
}//package com.cipherprime.auditorium.routers
Section 64
//Directional (com.cipherprime.auditorium.views.item.element.elements.Directional)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.events.*;
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
import com.cipherprime.auditorium.views.item.element.*;
import flash.ui.*;
public class Directional extends Element {
private var _Directional:Class;
private var _isPressable:Boolean;// = false
private var _vectorOffset:Number;// = 8
private var _vx:Number;// = 0
private var _vy:Number;// = 0
private var _hitDistance:Number;// = 13
private var _xOffset:Number;
private var _yOffset:Number;
public function Directional(base:Item=null){
_Directional = Directional__Directional;
super(base);
_clip = new _Directional();
}
override public function create(clip:DisplayObjectContainer=null):void{
tricycle.layers.foreground.addChild(_clip);
}
private function _updateRotation():void{
var angle:Number = Math.atan2((_vy * _vectorOffset), (_vx * _vectorOffset));
var rTo:Number = ((angle * 180) / Math.PI);
_clip["pointer"].rotation = rTo;
}
private function _release(e:MouseEvent=null):void{
if (base.pressedElement == this){
base.pressedElement = null;
};
Mouse.show();
}
public function get vx():Number{
return (_vx);
}
public function get vy():Number{
return (_vy);
}
private function _press(e:MouseEvent=null):void{
if ((((_isPressable == true)) && ((base.pressedElement == null)))){
base.pressedElement = this;
Mouse.hide();
_xOffset = _clip["pointer"].mouseX;
_yOffset = _clip["pointer"].mouseY;
};
}
override protected function _updateIsMoveable():void{
if (isMoveable == true){
_on();
} else {
_off();
};
}
public function set vy(num:Number):void{
_vy = num;
}
override public function remove():void{
tricycle.layers.foreground.removeChild(_clip);
}
public function set vx(num:Number):void{
_vx = num;
}
private function _update(e:Event=null):void{
_updateDistance();
_updateDrag();
_updatePosition();
_updateRotation();
}
private function _off():void{
base.stage.removeEventListener(MouseEvent.MOUSE_DOWN, _press);
base.stage.removeEventListener(MouseEvent.MOUSE_UP, _release);
base.stage.removeEventListener(Event.ENTER_FRAME, _update);
}
private function _updatePosition():void{
_clip["pointer"].x = (_vx * _vectorOffset);
_clip["pointer"].y = (_vy * _vectorOffset);
}
override protected function _updateIsEnabled():void{
}
private function _updateDrag():void{
if (base.pressedElement == this){
base.vx = ((_clip.mouseX - _xOffset) / _vectorOffset);
base.vy = ((_clip.mouseY - _yOffset) / _vectorOffset);
};
}
private function _updateDistance():void{
var dx:Number = (_clip.mouseX - _clip["pointer"].x);
var dy:Number = (_clip.mouseY - _clip["pointer"].y);
var distance:Number = Math.sqrt(((dx * dx) + (dy * dy)));
if ((((distance <= _hitDistance)) && ((base.pressedElement == null)))){
_isPressable = true;
} else {
_isPressable = false;
};
}
private function _on():void{
base.stage.addEventListener(MouseEvent.MOUSE_DOWN, _press);
base.stage.addEventListener(MouseEvent.MOUSE_UP, _release);
base.stage.addEventListener(Event.ENTER_FRAME, _update);
}
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 65
//Directional__Directional (com.cipherprime.auditorium.views.item.element.elements.Directional__Directional)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.display.*;
import mx.core.*;
public class Directional__Directional extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_6:DisplayObject;
public var led_8:DisplayObject;
public var led_1:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var led_28:DisplayObject;
public var loader:DisplayObject;
public var led_2:DisplayObject;
public var handle:DisplayObject;
public var border:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var pointer:DisplayObject;
public var glair:DisplayObject;
public var dialog:DisplayObject;
public var title:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_05:DisplayObject;
public var wedge_06:DisplayObject;
public var container:DisplayObject;
public var fill:DisplayObject;
public var animation:DisplayObject;
public var arrows:DisplayObject;
public var act:DisplayObject;
public var pulse:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var led_16:DisplayObject;
public var led_17:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_20:DisplayObject;
public var led_21:DisplayObject;
public var led_22:DisplayObject;
public var led_23:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_24:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 66
//Highlight (com.cipherprime.auditorium.views.item.element.elements.Highlight)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
import com.cipherprime.auditorium.views.item.element.*;
public class Highlight extends Element {
public function Highlight(base:Item=null){
super(base);
}
override public function create(clip:DisplayObjectContainer=null):void{
if (clip == null){
throw (new Error("Highlight class must have a specified clip:MovieClip in create()"));
};
_clip = clip;
tricycle.layers.foreground.addChild(_clip);
}
override public function remove():void{
tricycle.layers.foreground.removeChild(_clip);
}
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 67
//Icon (com.cipherprime.auditorium.views.item.element.elements.Icon)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
import com.cipherprime.auditorium.views.item.element.*;
import com.cipherprime.auditorium.views.item.type.*;
public class Icon extends Element {
private var _hasContainer:Boolean;
private var _objectAddedTo:DisplayObjectContainer;
public function Icon(base:Item=null){
super(base);
}
override public function set x(num:Number):void{
if (hasContainer == false){
super.x = num;
};
}
override public function set y(num:Number):void{
if (hasContainer == false){
super.y = num;
};
}
override public function remove():void{
_objectAddedTo.removeChild(_clip);
}
public function get hasContainer():Boolean{
return (_hasContainer);
}
override public function create(clip:DisplayObjectContainer=null):void{
if (clip == null){
throw (new Error("Icon class must have a specified clip:MovieClip in create()"));
};
_clip = clip;
var itemType:ItemType = (base as ItemType);
if (itemType.IconContainerObject != null){
_objectAddedTo = itemType.IconContainerObject.clip["container"];
_hasContainer = true;
} else {
_objectAddedTo = (tricycle.layers.background as DisplayObjectContainer);
_hasContainer = false;
};
_objectAddedTo.addChild(_clip);
}
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 68
//IconContainer (com.cipherprime.auditorium.views.item.element.elements.IconContainer)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
import com.cipherprime.auditorium.views.item.element.*;
import com.gs.*;
public class IconContainer extends Element {
private var _IconContainer:Class;
private var _frameRate:Number;// = 30
public function IconContainer(base:Item=null){
_IconContainer = IconContainer__IconContainer;
super(base);
_clip = new _IconContainer();
}
private function _off():void{
_tweenFrame("start");
}
private function _tweenFrame(labelName:String):void{
var frame:int = _getFrameByLabel(labelName);
var frameTime:Number = (Math.abs((_clip["currentFrame"] - frame)) / _frameRate);
if (frame != -1){
TweenLite.killTweensOf(this, false);
TweenLite.to(_clip, frameTime, {frame:frame, ease:null});
};
}
override public function remove():void{
tricycle.layers.foreground.removeChild(_clip);
}
private function _on():void{
_tweenFrame("end");
}
private function _getFrameByLabel(labelName:String):int{
var label:FrameLabel;
var labels:Array = _clip["currentLabels"];
var i:uint;
while (i < labels.length) {
label = labels[i];
if (label.name.toLowerCase() == labelName.toLowerCase()){
return (label.frame);
};
i++;
};
return (-1);
}
override public function create(clip:DisplayObjectContainer=null):void{
tricycle.layers.foreground.addChild(_clip);
}
override protected function _updateIsEnabled():void{
if (isEnabled == true){
_on();
} else {
_off();
};
}
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 69
//IconContainer__IconContainer (com.cipherprime.auditorium.views.item.element.elements.IconContainer__IconContainer)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.display.*;
import mx.core.*;
public class IconContainer__IconContainer extends MovieClipAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_6:DisplayObject;
public var led_8:DisplayObject;
public var led_1:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var loader:DisplayObject;
public var led_2:DisplayObject;
public var led_29:DisplayObject;
public var handle:DisplayObject;
public var border:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var glair:DisplayObject;
public var dialog:DisplayObject;
public var title:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_05:DisplayObject;
public var wedge_06:DisplayObject;
public var container:DisplayObject;
public var fill:DisplayObject;
public var animation:DisplayObject;
public var arrows:DisplayObject;
public var act:DisplayObject;
public var pulse:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var led_16:DisplayObject;
public var led_17:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_20:DisplayObject;
public var led_21:DisplayObject;
public var led_23:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_28:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 70
//Moveable (com.cipherprime.auditorium.views.item.element.elements.Moveable)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.events.*;
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
import com.cipherprime.auditorium.views.item.element.*;
import com.gs.*;
import flash.ui.*;
import com.gs.easing.*;
public class Moveable extends Element {
private var _scaleOn:Number;// = 1
private var _alphaOff:Number;// = 0
private var _currentTween:String;// = "none"
private var _isPressed:Boolean;// = false
private var _alphaOn:Number;// = 1
private var _scaleOff:Number;// = 0.2
private var _Moveable:Class;
private var _yOffset:Number;
private var _scaleDurationOn:Number;// = 0.2
private var _alphaFlash:Number;// = 0.4
private var _alphaDurationOn:Number;// = 0.8
private var _isPressable:Boolean;// = false
private var _alphaDurationOff:Number;// = 0.8
private var _hitDistance:Number;// = 25
private var _xOffset:Number;
private var _scaleDurationOff:Number;// = 0.9
public function Moveable(base:Item=null){
_Moveable = Moveable__Moveable;
super(base);
_clip = new _Moveable();
_init();
}
override public function create(clip:DisplayObjectContainer=null):void{
tricycle.layers.foreground.addChild(_clip);
}
private function _updateDistance():void{
if ((((mouseDistance <= _hitDistance)) && ((base.pressedElement == null)))){
_isPressable = true;
_fadeIn();
} else {
_isPressable = false;
_fadeOut();
};
}
override public function remove():void{
tricycle.layers.foreground.removeChild(_clip);
}
private function _animationStop():void{
_clip["arrows"].stop();
}
override protected function _updateIsEnabled():void{
if (isEnabled == true){
_on();
_updateIsMoveable();
} else {
_off();
_offMoveable();
};
}
private function _off():void{
_offMoveable();
}
private function _updateDrag():void{
var targetX:Number;
var targetY:Number;
if (base.pressedElement == this){
targetX = (_clip["parent"].mouseX - _xOffset);
targetY = (_clip["parent"].mouseY - _yOffset);
if (targetX >= (_clip.stage.stageWidth - 1)){
targetX = (_clip.stage.stageWidth - 1);
} else {
if (targetX <= 1){
targetX = 1;
};
};
if (targetY >= (_clip.stage.stageHeight - 1)){
targetY = (_clip.stage.stageHeight - 1);
} else {
if (targetY <= 1){
targetY = 1;
};
};
base.x = targetX;
base.y = targetY;
};
}
private function _press(e:MouseEvent=null):void{
if ((((_isPressable == true)) && ((base.pressedElement == null)))){
_xOffset = (_clip.mouseX * _clip.scaleX);
_yOffset = (_clip.mouseY * _clip.scaleY);
base.pressedElement = this;
Mouse.hide();
};
}
private function _onMoveable():void{
base.stage.addEventListener(MouseEvent.MOUSE_DOWN, _press);
base.stage.addEventListener(MouseEvent.MOUSE_UP, _release);
base.stage.addEventListener(Event.ENTER_FRAME, _update);
}
private function _animationReset():void{
_clip["arrows"].gotoAndStop(1);
}
private function _release(e:MouseEvent=null):void{
if (base.pressedElement == this){
base.pressedElement = null;
};
Mouse.show();
}
private function _animationStart():void{
_clip["arrows"].play();
}
private function _fadeIn():void{
if (_currentTween != "fadeIn"){
TweenLite.to(_clip, _scaleDurationOn, {scaleX:_scaleOn, scaleY:_scaleOn, ease:Bounce.easeOut, onComplete:_animationStart});
TweenLite.to(_clip["arrows"], _alphaDurationOn, {autoAlpha:1});
_currentTween = "fadeIn";
};
}
private function _update(e:Event=null):void{
_updateDistance();
_updateDrag();
}
private function _init():void{
_clip["arrows"].alpha = 0;
_clip.scaleX = (_clip.scaleY = _scaleOff);
_animationReset();
}
private function _fadeOut():void{
if (_currentTween != "fadeOut"){
_animationStop();
TweenLite.to(_clip, _scaleDurationOff, {scaleX:_scaleOff, scaleY:_scaleOff});
TweenLite.to(_clip["arrows"], _alphaDurationOff, {autoAlpha:0});
_currentTween = "fadeOut";
};
}
private function _offMoveable():void{
base.stage.removeEventListener(MouseEvent.MOUSE_DOWN, _press);
base.stage.removeEventListener(MouseEvent.MOUSE_UP, _release);
base.stage.removeEventListener(Event.ENTER_FRAME, _update);
_release();
}
override protected function _updateIsMoveable():void{
if (isMoveable == true){
_onMoveable();
} else {
_offMoveable();
};
}
private function _on():void{
}
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 71
//Moveable__Moveable (com.cipherprime.auditorium.views.item.element.elements.Moveable__Moveable)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.display.*;
import mx.core.*;
public class Moveable__Moveable extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var animation:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var loader:DisplayObject;
public var arrows:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 72
//Radius (com.cipherprime.auditorium.views.item.element.elements.Radius)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.events.*;
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
import com.cipherprime.auditorium.views.item.element.*;
import com.gs.*;
import flash.ui.*;
import com.gs.easing.*;
public class Radius extends Element {
private var _isSelected:Boolean;// = false
private var _alphaFlashDuration:Number;// = 0.4
public var tempRadius:Number;// = 0
private var _tintDuration:Number;// = 0.3
private var _alphaOff:Number;// = 0.2
private var _alphaDuration:Number;// = 0.3
private var _moveAccel:Number;// = 0.7
private var _alphaOn:Number;// = 0.1
private var _showBorder:Boolean;// = true
private var _yOffset:Number;// = 0
private var _isFadeable:Boolean;// = true
private var _rTo:Number;// = 0
private var _alphaFlash:Number;// = 0.4
private var _Radius:Class;
private var _tint:Number;// = 0xFFFFFF
private var _baseOffset:Number;// = 0
private var _ignoreRadius:Number;// = 25
private var _xOffset:Number;// = 0
public function Radius(base:Item=null){
_Radius = Radius__Radius;
super(base);
_clip = new _Radius();
_init();
}
private function _updateRotation():void{
var angle:Number;
var xTo:Number;
var yTo:Number;
var rTo:Number;
if (isSizeable == true){
angle = Math.atan2(_clip.mouseY, _clip.mouseX);
xTo = (base.radius * Math.cos(angle));
yTo = (base.radius * Math.sin(angle));
rTo = ((angle * 180) / Math.PI);
if (_clip["handle"]){
_clip["handle"].rotation = rTo;
_clip["handle"].x = xTo;
_clip["handle"].y = yTo;
};
};
}
public function get showBorder():Boolean{
return (_showBorder);
}
override public function remove():void{
if (tricycle.layers.radii.contains(_clip)){
tricycle.layers.radii.removeChild(_clip);
};
}
public function set showBorder(state:Boolean):void{
_showBorder = state;
if (_showBorder == true){
_clip["border"].visible = true;
} else {
_clip["border"].visible = false;
};
}
override protected function _updateRadius():void{
if (_clip["fill"]){
_clip["fill"].width = (_clip["fill"].height = (base.radius * 2));
};
if (_clip["border"]){
_clip["border"].width = (_clip["border"].height = (base.radius * 2));
};
}
private function _showHandle():void{
TweenLite.to(_clip["handle"], _alphaDuration, {alpha:1});
}
public function get isFadeable():Boolean{
return (_isFadeable);
}
private function _updateSelected():void{
var mDistance:Number;
if (isSizeable == true){
if (base.pressedElement != this){
mDistance = base.mouseDistance;
if ((((mDistance <= base.detectionRadius)) && ((mDistance >= _ignoreRadius)))){
if (_isSelected == false){
_showHandle();
};
_isSelected = true;
} else {
if (_isSelected == true){
_hideHandle();
};
_isSelected = false;
};
};
};
}
private function _offSizeable():void{
base.stage.removeEventListener(MouseEvent.MOUSE_DOWN, _press);
base.stage.removeEventListener(MouseEvent.MOUSE_UP, _release);
_hideHandle();
_release();
}
override protected function _updateIsEnabled():void{
if (isEnabled == true){
_on();
_updateIsSizeable();
} else {
_off();
_offSizeable();
};
_fade();
}
public function get xOffset():Number{
return (_xOffset);
}
private function _off():void{
_clip.removeEventListener(Event.ENTER_FRAME, _update);
_offSizeable();
}
private function _hideHandle():void{
TweenLite.to(_clip["handle"], _alphaDuration, {alpha:0});
}
private function _updateDisplay():void{
if (base.pressedElement == this){
base.radius = (base.radius + ((_rTo - base.radius) * _moveAccel));
};
}
private function _updateDrag():void{
var rTo:Number;
var distance:Number;
var offSetDistance:Number;
var offSetDifference:Number;
var centerPercent:Number;
if (base.pressedElement == this){
rTo = 0;
distance = mouseDistance;
offSetDistance = Math.sqrt(((xOffset * xOffset) + (yOffset * yOffset)));
offSetDifference = (distance - offSetDistance);
_rTo = (baseOffset + offSetDifference);
if (offSetDifference < 0){
centerPercent = (base.minRadius / distance);
_rTo = ((_rTo - (_rTo * centerPercent)) + base.minRadius);
};
};
}
public function set isFadeable(state:Boolean):void{
_isFadeable = state;
_fade();
}
private function _press(e:MouseEvent=null):void{
if (base.pressedElement == null){
_xOffset = (_clip.mouseX * _clip.scaleX);
_yOffset = (_clip.mouseY * _clip.scaleY);
_baseOffset = base.radius;
base.pressedElement = this;
Mouse.hide();
};
}
override protected function _updateIsSizeable():void{
if (isSizeable == true){
_onSizeable();
} else {
_offSizeable();
};
}
private function _release(e:MouseEvent=null):void{
if (base.pressedElement == this){
base.pressedElement = null;
};
Mouse.show();
}
public function get baseOffset():Number{
return (_baseOffset);
}
private function _fade():void{
if (isFadeable){
if (isEnabled){
TweenLite.to(_clip["fill"], _alphaDuration, {alpha:_alphaOn, overwrite:true});
} else {
TweenLite.to(_clip["fill"], _alphaDuration, {alpha:_alphaOff, overwrite:true});
};
};
}
public function get isSelected():Boolean{
return (_isSelected);
}
private function _update(e:Event=null):void{
_updateSelected();
_updateDrag();
_updateDisplay();
_updateRotation();
}
private function _init():void{
_clip["fill"].alpha = _alphaOff;
_clip["handle"].alpha = 0;
_updateRadius();
}
private function _changeTint(num:Number, duration:Number=-1):void{
if (duration == -1){
duration = _tintDuration;
};
TweenLite.to(_clip["border"], duration, {tint:num});
}
public function get yOffset():Number{
return (_yOffset);
}
public function set tint(num:Number):void{
_changeTint(num, _tintDuration);
}
private function _onSizeable():void{
base.stage.addEventListener(MouseEvent.MOUSE_DOWN, _press);
base.stage.addEventListener(MouseEvent.MOUSE_UP, _release);
}
public function get tint():Number{
return (_tint);
}
override public function create(clip:DisplayObjectContainer=null):void{
tricycle.layers.radii.addChild(_clip);
}
private function _on():void{
_clip.addEventListener(Event.ENTER_FRAME, _update);
}
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 73
//Radius__Radius (com.cipherprime.auditorium.views.item.element.elements.Radius__Radius)
package com.cipherprime.auditorium.views.item.element.elements {
import flash.display.*;
import mx.core.*;
public class Radius__Radius extends MovieClipAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var animation:DisplayObject;
public var led_9:DisplayObject;
public var arrows:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_8:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var led_28:DisplayObject;
public var handle:DisplayObject;
public var border:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var title:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var led_15:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.element.elements
Section 74
//Element (com.cipherprime.auditorium.views.item.element.Element)
package com.cipherprime.auditorium.views.item.element {
import com.cipherprime.tricycle.*;
import flash.events.*;
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
public class Element {
private var _isSizeable:Boolean;
private var _isMoveable:Boolean;
protected var tricycle:Tricycle;
private var _scaleX:Number;
private var _scaleY:Number;
protected var _clip:DisplayObjectContainer;
private var _base:Item;
private var _radius:Number;
private var _isEnabled:Boolean;
private var _x:Number;
private var _y:Number;
public function Element(base:Item){
tricycle = Tricycle.getInstance();
super();
_base = base;
_isEnabled = base.isEnabled;
_isSizeable = base.isSizeable;
_isMoveable = base.isMoveable;
}
public function get y():Number{
return (_y);
}
public function set y(num:Number):void{
_y = num;
if (_clip != null){
_clip.y = num;
};
}
public function create(clip:DisplayObjectContainer=null):void{
}
public function get x():Number{
return (_x);
}
public function get mouseDistance():Number{
var dx:Number = (_clip.mouseX * _clip.scaleX);
var dy:Number = (_clip.mouseY * _clip.scaleY);
var distance:Number = Math.sqrt(((dx * dx) + (dy * dy)));
return (distance);
}
public function set isSizeable(state:Boolean):void{
_isSizeable = state;
_updateIsSizeable();
}
public function remove():void{
}
protected function _updateIsMoveable():void{
}
public function get isMoveable():Boolean{
return (_isMoveable);
}
public function get scaleX():Number{
return (_scaleX);
}
public function get scaleY():Number{
return (_scaleY);
}
public function get clip():DisplayObjectContainer{
return (_clip);
}
public function get base():Item{
return (_base);
}
public function get radius():Number{
return (_radius);
}
protected function _updateRadius():void{
}
public function set scaleX(num:Number):void{
_scaleX = num;
if (_clip != null){
_clip.scaleX = num;
};
}
public function set radius(num:Number):void{
_radius = num;
_updateRadius();
}
public function set scaleY(num:Number):void{
_scaleY = num;
if (_clip != null){
_clip.scaleY = num;
};
}
public function superSet(object:EventDispatcher, property:String, value):void{
var object = object;
var property = property;
var value = value;
object.addEventListener(Event.ENTER_FRAME, function (e:Event=null):void{
if (object){
if (object[property]){
object[property] = value;
};
object.removeEventListener(Event.ENTER_FRAME, arguments.callee);
};
});
}
public function set alpha(num:Number):void{
_clip.alpha = num;
}
public function set isMoveable(state:Boolean):void{
_isMoveable = state;
_updateIsMoveable();
}
public function get isSizeable():Boolean{
return (_isSizeable);
}
public function set isEnabled(state:Boolean):void{
_isEnabled = state;
_updateIsEnabled();
}
protected function _updateIsEnabled():void{
}
protected function _updateIsSizeable():void{
}
public function get isEnabled():Boolean{
return (_isEnabled);
}
public function set x(num:Number):void{
_x = num;
if (_clip != null){
_clip.x = num;
};
}
}
}//package com.cipherprime.auditorium.views.item.element
Section 75
//LED (com.cipherprime.auditorium.views.item.items.container_assets.LED)
package com.cipherprime.auditorium.views.item.items.container_assets {
import flash.display.*;
import flash.geom.*;
import com.gs.*;
import com.cipherprime.euclid.*;
import flash.filters.*;
public class LED {
private var _fill:MovieClip;
private var _blurAmount:Number;// = 8
private var _blur:Sprite;
private var _color:Number;// = 0xFFFFFF
private var _clip:MovieClip;
private var _alphaDuration:Number;// = 0.7
private var _isEnabled:Boolean;// = true
public function LED(init_clip:MovieClip){
super();
_clip = init_clip;
_fill = _clip["fill"];
}
public function get color():Number{
return (_color);
}
public function set isEnabled(state:Boolean):void{
if (state == true){
if (isEnabled == false){
_on();
};
} else {
if (isEnabled == true){
_off();
};
};
_isEnabled = state;
}
public function get clip():MovieClip{
return (_clip);
}
public function set color(num:Number):void{
_color = num;
var colorTransform:ColorTransform = _fill.transform.colorTransform;
colorTransform.color = _color;
_fill.transform.colorTransform = colorTransform;
_createGlow();
}
private function _on():void{
TweenLite.to(clip, _alphaDuration, {alpha:1});
}
private function _createGlow():void{
var alpha:Number = 0.5;
var strength:Number = 1;
var inner:Boolean;
var knockout:Boolean;
var quality:Number = BitmapFilterQuality.MEDIUM;
var glow:GlowFilter = new GlowFilter(Calc.saturateColor(_color, 170), alpha, _blurAmount, _blurAmount, strength, quality, inner, knockout);
_clip.filters = [glow];
}
public function get isEnabled():Boolean{
return (_isEnabled);
}
private function _off():void{
TweenLite.to(clip, _alphaDuration, {alpha:0});
}
}
}//package com.cipherprime.auditorium.views.item.items.container_assets
Section 76
//Wedge (com.cipherprime.auditorium.views.item.items.container_assets.Wedge)
package com.cipherprime.auditorium.views.item.items.container_assets {
import flash.display.*;
import flash.geom.*;
public class Wedge {
private var _color:uint;
private var _clip:MovieClip;
public function Wedge(init_clip:MovieClip){
super();
_clip = init_clip;
_clip.alpha = 0;
}
public function get clip():MovieClip{
return (_clip);
}
public function set color(num:Number):void{
_color = num;
var colorTransform:ColorTransform = _clip.transform.colorTransform;
colorTransform.color = _color;
_clip.transform.colorTransform = colorTransform;
}
public function get color():Number{
return (_color);
}
}
}//package com.cipherprime.auditorium.views.item.items.container_assets
Section 77
//Attract (com.cipherprime.auditorium.views.item.items.Attract)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Attract extends Control {
private var _Attract:Class;
public function Attract(){
_Attract = Attract__Attract;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Attract());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 78
//Attract__Attract (com.cipherprime.auditorium.views.item.items.Attract__Attract)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Attract__Attract extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 79
//BlackHole (com.cipherprime.auditorium.views.item.items.BlackHole)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class BlackHole extends Obstacle {
private var _BlackHole:Class;
private var _BlackHoleHighlight:Class;
public function BlackHole(){
_BlackHole = BlackHole__BlackHole;
_BlackHoleHighlight = BlackHole__BlackHoleHighlight;
super();
}
override public function Init(editorMode:Boolean=false):void{
_createHighlight(new _BlackHoleHighlight());
super.Init(editorMode);
_createIcon(new _BlackHole());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 80
//BlackHole__BlackHole (com.cipherprime.auditorium.views.item.items.BlackHole__BlackHole)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class BlackHole__BlackHole extends MovieClipAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 81
//BlackHole__BlackHoleHighlight (com.cipherprime.auditorium.views.item.items.BlackHole__BlackHoleHighlight)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class BlackHole__BlackHoleHighlight extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 82
//Color (com.cipherprime.auditorium.views.item.items.Color)
package com.cipherprime.auditorium.views.item.items {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.cipherprime.euclid.*;
import flash.filters.*;
import com.cipherprime.auditorium.views.item.type.types.*;
public class Color extends Obstacle {
private var _color:Number;
private var _Color:Class;
private var _clip:MovieClip;
public function Color(){
_Color = Color__Color;
super();
}
public function get color():Number{
return (_color);
}
public function set color(num:Number):void{
var colorTransform:ColorTransform;
_color = num;
var fullColor:Number = Calc.saturateColor(num, 170);
if (RadiusObject){
RadiusObject.tint = fullColor;
};
if (_clip["fill"]){
colorTransform = _clip["fill"].transform.colorTransform;
colorTransform.color = num;
_clip.filters = [new GlowFilter(fullColor, 1, 7, 7, 1, 1, false, false)];
_clip["fill"].transform.colorTransform = colorTransform;
};
}
private function _createColor():MovieClip{
var clip:MovieClip = (new _Color() as MovieClip);
clip.gotoAndStop("small");
clip["fill"].addEventListener(Event.ADDED_TO_STAGE, _init);
return (clip);
}
private function _init(e:Event=null):void{
if (RadiusObject){
RadiusObject.isFadeable = false;
};
radius = super.radius;
}
override public function Init(editorMode:Boolean=false):void{
_clip = _createColor();
if (editorMode == true){
_createMoveable();
_createRadius();
_createIcon(_clip);
RadiusObject.showBorder = false;
isMoveable = true;
isSizeable = true;
isEnabled = true;
} else {
_createIcon(_clip);
isMoveable = false;
isSizeable = false;
isEnabled = true;
};
}
override public function set radius(num:Number):void{
super.radius = num;
if (_clip){
if (num >= 175){
_clip.gotoAndStop("large");
} else {
if (num >= 110){
_clip.gotoAndStop("medium");
} else {
_clip.gotoAndStop("small");
};
};
_clip.addEventListener(Event.ENTER_FRAME, _setSize);
};
}
private function _setSize(e:Event=null):void{
if (_clip["fill"]){
color = _color;
_clip["fill"].width = (radius * 2);
_clip["fill"].height = (radius * 2);
_clip.removeEventListener(Event.ENTER_FRAME, _setSize);
};
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 83
//Color__Color (com.cipherprime.auditorium.views.item.items.Color__Color)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Color__Color extends MovieClipAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 84
//Container (com.cipherprime.auditorium.views.item.items.Container)
package com.cipherprime.auditorium.views.item.items {
import flash.events.*;
import flash.display.*;
import com.cipherprime.auditorium.models.flow.*;
import com.gs.*;
import com.cipherprime.auditorium.views.item.type.types.*;
import com.cipherprime.auditorium.views.item.items.container_assets.*;
public class Container extends Goal {
private var _LEDBackground:DisplayObject;
private var _container:DisplayObjectContainer;
private var _scaleMin:Number;// = 1
private var _isFilled:Boolean;// = false
private var _levels:Array;
private var _ContainerGlow:Class;
private var _colors:Array;
private var _scaleMax:Number;// = 0.14
private var _pulse:DisplayObjectContainer;
private var _ledCount:Number;
private var _leds:Array;
private var _TwoColorContainer:Class;
private var _blurStrength:Number;// = 0xFF
private var _clip:DisplayObjectContainer;
private var _scaleCurrent:Number;// = 0.1
private var _blurAlpha:Number;// = 0.5
private var _ThreeColorContainer:Class;
private var _blurAmount:Number;// = 1.3
private var _ledRowCount:Number;// = 3
private var _OneColorContainer:Class;
private var _blurIncrement:Number;// = 0.3
private var _wedges:Array;
private var _scaleIncrement:Number;// = 0.2
private var _blurMinimum:Number;// = 1
private var _blurCount:Number;// = 0
private var _ledColumnCount:Number;// = 10
private var _wedgeAccess:Array;
public function Container(){
_OneColorContainer = Container__OneColorContainer;
_TwoColorContainer = Container__TwoColorContainer;
_ThreeColorContainer = Container__ThreeColorContainer;
_ContainerGlow = Container__ContainerGlow;
_ledCount = (_ledColumnCount * _ledRowCount);
super();
_leds = new Array();
_levels = new Array();
_colors = new Array();
_wedges = new Array();
_wedgeAccess = new Array();
}
private function _updateGlow(e:Event=null):void{
_scaleCurrent = (_scaleCurrent + _scaleIncrement);
}
public function initIcon(num:Number=3):void{
switch (num){
case 1:
_clip = new _OneColorContainer();
break;
case 2:
_clip = new _TwoColorContainer();
break;
case 3:
_clip = new _ThreeColorContainer();
break;
};
_pulse = _clip["pulse"];
var w:Number = 1;
while (w <= 6) {
_wedges[w] = new Wedge(_pulse["blur"][("wedge_0" + w)]);
w++;
};
var i:Number = 1;
while (i <= _ledCount) {
if (_clip[("led_" + i)]){
_leds[i] = new LED(_clip[("led_" + i)]);
_leds[i].isEnabled = false;
};
i++;
};
switch (num){
case 3:
_leds[(1 + (_ledColumnCount * 2))].isEnabled = true;
case 2:
_leds[(1 + _ledColumnCount)].isEnabled = true;
case 1:
_leds[1].isEnabled = true;
break;
};
_container.addChild(_clip);
}
public function get isFilled():Boolean{
return (_isFilled);
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_container = new MovieClip();
_createIcon(_container);
}
private function _changeLeds(start:Number, end:Number, state:Boolean):void{
var i:Number;
if (start != end){
i = start;
while (i <= end) {
if (_leds[i]){
_leds[i].isEnabled = state;
};
i++;
};
};
}
public function set isFilled(state:Boolean):void{
if (state == true){
if (_isFilled == false){
_glowOn();
};
} else {
if (_isFilled == true){
_glowOff();
};
};
_isFilled = state;
}
public function set colors(tempColors:Array):void{
_colors = tempColors;
_updateColors();
}
private function _glowOff():void{
}
private function _glowOn():void{
}
public function get levels():Array{
return (_levels);
}
public function setFilled(group:Number, state:Boolean):void{
var wedge:Wedge;
var alpha:Number = (state) ? 1 : 0;
for each (wedge in _wedgeAccess[group]) {
TweenLite.to(wedge.clip, 1, {alpha:alpha});
};
}
public function set levels(tempLevels:Array):void{
_levels = tempLevels;
var i:Number = 0;
while (i < _levels.length) {
setFilled(i, (_levels[i] >= FlowModel.CONTAINER_THRESHOLD));
i++;
};
_updateLevels();
}
private function _updateLevels():void{
var level_1:Number;
var level_2:Number;
var level_3:Number;
if (_levels.length >= 1){
level_1 = Math.round(((_ledColumnCount - 1) * _levels[0]));
_changeLeds(2, (1 + level_1), true);
_changeLeds((2 + level_1), _ledColumnCount, false);
};
if (_levels.length >= 2){
level_2 = Math.round(((_ledColumnCount - 1) * _levels[1]));
_changeLeds((2 + _ledColumnCount), ((1 + _ledColumnCount) + level_2), true);
_changeLeds(((2 + _ledColumnCount) + level_2), (_ledColumnCount * 2), false);
};
if (_levels.length >= 3){
level_3 = Math.round(((_ledColumnCount - 1) * _levels[2]));
_changeLeds((2 + (_ledColumnCount * 2)), ((1 + (_ledColumnCount * 2)) + level_3), true);
_changeLeds(((2 + (_ledColumnCount * 2)) + level_3), ((_ledColumnCount * 2) * 2), false);
};
}
private function _updateColors():void{
var c:Number;
var w:Number;
var i:Number;
var b:Number;
switch (_colors.length){
case 1:
c = 1;
while (c <= _ledColumnCount) {
_leds[c].color = _colors[0];
c++;
};
w = 1;
while (w < _wedges.length) {
_wedges[w].color = _colors[0];
_wedgeAccess.push(_wedges);
w++;
};
break;
case 2:
i = 1;
while (i <= _ledColumnCount) {
_leds[i].color = _colors[0];
i++;
};
while (i <= (_ledColumnCount * 2)) {
_leds[i].color = _colors[1];
i++;
};
_wedges[4].color = _colors[0];
_wedges[5].color = _colors[0];
_wedges[6].color = _colors[0];
_wedges[1].color = _colors[1];
_wedges[2].color = _colors[1];
_wedges[3].color = _colors[1];
_wedgeAccess.push([_wedges[4], _wedges[5], _wedges[6]], [_wedges[1], _wedges[2], _wedges[3]]);
break;
case 3:
b = 1;
while (b <= _ledColumnCount) {
_leds[b].color = _colors[0];
b++;
};
while (b <= (_ledColumnCount * 2)) {
_leds[b].color = _colors[1];
b++;
};
while (b <= (_ledColumnCount * 3)) {
_leds[b].color = _colors[2];
b++;
};
_wedges[5].color = _colors[0];
_wedges[6].color = _colors[0];
_wedges[3].color = _colors[1];
_wedges[4].color = _colors[1];
_wedges[1].color = _colors[2];
_wedges[2].color = _colors[2];
_wedgeAccess.push([_wedges[5], _wedges[6]], [_wedges[3], _wedges[4]], [_wedges[1], _wedges[2]]);
break;
};
}
public function get colors():Array{
return (_colors);
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 85
//Container__ContainerGlow (com.cipherprime.auditorium.views.item.items.Container__ContainerGlow)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Container__ContainerGlow extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 86
//Container__OneColorContainer (com.cipherprime.auditorium.views.item.items.Container__OneColorContainer)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Container__OneColorContainer extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 87
//Container__ThreeColorContainer (com.cipherprime.auditorium.views.item.items.Container__ThreeColorContainer)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Container__ThreeColorContainer extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 88
//Container__TwoColorContainer (com.cipherprime.auditorium.views.item.items.Container__TwoColorContainer)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Container__TwoColorContainer extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 89
//Deflect (com.cipherprime.auditorium.views.item.items.Deflect)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Deflect extends Control {
private var _Deflect:Class;
public function Deflect(){
_Deflect = Deflect__Deflect;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Deflect());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 90
//Deflect__Deflect (com.cipherprime.auditorium.views.item.items.Deflect__Deflect)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Deflect__Deflect extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 91
//Divide (com.cipherprime.auditorium.views.item.items.Divide)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Divide extends Obstacle {
private var _TheDivideHighLight:Class;
private var _TheDivideBackground:Class;
public function Divide(){
_TheDivideBackground = Divide__TheDivideBackground;
_TheDivideHighLight = Divide__TheDivideHighLight;
super();
}
override public function Init(editorMode:Boolean=false):void{
if (editorMode == true){
_createMoveable();
isMoveable = true;
isEnabled = true;
};
_createIcon(new _TheDivideBackground());
_createHighlight(new _TheDivideHighLight());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 92
//Divide__TheDivideBackground (com.cipherprime.auditorium.views.item.items.Divide__TheDivideBackground)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Divide__TheDivideBackground extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 93
//Divide__TheDivideHighLight (com.cipherprime.auditorium.views.item.items.Divide__TheDivideHighLight)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Divide__TheDivideHighLight extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 94
//Fall (com.cipherprime.auditorium.views.item.items.Fall)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Fall extends Control {
private var _Fall:Class;
public function Fall(){
_Fall = Fall__Fall;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Fall());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 95
//Fall__Fall (com.cipherprime.auditorium.views.item.items.Fall__Fall)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Fall__Fall extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 96
//Flow (com.cipherprime.auditorium.views.item.items.Flow)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Flow extends Player {
public function Flow(){
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 97
//IonStorm (com.cipherprime.auditorium.views.item.items.IonStorm)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class IonStorm extends Obstacle {
private var _IonStorm:Class;
public function IonStorm(){
_IonStorm = IonStorm__IonStorm;
super();
}
override public function Init(editorMode:Boolean=false):void{
if (editorMode == true){
_createMoveable();
isMoveable = true;
isEnabled = true;
};
_createIcon(new _IonStorm());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 98
//IonStorm__IonStorm (com.cipherprime.auditorium.views.item.items.IonStorm__IonStorm)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class IonStorm__IonStorm extends MovieClipAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 99
//Portal (com.cipherprime.auditorium.views.item.items.Portal)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.*;
public class Portal extends ItemType {
public function Portal(){
super();
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 100
//PortalEntrance (com.cipherprime.auditorium.views.item.items.PortalEntrance)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class PortalEntrance extends Obstacle {
private var _PortalEntrance:Class;
public function PortalEntrance(){
_PortalEntrance = PortalEntrance__PortalEntrance;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _PortalEntrance());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 101
//PortalEntrance__PortalEntrance (com.cipherprime.auditorium.views.item.items.PortalEntrance__PortalEntrance)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class PortalEntrance__PortalEntrance extends MovieClipAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 102
//PortalExit (com.cipherprime.auditorium.views.item.items.PortalExit)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class PortalExit extends Obstacle {
private var _PortalExit:Class;
public function PortalExit(){
_PortalExit = PortalExit__PortalExit;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _PortalExit());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 103
//PortalExit__PortalExit (com.cipherprime.auditorium.views.item.items.PortalExit__PortalExit)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class PortalExit__PortalExit extends MovieClipAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 104
//Pull (com.cipherprime.auditorium.views.item.items.Pull)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Pull extends Control {
private var _Pull:Class;
public function Pull(){
_Pull = Pull__Pull;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Pull());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 105
//Pull__Pull (com.cipherprime.auditorium.views.item.items.Pull__Pull)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Pull__Pull extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 106
//Push (com.cipherprime.auditorium.views.item.items.Push)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Push extends Control {
private var _Push:Class;
public function Push(){
_Push = Push__Push;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Push());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 107
//Push__Push (com.cipherprime.auditorium.views.item.items.Push__Push)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Push__Push extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 108
//Rabbit (com.cipherprime.auditorium.views.item.items.Rabbit)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Rabbit extends Control {
private var _Rabbit:Class;
public function Rabbit(){
_Rabbit = Rabbit__Rabbit;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Rabbit());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 109
//Rabbit__Rabbit (com.cipherprime.auditorium.views.item.items.Rabbit__Rabbit)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Rabbit__Rabbit extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 110
//Repel (com.cipherprime.auditorium.views.item.items.Repel)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Repel extends Control {
private var _Repel:Class;
public function Repel(){
_Repel = Repel__Repel;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Repel());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 111
//Repel__Repel (com.cipherprime.auditorium.views.item.items.Repel__Repel)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Repel__Repel extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 112
//Rise (com.cipherprime.auditorium.views.item.items.Rise)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Rise extends Control {
private var _Rise:Class;
public function Rise(){
_Rise = Rise__Rise;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Rise());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 113
//Rise__Rise (com.cipherprime.auditorium.views.item.items.Rise__Rise)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Rise__Rise extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 114
//Snail (com.cipherprime.auditorium.views.item.items.Snail)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Snail extends Control {
private var _Snail:Class;
public function Snail(){
_Snail = Snail__Snail;
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Snail());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 115
//Snail__Snail (com.cipherprime.auditorium.views.item.items.Snail__Snail)
package com.cipherprime.auditorium.views.item.items {
import flash.display.*;
import mx.core.*;
public class Snail__Snail extends SpriteAsset {
public var led_4:DisplayObject;
public var led_5:DisplayObject;
public var led_6:DisplayObject;
public var led_7:DisplayObject;
public var led_9:DisplayObject;
public var led_8:DisplayObject;
public var numeric:DisplayObject;
public var led_30:DisplayObject;
public var fill:DisplayObject;
public var loader:DisplayObject;
public var led_23:DisplayObject;
public var pulse:DisplayObject;
public var led_28:DisplayObject;
public var wedge_05:DisplayObject;
public var led_21:DisplayObject;
public var act:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var dialog:DisplayObject;
public var led_10:DisplayObject;
public var led_11:DisplayObject;
public var led_12:DisplayObject;
public var led_13:DisplayObject;
public var led_14:DisplayObject;
public var title:DisplayObject;
public var led_16:DisplayObject;
public var led_18:DisplayObject;
public var led_19:DisplayObject;
public var led_15:DisplayObject;
public var led_17:DisplayObject;
public var blur:DisplayObject;
public var wedge_01:DisplayObject;
public var wedge_02:DisplayObject;
public var wedge_03:DisplayObject;
public var wedge_04:DisplayObject;
public var wedge_06:DisplayObject;
public var led_20:DisplayObject;
public var led_22:DisplayObject;
public var led_24:DisplayObject;
public var led_25:DisplayObject;
public var led_26:DisplayObject;
public var led_27:DisplayObject;
public var led_29:DisplayObject;
public var led_1:DisplayObject;
public var led_2:DisplayObject;
public var led_3:DisplayObject;
}
}//package com.cipherprime.auditorium.views.item.items
Section 116
//Spin (com.cipherprime.auditorium.views.item.items.Spin)
package com.cipherprime.auditorium.views.item.items {
import com.cipherprime.auditorium.views.item.type.types.*;
public class Spin extends Control {
private var _Spin:Class;
public function Spin(editorMode:Boolean){
super();
}
override public function Init(editorMode:Boolean=false):void{
super.Init(editorMode);
_createIcon(new _Spin());
}
}
}//package com.cipherprime.auditorium.views.item.items
Section 117
//Control (com.cipherprime.auditorium.views.item.type.types.Control)
package com.cipherprime.auditorium.views.item.type.types {
import flash.display.*;
import com.cipherprime.auditorium.views.item.type.*;
public class Control extends ItemType {
private var _container:MovieClip;
public function Control(){
super();
}
override public function Init(editorMode:Boolean=false):void{
_createIconContainer();
_createMoveable();
_createRadius();
isMoveable = true;
isSizeable = true;
isEnabled = true;
}
}
}//package com.cipherprime.auditorium.views.item.type.types
Section 118
//Goal (com.cipherprime.auditorium.views.item.type.types.Goal)
package com.cipherprime.auditorium.views.item.type.types {
import com.cipherprime.auditorium.views.item.type.*;
public class Goal extends ItemType {
public function Goal(){
super();
}
override public function Init(editorMode:Boolean=false):void{
if (editorMode == true){
_createMoveable();
isMoveable = true;
isSizeable = true;
isEnabled = true;
} else {
isMoveable = false;
isSizeable = false;
isEnabled = true;
};
}
}
}//package com.cipherprime.auditorium.views.item.type.types
Section 119
//Obstacle (com.cipherprime.auditorium.views.item.type.types.Obstacle)
package com.cipherprime.auditorium.views.item.type.types {
import com.cipherprime.auditorium.views.item.type.*;
public class Obstacle extends ItemType {
public function Obstacle(){
super();
}
override public function Init(editorMode:Boolean=false):void{
if (editorMode == true){
_createMoveable();
isMoveable = true;
isSizeable = false;
isEnabled = true;
} else {
isMoveable = false;
isSizeable = false;
isEnabled = true;
};
}
}
}//package com.cipherprime.auditorium.views.item.type.types
Section 120
//Player (com.cipherprime.auditorium.views.item.type.types.Player)
package com.cipherprime.auditorium.views.item.type.types {
import com.cipherprime.auditorium.views.item.type.*;
public class Player extends ItemType {
public function Player(){
super();
}
override public function Init(editorMode:Boolean=false):void{
if (editorMode == true){
_createDirection();
_createMoveable();
isMoveable = true;
isSizeable = true;
isEnabled = true;
} else {
isMoveable = false;
isSizeable = false;
isEnabled = false;
};
}
}
}//package com.cipherprime.auditorium.views.item.type.types
Section 121
//ItemType (com.cipherprime.auditorium.views.item.type.ItemType)
package com.cipherprime.auditorium.views.item.type {
import flash.display.*;
import com.cipherprime.auditorium.views.item.*;
import com.cipherprime.auditorium.views.item.element.elements.*;
public class ItemType extends Item {
private var _iconContainer:IconContainer;// = null
private var _moveable:Moveable;// = null
private var _icon:Icon;// = null
private var _directional:Directional;// = null
private var _radius:Radius;// = null
private var _highlight:Highlight;// = null
public function ItemType(){
super();
}
public function get IconContainerObject():IconContainer{
return (_iconContainer);
}
protected function _createRadius():void{
_radius = new Radius((this as Item));
_radius.create();
addElement(_radius, "Radius");
}
protected function _removeHighlight():void{
_highlight.remove();
_highlight = null;
removeElement("Highlight");
}
protected function _removeRadius():void{
_radius.remove();
_radius = null;
removeElement("Radius");
}
protected function _createHighlight(highlight:DisplayObjectContainer):void{
_highlight = new Highlight((this as Item));
_highlight.create(highlight);
addElement(_highlight, "Highlight");
}
protected function _removeDirection():void{
_directional.remove();
_directional = null;
removeElement("Directional");
}
public function get RadiusObject():Radius{
return (_radius);
}
protected function _createDirection():void{
_directional = new Directional((this as Item));
_directional.create();
addElement(_directional, "Directional");
}
protected function _removeIconContainer():void{
_iconContainer.remove();
_iconContainer = null;
removeElement("IconContainer");
}
protected function _createMoveable():void{
_moveable = new Moveable((this as Item));
_moveable.create();
addElement(_moveable, "Moveable");
}
public function get DirectionalObject():Directional{
return (_directional);
}
protected function _createIconContainer():void{
_iconContainer = new IconContainer((this as Item));
_iconContainer.create();
addElement(_iconContainer, "IconContainer");
}
protected function _removeMoveable():void{
_moveable.remove();
_moveable = null;
removeElement("Moveable");
}
protected function _createIcon(icon:DisplayObjectContainer):void{
_icon = new Icon((this as Item));
_icon.create(icon);
addElement(_icon, "Icon");
}
public function Init(editorMode:Boolean=false):void{
}
public function get IconObject():Icon{
return (_icon);
}
public function get MoveableObject():Moveable{
return (_moveable);
}
public function get HighlightObject():Highlight{
return (_highlight);
}
protected function _removeIcon():void{
_icon.remove();
_icon = null;
removeElement("Icon");
}
}
}//package com.cipherprime.auditorium.views.item.type
Section 122
//Item (com.cipherprime.auditorium.views.item.Item)
package com.cipherprime.auditorium.views.item {
import com.cipherprime.tricycle.*;
import flash.display.*;
import com.cipherprime.utils.*;
import com.cipherprime.auditorium.views.item.element.*;
public class Item {
private var _x:Number;// = 0
private var _paddingRadius:Number;// = 10
private var _minRadius:Number;// = 50
private var _isMoveable:Boolean;// = false
private var _maxRadius:Number;// = 260
private var _pressedElement:Element;// = null
private var _radius:Number;// = 0
private var _isEnabled:Boolean;// = true
private var _isSizeable:Boolean;// = false
private var _elements:Cipher;
private var _alpha:Number;// = 1
private var _vx:Number;// = 0
private var _vy:Number;// = 0
private var _scaleX:Number;// = 1
protected var _name:String;// = "Item"
private var _scaleY:Number;// = 1
private var _y:Number;// = 0
public function Item(){
super();
_elements = new Cipher();
radius = minRadius;
}
public function get pressedElement():Element{
return (_pressedElement);
}
public function set vy(num:Number):void{
_vy = num;
_elements.setAll("vy", _vy);
}
public function remove():void{
var element:Object;
for each (element in _elements.list) {
if (("isEnabled" in element)){
element.isEnabled = false;
};
if (("remove" in element)){
element.remove();
};
_elements.kill(element);
};
}
public function get stage():Stage{
return (Tricycle.getInstance().stage);
}
public function get y():Number{
return (_y);
}
public function get radius():Number{
return (_radius);
}
public function set vx(num:Number):void{
_vx = num;
_elements.setAll("vx", _vx);
}
public function get maxRadius():Number{
return (_maxRadius);
}
public function get name():String{
return (_name);
}
public function addElement(element:Object, name:String):void{
_elements.add(element);
}
public function set scaleX(num:Number):void{
_scaleX = num;
_elements.setAll("scaleX", _scaleX);
}
public function set scaleY(num:Number):void{
_scaleY = num;
_elements.setAll("scaleY", _scaleY);
}
public function set radius(num:Number):void{
if (num >= _minRadius){
if (num >= _maxRadius){
_radius = _maxRadius;
} else {
_radius = num;
};
} else {
_radius = _minRadius;
};
_elements.setAll("radius", _radius);
}
public function get isSizeable():Boolean{
return (_isSizeable);
}
public function get minRadius():Number{
return (_minRadius);
}
public function get root():DisplayObject{
return (Tricycle.getInstance().root);
}
public function get isEnabled():Boolean{
return (_isEnabled);
}
public function get mouseDistance():Number{
var element:Object;
for each (element in _elements.list) {
if ((element is Element)){
return (element.mouseDistance);
};
};
return (0);
}
public function set alpha(num:Number):void{
_alpha = num;
_elements.setAll("alpha", _alpha);
}
public function get vy():Number{
return (_vy);
}
public function get vx():Number{
return (_vx);
}
public function set isSizeable(state:Boolean):void{
_isSizeable = state;
_elements.setAll("isSizeable", _isSizeable);
}
public function get scaleX():Number{
return (_scaleX);
}
public function get scaleY():Number{
return (_scaleY);
}
public function removeElement(element:Object):void{
if (typeof(element) == "number"){
_elements.killAt((element as uint));
} else {
_elements.kill(element);
};
}
public function get alpha():Number{
return (_alpha);
}
public function set isMoveable(state:Boolean):void{
_isMoveable = state;
_elements.setAll("isMoveable", _isMoveable);
}
public function set isEnabled(state:Boolean):void{
_isEnabled = state;
_elements.setAll("isEnabled", _isEnabled);
}
public function set y(num:Number):void{
_y = num;
_elements.setAll("y", _y);
}
public function set x(num:Number):void{
_x = num;
_elements.setAll("x", _x);
}
public function get x():Number{
return (_x);
}
public function set pressedElement(e:Element):void{
_pressedElement = e;
}
public function get isMoveable():Boolean{
return (_isMoveable);
}
public function get detectionRadius():Number{
return ((_radius + _paddingRadius));
}
}
}//package com.cipherprime.auditorium.views.item
Section 123
//ActView (com.cipherprime.auditorium.views.ActView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import com.gs.*;
import flash.filters.*;
public class ActView extends View {
private var _loaderBar:LoaderBar;
private var _levelIndicator:DisplayObjectContainer;
private var _glow:GlowFilter;
private var _ActDisplay:Class;
private var _LevelIndicator:Class;
private var _actDisplay:MovieClip;
public function ActView(m:Model, c:Controller){
_ActDisplay = ActView__ActDisplay;
_LevelIndicator = ActView__LevelIndicator;
_glow = new GlowFilter(0xFFFFFF, 0.4, 5, 5);
super(m, c);
_init();
}
public function updateSongLoadProgress(percent:Number):void{
_loaderBar.percentLoaded = percent;
}
public function event_ActStarted():void{
TweenLite.to(_levelIndicator, 1, {alpha:1});
}
private function _init():void{
_actDisplay = new _ActDisplay();
_actDisplay.x = (stage.stageWidth / 2);
_actDisplay.y = (stage.stageHeight / 2);
_actDisplay.stop();
_levelIndicator = new _LevelIndicator();
_levelIndicator.x = stage.stageWidth;
_levelIndicator.y = stage.stageHeight;
_levelIndicator.alpha = 0;
_levelIndicator["title"]["title"].text = "";
_levelIndicator["numeric"]["numeric"].text = "";
tricycle.layers.wallpaper.addChild(_levelIndicator);
_loaderBar = new LoaderBar(_levelIndicator["loader"]);
}
public function event_EndGame():void{
event_ActLoaded();
}
private function _frameListener(e:Event=null):void{
if (_actDisplay.currentLabel == "eventMovieComplete"){
stage.removeChild(_actDisplay);
_actDisplay.removeEventListener(Event.ENTER_FRAME, _frameListener);
_actDisplay.stop();
model.play();
};
}
public function get levelIndicator():MovieClip{
return ((_levelIndicator as MovieClip));
}
public function updateLevelIndicator(level:Number):void{
_levelIndicator["title"]["title"].text = model.currentAct.title.toUpperCase();
_levelIndicator["loader"].width = _levelIndicator["title"]["title"].textWidth;
_levelIndicator["numeric"]["numeric"].text = (((model.currentActNumber + 1) + " : ") + (level + 1));
}
public function event_ActLoaded():void{
TweenLite.to(_levelIndicator, 1, {alpha:0});
}
public function updateSongLoadProgressColor(color:uint):void{
TweenLite.to(_levelIndicator["loader"]["progress"], 0.5, {tint:color});
}
public function event_ActIntro():void{
if (tricycle.config.intro){
_actDisplay.addEventListener(Event.ENTER_FRAME, _frameListener);
_actDisplay["act"].act.text = ("ACT " + (model.currentActNumber + 1));
_actDisplay["title"].title.text = model.currentAct.title.toUpperCase();
stage.addChild(_actDisplay);
_actDisplay.play();
} else {
model.play();
};
}
}
}//package com.cipherprime.auditorium.views
Section 124
//ActView__ActDisplay (com.cipherprime.auditorium.views.ActView__ActDisplay)
package com.cipherprime.auditorium.views {
import flash.display.*;
import mx.core.*;
public class ActView__ActDisplay extends MovieClipAsset {
public var dialog:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var act:DisplayObject;
public var loader:DisplayObject;
public var numeric:DisplayObject;
public var title:DisplayObject;
}
}//package com.cipherprime.auditorium.views
Section 125
//ActView__LevelIndicator (com.cipherprime.auditorium.views.ActView__LevelIndicator)
package com.cipherprime.auditorium.views {
import flash.display.*;
import mx.core.*;
public class ActView__LevelIndicator extends SpriteAsset {
public var dialog:DisplayObject;
public var progress:DisplayObject;
public var background:DisplayObject;
public var loader:DisplayObject;
public var numeric:DisplayObject;
public var title:DisplayObject;
}
}//package com.cipherprime.auditorium.views
Section 126
//ContextMenuView (com.cipherprime.auditorium.views.ContextMenuView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import com.cipherprime.tricycle.view.*;
import flash.net.*;
import flash.ui.*;
public class ContextMenuView extends View {
private var _contextMenu:ContextMenu;
public function ContextMenuView(m:Model, c:Controller){
_contextMenu = new ContextMenu();
super(m, c);
_contextMenu.hideBuiltInItems();
var tricycleMessage:ContextMenuItem = new ContextMenuItem("Powered by Tricycle™");
var highQualityMessage:ContextMenuItem = new ContextMenuItem("Set High Quality", true);
var mediumQualityMessage:ContextMenuItem = new ContextMenuItem("Set Medium Quality");
var lowQualityMessage:ContextMenuItem = new ContextMenuItem("Set Low Quality");
var copywriteMessage:ContextMenuItem = new ContextMenuItem("Auditorium © 2008 Cipher Prime, LLC", true);
_contextMenu.customItems.push(tricycleMessage, highQualityMessage, mediumQualityMessage, lowQualityMessage, copywriteMessage);
tricycle.contextMenu = _contextMenu;
tricycleMessage.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, _goTricycle);
highQualityMessage.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, _setHighQuality);
mediumQualityMessage.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, _setMediumQuality);
lowQualityMessage.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, _setLowQuality);
copywriteMessage.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, _goCipher);
}
private function _goCipher(e:ContextMenuEvent=null):void{
var cipherURL:URLRequest = new URLRequest("http://www.cipherprime.com/");
navigateToURL(cipherURL);
}
private function _setLowQuality(e:ContextMenuEvent=null):void{
tricycle.flowView.quality = FlowView.LOW_QUALITY;
}
private function _setMediumQuality(e:ContextMenuEvent=null):void{
tricycle.flowView.quality = FlowView.MEDIUM_QUALITY;
}
private function _goTricycle(e:ContextMenuEvent=null):void{
}
private function _setHighQuality(e:ContextMenuEvent=null):void{
tricycle.flowView.quality = FlowView.HIGH_QUALITY;
}
}
}//package com.cipherprime.auditorium.views
Section 127
//ContinueView (com.cipherprime.auditorium.views.ContinueView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.gs.*;
import flash.net.*;
import flash.text.*;
public class ContinueView extends View {
private var _sharedObject:SharedObject;
private var _clip:MovieClip;
private var _continueLoader:MovieHelper;
public function ContinueView(m:Model, c:Controller){
super(m, c);
_sharedObject = SharedObject.getLocal("lastLevel");
}
private function _focus(e:MouseEvent=null):void{
TweenLite.to(e.currentTarget, 0.5, {frame:30});
}
public function restartGame(e:MouseEvent=null):void{
_removeListeners();
TweenLite.to(_clip, 1, {alpha:0, onComplete:_restart});
}
private function _continueLoaded():void{
_clip = (_continueLoader.movie as MovieClip);
var actLevelString:String = (((_sharedObject.data.act + 1) + ":") + (_sharedObject.data.level + 1));
_clip["output"]["output"].htmlText = "continue from ";
_clip["output"]["output"].htmlText = (_clip["output"]["output"].htmlText + actLevelString);
var bigTf:TextFormat = _clip["output"]["output"].getTextFormat();
bigTf.size = "120";
_clip["output"]["output"].setTextFormat(bigTf, (_clip["output"]["output"].text.length - actLevelString.length), _clip["output"]["output"].text.length);
_clip["selection"]["yes"].mouseEnabled = true;
_clip["selection"]["yes"].buttonMode = true;
_clip["selection"]["no"].mouseEnabled = true;
_clip["selection"]["no"].buttonMode = true;
_addListeners();
stage.addChild(_clip);
_clip.play();
}
private function _resume():void{
if (((_clip) && (stage.contains(_clip)))){
stage.removeChild(_clip);
};
model.resumeGame();
}
private function _blur(e:MouseEvent=null):void{
TweenLite.to(e.currentTarget, 0.5, {frame:0});
}
private function _restart():void{
if (((_clip) && (stage.contains(_clip)))){
stage.removeChild(_clip);
};
model.startGame();
}
private function _removeListeners():void{
_clip["selection"]["yes"].removeEventListener(MouseEvent.MOUSE_OVER, _focus);
_clip["selection"]["yes"].removeEventListener(MouseEvent.MOUSE_OUT, _blur);
_clip["selection"]["yes"].removeEventListener(MouseEvent.CLICK, resumeGame);
_clip["selection"]["no"].removeEventListener(MouseEvent.MOUSE_OVER, _focus);
_clip["selection"]["no"].removeEventListener(MouseEvent.MOUSE_OUT, _blur);
_clip["selection"]["no"].removeEventListener(MouseEvent.CLICK, restartGame);
}
private function _addListeners():void{
_clip["selection"]["yes"].addEventListener(MouseEvent.MOUSE_OVER, _focus);
_clip["selection"]["yes"].addEventListener(MouseEvent.MOUSE_OUT, _blur);
_clip["selection"]["yes"].addEventListener(MouseEvent.CLICK, resumeGame);
_clip["selection"]["no"].addEventListener(MouseEvent.MOUSE_OVER, _focus);
_clip["selection"]["no"].addEventListener(MouseEvent.MOUSE_OUT, _blur);
_clip["selection"]["no"].addEventListener(MouseEvent.CLICK, restartGame);
}
public function event_ContinueGame():void{
if (((tricycle.config.resume) && ((((_sharedObject.data.level > 0)) || ((_sharedObject.data.act > 0)))))){
_continueLoader = new MovieHelper("lib/swf/continue.swf");
_continueLoader.onLoad = _continueLoaded;
_continueLoader.load();
} else {
_restart();
};
}
public function resumeGame(e:MouseEvent=null):void{
_removeListeners();
TweenLite.to(_clip, 1, {alpha:0, onComplete:_resume});
}
}
}//package com.cipherprime.auditorium.views
Section 128
//EditorView (com.cipherprime.auditorium.views.EditorView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import flash.utils.*;
import com.cipherprime.utils.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.cipherprime.auditorium.models.editor.*;
public class EditorView extends View {
private var _statusTimeout:Number;// = 3000
private var _newColorsArray:Array;
public var myMenu:Menu;
private var _songListing:XmlHelper;
public var menuHolder:Sprite;
private var _deleteLevelProcess:XmlHelper;
public var currentLevelName:String;
public var currentLevelSaved:Boolean;// = true
private var _levelListing:XmlHelper;
public static const COLOR_BLACK:uint = 0;
public static const COLOR_GREEN:uint = 11206570;
public static const COLOR_MAGENTA:uint = 16755455;
public static const COLOR_YELLOW:uint = 16777130;
public static const COLOR_WHITE:uint = 0xFFFFFF;
public static const COLOR_RED:uint = 16755370;
public static const COLOR_BLUE:uint = 11184895;
public static const COLOR_CYAN:uint = 11206655;
public function EditorView(m:Model, c:Controller){
super(m, c);
}
private function _newColorModifier(numColors:Number):void{
_newColorsArray = new Array();
_selectColorModifierMenu(1, numColors);
}
private function _onGetLevelLoad(e:Event=null):void{
var levelLookup:Dictionary;
var lXml:XML;
var levelMenu:Menu;
var levelFunction:Function;
var levelName:String;
var menuOption:MenuOption;
var e = e;
var levelOptionArray:Array = new Array();
levelLookup = new Dictionary();
for each (lXml in _levelListing.xml.level) {
levelFunction = function ():void{
var url:String = levelLookup[arguments.callee].url;
currentLevelName = levelLookup[arguments.callee].name;
_newLevel();
tricycle.levelModel.newChild({url:url});
status(("Loaded " + url), 2000);
};
levelName = lXml;
levelName = levelName.substr(0, (levelName.length - 4));
levelLookup[levelFunction] = {url:lXml.@url, name:levelName};
menuOption = new MenuOption(levelName, levelFunction);
levelOptionArray.push(menuOption);
};
status("");
levelMenu = new Menu("Available levels", levelOptionArray);
menuHolder.addChild(levelMenu);
levelMenu.start();
}
public function newLevel():void{
var confirmMenu:Menu;
if (tricycle.flowModel.objects.length){
confirmMenu = new Menu("Are you sure you want to lose your current changes?", new MenuOption("Yes", _newLevel), new MenuOption("No", function ():void{
}));
menuHolder.addChild(confirmMenu);
confirmMenu.start();
} else {
_newLevel();
};
}
public function saveLevel():void{
if (tricycle.flowModel.objects.length){
model.request("Enter level name: ", _saveLevel, currentLevelName);
currentLevelSaved = true;
} else {
status("Level is empty.", _statusTimeout);
};
}
private function _saveLevel(name:String):void{
tricycle.xmlModel.saveXml(name);
}
public function status(text:String, delay:Number=0):void{
model.status(text, delay);
}
private function _selectColorModifierOption(optionNumber:Number, color:uint):void{
_newColorsArray[(optionNumber - 1)] = color;
}
public function deleteLevel():void{
var confirmMenu:Menu;
if (currentLevelName){
confirmMenu = new Menu((("Are you sure you want to delete \"" + currentLevelName) + "\"?"), new MenuOption("Yes", _deleteLevel), new MenuOption("No", function ():void{
}));
menuHolder.addChild(confirmMenu);
confirmMenu.start();
} else {
newLevel();
};
}
private function _deleteLevel():void{
_deleteLevelProcess.request = {level:currentLevelName};
_deleteLevelProcess.onLoad = function ():void{
status((("Deleted \"" + currentLevelName) + "\""), 2000);
currentLevelName = "";
};
_deleteLevelProcess.load();
}
public function _newLevel():void{
controller.resetLevel();
currentLevelSaved = true;
}
public function getLevels():void{
var confirmMenu:Menu;
if (!currentLevelSaved){
confirmMenu = new Menu("There are unsaved changes", new MenuOption("Save now", saveLevel), new MenuOption("Discard changes", function ():void{
currentLevelSaved = true;
getLevels();
}));
menuHolder.addChild(confirmMenu);
confirmMenu.start();
} else {
_levelListing.onLoad = _onGetLevelLoad;
_levelListing.onProgress = function ():void{
status((("Retrieving levels..." + Math.floor((_levelListing.percentLoaded * 100))) + "%"));
};
_levelListing.onIoError = function ():void{
status("Error retrieving levels", _statusTimeout);
};
_levelListing.load();
status("Connecting to server...");
};
}
public function setDemoMode(mode:Boolean):void{
tricycle.levelModel.demoMode = mode;
status(("Demo mode: " + mode), _statusTimeout);
}
public function event_StartEditor():void{
_songListing = new XmlHelper((tricycle.config.urls.editor + "getsong.php"));
_deleteLevelProcess = new XmlHelper((tricycle.config.urls.editor + "deletelevel.php"));
_levelListing = new XmlHelper((tricycle.config.urls.editor + "getlevel.php"));
_levelListing.noCache = true;
menuHolder = new Sprite();
tricycle.layers.hud.addChild(menuHolder);
myMenu = new Menu("Select your option", new Menu("Create new item", new MenuOption("Create new stream", function ():void{
DefaultSettings.stream();
}), new Menu("Create new control", new MenuOption("Attract", function ():void{
DefaultSettings.warp("AttractModifier");
status("Added Attract", _statusTimeout);
}), new MenuOption("Repel", function ():void{
DefaultSettings.warp("RepelModifier");
status("Added Repel", _statusTimeout);
}), new MenuOption("Deflect", function ():void{
DefaultSettings.warp("DeflectModifier");
status("Added Deflect", _statusTimeout);
}), new MenuOption("Rise", function ():void{
DefaultSettings.warp("RiseModifier");
status("Added Rise", _statusTimeout);
}), new MenuOption("Fall", function ():void{
DefaultSettings.warp("FallModifier");
status("Added Fall", _statusTimeout);
}), new MenuOption("Push", function ():void{
DefaultSettings.warp("PushModifier");
status("Added Push", _statusTimeout);
}), new MenuOption("Pull", function ():void{
DefaultSettings.warp("PullModifier");
status("Added Pull", _statusTimeout);
}), new MenuOption("Rabbit", function ():void{
DefaultSettings.warp("RabbitModifier");
status("Added Rabbit", _statusTimeout);
}), new MenuOption("Snail", function ():void{
DefaultSettings.warp("SnailModifier");
status("Added Snail", _statusTimeout);
})), new Menu("Create new obstacle", new Menu("Color", new MenuOption("Red", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_RED);
status("Added Color Modifier", _statusTimeout);
}), new MenuOption("Green", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_GREEN);
status("Added Color Modifier", _statusTimeout);
}), new MenuOption("Blue", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_BLUE);
status("Added Color Modifier", _statusTimeout);
}), new MenuOption("Cyan", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_CYAN);
status("Added Color Modifier", _statusTimeout);
}), new MenuOption("Magenta", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_MAGENTA);
status("Added Color Modifier", _statusTimeout);
}), new MenuOption("Yellow", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_YELLOW);
status("Added Color Modifier", _statusTimeout);
}), new MenuOption("White", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_WHITE);
status("Added Color Modifier", _statusTimeout);
}), new MenuOption("Black", function ():void{
DefaultSettings.colorObject("ColorModifier", COLOR_BLACK);
status("Added Color Modifier", _statusTimeout);
})), new MenuOption("Black Hole", function ():void{
DefaultSettings.warp("BlackHoleModifier");
status("Added Black Hole", _statusTimeout);
}), new MenuOption("Portal", function ():void{
DefaultSettings.warp("PortalModifier");
status("Added Portal", _statusTimeout);
}), new MenuOption("Divide", function ():void{
DefaultSettings.warp("DivideModifier");
status("Added Divide", _statusTimeout);
}), new MenuOption("Ion Storm", function ():void{
DefaultSettings.warp("IonStormModifier");
status("Added Ion Storm", _statusTimeout);
})), new Menu("Create new goal", new MenuOption("One color", function ():void{
_newColorModifier(1);
}), new MenuOption("Two colors", function ():void{
_newColorModifier(2);
}), new MenuOption("Three colors", function ():void{
_newColorModifier(3);
}))), new MenuOption("Remove item", removeItem), new Menu("Level tools", new MenuOption("New level", newLevel), new MenuOption("Save level", saveLevel), new MenuOption("Load level", getLevels), new Menu("Set demo mode", new MenuOption("On", function ():void{
setDemoMode(true);
}), new MenuOption("Off", function ():void{
setDemoMode(false);
})), new MenuOption("Delete current level", deleteLevel)));
tricycle.stage.addEventListener(KeyboardEvent.KEY_UP, menuKeyHandler);
}
public function removeItem():void{
tricycle.flowModel.startRemoveMode();
model.status("Select the item you would like to remove; click the stage to cancel.");
}
public function menuKeyHandler(e:KeyboardEvent):void{
switch (e.keyCode){
case 192:
if (menuHolder.numChildren == 0){
menuHolder.addChild(myMenu);
myMenu.start();
};
break;
};
}
private function _selectColorModifierMenu(optionNumber:Number, total:Number):void{
var adjective:String;
var nextFunction:Function;
var optionNumber = optionNumber;
var total = total;
switch (optionNumber){
case 1:
adjective = "first";
break;
case 2:
adjective = "second";
break;
case 3:
adjective = "third";
break;
};
if (optionNumber == total){
nextFunction = function ():void{
DefaultSettings.container("ContainerModifier", _newColorsArray);
};
} else {
nextFunction = function ():void{
_selectColorModifierMenu((optionNumber + 1), total);
};
};
var colorMenu:Menu = new Menu((("Choose " + adjective) + " color:"), new MenuOption("Red", function ():void{
_selectColorModifierOption(optionNumber, COLOR_RED);
nextFunction();
}), new MenuOption("Green", function ():void{
_selectColorModifierOption(optionNumber, COLOR_GREEN);
nextFunction();
}), new MenuOption("Blue", function ():void{
_selectColorModifierOption(optionNumber, COLOR_BLUE);
nextFunction();
}), new MenuOption("Cyan", function ():void{
_selectColorModifierOption(optionNumber, COLOR_CYAN);
nextFunction();
}), new MenuOption("Magenta", function ():void{
_selectColorModifierOption(optionNumber, COLOR_MAGENTA);
nextFunction();
}), new MenuOption("Yellow", function ():void{
_selectColorModifierOption(optionNumber, COLOR_YELLOW);
nextFunction();
}), new MenuOption("White", function ():void{
_selectColorModifierOption(optionNumber, COLOR_WHITE);
nextFunction();
}), new MenuOption("Black", function ():void{
_selectColorModifierOption(optionNumber, COLOR_BLACK);
nextFunction();
}));
menuHolder.addChild(colorMenu);
colorMenu.start();
}
}
}//package com.cipherprime.auditorium.views
Section 129
//EndView (com.cipherprime.auditorium.views.EndView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import com.cipherprime.tricycle.utils.helpers.*;
public class EndView extends View {
private var _ending:MovieClip;
private var _endingLoader:MovieHelper;
public function EndView(m:Model, c:Controller){
super(m, c);
}
private function _stopClip(e:Event=null):void{
stage.frameRate = 30;
_ending.gotoAndStop(1);
}
public function event_EndGame():void{
_endingLoader = new MovieHelper("lib/swf/ending.swf");
_endingLoader.onLoad = _endingLoaded;
_endingLoader.load();
}
private function _playClip(e:Event=null):void{
stage.frameRate = 12;
_ending.play();
}
private function _endingLoaded():void{
_ending = (_endingLoader.movie as MovieClip);
_ending.stop();
_ending.addEventListener(Event.ADDED_TO_STAGE, _playClip);
_ending.addEventListener(Event.REMOVED_FROM_STAGE, _stopClip);
_ending.mouseEnabled = false;
_ending.mouseChildren = false;
_ending.x = ((stage.stageWidth - 720) / 2);
_ending.y = ((stage.stageHeight - 480) / 2);
stage.addChild(_ending);
}
}
}//package com.cipherprime.auditorium.views
Section 130
//FlowView (com.cipherprime.auditorium.views.FlowView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.tricycle.view.*;
import flash.geom.*;
import com.gs.*;
import com.cipherprime.euclid.*;
import flash.net.*;
import flash.filters.*;
public class FlowView extends View {
private var _quality:String;
private var _offset:Point;
private var _view:Sprite;
private var _blur:BlurFilter;
private var _fadeColorTransform:ColorTransform;
private var _trail:Shape;
public var _sharedObject:SharedObject;
private var _blurRenderer:Bitmap;
private var _trailIntensity:Number;// = 1
private var _trailThickness:Number;// = 0
private var _contrastFilter:ColorMatrixFilter;
private var _fadeRenderer:Bitmap;
public static const HIGH_QUALITY:String = "HighQuality";
public static const LOW_QUALITY:String = "LowQuality";
public static const MEDIUM_QUALITY:String = "MediumQuality";
public function FlowView(m:Model, c:Controller){
_sharedObject = SharedObject.getLocal("gameSettings");
super(m, c);
_init();
}
public function addToFadeRenderer(item:DisplayObject):void{
_fadeRenderer.bitmapData.draw(item);
}
public function set quality(value:String):void{
_quality = value;
var _local2 = this;
_local2[("_set" + value)]();
}
public function set fading(val:Boolean):void{
if (val){
TweenLite.to(_blur, 0.5, {blurX:20, blurY:20});
} else {
TweenLite.to(_blur, 0.5, {blurX:4, blurY:4});
};
}
private function _fadeEffect():void{
_fadeRenderer.bitmapData.colorTransform(_fadeRenderer.bitmapData.rect, _fadeColorTransform);
}
private function _setLowQuality():void{
_blurRenderer.visible = false;
_fadeRenderer.visible = true;
_view.filters = [];
_fadeColorTransform = new ColorTransform(1, 1, 1, 0.9);
_sharedObject.data.gameQuality = LOW_QUALITY;
}
private function _setHighQuality():void{
_blurRenderer.visible = true;
_fadeRenderer.visible = true;
_view.filters = [_contrastFilter];
_fadeColorTransform = new ColorTransform(1.2, 1.2, 1.2, 0.8);
_sharedObject.data.gameQuality = HIGH_QUALITY;
}
public function addToBlurRenderer(item:DisplayObject):void{
_blurRenderer.bitmapData.draw(item);
}
private function _setMediumQuality():void{
_blurRenderer.visible = true;
_fadeRenderer.visible = false;
_view.filters = [_contrastFilter];
_fadeColorTransform = new ColorTransform(1.2, 1.2, 1.2, 0.8);
_sharedObject.data.gameQuality = MEDIUM_QUALITY;
}
public function event_EndGame():void{
stage.removeEventListener(Event.ENTER_FRAME, updateFrame);
TweenLite.to(_view, 0.5, {alpha:0, onComplete:function ():void{
tricycle.layers.middleground.removeChild(_view);
}});
}
public function event_StartEditor():void{
event_StartGame();
}
public function updateFrame(e:Event=null):void{
var s:Stream;
var p:Particle;
if (_blurRenderer.visible){
_blurRenderer.bitmapData.lock();
};
if (_fadeRenderer.visible){
_fadeRenderer.bitmapData.lock();
};
for each (s in model.streams.list) {
for each (p in s.particles.list) {
_drawTrail(p);
};
};
if (_blurRenderer.visible){
_blurEffect();
_blurRenderer.bitmapData.unlock();
};
if (_fadeRenderer.visible){
_fadeEffect();
_fadeRenderer.bitmapData.unlock();
};
}
private function _init():void{
_blurRenderer = new Bitmap(new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xFFFFFF));
_fadeRenderer = new Bitmap(new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xFFFFFF));
_trail = new Shape();
_fadeColorTransform = new ColorTransform(1.2, 1.2, 1.2, 0.8);
_view = new Sprite();
_offset = new Point(0, 0);
_blur = new BlurFilter(4, 4, 1);
_fadeRenderer.alpha = 0.5;
_view.addChild(_blurRenderer);
_view.addChild(_fadeRenderer);
var contrast:Number = 2;
var contrastArray:Array = Calc.adjustBrightnessContrast(contrast, (-100 * contrast));
_contrastFilter = new ColorMatrixFilter(contrastArray);
_view.filters = [_contrastFilter];
}
public function event_StartGame():void{
tricycle.layers.middleground.addChild(_view);
_view.alpha = 0;
TweenLite.to(_view, 0.5, {alpha:1});
stage.addEventListener(Event.ENTER_FRAME, updateFrame);
}
private function _blurEffect():void{
_blurRenderer.bitmapData.applyFilter(_blurRenderer.bitmapData, _blurRenderer.bitmapData.rect, _offset, _blur);
}
private function _drawTrail(p:Particle):void{
_trail.graphics.clear();
_trail.graphics.lineStyle(_trailThickness, p.color, p.alpha);
_trail.graphics.moveTo(p.lx, p.ly);
_trail.graphics.lineTo(p.x, p.y);
if (_blurRenderer.visible){
_blurRenderer.bitmapData.draw(_trail);
};
if (_fadeRenderer.visible){
_fadeRenderer.bitmapData.draw(_trail);
};
}
public function get quality():String{
return (_quality);
}
}
}//package com.cipherprime.auditorium.views
Section 131
//FPSView (com.cipherprime.auditorium.views.FPSView)
package com.cipherprime.auditorium.views {
import com.cipherprime.tricycle.*;
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import flash.utils.*;
import flash.media.*;
import com.oaxoa.*;
public class FPSView extends View {
public var s:Shape;
public function FPSView(m:Model, c:Controller){
super(m, c);
s = new Shape();
s.scaleY = 0.5;
s.scaleX = 0.5;
s.x = (stage.stageWidth - 120);
}
public function computeSpectrum(e:Event):void{
var bytes:ByteArray = new ByteArray();
var PLOT_HEIGHT = 200;
var CHANNEL_LENGTH = 0x0100;
SoundMixer.computeSpectrum(bytes, false, 0);
var g:Graphics = s.graphics;
g.clear();
g.lineStyle(0, 0x6600CC);
g.beginFill(0x6600CC);
g.moveTo(0, PLOT_HEIGHT);
var n:Number = 0;
var i:int;
while (i < CHANNEL_LENGTH) {
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo((i * 2), (PLOT_HEIGHT - n));
i++;
};
g.lineTo((CHANNEL_LENGTH * 2), PLOT_HEIGHT);
g.endFill();
g.lineStyle(0, 0xCC0066);
g.beginFill(0xCC0066, 0.5);
g.moveTo((CHANNEL_LENGTH * 2), PLOT_HEIGHT);
i = CHANNEL_LENGTH;
while (i > 0) {
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo((i * 2), (PLOT_HEIGHT - n));
i--;
};
g.lineTo(0, PLOT_HEIGHT);
g.endFill();
}
public function event_StartGame():void{
var frameRateMeter:FrameRater = new FrameRater(0xDCDCDC);
frameRateMeter.x = (this.stage.stageWidth - frameRateMeter.width);
tricycle.layers.foreground.addChild(frameRateMeter);
Tricycle.getInstance().layers.foreground.addChild(s);
}
}
}//package com.cipherprime.auditorium.views
Section 132
//FullscreenView (com.cipherprime.auditorium.views.FullscreenView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import flash.geom.*;
public class FullscreenView extends View {
private var _TopDialog:Class;
private var _fullscreenEnabled:Boolean;// = false
private var _fullscreenClip:DisplayObjectContainer;
public function FullscreenView(m:Model, c:Controller){
_TopDialog = FullscreenView__TopDialog;
super(m, c);
if (("fullScreenSourceRect" in stage)){
_fullscreenEnabled = true;
stage.fullScreenSourceRect = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
};
}
private function _keyHandler(e:KeyboardEvent):void{
switch (e.keyCode){
case 70:
if (stage.displayState == StageDisplayState.FULL_SCREEN){
goNormal();
} else {
goFullscreen();
};
break;
case 27:
break;
};
}
public function goFullscreen():void{
if (((tricycle.config.fullscreen) && (_fullscreenEnabled))){
stage.displayState = StageDisplayState.FULL_SCREEN;
};
}
public function goNormal():void{
stage.displayState = StageDisplayState.NORMAL;
}
private function _onFullscreen(e:FullScreenEvent):void{
if (e.fullScreen){
if (tricycle.layers.wallpaper.contains(_fullscreenClip)){
tricycle.layers.wallpaper.removeChild(_fullscreenClip);
};
} else {
tricycle.layers.wallpaper.addChild(_fullscreenClip);
};
}
public function event_StartGame():void{
if (_fullscreenEnabled){
_fullscreenClip = new _TopDialog();
_fullscreenClip["dialog"].text = "Press the 'f' key to enter fullscreen mode.";
_fullscreenClip.x = stage.stageWidth;
_fullscreenClip.y = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, _keyHandler);
stage.addEventListener(FullScreenEvent.FULL_SCREEN, _onFullscreen);
};
}
}
}//package com.cipherprime.auditorium.views
Section 133
//FullscreenView__TopDialog (com.cipherprime.auditorium.views.FullscreenView__TopDialog)
package com.cipherprime.auditorium.views {
import flash.display.*;
import mx.core.*;
public class FullscreenView__TopDialog extends SpriteAsset {
public var dialog:DisplayObject;
}
}//package com.cipherprime.auditorium.views
Section 134
//IntroView (com.cipherprime.auditorium.views.IntroView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import com.cipherprime.tricycle.utils.helpers.*;
import flash.media.*;
public class IntroView extends View {
private var _introLoader:MovieHelper;
private var _intro:MovieClip;
public function IntroView(m:Model, c:Controller){
super(m, c);
_intro = new MovieClip();
}
public function event_LoadIntro():void{
if (tricycle.config.intro){
_introLoader = new MovieHelper("lib/swf/intro.swf");
_introLoader.onLoad = _introLoaded;
_introLoader.load();
} else {
_start();
};
}
private function _introLoaded():void{
_intro = (_introLoader.movie as MovieClip);
_intro.stop();
_intro.addEventListener(Event.ADDED_TO_STAGE, _playClip);
_intro.addEventListener(Event.REMOVED_FROM_STAGE, _stopClip);
_intro.mouseEnabled = false;
_intro.mouseChildren = false;
_intro.x = ((stage.stageWidth - 720) / 2);
_intro.y = ((stage.stageHeight - 480) / 2);
model.startIntro();
}
private function _playClip(e:Event=null):void{
stage.frameRate = 12;
_intro.play();
}
public function event_EndGame():void{
}
private function _stopClip(e:Event=null):void{
stage.frameRate = 30;
_intro.gotoAndStop(1);
SoundMixer.stopAll();
}
private function _start(e:MouseEvent=null):void{
stage.removeEventListener(MouseEvent.CLICK, _start);
if (tricycle.layers.hud.contains(_intro)){
tricycle.layers.hud.removeChild(_intro);
};
tricycle.fullscreenView.goFullscreen();
model.continueGame();
}
public function event_StartIntro():void{
stage.addEventListener(MouseEvent.CLICK, _start);
tricycle.layers.hud.addChild(_intro);
}
}
}//package com.cipherprime.auditorium.views
Section 135
//ItemsView (com.cipherprime.auditorium.views.ItemsView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.tricycle.view.*;
import com.cipherprime.auditorium.views.item.*;
import flash.utils.*;
import com.cipherprime.utils.*;
import com.cipherprime.auditorium.*;
import com.cipherprime.auditorium.views.item.type.*;
import com.cipherprime.auditorium.views.item.type.types.*;
import com.cipherprime.auditorium.views.item.items.*;
public class ItemsView extends View {
private var _goals:Cipher;
private var _obstacles:Cipher;
private var _timer:Timer;
private var _usePlayers:Boolean;// = false
private var _editorMode:Boolean;
private var _controls:Cipher;
private var _useGoals:Boolean;// = false
private var _useObstacles:Boolean;// = false
private var _useControls:Boolean;// = false
private var _interval:Number;// = 100
private var _currentTargets:Cipher;
private var _currentTarget:Item;
private var _players:Cipher;
public function ItemsView(m:Model, c:Controller){
super(m, c);
}
private function _itemOn(current_item:Item):void{
var item:ItemType = (current_item as ItemType);
item.isEnabled = true;
}
private function _updateObstacles():void{
if (_useObstacles == true){
_currentTargets.concat(_findTargets(_obstacles));
};
}
public function updateContainer(item:Item, levels:Array):void{
var container:Container = (item as Container);
container.levels = levels;
}
private function _findTarget():Item{
var item:Item;
var distance:Number;
var currentTarget:Item;
var currentDistance:Number = 10000000;
for each (item in _currentTargets.list) {
distance = item.mouseDistance;
if (distance <= item.detectionRadius){
if (distance <= currentDistance){
currentTarget = item;
currentDistance = distance;
};
};
};
return (currentTarget);
}
public function event_WarpRemoved():void{
var removeItem:Item = controller.removeItem();
}
public function get editorMode():Boolean{
return ((tricycle.config.mode == Configuration.EDITOR_MODE));
}
private function _updatePlayers():void{
if (_usePlayers == true){
_currentTargets.concat(_findTargets(_players));
};
}
private function _findTargets(targets:Cipher):Cipher{
var item:Item;
var newTargets:Cipher = new Cipher();
for each (item in targets.list) {
if (item.isMoveable == true){
newTargets.add(item);
};
};
return (newTargets);
}
public function event_WarpInit():void{
var newItem:Item = controller.addItem();
if (newItem != null){
newItem.isEnabled = true;
if ((newItem is Control)){
_controls.add(newItem);
if (tricycle.config.mode == Configuration.EDITOR_MODE){
_itemOff(newItem);
} else {
_delayedItemOff(newItem);
};
} else {
if ((newItem is Goal)){
_goals.add(newItem);
} else {
if ((newItem is Obstacle)){
_obstacles.add(newItem);
};
};
};
};
}
private function _updateTarget():void{
var newTarget:ItemType = (_findTarget() as ItemType);
if (_currentTarget != null){
if (_currentTarget.pressedElement != null){
return;
};
if (_currentTarget.mouseDistance <= _currentTarget.detectionRadius){
_itemOn(_currentTarget);
} else {
_itemOff(_currentTarget);
};
if (_currentTarget != newTarget){
_itemOff(_currentTarget);
};
};
if (_currentTargets.length > 0){
if (newTarget != null){
_currentTarget = newTarget;
};
};
}
private function _update(e:TimerEvent=null):void{
_currentTargets = new Cipher();
_updateControls();
_updateObstacles();
_updateGoals();
_updatePlayers();
_updateTarget();
}
private function _start():void{
_timer = new Timer(_interval);
_timer.addEventListener(TimerEvent.TIMER, _update);
_timer.start();
_controls = new Cipher();
_goals = new Cipher();
_obstacles = new Cipher();
_players = new Cipher();
}
public function event_ContainerLevelChanged():void{
controller.updateContainer();
}
public function event_StreamInit():void{
var newItem:Item = controller.addStreamItem();
_players.add(newItem);
}
public function event_StartGame():void{
_useControls = true;
_editorMode = false;
_start();
}
public function event_StartEditor():void{
_useControls = true;
_useObstacles = true;
_useGoals = true;
_usePlayers = true;
_editorMode = true;
_start();
}
private function _itemOff(current_item:Item):void{
var item:ItemType = (current_item as ItemType);
item.isEnabled = false;
}
public function event_EndGame():void{
}
private function _delayedItemOff(item:Item):void{
var offTimer:Timer;
var item = item;
item.isMoveable = false;
item.isSizeable = false;
offTimer = new Timer(FlowModel.CONTROL_PREVIEW);
offTimer.addEventListener(TimerEvent.TIMER, function (e:TimerEvent=null):void{
offTimer.removeEventListener(TimerEvent.TIMER, arguments.callee);
offTimer.stop();
item.isMoveable = true;
item.isSizeable = true;
_itemOff(item);
});
offTimer.start();
}
public function event_StreamRemoved():void{
var removeItem:Item = controller.removeItem(true);
}
public function removeItem(item:Item):Boolean{
if (_controls.remove(item) != false){
item.remove();
return (true);
};
if (_goals.remove(item) != false){
item.remove();
return (true);
};
if (_obstacles.remove(item) != false){
item.remove();
return (true);
};
if (_players.remove(item) != false){
item.remove();
return (true);
};
return (false);
}
private function _updateControls():void{
if (_useControls == true){
_currentTargets.concat(_findTargets(_controls));
};
}
private function _updateGoals():void{
if (_useGoals == true){
_currentTargets.concat(_findTargets(_goals));
};
}
}
}//package com.cipherprime.auditorium.views
Section 136
//LayersView (com.cipherprime.auditorium.views.LayersView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.gs.*;
import com.cipherprime.auditorium.*;
public class LayersView extends View {
private var _wallpaper:MovieHelper;
public function LayersView(m:Model, c:Controller){
super(m, c);
_init();
}
private function _hideWallpaper():void{
TweenLite.to(_wallpaper.movie, 0.5, {alpha:0});
}
private function _showWallpaper():void{
TweenLite.to(_wallpaper.movie, 0.5, {alpha:1});
}
private function _loadWallpaper():void{
_wallpaper = new MovieHelper("lib/swf/background.swf");
_wallpaper.onLoad = _displayWallpaper;
_wallpaper.load();
}
private function _init():void{
var foreground:MovieClip = new MovieClip();
foreground.name = "foreground";
foreground.mouseChildren = false;
foreground.mouseEnabled = false;
var middleground:MovieClip = new MovieClip();
middleground.name = "middleground";
middleground.mouseChildren = false;
middleground.mouseEnabled = false;
var background:MovieClip = new MovieClip();
background.name = "background";
background.mouseChildren = false;
background.mouseEnabled = false;
var radii:MovieClip = new MovieClip();
radii.name = "radii";
radii.mouseChildren = false;
radii.mouseEnabled = false;
var wallpaper:MovieClip = new MovieClip();
wallpaper.name = "wallpaper";
wallpaper.mouseChildren = false;
wallpaper.mouseEnabled = false;
var hud:MovieClip = new MovieClip();
hud.name = "hud";
hud.mouseChildren = false;
hud.mouseEnabled = false;
var removeitem:MovieClip = new MovieClip();
removeitem.name = "removeitem";
removeitem.mouseEnabled = true;
var layers:Object = {foreground:foreground, middleground:middleground, background:background, radii:radii, wallpaper:wallpaper, hud:hud, removeitem:removeitem};
stage.addChild(wallpaper);
stage.addChild(background);
stage.addChild(radii);
stage.addChild(middleground);
stage.addChild(foreground);
stage.addChild(hud);
if (tricycle.config.mode == Configuration.EDITOR_MODE){
stage.addChild(removeitem);
};
tricycle.layers = layers;
}
private function _displayWallpaper(e:Event=null):void{
_wallpaper.movie.alpha = 0;
_wallpaper.movie.x = ((stage.stageWidth - _wallpaper.movie.width) / 2);
_wallpaper.movie.y = ((stage.stageHeight - _wallpaper.movie.height) / 2);
tricycle.layers.wallpaper.addChild(_wallpaper.movie);
tricycle.layers.wallpaper.setChildIndex(_wallpaper.movie, 0);
_showWallpaper();
}
}
}//package com.cipherprime.auditorium.views
Section 137
//LoaderBar (com.cipherprime.auditorium.views.LoaderBar)
package com.cipherprime.auditorium.views {
import flash.display.*;
import com.gs.*;
public class LoaderBar {
private var _bar:MovieClip;
public function LoaderBar(progress:MovieClip){
super();
_bar = progress;
_bar.gotoAndStop(0);
}
public function set percentLoaded(value:Number):void{
var frame:int;
if (_bar){
frame = (value * 100);
TweenLite.to(_bar, 0.5, {frame:frame});
};
}
}
}//package com.cipherprime.auditorium.views
Section 138
//RemoveView (com.cipherprime.auditorium.views.RemoveView)
package com.cipherprime.auditorium.views {
import flash.events.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
import com.cipherprime.tricycle.view.*;
import flash.utils.*;
import com.cipherprime.utils.*;
import com.gs.*;
public class RemoveView extends View {
private var _objectLookup:Dictionary;
public function RemoveView(m:Model, c:Controller){
super(m, c);
}
public function cancel(e:MouseEvent=null):void{
var o:Object;
var objectSelector:MovieClip;
stage.removeEventListener(MouseEvent.CLICK, cancel);
for (o in _objectLookup) {
objectSelector = (o as MovieClip);
objectSelector.removeEventListener(MouseEvent.ROLL_OVER, focusItem);
objectSelector.removeEventListener(MouseEvent.ROLL_OUT, blurItem);
objectSelector.removeEventListener(MouseEvent.CLICK, removeItem);
tricycle.layers.removeitem.removeChild(objectSelector);
};
tricycle.editorView.status("");
stage.focus = stage;
}
public function removeItem(e:MouseEvent):void{
model.removeObject(_objectLookup[e.target]);
cancel();
}
public function blurItem(e:MouseEvent):void{
TweenLite.to(e.target, 0.3, {alpha:0});
}
public function focusItem(e:MouseEvent):void{
TweenLite.to(e.target, 0.3, {alpha:0.2});
}
public function event_RemoveItemMode():void{
var o:*;
var radius:Number;
var objectSelector:MovieClip;
_objectLookup = new Dictionary(true);
var objects:Cipher = new Cipher();
objects.concat(model.streams);
objects.concat(model.warps);
for each (o in objects.list) {
if (("radius" in o)){
radius = (o.radius + 10);
} else {
radius = 50;
};
objectSelector = new MovieClip();
objectSelector.graphics.beginFill(0xFF0000);
objectSelector.graphics.drawCircle(0, 0, radius);
objectSelector.graphics.endFill();
objectSelector.x = o.x;
objectSelector.y = o.y;
objectSelector.alpha = 0;
tricycle.layers.removeitem.addChild(objectSelector);
_objectLookup[objectSelector] = o;
objectSelector.buttonMode = true;
objectSelector.addEventListener(MouseEvent.ROLL_OVER, focusItem);
objectSelector.addEventListener(MouseEvent.ROLL_OUT, blurItem);
objectSelector.addEventListener(MouseEvent.CLICK, removeItem);
};
stage.addEventListener(MouseEvent.CLICK, cancel);
}
}
}//package com.cipherprime.auditorium.views
Section 139
//Configuration (com.cipherprime.auditorium.Configuration)
package com.cipherprime.auditorium {
public class Configuration {
private var _mode:String;// = "GameMode"
private var _urls:Object;
private var _resume:Boolean;// = true
private var _constants:Object;
private var _debug:Boolean;// = false
private var _tracking:Boolean;// = false
private var _fullscreen:Boolean;// = true
private var _intro:Boolean;// = true
public static const GAME_MODE:String = "GameMode";
public static const EDITOR_MODE:String = "EditorMode";
public static const WALKTHROUGH_MODE:String = "WalkthroughMode";
public function Configuration(){
_urls = new Object();
_constants = new Object();
super();
}
public function get intro():Object{
return (_intro);
}
public function get constants():Object{
return (_constants);
}
public function get debug():Boolean{
return (_debug);
}
public function get mode():String{
return (_mode);
}
public function get urls():Object{
return (_urls);
}
public function populate(xml:XML):void{
var settingsXml:XML;
var urlsXml:XML;
var constantsXml:XML;
for each (settingsXml in xml.settings) {
_mode = settingsXml.mode;
_tracking = (settingsXml.tracking == "on");
_debug = (settingsXml.debug == "on");
_resume = (settingsXml.resume == "on");
_fullscreen = (settingsXml.fullscreen == "on");
_intro = (settingsXml.intro == "on");
};
for each (urlsXml in xml.urls) {
_urls.playlist = urlsXml.playlist;
_urls.tracking = urlsXml.tracking;
_urls.editor = urlsXml.editor;
};
for each (constantsXml in xml.constants) {
_constants.audio = {fadeOutTime:constantsXml.audio.fadeOutTime};
_constants.flow = {containerFullThreshold:constantsXml.flow.containerFullThreshold, controlPreviewTime:constantsXml.flow.controlPreviewTime, controlRadius:constantsXml.flow.controlRadius, controlSpacing:constantsXml.flow.controlSpacing};
_constants.item = {fadeInTime:constantsXml.item.fadeInTime, fadeOutTime:constantsXml.item.fadeOutTime};
};
}
public function get tracking():Boolean{
return (_tracking);
}
public function get fullscreen():Boolean{
return (_fullscreen);
}
public function get resume():Boolean{
return (_resume);
}
}
}//package com.cipherprime.auditorium
Section 140
//Calc (com.cipherprime.euclid.Calc)
package com.cipherprime.euclid {
public class Calc {
public function Calc(){
super();
}
public static function adjustBrightnessContrast(contrast:Number, brightness:Number):Array{
return ([contrast, 0, 0, 0, brightness, 0, contrast, 0, 0, brightness, 0, 0, contrast, 0, brightness, 0, 0, 0, 1, 1]);
}
public static function saturateColor(color:uint, threshold:uint):uint{
var r:uint = (color >> 16);
var g:uint = ((color >> 8) & 0xFF);
var b:uint = (color & 0xFF);
if (r > threshold){
r = 0xFF;
} else {
r = 0;
};
if (g > threshold){
g = 0xFF;
} else {
g = 0;
};
if (b > threshold){
b = 0xFF;
} else {
b = 0;
};
return ((((r << 16) | (g << 8)) | b));
}
public static function dist(x1:Number, y1:Number, x2:Number, y2:Number):Number{
var dx:Number = (x2 - x1);
var dy:Number = (y2 - y1);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
}
}//package com.cipherprime.euclid
Section 141
//Vector (com.cipherprime.euclid.Vector)
package com.cipherprime.euclid {
public class Vector {
public var x:Number;
public var y:Number;
public function Vector(xp:Number=0, yp:Number=0){
super();
setVector(xp, yp);
}
public function add(v:Vector):void{
x = (x + v.x);
y = (y + v.y);
}
public function setVector(xp:Number=0, yp:Number=0):Vector{
x = xp;
y = yp;
return (this);
}
public function dot(v:Vector):Number{
return (((x * v.x) + (y * v.y)));
}
public function scale(s:Number):Vector{
x = (x * s);
y = (y * s);
return (this);
}
public function normalize():Vector{
scale((1 / getLength()));
return (this);
}
public function setMagnitude(m:Number):Vector{
scale((m / getLength()));
return (this);
}
public function rotate(angle:Number):void{
var cosAngle:Number = Math.cos(angle);
var sinAngle:Number = Math.sin(angle);
var rx:Number = ((x * cosAngle) - (y * sinAngle));
var ry:Number = ((x * sinAngle) + (y * cosAngle));
x = rx;
y = ry;
}
public function getLength():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
}
}//package com.cipherprime.euclid
Section 142
//VectorField (com.cipherprime.euclid.VectorField)
package com.cipherprime.euclid {
import flash.display.*;
public dynamic class VectorField {
public var y:Number;
public var field:Function;
private var v:Vector;
public var x:Number;
public function VectorField(xp:Number, yp:Number){
var xp = xp;
var yp = yp;
super();
setOrigin(xp, yp);
v = new Vector();
field = function (xv:Number, yv:Number):Vector{
return (v);
};
}
public function setOrigin(xp:Number, yp:Number, zp:Number=0):void{
x = xp;
y = yp;
}
public function getVector(xv:Number, yv:Number):Vector{
return (field(xv, yv));
}
public function setFunction(f:Function):void{
field = f;
}
public function show(size:Number=100, step:Number=5):Sprite{
var sx:Number;
var v:*;
var size = size;
var step = step;
var clip:Sprite = new Sprite();
var sy:Number = (y - (size / 2));
while (sy <= (y + (size / 2))) {
sx = (x - (size / 2));
while (sx <= (x + (size / 2))) {
var _local4 = clip.graphics;
with (_local4) {
moveTo(sx, sy);
lineStyle(1, 0xFFFFFF);
beginFill(0xFFFFFF);
drawCircle(sx, sy, 1);
endFill();
v = getVector(sx, sy);
v.scale(2);
lineTo((sx + v.x), (sy + v.y));
};
sx = (sx + step);
};
sy = (sy + step);
};
return (clip);
}
}
}//package com.cipherprime.euclid
Section 143
//Controller (com.cipherprime.tricycle.controller.Controller)
package com.cipherprime.tricycle.controller {
import com.cipherprime.tricycle.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.view.*;
public dynamic class Controller {
protected var _tricycle:Tricycle;
protected var _event:String;
protected var _view:View;
protected var _model:Model;
public var debug:Boolean;// = false
public function Controller(m:Model){
_tricycle = Tricycle.getInstance();
super();
model = m;
if (_tricycle == null){
throw (new Error("Controllers must be instantiated in constructor or later."));
};
}
public function set event(event:String):void{
if ((arguments.callee is Model)){
_event = event;
};
}
public function get view():View{
return (_view);
}
public function get model():Model{
return (_model);
}
public function onModelEvent():void{
if (debug){
trace(event);
};
}
public function set view(v:View):void{
if (v !== null){
_view = (v as View);
};
}
public function set model(m:Model):void{
if (m !== null){
if (model != null){
model.removeListener(this);
};
_model = m;
model.addListener(this);
};
}
public function get event():String{
return (_event);
}
public function get tricycle():Tricycle{
return (_tricycle);
}
}
}//package com.cipherprime.tricycle.controller
Section 144
//CrudModel (com.cipherprime.tricycle.model.CrudModel)
package com.cipherprime.tricycle.model {
import com.cipherprime.utils.*;
public class CrudModel extends Model {
protected var _lastChildAdded;
protected var _lastChildInitialized;
protected var _lastChildModified;
protected var _lastChildRemoved;
protected var _ChildClass:Class;
private var _children:Cipher;
public function CrudModel(){
_ChildClass = Object;
_children = new Cipher();
super();
}
public function addChild(child){
_children.add(child);
if (("model" in child)){
child.model = this;
};
_lastChildAdded = child;
dispatchModelEvent("ChildAdded");
return (child);
}
public function newChild(params:Object=null){
var child:* = new ChildClass();
addChild(child);
if (params){
initChild(child, params);
};
return (child);
}
public function get lastChildAdded(){
return (_lastChildAdded);
}
public function removeAllChildren():void{
var numChildren:Number = children.length;
var i:Number = 0;
while (i < numChildren) {
removeChild(children.getAt(0));
i++;
};
}
public function initChild(child, params:Object){
if (("init" in child)){
child.init(params);
};
_lastChildInitialized = child;
dispatchModelEvent("ChildInitialized");
return (child);
}
public function get lastChildInitialized(){
return (_lastChildRemoved);
}
public function get lastChildModified(){
return (_lastChildModified);
}
public function get ChildClass():Class{
return (_ChildClass);
}
public function removeChild(child){
_children.remove(child);
_lastChildRemoved = child;
dispatchModelEvent("ChildRemoved");
return (child);
}
public function get lastChildRemoved(){
return (_lastChildRemoved);
}
public function get children():Cipher{
return (_children);
}
}
}//package com.cipherprime.tricycle.model
Section 145
//Model (com.cipherprime.tricycle.model.Model)
package com.cipherprime.tricycle.model {
import com.cipherprime.tricycle.*;
import flash.events.*;
import com.cipherprime.tricycle.controller.*;
import com.cipherprime.tricycle.view.*;
import flash.utils.*;
import com.cipherprime.tricycle.router.*;
public dynamic class Model {
protected var _tricycle:Tricycle;
private var _views:Array;
private var _routers:Array;
private var _controllers:Array;
public var debug:Boolean;// = false
public function Model(){
_tricycle = Tricycle.getInstance();
super();
_init();
}
public function get controllers():Array{
return (_controllers);
}
public function removeListener(listener:Object):Boolean{
if (_removeListener(_routers, listener) == true){
return (true);
};
if (_removeListener(_views, listener) == true){
return (true);
};
if (_removeListener(_controllers, listener) == true){
return (true);
};
return (false);
}
public function get routers():Array{
return (_routers);
}
public function get views():Array{
return (_views);
}
private function _init():void{
_routers = new Array();
_views = new Array();
_controllers = new Array();
if (_tricycle == null){
throw (new Error("Models must be instantiated in constructor or later."));
};
if (("eventEnterFrame" in this)){
tricycle.stage.addEventListener(Event.ENTER_FRAME, this.eventEnterFrame, false, 0, true);
};
}
public function dispatchModelEvent(event:String):void{
_updateListeners(_routers, event);
_updateListeners(_views, event);
_updateListeners(_controllers, event);
}
public function addListener(listener:Object):Boolean{
if ((listener is Router)){
if (_checkListenerAvailability(_routers, listener) == false){
return (false);
};
_routers.push(listener);
} else {
if ((listener is View)){
if (_checkListenerAvailability(_views, listener) == false){
return (false);
};
_views.push(listener);
} else {
if ((listener is Controller)){
if (_checkListenerAvailability(_controllers, listener) == false){
return (false);
};
_controllers.push(listener);
} else {
throw (new Error("addListener Method can only be used on Tricycle Views and Controllers"));
};
};
};
return (true);
}
private function _removeListener(type:Array, listener:Object):Boolean{
var i:Number = 0;
while (i < type.length) {
if (type[i] == listener){
type.splice(i, 1);
return (true);
};
i++;
};
return (false);
}
private function _updateListeners(type:Array, event:String):void{
var object:Object;
var eventName:String;
var className:String;
var i:Number = 0;
while (i < type.length) {
object = type[i];
eventName = ((((getQualifiedClassName(object).substring((getQualifiedClassName(object).lastIndexOf(":") + 1)) + ": ") + getQualifiedClassName(this).substring((getQualifiedClassName(this).lastIndexOf(":") + 1))) + ".") + event);
className = getQualifiedClassName(this).substring((getQualifiedClassName(this).lastIndexOf(":") + 1));
object.event = eventName;
if ((object is Router)){
if ((((("event_" + className) + "_") + event) in object)){
var _local7 = object;
_local7[((("event_" + className) + "_") + event)]();
} else {
object.onModelEvent();
};
} else {
if ((("event_" + event) in object)){
_local7 = object;
_local7[("event_" + event)]();
} else {
object.onModelEvent();
};
};
i++;
};
}
public function get tricycle():Tricycle{
return (_tricycle);
}
private function _checkListenerAvailability(type:Array, listener:Object):Boolean{
var i:Number = 0;
while (i < type.length) {
if (type[i] == listener){
return (false);
};
i++;
};
return (true);
}
}
}//package com.cipherprime.tricycle.model
Section 146
//Router (com.cipherprime.tricycle.router.Router)
package com.cipherprime.tricycle.router {
import com.cipherprime.tricycle.*;
import com.cipherprime.tricycle.model.*;
public class Router {
protected var _tricycle:Tricycle;
private var _models:Array;
public var debug:Boolean;// = false
protected var _event:String;
public function Router(){
_tricycle = Tricycle.getInstance();
super();
_models = new Array();
if (_tricycle == null){
throw (new Error("Routers must be instantiated in constructor or later."));
};
}
public function get tricycle():Tricycle{
return (_tricycle);
}
public function set event(e:String):void{
_event = e;
}
protected function removeModel(m:Model):Boolean{
var i:Number;
if (m.removeListener(this)){
i = 0;
while (i < _models.length) {
if (_models[i] == m){
_models.splice(i, 1);
return (true);
};
i++;
};
return (false);
};
return (false);
}
protected function addModel(m:Model):Boolean{
if (m.addListener(this)){
_models.push(m);
return (true);
};
return (false);
}
public function get models():Array{
return (_models);
}
protected function addModels(... _args):void{
var i:Number = 0;
while (i < _args.length) {
if ((_args[i] is Model)){
addModel(_args[i]);
};
i++;
};
}
protected function removeModels(... _args):void{
var i:Number = 0;
while (i < _args.length) {
removeModel(_args[i]);
i++;
};
}
public function onModelEvent():void{
if (debug){
trace(event);
};
}
public function get event():String{
return (_event);
}
}
}//package com.cipherprime.tricycle.router
Section 147
//AudioHelper (com.cipherprime.tricycle.utils.helpers.AudioHelper)
package com.cipherprime.tricycle.utils.helpers {
import flash.net.*;
import flash.media.*;
public class AudioHelper extends Helper {
private var _volume:Number;// = 0
public var audioTransform:SoundTransform;
public var name:String;
public var audioChannel:SoundChannel;
public var audio:Sound;
private var _pauseTime:Number;// = 0
private var _positionTolerance:Number;// = 100
public var audioContext:SoundLoaderContext;
public function AudioHelper(fileUrl:String){
audio = new Sound();
audioChannel = new SoundChannel();
audioTransform = new SoundTransform();
audioContext = new SoundLoaderContext(4000, false);
super();
_url = fileUrl;
}
public function stop():void{
if (audioChannel){
audioChannel.stop();
};
}
public function play(loop:Number=1):void{
if (loop <= 0){
loop = int.MAX_VALUE;
};
audioChannel = audio.play(0, loop, audioTransform);
}
public function get volume():Number{
return (_volume);
}
public function load():void{
var req:URLRequest = new URLRequest(_url);
_loaderObject = audio;
_addListeners();
audio.load(req, audioContext);
}
public function get position():Number{
return (audioChannel.position);
}
public function resume():void{
audioChannel = audio.play(_pauseTime, 1, audioTransform);
}
public function set volume(value:Number):void{
_volume = value;
audioTransform.volume = _volume;
if (audioChannel){
audioChannel.soundTransform = audioTransform;
};
}
public function get length():Number{
return (audio.length);
}
public function pause():void{
_pauseTime = audioChannel.position;
stop();
}
public function isAt(pos:Number):Boolean{
return ((Math.abs((position - pos)) < _positionTolerance));
}
}
}//package com.cipherprime.tricycle.utils.helpers
Section 148
//Helper (com.cipherprime.tricycle.utils.helpers.Helper)
package com.cipherprime.tricycle.utils.helpers {
import flash.events.*;
public class Helper extends EventDispatcher {
public var onIoError:Function;
public var onLoad:Function;
public var onProgress:Function;
protected var _url:String;
protected var _loaderObject:EventDispatcher;
public static var LOADED:String = "Loaded";
public static var PROGRESS:String = "Progress";
public static var IO_ERROR:String = "IoError";
public function Helper(){
super();
}
protected function _onLoadComplete(e:Event):void{
_removeListeners();
if (onLoad != null){
onLoad();
};
dispatchEvent(new Event(LOADED));
}
protected function _onIoError(e:IOErrorEvent):void{
_removeListeners();
trace(((this + ": ") + e.text));
if (onIoError != null){
onIoError();
};
dispatchEvent(new Event(IO_ERROR));
}
protected function _onProgress(e:ProgressEvent):void{
if (onProgress != null){
onProgress();
};
dispatchEvent(new Event(PROGRESS));
}
public function get url():String{
return (_url);
}
public function get percentLoaded():Number{
if (((_loaderObject) && (("bytesLoaded" in _loaderObject)))){
return ((_loaderObject["bytesLoaded"] / _loaderObject["bytesTotal"]));
};
return (0);
}
protected function _removeListeners():void{
if (_loaderObject){
_loaderObject.removeEventListener(Event.COMPLETE, _onLoadComplete);
_loaderObject.removeEventListener(ProgressEvent.PROGRESS, _onProgress);
_loaderObject.removeEventListener(IOErrorEvent.IO_ERROR, _onIoError);
};
}
protected function _addListeners():void{
if (_loaderObject){
_loaderObject.addEventListener(Event.COMPLETE, _onLoadComplete);
_loaderObject.addEventListener(ProgressEvent.PROGRESS, _onProgress);
_loaderObject.addEventListener(IOErrorEvent.IO_ERROR, _onIoError);
};
}
}
}//package com.cipherprime.tricycle.utils.helpers
Section 149
//MovieHelper (com.cipherprime.tricycle.utils.helpers.MovieHelper)
package com.cipherprime.tricycle.utils.helpers {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class MovieHelper extends Helper {
private var _movie:DisplayObject;
private var _loader:Loader;
public function MovieHelper(fileUrl:String){
super();
_loader = new Loader();
_url = fileUrl;
}
public function get movie():DisplayObject{
return (_movie);
}
public function load():void{
_loaderObject = _loader.contentLoaderInfo;
_addListeners();
_loader.load(new URLRequest(_url));
}
override protected function _onLoadComplete(e:Event):void{
_movie = _loader.content;
super._onLoadComplete(e);
}
}
}//package com.cipherprime.tricycle.utils.helpers
Section 150
//XmlHelper (com.cipherprime.tricycle.utils.helpers.XmlHelper)
package com.cipherprime.tricycle.utils.helpers {
import flash.events.*;
import flash.net.*;
public class XmlHelper extends Helper {
public var noCache:Boolean;// = false
private var _requestString:String;// = ""
public var request:Object;
private var _request:URLRequest;
private var _loader:URLLoader;
private var _xml:XML;
private var _lastRequest:String;// = ""
public function XmlHelper(fileUrl:String){
super();
_url = fileUrl;
request = new Object();
}
public function load():void{
if (noCache){
request["randomid"] = Math.round((Math.random() * 1000));
};
_compileRequest();
_request = new URLRequest(_lastRequest);
_loader = new URLLoader(_request);
_loaderObject = _loader;
_addListeners();
}
public function get lastRequest():String{
return (_lastRequest);
}
public function get xml():XML{
return (_xml);
}
private function _compileRequest():void{
var key:String;
_requestString = "?";
for (key in request) {
_requestString = (_requestString + (((key + "=") + request[key]) + "&"));
};
_requestString = _requestString.substring(0, (_requestString.length - 1));
_lastRequest = (url + _requestString);
}
override protected function _onLoadComplete(e:Event):void{
_xml = new XML(e.target.data);
super._onLoadComplete(e);
}
}
}//package com.cipherprime.tricycle.utils.helpers
Section 151
//View (com.cipherprime.tricycle.view.View)
package com.cipherprime.tricycle.view {
import com.cipherprime.tricycle.*;
import com.cipherprime.tricycle.model.*;
import com.cipherprime.tricycle.controller.*;
import flash.display.*;
public dynamic class View {
protected var _tricycle:Tricycle;
protected var _event:String;
protected var _controller:Controller;
protected var _model:Model;
public var debug:Boolean;// = false
public function View(m:Model, c:Controller){
_tricycle = Tricycle.getInstance();
super();
model = m;
controller = c;
if (_tricycle == null){
throw (new Error("Views must be instantiated in constructor or later."));
};
}
public function set event(event:String):void{
if ((arguments.callee is Model)){
_event = event;
};
}
public function defaultController(model:Model):Controller{
return (null);
}
public function get event():String{
return (_event);
}
public function get model():Model{
return (_model);
}
public function get tricycle():Tricycle{
return (_tricycle);
}
public function onModelEvent():void{
if (debug){
trace(event);
};
}
public function get root():DisplayObject{
return (tricycle.root);
}
public function set model(m:Model):void{
if (m !== null){
if (model != null){
model.removeListener(this);
};
_model = m;
model.addListener(this);
};
}
public function set controller(c:Controller):void{
if (c !== null){
_controller = c;
controller.view = this;
};
}
public function get controller():Controller{
if (_controller === null){
controller = defaultController(model);
};
return (_controller);
}
public function get stage():Stage{
return (tricycle.stage);
}
}
}//package com.cipherprime.tricycle.view
Section 152
//Tricycle (com.cipherprime.tricycle.Tricycle)
package com.cipherprime.tricycle {
import flash.display.*;
public dynamic class Tricycle extends MovieClip {
private static var _instance:Tricycle;
public function Tricycle(){
super();
if (_instance){
throw (new Error("Tricycle is a Singleton Class and can only be accessed through ClassName.getInstance() because it has already been instantiated elsewhere."));
};
_instance = this;
}
public static function getInstance():Tricycle{
return (_instance);
}
}
}//package com.cipherprime.tricycle
Section 153
//TextDisplay (com.cipherprime.utils.display.TextDisplay)
package com.cipherprime.utils.display {
import flash.text.*;
public class TextDisplay extends TextField {
public function TextDisplay(){
super();
var textFormat:TextFormat = new TextFormat();
textFormat.font = "Verdana";
textFormat.size = 12;
textFormat.color = 0xFFFFFF;
textFormat.leading = 10;
defaultTextFormat = textFormat;
mouseEnabled = false;
multiline = true;
autoSize = TextFieldAutoSize.LEFT;
}
}
}//package com.cipherprime.utils.display
Section 154
//TextInput (com.cipherprime.utils.display.TextInput)
package com.cipherprime.utils.display {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class TextInput extends MovieClip {
public var tf:TextDisplay;
public var cursorOn:Boolean;// = false
public var cursor:Sprite;
public static const CANCELED:String = "Canceled";
public static const ENTERED:String = "Entered";
public function TextInput(defaultText:String=""){
var defaultText = defaultText;
super();
tf = new TextDisplay();
tf.text = defaultText;
addChild(tf);
cursor = new Sprite();
cursor.graphics.lineStyle(1, 0xFFFFFF);
cursor.graphics.lineTo(0, 14);
addChild(cursor);
var t:Timer = new Timer(500);
t.addEventListener(TimerEvent.TIMER, function (e:TimerEvent):void{
cursor.visible = cursorOn;
cursorOn = !(cursorOn);
});
t.start();
addEventListener(Event.ENTER_FRAME, function (e:Event):void{
cursor.x = (tf.textWidth + 4);
});
addEventListener(Event.ADDED_TO_STAGE, function (e:Event):void{
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
});
}
private function numToChar(num:int):String{
var codex:String;
if ((((num > 31)) && ((num < 127)))){
codex = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
return (codex.charAt((num - 32)));
};
return ("");
}
public function keyHandler(e:KeyboardEvent):void{
switch (e.keyCode){
case 8:
tf.text = tf.text.substr(0, (tf.text.length - 1));
break;
case 13:
dispatchEvent(new Event(ENTERED));
break;
case 27:
dispatchEvent(new Event(CANCELED));
break;
default:
tf.appendText(numToChar(e.charCode));
};
}
}
}//package com.cipherprime.utils.display
Section 155
//Cipher (com.cipherprime.utils.Cipher)
package com.cipherprime.utils {
public class Cipher {
private var _array:Array;
public function Cipher(... _args){
super();
_array = new Array();
_array.concat(_args);
}
public function extractAll(classType:Class):Cipher{
var o:*;
var extractCipher:Cipher = getAll(classType);
for each (o in extractCipher.list) {
remove(o);
};
return (extractCipher);
}
public function add(o):void{
_array.push(o);
}
public function getIndexOf(o:Object):uint{
var i:uint;
while (i < _array.length) {
if (_array[i] == o){
return (i);
};
i++;
};
return (null);
}
public function killAll():void{
var l:Number = length;
var i:Number = 0;
while (i < l) {
delete ??getglobalscope
[_array.pop()];
i++;
};
}
public function remove(o=null){
var i:uint;
if (o == null){
return (_array.pop());
};
i = 0;
while (i < _array.length) {
if (_array[i] == o){
return (removeAt(i));
};
i++;
};
return (false);
}
public function get list():Array{
return (_array);
}
public function get length():Number{
return (_array.length);
}
public function getAll(classType:Class):Cipher{
var o:*;
var getCipher:Cipher = new Cipher();
for each (o in list) {
if ((o is classType)){
getCipher.add(o);
};
};
return (getCipher);
}
public function clone():Cipher{
return (new Cipher(list));
}
public function destroyAt(i:uint):void{
}
public function getAt(i:uint){
return (_array[i]);
}
public function killAt(i:uint):void{
delete ??getglobalscope
[removeAt(i)];
}
public function removeAt(i:uint){
return (_array.splice(i, 1));
}
public function destroy(o:Object):void{
}
public function concat(c:Cipher):Cipher{
var o:*;
for each (o in c.list) {
add(o);
};
return (this);
}
public function removeAll():void{
_array = new Array();
}
public function kill(o:Object):void{
delete ??getglobalscope
[remove(o)];
}
public function setAll(property:String, value):void{
var element:Object;
var i:Number = 0;
while (i < length) {
element = _array[i];
if ((property in element)){
element[property] = value;
};
i++;
};
}
}
}//package com.cipherprime.utils
Section 156
//Convert (com.cipherprime.utils.Convert)
package com.cipherprime.utils {
import flash.utils.*;
import flash.geom.*;
public class Convert {
public function Convert(){
super();
}
public static function objectToClassName(o):String{
return (getQualifiedClassName(o).substring((getQualifiedClassName(o).lastIndexOf(":") + 1)));
}
public static function stringToPoint(s:String):Point{
var a:Array = s.split(",");
return (new Point(a[0], a[1]));
}
}
}//package com.cipherprime.utils
Section 157
//Menu (com.cipherprime.utils.Menu)
package com.cipherprime.utils {
import com.cipherprime.tricycle.*;
import flash.events.*;
import flash.display.*;
import com.cipherprime.utils.display.*;
public class Menu extends MovieClip {
private var _pages:Array;
private var _delimiter:String;// = ", "
private var _background:Sprite;
private var _maxItems:Number;// = 9
private var _options:Array;
private var _prevOption:MenuOption;
private var _currentPage:Number;// = 0
public var text:String;
private var _nextOption:MenuOption;
public var status:TextDisplay;
public function Menu(menuLabel, ... _args){
var page:Array;
var breakpoint:Number;
super();
_pages = new Array();
_options = new Array();
_prevOption = new MenuOption("<i><PREV</i>", prevPage);
_nextOption = new MenuOption("<i>NEXT></i>", nextPage);
_background = new Sprite();
_background.graphics.lineStyle(0, 0xFFFFFF);
_background.graphics.beginFill(0, 1);
_background.graphics.drawRect(0, 0, 10, 10);
_background.graphics.endFill();
_background.alpha = 0;
addChild(_background);
status = new TextDisplay();
addChild(status);
if ((menuLabel is String)){
text = menuLabel;
} else {
if ((menuLabel is Function)){
text = menuLabel();
};
};
if ((_args[0] is Array)){
var items:Array = _args[0];
};
var firstPage:Boolean;
while (_args.length) {
page = new Array();
if (firstPage){
if (_args.length == _maxItems){
page = page.concat(_args.splice(0, _maxItems));
} else {
page = page.concat(_args.splice(0, (_maxItems - 1)));
};
firstPage = false;
} else {
page.push(_prevOption);
if (_args.length == (_maxItems - 1)){
page = page.concat(_args.splice(0, (_maxItems - 1)));
} else {
page = page.concat(_args.splice(0, (_maxItems - 2)));
};
};
if (_args.length){
page.push(_nextOption);
};
_pages.push(page);
};
}
public function cancel():void{
Tricycle.getInstance().stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
_currentPage = 0;
parent.removeChild(this);
}
public function prevPage():Boolean{
if ((_currentPage - 1) >= 0){
_currentPage--;
renderPage();
};
return (true);
}
public function renderPage():void{
status.htmlText = (("<b>" + text) + "</b>: ");
var i:Number = 0;
while (i < _pages[_currentPage].length) {
status.htmlText = (status.htmlText + ((("(" + (i + 1)) + ") ") + _pages[_currentPage][i].text));
_options[(49 + i)] = _pages[_currentPage][i];
i++;
};
_background.width = (status.textWidth + 10);
_background.height = (status.textHeight + 10);
_background.alpha = 0.5;
}
public function start():void{
renderPage();
Tricycle.getInstance().stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
}
public function keyHandler(e:KeyboardEvent):void{
switch (e.keyCode){
case 192:
break;
case 27:
cancel();
break;
};
if (_options[e.keyCode]){
if ((_options[e.keyCode] is Menu)){
switchMenu(_options[e.keyCode]);
} else {
if ((_options[e.keyCode] is MenuOption)){
if (!_options[e.keyCode].execute()){
cancel();
};
};
};
};
}
public function nextPage():Boolean{
if ((_currentPage + 1) < _pages.length){
_currentPage++;
renderPage();
};
return (true);
}
public function switchMenu(option:Menu):void{
parent.addChild(option);
option.start();
cancel();
}
}
}//package com.cipherprime.utils
Section 158
//MenuOption (com.cipherprime.utils.MenuOption)
package com.cipherprime.utils {
public class MenuOption {
private var _action:Function;
private var _text:String;
public function MenuOption(text:String, action:Function){
super();
_text = text;
_action = action;
}
public function execute():Boolean{
return (_action());
}
public function get text():String{
return (_text);
}
}
}//package com.cipherprime.utils
Section 159
//Bounce (com.gs.easing.Bounce)
package com.gs.easing {
public class Bounce {
public function Bounce(){
super();
}
public static function easeOut(t:Number, b:Number, c:Number, d:Number):Number{
t = (t / d);
if (t < (1 / 2.75)){
return (((c * ((7.5625 * t) * t)) + b));
};
if (t < (2 / 2.75)){
t = (t - (1.5 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.75)) + b));
};
if (t < (2.5 / 2.75)){
t = (t - (2.25 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.9375)) + b));
};
t = (t - (2.625 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.984375)) + b));
}
public static function easeIn(t:Number, b:Number, c:Number, d:Number):Number{
return (((c - easeOut((d - t), 0, c, d)) + b));
}
public static function easeInOut(t:Number, b:Number, c:Number, d:Number):Number{
if (t < (d / 2)){
return (((easeIn((t * 2), 0, c, d) * 0.5) + b));
};
return ((((easeOut(((t * 2) - d), 0, c, d) * 0.5) + (c * 0.5)) + b));
}
}
}//package com.gs.easing
Section 160
//TweenLite (com.gs.TweenLite)
package com.gs {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
import flash.media.*;
public class TweenLite {
public var delay:Number;
protected var _initted:Boolean;
protected var _subTweens:Array;
public var startTime:int;
public var target:Object;
public var duration:Number;
protected var _hst:Boolean;
protected var _active:Boolean;
public var tweens:Array;
public var vars:Object;
public var initTime:int;
private static var _timer:Timer = new Timer(2000);
private static var _classInitted:Boolean;
public static var defaultEase:Function = TweenLite.easeOut;
public static var version:Number = 6.22;
private static var _sprite:Sprite = new Sprite();
protected static var _all:Dictionary = new Dictionary();
public static var killDelayedCallsTo:Function = killTweensOf;
protected static var _curTime:uint;
private static var _listening:Boolean;
public function TweenLite($target:Object, $duration:Number, $vars:Object){
super();
if ($target == null){
return;
};
if (((((!(($vars.overwrite == false))) && (!(($target == null))))) || ((_all[$target] == undefined)))){
delete _all[$target];
_all[$target] = new Dictionary();
};
_all[$target][this] = this;
this.vars = $vars;
this.duration = (($duration) || (0.001));
this.delay = (($vars.delay) || (0));
this.target = $target;
if (!(this.vars.ease is Function)){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
if (!isNaN(Number(this.vars.autoAlpha))){
this.vars.alpha = Number(this.vars.autoAlpha);
};
this.tweens = [];
_subTweens = [];
_hst = (_initted = false);
_active = ((($duration == 0)) && ((this.delay == 0)));
if (!_classInitted){
_curTime = getTimer();
_sprite.addEventListener(Event.ENTER_FRAME, executeAll);
_classInitted = true;
};
this.initTime = _curTime;
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (_active))){
initTweenVals();
this.startTime = _curTime;
if (_active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
};
if (((!(_listening)) && (!(_active)))){
_timer.addEventListener("timer", killGarbage);
_timer.start();
_listening = true;
};
}
protected function addSubTween($proxy:Function, $target:Object, $props:Object, $info:Object=null):void{
var p:String;
var sub:Object = {proxy:$proxy, target:$target, info:$info};
_subTweens.push(sub);
for (p in $props) {
if ($target.hasOwnProperty(p)){
if (typeof($props[p]) == "number"){
this.tweens.push({o:$target, p:p, s:$target[p], c:($props[p] - $target[p]), sub:sub});
} else {
this.tweens.push({o:$target, p:p, s:$target[p], c:Number($props[p]), sub:sub});
};
};
};
_hst = true;
}
public function initTweenVals($hrp:Boolean=false, $reservedProps:String=""):void{
var p:String;
var i:int;
var endArray:Array;
var clr:ColorTransform;
var endClr:ColorTransform;
var tp:Object;
var isDO = (this.target is DisplayObject);
if ((this.target is Array)){
endArray = ((this.vars.endArray) || ([]));
i = 0;
while (i < endArray.length) {
if (((!((this.target[i] == endArray[i]))) && (!((this.target[i] == undefined))))){
this.tweens.push({o:this.target, p:i.toString(), s:this.target[i], c:(endArray[i] - this.target[i])});
};
i++;
};
} else {
for (p in this.vars) {
if ((((((((((((((((((((((((((((((((((((p == "ease")) || ((p == "delay")))) || ((p == "overwrite")))) || ((p == "onComplete")))) || ((p == "onCompleteParams")))) || ((p == "onCompleteScope")))) || ((p == "runBackwards")))) || ((p == "onUpdate")))) || ((p == "onUpdateParams")))) || ((p == "onUpdateScope")))) || ((p == "autoAlpha")))) || ((p == "onStart")))) || ((p == "onStartParams")))) || ((p == "onStartScope")))) || ((p == "renderOnStart")))) || ((p == "proxiedEase")))) || ((p == "easeParams")))) || ((($hrp) && (!(($reservedProps.indexOf(((" " + p) + " ")) == -1))))))){
} else {
if ((((p == "tint")) && (isDO))){
clr = this.target.transform.colorTransform;
endClr = new ColorTransform();
if (this.vars.alpha != undefined){
endClr.alphaMultiplier = this.vars.alpha;
delete this.vars.alpha;
i = (this.tweens.length - 1);
while (i > -1) {
if (this.tweens[i].p == "alpha"){
this.tweens.splice(i, 1);
break;
};
i--;
};
} else {
endClr.alphaMultiplier = this.target.alpha;
};
if (((((!((this.vars[p] == null))) && (!((this.vars[p] == ""))))) || ((this.vars[p] == 0)))){
endClr.color = this.vars[p];
};
addSubTween(tintProxy, {progress:0}, {progress:1}, {target:this.target, color:clr, endColor:endClr});
} else {
if ((((p == "frame")) && (isDO))){
addSubTween(frameProxy, {frame:this.target.currentFrame}, {frame:this.vars[p]}, {target:this.target});
} else {
if ((((p == "volume")) && (((isDO) || ((this.target is SoundChannel)))))){
addSubTween(volumeProxy, this.target.soundTransform, {volume:this.vars[p]}, {target:this.target});
} else {
if (typeof(this.vars[p]) == "number"){
this.tweens.push({o:this.target, p:p, s:this.target[p], c:(this.vars[p] - this.target[p])});
} else {
this.tweens.push({o:this.target, p:p, s:this.target[p], c:Number(this.vars[p])});
};
};
};
};
};
};
};
if (this.vars.runBackwards == true){
i = (this.tweens.length - 1);
while (i > -1) {
tp = this.tweens[i];
tp.s = (tp.s + tp.c);
tp.c = (tp.c * -1);
i--;
};
};
if (typeof(this.vars.autoAlpha) == "number"){
this.target.visible = !((((this.vars.runBackwards == true)) && ((this.target.alpha == 0))));
};
_initted = true;
}
public function get active():Boolean{
if (_active){
return (true);
};
if (((_curTime - this.initTime) / 1000) > this.delay){
_active = true;
this.startTime = (this.initTime + (this.delay * 1000));
if (!_initted){
initTweenVals();
} else {
if (typeof(this.vars.autoAlpha) == "number"){
this.target.visible = true;
};
};
if (this.vars.onStart != null){
this.vars.onStart.apply(this.vars.onStartScope, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
return (true);
//unresolved jump
};
return (false);
}
public function render($t:uint):void{
var tp:Object;
var i:int;
var time:Number = (($t - this.startTime) / 1000);
if (time > this.duration){
time = this.duration;
};
var factor:Number = this.vars.ease(time, 0, 1, this.duration);
i = (this.tweens.length - 1);
while (i > -1) {
tp = this.tweens[i];
tp.o[tp.p] = (tp.s + (factor * tp.c));
i--;
};
if (_hst){
i = (_subTweens.length - 1);
while (i > -1) {
_subTweens[i].proxy(_subTweens[i]);
i--;
};
};
if (this.vars.onUpdate != null){
this.vars.onUpdate.apply(this.vars.onUpdateScope, this.vars.onUpdateParams);
};
if (time == this.duration){
complete(true);
};
}
protected function easeProxy($t:Number, $b:Number, $c:Number, $d:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function complete($skipRender:Boolean=false):void{
if (!$skipRender){
if (!_initted){
initTweenVals();
};
this.startTime = (_curTime - (this.duration * 1000));
render(_curTime);
return;
};
if ((((typeof(this.vars.autoAlpha) == "number")) && ((this.target.alpha == 0)))){
this.target.visible = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(this.vars.onCompleteScope, this.vars.onCompleteParams);
};
removeTween(this);
}
public static function easeOut($t:Number, $b:Number, $c:Number, $d:Number):Number{
$t = ($t / $d);
return ((((-($c) * $t) * ($t - 2)) + $b));
}
public static function frameProxy($o:Object):void{
$o.info.target.gotoAndStop(Math.round($o.target.frame));
}
public static function removeTween($t:TweenLite=null):void{
if (((!(($t == null))) && (!((_all[$t.target] == undefined))))){
delete _all[$t.target][$t];
};
}
public static function killTweensOf($tg:Object=null, $complete:Boolean=false):void{
var o:Object;
var tw:*;
if (((!(($tg == null))) && (!((_all[$tg] == undefined))))){
if ($complete){
o = _all[$tg];
for (tw in o) {
o[tw].complete(false);
};
};
delete _all[$tg];
};
}
public static function delayedCall($delay:Number, $onComplete:Function, $onCompleteParams:Array=null, $onCompleteScope=null):TweenLite{
return (new TweenLite($onComplete, 0, {delay:$delay, onComplete:$onComplete, onCompleteParams:$onCompleteParams, onCompleteScope:$onCompleteScope, overwrite:false}));
}
public static function from($target:Object, $duration:Number, $vars:Object):TweenLite{
$vars.runBackwards = true;
return (new TweenLite($target, $duration, $vars));
}
public static function executeAll($e:Event=null):void{
var a:Dictionary;
var p:Object;
var tw:Object;
var t:uint = (_curTime = getTimer());
if (_listening){
a = _all;
for each (p in a) {
for (tw in p) {
if (((!((p[tw] == undefined))) && (p[tw].active))){
p[tw].render(t);
};
};
};
};
}
public static function volumeProxy($o:Object):void{
$o.info.target.soundTransform = $o.target;
}
public static function killGarbage($e:TimerEvent):void{
var found:Boolean;
var p:Object;
var twp:Object;
var tw:Object;
var tg_cnt:uint;
for (p in _all) {
found = false;
for (twp in _all[p]) {
found = true;
break;
};
if (!found){
delete _all[p];
} else {
tg_cnt++;
};
};
if (tg_cnt == 0){
_timer.removeEventListener("timer", killGarbage);
_timer.stop();
_listening = false;
};
}
public static function tintProxy($o:Object):void{
var n:Number = $o.target.progress;
var r:Number = (1 - n);
var sc:Object = $o.info.color;
var ec:Object = $o.info.endColor;
$o.info.target.transform.colorTransform = new ColorTransform(((sc.redMultiplier * r) + (ec.redMultiplier * n)), ((sc.greenMultiplier * r) + (ec.greenMultiplier * n)), ((sc.blueMultiplier * r) + (ec.blueMultiplier * n)), ((sc.alphaMultiplier * r) + (ec.alphaMultiplier * n)), ((sc.redOffset * r) + (ec.redOffset * n)), ((sc.greenOffset * r) + (ec.greenOffset * n)), ((sc.blueOffset * r) + (ec.blueOffset * n)), ((sc.alphaOffset * r) + (ec.alphaOffset * n)));
}
public static function to($target:Object, $duration:Number, $vars:Object):TweenLite{
return (new TweenLite($target, $duration, $vars));
}
}
}//package com.gs
Section 161
//FrameRater (com.oaxoa.FrameRater)
package com.oaxoa {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.filters.*;
import flash.text.*;
public class FrameRater extends Sprite {
private var _timer:Timer;
private var _dropShadow:DropShadowFilter;
private var _graph:Sprite;
private var _tf:TextFormat;
private var _showGraph:Boolean;
private var _text:TextField;
private var _graphColor:uint;
private var _c:uint;// = 0
private var _graphCounter:uint;
private var _graphBox:Sprite;
public function FrameRater(textColor:uint=0, drawShadow:Boolean=false, showGraph:Boolean=true, graphColor:uint=0xFF0000){
super();
_showGraph = showGraph;
_graphColor = graphColor;
if (_showGraph){
initGraph();
};
_dropShadow = new DropShadowFilter(1, 90, 0, 1, 2, 2);
_tf = new TextFormat();
_tf.color = textColor;
_tf.font = "_sans";
_tf.size = 11;
_text = new TextField();
_text.width = 100;
_text.height = 20;
_text.x = 3;
if (drawShadow){
_text.filters = [_dropShadow];
};
addChild(_text);
_timer = new Timer(500);
_timer.addEventListener(TimerEvent.TIMER, onTimer);
_timer.start();
addEventListener(Event.ENTER_FRAME, onFrame);
}
public function updateGraph(n:Number):void{
if (_graphCounter > 30){
_graph.x--;
};
_graphCounter++;
_graph.graphics.lineTo(_graphCounter, (1 + ((stage.frameRate - n) / 3)));
}
private function onFrame(event:Event):void{
_c++;
}
private function initGraph():void{
_graphCounter = 0;
_graph = new Sprite();
_graphBox = new Sprite();
_graphBox.graphics.beginFill(0xFF0000);
_graphBox.graphics.drawRect(0, 0, 36, 100);
_graphBox.graphics.endFill();
_graph.mask = _graphBox;
_graph.x = (_graphBox.x = 5);
_graph.y = (_graphBox.y = 20);
_graph.graphics.lineStyle(1, _graphColor);
addChild(_graph);
addChild(_graphBox);
}
private function onTimer(event:TimerEvent):void{
var val:Number = computeTime();
_text.text = (Math.floor(val).toString() + " fps");
_text.setTextFormat(_tf);
_text.autoSize = "left";
if (_showGraph){
updateGraph(val);
};
}
public function computeTime():Number{
var retValue:uint = _c;
_c = 0;
return (((retValue * 2) - 1));
}
}
}//package com.oaxoa
Section 162
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(left:Number=0, top:Number=0, right:Number=0, bottom:Number=0){
super();
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 163
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexMovieClip(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 164
//FlexSprite (mx.core.FlexSprite)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSprite extends Sprite {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexSprite(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 165
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 166
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 167
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(void:Point):Point;
function get name():String;
function set width(flash.display:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(flash.display:String):void;
function set scaleX(flash.display:Number):void;
function set scaleY(flash.display:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(flash.display:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(void:Point):Point;
function get height():Number;
function set blendMode(flash.display:String):void;
function get parent():DisplayObjectContainer;
function getBounds(String:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(flash.display:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(flash.display:Number):void;
function set accessibilityProperties(flash.display:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(flash.display:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(flash.display:Number):void;
function set mask(flash.display:DisplayObject):void;
function getRect(String:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(flash.display:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean;
function set opaqueBackground(flash.display:Object):void;
function set visible(flash.display:Boolean):void;
function get mask():DisplayObject;
function set x(flash.display:Number):void;
function set y(flash.display:Number):void;
function get transform():Transform;
function set filters(flash.display:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(flash.display:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 168
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(E:\dev\3.0.x\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get isDocument():Boolean;
function set repeaters(E:\dev\3.0.x\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function initializeRepeaterArrays(E:\dev\3.0.x\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(E:\dev\3.0.x\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 169
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function MovieClipAsset(){
super();
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 170
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 171
//SpriteAsset (mx.core.SpriteAsset)
package mx.core {
public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function SpriteAsset(){
super();
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 172
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import flash.utils.*;
import mx.core.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.0.0.0";
private static var counter:int = 0;
public function NameUtil(){
super();
}
public static function displayObjectToString(displayObject:DisplayObject):String{
var result:String;
var s:String;
var indices:Array;
var o:DisplayObject = displayObject;
while (o != null) {
if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){
break;
};
s = o.name;
if ((o is IRepeaterClient)){
indices = IRepeaterClient(o).instanceIndices;
if (indices){
s = (s + (("[" + indices.join("][")) + "]"));
};
};
result = ((result == null)) ? s : ((s + ".") + result);
o = o.parent;
};
return (result);
}
public static function createUniqueName(object:Object):String{
if (!object){
return (null);
};
var name:String = getQualifiedClassName(object);
var index:int = name.indexOf("::");
if (index != -1){
name = name.substr((index + 2));
};
var charCode:int = name.charCodeAt((name.length - 1));
if ((((charCode >= 48)) && ((charCode <= 57)))){
name = (name + "_");
};
return ((name + counter++));
}
}
}//package mx.utils
Section 173
//Main (Main)
package {
import com.cipherprime.tricycle.*;
import flash.display.*;
import com.cipherprime.auditorium.models.flow.*;
import com.cipherprime.auditorium.models.act.*;
import com.cipherprime.auditorium.models.audio.*;
import com.cipherprime.auditorium.models.level.*;
import com.cipherprime.tricycle.utils.helpers.*;
import com.cipherprime.auditorium.views.*;
import com.cipherprime.auditorium.controllers.*;
import com.cipherprime.auditorium.routers.*;
import com.cipherprime.auditorium.models.editor.*;
import com.cipherprime.auditorium.*;
import com.cipherprime.auditorium.models.xml.*;
import com.cipherprime.auditorium.models.game.*;
import flash.net.*;
import com.cipherprime.auditorium.models.flow.warps.*;
public class Main extends Tricycle {
public var fullscreenView:FullscreenView;
public var flowView:FlowView;
public var levelModel:LevelModel;
public var layersView:LayersView;
public var winSfx:AudioHelper;
public var itemsView:ItemsView;
public var audioController:AudioController;
public var editorRouter:EditorRouter;
public var flowModel:FlowModel;
public var endView:EndView;
public var fpsView:FPSView;
public var introView:IntroView;
public var editorView:EditorView;
public var actModel:ActModel;
public var editorModel:EditorModel;
public var layers:Object;
public var gameController:GameController;
public var removeView:RemoveView;
public var actController:ActController;
public var config:Configuration;
public var xmlModel:XmlModel;
public var gameModel:GameModel;
public var gameRouter:GameRouter;
public var actView:ActView;
public var trackingRouter:TrackingRouter;
public var configFile:XmlHelper;
public var editorController:EditorController;
public var flowController:FlowController;
public var continueView:ContinueView;
private var _sharedObject:SharedObject;
public var contextMenuView:ContextMenuView;
public var globalDrag:DragWarp;
public var audioModel:AudioModel;
public var itemsController:ItemsController;
public function Main(){
layers = {foreground:new MovieClip(), middleground:new MovieClip(), background:new MovieClip(), wallpaper:new MovieClip(), hud:new MovieClip(), removeitem:new MovieClip()};
_sharedObject = SharedObject.getLocal("gameSettings");
super();
config = new Configuration();
configFile = new XmlHelper("lib/config/config.xml");
configFile.onLoad = _onConfigurationLoaded;
configFile.onIoError = _onConfigurationIoError;
configFile.load();
}
private function _startGame():void{
gameModel = new GameModel();
introView = new IntroView(gameModel, null);
layersView = new LayersView(gameModel, null);
actView = new ActView(actModel, null);
fullscreenView = new FullscreenView(gameModel, null);
contextMenuView = new ContextMenuView(gameModel, null);
endView = new EndView(gameModel, null);
continueView = new ContinueView(gameModel, null);
if (config.tracking){
trackingRouter = new TrackingRouter();
};
gameRouter = new GameRouter();
gameRouter.debug = config.debug;
gameModel.loadIntro();
}
private function _startEditor():void{
editorModel = new EditorModel();
layersView = new LayersView(editorModel, null);
removeView = new RemoveView(flowModel, null);
editorView = new EditorView(editorModel, editorController);
contextMenuView = new ContextMenuView(gameModel, null);
editorRouter = new EditorRouter();
editorRouter.debug = config.debug;
editorModel.start();
}
private function _onConfigurationLoaded():void{
config.populate(configFile.xml);
flowModel = new FlowModel();
audioModel = new AudioModel();
levelModel = new LevelModel();
xmlModel = new XmlModel();
actModel = new ActModel();
audioController = new AudioController(flowModel);
itemsController = new ItemsController(flowModel);
gameController = new GameController(gameModel);
editorController = new EditorController(editorModel);
actController = new ActController(actModel);
itemsView = new ItemsView(flowModel, itemsController);
flowView = new FlowView(flowModel, flowController);
if (!_sharedObject.data.gameQuality){
flowView.quality = FlowView.HIGH_QUALITY;
} else {
flowView.quality = _sharedObject.data.gameQuality;
};
switch (config.mode){
case Configuration.EDITOR_MODE:
_startEditor();
break;
case Configuration.GAME_MODE:
_startGame();
break;
case Configuration.WALKTHROUGH_MODE:
_startWalkthrough();
break;
};
}
private function _onConfigurationIoError():void{
_startGame();
}
private function _startWalkthrough():void{
_startGame();
}
}
}//package