Section 1
//Character (characters.Character)
package characters {
import flash.events.*;
import flash.display.*;
import managers.*;
import levels.*;
import flash.utils.*;
import utils.*;
import flash.filters.*;
public class Character extends MovieClip {
protected var renderedIsRunning:Boolean;
protected var lastX:Number;
protected var lastY:Number;
protected var level:Level;
protected var lastLastX:Number;
protected var lastLastY:Number;
protected var damageFlashTimer:Timer;
protected var bodyMarker:MovieClip;
protected var playingBeforePause:Boolean;
protected var invisible:Boolean;
protected var playing:Boolean;
protected var type:String;
protected var footMarker:MovieClip;
protected var damageFlashCount:uint;
protected var renderedOrientation:String;
protected var flashing:Boolean;
protected var renderedIsRunningFast:Boolean;
public static const INVISIBILITY_FILTER:GlowFilter = new GlowFilter(0xFFFFFF, 1, 5, 5, 1, 1, false, true);
public static const DAMAGE_FLASH_INTERVAL:uint = 34;
public static const DAMAGE_FLASH_NUM_FLASHES:uint = 18;
public static const TYPE_RUSHER:String = "Rusher";
public static const TYPE_TOR:String = "Tor";
public static const TYPE_GAMEBALL:String = "Gameball";
public static const DAMAGE_FLASH_FILTER:GlowFilter = new GlowFilter(0xCC0000, 1, 55, 55, 1.2, 1, true, false);
public static const CHARACTER_FADE_OUT_ALPHA_DECREMENT:Number = 0.04;
public function Character(_arg1:Level, _arg2:String){
this.level = _arg1;
this.type = _arg2;
initialize();
}
public function wasPlayingBeforePause():Boolean{
return (playingBeforePause);
}
override public function stop():void{
playing = false;
super.stop();
}
public function startDamageFlashing():void{
stopDamageFlashing();
flashing = true;
damageFlashCount = 0;
damageFlashTimer = new Timer(DAMAGE_FLASH_INTERVAL);
damageFlashTimer.addEventListener(TimerEvent.TIMER, toggleDamageFlash, false, 0, true);
damageFlashTimer.start();
}
override public function gotoAndStop(_arg1:Object, _arg2:String=null):void{
playing = false;
super.gotoAndStop(_arg1, _arg2);
}
private function initialize():void{
stop();
lastX = (lastY = (lastLastX = (lastLastY = 0)));
playingBeforePause = false;
invisible = false;
footMarker = MovieClip(getChildByName("footMarkerInClip"));
bodyMarker = MovieClip(getChildByName("bodyMarkerInClip"));
renderedOrientation = OrientationManager.S;
renderedIsRunning = false;
renderedIsRunningFast = false;
}
public function stopDamageFlashing():void{
flashing = false;
if (damageFlashTimer != null){
damageFlashTimer.stop();
damageFlashTimer.removeEventListener(TimerEvent.TIMER, toggleDamageFlash);
damageFlashTimer = null;
};
removeDamageFlashFilter();
}
public function isPlaying():Boolean{
return (playing);
}
public function getRenderedOrientation():String{
return (renderedOrientation);
}
public function isInvisible():Boolean{
return (invisible);
}
public function setPlayingBeforePause(_arg1:Boolean):void{
this.playingBeforePause = _arg1;
}
public function getType():String{
return (type);
}
override public function play():void{
playing = true;
super.play();
}
public function isFlashing():Boolean{
return (flashing);
}
public function getFootMarker():MovieClip{
return (footMarker);
}
private function fadeOutEnterFrame(_arg1:Event):void{
alpha = (alpha - CHARACTER_FADE_OUT_ALPHA_DECREMENT);
if (alpha <= 0){
alpha = 0;
stopFadeOut();
};
}
private function applyDamageFlashFilter():void{
var _local1:Array = filters;
_local1.push(DAMAGE_FLASH_FILTER);
filters = _local1;
}
public function getLastX():Number{
return (lastX);
}
public function getLastY():Number{
return (lastY);
}
override public function gotoAndPlay(_arg1:Object, _arg2:String=null):void{
playing = true;
super.gotoAndPlay(_arg1, _arg2);
}
public function stopFadeOut():void{
removeEventListener(Event.ENTER_FRAME, fadeOutEnterFrame);
}
private function toggleDamageFlash(_arg1:TimerEvent):void{
if ((++damageFlashCount % 2) == 1){
applyDamageFlashFilter();
} else {
removeDamageFlashFilter();
};
if (damageFlashCount > DAMAGE_FLASH_NUM_FLASHES){
stopDamageFlashing();
};
}
public function getLastLastX():Number{
return (lastLastX);
}
public function getLastLastY():Number{
return (lastLastY);
}
public function applyInvisibilityFilter():void{
var _local1:Array;
if (!invisible){
invisible = true;
_local1 = filters;
_local1.push(INVISIBILITY_FILTER);
filters = _local1;
};
}
public function startFadeOut():void{
addEventListener(Event.ENTER_FRAME, fadeOutEnterFrame, false, 0, true);
}
public function getBodyMarker():MovieClip{
return (bodyMarker);
}
public function removeInvisibilityFilter():void{
invisible = false;
var _local1:Array = Misc.removeObjectFromArrayUsingByteCheck(filters, INVISIBILITY_FILTER);
filters = _local1;
}
private function removeDamageFlashFilter():void{
var _local1:Array = Misc.removeObjectFromArrayUsingByteCheck(filters, DAMAGE_FLASH_FILTER);
filters = _local1;
}
}
}//package characters
Section 2
//Gameball (characters.Gameball)
package characters {
import flash.display.*;
import levels.*;
public class Gameball extends NonTorCharacter {
public var bodyMarkerInClip:MovieClip;
public var footMarkerInClip:MovieClip;
public static const GAMEBALL_SCALE:Number = 0.6;
public static const HIDING_BEHIND_BUILDING_THRESHOLD:uint = 300;
public static const DEFAULT_RUN_SPEED_SCALAR:Number = 7;
public static const DIAGONAL_RUN_SPEED_SCALAR:Number = 0.73;
public static const WAITING_OUTSIDE_BUILDING_THRESHOLD:uint = 110;
public function Gameball(_arg1:Level){
addFrameScript(0, frame1, 32, frame33, 46, frame47, 62, frame63, 78, frame79, 92, frame93, 105, frame106, 118, frame119, 132, frame133, 162, frame163, 173, frame174, 184, frame185, 194, frame195, 205, frame206, 214, frame215, 224, frame225, 234, frame235, 267, frame268, 278, frame279, 289, frame290, 300, frame301, 312, frame313, 323, frame324, 334, frame335, 345, frame346);
super(_arg1, Character.TYPE_GAMEBALL);
gameballInitialize();
}
function frame195(){
gotoAndPlay("run_scared_fast_ne");
}
function frame174(){
gotoAndPlay("run_scared_fast_se");
}
function frame133(){
gotoAndPlay("run_scared_sw");
}
function frame93(){
gotoAndPlay("run_scared_n");
}
function frame313(){
gotoAndPlay("run_escape_n");
}
function frame215(){
gotoAndPlay("run_scared_fast_nw");
}
function frame324(){
gotoAndPlay("run_escape_nw");
}
function frame119(){
gotoAndPlay("run_scared_w");
}
function frame33(){
gotoAndPlay("run_scared_s");
}
function frame235(){
gotoAndPlay("run_scared_fast_sw");
}
function frame79(){
gotoAndPlay("run_scared_ne");
}
override protected function gotoStandFrame(_arg1:String):void{
gotoAndStop(("stand_" + _arg1));
}
function frame346(){
gotoAndPlay("run_escape_sw");
}
function frame279(){
gotoAndPlay("run_escape_se");
}
function frame335(){
gotoAndPlay("run_escape_w");
}
private function gameballInitialize():void{
scaleX = (scaleY = GAMEBALL_SCALE);
hidingBehindBuildingThreshold = HIDING_BEHIND_BUILDING_THRESHOLD;
waitingOutsideBuildingThreshold = WAITING_OUTSIDE_BUILDING_THRESHOLD;
runSpeedScalar = DEFAULT_RUN_SPEED_SCALAR;
}
function frame1(){
stop();
}
override protected function gotoRunFrame(_arg1:String):void{
gotoAndPlay(("run_scared_" + _arg1));
}
function frame268(){
gotoAndPlay("run_escape_s");
}
function frame163(){
gotoAndPlay("run_scared_fast_s");
}
override protected function gotoRunFastFrame(_arg1:String):void{
gotoAndPlay(("run_scared_fast_" + _arg1));
}
function frame63(){
gotoAndPlay("run_scared_e");
}
function frame206(){
gotoAndPlay("run_scared_fast_n");
}
override protected function gotoRunToSafetyZoneFrame(_arg1:String):void{
gotoAndPlay(("run_escape_" + _arg1));
}
function frame301(){
gotoAndPlay("run_escape_ne");
}
function frame225(){
gotoAndPlay("run_scared_fast_w");
}
function frame185(){
gotoAndPlay("run_scared_fast_e");
}
function frame47(){
gotoAndPlay("run_scared_se");
}
function frame106(){
gotoAndPlay("run_scared_nw");
}
function frame290(){
gotoAndPlay("run_escape_e");
}
}
}//package characters
Section 3
//NonTorCharacter (characters.NonTorCharacter)
package characters {
import flash.events.*;
import flash.display.*;
import managers.*;
import levels.*;
import flash.geom.*;
import structures.*;
import enemies.*;
import utils.*;
public class NonTorCharacter extends Character {
protected var retreatingToOutsideBuilding:Boolean;
protected var active:Boolean;
protected var behindBuilding:Boolean;
protected var runSpeedScalar:uint;
protected var safetyZoneDestPoint:Point;
protected var transitioningToOutsideBuilding:Boolean;
protected var followingTor:Boolean;
protected var safetyZoneRight:Number;
protected var hidingSpot:HidingSpot;
protected var inSafetyZone:Boolean;
protected var safetyZone:SafetyZone;
protected var lastLegitimateFollowAngle:Number;
protected var transitioningToSafetyZone:Boolean;
protected var retreating:Boolean;
protected var torFollowerIndex:int;
protected var retreatingToBehindBuilding:Boolean;
protected var safetyZoneLeft:Number;
protected var tor:Tor;
protected var safetyZoneTop:Number;
protected var waitingOutsideBuildingThreshold:uint;
protected var safetyZoneBottom:Number;
protected var transitioning:Boolean;
protected var transitioningToFollowingTor:Boolean;
protected var outsideBuilding:Boolean;
protected var transitioningToBehindBuilding:Boolean;
protected var hidingBehindBuildingThreshold:uint;
public static const TOR_FOLLOWER_TO_FOLLOWER_DISTANCE_SCALAR:Number = 32;
public static const STATIC_STATE_BEHIND_BUILDING:uint = 0;
public static const OUTSIDE_BUILDING_TRANSITION_END_CUSHION:uint = 6;
public static const TRANSITION_STATE_TO_OUTSIDE_BUILDING:uint = 1;
public static const STATIC_STATE_FOLLOWING_TOR:uint = 2;
public static const RETREAT_STATE_TO_OUTSIDE_BUILDING:uint = 0;
public static const TRANSITION_STATE_TO_BEHIND_BUILDING:uint = 0;
public static const TOR_FOLLOWER_TO_FOLLOWER_STOPPING_RADIUS:uint = 38;
public static const CHARACTER_TO_FOLLOW_NEGLIGIBLE_DISTANCE_TRAVELLED:uint = 1;
public static const SAFETY_ZONE_TRANSITION_END_CUSHION:uint = 30;
public static const OUTSIDE_BUILDING_RETREAT_END_CUSHION:uint = 10;
public static const TRANSITION_STATE_TO_FOLLOWING_TOR:uint = 2;
public static const STATIC_STATE_IN_SAFETY_ZONE:uint = 3;
public static const STATIC_STATE_OUTSIDE_BUILDING:uint = 1;
public static const FOLLOWING_TOR_TRANSITION_END_CUSHION:uint = 60;
public static const BEHIND_BUILDING_TRANSITION_END_CUSHION:uint = 6;
public static const RETREAT_STATE_TO_BEHIND_BUILDING:uint = 1;
public static const TRANSITION_STATE_TO_SAFETY_ZONE:uint = 3;
public static const BEHIND_BUILDING_RETREAT_END_CUSHION:uint = 6;
public function NonTorCharacter(_arg1:Level, _arg2:String){
super(_arg1, _arg2);
nonTorCharacterInitialize();
}
protected function gotoStandFrame(_arg1:String):void{
}
private function getClosestUnoccupiedHidingSpot():HidingSpot{
var _local2:HidingSpot;
var _local4:uint;
var _local1:Array = level.getHidingSpots();
var _local3:uint = _local1.length;
var _local5:Array = new Array();
var _local6:Point = new Point(x, y);
_local4 = 0;
while (_local4 < _local3) {
_local2 = HidingSpot(_local1[_local4]);
if (!_local2.isOccupied()){
_local5[_local5.length] = {hidingSpot:_local2, distance:Misc.getQuickInaccurateDistanceBetween(_local6, _local2.getSpot())};
};
_local4++;
};
_local5.sortOn("distance");
_local4 = 0;
while (_local4 < _local5.length) {
_local2 = HidingSpot(_local5[_local4]["hidingSpot"]);
if (!_local2.isOccupied()){
return (_local2);
};
_local4++;
};
return (HidingSpot(_local5[0]["hidingSpot"]));
}
private function getDestPointForTorFollower(_arg1:Character):Point{
var _local2:Number = _arg1.x;
var _local3:Number = _arg1.y;
var _local4:Number = _arg1.getLastLastX();
var _local5:Number = _arg1.getLastLastY();
var _local6:Number = Misc.getAngleBetween(new Point(_local2, _local3), new Point(_local4, _local5));
if (!isNaN(lastLegitimateFollowAngle)){
_local6 = ((_local6 + lastLegitimateFollowAngle) / 2);
};
lastLegitimateFollowAngle = _local6;
var _local7:Number = (Math.cos(_local6) * TOR_FOLLOWER_TO_FOLLOWER_DISTANCE_SCALAR);
var _local8:Number = (Math.sin(_local6) * TOR_FOLLOWER_TO_FOLLOWER_DISTANCE_SCALAR);
return (new Point((((_local2 + _local7) + _local4) / 2), (((_local3 + _local8) + _local5) / 2)));
}
public function isInSafetyZone():Boolean{
return (inSafetyZone);
}
public function isFollowingTor():Boolean{
return (followingTor);
}
private function setTransitionState(_arg1:int):void{
transitioningToBehindBuilding = false;
transitioningToOutsideBuilding = false;
transitioningToFollowingTor = false;
transitioningToSafetyZone = false;
transitioning = true;
switch (_arg1){
case TRANSITION_STATE_TO_BEHIND_BUILDING:
transitioningToBehindBuilding = true;
break;
case TRANSITION_STATE_TO_OUTSIDE_BUILDING:
transitioningToOutsideBuilding = true;
break;
case TRANSITION_STATE_TO_FOLLOWING_TOR:
transitioningToFollowingTor = true;
break;
case TRANSITION_STATE_TO_SAFETY_ZONE:
transitioningToSafetyZone = true;
break;
default:
transitioning = false;
};
}
private function stopAndFaceTor():void{
var _local1:Number = Misc.getAngleBetween(new Point(x, y), new Point(tor.x, tor.y));
var _local2:String = OrientationManager.getOrientationUsingVelocities(Math.cos(_local1), Math.sin(_local1), true);
renderedOrientation = _local2;
renderedIsRunning = (renderedIsRunningFast = false);
gotoStandFrame(_local2);
}
private function setStaticState(_arg1:int):void{
behindBuilding = false;
outsideBuilding = false;
followingTor = false;
switch (_arg1){
case STATIC_STATE_BEHIND_BUILDING:
behindBuilding = true;
break;
case STATIC_STATE_OUTSIDE_BUILDING:
outsideBuilding = true;
break;
case STATIC_STATE_FOLLOWING_TOR:
followingTor = true;
break;
case STATIC_STATE_IN_SAFETY_ZONE:
inSafetyZone = true;
break;
};
}
public function isRetreating():Boolean{
return (retreating);
}
private function checkForSafetyZone():void{
if (((((((((((!(retreating)) && (!(transitioning)))) && ((x > safetyZoneLeft)))) && ((x < safetyZoneRight)))) && ((y > safetyZoneTop)))) && ((y < safetyZoneBottom)))){
enteringSafetyZone();
safetyZoneDestPoint = safetyZone.getRandomPointInsideZone();
setTransitionState(TRANSITION_STATE_TO_SAFETY_ZONE);
};
}
private function setRetreatState(_arg1:int):void{
retreatingToOutsideBuilding = false;
retreatingToBehindBuilding = false;
retreating = true;
switch (_arg1){
case RETREAT_STATE_TO_OUTSIDE_BUILDING:
retreatingToOutsideBuilding = true;
break;
case RETREAT_STATE_TO_BEHIND_BUILDING:
retreatingToBehindBuilding = true;
break;
default:
retreating = false;
};
}
private function manageDepthsAndCheckForHarmfulCollisions():void{
var _local5:DepthSensitiveObject;
var _local6:MovieClip;
var _local7:Bot;
var _local8:Gameball;
var _local9:Rusher;
var _local10:uint;
var _local11:uint;
var _local12:String;
var _local13:Point;
var _local14:MovieClip;
var _local15:Point;
var _local16:Number;
var _local1:Array = level.getDepthSensitiveObjects();
var _local2:Array = level.getBots();
var _local3:Array = level.getGameballs();
var _local4:Array = level.getRushers();
_local10 = getDepth();
for (_local12 in _local1) {
_local5 = DepthSensitiveObject(_local1[_local12]);
if (_local5.isActive()){
_local6 = _local5.getObject();
_local11 = level.getChildIndex(_local6);
if ((((_local5.getObjectBaseY() >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local6, _local10);
_local10 = getDepth();
} else {
if ((((_local5.getObjectBaseY() < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
};
};
for (_local12 in _local2) {
_local7 = Bot(_local2[_local12]);
if (_local7.isActive()){
_local11 = level.getChildIndex(_local7);
if ((((_local7.y >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local7, _local10);
_local10 = getDepth();
} else {
if ((((_local7.y < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
_local13 = localToGlobal(new Point(footMarker.x, footMarker.y));
_local14 = _local7.getFootMarker();
_local15 = _local7.localToGlobal(new Point(_local14.x, _local14.y));
if ((((renderedOrientation == OrientationManager.E)) || ((renderedOrientation == OrientationManager.W)))){
_local16 = Tor.SIDEWAYS_BOT_COLLISION_BUFFER;
} else {
_local16 = 0;
};
if (((((((!(retreating)) && (!(transitioning)))) && (!(behindBuilding)))) && (!(outsideBuilding)))){
if ((Math.abs((_local13.x - _local15.x)) + _local16) < Math.abs(((footMarker.width / 2) + (_local14.width / 2)))){
if (Math.abs((_local13.y - _local15.y)) < Math.abs(((footMarker.height / 2) + (_local14.height / 2)))){
if (!flashing){
retreatToClosestUnoccupiedHidingSpot();
startDamageFlashing();
level.getGame().getController().getSoundManager().playDamageSound();
};
break;
};
};
};
};
};
for (_local12 in _local3) {
_local8 = Gameball(_local3[_local12]);
if (_local8.isActive()){
_local11 = level.getChildIndex(_local8);
if ((((_local8.y >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local8, _local10);
_local10 = getDepth();
} else {
if ((((_local8.y < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
};
};
for (_local12 in _local4) {
_local9 = Rusher(_local4[_local12]);
if (_local9.isActive()){
_local11 = level.getChildIndex(_local9);
if ((((_local9.y >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local9, _local10);
_local10 = getDepth();
} else {
if ((((_local9.y < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
};
};
}
protected function gotoRunFastFrame(_arg1:String):void{
}
public function setHidingSpot(_arg1:HidingSpot):void{
this.hidingSpot = _arg1;
_arg1.setOccupied(true);
}
protected function gotoRunFrame(_arg1:String):void{
}
public function retreatToClosestUnoccupiedHidingSpot():void{
removeSelfFromFollowers();
removeInvisibilityFilter();
hidingSpot = getClosestUnoccupiedHidingSpot();
hidingSpot.setOccupied(true);
stopTransition();
setStaticState(STATIC_STATE_OUTSIDE_BUILDING);
setRetreatState(RETREAT_STATE_TO_OUTSIDE_BUILDING);
}
public function isWaitingOutsideBuilding():Boolean{
return (outsideBuilding);
}
public function isHidingBehindBuilding():Boolean{
return (behindBuilding);
}
public function getTorFollowerIndex():int{
return (torFollowerIndex);
}
public function setTorFollowerIndex(_arg1:uint):void{
this.torFollowerIndex = _arg1;
}
private function moveTowardPoint(_arg1:Point, _arg2:Boolean=false):void{
var _local3:Number = Misc.getAngleBetween(new Point(x, y), _arg1);
var _local4:int = tor.getNumGameballFollowers();
var _local5:Number = ((Math.cos(_local3) * runSpeedScalar) * Tor.GAMEBALLS_FOLLOWING__RUN_SPEED_SCALAR[_local4]);
var _local6:Number = ((Math.sin(_local3) * runSpeedScalar) * Tor.GAMEBALLS_FOLLOWING__RUN_SPEED_SCALAR[_local4]);
var _local7:String = OrientationManager.getOrientationUsingVelocities(_local5, _local6, true);
var _local8:Boolean;
var _local9:Boolean;
if (((!((_local5 == 0))) || (!((_local6 == 0))))){
_local8 = true;
if (((tor.isStaminaStarBoostEnabled()) && (followingTor))){
_local5 = (_local5 * Tor.STAMINA_STAR_BOOST_MULTIPLIER);
_local6 = (_local6 * Tor.STAMINA_STAR_BOOST_MULTIPLIER);
_local9 = true;
};
};
if (_local8){
if (((((!((renderedOrientation == _local7))) || (!((renderedIsRunning == _local8))))) || (!((renderedIsRunningFast == _local9))))){
renderedOrientation = _local7;
renderedIsRunning = true;
renderedIsRunningFast = _local9;
if (_arg2){
gotoRunToSafetyZoneFrame(_local7);
} else {
if (_local9){
gotoRunFastFrame(_local7);
} else {
gotoRunFrame(_local7);
};
};
};
} else {
renderedIsRunning = false;
gotoStandFrame(renderedOrientation);
};
x = (x + _local5);
y = (y + _local6);
}
private function getTorFollowerCharacterToFollow():Character{
var _local1:Character;
var _local3:int;
var _local2:int = tor.getNumFollowers();
if ((((_local2 == 0)) || ((torFollowerIndex == 0)))){
return (tor);
};
if ((((torFollowerIndex > -1)) && (!(transitioning)))){
_local3 = (torFollowerIndex - 1);
} else {
_local3 = (tor.getNumFollowers() - 1);
};
while (true) {
_local1 = tor.getFollower(_local3);
if (!NonTorCharacter(_local1).isTransitioning()){
return (_local1);
};
--_local3;
if (_local3 < 0){
return (tor);
};
};
return (tor);
}
public function enteringSafetyZone():void{
removeSelfFromFollowers();
removeInvisibilityFilter();
if (type == Character.TYPE_GAMEBALL){
level.gameballReturned();
} else {
if (type == Character.TYPE_RUSHER){
level.rusherReturned();
};
};
setStaticState(STATIC_STATE_IN_SAFETY_ZONE);
}
public function getDepth():int{
return (level.getChildIndex(this));
}
public function setSafetyZoneDestPoint(_arg1:Point):void{
this.safetyZoneDestPoint = _arg1;
}
protected function gotoRunToSafetyZoneFrame(_arg1:String):void{
}
public function isTransitioning():Boolean{
return (transitioning);
}
private function stopRetreat():void{
setRetreatState(-1);
}
private function enterFrameBehavior(_arg1:Event):void{
var _local2:Point;
var _local3:Character;
if (!level.isPaused()){
if (transitioning){
if (transitioningToFollowingTor){
_local3 = getTorFollowerCharacterToFollow();
_local2 = getDestPointForTorFollower(_local3);
moveTowardPoint(_local2);
if (Misc.getDistanceBetween(new Point(x, y), new Point(_local3.x, _local3.y)) < FOLLOWING_TOR_TRANSITION_END_CUSHION){
stopTransition();
if (tor.isInvisible()){
applyInvisibilityFilter();
};
};
} else {
if (transitioningToOutsideBuilding){
_local2 = hidingSpot.getEntrance();
moveTowardPoint(_local2);
if (Misc.getDistanceBetween(new Point(x, y), _local2) < OUTSIDE_BUILDING_TRANSITION_END_CUSHION){
stopTransition();
};
} else {
if (transitioningToBehindBuilding){
_local2 = hidingSpot.getSpot();
moveTowardPoint(_local2);
if (Misc.getDistanceBetween(new Point(x, y), _local2) < BEHIND_BUILDING_TRANSITION_END_CUSHION){
stopTransition();
};
} else {
if (transitioningToSafetyZone){
moveTowardPoint(safetyZoneDestPoint, true);
if (Misc.getDistanceBetween(new Point(x, y), safetyZoneDestPoint) < SAFETY_ZONE_TRANSITION_END_CUSHION){
arrivedAtSafetyZoneDestPoint();
};
};
};
};
};
} else {
if (retreating){
if (retreatingToOutsideBuilding){
_local2 = hidingSpot.getEntrance();
moveTowardPoint(_local2);
if (Misc.getDistanceBetween(new Point(x, y), _local2) < OUTSIDE_BUILDING_RETREAT_END_CUSHION){
setStaticState(STATIC_STATE_BEHIND_BUILDING);
setRetreatState(RETREAT_STATE_TO_BEHIND_BUILDING);
};
} else {
if (retreatingToBehindBuilding){
_local2 = hidingSpot.getSpot();
moveTowardPoint(_local2);
if (Misc.getDistanceBetween(new Point(x, y), _local2) < BEHIND_BUILDING_RETREAT_END_CUSHION){
setStaticState(STATIC_STATE_BEHIND_BUILDING);
stopRetreat();
};
};
};
} else {
if (followingTor){
_local3 = getTorFollowerCharacterToFollow();
_local2 = getDestPointForTorFollower(_local3);
if (Misc.getDistanceBetween(new Point(x, y), new Point(_local3.x, _local3.y)) < TOR_FOLLOWER_TO_FOLLOWER_STOPPING_RADIUS){
stopAndFaceTor();
} else {
moveTowardPoint(_local2);
};
} else {
if (outsideBuilding){
standFacingTor();
if (Misc.getDistanceBetween(new Point(x, y), new Point(tor.x, tor.y)) < waitingOutsideBuildingThreshold){
if (type == TYPE_GAMEBALL){
torFollowerIndex = tor.addGameballFollower(Gameball(this));
} else {
if (type == TYPE_RUSHER){
torFollowerIndex = tor.addRusherFollower(Rusher(this));
};
};
hidingSpot.setOccupied(false);
hidingSpot = null;
setStaticState(STATIC_STATE_FOLLOWING_TOR);
setTransitionState(TRANSITION_STATE_TO_FOLLOWING_TOR);
level.getGame().getController().getSoundManager().playCharacterPickupSound();
};
} else {
if (behindBuilding){
standFacingTor();
if (Misc.getDistanceBetween(new Point(x, y), new Point(tor.x, tor.y)) < hidingBehindBuildingThreshold){
setStaticState(STATIC_STATE_OUTSIDE_BUILDING);
setTransitionState(TRANSITION_STATE_TO_OUTSIDE_BUILDING);
level.getGame().getController().getSoundManager().playCharacterAppearsSound();
};
};
};
};
};
};
manageDepthsAndCheckForHarmfulCollisions();
if (!inSafetyZone){
checkForSafetyZone();
};
lastLastX = lastX;
lastLastY = lastY;
lastX = x;
lastY = y;
};
}
public function isActive():Boolean{
return (active);
}
private function nonTorCharacterInitialize():void{
active = false;
torFollowerIndex = -1;
retreating = false;
setStaticState(NonTorCharacter.STATIC_STATE_BEHIND_BUILDING);
stopTransition();
stopRetreat();
}
public function arrivedAtSafetyZoneDestPoint():void{
stopTransition();
standFacingTor();
deactivate();
}
public function activate():void{
active = true;
tor = level.getTor();
safetyZone = level.getSafetyZone();
safetyZoneLeft = safetyZone.getZoneLeft();
safetyZoneRight = safetyZone.getZoneRight();
safetyZoneTop = safetyZone.getZoneTop();
safetyZoneBottom = safetyZone.getZoneBottom();
addEventListener(Event.ENTER_FRAME, enterFrameBehavior, false, 0, true);
}
public function deactivate():void{
active = false;
removeEventListener(Event.ENTER_FRAME, enterFrameBehavior);
}
private function stopTransition():void{
setTransitionState(-1);
}
private function removeSelfFromFollowers():void{
if (type == Character.TYPE_GAMEBALL){
tor.removeGameballFollower(Gameball(this));
} else {
if (type == Character.TYPE_RUSHER){
tor.removeRusherFollower(Rusher(this));
};
};
}
private function standFacingTor():void{
var _local2:String;
var _local1:Number = Misc.getAngleBetween(new Point(x, y), new Point(tor.x, tor.y));
_local2 = (renderedOrientation = OrientationManager.getOrientationUsingVelocities(Math.cos(_local1), Math.sin(_local1), true));
renderedIsRunning = false;
renderedIsRunningFast = false;
gotoStandFrame(_local2);
}
}
}//package characters
Section 4
//Rusher (characters.Rusher)
package characters {
import flash.display.*;
import levels.*;
public class Rusher extends NonTorCharacter {
public var bodyMarkerInClip:MovieClip;
public var footMarkerInClip:MovieClip;
public static const RUSHER_SCALE:Number = 0.7;
public static const HIDING_BEHIND_BUILDING_THRESHOLD:uint = 400;
public static const DEFAULT_RUN_SPEED_SCALAR:uint = 7;
public static const DIAGONAL_RUN_SPEED_SCALAR:Number = 0.73;
public static const WAITING_OUTSIDE_BUILDING_THRESHOLD:uint = 200;
public function Rusher(_arg1:Level){
addFrameScript(0, frame1, 42, frame43, 59, frame60, 75, frame76, 89, frame90, 106, frame107, 123, frame124, 140, frame141, 156, frame157, 183, frame184, 195, frame196, 207, frame208, 219, frame220, 231, frame232, 242, frame243, 253, frame254, 263, frame264);
super(_arg1, Character.TYPE_RUSHER);
rusherInitialize();
}
function frame196(){
gotoAndPlay("run_fast_se");
}
function frame90(){
gotoAndPlay("run_ne");
}
function frame157(){
gotoAndPlay("run_sw");
}
override protected function gotoStandFrame(_arg1:String):void{
gotoAndStop(("stand_" + _arg1));
}
function frame232(){
gotoAndPlay("run_fast_n");
}
function frame76(){
gotoAndPlay("run_e");
}
function frame254(){
gotoAndPlay("run_fast_w");
}
function frame184(){
gotoAndPlay("run_fast_s");
}
function frame141(){
gotoAndPlay("run_w");
}
function frame220(){
gotoAndPlay("run_fast_ne");
}
function frame1(){
stop();
}
override protected function gotoRunFrame(_arg1:String):void{
gotoAndPlay(("run_" + _arg1));
}
function frame124(){
gotoAndPlay("run_nw");
}
function frame60(){
gotoAndPlay("run_se");
}
override protected function gotoRunFastFrame(_arg1:String):void{
gotoAndPlay(("run_fast_" + _arg1));
}
function frame264(){
gotoAndPlay("run_fast_sw");
}
function frame243(){
gotoAndPlay("run_fast_nw");
}
override protected function gotoRunToSafetyZoneFrame(_arg1:String):void{
gotoAndPlay(("run_fast_" + _arg1));
}
function frame208(){
gotoAndPlay("run_fast_e");
}
function frame107(){
gotoAndPlay("run_n");
}
private function rusherInitialize():void{
scaleX = (scaleY = RUSHER_SCALE);
hidingBehindBuildingThreshold = HIDING_BEHIND_BUILDING_THRESHOLD;
waitingOutsideBuildingThreshold = WAITING_OUTSIDE_BUILDING_THRESHOLD;
runSpeedScalar = DEFAULT_RUN_SPEED_SCALAR;
}
function frame43(){
gotoAndPlay("run_s");
}
}
}//package characters
Section 5
//Tor (characters.Tor)
package characters {
import flash.events.*;
import flash.display.*;
import managers.*;
import levels.*;
import flash.geom.*;
import ui.*;
import structures.*;
import enemies.*;
import powerups.*;
import flash.utils.*;
import utils.*;
import com.coreyoneil.collision.*;
public class Tor extends Character {
private var gameballSenseTimer:Timer;
private var followers:Array;
private var staminaStarRegenerationTimer:Timer;
private var staminaStarBoostEnabled:Boolean;
private var gameballsRemainingBubble:GameballsRemainingBubble;
private var numGameballFollowers:uint;
public var footMarkerInClip:MovieClip;
private var invisibilityTimer:Timer;
private var staminaStarBoostTimer:Timer;
private var numRusherFollowers:uint;
public var bodyMarkerInClip:MovieClip;
private var gameballSenseArrow:GameballSenseArrow;
private var staminaQuarters:int;
private var timeFreezeEnabled:Boolean;
private var irregularCollidableObjects:CollisionList;
private var timeFreezeTimer:Timer;
public static const TIMEFREEZE_DURATION:int = 7000;
public static const MAX_STAMINA_QUARTERS:int = 16;
public static const STARTING_STAMINA_QUARTERS:int = 12;
public static const INVISIBILITY_DURATION:int = 7000;
public static const TOR_NORMAL_SCALE:Number = 0.51;
public static const DIAGONAL_RUN_SPEED_SCALAR:Number = 0.73;
public static const GAMEBALLS_FOLLOWING__RUN_SPEED_SCALAR:Array = new Array(1, 0.95, 0.9, 0.85, 0.8, 0.75, 0.7, 0.65, 0.6, 0.55, 0.5);
public static const STAMINA_STAR_BOOST_DURATION:int = 7000;
public static const GAMEBALL_SENSE_MAX_DISTANCE:uint = 850;
public static const SIDEWAYS_BOT_COLLISION_BUFFER:Number = 3;
public static const STAMINA_STAR_BOOST_MULTIPLIER:Number = 1.35;
public static const IRREGULAR_COLLISION_BOUNCE_COMPENSATION_FACTOR:uint = 3;
public static const STAMINA_STAR_REGENERATION_INTERVAL:uint = 3000;
public static const DEFAULT_RUN_SPEED_SCALAR:Number = 7;
public static const GAMEBALL_SENSE_TIMER_INTERVAL:uint = 150;
public function Tor(_arg1:Level){
addFrameScript(0, frame1, 29, frame30, 42, frame43, 55, frame56, 69, frame70, 83, frame84, 97, frame98, 111, frame112, 125, frame126, 142, frame143, 152, frame153, 163, frame164, 174, frame175, 185, frame186, 196, frame197, 207, frame208, 218, frame219);
super(_arg1, Character.TYPE_TOR);
torInitialize();
}
public function displayGameballsRemainingBubble(_arg1:uint):void{
if (gameballsRemainingBubble == null){
gameballsRemainingBubble = new GameballsRemainingBubble(this, _arg1);
addChild(gameballsRemainingBubble);
} else {
gameballsRemainingBubble.updateNumRemaining(_arg1);
};
}
function frame70(){
gotoAndPlay("run_ne");
}
function frame153(){
gotoAndPlay("run_fast_se");
}
public function pauseTimeFreezeTimer():void{
if (timeFreezeTimer != null){
timeFreezeTimer.stop();
};
}
private function getDepth():int{
return (level.getChildIndex(this));
}
private function teleportPowerupPickedUp():void{
var _local2:NonTorCharacter;
var _local3:Point;
var _local1:Point = level.getSafetyZone().getCenterPoint();
x = _local1.x;
y = _local1.y;
while (followers.length > 0) {
_local2 = NonTorCharacter(followers[0]);
_local3 = level.getSafetyZone().getRandomPointInsideZone();
_local2.setSafetyZoneDestPoint(_local3);
_local2.x = _local3.x;
_local2.y = _local3.y;
_local2.enteringSafetyZone();
_local2.arrivedAtSafetyZoneDestPoint();
};
level.getActivityManager().updateActivity(null, true);
}
function frame164(){
gotoAndPlay("run_fast_e");
}
private function invisibilityTimeUp(_arg1:TimerEvent):void{
removeInvisibilityFilter();
var _local2:uint;
while (_local2 < followers.length) {
Character(followers[_local2]).removeInvisibilityFilter();
_local2++;
};
removeInvisibilityTimerAndListener();
}
public function manageDepthsAndCheckForHarmfulCollisions():void{
var _local5:DepthSensitiveObject;
var _local6:MovieClip;
var _local7:Bot;
var _local8:Gameball;
var _local9:Rusher;
var _local10:uint;
var _local11:uint;
var _local12:String;
var _local13:MovieClip;
var _local14:Point;
var _local15:Point;
var _local16:Number;
var _local1:Array = level.getDepthSensitiveObjects();
var _local2:Array = level.getBots();
var _local3:Array = level.getGameballs();
var _local4:Array = level.getRushers();
_local10 = getDepth();
for (_local12 in _local1) {
_local5 = DepthSensitiveObject(_local1[_local12]);
if (_local5.isActive()){
_local6 = _local5.getObject();
_local11 = level.getChildIndex(_local6);
if ((((_local5.getObjectBaseY() >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local6, _local10);
_local10 = getDepth();
} else {
if ((((_local5.getObjectBaseY() < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
};
};
for (_local12 in _local2) {
_local7 = Bot(_local2[_local12]);
if (_local7.isActive()){
_local11 = level.getChildIndex(_local7);
if ((((_local7.y >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local7, _local10);
_local10 = getDepth();
} else {
if ((((_local7.y < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
_local14 = localToGlobal(new Point(footMarker.x, footMarker.y));
_local13 = _local7.getFootMarker();
_local15 = _local7.localToGlobal(new Point(_local13.x, _local13.y));
if ((((renderedOrientation == OrientationManager.E)) || ((renderedOrientation == OrientationManager.W)))){
_local16 = SIDEWAYS_BOT_COLLISION_BUFFER;
} else {
_local16 = 0;
};
if ((Math.abs((_local14.x - _local15.x)) + _local16) < Math.abs(((footMarker.width / 2) + (_local13.width / 2)))){
if (Math.abs((_local14.y - _local15.y)) < Math.abs(((footMarker.height / 2) + (_local13.height / 2)))){
if (!flashing){
if (loseStaminaQuartersToDamage(_local7.getCollisionDamage())){
startDamageFlashing();
} else {
return;
};
};
break;
};
};
};
};
for (_local12 in _local3) {
_local8 = Gameball(_local3[_local12]);
if (_local8.isActive()){
_local11 = level.getChildIndex(_local8);
if ((((_local8.y >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local8, _local10);
_local10 = getDepth();
} else {
if ((((_local8.y < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
};
};
for (_local12 in _local4) {
_local9 = Rusher(_local4[_local12]);
if (_local9.isActive()){
_local11 = level.getChildIndex(_local9);
if ((((_local9.y >= y)) && ((_local10 > _local11)))){
level.setChildIndex(_local9, _local10);
_local10 = getDepth();
} else {
if ((((_local9.y < y)) && ((_local11 > _local10)))){
level.setChildIndex(this, _local11);
_local10 = getDepth();
};
};
};
};
level.getScreenPositionAndDepthManager().moveToTopOfLevel(level.getAlwaysOnTopStructureContainer());
}
function frame84(){
gotoAndPlay("run_n");
}
function frame208(){
gotoAndPlay("run_fast_w");
}
public function pauseStaminaStarRegenerationTimer():void{
if (staminaStarRegenerationTimer != null){
staminaStarRegenerationTimer.stop();
};
}
public function disableGameballSense():void{
gameballSenseTimer.stop();
gameballSenseTimer.removeEventListener(TimerEvent.TIMER, senseNearestGameball);
}
public function pauseInvisibilityTimer():void{
if (invisibilityTimer != null){
invisibilityTimer.stop();
};
}
public function enableStaminaStarRegenerationTimer():void{
removeStaminaStarRegenerationTimerAndListener();
staminaStarRegenerationTimer = new Timer(STAMINA_STAR_REGENERATION_INTERVAL);
staminaStarRegenerationTimer.addEventListener(TimerEvent.TIMER, regenerateStaminaStar, false, 0, true);
staminaStarRegenerationTimer.start();
}
function frame175(){
gotoAndPlay("run_fast_ne");
}
public function pickupPowerup(_arg1:Powerup):void{
switch (_arg1.getType()){
case Powerup.POWERUP_TYPE_INVISIBILITY:
level.getGame().getController().getSoundManager().playInvisibilityPowerupPickupSound();
invisibilityPowerupPickedUp();
break;
case Powerup.POWERUP_TYPE_STAMINA:
level.getGame().getController().getSoundManager().playStaminaPowerupPickupSound();
staminaPowerupPickedUp();
break;
case Powerup.POWERUP_TYPE_TELEPORT:
level.getGame().getController().getSoundManager().playTeleportPowerupPickupSound();
teleportPowerupPickedUp();
break;
case Powerup.POWERUP_TYPE_TIMEFREEZE:
level.getGame().getController().getSoundManager().playTimeFreezePowerupPickupSound();
timeFreezePowerupPickedUp();
break;
};
level.removeChild(_arg1);
Misc.removeObjectFromArray(level.getPowerupArray(), _arg1);
}
private function torInitialize():void{
var _local3:uint;
numGameballFollowers = 0;
numRusherFollowers = 0;
followers = new Array();
staminaQuarters = STARTING_STAMINA_QUARTERS;
disableTimeFreeze();
disableStaminaStarBoost();
scaleX = (scaleY = TOR_NORMAL_SCALE);
irregularCollidableObjects = new CollisionList(footMarker);
var _local1:Array = level.getIrregularCollidableObjects();
var _local2:uint = _local1.length;
_local3 = 0;
while (_local3 < _local2) {
irregularCollidableObjects.addItem(MovieClip(_local1[_local3]));
_local3++;
};
gameballSenseArrow = new GameballSenseArrow(this);
level.addChild(gameballSenseArrow);
enableGameballSense();
}
function frame98(){
gotoAndPlay("run_nw");
}
public function pauseStaminaStarBoostTimer():void{
if (staminaStarBoostTimer != null){
staminaStarBoostTimer.stop();
};
}
private function adhereToInnerTLBR(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point):void{
var _local5:Boolean;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
if ((((((((_arg2.x > _arg3.x)) && ((_arg2.x < _arg4.x)))) && ((_arg2.y > _arg3.y)))) && ((_arg2.y < _arg4.y)))){
_local5 = false;
if (_arg1.x < _arg3.x){
_arg2.x = Math.floor(_arg3.x);
_local5 = true;
} else {
if (_arg1.x > _arg4.x){
_arg2.x = Math.ceil(_arg4.x);
_local5 = true;
};
};
if (_arg1.y < _arg3.y){
_arg2.y = Math.floor(_arg3.y);
_local5 = true;
} else {
if (_arg1.y > _arg4.y){
_arg2.y = Math.ceil(_arg4.y);
_local5 = true;
};
};
if (!_local5){
_local6 = (_arg2.x - _arg3.x);
_local7 = (_arg4.x - _arg2.x);
_local8 = (_arg2.y - _arg3.y);
_local9 = (_arg4.y - _arg2.y);
_local10 = Math.min(_local6, _local7, _local8, _local9);
switch (_local10){
case _local6:
_arg2.x = Math.floor(_arg3.x);
break;
case _local7:
_arg2.x = Math.ceil(_arg4.x);
break;
case _local8:
_arg2.y = Math.floor(_arg3.y);
break;
case _local9:
_arg2.y = Math.ceil(_arg4.y);
break;
};
};
};
}
public function whistle():void{
}
private function staminaPowerupPickedUp():void{
staminaQuarters = (staminaQuarters + 4);
if (staminaQuarters > MAX_STAMINA_QUARTERS){
staminaQuarters = MAX_STAMINA_QUARTERS;
};
level.getStatusDisplay().updateStaminaQuarters(staminaQuarters);
}
private function adhereToCollidableBlocks(_arg1:Point, _arg2:Point):void{
var _local4:String;
var _local5:CollidableBlock;
var _local6:Point;
var _local7:Point;
var _local3:Array = level.getCollidableBlocks();
for (_local4 in _local3) {
_local5 = CollidableBlock(_local3[_local4]);
if (_local5.isActive()){
_local6 = new Point(_local5.getBlockLeft(), _local5.getBlockTop());
_local7 = new Point(_local5.getBlockRight(), _local5.getBlockBottom());
adhereToInnerTLBR(_arg1, _arg2, _local6, _local7);
};
};
}
private function timeFreezePowerupPickedUp():void{
enableTimeFreeze();
}
public function useStaminaStar():void{
if (staminaQuarters <= 4){
} else {
if (!staminaStarBoostEnabled){
staminaQuarters = (staminaQuarters - 4);
level.getStatusDisplay().updateStaminaQuarters(staminaQuarters);
enableStaminaStarBoost();
};
};
}
function frame219(){
gotoAndPlay("run_fast_sw");
}
public function getFollowers():Array{
return (followers);
}
function frame1(){
stop();
}
private function enableStaminaStarBoost():void{
staminaStarBoostEnabled = true;
removeStaminaStarBoostTimerAndListener();
staminaStarBoostTimer = new Timer(STAMINA_STAR_BOOST_DURATION);
staminaStarBoostTimer.addEventListener(TimerEvent.TIMER, disableStaminaStarBoost, false, 0, true);
staminaStarBoostTimer.start();
}
public function removeRusherFollower(_arg1:Rusher):void{
numRusherFollowers--;
Misc.removeObjectFromArray(followers, _arg1);
assignFollowerIndices();
}
function frame186(){
gotoAndPlay("run_fast_n");
}
public function removeGameballSenseArrow():void{
if (gameballSenseArrow != null){
gameballSenseArrow.cleanUp();
level.removeChild(gameballSenseArrow);
gameballSenseArrow = null;
};
}
private function checkForPowerupCollision(_arg1:Point):void{
var _local3:Powerup;
var _local4:String;
var _local2:Array = level.getPowerupArray();
for (_local4 in _local2) {
_local3 = Powerup(_local2[_local4]);
if ((((_arg1.x > (_local3.x - Powerup.POWERUP_PICKUP_AREA_HALF_WIDTH))) && ((_arg1.x < (_local3.x + Powerup.POWERUP_PICKUP_AREA_HALF_WIDTH))))){
if ((((_arg1.y > (_local3.y - Powerup.POWERUP_PICKUP_AREA_HEIGHT))) && ((_arg1.y < (_local3.y + Powerup.POWERUP_PICKUP_AREA_BOTTOM_CUSHION))))){
pickupPowerup(_local3);
};
};
};
}
public function resumeStaminaStarBoostTimer():void{
if (staminaStarBoostTimer != null){
staminaStarBoostTimer.start();
};
}
public function enableGameballSense():void{
if (gameballSenseTimer == null){
gameballSenseTimer = new Timer(GAMEBALL_SENSE_TIMER_INTERVAL);
};
gameballSenseTimer.addEventListener(TimerEvent.TIMER, senseNearestGameball, false, 0, true);
gameballSenseTimer.start();
}
function frame197(){
gotoAndPlay("run_fast_nw");
}
function frame112(){
gotoAndPlay("run_w");
}
function frame30(){
gotoAndPlay("run_s");
}
public function run(_arg1:String):void{
var _local6:Number;
var _local8:Point;
var _local2:Number = 0;
var _local3:Number = 0;
switch (_arg1){
case OrientationManager.N:
_local3 = -1;
break;
case OrientationManager.NE:
_local2 = DIAGONAL_RUN_SPEED_SCALAR;
_local3 = -(DIAGONAL_RUN_SPEED_SCALAR);
break;
case OrientationManager.E:
_local2 = 1;
break;
case OrientationManager.SE:
_local2 = DIAGONAL_RUN_SPEED_SCALAR;
_local3 = DIAGONAL_RUN_SPEED_SCALAR;
break;
case OrientationManager.S:
_local3 = 1;
break;
case OrientationManager.SW:
_local2 = -(DIAGONAL_RUN_SPEED_SCALAR);
_local3 = DIAGONAL_RUN_SPEED_SCALAR;
break;
case OrientationManager.W:
_local2 = -1;
break;
case OrientationManager.NW:
_local2 = -(DIAGONAL_RUN_SPEED_SCALAR);
_local3 = -(DIAGONAL_RUN_SPEED_SCALAR);
break;
};
if (gameballSenseArrow != null){
switch (_arg1){
case OrientationManager.NW:
case OrientationManager.N:
case OrientationManager.NE:
gameballSenseArrow.y = ((y + GameballSenseArrow.Y_OFFSET_FROM_TOR) + GameballSenseArrow.ADDITIONAL_Y_OFFSET_FROM_TOR_WHEN_TRAVELLING_NORTH);
break;
case OrientationManager.E:
case OrientationManager.W:
gameballSenseArrow.y = (y + GameballSenseArrow.Y_OFFSET_FROM_TOR);
break;
case OrientationManager.SW:
case OrientationManager.S:
case OrientationManager.SE:
gameballSenseArrow.y = ((y + GameballSenseArrow.Y_OFFSET_FROM_TOR) + GameballSenseArrow.ADDITIONAL_Y_OFFSET_FROM_TOR_WHEN_TRAVELLING_SOUTH);
break;
};
};
var _local4:Boolean;
var _local5:Boolean;
if (((!((_local2 == 0))) || (!((_local3 == 0))))){
_local4 = true;
if (staminaStarBoostEnabled){
_local5 = true;
};
};
if (_local4){
if (((((!((renderedOrientation == _arg1))) || (!((renderedIsRunning == _local4))))) || (!((renderedIsRunningFast == _local5))))){
renderedOrientation = _arg1;
renderedIsRunning = true;
renderedIsRunningFast = _local5;
if (_local5){
gotoAndPlay(("run_fast_" + _arg1));
} else {
gotoAndPlay(("run_" + _arg1));
};
};
} else {
renderedIsRunning = false;
gotoAndStop(("stand_" + renderedOrientation));
};
if (staminaStarBoostEnabled){
_local6 = STAMINA_STAR_BOOST_MULTIPLIER;
} else {
_local6 = 1;
};
_local2 = (_local2 * ((DEFAULT_RUN_SPEED_SCALAR * GAMEBALLS_FOLLOWING__RUN_SPEED_SCALAR[numGameballFollowers]) * _local6));
_local3 = (_local3 * ((DEFAULT_RUN_SPEED_SCALAR * GAMEBALLS_FOLLOWING__RUN_SPEED_SCALAR[numGameballFollowers]) * _local6));
var _local7:Point = new Point(x, y);
_local8 = new Point((x + _local2), (y + _local3));
adhereToBorderRocksBoundaries(_local8);
adhereToCollidableBlocks(_local7, _local8);
lastLastX = lastX;
lastLastY = lastY;
lastX = x;
lastY = y;
x = _local8.x;
y = _local8.y;
adhereToIrregularCollidableObjects();
manageDepthsAndCheckForHarmfulCollisions();
checkForPowerupCollision(_local8);
}
public function getFollower(_arg1:uint):NonTorCharacter{
return (NonTorCharacter(followers[_arg1]));
}
public function isStaminaStarBoostEnabled():Boolean{
return (staminaStarBoostEnabled);
}
private function regenerateStaminaStar(_arg1:TimerEvent):void{
if (staminaQuarters < MAX_STAMINA_QUARTERS){
staminaQuarters++;
level.getStatusDisplay().updateStaminaQuarters(staminaQuarters);
};
}
public function getNumRusherFollowers():uint{
return (numRusherFollowers);
}
public function getNumFollowers():uint{
return (followers.length);
}
private function enableTimeFreeze():void{
timeFreezeEnabled = true;
removeTimeFreezeTimerAndListener();
level.freezeBotsAndProjectiles(false);
timeFreezeTimer = new Timer(TIMEFREEZE_DURATION);
timeFreezeTimer.addEventListener(TimerEvent.TIMER, disableTimeFreeze, false, 0, true);
timeFreezeTimer.start();
}
function frame126(){
gotoAndPlay("run_sw");
}
public function removeTimeFreezeTimerAndListener():void{
if (timeFreezeTimer != null){
timeFreezeTimer.stop();
timeFreezeTimer.removeEventListener(TimerEvent.TIMER, disableTimeFreeze);
timeFreezeTimer = null;
};
}
public function removeStaminaStarBoostTimerAndListener():void{
if (staminaStarBoostTimer != null){
staminaStarBoostTimer.stop();
staminaStarBoostTimer.removeEventListener(TimerEvent.TIMER, disableStaminaStarBoost);
staminaStarBoostTimer = null;
};
}
public function getNumGameballFollowers():uint{
return (numGameballFollowers);
}
public function removeStaminaStarRegenerationTimerAndListener():void{
if (staminaStarRegenerationTimer != null){
staminaStarRegenerationTimer.stop();
staminaStarRegenerationTimer.removeEventListener(TimerEvent.TIMER, regenerateStaminaStar);
staminaStarRegenerationTimer = null;
};
}
function frame43(){
gotoAndPlay("run_se");
}
private function assignFollowerIndices():void{
var _local1:uint;
var _local2:uint = followers.length;
_local1 = 0;
while (_local1 < _local2) {
NonTorCharacter(followers[_local1]).setTorFollowerIndex(_local1);
_local1++;
};
}
public function addRusherFollower(_arg1:Rusher):uint{
numRusherFollowers++;
return ((followers.push(_arg1) - 1));
}
private function disableStaminaStarBoost(_arg1:TimerEvent=null):void{
removeStaminaStarBoostTimerAndListener();
staminaStarBoostEnabled = false;
}
private function invisibilityPowerupPickedUp():void{
applyInvisibilityFilter();
var _local1:uint;
while (_local1 < followers.length) {
Character(followers[_local1]).applyInvisibilityFilter();
_local1++;
};
removeInvisibilityTimerAndListener();
invisibilityTimer = new Timer(INVISIBILITY_DURATION);
invisibilityTimer.addEventListener(TimerEvent.TIMER, invisibilityTimeUp, false, 0, true);
invisibilityTimer.start();
}
function frame56(){
gotoAndPlay("run_e");
}
public function removeGameballFollower(_arg1:Gameball):void{
numGameballFollowers--;
Misc.removeObjectFromArray(followers, _arg1);
assignFollowerIndices();
}
public function isTimeFreezeEnabled():Boolean{
return (timeFreezeEnabled);
}
private function disableTimeFreeze(_arg1:TimerEvent=null):void{
removeTimeFreezeTimerAndListener();
level.unfreezeBotsAndProjectiles();
timeFreezeEnabled = false;
}
public function removeGameballsRemainingBubble():void{
if (gameballsRemainingBubble != null){
gameballsRemainingBubble.cleanUp();
removeChild(gameballsRemainingBubble);
gameballsRemainingBubble = null;
};
}
private function senseNearestGameball(_arg1:TimerEvent=null):void{
var _local2:Array;
var _local3:Point;
var _local4:Number;
var _local5:Point;
var _local6:Gameball;
var _local7:Point;
var _local8:Number;
var _local9:String;
if (gameballSenseArrow != null){
_local2 = level.getGameballs();
_local3 = null;
_local4 = 99999999;
_local5 = new Point(x, y);
for (_local9 in _local2) {
_local6 = Gameball(_local2[_local9]);
if (_local6 != null){
if (((_local6.isWaitingOutsideBuilding()) || (((_local6.isHidingBehindBuilding()) && (!(_local6.isRetreating())))))){
_local7 = new Point(_local6.x, _local6.y);
_local8 = Misc.getDistanceBetween(_local5, _local7);
if ((((_local8 < _local4)) && ((_local8 < GAMEBALL_SENSE_MAX_DISTANCE)))){
_local3 = _local7;
_local4 = _local8;
};
};
};
};
if (_local3 == null){
gameballSenseArrow.fadeOut();
} else {
gameballSenseArrow.fadeIn();
gameballSenseArrow.setRotation(Misc.getAngleBetweenInDegrees(_local5, _local3));
};
};
}
function frame143(){
gotoAndPlay("run_fast_s");
}
public function resumeStaminaStarRegenerationTimer():void{
if (staminaStarRegenerationTimer != null){
staminaStarRegenerationTimer.start();
};
}
public function loseStaminaQuartersToDamage(_arg1:uint):Boolean{
if (level.isLevelOver()){
return (false);
};
staminaQuarters = (staminaQuarters - _arg1);
level.getGame().getController().getSoundManager().playDamageSound();
if (staminaQuarters <= 0){
staminaQuarters = 0;
level.torDied();
return (false);
};
level.getStatusDisplay().updateStaminaQuarters(staminaQuarters);
return (true);
}
private function adhereToIrregularCollidableObjects():void{
var _local2:Object;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local1:Array = irregularCollidableObjects.checkCollisions();
var _local3:uint;
while (_local3 < _local1.length) {
_local2 = _local1[_local3];
_local4 = _local2["angle"];
_local5 = Math.cos(_local4);
_local6 = Math.sin(_local4);
x = (lastX - (_local5 * 4));
y = (lastY - (_local6 * 4));
break;
_local3++;
};
}
public function removeInvisibilityTimerAndListener():void{
if (invisibilityTimer != null){
invisibilityTimer.stop();
invisibilityTimer.removeEventListener(TimerEvent.TIMER, invisibilityTimeUp);
invisibilityTimer = null;
};
}
public function resumeTimeFreezeTimer():void{
if (timeFreezeTimer != null){
timeFreezeTimer.start();
};
}
public function addGameballFollower(_arg1:Gameball):uint{
numGameballFollowers++;
return ((followers.push(_arg1) - 1));
}
public function resumeInvisibilityTimer():void{
if (invisibilityTimer != null){
invisibilityTimer.start();
};
}
private function adhereToBorderRocksBoundaries(_arg1:Point):void{
var _local2:Point = new Point(level.getBorderRocksLeft(), level.getBorderRocksTop());
var _local3:Point = new Point(level.getBorderRocksRight(), level.getBorderRocksBottom());
if (_arg1.x < _local2.x){
_arg1.x = _local2.x;
};
if (_arg1.y < _local2.y){
_arg1.y = _local2.y;
};
if (_arg1.x > _local3.x){
_arg1.x = _local3.x;
};
if (_arg1.y > _local3.y){
_arg1.y = _local3.y;
};
}
}
}//package characters
Section 6
//CDK (com.coreyoneil.collision.CDK)
package com.coreyoneil.collision {
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.errors.*;
public class CDK {
private var colorTransform2:ColorTransform;
private var colorTransform1:ColorTransform;
private var _returnAngleType:String;
private var pixels1:ByteArray;
private var pixels2:ByteArray;
private var bmdResample:BitmapData;
private var _returnAngle:Boolean;
private var transMatrix2:Matrix;
private var rect1:Rectangle;
private var rect2:Rectangle;
private var transMatrix1:Matrix;
protected var objectCheckArray:Array;
private var _alphaThreshold:Number;
private var item1Registration:Point;
private var bmd1:BitmapData;
private var bmd2:BitmapData;
protected var objectArray:Array;
private var item2Registration:Point;
protected var objectCollisionArray:Array;
private var _numChildren:uint;
private var colorExclusionArray:Array;
public function CDK():void{
if (getQualifiedClassName(this) == "com.coreyoneil.collision::CDK"){
throw (new Error("CDK is an abstract class and is not meant for instantiation - use CollisionGroup or CollisionList"));
};
init();
}
public function get returnAngle():Boolean{
return (_returnAngle);
}
public function set returnAngle(_arg1:Boolean):void{
_returnAngle = _arg1;
}
protected function findCollisions(_arg1, _arg2):void{
var item1xDiff:Number;
var item1yDiff:Number;
var locY:Number;
var locX:Number;
var locStage:Point;
var alpha1:uint;
var alpha2:uint;
var colorFlag:Boolean;
var red1:uint;
var red2:uint;
var green1:uint;
var green2:uint;
var blue1:uint;
var blue2:uint;
var colorObj:Object;
var aPlus:uint;
var aMinus:uint;
var rPlus:uint;
var rMinus:uint;
var gPlus:uint;
var gMinus:uint;
var bPlus:uint;
var bMinus:uint;
var item1Flags:uint;
var item2Flags:uint;
var n:uint;
var angle:Number;
var recordedCollision:Object;
var item1 = _arg1;
var item2 = _arg2;
var item1_isText:Boolean;
var item2_isText:Boolean;
if ((item1 is TextField)){
item1_isText = ((item1.antiAliasType)=="advanced") ? true : false;
item1.antiAliasType = ((item1.antiAliasType)=="advanced") ? "normal" : item1.antiAliasType;
};
if ((item2 is TextField)){
item2_isText = ((item2.antiAliasType)=="advanced") ? true : false;
item2.antiAliasType = ((item2.antiAliasType)=="advanced") ? "normal" : item2.antiAliasType;
};
colorTransform1 = item1.transform.colorTransform;
colorTransform2 = item2.transform.colorTransform;
item1Registration = new Point();
item2Registration = new Point();
item1Registration = item1.localToGlobal(item1Registration);
item2Registration = item2.localToGlobal(item2Registration);
bmd1 = new BitmapData(item1.width, item1.height, true, 0xFFFFFF);
bmd2 = new BitmapData(item1.width, item1.height, true, 0xFFFFFF);
transMatrix1 = item1.transform.matrix;
var currentObj:* = item1;
while (currentObj.parent != null) {
transMatrix1.concat(currentObj.parent.transform.matrix);
currentObj = currentObj.parent;
};
rect1 = item1.getBounds(currentObj);
if (item1 != currentObj){
rect1.x = (rect1.x + currentObj.x);
rect1.y = (rect1.y + currentObj.y);
};
var _local4 = (item1Registration.x - rect1.left);
item1xDiff = _local4;
transMatrix1.tx = _local4;
_local4 = (item1Registration.y - rect1.top);
item1yDiff = _local4;
transMatrix1.ty = _local4;
transMatrix2 = item2.transform.matrix;
currentObj = item2;
while (currentObj.parent != null) {
transMatrix2.concat(currentObj.parent.transform.matrix);
currentObj = currentObj.parent;
};
transMatrix2.tx = (item2Registration.x - rect1.left);
transMatrix2.ty = (item2Registration.y - rect1.top);
bmd1.draw(item1, transMatrix1, colorTransform1, null, null, true);
bmd2.draw(item2, transMatrix2, colorTransform2, null, null, true);
pixels1 = bmd1.getPixels(new Rectangle(0, 0, bmd1.width, bmd1.height));
pixels2 = bmd2.getPixels(new Rectangle(0, 0, bmd1.width, bmd1.height));
var k:uint;
var value1:uint;
var value2:uint;
var collisionPoint:Number = -1;
var overlap:Boolean;
var overlapping:Array = [];
var hasColors:int = colorExclusionArray.length;
pixels1.position = 0;
pixels2.position = 0;
var pixelLength:int = pixels1.length;
while (k < pixelLength) {
k = pixels1.position;
try {
value1 = pixels1.readUnsignedInt();
value2 = pixels2.readUnsignedInt();
} catch(e:EOFError) {
break;
};
alpha1 = ((value1 >> 24) & 0xFF);
alpha2 = ((value2 >> 24) & 0xFF);
if ((((alpha1 > _alphaThreshold)) && ((alpha2 > _alphaThreshold)))){
colorFlag = false;
if (hasColors){
red1 = ((value1 >> 16) & 0xFF);
red2 = ((value2 >> 16) & 0xFF);
green1 = ((value1 >> 8) & 0xFF);
green2 = ((value2 >> 8) & 0xFF);
blue1 = (value1 & 0xFF);
blue2 = (value2 & 0xFF);
n = 0;
while (n < hasColors) {
colorObj = Object(colorExclusionArray[n]);
item1Flags = 0;
item2Flags = 0;
if ((((blue1 >= colorObj.bMinus)) && ((blue1 <= colorObj.bPlus)))){
item1Flags = (item1Flags + 1);
};
if ((((blue2 >= colorObj.bMinus)) && ((blue2 <= colorObj.bPlus)))){
item2Flags = (item2Flags + 1);
};
if ((((green1 >= colorObj.gMinus)) && ((green1 <= colorObj.gPlus)))){
item1Flags = (item1Flags + 1);
};
if ((((green2 >= colorObj.gMinus)) && ((green2 <= colorObj.gPlus)))){
item2Flags = (item2Flags + 1);
};
if ((((red1 >= colorObj.rMinus)) && ((red1 <= colorObj.rPlus)))){
item1Flags = (item1Flags + 1);
};
if ((((red2 >= colorObj.rMinus)) && ((red2 <= colorObj.rPlus)))){
item2Flags = (item2Flags + 1);
};
if ((((alpha1 >= colorObj.aMinus)) && ((alpha1 <= colorObj.aPlus)))){
item1Flags = (item1Flags + 1);
};
if ((((alpha2 >= colorObj.aMinus)) && ((alpha2 <= colorObj.aPlus)))){
item2Flags = (item2Flags + 1);
};
if ((((item1Flags == 4)) || ((item2Flags == 4)))){
colorFlag = true;
};
n = (n + 1);
};
};
if (!colorFlag){
overlap = true;
collisionPoint = (k >> 2);
locY = (collisionPoint / bmd1.width);
locX = (collisionPoint % bmd1.width);
locY = (locY - item1yDiff);
locX = (locX - item1xDiff);
locStage = item1.localToGlobal(new Point(locX, locY));
overlapping.push(locStage);
};
};
};
if (overlap){
angle = (_returnAngle) ? findAngle(item1, item2) : 0;
recordedCollision = {object1:item1, object2:item2, angle:angle, overlapping:overlapping};
objectCollisionArray.push(recordedCollision);
};
if (item1_isText){
item1.antiAliasType = "advanced";
};
if (item2_isText){
item2.antiAliasType = "advanced";
};
_local4 = false;
item2_isText = _local4;
item1_isText = _local4;
}
private function init():void{
objectCheckArray = [];
objectCollisionArray = [];
objectArray = [];
colorExclusionArray = [];
_alphaThreshold = 0;
_returnAngle = true;
_returnAngleType = "RADIANS";
}
public function dispose():void{
objectArray = [];
}
public function excludeColor(_arg1:uint, _arg2:uint=0xFF, _arg3:uint=20, _arg4:uint=20, _arg5:uint=20):void{
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:uint;
var _local15:uint;
var _local6:int = colorExclusionArray.length;
var _local7:uint;
while (_local7 < _local6) {
if (colorExclusionArray[_local7].color == _arg1){
throw (new Error((("Color could not be added - color already in the exclusion list [" + _arg1) + "]")));
};
_local7++;
};
_local8 = (((_arg1 >> 24) & 0xFF) + _arg2);
_local9 = (_local8 - (_arg2 << 1));
_local10 = (((_arg1 >> 16) & 0xFF) + _arg3);
_local11 = (_local10 - (_arg3 << 1));
_local12 = (((_arg1 >> 8) & 0xFF) + _arg4);
_local13 = (_local12 - (_arg4 << 1));
_local14 = ((_arg1 & 0xFF) + _arg5);
_local15 = (_local14 - (_arg5 << 1));
var _local16:Object = {color:_arg1, aPlus:_local8, aMinus:_local9, rPlus:_local10, rMinus:_local11, gPlus:_local12, gMinus:_local13, bPlus:_local14, bMinus:_local15};
colorExclusionArray.push(_local16);
}
public function get numChildren():uint{
return (objectArray.length);
}
public function get alphaThreshold():Number{
return (_alphaThreshold);
}
public function removeItem(_arg1):void{
var _local2:int = objectArray.indexOf(_arg1);
if (_local2 > -1){
objectArray.splice(_local2, 1);
} else {
throw (new Error((_arg1 + " could not be removed - object not found in item list.")));
};
}
public function set returnAngleType(_arg1:String):void{
_arg1 = _arg1.toUpperCase();
switch (_arg1){
case "DEGREES":
case "DEGREE":
case "DEG":
case "DEGS":
_returnAngleType = "DEGREES";
break;
case "RADIANS":
case "RADIAN":
case "RAD":
case "RADS":
_returnAngleType = "RADIANS";
break;
default:
throw (new Error("returnAngleType expects 'DEGREES' or 'RADIANS'"));
};
}
private function findAngle(_arg1:DisplayObject, _arg2:DisplayObject):Number{
var pixel:uint;
var thisAlpha:uint;
var lastAlpha:int;
var edgePoint:int;
var k:uint;
var upperLimit:int;
var colorFlag:Boolean;
var red1:uint;
var green1:uint;
var blue1:uint;
var colorObj:Object;
var a:uint;
var r:uint;
var g:uint;
var b:uint;
var item1Flags:uint;
var n:uint;
var item1 = _arg1;
var item2 = _arg2;
var center:Point = new Point((item1.width >> 1), (item1.height >> 1));
var pixels:ByteArray = pixels2;
transMatrix2.tx = (transMatrix2.tx + center.x);
transMatrix2.ty = (transMatrix2.ty + center.y);
bmdResample = new BitmapData((item1.width << 1), (item1.height << 1), true, 0xFFFFFF);
bmdResample.draw(item2, transMatrix2, colorTransform2, null, null, true);
pixels = bmdResample.getPixels(new Rectangle(0, 0, bmdResample.width, bmdResample.height));
center.x = (bmdResample.width >> 1);
center.y = (bmdResample.height >> 1);
var columnHeight:uint = Math.round(bmdResample.height);
var rowWidth:uint = Math.round(bmdResample.width);
var edgeArray:Array = [];
var hasColors:int = colorExclusionArray.length;
var j:uint;
while (j < columnHeight) {
k = ((j * rowWidth) << 2);
pixels.position = k;
lastAlpha = -1;
upperLimit = (((j + 1) * rowWidth) << 2);
while (k < upperLimit) {
k = pixels.position;
try {
pixel = pixels.readUnsignedInt();
} catch(e:EOFError) {
break;
};
thisAlpha = ((pixel >> 24) & 0xFF);
if (lastAlpha == -1){
lastAlpha = thisAlpha;
} else {
if (thisAlpha > _alphaThreshold){
colorFlag = false;
if (hasColors){
red1 = ((pixel >> 16) & 0xFF);
green1 = ((pixel >> 8) & 0xFF);
blue1 = (pixel & 0xFF);
n = 0;
while (n < hasColors) {
colorObj = Object(colorExclusionArray[n]);
item1Flags = 0;
if ((((blue1 >= colorObj.bMinus)) && ((blue1 <= colorObj.bPlus)))){
item1Flags = (item1Flags + 1);
};
if ((((green1 >= colorObj.gMinus)) && ((green1 <= colorObj.gPlus)))){
item1Flags = (item1Flags + 1);
};
if ((((red1 >= colorObj.rMinus)) && ((red1 <= colorObj.rPlus)))){
item1Flags = (item1Flags + 1);
};
if ((((thisAlpha >= colorObj.aMinus)) && ((thisAlpha <= colorObj.aPlus)))){
item1Flags = (item1Flags + 1);
};
if (item1Flags == 4){
colorFlag = true;
};
n = (n + 1);
};
};
if (!colorFlag){
edgeArray.push((k >> 2));
};
};
};
};
j = (j + 1);
};
var numEdges:int = edgeArray.length;
var slopeYAvg:Number = 0;
var slopeXAvg:Number = 0;
j = 0;
while (j < numEdges) {
edgePoint = int(edgeArray[j]);
slopeYAvg = (slopeYAvg + (center.y - (edgePoint / rowWidth)));
slopeXAvg = (slopeXAvg + ((edgePoint % rowWidth) - center.x));
j = (j + 1);
};
var average:Number = -(Math.atan2(slopeYAvg, slopeXAvg));
average = ((_returnAngleType == "RADIANS")) ? average : (average * 57.2957795);
return (average);
}
public function addItem(_arg1):void{
if ((_arg1 is DisplayObject)){
objectArray.push(_arg1);
} else {
throw (new Error((("Cannot add item: " + _arg1) + " - item must be a Display Object.")));
};
}
public function get returnAngleType():String{
return (_returnAngleType);
}
public function set alphaThreshold(_arg1:Number):void{
if ((((_arg1 <= 1)) && ((_arg1 >= 0)))){
_alphaThreshold = (_arg1 * 0xFF);
} else {
throw (new Error("alphaThreshold expects a value from 0 to 1"));
};
}
public function removeExcludeColor(_arg1:uint):void{
var _local2:Boolean;
var _local3:int = colorExclusionArray.length;
var _local4:uint;
while (_local4 < _local3) {
if (colorExclusionArray[_local4].color == _arg1){
colorExclusionArray.splice(_local4, 1);
_local2 = true;
break;
};
_local4++;
};
if (!_local2){
throw (new Error((("Color could not be removed - color not found in exclusion list [" + _arg1) + "]")));
};
}
protected function clearArrays():void{
objectCheckArray = [];
objectCollisionArray = [];
}
}
}//package com.coreyoneil.collision
Section 7
//CollisionList (com.coreyoneil.collision.CollisionList)
package com.coreyoneil.collision {
import flash.display.*;
public class CollisionList extends CDK {
public function CollisionList(_arg1, ... _args):void{
addItem(_arg1);
var _local3:uint;
while (_local3 < _args.length) {
addItem(_args[_local3]);
_local3++;
};
}
public function checkCollisions():Array{
var _local3:DisplayObject;
clearArrays();
var _local1:uint = objectArray.length;
var _local2:* = DisplayObject(objectArray[0]);
var _local4:uint = 1;
while (_local4 < _local1) {
_local3 = DisplayObject(objectArray[_local4]);
if (_local2.hitTestObject(_local3)){
if ((_local3.width * _local3.height) > (_local2.width * _local2.height)){
objectCheckArray.push([_local2, _local3]);
} else {
objectCheckArray.push([_local3, _local2]);
};
};
_local4++;
};
_local1 = objectCheckArray.length;
_local4 = 0;
while (_local4 < _local1) {
findCollisions(DisplayObject(objectCheckArray[_local4][0]), DisplayObject(objectCheckArray[_local4][1]));
_local4++;
};
return (objectCollisionArray);
}
public function swapTarget(_arg1):void{
if ((_arg1 is DisplayObject)){
objectArray[0] = _arg1;
} else {
throw (new Error((("Cannot swap target: " + _arg1) + " - item must be a Display Object.")));
};
}
override public function removeItem(_arg1):void{
var _local2:int = objectArray.indexOf(_arg1);
if (_local2 > 0){
objectArray.splice(_local2, 1);
} else {
if (_local2 == 0){
throw (new Error("You cannot remove the target from CollisionList. Use swapTarget to change the target."));
};
throw (new Error((_arg1 + " could not be removed - object not found in item list.")));
};
}
}
}//package com.coreyoneil.collision
Section 8
//ActionSource (com.omniture.ActionSource)
package com.omniture {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
public dynamic class ActionSource extends Sprite {
private var onLoadTracked:Boolean;// = false
public var account:String;
public var _movie:Object;
private var delayTrackingInterval:Number;
public var movieID:String;
public var debugTracking:Boolean;// = false
public var flashASVersion:Number;// = 3
private var _moduleMediaVariables:Object;
public var pageURL:String;
public var otherVariables:Object;
private var requestNum:Number;
public var dc:String;
public var visitorNamespace:String;
private var trackCalled:Boolean;// = false
public var mobile:Boolean;
public var flashVersion:Number;
public var trackingServerBase:String;
private var _trackOnLoad:Boolean;// = false
public var ClickMap:ActionSource_Module_ClickMap;
public var version:String;
public var trackingServer:String;
public var autoTrack:Boolean;
public var trackLocal:Boolean;// = true
public var trackingServerSecure:String;
private var flashRoot:Object;
private var accountConfigList:Array;
public var lastRequest:String;
public var trackClickMap:Boolean;
private var flashLivePreview:Boolean;// = false
public var charSet:String;
public var delayTracking:Number;
private var trackOnLoadInterval:Number;
private var accountVarList:Array;
public var pageName:String;
private var _root:Object;
private var requiredVarList:Array;
private var delayTrackingStage:Number;
public var requestList:Array;
public var Media:ActionSource_Module_Media;
public function ActionSource(){
var _local1:Object;
var _local2:Number;
var _local3:String;
var _local4:Array;
flashASVersion = 3;
flashLivePreview = false;
trackLocal = true;
debugTracking = false;
_trackOnLoad = false;
onLoadTracked = false;
trackCalled = false;
super();
_local1 = this;
_local1.version = "FAS-2.6.4";
_local3 = getVersion();
_local4 = _local3.split(" ");
_local1.flashVersion = parseInt(_local4[1].substr(0, 1));
_local1.initPre();
_local1.requestNum = 0;
_local1.requestList = new Array();
_local1.lastRequest = "";
_local1.requiredVarList = ["dynamicVariablePrefix", "visitorID", "vmk", "visitorMigrationKey", "visitorMigrationServer", "visitorMigrationServerSecure", "charSet", "visitorNamespace", "cookieDomainPeriods", "cookieLifetime", "pageName", "pageURL", "referrer", "currencyCode"];
_local1.accountVarList = ["purchaseID", "variableProvider", "channel", "server", "pageType", "transactionID", "campaign", "state", "zip", "events", "products", "tnt"];
_local2 = (_local1.requiredVarList.length - 1);
while (_local2 >= 0) {
_local1.accountVarList.unshift(_local1.requiredVarList[_local2]);
_local2--;
};
_local2 = 1;
while (_local2 <= 50) {
_local1.accountVarList.push(("prop" + _local2));
_local1.accountVarList.push(("eVar" + _local2));
_local1.accountVarList.push(("hier" + _local2));
_local1.accountVarList.push(("list" + _local2));
_local2++;
};
_local1.accountVarList.push("pe");
_local1.accountVarList.push("pev1");
_local1.accountVarList.push("pev2");
_local1.accountVarList.push("pev3");
_local1.requiredVarList.push("pe");
_local1.requiredVarList.push("pev1");
_local1.requiredVarList.push("pev2");
_local1.requiredVarList.push("pev3");
_local1.accountConfigList = ["linkObject", "linkURL", "linkName", "linkType", "trackDownloadLinks", "trackExternalLinks", "trackClickMap", "linkLeaveQueryString", "linkTrackVars", "linkTrackEvents", "trackingServer", "trackingServerSecure", "dc", "movieID", "autoTrack", "delayTracking", "trackLocal", "debugTracking"];
_local1.modulesInit();
_local1.setupInterval(_local1, "setVariableCallHandler", 1000, null);
_local1.initPost();
}
public function clearVars(){
var _local1:Object;
var _local2:Number;
var _local3:String;
_local1 = this;
_local2 = 0;
while (_local2 < accountVarList.length) {
_local3 = _local1.accountVarList[_local2];
if ((((((((((((((((((((((((_local3.substr(0, 4) == "prop")) || ((_local3.substr(0, 4) == "eVar")))) || ((_local3.substr(0, 4) == "hier")))) || ((_local3.substr(0, 4) == "list")))) || ((_local3 == "channel")))) || ((_local3 == "events")))) || ((_local3 == "purchaseID")))) || ((_local3 == "transactionID")))) || ((_local3 == "products")))) || ((_local3 == "state")))) || ((_local3 == "zip")))) || ((_local3 == "campaign")))){
_local1[_local3] = undefined;
};
_local2++;
};
}
private function variableOverridesBuild(_arg1:Object){
var _local2:Object;
var _local3:Number;
var _local4:String;
_local2 = this;
_local3 = 0;
while (_local3 < _local2.accountVarList.length) {
_local4 = _local2.accountVarList[_local3];
if (!_local2.isSet(_arg1[_local4])){
_arg1[_local4] = _local2[_local4];
if (!_local2.isSet(_arg1[_local4])){
_arg1[("!" + _local4)] = 1;
};
};
_local3++;
};
_local3 = 0;
while (_local3 < _local2.accountConfigList.length) {
_local4 = _local2.accountConfigList[_local3];
if (!_local2.isSet(_arg1[_local4])){
_arg1[_local4] = _local2[_local4];
if (!_local2.isSet(_arg1[_local4])){
_arg1[("!" + _local4)] = 1;
};
};
_local3++;
};
}
private function flushRequestList(){
var _local1:Object;
var _local2:String;
var _local3:Array;
var _local4:Number;
_local1 = this;
while (_local1.requestNum < _local1.requestList.length) {
if (_local1.isSet(_local1.debugTracking)){
_local2 = ("ActionSource Debug: " + _local1.requestList[_local1.requestNum]);
_local3 = _local1.requestList[_local1.requestNum].split("&");
_local4 = 0;
while (_local4 < _local3.length) {
_local2 = (_local2 + ("\n\t" + unescape(_local3[_local4])));
_local4++;
};
trace(_local2);
};
_local1.requestURL(_local1.requestList[_local1.requestNum]);
_local1.lastRequest = _local1.requestList[_local1.requestNum];
_local1.requestNum++;
};
}
private function bufferRequest(_arg1:String, _arg2:String, _arg3:String){
var _local4:Object;
var _local5:Object;
var _local6:Object;
var _local7:Number;
var _local8:Number;
_local4 = this;
_local5 = _local4.getBufferedRequests();
if (_local4.isSet(_local5)){
_local8 = -1;
_local7 = 0;
while (_local7 < _local5.data.list.length) {
if (_local5.data.list[_local7].id == _arg2){
_local5.data.list[_local7].request = _arg3;
_arg3 = "";
} else {
if (!_local4.isSet(_local5.data.list[_local7].id)){
_local8 = _local7;
};
};
_local7++;
};
if (_local4.isSet(_arg3)){
_local6 = new Object();
_local6.account = _arg1;
_local6.id = _arg2;
_local6.request = _arg3;
if (_local8 >= 0){
_local5.data.list[_local8] = _local6;
} else {
_local5.data.list.push(_local6);
};
};
_local5.flush();
};
}
private function requestURL(_arg1){
var _local2:URLRequest;
_local2 = new URLRequest(_arg1);
sendToURL(_local2);
}
public function setupInterval(_arg1:Object, _arg2:String, _arg3:Number, _arg4){
if (_arg4 != null){
return (setInterval(_arg1[_arg2], _arg3, _arg4));
};
return (setInterval(_arg1[_arg2], _arg3));
}
private function _trackLink(_arg1, _arg2:String, _arg3:String, _arg4:Object){
var _local5:Object;
var _local6:String;
_local5 = this;
if (((_local5.isSet(_arg1)) && ((typeof(_arg1) == "string")))){
_local6 = _arg1;
_arg1 = new Object();
_arg1.url = _local6;
};
_local5.linkObject = _arg1;
_local5.linkType = _arg2;
_local5.linkName = _arg3;
_local5.track(_arg4);
}
public function set movie(_arg1:Object){
var _local2:Object;
var _local3:String;
_local2 = this;
_local2._movie = _arg1;
if (!_local2.flashLivePreview){
_local3 = _local2.getMovieURL();
_local2.ssl = (_local3.toLowerCase().substr(0, 6) == "https:");
if (_local2.isSet(_local2._movie)){
if (_local2.flashASVersion < 3){
_local2._movie.s_s = this;
};
_local2.modulesUpdate();
};
};
}
private function queryStringLinkTracking():String{
var _local1:Object;
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:Number;
var _local6:Number;
var _local7:String;
var _local8:String;
var _local9:Number;
_local1 = this;
_local2 = _local1.linkType;
_local3 = _local1.linkURL;
_local4 = _local1.linkName;
_local8 = "";
if (((!(_local1.isSet(_local3))) && (_local1.isSet(_local1.linkObject)))){
if (_local1.isSet(_local1.linkObject, "url")){
_local3 = _local1.linkObject.url;
} else {
if (_local1.isSet(_local1.linkObject, "URL")){
_local3 = _local1.linkObject.URL;
} else {
if (_local1.isSet(_local1.linkObject, "href")){
_local3 = _local1.linkObject.href;
} else {
if (_local1.isSet(_local1.linkObject, "HREF")){
_local3 = _local1.linkObject.HREF;
} else {
if (_local1.isSet(_local1.linkObject, "htmlText")){
_local5 = _local1.linkObject.htmlText.toLowerCase().indexOf("href=");
if (_local5 >= 0){
_local5 = (_local5 + 5);
_local7 = _local1.linkObject.htmlText.substr(_local5, 1);
if ((((_local7 == "\"")) || ((_local7 == "'")))){
_local5++;
_local6 = _local1.linkObject.htmlText.toLowerCase().indexOf(_local7, _local5);
if (_local6 >= 0){
--_local6;
if (_local6 > _local5){
_local3 = _local1.linkObject.htmlText.substr(_local5, ((_local6 - _local5) + 1));
};
};
};
};
};
};
};
};
};
};
if (((_local1.isSet(_local2)) && (((_local1.isSet(_local3)) || (_local1.isSet(_local4)))))){
_local2 = _local2.toLowerCase();
if (((!((_local2 == "d"))) && (!((_local2 == "e"))))){
_local2 = "o";
};
if (((_local1.isSet(_local3)) && (!(_local1.isSet(_local1.linkLeaveQueryString))))){
_local9 = _local3.indexOf("?");
if (_local9 >= 0){
_local3 = _local3.substr(0, _local9);
};
};
_local8 = (_local8 + ("&pe=lnk_" + escape(_local2)));
_local8 = (_local8 + (_local1.isSet(_local3)) ? ("&pev1=" + escape(_local3)) : "");
_local8 = (_local8 + (_local1.isSet(_local4)) ? ("&pev2=" + escape(_local4)) : "");
};
return (_local8);
}
private function _track(_arg1:Object, _arg2:String){
var _local3:Object;
var _local4:Object;
var _local5:Date;
var _local6:Number;
var _local7:String;
var _local8:String;
var _local9:String;
var _local10:Number;
var _local11:String;
_local3 = this;
_local5 = new Date();
_local6 = Math.floor((Math.random() * 10000000000000));
_local7 = (("s" + (Math.floor((_local5.getTime() / 10800000)) % 10)) + _local6);
_local8 = ((((((((((((((("" + _local5.getDate()) + "/") + _local5.getMonth()) + "/") + _local5.getFullYear()) + " ") + _local5.getHours()) + ":") + _local5.getMinutes()) + ":") + _local5.getSeconds()) + " ") + _local5.getDay()) + " ") + _local5.getTimezoneOffset());
_local9 = ("t=" + escape(_local8));
if (_local3.isSet(_local3.flashLivePreview)){
return;
};
if (_local3.isSet(_local3.otherVariables)){
_local10 = 0;
while (_local10 < _local3.accountVarList.length) {
_local11 = _local3.accountVarList[_local10];
if (_local3.isSet(_local3.otherVariables[_local11])){
_local3[_local11] = _local3.otherVariables[_local11];
};
_local10++;
};
_local10 = 0;
while (_local10 < _local3.accountConfigList.length) {
_local11 = _local3.accountConfigList[_local10];
if (_local3.isSet(_local3.otherVariables[_local11])){
_local3[_local11] = _local3.otherVariables[_local11];
};
_local10++;
};
};
if (_local3.isSet(_arg1)){
_local4 = new Object();
_local3.variableOverridesBuild(_local4);
_local3.variableOverridesApply(_arg1);
};
if (((_local3.isSet(_local3.usePlugins)) && (_local3.isSet(_local3.doPlugins)))){
_local3.doPlugins(_local3);
};
if (_local3.isSet(_local3.account)){
if (!_local3.isSet(_local3.pageURL)){
_local3.pageURL = _local3.getMovieURL();
};
if (((!(_local3.isSet(_local3.referrer))) && (!(_local3.isSet(_local3._1_referrer))))){
_local3.referrer = _local3.getMovieReferrer();
_local3._1_referrer = 1;
};
_local9 = (_local9 + _local3.queryStringAccountVariables());
_local9 = (_local9 + _local3.queryStringLinkTracking());
_local9 = (_local9 + _local3.queryStringClickMap());
_local9 = (_local9 + _local3.queryStringTechnology());
_local3.makeRequest(_local7, _local9, "", _arg2);
};
if (_local3.isSet(_arg1)){
_local3.variableOverridesApply(_local4);
};
_local3.referrer = undefined;
_local3.pe = undefined;
_local3.pev1 = undefined;
_local3.pev2 = undefined;
_local3.pev3 = undefined;
_local3.linkObject = undefined;
_local3.linkURL = undefined;
_local3.linkName = undefined;
_local3.linkType = undefined;
_local3.objectID = undefined;
if (_local3.isSet(_local3.account)){
if (((!(_local3.isSet(_arg2))) && (!(_local3.isSet(_local3.trackCalled))))){
_local3.trackCalled = true;
_local3.flushBufferedRequests();
};
};
}
public function get trackOnLoad():Boolean{
return (this._trackOnLoad);
}
private function callJavaScript(_arg1:String){
var s:Object;
var e:Object;
var script = _arg1;
s = this;
try {
if (((((s.isSet(ExternalInterface)) && (s.isSet(ExternalInterface.available)))) && (s.isSet(ExternalInterface.call)))){
return (ExternalInterface.call(script));
};
} catch(e) {
};
return (null);
}
private function getVersion():String{
return (Capabilities.version);
}
private function makeRequest(_arg1:String, _arg2:String, _arg3:String, _arg4:String){
var _local5:Object;
var _local6:*;
var _local7:String;
var _local8:String;
var _local9:String;
var _local10:String;
var _local11:String;
var _local12:Number;
_local5 = this;
_local6 = _local5.getMovieURL();
_local7 = _local5.trackingServer;
_local8 = _local5.trackingServerBase;
_local9 = _local5.dc;
_local10 = "sc.";
if (!_local5.isSet(_arg3)){
if (_local5.isSet(_local7)){
if (((_local5.isSet(_local5.trackingServerSecure)) && (_local5.isSet(_local5.ssl)))){
_local7 = _local5.trackingServerSecure;
};
} else {
_local11 = _local5.visitorNamespace;
if (!_local5.isSet(_local11)){
_local11 = _local5.account;
_local12 = _local11.indexOf(",");
if (_local12 >= 0){
_local11 = _local11.substr(0, _local12);
};
_local11 = _local11.split("_").join("-");
};
if (!_local5.isSet(_local8)){
_local8 = "2o7.net";
};
if (_local5.isSet(_local9)){
_local9 = _local9.toLowerCase();
} else {
_local9 = "d1";
};
if (_local8 == "2o7.net"){
if (_local9 == "d1"){
_local9 = "112";
} else {
if (_local9 == "d2"){
_local9 = "122";
};
};
_local10 = "";
};
_local7 = (((((_local11 + ".") + _local9) + ".") + _local10) + _local8);
};
if (_local5.isSet(_local5.ssl)){
_arg3 = "https://";
} else {
_arg3 = "http://";
};
_arg3 = (_arg3 + (((((((((((((_local7 + "/b/ss/") + _local5.account) + "/") + (_local5.mobile) ? "5.0" : "0") + "/") + _local5.version) + "-AS") + _local5.flashASVersion) + "/") + _arg1) + "?AQB=1&ndh=1&") + _arg2) + "&AQE=1"));
if (_local5.isSet(_arg4)){
_local5.bufferRequest(_local5.account, _arg4, _arg3);
return;
};
};
if (((_local5.isSet(_local5.ssl)) && ((_arg3.toLowerCase().substr(0, 5) == "http:")))){
_arg3 = ("https:" + _arg3.substr(5));
};
if (((((((_local5.isSet(_local5.trackLocal)) || ((_local5.flashVersion < 8)))) || (!(_local5.isSet(_local6))))) || ((_local6.toLowerCase().substr(0, 4) == "http")))){
_local5.requestList.push(_arg3);
if (((!(_local5.isSet(_local5.delayTracking))) || (((_local5.isSet(_local5.delayTrackingStage)) && ((_local5.delayTrackingStage == 2)))))){
_local5.flushRequestList();
} else {
if (((_local5.isSet(_local5.delayTracking)) && (!(_local5.isSet(_local5.delayTrackingStage))))){
_local5.delayTrackingStage = 1;
_local5.delayTrackingInterval = _local5.setupInterval(_local5, "delayTrackingDone", _local5.delayTracking, null);
};
};
};
}
public function replace(_arg1:String, _arg2:String, _arg3:String):String{
if (this.isSet(_arg1)){
if (_arg1.indexOf(_arg2) >= 0){
return (_arg1.split(_arg2).join(_arg3));
};
};
return (_arg1);
}
private function queryStringClickMap():String{
var _local1:Object;
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:String;
var _local6:Number;
var _local7:String;
_local1 = this;
_local2 = "";
_local3 = _local1.pageName;
_local4 = 1;
_local5 = _local1.objectID;
_local6 = 1;
_local7 = "FLASH";
if (((((!(_local1.isSet(_local5))) && (_local1.isSet(_local1.linkObject)))) && (((_local1.isSet(_local1.linkObject, "name")) || (_local1.isSet(_local1.linkObject, "_name")))))){
_local5 = _local1.ClickMap.getObjectID(_local1.linkObject);
};
if (!_local1.isSet(_local3)){
_local3 = _local1.pageURL;
_local4 = 0;
};
if (((((((_local1.isSet(_local1.trackClickMap)) && (_local1.isSet(_local3)))) && (_local1.isSet(_local5)))) && (_local1.isSet(_local7)))){
_local2 = (_local2 + ("&pid=" + escape(_local3)));
_local2 = (_local2 + (_local1.isSet(_local4)) ? ("&pidt=" + escape(("" + _local4))) : "");
_local2 = (_local2 + ("&oid=" + escape(_local5.substr(0, 100))));
_local2 = (_local2 + (_local1.isSet(_local6)) ? ("&oidt=" + escape(("" + _local6))) : "");
_local2 = (_local2 + ("&ot=" + escape(_local7)));
};
return (_local2);
}
private function queryStringTechnology():String{
var _local1:Object;
var _local2:String;
var _local3:Object;
_local1 = this;
_local2 = "";
_local3 = Capabilities;
if (((((_local1.isSet(_local3)) && (_local1.isSet(_local3.screenResolutionX)))) && (_local1.isSet(_local3.screenResolutionY)))){
_local2 = (_local2 + ((("&s=" + _local3.screenResolutionX) + "x") + _local3.screenResolutionY));
};
return (_local2);
}
public function isSet(_arg1, _arg2:String=null):Boolean{
var e:Object;
var val = _arg1;
var mbr = _arg2;
try {
if (mbr != null){
val = val[mbr];
};
return (((((((((((!((val == null))) && (!((val == undefined))))) && (!((("" + val) == "NaN"))))) && (!((val == false))))) && (!((val == ""))))) && (!((val == 0)))));
} catch(e) {
};
return (false);
}
public function flushBufferedRequests(){
var _local1:*;
_local1 = this;
if (_local1.isSet(_local1.account)){
_local1._flushBufferedRequests(_local1.account);
};
}
private function doTrackOnLoad(){
var _local1:Object;
_local1 = this;
if (((!(_local1.isSet(_local1.account))) || (!(_local1.isSet(_local1.movie))))){
return;
};
clearInterval(_local1.trackOnLoadInterval);
if (((_local1._trackOnLoad) && (!(_local1.onLoadTracked)))){
_local1.onLoadTracked = true;
_local1.track();
};
}
private function queryStringAccountVariables():String{
var _local1:Object;
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:String;
var _local7:*;
var _local8:String;
var _local9:String;
var _local10:*;
var _local11:*;
var _local12:*;
_local1 = this;
_local2 = "";
_local10 = "";
_local11 = "";
_local12 = "";
if (((_local1.isSet(_local1.pe)) || (_local1.isSet(_local1.linkType)))){
_local10 = _local1.linkTrackVars;
_local11 = _local1.linkTrackEvents;
if (_local1.isSet(_local1.pe)){
_local12 = (_local1.pe.substr(0, 1).toUpperCase() + _local1.pe.substr(1));
if (_local1.isSet(_local1[_local12])){
_local10 = _local1[_local12].trackVars;
_local11 = _local1[_local12].trackEvents;
};
};
};
if (_local1.isSet(_local10)){
_local10 = (((("," + _local10) + ",") + _local1.requiredVarList.join(",")) + ",");
};
if (_local1.isSet(_local11)){
_local11 = (("," + _local11) + ",");
};
_local3 = 0;
while (_local3 < _local1.accountVarList.length) {
_local5 = _local1.accountVarList[_local3];
_local6 = _local1[_local5];
_local8 = _local5.substr(0, 4);
_local9 = _local5.substr(4);
if (((_local1.isSet(_local6)) && (((!(_local1.isSet(_local10))) || ((_local10.indexOf((("," + _local5) + ",")) >= 0)))))){
switch (_local5){
case "dynamicVariablePrefix":
_local5 = "D";
break;
case "visitorID":
_local5 = "vid";
break;
case "pageURL":
_local5 = "g";
break;
case "referrer":
_local5 = "r";
break;
case "vmk":
case "visitorMigrationKey":
_local5 = "vmt";
break;
case "visitorMigrationServer":
_local5 = "vmf";
if (((_local1.isSet(_local1.ssl)) && (_local1.isSet(_local1.visitorMigrationServerSecure)))){
_local6 = "";
};
break;
case "visitorMigrationServerSecure":
_local5 = "vmf";
if (((!(_local1.isSet(_local1.ssl))) && (_local1.isSet(_local1.visitorMigrationServer)))){
_local6 = "";
};
break;
case "charSet":
_local5 = "ce";
break;
case "visitorNamespace":
_local5 = "ns";
break;
case "cookieDomainPeriods":
_local5 = "cdp";
break;
case "cookieLifetime":
_local5 = "cl";
break;
case "currencyCode":
_local5 = "cc";
break;
case "channel":
_local5 = "ch";
break;
case "transactionID":
_local5 = "xact";
break;
case "campaign":
_local5 = "v0";
break;
case "events":
if (_local1.isSet(_local11)){
_local7 = _local6.split(",");
_local6 = "";
_local4 = 0;
while (_local4 < _local7.length) {
if (_local11.indexOf((("," + _local7[_local4]) + ",")) >= 0){
_local6 = (_local6 + ((_local1.isSet(_local6)) ? "," : "" + _local7[_local4]));
};
_local4++;
};
};
break;
default:
if (_local1.isNumber(_local9)){
if (_local8 == "prop"){
_local5 = ("c" + _local9);
} else {
if (_local8 == "eVar"){
_local5 = ("v" + _local9);
} else {
if (_local8 == "list"){
_local5 = ("l" + _local9);
} else {
if (_local8 == "hier"){
_local5 = ("h" + _local9);
_local6 = _local6.substr(0, 0xFF);
};
};
};
};
};
break;
};
if (_local1.isSet(_local6)){
_local2 = (_local2 + ((("&" + escape(_local5)) + "=") + ((_local5.substr(0, 3))!="pev") ? escape(_local6) : _local6));
};
};
_local3++;
};
return (_local2);
}
public function isNumber(_arg1):Boolean{
return (!(isNaN(parseInt(_arg1))));
}
public function flushBufferedRequest(_arg1:String, _arg2:String){
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:String;
_local3 = this;
_local4 = _local3.getBufferedRequests();
if (_local3.isSet(_local4)){
_local6 = 0;
while (_local6 < _local4.data.list.length) {
_local5 = _local4.data.list[_local6];
if ((((_local5.account == _arg1)) && ((_local5.id == _arg2)))){
_local7 = _local4.data.list[_local6].request;
_local4.data.list[_local6].account = "";
_local4.data.list[_local6].id = "";
_local4.data.list[_local6].request = "";
_local4.flush();
_local3.makeRequest("", "", _local7, "");
};
_local6++;
};
};
}
public function set trackOnLoad(_arg1:Boolean){
this._trackOnLoad = _arg1;
if (this._trackOnLoad){
this.trackOnLoadInterval = this.setupInterval(this, "doTrackOnLoad", 100, null);
};
}
private function variableOverridesApply(_arg1:Object){
var _local2:Object;
var _local3:Number;
var _local4:String;
_local2 = this;
_local3 = 0;
while (_local3 < _local2.accountVarList.length) {
_local4 = _local2.accountVarList[_local3];
if (((_local2.isSet(_arg1[_local4])) || (_local2.isSet(_arg1[("!" + _local4)])))){
_local2[_local4] = _arg1[_local4];
};
_local3++;
};
_local3 = 0;
while (_local3 < _local2.accountConfigList.length) {
_local4 = _local2.accountConfigList[_local3];
if (((_local2.isSet(_arg1[_local4])) || (_local2.isSet(_arg1[("!" + _local4)])))){
_local2[_local4] = _arg1[_local4];
};
_local3++;
};
}
private function setVariableCallHandler(){
var _local1:Object;
var _local2:Object;
var _local3:String;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
var _local8:Object;
var _local9:Number;
_local1 = this;
for (_local3 in _local1) {
if (_local3.substr(0, 5) == "_svc_"){
_local5 = _local3.split("_");
if (((_local1.isSet(_local5)) && ((_local5.length >= 4)))){
if ((((_local5[3] == "dot")) && ((_local5.length > 4)))){
_local5[2] = (_local5[2] + ("_dot_" + _local5[4]));
_local6 = 5;
while (_local6 < _local5.length) {
_local5[(_local6 - 2)] = _local5[_local6];
_local6++;
};
};
_local8 = null;
if (_local1.isSet(_local7)){
_local9 = 0;
while (_local9 < _local7.length) {
if (_local7[_local9].methodName == _local5[2]){
_local8 = _local7[_local9];
};
_local9++;
};
};
if (!_local1.isSet(_local8)){
_local7 = new Array();
_local8 = new Object();
_local8.methodName = _local5[2];
_local7[0] = _local8;
};
if (_local5[3] == "call"){
if (_local1.isSet(_local1[_local3])){
_local8.call = true;
};
_local1[_local3] = null;
} else {
if ((((((_local5[3] == "param")) && ((_local5.length > 4)))) && (_local1.isSet(_local5[4])))){
if (!_local1.isSet(_local8.paramList)){
_local8.paramList = new Array();
};
_local8.paramList[_local5[4]] = _local1[_local3];
};
};
};
};
};
if (((_local1.isSet(_local7)) && ((_local7.length > 0)))){
_local9 = 0;
while (_local9 < _local7.length) {
_local8 = _local7[_local9];
if (((_local1.isSet(_local8.methodName)) && (_local1.isSet(_local8.call)))){
_local5 = _local8.methodName.split("_dot_");
if (_local5.length > 1){
_local2 = _local1[_local5[0]];
_local4 = _local5[1];
} else {
_local2 = _local1;
_local4 = _local8.methodName;
};
if (_local1.isSet(_local2[_local4])){
if (((_local1.isSet(_local8.paramList)) && ((_local8.paramList.length > 0)))){
if (_local8.paramList.length == 1){
_local1[("_svc_result_" + _local8.methodName)] = _local2[_local4](_local8.paramList[0]);
} else {
if (_local8.paramList.length == 2){
_local1[("_svc_result_" + _local8.methodName)] = _local2[_local4](_local8.paramList[0], _local8.paramList[1]);
} else {
if (_local8.paramList.length == 3){
_local1[("_svc_result_" + _local8.methodName)] = _local2[_local4](_local8.paramList[0], _local8.paramList[1], _local8.paramList[2]);
};
};
};
} else {
_local1[(("_svc_" + _local8.methodName) + "_result")] = _local2[_local4]();
};
};
};
_local9++;
};
};
}
public function get movie():Object{
return (this._movie);
}
private function getBufferedRequests(){
var s:Object;
var bufferedRequests:Object;
s = this;
if (!s.isSet(s.disableBufferedRequests)){
bufferedRequests = SharedObject.getLocal("s_br", "/");
};
if (!s.isSet(bufferedRequests)){
bufferedRequests = s.bufferedRequests;
if (!s.isSet(bufferedRequests)){
s.bufferedRequests = new Object();
s.bufferedRequests.flush = function (){
};
bufferedRequests = s.bufferedRequests;
};
};
if (!s.isSet(bufferedRequests.data)){
bufferedRequests.data = new Object();
};
if (!s.isSet(bufferedRequests.data.list)){
bufferedRequests.data.list = new Array();
};
return (bufferedRequests);
}
private function modulesInit(){
var _local1:Object;
_local1 = this;
_local1.ClickMap = new ActionSource_Module_ClickMap(_local1);
_local1.Media = new ActionSource_Module_Media(_local1);
_local1.modulesUpdate();
}
private function modulesUpdate(){
var _local1:Object;
var _local2:String;
_local1 = this;
if (_local1.isSet(_local1.Media)){
if (_local1.isSet(_local1._moduleMediaVariables)){
for (_local2 in _local1._moduleMediaVariables) {
if (_local1.isSet(_local1._moduleMediaVariables[_local2])){
if ((((_local2 == "trackWhilePlaying")) || ((_local2 == "autoTrack")))){
if (("" + _local1._moduleMediaVariables[_local2]).toLowerCase() == "true"){
_local1._moduleMediaVariables[_local2] = true;
} else {
_local1._moduleMediaVariables[_local2] = false;
};
};
_local1.Media[_local2] = _local1._moduleMediaVariables[_local2];
};
};
};
_local1.Media.autoTrack = _local1.Media.autoTrack;
};
}
public function track(_arg1:Object=null, _arg2:String=""){
this._track(_arg1, _arg2);
}
public function set moduleMediaVariables(_arg1:Object){
this._moduleMediaVariables = _arg1;
this.modulesUpdate();
}
private function initPre(){
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
public function get moduleMediaVariables():Object{
return (this._moduleMediaVariables);
}
public function getMovieURL():String{
var _local1:Object;
var _local2:String;
_local1 = this;
_local2 = _local1.callJavaScript("function s_ActionSource_wl(){return window.location.href;}");
if (_local1.isSet(_local2)){
return (_local2);
};
if (_local1.isSet(_local1.movie)){
if ((((((_local1.flashASVersion > 2)) && (_local1.isSet(_local1.movie.loaderInfo)))) && (_local1.isSet(_local1.movie.loaderInfo.loaderURL)))){
return (_local1.movie.loaderInfo.loaderURL);
};
if (_local1.isSet(_local1.movie._url)){
return (_local1.movie._url);
};
};
return ("");
}
private function onAddedToStage(_arg1:Event){
if ((((parent == null)) || (!((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent"))))){
this.visible = false;
this.movie = root;
} else {
this.flashLivePreview = true;
};
}
private function getMovieReferrer():String{
var _local1:Object;
_local1 = this;
return (_local1.callJavaScript((((((((((((((((((((((((("" + "function s_ActionSource_r(){") + "\tvar ") + "\t\tr = '',") + "\t\tw = window,") + "\t\te,") + "\t\tp,") + "\t\tl,") + "\t\te;") + "\tif ((w) && (w.document)) {") + "\t\tr = w.document.referrer;") + "\t\ttry {") + "\t\t\tp = w.parent;") + "\t\t\tl = w.location;") + "\t\t\twhile ((p) && (p.location) && (l) && (''+p.location != ''+l) && (w.location) && (''+p.location != ''+w.location) && (p.location.host == l.host)) {") + "\t\t\t\tw = p;") + "\t\t\t\tp = w.parent;") + "\t\t\t}") + "\t\t} catch (e) {}") + "\t\tif ((w) && (w.document)) {") + "\t\t\tr = w.document.referrer;") + "\t\t}") + "\t}") + "\treturn r;") + "}")));
}
private function initPost(){
}
public function trackLink(_arg1, _arg2:String, _arg3:String, _arg4:Object=null){
this._trackLink(_arg1, _arg2, _arg3, _arg4);
}
private function _flushBufferedRequests(_arg1:String){
var _local2:Object;
var _local3:Object;
var _local4:Object;
var _local5:Number;
_local2 = this;
_local3 = _local2.getBufferedRequests();
if (_local2.isSet(_local3)){
_local5 = 0;
while (_local5 < _local3.data.list.length) {
_local4 = _local3.data.list[_local5];
if (_local4.account == _arg1){
_local2.flushBufferedRequest(_arg1, _local4.id);
};
_local5++;
};
};
}
private function delayTrackingDone(){
var _local1:Object;
_local1 = this;
clearInterval(_local1.delayTrackingInterval);
_local1.delayTrackingStage = 2;
_local1.flushRequestList();
}
}
}//package com.omniture
Section 9
//ActionSource_Module_ClickMap (com.omniture.ActionSource_Module_ClickMap)
package com.omniture {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.external.*;
public dynamic class ActionSource_Module_ClickMap {
private var s:Object;
private static var isExternalSet:Boolean = false;
public function ActionSource_Module_ClickMap(_arg1:Object){
var m:Object;
var e:Object;
var s = _arg1;
super();
m = this;
m.s = s;
m.s.addEventListener(Event.ADDED_TO_STAGE, m.onAddedToStage, false, 0, true);
if (((ExternalInterface.available) && (!(m.isExternalSet)))){
m.isExternalSet = true;
try {
ExternalInterface.addCallback("s_getDOMIndex", m.getDOMIndex);
ExternalInterface.addCallback("s_getTrackClickMap", m.getTrackClickMap);
ExternalInterface.addCallback("s_getAccount", m.getAccount);
ExternalInterface.addCallback("s_getPageName", m.getPageName);
ExternalInterface.addCallback("s_getPageURL", m.getPageURL);
ExternalInterface.addCallback("s_getMovieID", m.getMovieID);
ExternalInterface.addCallback("s_getVersion", m.getVersion);
ExternalInterface.addCallback("s_getCharSet", m.getCharSet);
ExternalInterface.addCallback("s_getSWFURL", m.getSWFURL);
} catch(e) {
};
};
}
public function getSWFURL(){
var _local1:Object;
_local1 = this;
if (_local1.s.isSet(s.movie)){
if (((_local1.s.isSet(_local1.s.movie.loaderInfo)) && (_local1.s.isSet(_local1.s.movie.loaderInfo.loaderURL)))){
return (_local1.s.movie.loaderInfo.loaderURL);
};
if (_local1.s.isSet(_local1.s.movie._url)){
return (_local1.s.movie._url);
};
};
return ("");
}
public function getVersion(){
var _local1:Object;
_local1 = this;
return (_local1.s.version);
}
private function parentLocalToGlobal(_arg1:DisplayObject, _arg2:Object){
var _local3:*;
_local3 = new Point(_arg2.x, _arg2.y);
_arg1.parent.localToGlobal(_local3);
_arg2.x = _local3.x;
_arg2.y = _local3.y;
}
private function getFullPath(_arg1:DisplayObject){
var _local2:String;
var _local3:String;
var _local4:Array;
_local4 = new Array();
do {
_local4.splice(0, 0, _arg1.name);
_arg1 = _arg1.parent;
} while (_arg1.parent != null);
_local2 = _local4.join(".");
_local3 = _local2.substr((_local2.length - 4), 4);
if ((((_local3 == ".frs")) || ((_local3 == ".fds")))){
_local2 = _local2.substr(0, (_local2.length - 4));
};
return (_local2);
}
public function getObjectID(_arg1:Object){
var _local2:Object;
var _local3:String;
var _local4:String;
_local2 = this;
_local3 = _local2.getMovieID();
_local4 = "";
_local4 = _local2.getFullPath(_arg1);
if (_local2.s.isSet(_local4)){
_local4 = (((_local2.s.isSet(_local3)) ? _local3 : "" + ":") + _local4);
};
return (_local4);
}
public function getMovieID(){
var _local1:Object;
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:Number;
_local1 = this;
_local2 = _local1.getSWFURL();
_local3 = s.movieID;
if (((!(_local1.s.isSet(_local3))) && (_local1.s.isSet(_local2)))){
_local4 = _local2.lastIndexOf("/");
_local5 = _local2.lastIndexOf(".");
if (_local4 >= 0){
_local4++;
} else {
_local4 = 0;
};
if (_local5 >= 0){
_local5 = (_local5 - _local4);
} else {
_local5 = _local2.length;
};
_local3 = _local2.substr(_local4, _local5);
};
if (!_local1.s.isSet(_local3)){
_local3 = "movieID undefined";
};
return (_local3);
}
public function getIndex(){
var _local1:Object;
var _local2:String;
_local1 = this;
if (_local1.s.isSet(_local1.s.movie)){
_local2 = (((_local1.s.movie.stage.stageWidth + ",") + _local1.s.movie.stage.stageHeight) + _local1.indexChildren(_local1.s.movie));
return (_local2);
};
return ("");
}
private function sendClickMapEvent(_arg1:Object){
var _local2:Object;
var _local3:String;
var _local4:String;
var _local5:String;
var _local6:Number;
_local2 = this;
_local3 = _local2.s.getMovieURL();
_local4 = _local2.getMovieID();
if (_local2.s.isSet(_local2.s.trackClickMap)){
_local2.s.objectID = _local2.getObjectID(_arg1);
};
if (_local2.s.autoTrack){
_local5 = _local3;
_local6 = _local5.indexOf("?");
if (_local6 >= 0){
_local5 = _local5.substr(0, _local6);
};
if (_local5.length > (100 - 23)){
_local5 = _local5.substr(-((100 - 23)));
};
_local2.s.trackLink(_local3, "o", ("ActionSource.AutoTrack:" + _local5));
};
}
private function nodeShift(_arg1:DisplayObject, _arg2:Number, _arg3:Number){
_arg1.x = _arg2;
_arg1.y = _arg3;
}
private function parentGetBounds(_arg1:DisplayObject){
var _local2:*;
var _local3:*;
_local2 = _arg1.parent.getBounds(_arg1.parent);
_local3 = new Object();
_local3.xMin = _local2.x;
_local3.yMin = _local2.y;
_local3.xMax = (_local2.x + _local2.width);
_local3.yMax = (_local2.y + _local2.height);
return (_local3);
}
private function onAddedToStage(_arg1:Event):void{
var _local2:Object;
_local2 = this;
_local2.s.root.addEventListener(MouseEvent.CLICK, _local2.onMouseClick, true, 0, true);
}
private function getDOMID(_arg1:Object){
var _local2:Object;
var _local3:Object;
_local2 = this;
if (_local2.s.isSet(_arg1)){
_local3 = _local2.getGeom(_arg1);
return (((((((((_local2.getFullPath(_arg1) + ",") + _local3.x) + ",") + _local3.y) + ",") + _local3.w) + ",") + _local3.h));
};
return ("");
}
private function onMouseClick(_arg1:MouseEvent):void{
var m:Object;
var e:Object;
var event = _arg1;
m = this;
try {
m.sendClickMapEvent(InteractiveObject(event.target));
} catch(e) {
};
}
public function getPageURL(){
var _local1:Object;
_local1 = this;
return (_local1.s.pageURL);
}
public function getDOMIndex(){
var _local1:Object;
_local1 = this;
return (_local1.getIndex());
}
public function getTrackClickMap(){
var _local1:Object;
_local1 = this;
return (_local1.s.trackClickMap.toString());
}
private function indexChildren(_arg1:DisplayObjectContainer):String{
var _local2:Object;
var _local3:String;
var _local4:Number;
var _local5:DisplayObject;
_local2 = this;
_local3 = new String();
_local4 = 0;
while (_local4 < _arg1.numChildren) {
_local5 = _arg1.getChildAt(_local4);
if (_local2.s.isSet(_local5)){
_local3 = (_local3 + ("|" + _local2.getDOMID(_local5)));
if ((_local5 is DisplayObjectContainer)){
_local3 = (_local3 + _local2.indexChildren(DisplayObjectContainer(_local5)));
};
};
_local4++;
};
return (_local3);
}
private function nodePos(_arg1:DisplayObject){
var _local2:*;
_local2 = new Object();
_local2.x = _arg1.x;
_local2.y = _arg1.y;
return (_local2);
}
public function getCharSet(){
var _local1:Object;
_local1 = this;
return (_local1.s.charSet);
}
public function getAccount(){
var _local1:Object;
_local1 = this;
return (_local1.s.account);
}
private function getGeom(_arg1:Object){
var _local2:Object;
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Object;
var _local7:Object;
var _local8:Object;
_local2 = this;
_local3 = new Object();
_local6 = _local2.parentGetBounds(_arg1);
_local4 = _local2.nodePos(_arg1);
_local5 = _local2.nodePos(_arg1);
_local2.nodeShift(_arg1, _local6.xMin, _local6.yMin);
_local7 = _local2.parentGetBounds(_arg1);
_local2.nodeShift(_arg1, _local6.xMax, _local6.yMax);
_local8 = _local2.parentGetBounds(_arg1);
_local2.nodeShift(_arg1, _local4.x, _local4.y);
_local4.x = (_local4.x + (_local7.xMin - _local6.xMin));
_local4.y = (_local4.y + (_local7.yMin - _local6.yMin));
_local5.x = (_local5.x + (_local8.xMax - _local6.xMax));
_local5.y = (_local5.y + (_local8.yMax - _local6.yMax));
_local2.parentLocalToGlobal(_arg1, _local4);
_local2.parentLocalToGlobal(_arg1, _local5);
_local3.x = Math.round(_local4.x);
_local3.y = Math.round(_local4.y);
_local3.w = Math.ceil((_local5.x - _local4.x));
_local3.h = Math.ceil((_local5.y - _local4.y));
return (_local3);
}
public function getPageName(){
var _local1:Object;
_local1 = this;
return (_local1.s.pageName);
}
}
}//package com.omniture
Section 10
//ActionSource_Module_Media (com.omniture.ActionSource_Module_Media)
package com.omniture {
import flash.utils.*;
public dynamic class ActionSource_Module_Media {
public var trackEvents:String;
public var playerName:String;
public var trackVars:String;
private var autoTrackInterval:Number;
private var _autoTrack:Boolean;// = false
private var list:Object;
private var monitorList:Array;
public var trackWhilePlaying:Boolean;// = false
private var s:Object;
public var trackSeconds:Number;// = 0
public var trackMilestones:String;// = ""
private var autoTrackDone:Boolean;// = false
public function ActionSource_Module_Media(_arg1:Object){
var _local2:Object;
trackWhilePlaying = false;
trackSeconds = 0;
trackMilestones = "";
_autoTrack = false;
autoTrackDone = false;
super();
_local2 = this;
_local2.s = _arg1;
_local2.monitorList = null;
}
public function listenerMedia_scrubbing(_arg1){
this.listenerMedia.scrubbing(_arg1);
}
private function attach(_arg1:Object){
var m:Object;
var member:String;
var childNum:Number;
var monitor:Object;
var node = _arg1;
m = this;
if (m.s.isSet(node)){
if (((m.s.isSet(node, "addEventListener")) && (m.s.isSet(node, "isFLVCuePointEnabled")))){
if (!m.s.isSet(m.listenerFLVPlayback)){
m.listenerFLVPlayback = new Object();
m.listenerFLVPlayback.m = m;
m.listenerFLVPlayback.playerName = "Flash FLVPlayback";
m.listenerFLVPlayback.handleEvent = function (_arg1:Object, _arg2:Number){
var _local3:Object;
var _local4:String;
var _local5:Number;
var _local6:Number;
_local3 = this.m;
if (((_local3.s.isSet(_local3.autoTrack)) && (_local3.s.isSet(_arg1)))){
if (_local3.s.flashASVersion > 2){
_local4 = _arg1.source;
} else {
_local4 = _arg1.contentPath;
};
_local5 = _arg1.totalTime;
_local6 = _arg1.playheadTime;
_local3.autoEvent(_local4, _local5, this.playerName, _arg2, _local6, _arg1);
};
};
m.listenerFLVPlayback.stateChange = function (_arg1){
var _local2:Object;
var _local3:Number;
var _local4:Object;
_local2 = this.m;
_local3 = -1;
if (((_local2.s.isSet(_arg1)) && (_local2.s.isSet(_arg1.target)))){
_local4 = _arg1.target;
if (_local2.s.isSet(_local4, "state")){
if (_local4.state == "playing"){
_local3 = 1;
} else {
if ((((((((((_local4.state == "stopped")) || ((_local4.state == "paused")))) || ((_local4.state == "buffering")))) || ((_local4.state == "rewinding")))) || ((_local4.state == "seeking")))){
_local3 = 2;
};
};
if (_local3 >= 0){
this.handleEvent(_arg1.target, _local3);
};
};
};
};
m.listenerFLVPlayback.complete = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 0);
};
};
};
if (m.s.flashASVersion > 2){
node.addEventListener("complete", m.listenerFLVPlayback_complete);
node.addEventListener("stateChange", m.listenerFLVPlayback_stateChange);
} else {
node.addEventListener("complete", m.listenerFLVPlayback);
node.addEventListener("stateChange", m.listenerFLVPlayback);
};
monitor = new Object();
monitor.m = m;
monitor.node = node;
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
_local1 = this.m;
_local2 = this.node;
if (((_local1.s.isSet(_local2.state)) && ((_local2.state == "playing")))){
this.m.listenerFLVPlayback.handleEvent(_local2, 3);
};
};
m.startMonitor(monitor);
} else {
if (((m.s.isSet(node, "addEventListener")) && (m.s.isSet(node, "addCuePoint")))){
if (!m.s.isSet(m.listenerMedia)){
m.listenerMedia = new Object();
m.listenerMedia.m = m;
m.listenerMedia.playerName = "Flash Media";
m.listenerMedia.handleEvent = function (_arg1:Object, _arg2:Number){
var _local3:Object;
var _local4:String;
var _local5:Number;
var _local6:Number;
_local3 = this.m;
if (((_local3.s.isSet(_local3.autoTrack)) && (_local3.s.isSet(_arg1)))){
_local4 = _arg1.contentPath;
_local5 = _arg1.totalTime;
_local6 = _arg1.playheadTime;
_local3.autoEvent(_local4, _local5, this.playerName, _arg2, _local6, _arg1);
};
};
m.listenerMedia.complete = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 0);
};
};
m.listenerMedia.click = function (_arg1){
if (((this.m.s.isSet(_arg1)) && (this.m.s.isSet(_arg1.target)))){
this.handleEvent(_arg1.target, (this.m.s.isSet(_arg1.target.playing)) ? 1 : 2);
};
};
m.listenerMedia.change = function (_arg1){
if (((this.m.s.isSet(_arg1)) && (this.m.s.isSet(_arg1.target)))){
this.handleEvent(_arg1.target, (this.m.s.isSet(_arg1.target.playing)) ? 1 : 2);
};
};
m.listenerMedia.scrubbing = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 2);
};
};
};
if (m.s.flashASVersion > 2){
node.addEventListener("complete", m.listenerMedia_complete);
node.addEventListener("click", m.listenerMedia_click);
node.addEventListener("change", m.listenerMedia_change);
node.addEventListener("scrubbing", m.listenerMedia_scrubbing);
} else {
node.addEventListener("complete", m.listenerMedia);
node.addEventListener("click", m.listenerMedia);
node.addEventListener("change", m.listenerMedia);
node.addEventListener("scrubbing", m.listenerMedia);
};
monitor = new Object();
monitor.m = m;
monitor.node = node;
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
_local1 = this.m;
_local2 = this.node;
if (_local1.s.isSet(_local2.playing)){
this.m.listenerMedia.handleEvent(_local2, 3);
};
};
m.startMonitor(monitor);
} else {
if (m.s.flashASVersion > 2){
if (((m.s.isSet(node, "numChildren")) && (m.s.isSet(node, "getChildAt")))){
childNum = 0;
while (childNum < node.numChildren) {
m.attach(node.getChildAt(childNum));
childNum = (childNum + 1);
};
};
} else {
for (member in node) {
if (((((((m.s.isSet(node[member])) && (m.s.isSet(node[member]._name)))) && ((node[member]._name == member)))) && ((((("" + node) + ".") + member) == ("" + node[member]))))){
m.attach(node[member]);
};
};
};
};
};
};
}
public function listenerMedia_change(_arg1){
this.listenerMedia.change(_arg1);
}
public function stop(_arg1:String, _arg2:Number){
this.event(_arg1, 2, _arg2);
}
public function open(_arg1:String, _arg2:Number, _arg3:String, _arg4:Object=null){
this._open(_arg1, _arg2, _arg3, _arg4);
}
public function doAutoTrack(){
var _local1:Object;
_local1 = this;
if (((!(_local1.s.isSet(_local1.s.account))) || (!(_local1.s.isSet(_local1.s.movie))))){
return;
};
clearInterval(_local1.autoTrackInterval);
if (((_local1._autoTrack) && (!(_local1.autoTrackDone)))){
_local1.autoTrackDone = true;
_local1.attach(_local1.s.movie);
};
}
public function track(_arg1:String){
var _local2:Object;
_local2 = this;
if (_local2.s.isSet(_local2.trackWhilePlaying)){
_local2.event(_arg1, 4, -1);
};
}
public function play(_arg1:String, _arg2:Number){
var m:Object;
var media:Object;
var monitor:Object;
var name = _arg1;
var offset = _arg2;
m = this;
m.event(name, 1, offset);
monitor = new Object();
monitor.m = m;
monitor.node = m.cleanName(name);
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
var _local3:Object;
_local1 = this.m;
_local2 = this.node;
_local3 = (((((_local1.s.isSet(_local2)) && (_local1.s.isSet(_local1.list)))) && (_local1.s.isSet(_local1.list[_local2])))) ? _local1.list[_local2] : null;
if (_local1.s.isSet(_local3)){
if (_local3.lastEventType == 1){
_local1.event(_local3.name, 3, -1);
};
} else {
this.node = null;
};
};
m.startMonitor(monitor);
}
private function event(_arg1:String, _arg2:Number, _arg3:Number){
var _local4:Object;
var _local5:Object;
var _local6:Date;
var _local7:Number;
var _local8:Number;
var _local9:String;
var _local10:Array;
var _local11:Number;
var _local12:String;
var _local13:Boolean;
var _local14:String;
var _local15:String;
var _local16:String;
var _local17:String;
var _local18:String;
var _local19:Object;
_local4 = this;
_local6 = new Date();
_local7 = Math.floor((_local6.getTime() / 1000));
_local8 = _local4.trackSeconds;
_local9 = _local4.trackMilestones;
_local12 = "--**--";
_local13 = true;
_local14 = null;
_local15 = _local4.trackVars;
_local16 = _local4.trackEvents;
_local17 = "media";
_local19 = new Object();
_arg1 = _local4.cleanName(_arg1);
_local5 = (((((_local4.s.isSet(_arg1)) && (_local4.s.isSet(_local4.list)))) && (_local4.s.isSet(_local4.list[_arg1])))) ? _local4.list[_arg1] : null;
if (_local4.s.isSet(_local5)){
_local19.name = _arg1;
_local19.length = _local5.length;
_local19.playerName = _local5.playerName;
if (_local5.lastTrackOffset < 0){
_local19.event = "OPEN";
} else {
_local19.event = ((_arg2 == 1)) ? "PLAY" : ((_arg2 == 2)) ? "STOP" : ((_arg2 == 3)) ? "MONITOR" : "CLOSE";
};
_local19.openTime = new Date();
_local19.openTime.setTime((_local5.timestamp * 1000));
if ((((_arg2 > 2)) || (((!((_arg2 == _local5.lastEventType))) && (((!((_arg2 == 2))) || ((_local5.lastEventType == 1)))))))){
_local14 = ("Media." + _arg1);
_local18 = (((((("" + escape(_local5.name)) + _local12) + _local5.length) + _local12) + escape(_local5.playerName)) + _local12);
if (_local4.s.isSet(_arg2)){
if ((((_arg3 < 0)) && ((_local5.lastEventTimestamp > 0)))){
_arg3 = ((_local7 - _local5.lastEventTimestamp) + _local5.lastEventOffset);
_arg3 = ((_arg3 < _local5.length)) ? _arg3 : (_local5.length - 1);
};
_arg3 = Math.floor(_arg3);
if ((((_arg2 >= 2)) && ((_local5.lastEventOffset < _arg3)))){
_local5.timePlayed = (_local5.timePlayed + (_arg3 - _local5.lastEventOffset));
_local5.timePlayedSinseTrack = (_local5.timePlayedSinseTrack + (_arg3 - _local5.lastEventOffset));
};
if (_arg2 <= 2){
_local5.session = (_local5.session + (((_arg2 == 1)) ? "S" : "E" + _arg3));
_local5.lastEventType = _arg2;
} else {
if (_local5.lastEventType != 1){
_local4.event(_arg1, 1, _arg3);
};
};
_local5.lastEventTimestamp = _local7;
_local5.lastEventOffset = _arg3;
_local18 = (_local18 + ((((((("" + _local5.timePlayed) + _local12) + _local5.timestamp) + _local12) + (((_local4.s.isSet(_local4.trackWhilePlaying)) && ((_local5.lastTrackOffset >= 0)))) ? ("L" + _local5.lastTrackOffset) : "") + _local5.session) + ((_arg2)!=2) ? ((_local4.s.isSet(_local4.trackWhilePlaying)) ? "L" : "E" + _arg3) : ""));
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local14 = null;
_local17 = "m_o";
if (_arg2 != 4){
_local19.offset = _arg3;
_local19.percent = (((_local19.offset + 1) / _local19.length) * 100);
_local19.percent = ((_local19.percent > 100)) ? 100 : Math.floor(_local19.percent);
_local19.timePlayed = _local5.timePlayed;
if (_local4.s.isSet(_local4.monitor)){
_local4.monitor(_local4.s, _local19);
};
};
if (_local5.lastTrackOffset < 0){
_local17 = "m_s";
} else {
if (_arg2 == 4){
_local17 = "m_i";
} else {
_local13 = false;
_local16 = "None";
_local15 = _local16;
_local8 = (_local4.s.isSet(_local8)) ? parseInt(("" + _local8)) : 0;
_local10 = (_local4.s.isSet(_local9)) ? _local9.split(",") : null;
if (((_local4.s.isSet(_local8)) && ((_local5.timePlayedSinseTrack >= _local8)))){
_local13 = true;
} else {
if (_local4.s.isSet(_local10)){
if (_arg3 < _local5.lastTrackOffset){
_local5.lastTrackOffset = _arg3;
} else {
_local11 = 0;
while (_local11 < _local10.length) {
_local8 = (_local4.s.isSet(_local10[_local11])) ? parseInt(("" + _local10[_local11])) : 0;
if (((((_local4.s.isSet(_local8)) && ((((_local5.lastTrackOffset + 1) / _local5.length) < (_local8 / 100))))) && ((((_arg3 + 1) / _local5.length) >= (_local8 / 100))))){
_local13 = true;
_local11 = _local10.length;
};
_local11++;
};
};
};
};
};
};
};
} else {
_local4.event(_arg1, 2, -1);
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local19.offset = _local5.lastEventOffset;
_local19.percent = (((_local19.offset + 1) / _local19.length) * 100);
_local19.percent = ((_local19.percent > 100)) ? 100 : Math.floor(_local19.percent);
_local19.timePlayed = _local5.timePlayed;
if (_local4.s.isSet(_local4.monitor)){
_local4.monitor(_local4.s, _local19);
};
};
_local4.list[_arg1] = 0;
if (_local4.s.isSet(_local5.session)){
_local18 = (_local18 + (((((("" + _local5.timePlayed) + _local12) + _local5.timestamp) + _local12) + (((_local4.s.isSet(_local4.trackWhilePlaying)) && ((_local5.lastTrackOffset >= 0)))) ? ("L" + _local5.lastTrackOffset) : "") + _local5.session));
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local16 = "None";
_local15 = _local16;
_local17 = "m_o";
} else {
_local13 = false;
_local4.s.flushBufferedRequest(_local4.s.account, _local14);
};
} else {
_local13 = false;
};
_local14 = null;
};
if (_local13){
_local4.s.track({linkTrackVars:_local15, linkTrackEvents:_local16, pe:_local17, pev3:_local18}, _local14);
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local5.timePlayedSinseTrack = 0;
_local5.lastTrackOffset = _arg3;
_local5.session = "";
};
};
};
};
}
public function listenerMedia_complete(_arg1){
this.listenerMedia.complete(_arg1);
}
public function listenerFLVPlayback_complete(_arg1){
this.listenerFLVPlayback.complete(_arg1);
}
public function get autoTrack():Boolean{
return (this._autoTrack);
}
private function startMonitor(_arg1:Object){
var m:Object;
var monitorNum:Number;
var nextMonitorNum:Number;
var monitor = _arg1;
m = this;
nextMonitorNum = 0;
if (m.s.isSet(m.monitorList)){
nextMonitorNum = -1;
monitorNum = 0;
while (monitorNum < m.monitorList.length) {
if (m.s.isSet(m.monitorList[monitorNum])){
if (((((((m.s.isSet(m.monitorList[monitorNum].node)) && (m.s.isSet(monitor)))) && (m.s.isSet(monitor.node)))) && ((m.monitorList[monitorNum].node == monitor.node)))){
return;
};
} else {
if (nextMonitorNum < 0){
nextMonitorNum = monitorNum;
};
};
monitorNum = (monitorNum + 1);
};
if (nextMonitorNum < 0){
nextMonitorNum = m.monitorList.length;
};
} else {
m.monitorList = new Array();
};
monitor.update = function (_arg1:Object){
if ((((((((((((_arg1.m == null)) || ((_arg1.m == undefined)))) || ((_arg1.m.s == null)))) || ((_arg1.m.s == undefined)))) || ((_arg1.node == null)))) || ((_arg1.node == undefined)))){
clearInterval(_arg1.interval);
_arg1.m.monitorList[_arg1.num] = null;
} else {
_arg1.monitor();
};
};
monitor.interval = m.s.setupInterval(monitor, "update", 5000, monitor);
monitor.num = nextMonitorNum;
m.monitorList[monitor.num] = monitor;
}
private function _open(_arg1:String, _arg2:Number, _arg3:String, _arg4:Object){
var _local5:Object;
var _local6:Object;
var _local7:Date;
var _local8:String;
var _local9:String;
_local5 = this;
_local6 = new Object();
_local7 = new Date();
_local8 = "";
_arg1 = _local5.cleanName(_arg1);
_arg2 = Math.floor(_arg2);
if (!_local5.s.isSet(_arg2)){
_arg2 = 1;
};
if (((_local5.s.isSet(_arg1)) && (_local5.s.isSet(_arg3)))){
if (!_local5.s.isSet(_local5.list)){
_local5.list = new Object();
};
if (_local5.s.isSet(_local5.list[_arg1])){
_local5.close(_arg1);
};
if (_local5.s.isSet(_arg4)){
_local8 = ("" + _arg4);
};
for (_local9 in _local5.list) {
if (((_local5.s.isSet(_local5.list[_local9])) && ((_local5.list[_local9].playerID == _local8)))){
_local5.close(_local5.list[_local9].name);
};
};
_local6.name = _arg1;
_local6.length = _arg2;
_local6.playerName = _local5.cleanName((_local5.s.isSet(_local5.playerName)) ? _local5.playerName : _arg3);
_local6.playerID = _local8;
_local6.timePlayed = 0;
_local6.timePlayedSinseTrack = 0;
_local6.timestamp = Math.floor((_local7.getTime() / 1000));
_local6.lastEventType = 0;
_local6.lastEventTimestamp = _local6.timestamp;
_local6.lastEventOffset = 0;
_local6.session = "";
_local6.lastTrackOffset = -1;
_local5.list[_arg1] = _local6;
};
}
private function autoEvent(_arg1:String, _arg2:Number, _arg3:String, _arg4:Number, _arg5:Number, _arg6:Object){
var _local7:Object;
_local7 = this;
_arg1 = _local7.cleanName(_arg1);
if (((((_local7.s.isSet(_arg1)) && (_local7.s.isSet(_arg2)))) && (_local7.s.isSet(_arg3)))){
if (((!(_local7.s.isSet(_local7.list))) || (!(_local7.s.isSet(_local7.list[_arg1]))))){
_local7.open(_arg1, _arg2, _arg3, _arg6);
};
_local7.event(_arg1, _arg4, _arg5);
};
}
public function listenerMedia_click(_arg1){
this.listenerMedia.click(_arg1);
}
public function set autoTrack(_arg1:Boolean){
this._autoTrack = _arg1;
if (this._autoTrack){
this.autoTrackInterval = this.s.setupInterval(this, "doAutoTrack", 100, null);
};
}
public function listenerFLVPlayback_stateChange(_arg1){
this.listenerFLVPlayback.stateChange(_arg1);
}
private function cleanName(_arg1:String):String{
var _local2:Object;
_local2 = this;
return (_local2.s.replace(_local2.s.replace(_local2.s.replace(_arg1, "\n", ""), "\r", ""), "--**--", ""));
}
public function close(_arg1:String){
this.event(_arg1, 0, -1);
}
}
}//package com.omniture
Section 11
//KeyObject (com.senocular.utils.KeyObject)
package com.senocular.utils {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.ui.*;
public dynamic class KeyObject extends Proxy {
private static var keysDown:Object;
private static var stage:Stage;
public function KeyObject(_arg1:Stage){
construct(_arg1);
}
private function keyReleased(_arg1:KeyboardEvent):void{
delete keysDown[_arg1.keyCode];
}
public function deconstruct():void{
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
keysDown = new Object();
KeyObject.stage = null;
}
public function construct(_arg1:Stage):void{
KeyObject.stage = _arg1;
keysDown = new Object();
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
}
private function keyPressed(_arg1:KeyboardEvent):void{
keysDown[_arg1.keyCode] = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
return (((_arg1 in Keyboard)) ? Keyboard[_arg1] : -1);
}
public function isDown(_arg1:uint):Boolean{
return (Boolean((_arg1 in keysDown)));
}
}
}//package com.senocular.utils
Section 12
//BehemothBot (enemies.BehemothBot)
package enemies {
import levels.*;
public class BehemothBot extends Bot {
public function BehemothBot(_arg1:Level, _arg2:uint, _arg3:uint){
super(_arg1, Bot.FAMILY_BEHEMOTH, _arg2, _arg3);
behemothBotInitialize();
}
private function behemothBotInitialize():void{
scaleX = (scaleY = 0.55);
}
}
}//package enemies
Section 13
//Bot (enemies.Bot)
package enemies {
import flash.events.*;
import flash.display.*;
import managers.*;
import levels.*;
import flash.geom.*;
import characters.*;
import projectilesandfx.*;
import utils.*;
public class Bot extends MovieClip {
protected var renderedIsRunning:Boolean;
protected var infraredOnly:Boolean;
protected var transitioningToPatrolling:Boolean;
protected var playing:Boolean;
protected var constraintTop:Number;
protected var constraintRight:Number;
protected var patrolling:Boolean;
protected var footMarker:MovieClip;
protected var projectilesDamageFollowers:Boolean;
protected var chaseBoundaryLeft:Number;
protected var constraintBottom:Number;
protected var transitioning:Boolean;
protected var chaseBoundaryWidth:Number;
protected var projectileShotDelayDuration:uint;
protected var lastX:Number;
protected var lastY:Number;
protected var projectileShotsFired:uint;
protected var chaseBoundaryBottom:Number;
protected var projectileDuration:uint;
protected var constraintVerticalCenter:Number;
protected var playingBeforePause:Boolean;
protected var projectileDamage:Number;
protected var chaseBoundaryRight:Number;
protected var projectileShotsPerRound:uint;
protected var chaseSpeed:Number;
protected var transitioningPatrolSpin:Boolean;
protected var active:Boolean;
protected var constraintVerticallyOriented:Boolean;
protected var turretPatrolCount:uint;
protected var projectileLastFireCount:uint;
protected var id:uint;
protected var chasing:Boolean;
protected var species:uint;
protected var patrollingInPositiveDirection:Boolean;
protected var collisionDamage:Number;
protected var attentionRadius:uint;
protected var tor:Tor;
protected var family:uint;
protected var patrollingSpeedScalar:Number;
protected var firing:Boolean;
protected var loseAttentionRadius:uint;
protected var chaseBoundaryHeight:Number;
protected var level:Level;
protected var restDuration:uint;
protected var constraintLeft:Number;
protected var resting:Boolean;
protected var constraintHorizontalCenter:Number;
protected var initialActivationCalled:Boolean;
protected var restCount:uint;
protected var chaseDuration:uint;
protected var projectiles:Array;
protected var chaseLimitedToSingleDirection:Boolean;
protected var patrollingSpinCount:uint;
protected var renderedOrientation:String;
protected var projectileSpeed:Number;
protected var patrollingDestPoint:Point;
protected var chaseBoundaryTop:Number;
public static const STATIC_STATE_PATROLLING:uint = 0;
public static const STATIC_STATE_RESTING:uint = 3;
public static const FAMILY_BEHEMOTH:uint = 3;
public static const TRANSITION_STATE_TO_PATROLLING:uint = 0;
public static const TRANSITION_TO_PATROLLING_END_CUSHION:uint = 14;
public static const TRANSITION_STATE_PATROL_SPIN:uint = 1;
public static const BASE_Y_OFFSET:Number = 0;
public static const FAMILY_TURRET:uint = 2;
public static const FAMILY_DESTROYER:uint = 1;
public static const STATIC_STATE_FIRING:uint = 2;
public static const STATIC_STATE_CHASING:uint = 1;
public static const TRANSITIONING_PATROL_SPIN_PAUSE_DURATION:uint = 8;
public static const FAMILY_CHASER:uint = 0;
public function Bot(_arg1:Level, _arg2:uint, _arg3:uint, _arg4:uint){
this.level = _arg1;
this.family = _arg2;
this.species = _arg3;
this.id = _arg4;
initialize();
}
override public function stop():void{
playing = false;
super.stop();
}
protected function moveInCardinalDirection(_arg1:String, _arg2:Number):void{
var _local3:Number = 0;
var _local4:Number = 0;
switch (_arg1){
case OrientationManager.E:
_local3 = _arg2;
break;
case OrientationManager.S:
_local4 = _arg2;
break;
case OrientationManager.W:
_local3 = -(_arg2);
break;
case OrientationManager.N:
_local4 = -(_arg2);
break;
default:
return;
};
if (((!((renderedOrientation == _arg1))) || (!(renderedIsRunning)))){
gotoRunFrame(_arg1);
};
lastX = x;
lastY = y;
x = (x + _local3);
y = (y + _local4);
}
public function setProjectileShotsFired(_arg1:uint):void{
this.projectileShotsFired = _arg1;
}
public function getConstraintRight():Number{
return (constraintRight);
}
public function setChaseBoundaryLeft(_arg1:Number):void{
this.chaseBoundaryLeft = _arg1;
}
public function getConstraintVerticalCenter():Number{
return (constraintVerticalCenter);
}
public function setProjectileShotsPerRound(_arg1:uint):void{
this.projectileShotsPerRound = _arg1;
}
protected function gotoRunFrame(_arg1:String):void{
renderedOrientation = _arg1;
renderedIsRunning = true;
gotoAndPlay(("run_" + _arg1));
}
protected function setPatrollingDestPoint(_arg1:Boolean):void{
var _local2:Number;
var _local3:Number;
if (constraintVerticallyOriented){
_local2 = constraintHorizontalCenter;
if (_arg1){
if (y < constraintTop){
_local3 = constraintTop;
patrollingInPositiveDirection = true;
} else {
if (y > constraintBottom){
_local3 = constraintBottom;
patrollingInPositiveDirection = false;
} else {
_local3 = y;
patrollingInPositiveDirection = Boolean(Misc.getRandomNumber(0, 1));
};
};
} else {
if (patrollingInPositiveDirection){
_local3 = constraintBottom;
} else {
_local3 = constraintTop;
};
};
} else {
_local3 = constraintVerticalCenter;
if (_arg1){
if (x < constraintLeft){
_local2 = constraintLeft;
patrollingInPositiveDirection = true;
} else {
if (x > constraintRight){
_local2 = constraintRight;
patrollingInPositiveDirection = false;
} else {
_local2 = x;
patrollingInPositiveDirection = Boolean(Misc.getRandomNumber(0, 1));
};
};
} else {
if (patrollingInPositiveDirection){
_local2 = constraintRight;
} else {
_local2 = constraintLeft;
};
};
};
patrollingDestPoint = new Point(_local2, _local3);
}
public function getProjectileDamage():Number{
return (projectileDamage);
}
protected function fire():void{
if (projectileShotsFired >= projectileShotsPerRound){
projectileShotsFired = 0;
projectileLastFireCount = projectileShotDelayDuration;
restCount = 0;
setStaticState(STATIC_STATE_RESTING);
} else {
if (projectileLastFireCount++ >= projectileShotDelayDuration){
switch (family){
case FAMILY_DESTROYER:
destroyerFire();
break;
case FAMILY_TURRET:
turretFire();
break;
};
projectileLastFireCount = 0;
projectileShotsFired++;
};
};
}
public function getFootMarker():MovieClip{
return (footMarker);
}
public function getLoseAttentionRadius():uint{
return (loseAttentionRadius);
}
public function getChaseBoundaryHeight():Number{
return (chaseBoundaryHeight);
}
protected function checkIfTorIsOutsideLoseAttentionRadius():void{
if (Misc.getDistanceBetween(new Point(x, y), new Point(tor.x, tor.y)) > loseAttentionRadius){
setTransitionState(TRANSITION_STATE_TO_PATROLLING);
setStaticState(STATIC_STATE_PATROLLING);
};
}
public function isInfraredOnly():Boolean{
return (infraredOnly);
}
public function getFamily():uint{
return (family);
}
public function setProjectilesDamageFollowers(_arg1:Boolean):void{
this.projectilesDamageFollowers = _arg1;
}
public function setChaseDuration(_arg1:uint):void{
this.chaseDuration = _arg1;
}
public function getChaseBoundaryWidth():Number{
return (chaseBoundaryWidth);
}
public function getPatrolSpeedScalar():Number{
return (patrollingSpeedScalar);
}
public function setChaseLimitedToSingleDirection(_arg1:Boolean):void{
this.chaseLimitedToSingleDirection = _arg1;
}
public function setChaseBoundaryWidth(_arg1:Number, _arg2:Boolean=true):void{
this.chaseBoundaryWidth = _arg1;
if (_arg2){
setChaseBoundaryLeft((x - (_arg1 / 2)));
setChaseBoundaryRight((x + (_arg1 / 2)));
};
}
public function getConstraintLeft():Number{
return (constraintLeft);
}
public function deactivate():void{
active = false;
stopEnterFrameBehavior();
}
public function setCollisionDamage(_arg1:Number):void{
this.collisionDamage = _arg1;
}
public function setChaseBoundaryTop(_arg1:Number):void{
this.chaseBoundaryTop = _arg1;
}
public function setConstraints(_arg1:MovieClip):void{
constraintLeft = _arg1.x;
constraintRight = (_arg1.x + _arg1.width);
constraintTop = _arg1.y;
constraintBottom = (_arg1.y + _arg1.height);
constraintVerticallyOriented = (_arg1.height > _arg1.width);
constraintHorizontalCenter = ((constraintLeft + constraintRight) / 2);
constraintVerticalCenter = ((constraintTop + constraintBottom) / 2);
}
public function setAttentionRadius(_arg1:uint):void{
this.attentionRadius = _arg1;
}
public function getConstraintTop():Number{
return (constraintTop);
}
public function getProjectileDuration():uint{
return (projectileDuration);
}
public function getProjectiles():Array{
return (projectiles);
}
public function stopEnterFrameBehavior():void{
removeEventListener(Event.ENTER_FRAME, enterFrameBehavior);
}
public function setProjectileDuration(_arg1:uint):void{
this.projectileDuration = _arg1;
}
public function isChaseLimitedToSingleDirection():Boolean{
return (chaseLimitedToSingleDirection);
}
protected function scanForTor():void{
if (!tor.isInvisible()){
if (family == FAMILY_TURRET){
checkIfTorIsWithinAttentionRadius();
} else {
if (patrollingInPositiveDirection){
if (constraintVerticallyOriented){
if (tor.y > y){
checkIfTorIsWithinAttentionRadius();
};
} else {
if (tor.x > x){
checkIfTorIsWithinAttentionRadius();
};
};
} else {
if (constraintVerticallyOriented){
if (tor.y < y){
checkIfTorIsWithinAttentionRadius();
};
} else {
if (tor.x < x){
checkIfTorIsWithinAttentionRadius();
};
};
};
};
};
}
public function setProjectileShotDelayDuration(_arg1:uint):void{
this.projectileShotDelayDuration = _arg1;
}
public function getChaseBoundaryRight():Number{
return (chaseBoundaryRight);
}
public function setChaseBoundaryBottom(_arg1:Number):void{
this.chaseBoundaryBottom = _arg1;
}
public function getProjectileShotsPerRound():uint{
return (projectileShotsPerRound);
}
public function setChaseBoundaryRight(_arg1:Number):void{
this.chaseBoundaryRight = _arg1;
}
public function getLastX():Number{
return (lastX);
}
public function getLastY():Number{
return (lastY);
}
override public function gotoAndPlay(_arg1:Object, _arg2:String=null):void{
playing = true;
super.gotoAndPlay(_arg1, _arg2);
}
public function isActive():Boolean{
return (active);
}
public function setPlayingBeforePause(_arg1:Boolean):void{
this.playingBeforePause = _arg1;
}
public function setPatrolSpeedScalar(_arg1:Number):void{
this.patrollingSpeedScalar = _arg1;
}
private function enterFrameBehavior(_arg1:Event):void{
var _local2:uint;
if (!level.isPaused()){
if (transitioning){
if (family == FAMILY_TURRET){
stopTransition();
setStaticState(STATIC_STATE_PATROLLING);
};
if (transitioningToPatrolling){
moveTowardPoint(patrollingDestPoint, patrollingSpeedScalar);
if (Misc.getDistanceBetween(new Point(x, y), patrollingDestPoint) < TRANSITION_TO_PATROLLING_END_CUSHION){
stopTransition();
setPatrollingDestPoint(false);
};
} else {
if (transitioningPatrolSpin){
if (++patrollingSpinCount > TRANSITIONING_PATROL_SPIN_PAUSE_DURATION){
_local2 = (patrollingSpinCount - TRANSITIONING_PATROL_SPIN_PAUSE_DURATION);
if (patrollingInPositiveDirection){
if (constraintVerticallyOriented){
switch (_local2){
case 1:
gotoStandFrame(OrientationManager.NE);
break;
case 2:
gotoStandFrame(OrientationManager.E);
break;
case 3:
gotoStandFrame(OrientationManager.SE);
break;
case 4:
gotoStandFrame(OrientationManager.S);
break;
default:
stopTransition();
};
} else {
switch (_local2){
case 1:
gotoStandFrame(OrientationManager.NW);
break;
case 2:
gotoStandFrame(OrientationManager.N);
break;
case 3:
gotoStandFrame(OrientationManager.NE);
break;
case 4:
gotoStandFrame(OrientationManager.E);
break;
default:
stopTransition();
};
};
} else {
if (constraintVerticallyOriented){
switch (_local2){
case 1:
gotoStandFrame(OrientationManager.SW);
break;
case 2:
gotoStandFrame(OrientationManager.W);
break;
case 3:
gotoStandFrame(OrientationManager.NW);
break;
case 4:
gotoStandFrame(OrientationManager.N);
break;
default:
stopTransition();
};
} else {
switch (_local2){
case 1:
gotoStandFrame(OrientationManager.SE);
break;
case 2:
gotoStandFrame(OrientationManager.S);
break;
case 3:
gotoStandFrame(OrientationManager.SW);
break;
case 4:
gotoStandFrame(OrientationManager.W);
break;
default:
stopTransition();
};
};
};
};
};
};
} else {
if (patrolling){
if (family == FAMILY_TURRET){
if (turretPatrolCount++ > patrollingSpeedScalar){
turretPatrolCount = 0;
switch (renderedOrientation){
case OrientationManager.S:
gotoStandFrame(OrientationManager.SE);
break;
case OrientationManager.SE:
gotoStandFrame(OrientationManager.E);
break;
case OrientationManager.E:
gotoStandFrame(OrientationManager.NE);
break;
case OrientationManager.NE:
gotoStandFrame(OrientationManager.N);
break;
case OrientationManager.N:
gotoStandFrame(OrientationManager.NW);
break;
case OrientationManager.NW:
gotoStandFrame(OrientationManager.W);
break;
case OrientationManager.W:
gotoStandFrame(OrientationManager.SW);
break;
case OrientationManager.SW:
gotoStandFrame(OrientationManager.S);
break;
default:
gotoStandFrame(OrientationManager.S);
};
};
} else {
if (patrollingInPositiveDirection){
if (constraintVerticallyOriented){
moveInCardinalDirection(OrientationManager.S, patrollingSpeedScalar);
if (y > constraintBottom){
patrollingInPositiveDirection = false;
setPatrollingDestPoint(false);
setTransitionState(TRANSITION_STATE_PATROL_SPIN);
};
} else {
moveInCardinalDirection(OrientationManager.E, patrollingSpeedScalar);
if (x > constraintRight){
patrollingInPositiveDirection = false;
setPatrollingDestPoint(false);
setTransitionState(TRANSITION_STATE_PATROL_SPIN);
};
};
} else {
if (constraintVerticallyOriented){
moveInCardinalDirection(OrientationManager.N, patrollingSpeedScalar);
if (y < constraintTop){
patrollingInPositiveDirection = true;
setPatrollingDestPoint(false);
setTransitionState(TRANSITION_STATE_PATROL_SPIN);
};
} else {
moveInCardinalDirection(OrientationManager.W, patrollingSpeedScalar);
if (x < constraintLeft){
patrollingInPositiveDirection = true;
setPatrollingDestPoint(false);
setTransitionState(TRANSITION_STATE_PATROL_SPIN);
};
};
};
};
scanForTor();
} else {
if (chasing){
chase();
checkIfTorIsOutsideLoseAttentionRadius();
} else {
if (firing){
standFacingTor();
fire();
checkIfTorIsOutsideLoseAttentionRadius();
} else {
if (resting){
standFacingTor();
if (restCount++ > restDuration){
switch (family){
case FAMILY_BEHEMOTH:
case FAMILY_CHASER:
setStaticState(STATIC_STATE_CHASING);
break;
case FAMILY_TURRET:
setStaticState(STATIC_STATE_FIRING);
break;
case FAMILY_DESTROYER:
if (DestroyerBot(this).isCapableOfShootingMissiles()){
if (DestroyerBot(this).hasShotLeadingMissiles()){
DestroyerBot(this).setShotLeadingMissiles(false);
DestroyerBot(this).initializeCharge();
setStaticState(STATIC_STATE_CHASING);
} else {
DestroyerBot(this).setShotLeadingMissiles(true);
setStaticState(STATIC_STATE_FIRING);
};
} else {
DestroyerBot(this).initializeCharge();
setStaticState(STATIC_STATE_CHASING);
};
break;
};
};
checkIfTorIsOutsideLoseAttentionRadius();
};
};
};
};
};
};
}
public function startEnterFrameBehavior():void{
addEventListener(Event.ENTER_FRAME, enterFrameBehavior, false, 0, true);
}
public function getChaseSpeed():Number{
return (chaseSpeed);
}
public function activate():void{
active = true;
if (!initialActivationCalled){
initialActivationCalled = true;
tor = level.getTor();
setStaticState(STATIC_STATE_PATROLLING);
setTransitionState(TRANSITION_STATE_TO_PATROLLING);
};
startEnterFrameBehavior();
}
public function getProjectileShotsFired():uint{
return (projectileShotsFired);
}
protected function stopTransition():void{
setTransitionState(-1);
}
protected function gotoStandFrame(_arg1:String):void{
renderedOrientation = _arg1;
renderedIsRunning = false;
gotoAndStop(("stand_" + _arg1));
}
public function setChaseSpeed(_arg1:Number):void{
this.chaseSpeed = _arg1;
}
protected function destroyerFire():void{
}
protected function setStaticState(_arg1:int):void{
patrolling = false;
chasing = false;
firing = false;
resting = false;
switch (_arg1){
case STATIC_STATE_PATROLLING:
patrolling = true;
break;
case STATIC_STATE_CHASING:
chasing = true;
break;
case STATIC_STATE_FIRING:
firing = true;
break;
case STATIC_STATE_RESTING:
resting = true;
break;
};
}
public function setRestDuration(_arg1:uint):void{
this.restDuration = _arg1;
}
public function getId():uint{
return (id);
}
public function getCollisionDamage():Number{
return (collisionDamage);
}
public function getSpecies():uint{
return (species);
}
public function getAttentionRadius():uint{
return (attentionRadius);
}
public function setProjectileSpeed(_arg1:Number):void{
this.projectileSpeed = _arg1;
}
protected function checkIfTorIsWithinAttentionRadius():void{
if (Misc.getDistanceBetween(new Point(x, y), new Point(tor.x, tor.y)) < attentionRadius){
switch (family){
case FAMILY_CHASER:
case FAMILY_BEHEMOTH:
stopTransition();
setStaticState(STATIC_STATE_CHASING);
break;
case FAMILY_DESTROYER:
stopTransition();
projectileLastFireCount = projectileShotDelayDuration;
if (DestroyerBot(this).isCapableOfShootingMissiles()){
setStaticState(STATIC_STATE_FIRING);
DestroyerBot(this).setShotLeadingMissiles(true);
} else {
DestroyerBot(this).initializeCharge();
setStaticState(STATIC_STATE_CHASING);
};
break;
case FAMILY_TURRET:
stopTransition();
projectileLastFireCount = projectileShotDelayDuration;
setStaticState(STATIC_STATE_FIRING);
break;
};
level.getGame().getController().getSoundManager().playDangerSound();
};
}
override public function play():void{
playing = true;
super.play();
}
public function getProjectileShotDelayDuration():uint{
return (projectileShotDelayDuration);
}
protected function turretFire():void{
}
public function doProjectilesDamageFollowers():Boolean{
return (projectilesDamageFollowers);
}
public function setProjectileDamage(_arg1:Number):void{
this.projectileDamage = _arg1;
}
public function getChaseBoundaryBottom():Number{
return (chaseBoundaryBottom);
}
public function isConstraintVerticallyOriented():Boolean{
return (constraintVerticallyOriented);
}
public function wasPlayingBeforePause():Boolean{
return (playingBeforePause);
}
protected function setTransitionState(_arg1:int):void{
transitioningToPatrolling = false;
transitioningPatrolSpin = false;
transitioning = true;
switch (_arg1){
case TRANSITION_STATE_TO_PATROLLING:
transitioningToPatrolling = true;
setPatrollingDestPoint(true);
break;
case TRANSITION_STATE_PATROL_SPIN:
transitioningPatrolSpin = true;
patrollingSpinCount = 0;
gotoStandFrame(renderedOrientation);
break;
default:
transitioning = false;
};
}
public function getChaseBoundaryTop():Number{
return (chaseBoundaryTop);
}
public function getConstraintHorizontalCenter():Number{
return (constraintHorizontalCenter);
}
protected function initialize():void{
stop();
playingBeforePause = false;
active = false;
initialActivationCalled = false;
footMarker = MovieClip(getChildByName("footMarkerClip"));
projectiles = new Array();
}
public function trackProjectile(_arg1:Projectile):void{
projectiles.push(_arg1);
}
public function setInfraredOnly(_arg1:Boolean):void{
this.infraredOnly = _arg1;
}
public function stopTrackingProjectile(_arg1:Projectile):void{
Misc.removeObjectFromArray(projectiles, _arg1);
}
public function isPlaying():Boolean{
return (playing);
}
override public function gotoAndStop(_arg1:Object, _arg2:String=null):void{
playing = false;
super.gotoAndStop(_arg1, _arg2);
}
public function getProjectileSpeed():Number{
return (projectileSpeed);
}
public function getChaseBoundaryLeft():Number{
return (chaseBoundaryLeft);
}
public function setLoseAttentionRadius(_arg1:uint):void{
this.loseAttentionRadius = _arg1;
}
protected function destroyerCharge():void{
}
public function setChaseBoundaryHeight(_arg1:Number, _arg2:Boolean=true):void{
this.chaseBoundaryHeight = _arg1;
if (_arg2){
setChaseBoundaryTop((y - (_arg1 / 2)));
setChaseBoundaryBottom((y + (_arg1 / 2)));
};
}
protected function moveTowardPoint(_arg1:Point, _arg2:Number):void{
var _local6:Number;
var _local3:Number = Misc.getAngleBetween(new Point(x, y), _arg1);
var _local4:int = tor.getNumGameballFollowers();
var _local5:Number = ((Math.cos(_local3) * _arg2) * Tor.GAMEBALLS_FOLLOWING__RUN_SPEED_SCALAR[_local4]);
_local6 = ((Math.sin(_local3) * _arg2) * Tor.GAMEBALLS_FOLLOWING__RUN_SPEED_SCALAR[_local4]);
var _local7:String = OrientationManager.getOrientationUsingVelocities(_local5, _local6, true);
var _local8:Boolean;
if (((!((_local5 == 0))) || (!((_local6 == 0))))){
_local8 = true;
};
if (_local8){
if (((!((renderedOrientation == _local7))) || (!((renderedIsRunning == _local8))))){
gotoRunFrame(_local7);
};
} else {
gotoStandFrame(renderedOrientation);
};
lastX = x;
lastY = y;
x = (x + _local5);
y = (y + _local6);
}
public function getLevel():Level{
return (level);
}
public function getConstraintBottom():Number{
return (constraintBottom);
}
protected function standFacingTor():void{
var _local1:Number = Misc.getAngleBetween(new Point(x, y), new Point(tor.x, tor.y));
var _local2:String = (renderedOrientation = OrientationManager.getOrientationUsingVelocities(Math.cos(_local1), Math.sin(_local1), true));
renderedIsRunning = false;
gotoStandFrame(_local2);
}
public function getChaseDuration():uint{
return (chaseDuration);
}
protected function chase():void{
var _local1:Point;
var _local2:Point;
var _local3:Boolean;
if (family == FAMILY_DESTROYER){
destroyerCharge();
} else {
if (tor.isInvisible()){
setTransitionState(TRANSITION_STATE_TO_PATROLLING);
setStaticState(STATIC_STATE_PATROLLING);
} else {
_local1 = new Point(tor.x, tor.y);
_local2 = new Point(tor.getLastX(), tor.getLastY());
_local3 = false;
moveTowardPoint(new Point(tor.x, tor.y), chaseSpeed);
if (x < constraintLeft){
x = constraintLeft;
_local3 = true;
} else {
if (x > constraintRight){
x = constraintRight;
_local3 = true;
};
};
if (y < constraintTop){
y = constraintTop;
_local3 = true;
} else {
if (y > constraintBottom){
y = constraintBottom;
_local3 = true;
};
};
if (_local3){
if ((((_local1.x == _local2.x)) && ((_local1.y == _local2.y)))){
standFacingTor();
};
checkIfTorIsOutsideLoseAttentionRadius();
};
};
};
}
public function getRestDuration():uint{
return (restDuration);
}
}
}//package enemies
Section 14
//Bot1 (enemies.Bot1)
package enemies {
import flash.display.*;
import levels.*;
public class Bot1 extends ChaserBot {
public var footMarkerClip:MovieClip;
public function Bot1(_arg1:Level, _arg2:uint){
addFrameScript(25, frame26, 33, frame34, 41, frame42, 49, frame50, 57, frame58, 65, frame66, 73, frame74, 81, frame82);
super(_arg1, 1, _arg2);
bot1Initialize();
}
function frame26(){
gotoAndPlay("run_s");
}
function frame82(){
gotoAndPlay("run_sw");
}
function frame58(){
gotoAndPlay("run_n");
}
function frame74(){
gotoAndPlay("run_w");
}
private function bot1Initialize():void{
setAttentionRadius(200);
setLoseAttentionRadius(250);
setPatrolSpeedScalar(3);
setChaseBoundaryWidth(240);
setChaseBoundaryHeight(240);
setChaseSpeed(3);
setChaseDuration(2000);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(3);
setProjectileSpeed(0);
setProjectileDuration(0);
setProjectileShotDelayDuration(0);
setProjectileDamage(0);
setProjectileShotsPerRound(0);
setProjectilesDamageFollowers(false);
setRestDuration(50);
setInfraredOnly(false);
}
function frame42(){
gotoAndPlay("run_e");
}
function frame66(){
gotoAndPlay("run_nw");
}
function frame34(){
gotoAndPlay("run_se");
}
function frame50(){
gotoAndPlay("run_ne");
}
}
}//package enemies
Section 15
//Bot10 (enemies.Bot10)
package enemies {
import flash.display.*;
import levels.*;
public class Bot10 extends TurretBot {
public var bm_w:MovieClip;
public var bm_se:MovieClip;
public var bm_sw:MovieClip;
public var bm_ne:MovieClip;
public var bm_e:MovieClip;
public var footMarkerClip:MovieClip;
public var bm_n:MovieClip;
public var bm_nw:MovieClip;
public var bm_s:MovieClip;
public function Bot10(_arg1:Level, _arg2:uint){
addFrameScript(21, frame22, 33, frame34, 46, frame47, 59, frame60, 71, frame72, 82, frame83, 93, frame94, 104, frame105);
super(_arg1, 10, _arg2);
bot10Initialize();
}
function frame72(){
gotoAndPlay("fire_n");
}
function frame34(){
gotoAndPlay("fire_se");
}
function frame94(){
gotoAndPlay("fire_w");
}
private function bot10Initialize():void{
setAttentionRadius(180);
setLoseAttentionRadius(240);
setPatrolSpeedScalar(4);
setChaseBoundaryWidth(320);
setChaseBoundaryHeight(320);
setChaseSpeed(0);
setChaseDuration(0);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(2);
setProjectileSpeed(8);
setProjectileDuration(100);
setProjectileShotDelayDuration(4);
setProjectileDamage(2);
setProjectileShotsPerRound(3);
setProjectilesDamageFollowers(false);
setRestDuration(40);
setInfraredOnly(false);
}
function frame60(){
gotoAndPlay("fire_ne");
}
function frame83(){
gotoAndPlay("fire_nw");
}
function frame105(){
gotoAndPlay("fire_sw");
}
function frame22(){
gotoAndPlay("fire_s");
}
function frame47(){
gotoAndPlay("fire_e");
}
}
}//package enemies
Section 16
//Bot2 (enemies.Bot2)
package enemies {
import flash.display.*;
import levels.*;
public class Bot2 extends ChaserBot {
public var footMarkerClip:MovieClip;
public function Bot2(_arg1:Level, _arg2:uint){
addFrameScript(0, frame1, 20, frame21, 28, frame29, 36, frame37, 44, frame45, 52, frame53, 60, frame61, 68, frame69, 76, frame77);
super(_arg1, 2, _arg2);
bot2Initialize();
}
function frame1(){
stop();
}
function frame61(){
gotoAndPlay("run_nw");
}
function frame53(){
gotoAndPlay("run_n");
}
function frame21(){
gotoAndPlay("run_s");
}
function frame77(){
gotoAndPlay("run_sw");
}
function frame45(){
gotoAndPlay("run_ne");
}
function frame37(){
gotoAndPlay("run_e");
}
function frame29(){
gotoAndPlay("run_se");
}
function frame69(){
gotoAndPlay("run_w");
}
private function bot2Initialize():void{
setAttentionRadius(200);
setLoseAttentionRadius(250);
setPatrolSpeedScalar(4);
setChaseBoundaryWidth(240);
setChaseBoundaryHeight(240);
setChaseSpeed(4);
setChaseDuration(2000);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(4);
setProjectileSpeed(0);
setProjectileDuration(0);
setProjectileShotDelayDuration(0);
setProjectileDamage(0);
setProjectileShotsPerRound(0);
setProjectilesDamageFollowers(false);
setRestDuration(50);
setInfraredOnly(false);
}
}
}//package enemies
Section 17
//Bot3 (enemies.Bot3)
package enemies {
import flash.display.*;
import levels.*;
public class Bot3 extends DestroyerBot {
public var mm_n_1:MovieClip;
public var mm_se_1:MovieClip;
public var mm_se_2:MovieClip;
public var mm_s_2:MovieClip;
public var mm_n_2:MovieClip;
public var mm_w_1:MovieClip;
public var mm_w_2:MovieClip;
public var mm_s_1:MovieClip;
public var mm_sw_1:MovieClip;
public var mm_sw_2:MovieClip;
public var mm_ne_1:MovieClip;
public var mm_ne_2:MovieClip;
public var mm_e_1:MovieClip;
public var mm_e_2:MovieClip;
public var mm_nw_1:MovieClip;
public var mm_nw_2:MovieClip;
public var footMarkerClip:MovieClip;
public function Bot3(_arg1:Level, _arg2:uint){
addFrameScript(18, frame19, 26, frame27, 34, frame35, 42, frame43, 50, frame51, 58, frame59, 66, frame67, 74, frame75);
super(_arg1, 3, _arg2);
bot3Initialize();
}
function frame35(){
gotoAndStop("run_e");
}
function frame59(){
gotoAndStop("run_nw");
}
function frame51(){
gotoAndStop("run_n");
}
function frame43(){
gotoAndStop("run_ne");
}
function frame75(){
gotoAndStop("run_sw");
}
function frame19(){
gotoAndStop("run_s");
}
function frame27(){
gotoAndStop("run_se");
}
function frame67(){
gotoAndStop("run_w");
}
private function bot3Initialize():void{
setAttentionRadius(200);
setLoseAttentionRadius(230);
setPatrolSpeedScalar(3);
setChaseBoundaryWidth(240);
setChaseBoundaryHeight(240);
setChaseSpeed(7);
setChaseDuration(2000);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(4);
setProjectileSpeed(5);
setProjectileDuration(100);
setProjectileShotDelayDuration(3);
setProjectileDamage(2);
setProjectileShotsPerRound(2);
setProjectilesDamageFollowers(true);
setRestDuration(30);
setInfraredOnly(false);
setCapableOfShootingMissiles(false);
}
}
}//package enemies
Section 18
//Bot4 (enemies.Bot4)
package enemies {
import flash.display.*;
import levels.*;
public class Bot4 extends TurretBot {
public var bm_w:MovieClip;
public var bm_nw:MovieClip;
public var bm_se:MovieClip;
public var bm_sw:MovieClip;
public var bm_ne:MovieClip;
public var bm_e:MovieClip;
public var footMarkerClip:MovieClip;
public var bm_n:MovieClip;
public var bm_s:MovieClip;
public function Bot4(_arg1:Level, _arg2:uint){
addFrameScript(21, frame22, 33, frame34, 46, frame47, 59, frame60, 71, frame72, 82, frame83, 93, frame94, 104, frame105);
super(_arg1, 4, _arg2);
bot4Initialize();
}
function frame72(){
gotoAndPlay("fire_n");
}
function frame34(){
gotoAndPlay("fire_se");
}
function frame94(){
gotoAndPlay("fire_w");
}
function frame60(){
gotoAndPlay("fire_ne");
}
function frame83(){
gotoAndPlay("fire_nw");
}
function frame105(){
gotoAndPlay("fire_sw");
}
function frame22(){
gotoAndPlay("fire_s");
}
function frame47(){
gotoAndPlay("fire_e");
}
private function bot4Initialize():void{
setAttentionRadius(230);
setLoseAttentionRadius(250);
setPatrolSpeedScalar(4);
setChaseBoundaryWidth(320);
setChaseBoundaryHeight(320);
setChaseSpeed(0);
setChaseDuration(0);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(2);
setProjectileSpeed(9);
setProjectileDuration(70);
setProjectileShotDelayDuration(4);
setProjectileDamage(1);
setProjectileShotsPerRound(3);
setProjectilesDamageFollowers(false);
setRestDuration(40);
setInfraredOnly(false);
}
}
}//package enemies
Section 19
//Bot5 (enemies.Bot5)
package enemies {
import flash.display.*;
import levels.*;
public class Bot5 extends TurretBot {
public var bm_w:MovieClip;
public var bm_se:MovieClip;
public var bm_sw:MovieClip;
public var bm_ne:MovieClip;
public var bm_e:MovieClip;
public var footMarkerClip:MovieClip;
public var bm_n:MovieClip;
public var bm_nw:MovieClip;
public var bm_s:MovieClip;
public function Bot5(_arg1:Level, _arg2:uint){
addFrameScript(21, frame22, 33, frame34, 46, frame47, 59, frame60, 71, frame72, 82, frame83, 93, frame94, 104, frame105);
super(_arg1, 5, _arg2);
bot5Initialize();
}
function frame72(){
gotoAndPlay("fire_n");
}
function frame34(){
gotoAndPlay("fire_se");
}
function frame94(){
gotoAndPlay("fire_w");
}
function frame60(){
gotoAndPlay("fire_ne");
}
function frame83(){
gotoAndPlay("fire_nw");
}
function frame105(){
gotoAndPlay("fire_sw");
}
function frame22(){
gotoAndPlay("fire_s");
}
function frame47(){
gotoAndPlay("fire_e");
}
private function bot5Initialize():void{
setAttentionRadius(180);
setLoseAttentionRadius(240);
setPatrolSpeedScalar(4);
setChaseBoundaryWidth(320);
setChaseBoundaryHeight(320);
setChaseSpeed(0);
setChaseDuration(0);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(2);
setProjectileSpeed(9);
setProjectileDuration(100);
setProjectileShotDelayDuration(4);
setProjectileDamage(2);
setProjectileShotsPerRound(3);
setProjectilesDamageFollowers(false);
setRestDuration(40);
setInfraredOnly(false);
}
}
}//package enemies
Section 20
//Bot6 (enemies.Bot6)
package enemies {
import flash.display.*;
import levels.*;
public class Bot6 extends ChaserBot {
public var footMarkerClip:MovieClip;
public function Bot6(_arg1:Level, _arg2:uint){
addFrameScript(0, frame1, 20, frame21, 28, frame29, 36, frame37, 44, frame45, 52, frame53, 60, frame61, 68, frame69, 76, frame77);
super(_arg1, 6, _arg2);
bot6Initialize();
}
function frame1(){
stop();
}
function frame61(){
gotoAndPlay("run_nw");
}
function frame53(){
gotoAndPlay("run_n");
}
function frame21(){
gotoAndPlay("run_s");
}
function frame77(){
gotoAndPlay("run_sw");
}
function frame45(){
gotoAndPlay("run_ne");
}
function frame37(){
gotoAndPlay("run_e");
}
function frame29(){
gotoAndPlay("run_se");
}
function frame69(){
gotoAndPlay("run_w");
}
private function bot6Initialize():void{
setAttentionRadius(300);
setLoseAttentionRadius(330);
setPatrolSpeedScalar(2);
setChaseBoundaryWidth(320);
setChaseBoundaryHeight(320);
setChaseSpeed(4);
setChaseDuration(0);
setChaseLimitedToSingleDirection(true);
setCollisionDamage(5);
setProjectileSpeed(0);
setProjectileDuration(0);
setProjectileShotDelayDuration(0);
setProjectileDamage(0);
setProjectileShotsPerRound(0);
setProjectilesDamageFollowers(false);
setRestDuration(80);
setInfraredOnly(false);
}
}
}//package enemies
Section 21
//Bot7 (enemies.Bot7)
package enemies {
import flash.display.*;
import levels.*;
public class Bot7 extends DestroyerBot {
public var mm_n_1:MovieClip;
public var mm_se_1:MovieClip;
public var mm_se_2:MovieClip;
public var mm_s_2:MovieClip;
public var mm_n_2:MovieClip;
public var mm_w_1:MovieClip;
public var mm_w_2:MovieClip;
public var mm_s_1:MovieClip;
public var mm_sw_1:MovieClip;
public var mm_sw_2:MovieClip;
public var mm_ne_1:MovieClip;
public var mm_ne_2:MovieClip;
public var mm_e_1:MovieClip;
public var mm_e_2:MovieClip;
public var mm_nw_1:MovieClip;
public var mm_nw_2:MovieClip;
public var footMarkerClip:MovieClip;
public function Bot7(_arg1:Level, _arg2:uint){
addFrameScript(18, frame19, 26, frame27, 34, frame35, 42, frame43, 50, frame51, 58, frame59, 66, frame67, 74, frame75);
super(_arg1, 7, _arg2);
bot7Initialize();
}
private function bot7Initialize():void{
setAttentionRadius(180);
setLoseAttentionRadius(240);
setPatrolSpeedScalar(3);
setChaseBoundaryWidth(240);
setChaseBoundaryHeight(240);
setChaseSpeed(8);
setChaseDuration(2000);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(4);
setProjectileSpeed(5);
setProjectileDuration(100);
setProjectileShotDelayDuration(3);
setProjectileDamage(2);
setProjectileShotsPerRound(2);
setProjectilesDamageFollowers(true);
setRestDuration(24);
setInfraredOnly(false);
setCapableOfShootingMissiles(false);
}
function frame35(){
gotoAndStop("run_e");
}
function frame59(){
gotoAndStop("run_nw");
}
function frame51(){
gotoAndStop("run_n");
}
function frame43(){
gotoAndStop("run_ne");
}
function frame75(){
gotoAndStop("run_sw");
}
function frame19(){
gotoAndStop("run_s");
}
function frame27(){
gotoAndStop("run_se");
}
function frame67(){
gotoAndStop("run_w");
}
}
}//package enemies
Section 22
//Bot8 (enemies.Bot8)
package enemies {
import flash.display.*;
import levels.*;
public class Bot8 extends DestroyerBot {
public var mm_n_1:MovieClip;
public var mm_se_1:MovieClip;
public var mm_se_2:MovieClip;
public var mm_s_2:MovieClip;
public var mm_n_2:MovieClip;
public var mm_w_1:MovieClip;
public var mm_w_2:MovieClip;
public var mm_s_1:MovieClip;
public var mm_sw_1:MovieClip;
public var mm_sw_2:MovieClip;
public var mm_ne_1:MovieClip;
public var mm_ne_2:MovieClip;
public var mm_e_1:MovieClip;
public var mm_e_2:MovieClip;
public var mm_nw_1:MovieClip;
public var mm_nw_2:MovieClip;
public var footMarkerClip:MovieClip;
public function Bot8(_arg1:Level, _arg2:uint){
addFrameScript(18, frame19, 26, frame27, 34, frame35, 42, frame43, 50, frame51, 58, frame59, 66, frame67, 74, frame75);
super(_arg1, 8, _arg2);
bot8Initialize();
}
function frame35(){
gotoAndStop("run_e");
}
function frame59(){
gotoAndStop("run_nw");
}
function frame51(){
gotoAndStop("run_n");
}
private function bot8Initialize():void{
setAttentionRadius(180);
setLoseAttentionRadius(240);
setPatrolSpeedScalar(3);
setChaseBoundaryWidth(240);
setChaseBoundaryHeight(240);
setChaseSpeed(8);
setChaseDuration(2000);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(4);
setProjectileSpeed(5);
setProjectileDuration(100);
setProjectileShotDelayDuration(3);
setProjectileDamage(2);
setProjectileShotsPerRound(2);
setProjectilesDamageFollowers(true);
setRestDuration(20);
setInfraredOnly(false);
setCapableOfShootingMissiles(true);
}
function frame75(){
gotoAndStop("run_sw");
}
function frame19(){
gotoAndStop("run_s");
}
function frame27(){
gotoAndStop("run_se");
}
function frame43(){
gotoAndStop("run_ne");
}
function frame67(){
gotoAndStop("run_w");
}
}
}//package enemies
Section 23
//Bot9 (enemies.Bot9)
package enemies {
import flash.display.*;
import levels.*;
public class Bot9 extends BehemothBot {
public var footMarkerClip:MovieClip;
public function Bot9(_arg1:Level, _arg2:uint){
addFrameScript(0, frame1, 16, frame17, 30, frame31, 45, frame46, 59, frame60, 75, frame76, 91, frame92, 107, frame108, 122, frame123);
super(_arg1, 9, _arg2);
bot9Initialize();
}
private function bot9Initialize():void{
setAttentionRadius(150);
setLoseAttentionRadius(170);
setPatrolSpeedScalar(7);
setChaseBoundaryWidth(320);
setChaseBoundaryHeight(320);
setChaseSpeed(6);
setChaseDuration(0);
setChaseLimitedToSingleDirection(false);
setCollisionDamage(6);
setProjectileSpeed(0);
setProjectileDuration(0);
setProjectileShotDelayDuration(0);
setProjectileDamage(0);
setProjectileShotsPerRound(0);
setProjectilesDamageFollowers(false);
setRestDuration(50);
setInfraredOnly(false);
}
function frame1(){
stop();
}
function frame123(){
gotoAndPlay("run_sw");
}
function frame92(){
gotoAndPlay("run_nw");
}
function frame60(){
gotoAndPlay("run_ne");
}
function frame31(){
gotoAndPlay("run_se");
}
function frame76(){
gotoAndPlay("run_n");
}
function frame46(){
gotoAndPlay("run_e");
}
function frame17(){
gotoAndPlay("run_s");
}
function frame108(){
gotoAndPlay("run_w");
}
}
}//package enemies
Section 24
//ChaserBot (enemies.ChaserBot)
package enemies {
import levels.*;
public class ChaserBot extends Bot {
public function ChaserBot(_arg1:Level, _arg2:uint, _arg3:uint){
super(_arg1, Bot.FAMILY_CHASER, _arg2, _arg3);
chaserBotInitialize();
}
private function chaserBotInitialize():void{
}
}
}//package enemies
Section 25
//DestroyerBot (enemies.DestroyerBot)
package enemies {
import flash.display.*;
import managers.*;
import levels.*;
import flash.geom.*;
import projectilesandfx.*;
import utils.*;
public class DestroyerBot extends Bot {
private var currentChargeAngle:Number;
private var missileMarkerPoints1:Array;
private var missileMarkerPoints2:Array;
private var capableOfShootingMissiles:Boolean;
private var shotLeadingMissiles:Boolean;
private var maxChargeSpeedCount:uint;// = 0
private var currentChargeAcceleration:Number;
private var currentChargeSpeed:Number;
public static const INITIAL_CHARGE_ACCELERATION:Number = 0.01;
public static const CHARGE_ACCELERATION_ACCELERATION:Number = 0.12;
public static const INITIAL_CHARGE_SPEED:Number = 0.5;
public static const MAX_CHARGE_SPEED_DURATION:uint = 16;
public function DestroyerBot(_arg1:Level, _arg2:uint, _arg3:uint){
super(_arg1, Bot.FAMILY_DESTROYER, _arg2, _arg3);
destroyerBotInitialize();
}
protected function setCurrentChargeAngle():void{
currentChargeAngle = Misc.getAngleBetween(new Point(x, y), new Point(tor.x, tor.y));
}
public function isCapableOfShootingMissiles():Boolean{
return (capableOfShootingMissiles);
}
private function destroyerBotInitialize():void{
var _local1:MovieClip;
capableOfShootingMissiles = false;
shotLeadingMissiles = false;
missileMarkerPoints1 = new Array(8);
missileMarkerPoints2 = new Array(8);
_local1 = MovieClip(getChildByName("mm_s_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_S] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_s_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_S] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_se_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_SE] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_se_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_SE] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_e_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_E] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_e_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_E] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_ne_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_NE] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_ne_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_NE] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_n_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_N] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_n_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_N] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_nw_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_NW] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_nw_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_NW] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_w_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_W] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_w_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_W] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_sw_1"));
missileMarkerPoints1[Projectile.PROJECTILE_MARKER_POINT_INDEX_SW] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("mm_sw_2"));
missileMarkerPoints2[Projectile.PROJECTILE_MARKER_POINT_INDEX_SW] = new Point(_local1.x, _local1.y);
_local1.visible = false;
}
public function setCapableOfShootingMissiles(_arg1:Boolean):void{
this.capableOfShootingMissiles = _arg1;
}
protected function resetCurrentChargeSpeedAndAcceleration():void{
currentChargeSpeed = INITIAL_CHARGE_SPEED;
currentChargeAcceleration = INITIAL_CHARGE_ACCELERATION;
}
public function setShotLeadingMissiles(_arg1:Boolean):void{
this.shotLeadingMissiles = _arg1;
}
public function hasShotLeadingMissiles():Boolean{
return (shotLeadingMissiles);
}
public function initializeCharge():void{
maxChargeSpeedCount = 0;
resetCurrentChargeSpeedAndAcceleration();
setCurrentChargeAngle();
gotoAndPlay(("run_" + OrientationManager.getOrientationUsingAngle(currentChargeAngle, true)));
}
protected function incrementCurrentChargeSpeedAndAcceleration():Boolean{
currentChargeSpeed = (currentChargeSpeed + currentChargeAcceleration);
if (currentChargeSpeed > chaseSpeed){
currentChargeSpeed = chaseSpeed;
return (true);
};
currentChargeAcceleration = (currentChargeAcceleration + CHARGE_ACCELERATION_ACCELERATION);
return (false);
}
protected function getMissileMarkerPoint():Point{
var _local2:Point;
var _local1:uint = Projectile[("PROJECTILE_MARKER_POINT_INDEX_" + renderedOrientation.toUpperCase())];
if ((projectileShotsFired % 2) == 1){
_local2 = Point(missileMarkerPoints1[_local1]);
} else {
_local2 = Point(missileMarkerPoints2[_local1]);
};
return (level.globalToLocal(localToGlobal(_local2)));
}
override protected function destroyerCharge():void{
x = (x + (Math.cos(currentChargeAngle) * currentChargeSpeed));
y = (y + (Math.sin(currentChargeAngle) * currentChargeSpeed));
var _local1:Boolean;
if (x < constraintLeft){
x = constraintLeft;
_local1 = true;
} else {
if (x > constraintRight){
x = constraintRight;
_local1 = true;
};
};
if (y < constraintTop){
y = constraintTop;
_local1 = true;
} else {
if (y > constraintBottom){
y = constraintBottom;
_local1 = true;
};
};
if (_local1){
standFacingTor();
checkIfTorIsOutsideLoseAttentionRadius();
};
if (maxChargeSpeedCount > 0){
if (maxChargeSpeedCount++ > MAX_CHARGE_SPEED_DURATION){
restCount = 0;
setStaticState(STATIC_STATE_RESTING);
};
} else {
if (incrementCurrentChargeSpeedAndAcceleration()){
maxChargeSpeedCount++;
};
};
}
override protected function destroyerFire():void{
var _local1:Point = getMissileMarkerPoint();
var _local2:Missile = new Missile(level, this, _local1, renderedOrientation, projectileDuration, projectileSpeed, projectileDamage);
level.addChild(_local2);
var _local3:uint = level.getChildIndex(this);
switch (renderedOrientation){
case OrientationManager.SW:
case OrientationManager.S:
case OrientationManager.SE:
_local3++;
};
level.setChildIndex(_local2, _local3);
_local2.startMoving();
}
}
}//package enemies
Section 26
//TurretBot (enemies.TurretBot)
package enemies {
import flash.display.*;
import managers.*;
import levels.*;
import flash.geom.*;
import projectilesandfx.*;
public class TurretBot extends Bot {
private var bulletMarkerPoints:Array;
public function TurretBot(_arg1:Level, _arg2:uint, _arg3:uint){
super(_arg1, Bot.FAMILY_TURRET, _arg2, _arg3);
turretBotInitialize();
}
override protected function turretFire():void{
var _local1:Point = getBulletMarkerPoint();
var _local2:Bullet = new Bullet(level, this, _local1, renderedOrientation, projectileDuration, projectileSpeed, projectileDamage);
level.addChild(_local2);
var _local3:uint = level.getChildIndex(this);
switch (renderedOrientation){
case OrientationManager.SW:
case OrientationManager.S:
case OrientationManager.SE:
_local3++;
};
level.setChildIndex(_local2, _local3);
_local2.startMoving();
}
private function turretBotInitialize():void{
var _local1:MovieClip;
bulletMarkerPoints = new Array(8);
_local1 = MovieClip(getChildByName("bm_s"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_S] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("bm_se"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_SE] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("bm_e"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_E] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("bm_ne"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_NE] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("bm_n"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_N] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("bm_nw"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_NW] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("bm_w"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_W] = new Point(_local1.x, _local1.y);
_local1.visible = false;
_local1 = MovieClip(getChildByName("bm_sw"));
bulletMarkerPoints[Projectile.PROJECTILE_MARKER_POINT_INDEX_SW] = new Point(_local1.x, _local1.y);
_local1.visible = false;
}
protected function getBulletMarkerPoint():Point{
var _local1:uint = Projectile[("PROJECTILE_MARKER_POINT_INDEX_" + renderedOrientation.toUpperCase())];
return (level.globalToLocal(localToGlobal(Point(bulletMarkerPoints[_local1]))));
}
}
}//package enemies
Section 27
//BaseButton (fl.controls.BaseButton)
package fl.controls {
import flash.events.*;
import flash.display.*;
import fl.core.*;
import flash.utils.*;
import fl.events.*;
public class BaseButton extends UIComponent {
protected var pressTimer:Timer;
protected var _autoRepeat:Boolean;// = false
protected var _selected:Boolean;// = false
protected var background:DisplayObject;
private var unlockedMouseState:String;
protected var mouseState:String;
private var _mouseStateLocked:Boolean;// = false
private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35};
public function BaseButton(){
buttonMode = true;
mouseChildren = false;
useHandCursor = false;
setupMouseEvents();
setMouseState("up");
pressTimer = new Timer(1, 0);
pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true);
}
override public function get enabled():Boolean{
return (super.enabled);
}
protected function startPress():void{
if (_autoRepeat){
pressTimer.delay = Number(getStyleValue("repeatDelay"));
pressTimer.start();
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
super.draw();
}
protected function drawLayout():void{
background.width = width;
background.height = height;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseEnabled = _arg1;
}
public function set autoRepeat(_arg1:Boolean):void{
_autoRepeat = _arg1;
}
protected function mouseEventHandler(_arg1:MouseEvent):void{
if (_arg1.type == MouseEvent.MOUSE_DOWN){
setMouseState("down");
startPress();
} else {
if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){
setMouseState("over");
endPress();
} else {
if (_arg1.type == MouseEvent.ROLL_OUT){
setMouseState("up");
endPress();
};
};
};
}
protected function drawBackground():void{
var _local1:String = (enabled) ? mouseState : "disabled";
if (selected){
_local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1));
};
_local1 = (_local1 + "Skin");
var _local2:DisplayObject = background;
background = getDisplayObjectInstance(getStyleValue(_local1));
addChildAt(background, 0);
if (((!((_local2 == null))) && (!((_local2 == background))))){
removeChild(_local2);
};
}
public function get selected():Boolean{
return (_selected);
}
protected function setupMouseEvents():void{
addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true);
}
protected function endPress():void{
pressTimer.reset();
}
public function set mouseStateLocked(_arg1:Boolean):void{
_mouseStateLocked = _arg1;
if (_arg1 == false){
setMouseState(unlockedMouseState);
} else {
unlockedMouseState = mouseState;
};
}
public function get autoRepeat():Boolean{
return (_autoRepeat);
}
public function set selected(_arg1:Boolean):void{
if (_selected == _arg1){
return;
};
_selected = _arg1;
invalidate(InvalidationType.STATE);
}
protected function buttonDown(_arg1:TimerEvent):void{
if (!_autoRepeat){
endPress();
return;
};
if (pressTimer.currentCount == 1){
pressTimer.delay = Number(getStyleValue("repeatInterval"));
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
public function setMouseState(_arg1:String):void{
if (_mouseStateLocked){
unlockedMouseState = _arg1;
return;
};
if (mouseState == _arg1){
return;
};
mouseState = _arg1;
invalidate(InvalidationType.STATE);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 28
//Button (fl.controls.Button)
package fl.controls {
import flash.display.*;
import fl.core.*;
import fl.managers.*;
public class Button extends LabelButton implements IFocusManagerComponent {
protected var _emphasized:Boolean;// = false
protected var emphasizedBorder:DisplayObject;
private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2};
public static var createAccessibilityImplementation:Function;
public function set emphasized(_arg1:Boolean):void{
_emphasized = _arg1;
invalidate(InvalidationType.STYLES);
}
override protected function initializeAccessibility():void{
if (Button.createAccessibilityImplementation != null){
Button.createAccessibilityImplementation(this);
};
}
protected function drawEmphasized():void{
var _local2:Number;
if (emphasizedBorder != null){
removeChild(emphasizedBorder);
};
emphasizedBorder = null;
if (!_emphasized){
return;
};
var _local1:Object = getStyleValue("emphasizedSkin");
if (_local1 != null){
emphasizedBorder = getDisplayObjectInstance(_local1);
};
if (emphasizedBorder != null){
addChildAt(emphasizedBorder, 0);
_local2 = Number(getStyleValue("emphasizedPadding"));
emphasizedBorder.x = (emphasizedBorder.y = -(_local2));
emphasizedBorder.width = (width + (_local2 * 2));
emphasizedBorder.height = (height + (_local2 * 2));
};
}
public function get emphasized():Boolean{
return (_emphasized);
}
override protected function draw():void{
if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){
drawEmphasized();
};
super.draw();
if (emphasizedBorder != null){
setChildIndex(emphasizedBorder, (numChildren - 1));
};
}
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
var _local3:*;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("emphasizedPadding"));
if ((((_local2 < 0)) || (!(_emphasized)))){
_local2 = 0;
};
_local3 = getStyleValue("focusRectPadding");
_local3 = ((_local3)==null) ? 2 : _local3;
_local3 = (_local3 + _local2);
uiFocusRect.x = -(_local3);
uiFocusRect.y = -(_local3);
uiFocusRect.width = (width + (_local3 * 2));
uiFocusRect.height = (height + (_local3 * 2));
};
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles));
}
}
}//package fl.controls
Section 29
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement)
package fl.controls {
public class ButtonLabelPlacement {
public static const TOP:String = "top";
public static const LEFT:String = "left";
public static const BOTTOM:String = "bottom";
public static const RIGHT:String = "right";
}
}//package fl.controls
Section 30
//LabelButton (fl.controls.LabelButton)
package fl.controls {
import flash.events.*;
import flash.display.*;
import fl.core.*;
import fl.managers.*;
import fl.events.*;
import flash.text.*;
import flash.ui.*;
public class LabelButton extends BaseButton implements IFocusManagerComponent {
protected var _toggle:Boolean;// = false
public var textField:TextField;
protected var mode:String;// = "center"
protected var _labelPlacement:String;// = "right"
protected var oldMouseState:String;
protected var _label:String;// = "Label"
protected var icon:DisplayObject;
private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false};
public static var createAccessibilityImplementation:Function;
override protected function draw():void{
if (textField.text != _label){
label = _label;
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
drawIcon();
drawTextFormat();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
override protected function drawLayout():void{
var _local2:String;
var _local7:Number;
var _local8:Number;
var _local1:Number = Number(getStyleValue("textPadding"));
_local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement;
textField.height = (textField.textHeight + 4);
var _local3:Number = (textField.textWidth + 4);
var _local4:Number = (textField.textHeight + 4);
var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1);
var _local6:Number = ((icon)==null) ? 0 : (icon.height + _local1);
textField.visible = (label.length > 0);
if (icon != null){
icon.x = Math.round(((width - icon.width) / 2));
icon.y = Math.round(((height - icon.height) / 2));
};
if (textField.visible == false){
textField.width = 0;
textField.height = 0;
} else {
if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){
_local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1))));
if ((height - 2) > _local4){
_local8 = _local4;
} else {
_local8 = (height - 2);
};
_local3 = _local7;
textField.width = _local3;
_local4 = _local8;
textField.height = _local4;
textField.x = Math.round(((width - _local3) / 2));
textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0));
if (icon != null){
icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1));
};
} else {
_local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1))));
_local3 = _local7;
textField.width = _local3;
textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0));
textField.y = Math.round(((height - textField.height) / 2));
if (icon != null){
icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1));
};
};
};
super.drawLayout();
}
protected function toggleSelected(_arg1:MouseEvent):void{
selected = !(selected);
dispatchEvent(new Event(Event.CHANGE, true));
}
override protected function keyUpHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
setMouseState(oldMouseState);
oldMouseState = null;
endPress();
dispatchEvent(new MouseEvent(MouseEvent.CLICK));
};
}
public function get labelPlacement():String{
return (_labelPlacement);
}
public function get toggle():Boolean{
return (_toggle);
}
protected function setEmbedFont(){
var _local1:Object = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
override public function get selected():Boolean{
return ((_toggle) ? _selected : false);
}
override protected function configUI():void{
super.configUI();
textField = new TextField();
textField.type = TextFieldType.DYNAMIC;
textField.selectable = false;
addChild(textField);
}
override protected function initializeAccessibility():void{
if (LabelButton.createAccessibilityImplementation != null){
LabelButton.createAccessibilityImplementation(this);
};
}
public function set labelPlacement(_arg1:String):void{
_labelPlacement = _arg1;
invalidate(InvalidationType.SIZE);
}
protected function drawIcon():void{
var _local1:DisplayObject = icon;
var _local2:String = (enabled) ? mouseState : "disabled";
if (selected){
_local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1));
};
_local2 = (_local2 + "Icon");
var _local3:Object = getStyleValue(_local2);
if (_local3 == null){
_local3 = getStyleValue("icon");
};
if (_local3 != null){
icon = getDisplayObjectInstance(_local3);
};
if (icon != null){
addChildAt(icon, 1);
};
if (((!((_local1 == null))) && (!((_local1 == icon))))){
removeChild(_local1);
};
}
public function set label(_arg1:String):void{
_label = _arg1;
if (textField.text != _label){
textField.text = _label;
dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE));
};
invalidate(InvalidationType.SIZE);
invalidate(InvalidationType.STYLES);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
if (oldMouseState == null){
oldMouseState = mouseState;
};
setMouseState("down");
startPress();
};
}
public function set toggle(_arg1:Boolean):void{
if (((!(_arg1)) && (super.selected))){
selected = false;
};
_toggle = _arg1;
if (_toggle){
addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true);
} else {
removeEventListener(MouseEvent.CLICK, toggleSelected);
};
invalidate(InvalidationType.STATE);
}
override public function set selected(_arg1:Boolean):void{
_selected = _arg1;
if (_toggle){
invalidate(InvalidationType.STATE);
};
}
protected function drawTextFormat():void{
var _local1:Object = UIComponent.getStyleDefinition();
var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat);
textField.setTextFormat(_local2);
var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local3 != null){
textField.setTextFormat(_local3);
} else {
_local3 = _local2;
};
textField.defaultTextFormat = _local3;
setEmbedFont();
}
public function get label():String{
return (_label);
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition()));
}
}
}//package fl.controls
Section 31
//InvalidationType (fl.core.InvalidationType)
package fl.core {
public class InvalidationType {
public static const SIZE:String = "size";
public static const ALL:String = "all";
public static const DATA:String = "data";
public static const SCROLL:String = "scroll";
public static const STATE:String = "state";
public static const STYLES:String = "styles";
public static const SELECTED:String = "selected";
public static const RENDERER_STYLES:String = "rendererStyles";
}
}//package fl.core
Section 32
//UIComponent (fl.core.UIComponent)
package fl.core {
import flash.events.*;
import flash.display.*;
import fl.managers.*;
import flash.utils.*;
import fl.events.*;
import flash.text.*;
import flash.system.*;
public class UIComponent extends Sprite {
protected var _x:Number;
protected var _enabled:Boolean;// = true
protected var callLaterMethods:Dictionary;
private var _mouseFocusEnabled:Boolean;// = true
private var tempText:TextField;
private var _focusEnabled:Boolean;// = true
protected var startHeight:Number;
protected var _height:Number;
protected var invalidateFlag:Boolean;// = false
protected var _oldIMEMode:String;// = null
protected var _inspector:Boolean;// = false
protected var startWidth:Number;
public var focusTarget:IFocusManagerComponent;
protected var errorCaught:Boolean;// = false
protected var invalidHash:Object;
protected var sharedStyles:Object;
protected var uiFocusRect:DisplayObject;
protected var isLivePreview:Boolean;// = false
protected var _imeMode:String;// = null
protected var _width:Number;
protected var instanceStyles:Object;
public var version:String;// = "3.0.0.16"
protected var isFocused:Boolean;// = false
protected var _y:Number;
public static var inCallLaterPhase:Boolean = false;
private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)};
public static var createAccessibilityImplementation:Function;
private static var focusManagers:Dictionary = new Dictionary(false);
public function UIComponent(){
instanceStyles = {};
sharedStyles = {};
invalidHash = {};
callLaterMethods = new Dictionary();
StyleManager.registerInstance(this);
configUI();
invalidate(InvalidationType.ALL);
tabEnabled = (this is IFocusManagerComponent);
focusRect = false;
if (tabEnabled){
addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
};
initializeFocusManager();
addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true);
}
public function getStyle(_arg1:String):Object{
return (instanceStyles[_arg1]);
}
protected function checkLivePreview():Boolean{
var className:String;
if (parent == null){
return (false);
};
try {
className = getQualifiedClassName(parent);
} catch(e:Error) {
};
return ((className == "fl.livepreview::LivePreviewParent"));
}
private function callLaterDispatcher(_arg1:Event):void{
var _local3:Object;
if (_arg1.type == Event.ADDED_TO_STAGE){
removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher);
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
return;
};
_arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher);
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
return;
};
inCallLaterPhase = true;
var _local2:Dictionary = callLaterMethods;
for (_local3 in _local2) {
_local3();
delete _local2[_local3];
};
inCallLaterPhase = false;
}
protected function validate():void{
invalidHash = {};
}
protected function focusOutHandler(_arg1:FocusEvent):void{
if (isOurFocus((_arg1.target as DisplayObject))){
drawFocus(false);
isFocused = false;
};
}
public function set mouseFocusEnabled(_arg1:Boolean):void{
_mouseFocusEnabled = _arg1;
}
public function getFocus():InteractiveObject{
if (stage){
return (stage.focus);
};
return (null);
}
override public function get height():Number{
return (_height);
}
private function addedHandler(_arg1:Event):void{
removeEventListener("addedToStage", addedHandler);
initializeFocusManager();
}
protected function getStyleValue(_arg1:String):Object{
return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]);
}
public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{
invalidHash[_arg1] = true;
if (_arg2){
this.callLater(draw);
};
}
protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((_arg1 == this));
}
public function get enabled():Boolean{
return (_enabled);
}
protected function getScaleX():Number{
return (super.scaleX);
}
protected function getScaleY():Number{
return (super.scaleY);
}
public function get focusEnabled():Boolean{
return (_focusEnabled);
}
protected function afterComponentParameters():void{
}
override public function get scaleY():Number{
return ((height / startHeight));
}
protected function setIMEMode(_arg1:Boolean){
var enabled = _arg1;
if (_imeMode != null){
if (enabled){
IME.enabled = true;
_oldIMEMode = IME.conversionMode;
try {
if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _imeMode;
};
errorCaught = false;
} catch(e:Error) {
errorCaught = true;
throw (new Error(("IME mode not supported: " + _imeMode)));
};
} else {
if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _oldIMEMode;
};
IME.enabled = false;
};
};
}
protected function draw():void{
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
override public function set height(_arg1:Number):void{
if (_height == _arg1){
return;
};
setSize(width, _arg1);
}
protected function configUI():void{
isLivePreview = checkLivePreview();
var _local1:Number = rotation;
rotation = 0;
var _local2:Number = super.width;
var _local3:Number = super.height;
var _local4 = 1;
super.scaleY = _local4;
super.scaleX = _local4;
setSize(_local2, _local3);
move(super.x, super.y);
rotation = _local1;
startWidth = _local2;
startHeight = _local3;
if (numChildren > 0){
removeChildAt(0);
};
}
protected function setScaleY(_arg1:Number):void{
super.scaleY = _arg1;
}
override public function get scaleX():Number{
return ((width / startWidth));
}
protected function setScaleX(_arg1:Number):void{
super.scaleX = _arg1;
}
private function initializeFocusManager():void{
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true);
} else {
createFocusManager();
};
}
protected function keyDownHandler(_arg1:KeyboardEvent):void{
}
public function set focusManager(_arg1:IFocusManager):void{
UIComponent.focusManagers[this] = _arg1;
}
public function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
protected function isInvalid(_arg1:String, ... _args):Boolean{
if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){
return (true);
};
while (_args.length > 0) {
if (invalidHash[_args.pop()]){
return (true);
};
};
return (false);
}
public function setStyle(_arg1:String, _arg2:Object):void{
if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
instanceStyles[_arg1] = _arg2;
invalidate(InvalidationType.STYLES);
}
override public function get visible():Boolean{
return (super.visible);
}
protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
if (isOurFocus((_arg1.target as DisplayObject))){
_local2 = focusManager;
if (((_local2) && (_local2.showFocusIndicator))){
drawFocus(true);
isFocused = true;
};
};
}
public function get componentInspectorSetting():Boolean{
return (_inspector);
}
override public function get x():Number{
return ((isNaN(_x)) ? super.x : _x);
}
override public function get y():Number{
return ((isNaN(_y)) ? super.y : _y);
}
public function set enabled(_arg1:Boolean):void{
if (_arg1 == _enabled){
return;
};
_enabled = _arg1;
invalidate(InvalidationType.STATE);
}
public function setSize(_arg1:Number, _arg2:Number):void{
_width = _arg1;
_height = _arg2;
invalidate(InvalidationType.SIZE);
dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false));
}
protected function keyUpHandler(_arg1:KeyboardEvent):void{
}
public function setSharedStyle(_arg1:String, _arg2:Object):void{
if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
sharedStyles[_arg1] = _arg2;
if (instanceStyles[_arg1] == null){
invalidate(InvalidationType.STYLES);
};
}
public function set focusEnabled(_arg1:Boolean):void{
_focusEnabled = _arg1;
}
override public function set width(_arg1:Number):void{
if (_width == _arg1){
return;
};
setSize(_arg1, height);
}
public function setFocus():void{
if (stage){
stage.focus = this;
};
}
override public function set scaleX(_arg1:Number):void{
setSize((startWidth * _arg1), height);
}
public function get mouseFocusEnabled():Boolean{
return (_mouseFocusEnabled);
}
override public function set scaleY(_arg1:Number):void{
setSize(width, (startHeight * _arg1));
}
protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{
var skin = _arg1;
var classDef:Object;
if ((skin is Class)){
return ((new (skin) as DisplayObject));
};
if ((skin is DisplayObject)){
(skin as DisplayObject).x = 0;
(skin as DisplayObject).y = 0;
return ((skin as DisplayObject));
};
try {
classDef = getDefinitionByName(skin.toString());
} catch(e:Error) {
try {
classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object);
} catch(e:Error) {
};
};
if (classDef == null){
return (null);
};
return ((new (classDef) as DisplayObject));
}
protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{
var _local3:String;
for (_local3 in _arg2) {
_arg1.setStyle(_local3, getStyleValue(_arg2[_local3]));
};
}
protected function initializeAccessibility():void{
if (UIComponent.createAccessibilityImplementation != null){
UIComponent.createAccessibilityImplementation(this);
};
}
public function get focusManager():IFocusManager{
var _local1:DisplayObject = this;
while (_local1) {
if (UIComponent.focusManagers[_local1] != null){
return (IFocusManager(UIComponent.focusManagers[_local1]));
};
_local1 = _local1.parent;
};
return (null);
}
override public function get width():Number{
return (_width);
}
protected function beforeComponentParameters():void{
}
protected function callLater(_arg1:Function):void{
if (inCallLaterPhase){
return;
};
callLaterMethods[_arg1] = true;
if (stage != null){
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
} else {
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
};
}
public function move(_arg1:Number, _arg2:Number):void{
_x = _arg1;
_y = _arg2;
super.x = Math.round(_arg1);
super.y = Math.round(_arg2);
dispatchEvent(new ComponentEvent(ComponentEvent.MOVE));
}
public function validateNow():void{
invalidate(InvalidationType.ALL, false);
draw();
}
override public function set visible(_arg1:Boolean):void{
if (super.visible == _arg1){
return;
};
super.visible = _arg1;
var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE;
dispatchEvent(new ComponentEvent(_local2, true));
}
protected function createFocusManager():void{
if (focusManagers[stage] == null){
focusManagers[stage] = new FocusManager(stage);
};
}
protected function hookAccessibility(_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, hookAccessibility);
initializeAccessibility();
}
public function set componentInspectorSetting(_arg1:Boolean):void{
_inspector = _arg1;
if (_inspector){
beforeComponentParameters();
} else {
afterComponentParameters();
};
}
override public function set y(_arg1:Number):void{
move(_x, _arg1);
}
public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
isFocused = _arg1;
if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){
removeChild(uiFocusRect);
uiFocusRect = null;
};
if (_arg1){
uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite);
if (uiFocusRect == null){
return;
};
_local2 = Number(getStyleValue("focusRectPadding"));
uiFocusRect.x = -(_local2);
uiFocusRect.y = -(_local2);
uiFocusRect.width = (width + (_local2 * 2));
uiFocusRect.height = (height + (_local2 * 2));
addChildAt(uiFocusRect, 0);
};
}
override public function set x(_arg1:Number):void{
move(_arg1, _y);
}
public function drawNow():void{
draw();
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
public static function mergeStyles(... _args):Object{
var _local5:Object;
var _local6:String;
var _local2:Object = {};
var _local3:uint = _args.length;
var _local4:uint;
while (_local4 < _local3) {
_local5 = _args[_local4];
for (_local6 in _local5) {
if (_local2[_local6] != null){
} else {
_local2[_local6] = _args[_local4][_local6];
};
};
_local4++;
};
return (_local2);
}
}
}//package fl.core
Section 33
//ComponentEvent (fl.events.ComponentEvent)
package fl.events {
import flash.events.*;
public class ComponentEvent extends Event {
public static const HIDE:String = "hide";
public static const BUTTON_DOWN:String = "buttonDown";
public static const MOVE:String = "move";
public static const RESIZE:String = "resize";
public static const ENTER:String = "enter";
public static const LABEL_CHANGE:String = "labelChange";
public static const SHOW:String = "show";
public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function toString():String{
return (formatToString("ComponentEvent", "type", "bubbles", "cancelable"));
}
override public function clone():Event{
return (new ComponentEvent(type, bubbles, cancelable));
}
}
}//package fl.events
Section 34
//FocusManager (fl.managers.FocusManager)
package fl.managers {
import flash.events.*;
import flash.display.*;
import fl.controls.*;
import fl.core.*;
import flash.utils.*;
import flash.text.*;
import flash.ui.*;
public class FocusManager implements IFocusManager {
private var focusableObjects:Dictionary;
private var _showFocusIndicator:Boolean;// = true
private var defButton:Button;
private var focusableCandidates:Array;
private var _form:DisplayObjectContainer;
private var _defaultButtonEnabled:Boolean;// = true
private var activated:Boolean;// = false
private var _defaultButton:Button;
private var calculateCandidates:Boolean;// = true
private var lastFocus:InteractiveObject;
private var lastAction:String;
public function FocusManager(_arg1:DisplayObjectContainer){
focusableObjects = new Dictionary(true);
if (_arg1 != null){
_form = _arg1;
addFocusables(DisplayObject(_arg1));
_arg1.addEventListener(Event.ADDED, addedHandler);
_arg1.addEventListener(Event.REMOVED, removedHandler);
activate();
};
}
public function get showFocusIndicator():Boolean{
return (_showFocusIndicator);
}
private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{
var _local7:DisplayObject;
var _local8:IFocusManagerGroup;
var _local9:int;
var _local10:DisplayObject;
var _local11:IFocusManagerGroup;
var _local5:int = focusableCandidates.length;
var _local6:int = _arg1;
while (true) {
if (_arg2){
_arg1--;
} else {
_arg1++;
};
if (_arg3){
if (((_arg2) && ((_arg1 < 0)))){
break;
};
if (((!(_arg2)) && ((_arg1 == _local5)))){
break;
};
} else {
_arg1 = ((_arg1 + _local5) % _local5);
if (_local6 == _arg1){
break;
};
};
if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){
_local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1]));
if ((_local7 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local7);
_local9 = 0;
while (_local9 < focusableCandidates.length) {
_local10 = focusableCandidates[_local9];
if ((_local10 is IFocusManagerGroup)){
_local11 = IFocusManagerGroup(_local10);
if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){
_arg1 = _local9;
break;
};
};
_local9++;
};
};
return (_arg1);
};
};
return (_arg1);
}
private function mouseFocusChangeHandler(_arg1:FocusEvent):void{
if ((_arg1.relatedObject is TextField)){
return;
};
_arg1.preventDefault();
}
public function set form(_arg1:DisplayObjectContainer):void{
_form = _arg1;
}
private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{
var focusable:IFocusManagerComponent;
var io:InteractiveObject;
var doc:DisplayObjectContainer;
var i:int;
var child:DisplayObject;
var o = _arg1;
var skipTopLevel = _arg2;
if (!skipTopLevel){
if ((o is IFocusManagerComponent)){
focusable = IFocusManagerComponent(o);
if (focusable.focusEnabled){
if (((focusable.tabEnabled) && (isTabVisible(o)))){
focusableObjects[o] = true;
calculateCandidates = true;
};
o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
} else {
if ((o is InteractiveObject)){
io = (o as InteractiveObject);
if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){
focusableObjects[io] = true;
calculateCandidates = true;
};
io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
};
};
if ((o is DisplayObjectContainer)){
doc = DisplayObjectContainer(o);
o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){
i = 0;
while (i < doc.numChildren) {
try {
child = doc.getChildAt(i);
if (child != null){
addFocusables(doc.getChildAt(i));
};
} catch(error:SecurityError) {
};
i = (i + 1);
};
};
};
}
private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{
return (_arg1.getChildIndex(_arg2));
}
public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{
var _local2:InteractiveObject = _arg1;
while (_arg1) {
if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
};
return (_local2);
}
private function focusOutHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject = (_arg1.target as InteractiveObject);
}
private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{
var _local3:IFocusManagerGroup;
if (!isEnabledAndVisible(_arg1)){
return (false);
};
if ((_arg1 is IFocusManagerGroup)){
_local3 = IFocusManagerGroup(_arg1);
if (_arg2 == _local3.groupName){
return (false);
};
};
return (true);
}
private function setFocusToNextObject(_arg1:FocusEvent):void{
if (!hasFocusableObjects()){
return;
};
var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey);
if (_local2){
setFocus(_local2);
};
}
private function sortFocusableObjectsTabIndex():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){
focusableCandidates.push(_local2);
};
};
focusableCandidates.sort(sortByTabIndex);
}
private function removeFocusables(_arg1:DisplayObject):void{
var _local2:Object;
var _local3:DisplayObject;
if ((_arg1 is DisplayObjectContainer)){
_arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
_arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
for (_local2 in focusableObjects) {
_local3 = DisplayObject(_local2);
if (DisplayObjectContainer(_arg1).contains(_local3)){
if (_local3 == lastFocus){
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local2];
calculateCandidates = true;
};
};
};
}
private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{
while (_arg1 != InteractiveObject(form)) {
if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
if (_arg1 == null){
break;
};
};
return (null);
}
public function sendDefaultButtonEvent():void{
defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
private function addedHandler(_arg1:Event):void{
var _local2:DisplayObject = DisplayObject(_arg1.target);
if (_local2.stage){
addFocusables(DisplayObject(_arg1.target));
};
}
private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{
var _local3:TextField;
var _local4:SimpleButton;
var _local2:DisplayObjectContainer = DisplayObject(form).parent;
while (_arg1 != _local2) {
if ((_arg1 is UIComponent)){
if (!UIComponent(_arg1).enabled){
return (false);
};
} else {
if ((_arg1 is TextField)){
_local3 = TextField(_arg1);
if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){
return (false);
};
} else {
if ((_arg1 is SimpleButton)){
_local4 = SimpleButton(_arg1);
if (!_local4.enabled){
return (false);
};
};
};
};
if (!_arg1.visible){
return (false);
};
_arg1 = _arg1.parent;
};
return (true);
}
private function tabChildrenChangeHandler(_arg1:Event):void{
if (_arg1.target != _arg1.currentTarget){
return;
};
calculateCandidates = true;
var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target);
if (_local2.tabChildren){
addFocusables(_local2, true);
} else {
removeFocusables(_local2);
};
}
private function deactivateHandler(_arg1:Event):void{
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
}
public function setFocus(_arg1:InteractiveObject):void{
if ((_arg1 is IFocusManagerComponent)){
IFocusManagerComponent(_arg1).setFocus();
} else {
form.stage.focus = _arg1;
};
}
public function getFocus():InteractiveObject{
var _local1:InteractiveObject = form.stage.focus;
return (findFocusManagerComponent(_local1));
}
private function hasFocusableObjects():Boolean{
var _local1:Object;
for (_local1 in focusableObjects) {
return (true);
};
return (false);
}
private function tabIndexChangeHandler(_arg1:Event):void{
calculateCandidates = true;
}
public function set defaultButton(_arg1:Button):void{
var _local2:Button = (_arg1) ? Button(_arg1) : null;
if (_local2 != _defaultButton){
if (_defaultButton){
_defaultButton.emphasized = false;
};
if (defButton){
defButton.emphasized = false;
};
_defaultButton = _local2;
defButton = _local2;
if (_local2){
_local2.emphasized = true;
};
};
}
private function sortFocusableObjects():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){
sortFocusableObjectsTabIndex();
return;
};
focusableCandidates.push(_local2);
};
focusableCandidates.sort(sortByDepth);
}
private function keyFocusChangeHandler(_arg1:FocusEvent):void{
showFocusIndicator = true;
if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){
setFocusToNextObject(_arg1);
_arg1.preventDefault();
};
}
private function getIndexOfFocusedObject(_arg1:DisplayObject):int{
var _local2:int = focusableCandidates.length;
var _local3:int;
_local3 = 0;
while (_local3 < _local2) {
if (focusableCandidates[_local3] == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
public function hideFocus():void{
}
private function removedHandler(_arg1:Event):void{
var _local2:int;
var _local4:InteractiveObject;
var _local3:DisplayObject = DisplayObject(_arg1.target);
if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){
if (_local3 == lastFocus){
IFocusManagerComponent(lastFocus).drawFocus(false);
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local3];
calculateCandidates = true;
} else {
if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){
_local4 = (_local3 as InteractiveObject);
if (_local4){
if (_local4 == lastFocus){
lastFocus = null;
};
delete focusableObjects[_local4];
calculateCandidates = true;
};
_local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
};
};
removeFocusables(_local3);
}
private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{
var _local5:int;
var _local6:String;
var _local7:String;
var _local3 = "";
var _local4 = "";
var _local8 = "0000";
var _local9:DisplayObject = DisplayObject(_arg1);
var _local10:DisplayObject = DisplayObject(_arg2);
while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) {
_local5 = getChildIndex(_local9.parent, _local9);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local3 = (_local7 + _local3);
_local9 = _local9.parent;
};
while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) {
_local5 = getChildIndex(_local10.parent, _local10);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local4 = (_local7 + _local4);
_local10 = _local10.parent;
};
return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0);
}
public function get defaultButton():Button{
return (_defaultButton);
}
private function activateHandler(_arg1:Event):void{
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
if (lastFocus){
if ((lastFocus is IFocusManagerComponent)){
IFocusManagerComponent(lastFocus).setFocus();
} else {
form.stage.focus = lastFocus;
};
};
lastAction = "ACTIVATE";
}
public function showFocus():void{
}
public function set defaultButtonEnabled(_arg1:Boolean):void{
_defaultButtonEnabled = _arg1;
}
public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{
var _local8:IFocusManagerGroup;
if (!hasFocusableObjects()){
return (null);
};
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
var _local2:DisplayObject = form.stage.focus;
_local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2)));
var _local3 = "";
if ((_local2 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local2);
_local3 = _local8.groupName;
};
var _local4:int = getIndexOfFocusedObject(_local2);
var _local5:Boolean;
var _local6:int = _local4;
if (_local4 == -1){
if (_arg1){
_local4 = focusableCandidates.length;
};
_local5 = true;
};
var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3);
return (findFocusManagerComponent(focusableCandidates[_local7]));
}
private function mouseDownHandler(_arg1:MouseEvent):void{
if (_arg1.isDefaultPrevented()){
return;
};
var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target));
if (!_local2){
return;
};
showFocusIndicator = false;
if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){
setFocus(_local2);
};
lastAction = "MOUSEDOWN";
}
private function isTabVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer = _arg1.parent;
while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) {
if (!_local2.tabChildren){
return (false);
};
_local2 = _local2.parent;
};
return (true);
}
public function get nextTabIndex():int{
return (0);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.TAB){
lastAction = "KEY";
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
};
if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){
sendDefaultButtonEvent();
};
}
private function focusInHandler(_arg1:FocusEvent):void{
var _local3:Button;
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
if (form.contains(_local2)){
lastFocus = findFocusManagerComponent(InteractiveObject(_local2));
if ((lastFocus is Button)){
_local3 = Button(lastFocus);
if (defButton){
defButton.emphasized = false;
defButton = _local3;
_local3.emphasized = true;
};
} else {
if (((defButton) && (!((defButton == _defaultButton))))){
defButton.emphasized = false;
defButton = _defaultButton;
_defaultButton.emphasized = true;
};
};
};
}
private function tabEnabledChangeHandler(_arg1:Event):void{
calculateCandidates = true;
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
var _local3 = (focusableObjects[_local2] == true);
if (_local2.tabEnabled){
if (((!(_local3)) && (isTabVisible(_local2)))){
if (!(_local2 is IFocusManagerComponent)){
_local2.focusRect = false;
};
focusableObjects[_local2] = true;
};
} else {
if (_local3){
delete focusableObjects[_local2];
};
};
}
public function set showFocusIndicator(_arg1:Boolean):void{
_showFocusIndicator = _arg1;
}
public function get form():DisplayObjectContainer{
return (_form);
}
private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{
return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2));
}
public function get defaultButtonEnabled():Boolean{
return (_defaultButtonEnabled);
}
public function activate():void{
if (activated){
return;
};
form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = true;
if (lastFocus){
setFocus(lastFocus);
};
}
public function deactivate():void{
form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.removeEventListener(Event.ACTIVATE, activateHandler);
form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = false;
}
}
}//package fl.managers
Section 35
//IFocusManager (fl.managers.IFocusManager)
package fl.managers {
import flash.display.*;
import fl.controls.*;
public interface IFocusManager {
function getFocus():InteractiveObject;
function deactivate():void;
function set defaultButton(_arg1:Button):void;
function set showFocusIndicator(_arg1:Boolean):void;
function get defaultButtonEnabled():Boolean;
function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject;
function get nextTabIndex():int;
function get defaultButton():Button;
function get showFocusIndicator():Boolean;
function hideFocus():void;
function activate():void;
function showFocus():void;
function set defaultButtonEnabled(_arg1:Boolean):void;
function setFocus(_arg1:InteractiveObject):void;
function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject;
}
}//package fl.managers
Section 36
//IFocusManagerComponent (fl.managers.IFocusManagerComponent)
package fl.managers {
public interface IFocusManagerComponent {
function set focusEnabled(_arg1:Boolean):void;
function drawFocus(_arg1:Boolean):void;
function setFocus():void;
function get focusEnabled():Boolean;
function get tabEnabled():Boolean;
function get tabIndex():int;
function get mouseFocusEnabled():Boolean;
}
}//package fl.managers
Section 37
//IFocusManagerGroup (fl.managers.IFocusManagerGroup)
package fl.managers {
public interface IFocusManagerGroup {
function get groupName():String;
function get selected():Boolean;
function set groupName(_arg1:String):void;
function set selected(_arg1:Boolean):void;
}
}//package fl.managers
Section 38
//StyleManager (fl.managers.StyleManager)
package fl.managers {
import fl.core.*;
import flash.utils.*;
import flash.text.*;
public class StyleManager {
private var classToInstancesDict:Dictionary;
private var globalStyles:Object;
private var styleToClassesHash:Object;
private var classToStylesDict:Dictionary;
private var classToDefaultStylesDict:Dictionary;
private static var _instance:StyleManager;
public function StyleManager(){
styleToClassesHash = {};
classToInstancesDict = new Dictionary(true);
classToStylesDict = new Dictionary(true);
classToDefaultStylesDict = new Dictionary(true);
globalStyles = UIComponent.getStyleDefinition();
}
public static function clearComponentStyle(_arg1:Object, _arg2:String):void{
var _local3:Class = getClassDef(_arg1);
var _local4:Object = getInstance().classToStylesDict[_local3];
if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){
delete _local4[_arg2];
invalidateComponentStyle(_local3, _arg2);
};
}
private static function getClassDef(_arg1:Object):Class{
var component = _arg1;
if ((component is Class)){
return ((component as Class));
};
try {
return ((getDefinitionByName(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
if ((component is UIComponent)){
try {
return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
};
};
};
return (null);
}
public static function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Class = getClassDef(_arg1);
var _local5:Object = getInstance().classToStylesDict[_local4];
if (_local5 == null){
_local5 = (getInstance().classToStylesDict[_local4] = {});
};
if (_local5 == _arg3){
return;
};
_local5[_arg2] = _arg3;
invalidateComponentStyle(_local4, _arg2);
}
private static function setSharedStyles(_arg1:UIComponent):void{
var _local5:String;
var _local2:StyleManager = getInstance();
var _local3:Class = getClassDef(_arg1);
var _local4:Object = _local2.classToDefaultStylesDict[_local3];
for (_local5 in _local4) {
_arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5));
};
}
public static function getComponentStyle(_arg1:Object, _arg2:String):Object{
var _local3:Class = getClassDef(_arg1);
var _local4:Object = getInstance().classToStylesDict[_local3];
return (((_local4)==null) ? null : _local4[_arg2]);
}
private static function getInstance(){
if (_instance == null){
_instance = new (StyleManager);
};
return (_instance);
}
private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{
var _local4:Object;
var _local5:UIComponent;
var _local3:Dictionary = getInstance().classToInstancesDict[_arg1];
if (_local3 == null){
return;
};
for (_local4 in _local3) {
_local5 = (_local4 as UIComponent);
if (_local5 == null){
} else {
_local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2));
};
};
}
private static function invalidateStyle(_arg1:String):void{
var _local3:Object;
var _local2:Dictionary = getInstance().styleToClassesHash[_arg1];
if (_local2 == null){
return;
};
for (_local3 in _local2) {
invalidateComponentStyle(Class(_local3), _arg1);
};
}
public static function registerInstance(_arg1:UIComponent):void{
var target:Class;
var defaultStyles:Object;
var styleToClasses:Object;
var n:String;
var instance = _arg1;
var inst:StyleManager = getInstance();
var classDef:Class = getClassDef(instance);
if (classDef == null){
return;
};
if (inst.classToInstancesDict[classDef] == null){
inst.classToInstancesDict[classDef] = new Dictionary(true);
target = classDef;
while (defaultStyles == null) {
if (target["getStyleDefinition"] != null){
defaultStyles = target["getStyleDefinition"]();
break;
};
try {
target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class);
} catch(err:Error) {
try {
target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class);
} catch(e:Error) {
defaultStyles = UIComponent.getStyleDefinition();
break;
};
};
};
styleToClasses = inst.styleToClassesHash;
for (n in defaultStyles) {
if (styleToClasses[n] == null){
styleToClasses[n] = new Dictionary(true);
};
styleToClasses[n][classDef] = true;
};
inst.classToDefaultStylesDict[classDef] = defaultStyles;
if (inst.classToStylesDict[classDef] == null){
inst.classToStylesDict[classDef] = {};
};
};
inst.classToInstancesDict[classDef][instance] = true;
setSharedStyles(instance);
}
public static function getStyle(_arg1:String):Object{
return (getInstance().globalStyles[_arg1]);
}
private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{
var _local3:Class = getClassDef(_arg1);
var _local4:StyleManager = getInstance();
var _local5:Object = _local4.classToStylesDict[_local3][_arg2];
if (_local5 != null){
return (_local5);
};
_local5 = _local4.globalStyles[_arg2];
if (_local5 != null){
return (_local5);
};
return (_local4.classToDefaultStylesDict[_local3][_arg2]);
}
public static function setStyle(_arg1:String, _arg2:Object):void{
var _local3:Object = getInstance().globalStyles;
if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
_local3[_arg1] = _arg2;
invalidateStyle(_arg1);
}
}
}//package fl.managers
Section 39
//Level (levels.Level)
package levels {
import flash.events.*;
import flash.display.*;
import managers.*;
import flash.geom.*;
import screens.*;
import ui.*;
import characters.*;
import structures.*;
import maps.*;
import enemies.*;
import projectilesandfx.*;
import powerups.*;
import utils.*;
import managers.keyboardinput.*;
public class Level extends MovieClip {
protected var borderRocksLeft:Number;
protected var borderRocksTop:Number;
protected var timeManager:TimeManager;
protected var numRushers:uint;
protected var paused:Boolean;
protected var tor:Tor;
protected var map:Map;
protected var borderRocksRight:Number;
protected var levelNum:uint;
protected var hidingSpots:Array;
protected var numGameballsForLevelComplete:uint;
protected var pauseOverlay:MovieClip;
protected var screenPositionAndDepthManager:ScreenPositionAndDepthManager;
protected var rushersReturned:uint;
protected var depthSensitiveObjects:Array;
protected var torStartingY:Number;
protected var timeToCompleteLevel:uint;
protected var torStartingX:Number;
protected var bots:Array;
protected var gameballsReturned:uint;
protected var statusDisplay:StatusDisplay;
protected var rushers:Array;
protected var inGameOverlay:InGameOverlay;
protected var levelOver:Boolean;
protected var levelSummaryScreen:LevelSummaryScreen;
protected var safetyZone:SafetyZone;
protected var gameballs:Array;
protected var activityManager:ActivityManager;
protected var borderRocksBottom:Number;
protected var levelKeyboardInputManager:LevelKeyboardInputManager;
protected var botConstraintsTempArray:Array;
protected var numGameballs:uint;
protected var collidableBlocks:Array;
protected var alwaysOnTopStructureContainer:MovieClip;
protected var powerupArray:Array;
protected var urgencyBorder:UrgencyBorder;
protected var irregularCollidableObjects:Array;
protected var alwaysOnTopStructures:Array;
protected var game:Game;
public static const SIDE_BORDER_ROCK_X_ADJUSTMENT:Number = 9;
public static const TOP_BORDER_ROCK_Y_ADJUSTMENT:Number = 8;
public static const PAUSE_OVERLAY_ALPHA:Number = 0.7;
public static const BOTTOM_BORDER_ROCK_Y_ADJUSTMENT:Number = 60;
public function Level(_arg1:Game, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint){
this.game = _arg1;
this.levelNum = _arg2;
this.timeToCompleteLevel = _arg3;
this.numGameballs = _arg4;
this.numGameballsForLevelComplete = _arg5;
this.numRushers = _arg6;
initialize();
}
public function unfreezeCharacters():void{
var _local1:String;
var _local2:Character;
for (_local1 in gameballs) {
_local2 = Character(gameballs[_local1]);
if (_local2.wasPlayingBeforePause()){
_local2.play();
};
};
for (_local1 in rushers) {
_local2 = Character(rushers[_local1]);
if (_local2.wasPlayingBeforePause()){
_local2.play();
};
};
}
public function getNumRushersReturned():uint{
return (rushersReturned);
}
public function getBorderRocksTop():Number{
return (borderRocksTop);
}
public function enableUrgencyBorder():void{
if (urgencyBorder != null){
urgencyBorder.enable();
};
}
public function getBots():Array{
return (bots);
}
public function getNumRushers():uint{
return (numRushers);
}
public function getAlwaysOnTopStructureContainer():MovieClip{
return (alwaysOnTopStructureContainer);
}
public function getNumGameballsReturned():uint{
return (gameballsReturned);
}
public function resume():void{
paused = false;
if (pauseOverlay != null){
pauseOverlay.visible = false;
};
activityManager.startManagingActivity();
screenPositionAndDepthManager.startFocusingOnTor();
if (tor.wasPlayingBeforePause()){
tor.play();
};
tor.resumeInvisibilityTimer();
tor.resumeStaminaStarBoostTimer();
tor.resumeStaminaStarRegenerationTimer();
tor.resumeTimeFreezeTimer();
unfreezeCharacters();
unfreezeBotsAndProjectiles();
}
public function getTor():Tor{
return (tor);
}
private function getUnoccupiedHidingSpot(_arg1:Boolean):HidingSpot{
var _local2:HidingSpot;
if (_arg1){
Misc.randomizeArray(hidingSpots);
};
var _local3:uint;
while (_local3 < hidingSpots.length) {
_local2 = HidingSpot(hidingSpots[_local3]);
if (!_local2.isOccupied()){
return (_local2);
};
_local3++;
};
return (HidingSpot(hidingSpots[Misc.getRandomInt(0, (hidingSpots.length - 1))]));
}
public function removeMap():void{
if (map != null){
Controller.ROOT.removeChild(map);
map = null;
};
if (pauseOverlay != null){
pauseOverlay.visible = false;
};
}
public function getNumGameballs():uint{
return (numGameballs);
}
public function getCollidableBlocks():Array{
return (collidableBlocks);
}
private function sortAndReorderDepthSensitiveObjects():void{
var _local1:String;
var _local2:DepthSensitiveObject;
var _local3:MovieClip;
depthSensitiveObjects.sortOn("objectBaseY", Array.NUMERIC);
for (_local1 in depthSensitiveObjects) {
_local2 = DepthSensitiveObject(depthSensitiveObjects[_local1]);
_local3 = _local2.getObject();
setChildIndex(_local3, (numChildren - 1));
};
}
public function startLevel():void{
sortAndReorderDepthSensitiveObjects();
levelKeyboardInputManager.startListeningForTorInput();
activityManager.startManagingActivity();
screenPositionAndDepthManager.startFocusingOnTor();
moveUrgencyBorderToTop();
timeManager.moveTimeDisplayToTop();
timeManager.startTimer();
statusDisplay.moveToTop();
moveInGameOverlayToTop();
moveUiComponentsToTop();
movePauseOverlayToTop();
game.getController().getToggleSoundButton().moveToTop();
}
public function timeUp():void{
if (gameballsReturned >= numGameballsForLevelComplete){
levelWon();
} else {
levelLost();
};
}
private function updateScore(_arg1:Boolean):void{
game.getScoreManager().addPointsForGameballsReturned(gameballsReturned);
if (_arg1){
game.getScoreManager().addPointsForLevelComplete(levelNum, gameballsReturned, numGameballsForLevelComplete);
};
game.getScoreManager().addPointsForRushersReturned(rushersReturned);
if (_arg1){
game.getScoreManager().addPointsForTimeRemaining(timeManager.getTimeRemaining());
};
}
private function addCollidableBlock(_arg1:MovieClip):void{
collidableBlocks.push(new CollidableBlock(this, _arg1));
_arg1.cacheAsBitmap = true;
}
private function addAlwaysOnTopStructure(_arg1:MovieClip):void{
alwaysOnTopStructures.push(ScreenPositionAndDepthManager.duplicateAlwaysOnTopStructure(_arg1, alwaysOnTopStructureContainer));
}
public function getPowerupArray():Array{
return (powerupArray);
}
public function removeAllListeners():void{
var _local1:String;
var _local2:Gameball;
var _local3:Rusher;
var _local4:Bot;
if (tor != null){
tor.removeInvisibilityTimerAndListener();
tor.removeStaminaStarBoostTimerAndListener();
tor.removeStaminaStarRegenerationTimerAndListener();
tor.removeTimeFreezeTimerAndListener();
tor.stopDamageFlashing();
tor.removeGameballsRemainingBubble();
tor.disableGameballSense();
tor.removeGameballSenseArrow();
tor.stop();
};
for (_local1 in gameballs) {
_local2 = Gameball(gameballs[_local1]);
if (_local2 != null){
_local2.deactivate();
_local2.stopDamageFlashing();
_local2.stopFadeOut();
};
};
for (_local1 in rushers) {
_local3 = Rusher(rushers[_local1]);
if (_local3 != null){
_local3.deactivate();
_local3.stopDamageFlashing();
_local3.stopFadeOut();
};
};
for (_local1 in bots) {
_local4 = Bot(bots[_local1]);
if (_local4 != null){
_local4.deactivate();
};
};
if (map != null){
Controller.ROOT.removeChild(map);
map = null;
};
if (levelKeyboardInputManager != null){
levelKeyboardInputManager.stopListeningForTorInput();
};
if (activityManager != null){
activityManager.stopManagingActivity(true);
};
if (screenPositionAndDepthManager != null){
screenPositionAndDepthManager.stopFocusingOnTor();
};
if (screenPositionAndDepthManager != null){
screenPositionAndDepthManager.stopFocusingLevelOnPoint();
};
if (timeManager != null){
timeManager.removeAllListenersAndTimeDisplay();
};
if (screenPositionAndDepthManager != null){
screenPositionAndDepthManager.stopFocusingLevelOnPoint();
};
removeEventListener(Event.REMOVED_FROM_STAGE, cleanUp);
}
private function addIrregularCollidableObject(_arg1:MovieClip):void{
irregularCollidableObjects.push(_arg1);
_arg1.cacheAsBitmap = true;
}
public function getHidingSpots():Array{
return (hidingSpots);
}
public function getRushers():Array{
return (rushers);
}
private function moveUiComponentsToTop():void{
if (timeManager != null){
timeManager.moveTimeDisplayToTop();
};
if (statusDisplay != null){
Controller.ROOT.setChildIndex(statusDisplay, (Controller.ROOT.numChildren - 1));
};
}
private function addBot(_arg1:MovieClip, _arg2:uint, _arg3:uint):void{
var _local4:Bot;
switch (_arg2){
case 1:
_local4 = new Bot1(this, _arg3);
break;
case 2:
_local4 = new Bot2(this, _arg3);
break;
case 3:
_local4 = new Bot3(this, _arg3);
break;
case 4:
_local4 = new Bot4(this, _arg3);
break;
case 5:
_local4 = new Bot5(this, _arg3);
break;
case 6:
_local4 = new Bot6(this, _arg3);
break;
case 7:
_local4 = new Bot7(this, _arg3);
break;
case 8:
_local4 = new Bot8(this, _arg3);
break;
case 9:
_local4 = new Bot9(this, _arg3);
break;
case 10:
_local4 = new Bot10(this, _arg3);
break;
default:
_local4 = null;
trace((((((("Level " + levelNum) + " Warning: ") + _arg1.name) + " (of type ") + _arg2) + ") does not fit into a bot category"));
};
if (_local4 != null){
_local4.x = _arg1.x;
_local4.y = _arg1.y;
addChild(_local4);
bots.push(_local4);
};
removeChild(_arg1);
}
public function toggleMap():void{
if (map != null){
removeMap();
resume();
} else {
map = getLevelMap();
if (map == null){
trace((("Level " + levelNum) + " Warning: Subclass is returning null for getLevelMap()"));
} else {
pause();
Controller.ROOT.addChild(map);
};
};
}
public function isLevelOver():Boolean{
return (levelOver);
}
public function getGame():Game{
return (game);
}
private function verifyThatBotsHaveEssentialComponents():void{
var _local1:String;
var _local2:Bot;
for (_local1 in bots) {
_local2 = Bot(bots[_local1]);
if (((((((!(_local2.getConstraintTop())) || (!(_local2.getConstraintBottom())))) || (!(_local2.getConstraintLeft())))) || (!(_local2.getConstraintRight())))){
trace((((((((((("Level " + levelNum) + " Warning: [") + _local1) + ": ") + _local2.x) + ", ") + _local2.y) + "] Bot ") + _local2.getId()) + " constraints are null!"));
};
};
}
private function addDepthSensitiveObject(_arg1:MovieClip, _arg2:Boolean=true):void{
depthSensitiveObjects.push(new DepthSensitiveObject(this, _arg1));
if (_arg2){
_arg1.cacheAsBitmap = true;
};
}
public function rusherReturned():void{
rushersReturned++;
statusDisplay.updateRushers(rushersReturned);
if ((((gameballsReturned == numGameballs)) && ((rushersReturned == numRushers)))){
levelWon();
};
if (!game.getController().getSoundManager().isDropOffInSafetyZoneSoundPlaying()){
game.getController().getSoundManager().playDropOffInSafetyZoneSound();
};
}
private function addHidingSpotEntrance(_arg1:MovieClip, _arg2:uint):void{
var _local3:HidingSpot = getOrCreateHidingSpotUsingId(_arg2);
_local3.setEntrance(new Point(_arg1.x, _arg1.y));
removeChild(_arg1);
}
public function freezeCharacters():void{
var _local1:String;
var _local2:Character;
for (_local1 in gameballs) {
_local2 = Character(gameballs[_local1]);
_local2.setPlayingBeforePause(_local2.isPlaying());
_local2.stop();
};
for (_local1 in rushers) {
_local2 = Character(rushers[_local1]);
_local2.setPlayingBeforePause(_local2.isPlaying());
_local2.stop();
};
}
private function addPowerup(_arg1:MovieClip, _arg2:String):void{
var _local3:Powerup;
switch (_arg2){
case Powerup.POWERUP_TYPE_INVISIBILITY:
_local3 = new Invisibility(this);
break;
case Powerup.POWERUP_TYPE_STAMINA:
_local3 = new Stamina(this);
break;
case Powerup.POWERUP_TYPE_TELEPORT:
_local3 = new Teleport(this);
break;
case Powerup.POWERUP_TYPE_TIMEFREEZE:
_local3 = new TimeFreeze(this);
break;
default:
_local3 = null;
trace((((((("Level " + levelNum) + " Warning: ") + _arg1.name) + " (of type ") + _arg2) + ") does not fit into a powerup category"));
};
if (_local3 != null){
powerupArray.push(_local3);
_local3.x = _arg1.x;
_local3.y = _arg1.y;
addChild(_local3);
};
removeChild(_arg1);
}
public function getActivityManager():ActivityManager{
return (activityManager);
}
private function addRusher():void{
var _local1:Rusher;
var _local2:HidingSpot;
if (hidingSpots.length > 0){
_local1 = new Rusher(this);
_local2 = getUnoccupiedHidingSpot(false);
_local1.setHidingSpot(_local2);
_local1.x = _local2.getSpot().x;
_local1.y = _local2.getSpot().y;
addChild(_local1);
rushers.push(_local1);
};
}
private function addConstaintsForBotToTempArray(_arg1:MovieClip, _arg2:uint):void{
botConstraintsTempArray.push({constraintClip:_arg1, botId:_arg2});
}
private function verifyThatHidingSpotsHaveEssentialComponents():void{
var _local1:String;
var _local2:HidingSpot;
for (_local1 in hidingSpots) {
_local2 = HidingSpot(hidingSpots[_local1]);
if (!_local2.getId()){
trace((((("Level " + levelNum) + " Warning: [") + _local1) + "] Hiding Spot id is null!"));
};
if (_local2 == null){
trace((((((("Level " + levelNum) + " Warning: [") + _local1) + "] Hiding Spot ") + _local2.getId()) + " spot is null!"));
};
if (_local2.getEntrance() == null){
trace((((((("Level " + levelNum) + " Warning: [") + _local1) + "] Hiding Spot ") + _local2.getId()) + " entrance is null!"));
};
};
}
private function setBorderRockCoordinate(_arg1:MovieClip, _arg2:String):void{
switch (_arg2){
case "top":
borderRocksTop = ((_arg1.y + _arg1.height) + TOP_BORDER_ROCK_Y_ADJUSTMENT);
_arg1.cacheAsBitmap = true;
break;
case "bottom":
borderRocksBottom = (_arg1.y + BOTTOM_BORDER_ROCK_Y_ADJUSTMENT);
addAlwaysOnTopStructure(_arg1);
break;
case "left":
borderRocksLeft = ((_arg1.x + _arg1.width) + SIDE_BORDER_ROCK_X_ADJUSTMENT);
_arg1.cacheAsBitmap = true;
break;
case "right":
borderRocksRight = (_arg1.x + SIDE_BORDER_ROCK_X_ADJUSTMENT);
_arg1.cacheAsBitmap = true;
break;
};
}
private function showLevelSummaryScreen():void{
levelSummaryScreen = new LevelSummaryScreen(this);
levelSummaryScreen.x = safetyZone.getCenterPoint().x;
levelSummaryScreen.y = (safetyZone.getCenterPoint().y + LevelSummaryScreen.DEFAULT_Y_OFFSET);
addChild(levelSummaryScreen);
screenPositionAndDepthManager.startFocusingLevelOnPoint(new Point(levelSummaryScreen.x, levelSummaryScreen.y));
}
public function unfreezeBotsAndProjectiles():void{
var _local1:String;
var _local2:Bot;
var _local3:Array;
var _local4:uint;
for (_local1 in bots) {
_local2 = Bot(bots[_local1]);
if (_local2.wasPlayingBeforePause()){
_local2.play();
};
if (_local2.isActive()){
_local2.startEnterFrameBehavior();
};
_local3 = _local2.getProjectiles();
_local4 = 0;
while (_local4 < _local3.length) {
Projectile(_local3[_local4]).startMoving();
_local4++;
};
};
}
private function initialize():void{
var _local2:DisplayObject;
var _local3:String;
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:Bot;
var _local8:MovieClip;
var _local9:uint;
levelOver = false;
paused = false;
gameballsReturned = 0;
rushersReturned = 0;
collidableBlocks = new Array();
irregularCollidableObjects = new Array();
depthSensitiveObjects = new Array();
alwaysOnTopStructures = new Array();
bots = new Array();
hidingSpots = new Array();
gameballs = new Array();
rushers = new Array();
powerupArray = new Array();
botConstraintsTempArray = new Array();
alwaysOnTopStructureContainer = new MovieClip();
addChild(alwaysOnTopStructureContainer);
var _local1:Array = new Array();
_local5 = 0;
while (_local5 < numChildren) {
_local1.push(getChildAt(_local5));
_local5++;
};
_local5 = 0;
while (_local5 < _local1.length) {
_local2 = DisplayObject(_local1[_local5]);
_local3 = _local2.name;
if (_local3.indexOf("cb_") >= 0){
addCollidableBlock(MovieClip(_local2));
} else {
if (_local3.indexOf("dso_") >= 0){
addDepthSensitiveObject(MovieClip(_local2));
} else {
if (_local3.indexOf("dsonocache_") >= 0){
addDepthSensitiveObject(MovieClip(_local2), false);
} else {
if (_local3.indexOf("botMarker_") >= 0){
_local4 = _local3.lastIndexOf("_");
addBot(MovieClip(_local2), uint(_local3.substring(10, _local4)), uint(_local3.substring((_local4 + 1))));
} else {
if (_local3.indexOf("constraintsForBot_") >= 0){
addConstaintsForBotToTempArray(MovieClip(_local2), uint(_local3.substring(18)));
} else {
if (_local3.indexOf("hidingSpotMarker_") >= 0){
addHidingSpot(MovieClip(_local2), uint(_local3.substring(17)));
} else {
if (_local3.indexOf("hidingSpotEntranceMarker_") >= 0){
addHidingSpotEntrance(MovieClip(_local2), uint(_local3.substring(25)));
} else {
if (_local3.indexOf("powerupMarker_") >= 0){
addPowerup(MovieClip(_local2), _local3.substring(14));
} else {
if (_local3.indexOf("borderRocks_") >= 0){
setBorderRockCoordinate(MovieClip(_local2), _local3.substr(12));
} else {
if (_local3.indexOf("irregularCollidableObject_") >= 0){
addIrregularCollidableObject(MovieClip(_local2));
} else {
if (_local3.indexOf("aot_") >= 0){
addAlwaysOnTopStructure(MovieClip(_local2));
} else {
if (_local3.indexOf("torMarker") >= 0){
torStartingX = _local2.x;
torStartingY = _local2.y;
removeChild(_local2);
} else {
if (_local3.indexOf("safetyZoneInClip") >= 0){
setSafetyZone(MovieClip(_local2));
} else {
_local2.cacheAsBitmap = true;
};
};
};
};
};
};
};
};
};
};
};
};
};
_local5++;
};
_local5 = 0;
while (_local5 < numGameballs) {
addGameball();
_local5++;
};
_local5 = 0;
while (_local5 < numRushers) {
addRusher();
_local5++;
};
_local5 = 0;
while (_local5 < botConstraintsTempArray.length) {
_local8 = MovieClip(botConstraintsTempArray[_local5]["constraintClip"]);
_local9 = uint(botConstraintsTempArray[_local5]["botId"]);
_local6 = 0;
while (_local6 < bots.length) {
_local7 = Bot(bots[_local6]);
if (_local7.getId() == _local9){
_local7.setConstraints(_local8);
break;
};
_local6++;
};
removeChild(_local8);
_local5++;
};
botConstraintsTempArray = null;
tor = new Tor(this);
tor.x = torStartingX;
tor.y = torStartingY;
addChild(tor);
urgencyBorder = new UrgencyBorder(this);
Controller.ROOT.addChild(urgencyBorder);
inGameOverlay = new InGameOverlay();
Controller.ROOT.addChild(inGameOverlay);
pauseOverlay = new MovieClip();
pauseOverlay.graphics.beginFill(0);
pauseOverlay.graphics.drawRect(0, 0, Controller.STAGE_WIDTH, Controller.STAGE_HEIGHT);
pauseOverlay.graphics.endFill();
pauseOverlay.alpha = PAUSE_OVERLAY_ALPHA;
pauseOverlay.visible = false;
Controller.ROOT.addChild(pauseOverlay);
game.getController().getSoundManager().stopMenuMusic();
game.getController().getSoundManager().playGameMusic();
activityManager = new ActivityManager(this);
screenPositionAndDepthManager = new ScreenPositionAndDepthManager(this);
screenPositionAndDepthManager.focusLevelOnTor();
timeManager = new TimeManager(this, timeToCompleteLevel);
levelKeyboardInputManager = new LevelKeyboardInputManager(this);
statusDisplay = new StatusDisplay(this);
tor.enableStaminaStarRegenerationTimer();
verifyThatHidingSpotsHaveEssentialComponents();
verifyThatBotsHaveEssentialComponents();
screenPositionAndDepthManager.focusOnPoint(new Point(torStartingX, torStartingY));
stop();
}
public function getSafetyZone():SafetyZone{
return (safetyZone);
}
private function moveInGameOverlayToTop():void{
if (inGameOverlay != null){
Controller.ROOT.setChildIndex(inGameOverlay, (Controller.ROOT.numChildren - 1));
};
}
private function setSafetyZone(_arg1:MovieClip):void{
safetyZone = new SafetyZone(this, _arg1);
}
private function addHidingSpot(_arg1:MovieClip, _arg2:uint):void{
var _local3:HidingSpot = getOrCreateHidingSpotUsingId(_arg2);
_local3.setSpot(new Point(_arg1.x, _arg1.y));
removeChild(_arg1);
}
public function levelWon():void{
levelOver = true;
updateScore(true);
levelKeyboardInputManager.stopListeningForTorInput();
screenPositionAndDepthManager.stopFocusingOnTor();
activityManager.stopManagingActivity(true);
timeManager.removeAllListenersAndTimeDisplay();
freezeBotsAndProjectiles();
removeAllProjectiles();
tor.gotoAndStop("stand_s");
tor.disableGameballSense();
addEventListener(Event.REMOVED_FROM_STAGE, cleanUp, false, 0, true);
if (urgencyBorder != null){
urgencyBorder.disable();
};
removeMap();
showLevelSummaryScreen();
}
private function movePauseOverlayToTop():void{
if (pauseOverlay != null){
Controller.ROOT.setChildIndex(pauseOverlay, (Controller.ROOT.numChildren - 1));
};
}
private function getOrCreateHidingSpotUsingId(_arg1:uint):HidingSpot{
var _local2:HidingSpot;
var _local3:uint;
while (_local3 < hidingSpots.length) {
_local2 = HidingSpot(hidingSpots[_local3]);
if (_local2.getId() == _arg1){
return (_local2);
};
_local3++;
};
_local2 = new HidingSpot(this, _arg1);
hidingSpots.push(_local2);
return (_local2);
}
private function addGameball():void{
var _local1:Gameball;
var _local2:HidingSpot;
if (hidingSpots.length > 0){
_local1 = new Gameball(this);
_local2 = getUnoccupiedHidingSpot(false);
_local1.setHidingSpot(_local2);
_local1.x = _local2.getSpot().x;
_local1.y = _local2.getSpot().y;
addChild(_local1);
gameballs.push(_local1);
};
}
public function getStatusDisplay():StatusDisplay{
return (statusDisplay);
}
protected function getLevelMap():Map{
return (null);
}
private function moveUrgencyBorderToTop():void{
if (urgencyBorder != null){
Controller.ROOT.setChildIndex(urgencyBorder, (Controller.ROOT.numChildren - 1));
};
}
public function moveTor(_arg1:String):void{
tor.run(_arg1);
}
private function levelLost():void{
levelOver = true;
updateScore(false);
pause();
cleanUp();
removeMap();
if (urgencyBorder != null){
urgencyBorder.disable();
};
game.showGameOverScreen();
}
public function cleanUp(_arg1:Event=null):void{
removeAllListeners();
if (alwaysOnTopStructureContainer != null){
removeChild(alwaysOnTopStructureContainer);
alwaysOnTopStructureContainer = null;
};
if (statusDisplay != null){
Controller.ROOT.removeChild(statusDisplay);
statusDisplay = null;
};
if (urgencyBorder != null){
urgencyBorder.disable();
Controller.ROOT.removeChild(urgencyBorder);
urgencyBorder = null;
};
if (inGameOverlay != null){
Controller.ROOT.removeChild(inGameOverlay);
inGameOverlay = null;
};
if (pauseOverlay != null){
Controller.ROOT.removeChild(pauseOverlay);
pauseOverlay = null;
};
if (levelSummaryScreen != null){
levelSummaryScreen.removeAllListeners();
removeChild(levelSummaryScreen);
levelSummaryScreen = null;
};
}
public function getBorderRocksRight():Number{
return (borderRocksRight);
}
public function getDepthSensitiveObjects():Array{
return (depthSensitiveObjects);
}
public function getBorderRocksLeft():Number{
return (borderRocksLeft);
}
public function getIrregularCollidableObjects():Array{
return (irregularCollidableObjects);
}
public function torDied():void{
levelLost();
}
public function getLevelNum():uint{
return (levelNum);
}
public function getScreenPositionAndDepthManager():ScreenPositionAndDepthManager{
return (screenPositionAndDepthManager);
}
public function getNumGameballsForLevelComplete():uint{
return (numGameballsForLevelComplete);
}
public function getGameballs():Array{
return (gameballs);
}
public function removeAllProjectiles():void{
var _local1:String;
var _local2:Bot;
var _local3:Array;
var _local4:Projectile;
var _local5:uint;
for (_local1 in bots) {
_local2 = Bot(bots[_local1]);
_local3 = _local2.getProjectiles();
_local5 = 0;
while (_local5 < _local3.length) {
_local4 = Projectile(_local3[_local5]);
_local4.cleanUp();
_local5++;
};
};
}
public function pause():void{
paused = true;
if (pauseOverlay != null){
pauseOverlay.visible = true;
};
activityManager.stopManagingActivity(false);
screenPositionAndDepthManager.stopFocusingOnTor();
tor.setPlayingBeforePause(tor.isPlaying());
tor.stop();
tor.pauseInvisibilityTimer();
tor.pauseStaminaStarBoostTimer();
tor.pauseStaminaStarRegenerationTimer();
tor.pauseTimeFreezeTimer();
freezeCharacters();
freezeBotsAndProjectiles();
}
public function getBorderRocksBottom():Number{
return (borderRocksBottom);
}
public function gameballReturned():void{
gameballsReturned++;
statusDisplay.updateGameballs(gameballsReturned);
if ((((gameballsReturned == numGameballs)) && ((rushersReturned == numRushers)))){
levelWon();
tor.removeGameballsRemainingBubble();
} else {
tor.displayGameballsRemainingBubble((numGameballs - gameballsReturned));
};
if (!game.getController().getSoundManager().isDropOffInSafetyZoneSoundPlaying()){
game.getController().getSoundManager().playDropOffInSafetyZoneSound();
};
}
public function freezeBotsAndProjectiles(_arg1:Boolean=true):void{
var _local2:String;
var _local3:Bot;
var _local4:Array;
var _local5:uint;
for (_local2 in bots) {
_local3 = Bot(bots[_local2]);
_local3.setPlayingBeforePause(_local3.isPlaying());
_local3.stopEnterFrameBehavior();
_local4 = _local3.getProjectiles();
if (_arg1){
_local5 = 0;
while (_local5 < _local4.length) {
Projectile(_local4[_local5]).stopMoving();
_local5++;
};
};
};
}
public function isPaused():Boolean{
return (paused);
}
}
}//package levels
Section 40
//Level1 (levels.Level1)
package levels {
import flash.display.*;
import maps.*;
import structures.alwaysontop.*;
public class Level1 extends Level {
public var dso_1284:MovieClip;
public var botMarker_1_345:MovieClip;
public var cb_23212:MovieClip;
public var cb_1231:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var cb_324234:MovieClip;
public var dso_123123:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom1;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var hidingSpotMarker_15:MovieClip;
public var dso_23412:MovieClip;
public var cb_8437:MovieClip;
public var cb_232351:MovieClip;
public var dso_123812:MovieClip;
public var cb_2:MovieClip;
public var cb_124:MovieClip;
public var bg:MovieClip;
public var cb_5:MovieClip;
public var cb_8:MovieClip;
public var cb_9:MovieClip;
public var cb_923:MovieClip;
public var constraintsForBot_745:MovieClip;
public var cb_23048912:MovieClip;
public var cb_2348:MovieClip;
public var cb_23235:MovieClip;
public var cb_23481:MovieClip;
public var torMarker:MovieClip;
public var cb_2349834:MovieClip;
public var hidingSpotMarker_34:MovieClip;
public var borderRocks_top:MovieClip;
public var borderRocks_right:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var dsonocache_23429:MovieClip;
public var hidingSpotMarker_112:MovieClip;
public var botMarker_1_99:MovieClip;
public var cb_238923:MovieClip;
public var cb_2923:MovieClip;
public var cb_32891:MovieClip;
public var dso_12445:MovieClip;
public var dso_11234:MovieClip;
public var cb_8239:MovieClip;
public var dsonocache_39:MovieClip;
public var constraintsForBot_1:MovieClip;
public var constraintsForBot_2:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_4:MovieClip;
public var constraintsForBot_5:MovieClip;
public var cb_3223:MovieClip;
public var hidingSpotMarker_499:MovieClip;
public var dsonocache_38:MovieClip;
public var dsonocache_40:MovieClip;
public var dsonocache_41:MovieClip;
public var dsonocache_44:MovieClip;
public var dsonocache_46:MovieClip;
public var dsonocache_49:MovieClip;
public var dso_1423:MovieClip;
public var cb_23948:MovieClip;
public var cb_29389:MovieClip;
public var dsonocache_37:MovieClip;
public var hidingSpotEntranceMarker_112:MovieClip;
public var hidingSpotMarker_62:MovieClip;
public var cb_84234234:MovieClip;
public var dso_10:MovieClip;
public var dso_11:MovieClip;
public var dso_12:MovieClip;
public var dso_13:MovieClip;
public var dso_15:MovieClip;
public var dso_16:MovieClip;
public var dso_1435:MovieClip;
public var dso_19:MovieClip;
public var hidingSpotMarker_150:MovieClip;
public var botMarker_1_745:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var hidingSpotMarker_399:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var hidingSpotEntranceMarker_15:MovieClip;
public var dso_20:MovieClip;
public var dso_22:MovieClip;
public var dso_23:MovieClip;
public var cb_124124:MovieClip;
public var dso_29:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var dso_24:MovieClip;
public var constraintsForBot_99:MovieClip;
public var hidingSpotEntranceMarker_499:MovieClip;
public var constraintsForBot_6:MovieClip;
public var cb_2342341:MovieClip;
public var dso_17:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dso_31:MovieClip;
public var dso_32:MovieClip;
public var dso_33:MovieClip;
public var dso_34:MovieClip;
public var dso_35:MovieClip;
public var dso_30:MovieClip;
public var borderRocks_left:MovieClip;
public var botMarker_1_1:MovieClip;
public var botMarker_1_3:MovieClip;
public var botMarker_1_4:MovieClip;
public var constraintsForBot_345:MovieClip;
public var botMarker_1_6:MovieClip;
public var cb_58934:MovieClip;
public var dso_18:MovieClip;
public var botMarker_1_2:MovieClip;
public var hidingSpotEntranceMarker_34:MovieClip;
public var botMarker_1_5:MovieClip;
public var dso_27:MovieClip;
public var safetyZoneInClip:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var dso_42:MovieClip;
public var dso_43:MovieClip;
public var dso_12398124:MovieClip;
public var dso_47:MovieClip;
public var dso_48:MovieClip;
public var hidingSpotEntranceMarker_150:MovieClip;
public var dso_1234:MovieClip;
public var cb_49582:MovieClip;
public var hidingSpotEntranceMarker_399:MovieClip;
public var dso_382:MovieClip;
public var dso_1:MovieClip;
public var dso_4:MovieClip;
public var dso_5:MovieClip;
public var dso_6:MovieClip;
public var dso_50:MovieClip;
public var dso_51:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var dso_7:MovieClip;
public var dso_9:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var cb_23412319:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var cb_23094:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var cb_2348234:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var cb_541:MovieClip;
public var dso_2342:MovieClip;
public var dso_8329:MovieClip;
public var dso_36:MovieClip;
public var dso_8:MovieClip;
public var cb_48394:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotEntranceMarker_62:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var cb_444:MovieClip;
public var cb_124071:MovieClip;
public var dso_2123:MovieClip;
public var cb_234984:MovieClip;
public var dso_48923:MovieClip;
public function Level1(_arg1:Game){
super(_arg1, 1, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map1(this));
}
}
}//package levels
Section 41
//Level10 (levels.Level10)
package levels {
import flash.display.*;
import maps.*;
import structures.alwaysontop.*;
public class Level10 extends Level {
public var cb_0130:MovieClip;
public var cb_39119:MovieClip;
public var cb_214120:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotEntranceMarker_411:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var cb_1912:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var cb_1911:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom10;
public var cb_911:MovieClip;
public var bg:MovieClip;
public var cb_1249:MovieClip;
public var cb_1243:MovieClip;
public var cb_23592:MovieClip;
public var hidingSpotMarker_333:MovieClip;
public var cb_1241:MovieClip;
public var dso_12414:MovieClip;
public var hidingSpotMarker_15:MovieClip;
public var constraintsForBot_32:MovieClip;
public var torMarker:MovieClip;
public var borderRocks_top:MovieClip;
public var constraintsForBot_511:MovieClip;
public var borderRocks_right:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var cb_1391:MovieClip;
public var cb_12491:MovieClip;
public var hidingSpotEntranceMarker_333:MovieClip;
public var cb_953291:MovieClip;
public var cb_12935:MovieClip;
public var cb_3582:MovieClip;
public var constraintsForBot_1:MovieClip;
public var constraintsForBot_2:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_4:MovieClip;
public var constraintsForBot_5:MovieClip;
public var constraintsForBot_6:MovieClip;
public var dso_34234:MovieClip;
public var cb_12941:MovieClip;
public var dso_34232:MovieClip;
public var cb_1294:MovieClip;
public var cb_1295:MovieClip;
public var dsonocache_50:MovieClip;
public var dsonocache_51:MovieClip;
public var dsonocache_52:MovieClip;
public var dsonocache_53:MovieClip;
public var dsonocache_54:MovieClip;
public var dso_11:MovieClip;
public var dso_12:MovieClip;
public var dso_13:MovieClip;
public var dso_14:MovieClip;
public var dso_15:MovieClip;
public var dso_16:MovieClip;
public var dso_10:MovieClip;
public var dso_19:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var hidingSpotMarker_157:MovieClip;
public var cb_39512:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var hidingSpotEntranceMarker_15:MovieClip;
public var cb_19351:MovieClip;
public var dso_34932:MovieClip;
public var cb_48349:MovieClip;
public var cb_42924:MovieClip;
public var cb_124012:MovieClip;
public var dso_22:MovieClip;
public var dso_23:MovieClip;
public var dso_26:MovieClip;
public var dso_20:MovieClip;
public var dso_28:MovieClip;
public var dso_29:MovieClip;
public var cb_19241:MovieClip;
public var dso_25:MovieClip;
public var dso_27:MovieClip;
public var botMarker_5_511:MovieClip;
public var cb_19128:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dso_84183:MovieClip;
public var dso_17:MovieClip;
public var dso_18:MovieClip;
public var dso_21:MovieClip;
public var dso_24:MovieClip;
public var dso_30:MovieClip;
public var dso_31:MovieClip;
public var dso_32:MovieClip;
public var dso_33:MovieClip;
public var dso_34:MovieClip;
public var dso_35:MovieClip;
public var dso_37:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var botMarker_1_5:MovieClip;
public var borderRocks_left:MovieClip;
public var botMarker_9_3:MovieClip;
public var botMarker_9_4:MovieClip;
public var botMarker_1_6:MovieClip;
public var hidingSpotMarker_611:MovieClip;
public var hidingSpotMarker_612:MovieClip;
public var dso_40:MovieClip;
public var dso_41:MovieClip;
public var dso_42:MovieClip;
public var dso_43:MovieClip;
public var dso_44:MovieClip;
public var dso_45:MovieClip;
public var dso_46:MovieClip;
public var cb_3951:MovieClip;
public var hidingSpotMarker_183:MovieClip;
public var hidingSpotMarker_184:MovieClip;
public var dso_48:MovieClip;
public var dso_49:MovieClip;
public var hidingSpotEntranceMarker_157:MovieClip;
public var dso_1:MovieClip;
public var dso_2:MovieClip;
public var dso_4:MovieClip;
public var dso_5:MovieClip;
public var dso_6:MovieClip;
public var dso_3:MovieClip;
public var dso_7:MovieClip;
public var dso_8:MovieClip;
public var dso_9:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var dso_1249:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var botMarker_8_2:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var safetyZoneInClip:MovieClip;
public var cb_12401:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var cb_483132:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var hidingSpotEntranceMarker_611:MovieClip;
public var hidingSpotEntranceMarker_612:MovieClip;
public var dso_214124:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var dso_328281:MovieClip;
public var botMarker_8_1:MovieClip;
public var hidingSpotEntranceMarker_183:MovieClip;
public var hidingSpotEntranceMarker_184:MovieClip;
public var cb_4831:MovieClip;
public var dso_36:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var botMarker_1_32:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var hidingSpotMarker_411:MovieClip;
public var cb_12421:MovieClip;
public var cb_3081:MovieClip;
public function Level10(_arg1:Game){
super(_arg1, 10, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map10(this));
}
}
}//package levels
Section 42
//Level2 (levels.Level2)
package levels {
import flash.display.*;
import maps.*;
import structures.alwaysontop.*;
public class Level2 extends Level {
public var botMarker_1_222:MovieClip;
public var cb_12325:MovieClip;
public var hidingSpotEntranceMarker_1144:MovieClip;
public var cb_7456:MovieClip;
public var dsonocache_6:MovieClip;
public var dso_32919:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var dso_23522:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom2;
public var hidingSpotMarker_1188:MovieClip;
public var hidingSpotMarker_15:MovieClip;
public var bg:MovieClip;
public var dso_183891:MovieClip;
public var cb_38:MovieClip;
public var constraintsForBot_199:MovieClip;
public var dso_3819:MovieClip;
public var hidingSpotMarker_222:MovieClip;
public var hidingSpotMarker_103:MovieClip;
public var torMarker:MovieClip;
public var hidingSpotMarker_109:MovieClip;
public var borderRocks_top:MovieClip;
public var borderRocks_right:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var hidingSpotEntranceMarker_1188:MovieClip;
public var hidingSpotMarker_913:MovieClip;
public var dso_234234:MovieClip;
public var dsonocache_26:MovieClip;
public var dsonocache_27:MovieClip;
public var dsonocache_28:MovieClip;
public var dsonocache_29:MovieClip;
public var dso_291818:MovieClip;
public var dso_32842:MovieClip;
public var cb_3223:MovieClip;
public var cb_623525:MovieClip;
public var hidingSpotEntranceMarker_222:MovieClip;
public var hidingSpotEntranceMarker_103:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_5:MovieClip;
public var constraintsForBot_7:MovieClip;
public var constraintsForBot_6:MovieClip;
public var constraintsForBot_8:MovieClip;
public var cb_72423:MovieClip;
public var hidingSpotEntranceMarker_109:MovieClip;
public var irregularCollidableObject_1:MovieClip;
public var hidingSpotEntranceMarker_913:MovieClip;
public var constraintsForBot_311:MovieClip;
public var dso_18328:MovieClip;
public var constraintsForBot_555:MovieClip;
public var dso_10:MovieClip;
public var dso_12:MovieClip;
public var dso_13:MovieClip;
public var dso_183352:MovieClip;
public var hidingSpotMarker_1333:MovieClip;
public var dso_19:MovieClip;
public var hidingSpotMarker_150:MovieClip;
public var dso_14:MovieClip;
public var botMarker_2_5:MovieClip;
public var dso_16:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var hidingSpotEntranceMarker_15:MovieClip;
public var botMarker_2_7:MovieClip;
public var dso_11:MovieClip;
public var dso_15:MovieClip;
public var dso_20:MovieClip;
public var dso_21:MovieClip;
public var dso_128414:MovieClip;
public var botMarker_1_199:MovieClip;
public var dso_22:MovieClip;
public var dso_23:MovieClip;
public var botMarker_2_311:MovieClip;
public var dso_25:MovieClip;
public var botMarker_2_8:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var cb_632:MovieClip;
public var dso_24:MovieClip;
public var dso_30:MovieClip;
public var dso_31:MovieClip;
public var cb_41212412:MovieClip;
public var dso_34:MovieClip;
public var dso_35:MovieClip;
public var dso_36:MovieClip;
public var dso_37:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var constraintsForBot_222:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var dso_32:MovieClip;
public var botMarker_1_3:MovieClip;
public var botMarker_1_6:MovieClip;
public var borderRocks_left:MovieClip;
public var dso_17:MovieClip;
public var cb_645354:MovieClip;
public var dso_41:MovieClip;
public var dso_42:MovieClip;
public var hidingSpotEntranceMarker_150:MovieClip;
public var dso_44:MovieClip;
public var dso_45:MovieClip;
public var dso_46:MovieClip;
public var dso_40:MovieClip;
public var dso_43:MovieClip;
public var dso_112412:MovieClip;
public var dso_48:MovieClip;
public var dso_49:MovieClip;
public var hidingSpotEntranceMarker_1333:MovieClip;
public var dso_47:MovieClip;
public var dso_1:MovieClip;
public var dso_2:MovieClip;
public var dso_3:MovieClip;
public var dso_4:MovieClip;
public var dso_7:MovieClip;
public var cb_32232:MovieClip;
public var dso_50:MovieClip;
public var dso_52:MovieClip;
public var dso_53:MovieClip;
public var dso_54:MovieClip;
public var dso_55:MovieClip;
public var dso_57:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var dso_1249:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var dso_5:MovieClip;
public var dso_58:MovieClip;
public var dso_59:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var dso_60:MovieClip;
public var dso_61:MovieClip;
public var dso_62:MovieClip;
public var dso_9:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var dso_56:MovieClip;
public var hidingSpotMarker_1144:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var dso_13929:MovieClip;
public var safetyZoneInClip:MovieClip;
public var botMarker_1_555:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var cb_6452:MovieClip;
public var dso_8:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var dso_183298:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var dso_18:MovieClip;
public var cb_6342:MovieClip;
public var dso_128238:MovieClip;
public var dso_128239:MovieClip;
public var dso_12983:MovieClip;
public function Level2(_arg1:Game){
super(_arg1, 2, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map2(this));
}
}
}//package levels
Section 43
//Level3 (levels.Level3)
package levels {
import flash.display.*;
import structures.*;
import maps.*;
import structures.alwaysontop.*;
public class Level3 extends Level {
public var hidingSpotMarker_07:MovieClip;
public var hidingSpotMarker_08:MovieClip;
public var hidingSpotMarker_09:MovieClip;
public var hidingSpotEntranceMarker_99:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom3;
public var hidingSpotMarker_10:MovieClip;
public var aot_1:BuildingO_Overlay;
public var bg:MovieClip;
public var hidingSpotEntranceMarker_544:MovieClip;
public var constraintsForBot_612345:MovieClip;
public var cb_2342:MovieClip;
public var botMarker_1_931:MovieClip;
public var torMarker:MovieClip;
public var borderRocks_top:MovieClip;
public var cb_325232:MovieClip;
public var cb_2351:MovieClip;
public var borderRocks_right:MovieClip;
public var cb_128129:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var cb_238921:MovieClip;
public var dsonocache_26:MovieClip;
public var cb_123126:MovieClip;
public var dsonocache_28:MovieClip;
public var dsonocache_29:MovieClip;
public var cb_4429:MovieClip;
public var cb_123124:MovieClip;
public var dsonocache_27:MovieClip;
public var dsonocache_25:MovieClip;
public var dsonocache_30:MovieClip;
public var dsonocache_31:MovieClip;
public var dsonocache_32:MovieClip;
public var hidingSpotMarker_1312:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_5:MovieClip;
public var constraintsForBot_6:MovieClip;
public var constraintsForBot_7:MovieClip;
public var constraintsForBot_8:MovieClip;
public var irregularCollidableObject_1:MovieClip;
public var hidingSpotEntranceMarker_07:MovieClip;
public var hidingSpotEntranceMarker_08:MovieClip;
public var dso_11:MovieClip;
public var dso_13:MovieClip;
public var dso_15:MovieClip;
public var dso_16:MovieClip;
public var dso_17:MovieClip;
public var hidingSpotEntranceMarker_09:MovieClip;
public var dso_19:MovieClip;
public var botMarker_2_3:MovieClip;
public var dso_14:MovieClip;
public var botMarker_2_5:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var dso_12:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var constraintsForBot_444:MovieClip;
public var botMarker_2_8:MovieClip;
public var dso_20:MovieClip;
public var dso_21:MovieClip;
public var dso_22:MovieClip;
public var dso_24:MovieClip;
public var hidingSpotMarker_99:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var hidingSpotEntranceMarker_1312:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var dso_18:MovieClip;
public var dso_33:MovieClip;
public var dso_34:MovieClip;
public var dso_35:MovieClip;
public var dso_37:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var botMarker_1_7:MovieClip;
public var borderRocks_left:MovieClip;
public var botMarker_1_6:MovieClip;
public var dso_40:MovieClip;
public var dso_41:MovieClip;
public var cb_12983:MovieClip;
public var dso_36:MovieClip;
public var dso_1:MovieClip;
public var dso_2:MovieClip;
public var dso_3:MovieClip;
public var dso_4:MovieClip;
public var dso_5:MovieClip;
public var dso_6:MovieClip;
public var dso_8:MovieClip;
public var dso_7:MovieClip;
public var cb_3289:MovieClip;
public var dso_9:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var constraintsForBot_123:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var safetyZoneInClip:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var constraintsForBot_931:MovieClip;
public var cb_213123:MovieClip;
public var cb_32817:MovieClip;
public var botMarker_4_612345:MovieClip;
public var botMarker_2_123:MovieClip;
public var botMarker_1_444:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var cb_12425:MovieClip;
public var hidingSpotMarker_544:MovieClip;
public function Level3(_arg1:Game){
super(_arg1, 3, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map3(this));
}
}
}//package levels
Section 44
//Level4 (levels.Level4)
package levels {
import flash.display.*;
import structures.*;
import maps.*;
import structures.alwaysontop.*;
public class Level4 extends Level {
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotEntranceMarker_533:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom4;
public var cb_1234:MovieClip;
public var cb_130532:MovieClip;
public var cb_0821:MovieClip;
public var cb_11124:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var aot_1:Freeway01;
public var cb_1123:MovieClip;
public var cb_1248:MovieClip;
public var botMarker_2_44:MovieClip;
public var cb_124:MovieClip;
public var bg:MovieClip;
public var cb_21048:MovieClip;
public var cb_2:MovieClip;
public var cb_23590:MovieClip;
public var cb_80124:MovieClip;
public var cb_1804:MovieClip;
public var hidingSpotMarker_13123:MovieClip;
public var hidingSpotEntranceMarker_11112:MovieClip;
public var borderRocks_top:MovieClip;
public var borderRocks_right:MovieClip;
public var hidingSpotMarker_5331:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var cb_12480:MovieClip;
public var cb_12484:MovieClip;
public var constraintsForBot_44:MovieClip;
public var torMarker:MovieClip;
public var cb_12489:MovieClip;
public var dsonocache_12421:MovieClip;
public var cb_819:MovieClip;
public var dsonocache_28:MovieClip;
public var hidingSpotMarker_912:MovieClip;
public var dsonocache_24:MovieClip;
public var cb_12498:MovieClip;
public var dsonocache_34:MovieClip;
public var cb_1283:MovieClip;
public var dsonocache_35:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_4:MovieClip;
public var constraintsForBot_5:MovieClip;
public var constraintsForBot_6:MovieClip;
public var constraintsForBot_7:MovieClip;
public var constraintsForBot_8:MovieClip;
public var cb_84082:MovieClip;
public var dsonocache_36:MovieClip;
public var botMarker_3_4:MovieClip;
public var cb_1305324:MovieClip;
public var hidingSpotMarker_1312:MovieClip;
public var dsonocache_40:MovieClip;
public var cb_8923:MovieClip;
public var hidingSpotEntranceMarker_5331:MovieClip;
public var hidingSpotEntranceMarker_912:MovieClip;
public var dsonocache_37:MovieClip;
public var dso_10:MovieClip;
public var dso_11:MovieClip;
public var cb_234234:MovieClip;
public var dso_13:MovieClip;
public var dso_15:MovieClip;
public var dso_19:MovieClip;
public var dso_14:MovieClip;
public var dso_16:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var dso_12:MovieClip;
public var cb_124805:MovieClip;
public var cb_12048:MovieClip;
public var cb_12843:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var botMarker_2_5:MovieClip;
public var botMarker_2_7:MovieClip;
public var botMarker_2_8:MovieClip;
public var cb_234242:MovieClip;
public var dso_22:MovieClip;
public var hidingSpotEntranceMarker_13123:MovieClip;
public var dso_20:MovieClip;
public var dso_29:MovieClip;
public var dso_23:MovieClip;
public var constraintsForBot_576:MovieClip;
public var dso_26:MovieClip;
public var dso_27:MovieClip;
public var dso_21:MovieClip;
public var hidingSpotEntranceMarker_1312:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dso_30:MovieClip;
public var dso_31:MovieClip;
public var dso_32:MovieClip;
public var dso_33:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var botMarker_1_3:MovieClip;
public var botMarker_1_6:MovieClip;
public var hidingSpotMarker_1111:MovieClip;
public var dso_18:MovieClip;
public var hidingSpotEntranceMarker_131235:MovieClip;
public var cb_12984:MovieClip;
public var cb_129284:MovieClip;
public var dsonocache_66:MovieClip;
public var dso_17:MovieClip;
public var dso_25:MovieClip;
public var dso_41:MovieClip;
public var dso_42:MovieClip;
public var dso_43:MovieClip;
public var dso_44:MovieClip;
public var dso_45:MovieClip;
public var dso_46:MovieClip;
public var dso_47:MovieClip;
public var hidingSpotMarker_131235:MovieClip;
public var dso_48:MovieClip;
public var dsonocache_87:MovieClip;
public var hidingSpotMarker_11112:MovieClip;
public var cb_32352:MovieClip;
public var dso_2:MovieClip;
public var dso_4:MovieClip;
public var dso_5:MovieClip;
public var dso_6:MovieClip;
public var botMarker_2_576:MovieClip;
public var dso_1:MovieClip;
public var dso_50:MovieClip;
public var dso_51:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var dso_53:MovieClip;
public var dso_55:MovieClip;
public var dso_56:MovieClip;
public var dso_57:MovieClip;
public var dso_3:MovieClip;
public var cb_1303:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var cb_1305:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var dso_60:MovieClip;
public var dso_61:MovieClip;
public var dso_62:MovieClip;
public var dso_64:MovieClip;
public var dso_65:MovieClip;
public var dso_67:MovieClip;
public var dso_68:MovieClip;
public var dso_63:MovieClip;
public var dso_58:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotEntranceMarker_1111:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var dso_71:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var dso_74:MovieClip;
public var dso_75:MovieClip;
public var dso_76:MovieClip;
public var dso_70:MovieClip;
public var dso_78:MovieClip;
public var dso_72:MovieClip;
public var cb_13051:MovieClip;
public var dso_77:MovieClip;
public var borderRocks_left:MovieClip;
public var dso_59:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var dso_9:MovieClip;
public var dso_79:MovieClip;
public var hidingSpotMarker_533:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var dso_81:MovieClip;
public var dso_82:MovieClip;
public var dso_84:MovieClip;
public var dso_85:MovieClip;
public var dso_86:MovieClip;
public var dso_80:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var safetyZoneInClip:MovieClip;
public var dso_7:MovieClip;
public var dso_8:MovieClip;
public var dsonocache_124321:MovieClip;
public function Level4(_arg1:Game){
super(_arg1, 4, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map4(this));
}
}
}//package levels
Section 45
//Level5 (levels.Level5)
package levels {
import flash.display.*;
import structures.*;
import maps.*;
import structures.alwaysontop.*;
public class Level5 extends Level {
public var hidingSpotEntranceMarker_91:MovieClip;
public var dsonocache_1:MovieClip;
public var cb_1232:MovieClip;
public var dsonocache_8:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom5;
public var constraintsForBot_14:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var cb_12459:MovieClip;
public var cb_1248:MovieClip;
public var aot_1:Freeway01Flipped;
public var constraintsForBot_43632:MovieClip;
public var bg:MovieClip;
public var hidingSpotEntranceMarker_4311:MovieClip;
public var botMarker_5_7:MovieClip;
public var cb_3324234:MovieClip;
public var botMarker_5_3:MovieClip;
public var cb_124:MovieClip;
public var cb_4:MovieClip;
public var cb_248:MovieClip;
public var cb_9:MovieClip;
public var cb_3:MovieClip;
public var cb_122:MovieClip;
public var torMarker:MovieClip;
public var hidingSpotMarker_99911:MovieClip;
public var cb_9237289:MovieClip;
public var borderRocks_top:MovieClip;
public var cb_92234:MovieClip;
public var cb_923758:MovieClip;
public var hidingSpotMarker_43:MovieClip;
public var cb_28021:MovieClip;
public var cb_12480:MovieClip;
public var hidingSpotMarker_111:MovieClip;
public var borderRocks_right:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var botMarker_2_43632:MovieClip;
public var dso_2623:MovieClip;
public var dsonocache_29:MovieClip;
public var cb_124214:MovieClip;
public var hidingSpotMarker_123:MovieClip;
public var cb_1280:MovieClip;
public var cb_923414:MovieClip;
public var cb_923777:MovieClip;
public var constraintsForBot_1:MovieClip;
public var constraintsForBot_2:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_4:MovieClip;
public var constraintsForBot_7:MovieClip;
public var cb_9234234:MovieClip;
public var constraintsForBot_8:MovieClip;
public var cb_35812:MovieClip;
public var hidingSpotEntranceMarker_111:MovieClip;
public var irregularCollidableObject_1:MovieClip;
public var constraintsForBot_77:MovieClip;
public var dso_11:MovieClip;
public var dso_13:MovieClip;
public var dso_14:MovieClip;
public var dso_15:MovieClip;
public var hidingSpotEntranceMarker_123:MovieClip;
public var dso_19:MovieClip;
public var botMarker_2_4:MovieClip;
public var dso_16:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var dso_12:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var cb_12840:MovieClip;
public var cb_9231:MovieClip;
public var dsonocache_61:MovieClip;
public var dsonocache_62:MovieClip;
public var dsonocache_63:MovieClip;
public var dsonocache_64:MovieClip;
public var dso_20:MovieClip;
public var dso_22:MovieClip;
public var dso_10:MovieClip;
public var hidingSpotMarker_91:MovieClip;
public var dso_27:MovieClip;
public var dso_28:MovieClip;
public var hidingSpotMarker_89:MovieClip;
public var dso_24:MovieClip;
public var dso_21:MovieClip;
public var dso_23:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dsonocache_73:MovieClip;
public var dso_26:MovieClip;
public var dso_31:MovieClip;
public var dso_32:MovieClip;
public var dso_33:MovieClip;
public var dso_35:MovieClip;
public var dso_37:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var botMarker_1_2:MovieClip;
public var dso_34:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var hidingSpotEntranceMarker_99911:MovieClip;
public var botMarker_1_1:MovieClip;
public var cb_8023:MovieClip;
public var cb_8281:MovieClip;
public var dso_30:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var dsonocache_66:MovieClip;
public var dso_17:MovieClip;
public var dso_40:MovieClip;
public var dso_41:MovieClip;
public var dso_42:MovieClip;
public var dso_43:MovieClip;
public var dso_44:MovieClip;
public var dso_45:MovieClip;
public var dso_46:MovieClip;
public var dso_47:MovieClip;
public var dso_48:MovieClip;
public var hidingSpotEntranceMarker_43:MovieClip;
public var dso_36:MovieClip;
public var dso_2:MovieClip;
public var dso_4:MovieClip;
public var cb_32351:MovieClip;
public var dso_7:MovieClip;
public var dso_51:MovieClip;
public var dso_52:MovieClip;
public var dso_53:MovieClip;
public var dso_3542:MovieClip;
public var dso_56:MovieClip;
public var dso_50:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var dso_5:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var botMarker_1_14:MovieClip;
public var dso_49:MovieClip;
public var hidingSpotMarker_999:MovieClip;
public var dso_3:MovieClip;
public var dso_60:MovieClip;
public var cb_12408:MovieClip;
public var dso_18:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var dso_65:MovieClip;
public var dso_67:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var dso_69:MovieClip;
public var dso_6:MovieClip;
public var cb_4823:MovieClip;
public var borderRocks_left:MovieClip;
public var dso_68:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var botMarker_2_8:MovieClip;
public var dso_70:MovieClip;
public var dso_71:MovieClip;
public var dso_72:MovieClip;
public var dso_73:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var dso_9:MovieClip;
public var botMarker_5_77:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var safetyZoneInClip:MovieClip;
public var cb_121245:MovieClip;
public var hidingSpotMarker_4311:MovieClip;
public var hidingSpotEntranceMarker_999:MovieClip;
public var hidingSpotEntranceMarker_89:MovieClip;
public var dso_34520:MovieClip;
public var cb_9237123:MovieClip;
public var cb_92311:MovieClip;
public var cb_923711:MovieClip;
public var dso_331111:MovieClip;
public function Level5(_arg1:Game){
super(_arg1, 5, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map5(this));
}
}
}//package levels
Section 46
//Level6 (levels.Level6)
package levels {
import flash.display.*;
import structures.*;
import maps.*;
import structures.alwaysontop.*;
public class Level6 extends Level {
public var cb_16:MovieClip;
public var hidingSpotMarker_311:MovieClip;
public var dsonocache_1:MovieClip;
public var cb_21:MovieClip;
public var cb_22:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom6;
public var constraintsForBot_11:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var aot_1:Freeway01Flipped;
public var cb_21048:MovieClip;
public var cb_1242:MovieClip;
public var bg:MovieClip;
public var cb_1241:MovieClip;
public var cb_1243:MovieClip;
public var cb_358012:MovieClip;
public var hidingSpotEntranceMarker_311:MovieClip;
public var botMarker_5_9933:MovieClip;
public var constraintsForBot_997:MovieClip;
public var constraintsForBot_998:MovieClip;
public var torMarker:MovieClip;
public var cb_9237289:MovieClip;
public var borderRocks_top:MovieClip;
public var borderRocks_right:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var cb_12480:MovieClip;
public var cb_12481:MovieClip;
public var cb_38502:MovieClip;
public var dsonocache_20:MovieClip;
public var dsonocache_21:MovieClip;
public var dsonocache_22:MovieClip;
public var dsonocache_29:MovieClip;
public var constraintsForBot_1:MovieClip;
public var constraintsForBot_9933:MovieClip;
public var constraintsForBot_7:MovieClip;
public var constraintsForBot_6:MovieClip;
public var cb_1284:MovieClip;
public var dso_10:MovieClip;
public var dso_11:MovieClip;
public var dso_13:MovieClip;
public var cb_30812:MovieClip;
public var dso_16:MovieClip;
public var dso_19:MovieClip;
public var dso_14:MovieClip;
public var constraintsForBot_88:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var dso_12:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var cb_12840:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var dso_15:MovieClip;
public var cb_124802:MovieClip;
public var dso_24:MovieClip;
public var dso_25:MovieClip;
public var dsonocache_58:MovieClip;
public var dso_28:MovieClip;
public var hidingSpotMarker_1223:MovieClip;
public var dso_23:MovieClip;
public var botMarker_5_997:MovieClip;
public var botMarker_5_998:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dso_26:MovieClip;
public var dso_30:MovieClip;
public var dso_31:MovieClip;
public var dso_32:MovieClip;
public var dso_33:MovieClip;
public var dso_34:MovieClip;
public var dso_35:MovieClip;
public var dso_36:MovieClip;
public var dso_37:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var dso_27:MovieClip;
public var botMarker_1_7:MovieClip;
public var dso_18:MovieClip;
public var borderRocks_left:MovieClip;
public var dso_17:MovieClip;
public var dso_40:MovieClip;
public var dso_41:MovieClip;
public var dso_42:MovieClip;
public var dso_43:MovieClip;
public var dso_44:MovieClip;
public var dso_45:MovieClip;
public var dso_46:MovieClip;
public var dso_47:MovieClip;
public var dso_48:MovieClip;
public var dso_49:MovieClip;
public var dso_2:MovieClip;
public var dso_3:MovieClip;
public var dso_4:MovieClip;
public var dso_5:MovieClip;
public var dso_6:MovieClip;
public var dso_7:MovieClip;
public var dso_8:MovieClip;
public var dso_50:MovieClip;
public var dso_51:MovieClip;
public var dso_52:MovieClip;
public var dso_53:MovieClip;
public var dso_54:MovieClip;
public var dso_55:MovieClip;
public var dso_56:MovieClip;
public var dso_57:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var hidingSpotEntranceMarker_1223:MovieClip;
public var hidingSpotMarker_633:MovieClip;
public var cb_12401:MovieClip;
public var hidingSpotMarker_999:MovieClip;
public var dso_60:MovieClip;
public var dso_61:MovieClip;
public var botMarker_1_11:MovieClip;
public var cb_12408:MovieClip;
public var botMarker_7_144:MovieClip;
public var dso_59:MovieClip;
public var cb_3821:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var safetyZoneInClip:MovieClip;
public var cb_9237212:MovieClip;
public var hidingSpotMarker_1132:MovieClip;
public var dso_9:MovieClip;
public var constraintsForBot_144:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var botMarker_7_1:MovieClip;
public var botMarker_7_6:MovieClip;
public var hidingSpotEntranceMarker_633:MovieClip;
public var hidingSpotEntranceMarker_999:MovieClip;
public var hidingSpotEntranceMarker_1132:MovieClip;
public var botMarker_5_88:MovieClip;
public var cb_9237123:MovieClip;
public var cb_124083:MovieClip;
public function Level6(_arg1:Game){
super(_arg1, 6, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map6(this));
}
}
}//package levels
Section 47
//Level7 (levels.Level7)
package levels {
import flash.display.*;
import maps.*;
import structures.alwaysontop.*;
public class Level7 extends Level {
public var cb_120841:MovieClip;
public var botMarker_6_3312:MovieClip;
public var botMarker_6_144:MovieClip;
public var cb_214:MovieClip;
public var botMarker_6_8:MovieClip;
public var cb_48502:MovieClip;
public var botMarker_6_6:MovieClip;
public var dsonocache_9:MovieClip;
public var cb_923722:MovieClip;
public var cb_124532:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom7;
public var hidingSpotEntranceMarker_11221:MovieClip;
public var constraintsForBot_611:MovieClip;
public var dsonocache_2:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var constraintsForBot_14:MovieClip;
public var constraintsForBot_15:MovieClip;
public var constraintsForBot_19:MovieClip;
public var cb_1248:MovieClip;
public var cb_1802:MovieClip;
public var bg:MovieClip;
public var constraintsForBot_23:MovieClip;
public var botMarker_7_3776:MovieClip;
public var cb_1241:MovieClip;
public var hidingSpotMarker_222:MovieClip;
public var torMarker:MovieClip;
public var hidingSpotMarker_101:MovieClip;
public var cb_9237289:MovieClip;
public var borderRocks_top:MovieClip;
public var cb_2351:MovieClip;
public var borderRocks_right:MovieClip;
public var dsonocache_15:MovieClip;
public var dsonocache_18:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var cb_12480:MovieClip;
public var hidingSpotMarker_114:MovieClip;
public var cb_24352:MovieClip;
public var cb_35801:MovieClip;
public var cb_3583:MovieClip;
public var dsonocache_34:MovieClip;
public var dsonocache_36:MovieClip;
public var hidingSpotEntranceMarker_222:MovieClip;
public var cb_28041:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_5:MovieClip;
public var dsonocache_32:MovieClip;
public var constraintsForBot_8:MovieClip;
public var hidingSpotEntranceMarker_101:MovieClip;
public var dsonocache_35:MovieClip;
public var constraintsForBot_6:MovieClip;
public var dsonocache_41:MovieClip;
public var dsonocache_46:MovieClip;
public var hidingSpotEntranceMarker_114:MovieClip;
public var constraintsForBot_313:MovieClip;
public var dsonocache_54:MovieClip;
public var dso_10:MovieClip;
public var hidingSpotMarker_6223:MovieClip;
public var hidingSpotMarker_88:MovieClip;
public var dso_19:MovieClip;
public var dso_13:MovieClip;
public var dso_14:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var dso_12:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var cb_124801:MovieClip;
public var cb_4580:MovieClip;
public var dso_20:MovieClip;
public var dso_21:MovieClip;
public var dso_22:MovieClip;
public var dso_11:MovieClip;
public var dso_26:MovieClip;
public var dso_28:MovieClip;
public var dso_29:MovieClip;
public var dso_23:MovieClip;
public var dsonocache_69:MovieClip;
public var botMarker_5_23:MovieClip;
public var cb_124810:MovieClip;
public var dso_25:MovieClip;
public var dso_24:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dso_30:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var dso_33:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var dso_16:MovieClip;
public var dso_31:MovieClip;
public var hidingSpotMarker_11221:MovieClip;
public var cb_32580:MovieClip;
public var dso_27:MovieClip;
public var borderRocks_left:MovieClip;
public var dsonocache_76:MovieClip;
public var dso_17:MovieClip;
public var dso_40:MovieClip;
public var dso_42:MovieClip;
public var dso_43:MovieClip;
public var dso_44:MovieClip;
public var dso_45:MovieClip;
public var dso_47:MovieClip;
public var dso_48:MovieClip;
public var hidingSpotEntranceMarker_6223:MovieClip;
public var botMarker_6_15:MovieClip;
public var dso_49:MovieClip;
public var dso_4:MovieClip;
public var dso_6:MovieClip;
public var hidingSpotMarker_622:MovieClip;
public var dso_51:MovieClip;
public var dso_52:MovieClip;
public var dso_53:MovieClip;
public var dso_55:MovieClip;
public var dso_56:MovieClip;
public var dso_50:MovieClip;
public var constraintsForBot_31392:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var dso_5:MovieClip;
public var botMarker_5_31392:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var botMarker_5_31394:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var cb_23532:MovieClip;
public var constraintsForBot_3776:MovieClip;
public var dso_3:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var dso_60:MovieClip;
public var dso_61:MovieClip;
public var dso_62:MovieClip;
public var dso_63:MovieClip;
public var dso_64:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var dso_1:MovieClip;
public var dso_67:MovieClip;
public var irregularObjectCollision_1:MovieClip;
public var cb_12408:MovieClip;
public var dso_57:MovieClip;
public var botMarker_5_31399:MovieClip;
public var dso_66:MovieClip;
public var botMarker_5_313:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var botMarker_6_19:MovieClip;
public var cb_8502:MovieClip;
public var dso_70:MovieClip;
public var dso_71:MovieClip;
public var dso_72:MovieClip;
public var dso_73:MovieClip;
public var dso_74:MovieClip;
public var dso_75:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var dso_8:MovieClip;
public var dso_68:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var constraintsForBot_144:MovieClip;
public var dso_58:MovieClip;
public var botMarker_7_14:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var dso_65:MovieClip;
public var constraintsForBot_3312:MovieClip;
public var botMarker_7_3:MovieClip;
public var hidingSpotEntranceMarker_622:MovieClip;
public var constraintsForBot_31399:MovieClip;
public var cb_12421:MovieClip;
public var cb_312:MovieClip;
public var dso_59:MovieClip;
public var constraintsForBot_31394:MovieClip;
public var dso_7:MovieClip;
public var botMarker_7_5:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var safetyZoneInClip:MovieClip;
public var hidingSpotEntranceMarker_88:MovieClip;
public var botMarker_7_611:MovieClip;
public var cb_9237123:MovieClip;
public function Level7(_arg1:Game){
super(_arg1, 7, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map7(this));
}
}
}//package levels
Section 48
//Level8 (levels.Level8)
package levels {
import flash.display.*;
import maps.*;
import structures.alwaysontop.*;
public class Level8 extends Level {
public var cb_211242332:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var botMarker_1_66:MovieClip;
public var botMarker_7_44:MovieClip;
public var dso_1941941:MovieClip;
public var hidingSpotMarker_444:MovieClip;
public var dso_1294124:MovieClip;
public var dso_12941241212:MovieClip;
public var cb_1248:MovieClip;
public var bg:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom8;
public var cb_128:MovieClip;
public var dso_129412412:MovieClip;
public var dso_12841248:MovieClip;
public var cb_23235:MovieClip;
public var cb_2108124:MovieClip;
public var constraintsForBot_23:MovieClip;
public var botMarker_5_132:MovieClip;
public var torMarker:MovieClip;
public var borderRocks_top:MovieClip;
public var cb_1204812:MovieClip;
public var borderRocks_right:MovieClip;
public var hidingSpotEntranceMarker_444:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var cb_12480:MovieClip;
public var constraintsForBot_44:MovieClip;
public var cb_211242376:MovieClip;
public var cb_2480:MovieClip;
public var cb_12804:MovieClip;
public var dso_124812:MovieClip;
public var dso_12941241122:MovieClip;
public var dso_124818:MovieClip;
public var cb_21124239999:MovieClip;
public var dso_1284128:MovieClip;
public var dso_1284129:MovieClip;
public var hidingSpotMarker_244:MovieClip;
public var dsonocache_38:MovieClip;
public var dsonocache_39:MovieClip;
public var constraintsForBot_4:MovieClip;
public var constraintsForBot_5:MovieClip;
public var constraintsForBot_66:MovieClip;
public var constraintsForBot_7:MovieClip;
public var constraintsForBot_8:MovieClip;
public var constraintsForBot_6:MovieClip;
public var dsonocache_40:MovieClip;
public var dsonocache_41:MovieClip;
public var dso_1294124912:MovieClip;
public var irregularCollidableObject_1:MovieClip;
public var dsonocache_37:MovieClip;
public var cb_2112423:MovieClip;
public var dso_10:MovieClip;
public var dso_11:MovieClip;
public var dso_12941249:MovieClip;
public var dso_14:MovieClip;
public var dso_15:MovieClip;
public var hidingSpotEntranceMarker_244:MovieClip;
public var dso_12941924:MovieClip;
public var dso_12:MovieClip;
public var dso_16:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var cb_2112423762343:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var dso_389283:MovieClip;
public var dso_13:MovieClip;
public var dso_12912:MovieClip;
public var dso_1291249:MovieClip;
public var dso_23:MovieClip;
public var dso_25:MovieClip;
public var dso_128418:MovieClip;
public var dso_27:MovieClip;
public var dso_28:MovieClip;
public var dso_17:MovieClip;
public var dso_12381238:MovieClip;
public var dso_12481:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dso_26:MovieClip;
public var dso_18:MovieClip;
public var cb_21124233211:MovieClip;
public var dso_24:MovieClip;
public var dso_35:MovieClip;
public var cb_120484233212:MovieClip;
public var hidingSpotMarker_1112:MovieClip;
public var botMarker_1_4:MovieClip;
public var dso_36:MovieClip;
public var borderRocks_left:MovieClip;
public var botMarker_1_8:MovieClip;
public var botMarker_9_5:MovieClip;
public var botMarker_9_7:MovieClip;
public var dso_12491:MovieClip;
public var cb_2112454:MovieClip;
public var cb_842108:MovieClip;
public var hidingSpotMarker_1244:MovieClip;
public var dso_12491249:MovieClip;
public var botMarker_1_6:MovieClip;
public var cb_1204842332:MovieClip;
public var dso_1:MovieClip;
public var dso_2:MovieClip;
public var dso_3:MovieClip;
public var dso_4:MovieClip;
public var dso_6:MovieClip;
public var dso_9:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var dso_5:MovieClip;
public var dso_7:MovieClip;
public var dso_129124912:MovieClip;
public var cb_120484:MovieClip;
public var cb_12048423:MovieClip;
public var dso_384982:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var safetyZoneInClip:MovieClip;
public var hidingSpotMarker_199:MovieClip;
public var dso_8:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var constraintsForBot_132:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotEntranceMarker_1112:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var cb_1204842121211:MovieClip;
public var cb_12412:MovieClip;
public var dso_12841:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var cb_3501:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var cb_21124:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var hidingSpotEntranceMarker_1244:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var cb_21124237623:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var botMarker_1_23:MovieClip;
public var cb_21124233:MovieClip;
public var hidingSpotEntranceMarker_199:MovieClip;
public var dso_128124:MovieClip;
public function Level8(_arg1:Game){
super(_arg1, 8, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map8(this));
}
}
}//package levels
Section 49
//Level9 (levels.Level9)
package levels {
import flash.display.*;
import maps.*;
import structures.alwaysontop.*;
public class Level9 extends Level {
public var cb_23214:MovieClip;
public var cb_923722:MovieClip;
public var hidingSpotMarker_10:MovieClip;
public var hidingSpotMarker_11:MovieClip;
public var hidingSpotMarker_12:MovieClip;
public var hidingSpotMarker_14:MovieClip;
public var constraintsForBot_13:MovieClip;
public var hidingSpotEntranceMarker_655:MovieClip;
public var constraintsForBot_19:MovieClip;
public var hidingSpotMarker_13:MovieClip;
public var borderRocks_bottom:BorderRocks_Bottom9;
public var bg:MovieClip;
public var constraintsForBot_20:MovieClip;
public var cb_182401:MovieClip;
public var hidingSpotMarker_331:MovieClip;
public var botMarker_5_8:MovieClip;
public var hidingSpotEntranceMarker_65513:MovieClip;
public var cb_129:MovieClip;
public var cb_2108:MovieClip;
public var constraintsForBot_30:MovieClip;
public var torMarker:MovieClip;
public var borderRocks_top:MovieClip;
public var borderRocks_right:MovieClip;
public var powerupMarker_TimeFreeze:MovieClip;
public var cb_12483:MovieClip;
public var cb_32081:MovieClip;
public var cb_12804:MovieClip;
public var hidingSpotMarker_6551:MovieClip;
public var hidingSpotEntranceMarker_331:MovieClip;
public var dsonocache_28:MovieClip;
public var dso_1293192:MovieClip;
public var cb_1280:MovieClip;
public var cb_92373:MovieClip;
public var botMarker_9_30:MovieClip;
public var dsonocache_35:MovieClip;
public var constraintsForBot_3:MovieClip;
public var constraintsForBot_5:MovieClip;
public var constraintsForBot_6:MovieClip;
public var constraintsForBot_7:MovieClip;
public var constraintsForBot_8:MovieClip;
public var cb_12821:MovieClip;
public var constraintsForBot_3033:MovieClip;
public var hidingSpotMarker_6332:MovieClip;
public var cb_124912:MovieClip;
public var dsonocache_53:MovieClip;
public var dsonocache_54:MovieClip;
public var dsonocache_55:MovieClip;
public var dso_11:MovieClip;
public var dsonocache_57:MovieClip;
public var dso_13:MovieClip;
public var dso_14:MovieClip;
public var dso_15:MovieClip;
public var cb_124128:MovieClip;
public var dso_10:MovieClip;
public var cb_124801:MovieClip;
public var dso_19:MovieClip;
public var hidingSpotEntranceMarker_6551:MovieClip;
public var botMarker_5_13:MovieClip;
public var hidingSpotMarker_88:MovieClip;
public var hidingSpotEntranceMarker_10:MovieClip;
public var hidingSpotEntranceMarker_11:MovieClip;
public var dso_12:MovieClip;
public var hidingSpotEntranceMarker_14:MovieClip;
public var cb_12840:MovieClip;
public var hidingSpotEntranceMarker_13:MovieClip;
public var dso_21:MovieClip;
public var dso_22:MovieClip;
public var dso_24:MovieClip;
public var dsonocache_58:MovieClip;
public var dso_20:MovieClip;
public var hidingSpotMarker_1219:MovieClip;
public var dso_29:MovieClip;
public var dso_23:MovieClip;
public var dso_25:MovieClip;
public var dso_26:MovieClip;
public var dso_27:MovieClip;
public var dsonocache_56:MovieClip;
public var botMarker_5_20:MovieClip;
public var cb_1248312:MovieClip;
public var powerupMarker_Teleport:MovieClip;
public var dso_16:MovieClip;
public var dso_17:MovieClip;
public var cb_3801:MovieClip;
public var cb_124812:MovieClip;
public var dso_12128:MovieClip;
public var cb_9233:MovieClip;
public var dso_30:MovieClip;
public var dso_31:MovieClip;
public var dso_33:MovieClip;
public var dso_34:MovieClip;
public var dso_36:MovieClip;
public var dso_37:MovieClip;
public var dso_38:MovieClip;
public var dso_39:MovieClip;
public var botMarker_1_3:MovieClip;
public var botMarker_1_5:MovieClip;
public var hidingSpotEntranceMarker_6332:MovieClip;
public var borderRocks_left:MovieClip;
public var dso_32:MovieClip;
public var botMarker_9_6:MovieClip;
public var botMarker_9_7:MovieClip;
public var hidingSpotEntranceMarker_12:MovieClip;
public var cb_2180:MovieClip;
public var dso_40:MovieClip;
public var dso_41:MovieClip;
public var dso_42:MovieClip;
public var dso_43:MovieClip;
public var dso_44:MovieClip;
public var dso_45:MovieClip;
public var dso_46:MovieClip;
public var dso_47:MovieClip;
public var dso_48:MovieClip;
public var dso_49:MovieClip;
public var cb_1248332:MovieClip;
public var dso_1:MovieClip;
public var dso_2:MovieClip;
public var dso_3:MovieClip;
public var dso_4:MovieClip;
public var dso_5:MovieClip;
public var hidingSpotEntranceMarker_1219:MovieClip;
public var dso_7:MovieClip;
public var dso_50:MovieClip;
public var dso_51:MovieClip;
public var dso_52:MovieClip;
public var dso_6:MovieClip;
public var dso_9:MovieClip;
public var powerupMarker_Invisibility:MovieClip;
public var hidingSpotEntranceMarker_2:MovieClip;
public var hidingSpotEntranceMarker_3:MovieClip;
public var hidingSpotEntranceMarker_4:MovieClip;
public var hidingSpotEntranceMarker_5:MovieClip;
public var hidingSpotEntranceMarker_6:MovieClip;
public var hidingSpotEntranceMarker_7:MovieClip;
public var hidingSpotEntranceMarker_8:MovieClip;
public var cb_12084:MovieClip;
public var hidingSpotMarker_65513:MovieClip;
public var dso_8:MovieClip;
public var hidingSpotEntranceMarker_9:MovieClip;
public var safetyZoneInClip:MovieClip;
public var dso_59:MovieClip;
public var dso_18:MovieClip;
public var cb_120481:MovieClip;
public var hidingSpotEntranceMarker_1:MovieClip;
public var hidingSpotMarker_1:MovieClip;
public var hidingSpotMarker_2:MovieClip;
public var hidingSpotMarker_3:MovieClip;
public var hidingSpotMarker_4:MovieClip;
public var hidingSpotMarker_5:MovieClip;
public var hidingSpotMarker_6:MovieClip;
public var hidingSpotMarker_7:MovieClip;
public var hidingSpotMarker_8:MovieClip;
public var hidingSpotMarker_9:MovieClip;
public var botMarker_1_19:MovieClip;
public var cb_124981:MovieClip;
public var powerupMarker_Stamina:MovieClip;
public var cb_18402:MovieClip;
public var hidingSpotMarker_655:MovieClip;
public var botMarker_1_3033:MovieClip;
public var hidingSpotEntranceMarker_88:MovieClip;
public function Level9(_arg1:Game){
super(_arg1, 9, 200, 10, 10, 4);
}
override protected function getLevelMap():Map{
return (new Map9(this));
}
}
}//package levels
Section 50
//BriefScreenKeyboardInputManager (managers.keyboardinput.BriefScreenKeyboardInputManager)
package managers.keyboardinput {
import flash.events.*;
import screens.briefs.*;
import flash.ui.*;
public class BriefScreenKeyboardInputManager extends KeyboardInputManager {
private var briefScreen:BriefScreen;
public function BriefScreenKeyboardInputManager(_arg1:BriefScreen){
this.briefScreen = _arg1;
}
private function listenForInput(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case Keyboard.ENTER:
case Keyboard.SPACE:
briefScreen.startLevel();
break;
};
}
public function stopListeningForInput():void{
Controller.STAGE.removeEventListener(KeyboardEvent.KEY_DOWN, listenForInput);
}
public function startListeningForInput():void{
giveStageFocus();
Controller.STAGE.addEventListener(KeyboardEvent.KEY_DOWN, listenForInput, false, 0, true);
}
}
}//package managers.keyboardinput
Section 51
//FinalGameOverScreenKeyboardInputManager (managers.keyboardinput.FinalGameOverScreenKeyboardInputManager)
package managers.keyboardinput {
import flash.events.*;
import screens.*;
import flash.ui.*;
public class FinalGameOverScreenKeyboardInputManager extends KeyboardInputManager {
private var finalGameOverScreen:FinalGameOverScreen;
public function FinalGameOverScreenKeyboardInputManager(_arg1:FinalGameOverScreen){
this.finalGameOverScreen = _arg1;
}
public function stopListeningForInput():void{
Controller.STAGE.removeEventListener(KeyboardEvent.KEY_DOWN, listenForInput);
}
public function startListeningForInput():void{
giveStageFocus();
Controller.STAGE.addEventListener(KeyboardEvent.KEY_DOWN, listenForInput, false, 0, true);
}
private function listenForInput(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case Keyboard.ENTER:
case Keyboard.SPACE:
finalGameOverScreen.playAgainSelected();
break;
};
}
}
}//package managers.keyboardinput
Section 52
//GameOverScreenKeyboardInputManager (managers.keyboardinput.GameOverScreenKeyboardInputManager)
package managers.keyboardinput {
import flash.events.*;
import screens.*;
import flash.ui.*;
public class GameOverScreenKeyboardInputManager extends KeyboardInputManager {
private var gameOverScreen:GameOverScreen;
public function GameOverScreenKeyboardInputManager(_arg1:GameOverScreen){
this.gameOverScreen = _arg1;
}
private function listenForInput(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case Keyboard.ENTER:
case Keyboard.SPACE:
gameOverScreen.playAgainSelected();
break;
};
}
public function startListeningForInput():void{
giveStageFocus();
Controller.STAGE.addEventListener(KeyboardEvent.KEY_DOWN, listenForInput, false, 0, true);
}
public function stopListeningForInput():void{
Controller.STAGE.removeEventListener(KeyboardEvent.KEY_DOWN, listenForInput);
}
}
}//package managers.keyboardinput
Section 53
//InstructionsScreenKeyboardInputManager (managers.keyboardinput.InstructionsScreenKeyboardInputManager)
package managers.keyboardinput {
import flash.events.*;
import screens.*;
import flash.ui.*;
public class InstructionsScreenKeyboardInputManager extends KeyboardInputManager {
private var instructionsScreen:InstructionsScreen;
public function InstructionsScreenKeyboardInputManager(_arg1:InstructionsScreen){
this.instructionsScreen = _arg1;
}
private function listenForInput(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case Keyboard.ENTER:
case Keyboard.SPACE:
instructionsScreen.playButtonSelected();
break;
};
}
public function startListeningForInput():void{
giveStageFocus();
Controller.STAGE.addEventListener(KeyboardEvent.KEY_DOWN, listenForInput, false, 0, true);
}
public function stopListeningForInput():void{
Controller.STAGE.removeEventListener(KeyboardEvent.KEY_DOWN, listenForInput);
}
}
}//package managers.keyboardinput
Section 54
//IntroScreenKeyboardInputManager (managers.keyboardinput.IntroScreenKeyboardInputManager)
package managers.keyboardinput {
import flash.events.*;
import screens.*;
import flash.ui.*;
public class IntroScreenKeyboardInputManager extends KeyboardInputManager {
private var introScreen:IntroScreen;
public function IntroScreenKeyboardInputManager(_arg1:IntroScreen){
this.introScreen = _arg1;
}
public function stopListeningForInput():void{
Controller.STAGE.removeEventListener(KeyboardEvent.KEY_DOWN, listenForInput);
}
public function startListeningForInput():void{
giveStageFocus();
Controller.STAGE.addEventListener(KeyboardEvent.KEY_DOWN, listenForInput, false, 0, true);
}
private function listenForInput(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case 37:
case 65:
introScreen.toggleHighlightedButton();
break;
case 38:
case 87:
introScreen.toggleHighlightedButton();
break;
case 39:
case 68:
introScreen.toggleHighlightedButton();
break;
case 40:
case 83:
introScreen.toggleHighlightedButton();
break;
case Keyboard.ENTER:
introScreen.selectHighlightedButton();
break;
case Keyboard.SPACE:
introScreen.selectHighlightedButton();
break;
};
}
}
}//package managers.keyboardinput
Section 55
//KeyboardInputManager (managers.keyboardinput.KeyboardInputManager)
package managers.keyboardinput {
import fl.managers.*;
public class KeyboardInputManager {
private var focusManager:FocusManager;
public function KeyboardInputManager(){
focusManager = new FocusManager(Controller.STAGE);
}
public function giveStageFocus():void{
focusManager.setFocus(Controller.STAGE);
}
}
}//package managers.keyboardinput
Section 56
//LevelKeyboardInputManager (managers.keyboardinput.LevelKeyboardInputManager)
package managers.keyboardinput {
import flash.events.*;
import managers.*;
import levels.*;
import com.senocular.utils.*;
import flash.ui.*;
public class LevelKeyboardInputManager extends KeyboardInputManager {
private var level:Level;
private var keyObject:KeyObject;
public function LevelKeyboardInputManager(_arg1:Level){
keyObject = new KeyObject(Controller.STAGE);
this.level = _arg1;
}
public function stopListeningForTorInput():void{
Controller.STAGE.removeEventListener(Event.ENTER_FRAME, listenForTorMovementInput);
Controller.STAGE.removeEventListener(KeyboardEvent.KEY_DOWN, listenForInput);
}
private function listenForTorMovementInput(_arg1:Event):void{
var _local2:Boolean;
var _local3:Boolean;
var _local4:Boolean;
var _local5:Boolean;
var _local6:Boolean;
if (!level.isPaused()){
_local2 = false;
_local3 = false;
_local4 = false;
_local5 = false;
_local6 = false;
if (((keyObject.isDown(Keyboard.UP)) || (keyObject.isDown(87)))){
_local3 = true;
_local2 = true;
} else {
if (((keyObject.isDown(Keyboard.DOWN)) || (keyObject.isDown(83)))){
_local4 = true;
_local2 = true;
};
};
if (((keyObject.isDown(Keyboard.LEFT)) || (keyObject.isDown(65)))){
_local5 = true;
_local2 = true;
} else {
if (((keyObject.isDown(Keyboard.RIGHT)) || (keyObject.isDown(68)))){
_local6 = true;
_local2 = true;
};
};
if (_local2){
if (((_local3) && (_local6))){
level.moveTor(OrientationManager.NE);
} else {
if (((_local3) && (_local5))){
level.moveTor(OrientationManager.NW);
} else {
if (((_local4) && (_local6))){
level.moveTor(OrientationManager.SE);
} else {
if (((_local4) && (_local5))){
level.moveTor(OrientationManager.SW);
} else {
if (_local3){
level.moveTor(OrientationManager.N);
} else {
if (_local4){
level.moveTor(OrientationManager.S);
} else {
if (_local6){
level.moveTor(OrientationManager.E);
} else {
if (_local5){
level.moveTor(OrientationManager.W);
};
};
};
};
};
};
};
};
} else {
level.moveTor(OrientationManager.STATIONARY);
};
};
}
public function startListeningForTorInput():void{
giveStageFocus();
Controller.STAGE.addEventListener(Event.ENTER_FRAME, listenForTorMovementInput, false, 4, true);
Controller.STAGE.addEventListener(KeyboardEvent.KEY_DOWN, listenForInput, false, 5, true);
}
private function listenForInput(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case Keyboard.CONTROL:
case 88:
level.toggleMap();
break;
case Keyboard.SHIFT:
if (!level.isPaused()){
level.getTor().whistle();
};
break;
case Keyboard.SPACE:
if (!level.isPaused()){
level.getTor().useStaminaStar();
};
break;
};
}
}
}//package managers.keyboardinput
Section 57
//LevelSummaryScreenKeyboardInputManager (managers.keyboardinput.LevelSummaryScreenKeyboardInputManager)
package managers.keyboardinput {
import flash.events.*;
import screens.*;
import flash.ui.*;
public class LevelSummaryScreenKeyboardInputManager extends KeyboardInputManager {
private var levelSummaryScreen:LevelSummaryScreen;
public function LevelSummaryScreenKeyboardInputManager(_arg1:LevelSummaryScreen){
this.levelSummaryScreen = _arg1;
}
private function listenForInput(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case 37:
case 65:
levelSummaryScreen.toggleHighlightedButton();
break;
case 38:
case 87:
levelSummaryScreen.toggleHighlightedButton();
break;
case 39:
case 68:
levelSummaryScreen.toggleHighlightedButton();
break;
case 40:
case 83:
levelSummaryScreen.toggleHighlightedButton();
break;
case Keyboard.ENTER:
levelSummaryScreen.selectHighlightedButton();
break;
case Keyboard.SPACE:
levelSummaryScreen.selectHighlightedButton();
break;
};
}
public function stopListeningForInput():void{
Controller.STAGE.removeEventListener(KeyboardEvent.KEY_DOWN, listenForInput);
}
public function startListeningForInput():void{
giveStageFocus();
Controller.STAGE.addEventListener(KeyboardEvent.KEY_DOWN, listenForInput, false, 0, true);
}
}
}//package managers.keyboardinput
Section 58
//ActivityManager (managers.ActivityManager)
package managers {
import flash.events.*;
import levels.*;
import flash.geom.*;
import characters.*;
import structures.*;
import enemies.*;
import powerups.*;
import flash.utils.*;
public class ActivityManager {
private var level:Level;
private var timer:Timer;
public static const ANIMATE_ACTIVE_AREA_MARGIN:Number = 340;
public static const INANIMATE_ACTIVE_AREA_MARGIN:Number = 600;
public static const ACTIVITY_UPDATE_INTERVAL:uint = 900;
public function ActivityManager(_arg1:Level):void{
this.level = _arg1;
}
public function startManagingActivity():void{
if (((!(timer)) || ((timer == null)))){
createTimer();
};
updateActivity();
timer.start();
}
private function createTimer():void{
timer = new Timer(ACTIVITY_UPDATE_INTERVAL);
timer.addEventListener(TimerEvent.TIMER, updateActivity, false, 0, true);
}
public function stopManagingActivity(_arg1:Boolean):void{
if (timer != null){
timer.stop();
if (_arg1){
destroyTimer();
};
};
}
private function destroyTimer():void{
if (((timer) && (!((timer == null))))){
timer.removeEventListener(TimerEvent.TIMER, updateActivity);
timer = null;
};
}
public function updateActivity(_arg1:TimerEvent=null, _arg2:Boolean=false):void{
var _local4:CollidableBlock;
var _local6:DepthSensitiveObject;
var _local8:Bot;
var _local10:Gameball;
var _local12:Rusher;
var _local13:Array;
var _local14:Powerup;
var _local15:String;
var _local3:Array = level.getCollidableBlocks();
var _local5:Array = level.getDepthSensitiveObjects();
var _local7:Array = level.getBots();
var _local9:Array = level.getGameballs();
var _local11:Array = level.getRushers();
for (_local15 in _local3) {
_local4 = CollidableBlock(_local3[uint(_local15)]);
if (((globalPointIsWithinInanimateActiveArea(level.localToGlobal(_local4.getCenterPoint()))) || (_arg2))){
_local4.activate();
} else {
_local4.deactivate();
};
};
for (_local15 in _local5) {
_local6 = DepthSensitiveObject(_local5[_local15]);
if (((globalPointIsWithinInanimateActiveArea(level.localToGlobal(_local6.getCenterPoint()))) || (_arg2))){
_local6.activate();
} else {
_local6.deactivate();
};
};
if (!level.getTor().isTimeFreezeEnabled()){
for (_local15 in _local7) {
_local8 = Bot(_local7[_local15]);
if (globalPointIsWithinAnimateActiveArea(level.localToGlobal(new Point(_local8.x, _local8.y)))){
_local8.activate();
} else {
_local8.deactivate();
};
};
};
for (_local15 in _local9) {
_local10 = Gameball(_local9[_local15]);
if (!_local10.isInSafetyZone()){
if (((globalPointIsWithinAnimateActiveArea(level.localToGlobal(new Point(_local10.x, _local10.y)))) || (_arg2))){
_local10.activate();
} else {
_local10.deactivate();
};
};
};
for (_local15 in _local11) {
_local12 = Rusher(_local11[_local15]);
if (!_local12.isInSafetyZone()){
if (((globalPointIsWithinAnimateActiveArea(level.localToGlobal(new Point(_local12.x, _local12.y)))) || (_arg2))){
_local12.activate();
} else {
_local12.deactivate();
};
};
};
for (_local15 in _local13) {
_local14 = Powerup(_local13[_local15]);
if (((globalPointIsWithinInanimateActiveArea(level.localToGlobal(new Point(_local8.x, _local8.y)))) || (_arg2))){
_local14.activate();
} else {
_local14.deactivate();
};
};
}
public static function globalPointIsWithinAnimateActiveArea(_arg1:Point):Boolean{
if ((((((((_arg1.x < -(ANIMATE_ACTIVE_AREA_MARGIN))) || ((_arg1.x > (Controller.STAGE_WIDTH + ANIMATE_ACTIVE_AREA_MARGIN))))) || ((_arg1.y < -(ANIMATE_ACTIVE_AREA_MARGIN))))) || ((_arg1.y > (Controller.STAGE_HEIGHT + ANIMATE_ACTIVE_AREA_MARGIN))))){
return (false);
};
return (true);
}
public static function globalPointIsWithinInanimateActiveArea(_arg1:Point):Boolean{
if ((((((((_arg1.x < -(INANIMATE_ACTIVE_AREA_MARGIN))) || ((_arg1.x > (Controller.STAGE_WIDTH + INANIMATE_ACTIVE_AREA_MARGIN))))) || ((_arg1.y < -(INANIMATE_ACTIVE_AREA_MARGIN))))) || ((_arg1.y > (Controller.STAGE_HEIGHT + INANIMATE_ACTIVE_AREA_MARGIN))))){
return (false);
};
return (true);
}
}
}//package managers
Section 59
//OrientationManager (managers.OrientationManager)
package managers {
import flash.geom.*;
public class OrientationManager {
public static const E:String = "e";
public static const NW:String = "nw";
public static const SW:String = "sw";
public static const ROUND_TO_CARDINAL_DIRECTIONS_THRESHOLD:Number = 0.14;
public static const SE:String = "se";
public static const S:String = "s";
public static const STATIONARY:String = "stationary";
public static const N:String = "n";
public static const NE:String = "ne";
public static const W:String = "w";
public static function getOrientationUsingVelocities(_arg1:Number, _arg2:Number, _arg3:Boolean=false):String{
var _local4:Boolean;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Boolean;
if (_arg3){
if (_arg2 != 0){
if (Math.abs((_arg1 / _arg2)) < ROUND_TO_CARDINAL_DIRECTIONS_THRESHOLD){
_arg1 = 0;
};
};
if (_arg1 != 0){
if (Math.abs((_arg2 / _arg1)) < ROUND_TO_CARDINAL_DIRECTIONS_THRESHOLD){
_arg2 = 0;
};
};
};
if (_arg1 < 0){
_local6 = true;
} else {
if (_arg1 > 0){
_local7 = true;
};
};
if (_arg2 < 0){
_local4 = true;
} else {
if (_arg2 > 0){
_local5 = true;
};
};
if (((_local4) && (_local7))){
return (NE);
};
if (((_local4) && (_local6))){
return (NW);
};
if (((_local5) && (_local7))){
return (SE);
};
if (((_local5) && (_local6))){
return (SW);
};
if (_local6){
return (W);
};
if (_local7){
return (E);
};
if (_local4){
return (N);
};
if (_local5){
return (S);
};
return (STATIONARY);
}
public static function getOrientationUsingPoints(_arg1:Point, _arg2:Point, _arg3:Boolean=false):String{
var _local4:Number = (_arg2.x - _arg1.x);
var _local5:Number = (_arg2.y - _arg1.y);
return (getOrientationUsingVelocities(_local4, _local5, _arg3));
}
public static function getOrientationUsingAngle(_arg1:Number, _arg2:Boolean=false):String{
var _local3:Number = Math.cos(_arg1);
var _local4:Number = Math.sin(_arg1);
return (getOrientationUsingVelocities(_local3, _local4, _arg2));
}
public static function getAngleUsingDirection(_arg1:String):Number{
switch (_arg1){
case E:
return (0);
case SE:
return ((Math.PI / 4));
case S:
return ((Math.PI / 2));
case SW:
return (((Math.PI * 3) / 4));
case W:
return (Math.PI);
case NW:
return (((-(Math.PI) * 3) / 4));
case N:
return ((-(Math.PI) / 2));
case NE:
return ((-(Math.PI) / 4));
default:
return ((Math.PI / 2));
};
}
}
}//package managers
Section 60
//ScoreManager (managers.ScoreManager)
package managers {
public class ScoreManager {
private var score:uint;
private var game:Game;
public static const RUSHERS_RETURNED_MULTIPLIERS:Array = new Array(0, 50, 100, 200, 350);
public static const GAMEBALLS_RETURNED_MULTIPLIER:uint = 10;
public static const LEVEL_COMPLETE_MULTIPLIER:uint = 100;
public static const TIME_REMAINING_MULTIPLIER:uint = 1;
public function ScoreManager(_arg1:Game){
this.game = _arg1;
initialize();
}
private function initialize():void{
score = 0;
}
public function addPointsForTimeRemaining(_arg1:uint):void{
score = (score + (_arg1 * TIME_REMAINING_MULTIPLIER));
}
public function addPointsForRushersReturned(_arg1:uint):void{
if (_arg1 > RUSHERS_RETURNED_MULTIPLIERS.length){
_arg1 = RUSHERS_RETURNED_MULTIPLIERS.length;
};
score = (score + RUSHERS_RETURNED_MULTIPLIERS[_arg1]);
}
public function addPointsForGameballsReturned(_arg1:uint):void{
score = (score + (_arg1 * GAMEBALLS_RETURNED_MULTIPLIER));
}
public function getScore():uint{
return (score);
}
public function addPointsForLevelComplete(_arg1:uint, _arg2:uint, _arg3:uint):void{
score = (score + (_arg1 * LEVEL_COMPLETE_MULTIPLIER));
if (_arg2 > _arg3){
score = Math.pow(score, (_arg3 - _arg2));
};
}
}
}//package managers
Section 61
//ScreenPositionAndDepthManager (managers.ScreenPositionAndDepthManager)
package managers {
import flash.events.*;
import flash.display.*;
import levels.*;
import flash.geom.*;
import flash.utils.*;
public class ScreenPositionAndDepthManager {
private var level:Level;
private var focusPoint:Point;
public static const FOCUS_ON_TOR_SLIDE_DRAG:Number = 4;
public static const FOCUS_ON_POINT_SLIDE_DRAG:Number = 4;
public static const DEPTH_UPDATE_INTERVAL:Number = 500;
public function ScreenPositionAndDepthManager(_arg1:Level){
this.level = _arg1;
}
public function stopFocusingLevelOnPoint():void{
level.removeEventListener(Event.ENTER_FRAME, slideFocusLevelOnPoint);
}
public function focusLevelOnTor():void{
var _local1:Point = getFocusOnTorLevelCoords();
level.x = _local1.x;
level.y = _local1.y;
}
public function moveAboveTor(_arg1:DisplayObject):void{
var _local2:uint = level.getChildIndex(level.getTor());
var _local3:uint = level.getChildIndex(_arg1);
if (_local3 < _local2){
if ((_local2 + 1) > (level.numChildren - 1)){
level.setChildIndex(_arg1, (level.numChildren - 1));
} else {
level.setChildIndex(_arg1, (_local2 + 1));
};
};
}
public function stopFocusingOnTor():void{
level.removeEventListener(Event.ENTER_FRAME, slideFocusLevelOnTor);
}
public function startFocusingOnTor():void{
level.addEventListener(Event.ENTER_FRAME, slideFocusLevelOnTor, false, 0, true);
}
public function focusOnPoint(_arg1:Point):void{
var _local2:Point = getFocusOnPointLevelCoords(_arg1);
level.x = _local2.x;
level.y = _local2.y;
}
private function getFocusOnTorLevelCoords():Point{
return (new Point((-(level.getTor().x) + (Controller.STAGE_WIDTH / 2)), (-(level.getTor().y) + (Controller.STAGE_HEIGHT / 2))));
}
private function slideFocusLevelOnPoint(_arg1:Event):void{
var _local2:Point = getFocusOnPointLevelCoords(focusPoint);
level.x = (level.x + ((_local2.x - level.x) / FOCUS_ON_POINT_SLIDE_DRAG));
level.y = (level.y + ((_local2.y - level.y) / FOCUS_ON_POINT_SLIDE_DRAG));
}
public function startFocusingLevelOnPoint(_arg1:Point):void{
this.focusPoint = _arg1;
level.addEventListener(Event.ENTER_FRAME, slideFocusLevelOnPoint, false, 0, true);
}
private function getFocusOnPointLevelCoords(_arg1:Point):Point{
return (new Point((-(_arg1.x) + (Controller.STAGE_WIDTH / 2)), (-(_arg1.y) + (Controller.STAGE_HEIGHT / 2))));
}
private function slideFocusLevelOnTor(_arg1:Event=null):void{
var _local2:Point = getFocusOnTorLevelCoords();
level.x = (level.x + ((_local2.x - level.x) / FOCUS_ON_TOR_SLIDE_DRAG));
level.y = (level.y + ((_local2.y - level.y) / FOCUS_ON_TOR_SLIDE_DRAG));
}
public function moveToTopOfLevel(_arg1:DisplayObject):void{
level.setChildIndex(_arg1, (level.numChildren - 1));
}
public static function duplicateAlwaysOnTopStructure(_arg1:MovieClip, _arg2:MovieClip):MovieClip{
var _local4:MovieClip;
var _local3:Class = (getDefinitionByName(getQualifiedClassName(_arg1)) as Class);
_local4 = new (_local3);
_local4.x = _arg1.x;
_local4.y = _arg1.y;
_local4.width = _arg1.width;
_local4.height = _arg1.height;
_arg1.parent.removeChild(_arg1);
_arg2.addChild(_local4);
return (_local4);
}
public static function getPointFrom(_arg1:DisplayObject):Point{
return (new Point(_arg1.x, _arg1.y));
}
}
}//package managers
Section 62
//SoundManager (managers.SoundManager)
package managers {
import flash.media.*;
import sounds.*;
public class SoundManager {
private var teleportPowerupPickupSound:SmartSoundObject;
private var menuMusic:SmartSoundObject;
private var characterPickupSound:SmartSoundObject;
private var dropOffInSafetyZoneSound:SmartSoundObject;
private var menuButtonRollOverSound:SmartSoundObject;
private var menuButtonClickSound:SmartSoundObject;
private var dangerSound:SmartSoundObject;
private var urgencyBeepSound:SmartSoundObject;
private var staminaPowerupPickupSound:SmartSoundObject;
private var gameOverSound:SmartSoundObject;
private var invisibilityPowerupPickupSound:SmartSoundObject;
private var fanfareSound:SmartSoundObject;
private var gameMusic:SmartSoundObject;
private var timeFreezePowerupPickupSound:SmartSoundObject;
private var whistleSound:SmartSoundObject;
private var damageSound:SmartSoundObject;
private var collectCharactersSound:SmartSoundObject;
private var transportCarrierFlyInSound:SmartSoundObject;
private var powerupPickupSound:SmartSoundObject;
private var characterAppearsSound:SmartSoundObject;
public function SoundManager(){
initialize();
}
public function pauseGameOverSound():void{
gameOverSound.smartPause();
}
public function stopTransportCarrierFlyInSound():void{
transportCarrierFlyInSound.smartStop();
}
public function playDamageSound():void{
damageSound.smartPlay();
}
public function playGameMusic():void{
if (!gameMusic.smartIsPlaying()){
gameMusic.smartPlay();
};
}
public function playCollectCharactersSound():void{
collectCharactersSound.smartPlay();
}
private function initialize():void{
characterAppearsSound = new SmartSoundObject(new CharacterAppearsSound(), 0.3, false);
characterPickupSound = new SmartSoundObject(new CharacterPickupSound(), 0.18, false);
collectCharactersSound = new SmartSoundObject(new CollectCharactersSound(), 0.5, true);
damageSound = new SmartSoundObject(new DamageSound(), 0.5, false);
dangerSound = new SmartSoundObject(new DangerSound(), 0.2, false);
dropOffInSafetyZoneSound = new SmartSoundObject(new DropOffInSafetyZoneSound(), 0.6, false);
fanfareSound = new SmartSoundObject(new FanfareSound(), 0.6, false);
gameMusic = new SmartSoundObject(new GameMusic(), 1, true);
gameOverSound = new SmartSoundObject(new GameOverSound(), 0.8, false);
invisibilityPowerupPickupSound = new SmartSoundObject(new InvisibilityPowerupPickupSound(), 0.3, false);
menuButtonClickSound = new SmartSoundObject(new MenuButtonClickSound(), 0.5, false);
menuButtonRollOverSound = new SmartSoundObject(new MenuButtonRollOverSound(), 0.5, false);
menuMusic = new SmartSoundObject(new MenuMusic(), 0.6, true);
powerupPickupSound = new SmartSoundObject(new PowerupPickupSound(), 0.2, false);
staminaPowerupPickupSound = new SmartSoundObject(new StaminaPowerupPickupSound(), 0.8, false);
teleportPowerupPickupSound = new SmartSoundObject(new TeleportPowerupPickupSound(), 1.6, false, 0.2);
timeFreezePowerupPickupSound = new SmartSoundObject(new TimeFreezePowerupPickupSound(), 1.7, false);
transportCarrierFlyInSound = new SmartSoundObject(new TransportCarrierFlyInSound(), 2.2, false);
urgencyBeepSound = new SmartSoundObject(new UrgencyBeepSound(), 0.5, false);
whistleSound = new SmartSoundObject(new WhistleSound(), 0.5, false);
}
public function pauseGameMusic():void{
gameMusic.smartPause();
}
public function stopWhistleSound():void{
whistleSound.smartStop();
}
public function isMenuMusicPlaying():Boolean{
return (menuMusic.smartIsPlaying());
}
public function playInvisibilityPowerupPickupSound():void{
invisibilityPowerupPickupSound.smartPlay();
}
public function stopCharacterAppearsSound():void{
characterAppearsSound.smartStop();
}
public function stopTeleportPowerupPickupSound():void{
teleportPowerupPickupSound.smartStop();
}
public function playFanfareSound():void{
fanfareSound.smartPlay();
}
public function isGameMusicPlaying():Boolean{
return (gameMusic.smartIsPlaying());
}
public function playCharacterAppearsSound():void{
characterAppearsSound.smartPlay();
}
public function playStaminaPowerupPickupSound():void{
staminaPowerupPickupSound.smartPlay();
}
public function stopMenuMusic():void{
menuMusic.smartStop();
}
public function stopCharacterPickupSound():void{
characterPickupSound.smartStop();
}
public function pauseMenuMusic():void{
menuMusic.smartPause();
}
public function playWhistleSound():void{
whistleSound.smartPlay();
}
public function playMenuMusic():void{
menuMusic.smartPlay();
}
public function stopDropOffInSafetyZoneSound():void{
dropOffInSafetyZoneSound.smartStop();
}
public function stopPowerupPickupSound():void{
powerupPickupSound.smartStop();
}
public function playMenuButtonClickSound():void{
menuButtonClickSound.smartPlay();
}
public function playTransportCarrierFlyInSound():void{
transportCarrierFlyInSound.smartPlay();
}
public function playTimeFreezePowerupPickupSound():void{
timeFreezePowerupPickupSound.smartPlay();
}
public function muteAllSounds():void{
SoundMixer.soundTransform = new SoundTransform(0);
}
public function playPowerupPickupSound():void{
powerupPickupSound.smartPlay();
}
public function stopMenuButtonRollOverSound():void{
menuButtonRollOverSound.smartStop();
}
public function stopDangerSound():void{
dangerSound.smartStop();
}
public function playTeleportPowerupPickupSound():void{
teleportPowerupPickupSound.smartPlay();
}
public function unmuteAllSounds():void{
SoundMixer.soundTransform = new SoundTransform(1);
}
public function playDangerSound():void{
dangerSound.smartPlay();
}
public function playMenuButtonRollOverSound():void{
menuButtonRollOverSound.smartPlay();
}
public function playUrgencyBeep():void{
urgencyBeepSound.smartPlay();
}
public function playCharacterPickupSound():void{
characterPickupSound.smartPlay();
}
public function stopMenuButtonClickSound():void{
menuButtonClickSound.smartStop();
}
public function playDropOffInSafetyZoneSound():void{
dropOffInSafetyZoneSound.smartPlay();
}
public function stopUrgencyBeepSound():void{
urgencyBeepSound.smartStop();
}
public function stopCollectCarriersSound():void{
collectCharactersSound.smartStop();
}
public function stopGameOverSound():void{
gameOverSound.smartStop();
}
public function stopStaminaPowerupPickupSound():void{
staminaPowerupPickupSound.smartStop();
}
public function stopGameMusic():void{
gameMusic.smartStop();
}
public function playGameOverSound():void{
gameOverSound.smartPlay();
}
public function isDropOffInSafetyZoneSoundPlaying():Boolean{
return (dropOffInSafetyZoneSound.smartIsPlaying());
}
public function stopTimeFreezePowerupPickupSound():void{
timeFreezePowerupPickupSound.smartStop();
}
public function stopInvisibilityPowerupPickupSound():void{
invisibilityPowerupPickupSound.smartStop();
}
public function isFanfareSoundPlaying():Boolean{
return (fanfareSound.smartIsPlaying());
}
public function stopDamageSound():void{
damageSound.smartStop();
}
public function stopFanfareSound():void{
fanfareSound.smartStop();
}
}
}//package managers
Section 63
//TimeManager (managers.TimeManager)
package managers {
import flash.events.*;
import levels.*;
import ui.*;
import flash.utils.*;
public class TimeManager {
private var level:Level;
private var timer:Timer;
private var timeRemaining:int;
private var timeDisplay:TimeDisplay;
public static const URGENCY_THRESHOLD:int = 20;
public static const TIME_DISPLAY_X:Number = 722;
public static const TIME_DISPLAY_Y:Number = 366;
public static const TIMER_INTERVAL:Number = 800;
public function TimeManager(_arg1:Level, _arg2:int){
this.level = _arg1;
this.timeRemaining = _arg2;
initialize();
}
public function removeAllListenersAndTimeDisplay():void{
if (timer != null){
timer.stop();
};
removeAllListeners();
if (timeDisplay != null){
Controller.ROOT.removeChild(timeDisplay);
timeDisplay = null;
};
}
private function removeAllListeners():void{
if (timer != null){
timer.removeEventListener(TimerEvent.TIMER, updateTime);
};
}
public function startTimer():void{
if (timer == null){
timer = new Timer(TIMER_INTERVAL);
timer.addEventListener(TimerEvent.TIMER, updateTime, false, 0, true);
};
timer.start();
}
public function pauseTimer():void{
timer.stop();
}
private function initialize():void{
timeDisplay = new TimeDisplay(this);
timeDisplay.setTime(timeRemaining);
timeDisplay.x = TIME_DISPLAY_X;
timeDisplay.y = TIME_DISPLAY_Y;
Controller.ROOT.addChild(timeDisplay);
Controller.ROOT.setChildIndex(timeDisplay, (Controller.ROOT.numChildren - 1));
}
public function moveTimeDisplayToTop():void{
if (timeDisplay != null){
Controller.ROOT.setChildIndex(timeDisplay, (Controller.ROOT.numChildren - 1));
};
}
public function getTimeRemaining():int{
return (timeRemaining);
}
private function updateTime(_arg1:TimerEvent):void{
timeRemaining--;
if (timeRemaining <= 0){
timeRemaining = 0;
timeDisplay.setTime(timeRemaining);
pauseTimer();
removeAllListeners();
level.timeUp();
} else {
timeDisplay.setTime(timeRemaining);
};
if (timeRemaining == URGENCY_THRESHOLD){
level.enableUrgencyBorder();
};
}
}
}//package managers
Section 64
//BotMapMarker (maps.markers.BotMapMarker)
package maps.markers {
import flash.geom.*;
import maps.*;
public class BotMapMarker extends MapMarker {
public function BotMapMarker(_arg1:Map, _arg2:Point){
addFrameScript(34, frame35);
super(_arg1, _arg2);
}
function frame35(){
gotoAndPlay(1);
}
}
}//package maps.markers
Section 65
//GameballMapMarker (maps.markers.GameballMapMarker)
package maps.markers {
import flash.geom.*;
import maps.*;
public class GameballMapMarker extends MapMarker {
public function GameballMapMarker(_arg1:Map, _arg2:Point){
addFrameScript(34, frame35);
super(_arg1, _arg2);
}
function frame35(){
gotoAndPlay(1);
}
}
}//package maps.markers
Section 66
//MapMarker (maps.markers.MapMarker)
package maps.markers {
import flash.display.*;
import flash.geom.*;
import maps.*;
public class MapMarker extends MovieClip {
protected var initialPoint:Point;
protected var map:Map;
public static const MAP_MARKER_SCALE:Number = 1.2;
public function MapMarker(_arg1:Map, _arg2:Point){
this.map = _arg1;
this.initialPoint = _arg2;
initialize();
}
private function initialize():void{
x = initialPoint.x;
y = initialPoint.y;
scaleX = (scaleY = MAP_MARKER_SCALE);
}
}
}//package maps.markers
Section 67
//RusherMapMarker (maps.markers.RusherMapMarker)
package maps.markers {
import flash.geom.*;
import maps.*;
public class RusherMapMarker extends MapMarker {
public function RusherMapMarker(_arg1:Map, _arg2:Point){
addFrameScript(34, frame35);
super(_arg1, _arg2);
}
function frame35(){
gotoAndPlay(1);
}
}
}//package maps.markers
Section 68
//TorMapMarker (maps.markers.TorMapMarker)
package maps.markers {
import flash.geom.*;
import maps.*;
public class TorMapMarker extends MapMarker {
public function TorMapMarker(_arg1:Map, _arg2:Point){
addFrameScript(34, frame35);
super(_arg1, _arg2);
}
function frame35(){
gotoAndPlay(1);
}
}
}//package maps.markers
Section 69
//Map (maps.Map)
package maps {
import flash.display.*;
import levels.*;
import flash.geom.*;
import characters.*;
import enemies.*;
import maps.markers.*;
public class Map extends MovieClip {
private var level:Level;
private var playableLevelBR:Point;
private var playableMapTL:Point;
private var playableLevelTL:Point;
private var playableMapBR:Point;
public static const PLAYABLE_MAP_MARGIN:Number = 4;
public function Map(_arg1:Level=null){
this.level = _arg1;
initialize();
}
private function translateLevelPointToMapPoint(_arg1:Point):Point{
var _local2:Number = ((playableMapBR.x - playableMapTL.x) / (playableLevelBR.x - playableLevelTL.x));
var _local3:Number = ((playableMapBR.y - playableMapTL.y) / (playableLevelBR.y - playableLevelTL.y));
var _local4:Number = (((_arg1.x - playableLevelTL.x) * _local2) + PLAYABLE_MAP_MARGIN);
var _local5:Number = (((_arg1.y - playableLevelTL.y) * _local3) + PLAYABLE_MAP_MARGIN);
return (new Point(_local4, _local5));
}
private function initialize():void{
var _local1:Character;
var _local2:Array;
var _local3:String;
var _local4:Bot;
var _local5:Point;
var _local6:MapMarker;
var _local7:Point;
if (level != null){
hidePreviewMarkers();
playableLevelTL = new Point(level.getBorderRocksLeft(), level.getBorderRocksTop());
playableLevelBR = new Point(level.getBorderRocksRight(), level.getBorderRocksBottom());
playableMapTL = new Point(PLAYABLE_MAP_MARGIN, PLAYABLE_MAP_MARGIN);
playableMapBR = new Point((width - PLAYABLE_MAP_MARGIN), (height - PLAYABLE_MAP_MARGIN));
_local1 = level.getTor();
_local2 = level.getBots();
for (_local3 in _local2) {
_local4 = Bot(_local2[_local3]);
_local5 = translateLevelPointToMapPoint(new Point(_local4.x, _local4.y));
if (pointIsWithinPlayableMapArea(_local5)){
_local6 = new BotMapMarker(this, _local5);
addChild(_local6);
};
};
_local5 = translateLevelPointToMapPoint(new Point(_local1.x, _local1.y));
if (pointIsWithinPlayableMapArea(_local5)){
_local6 = new TorMapMarker(this, _local5);
addChild(_local6);
};
_local7 = Controller.ROOT.globalToLocal(new Point(((Controller.STAGE_WIDTH / 2) - (width / 2)), ((Controller.STAGE_HEIGHT / 2) - (height / 2))));
x = _local7.x;
y = _local7.y;
};
}
public function showPreviewMarkers():void{
var _local1:MovieClip = MovieClip(getChildByName("previewMarkersInClip"));
if (_local1 != null){
_local1.visible = true;
};
}
private function pointIsWithinPlayableMapArea(_arg1:Point):Boolean{
if (_arg1.x < playableMapTL.x){
return (false);
};
if (_arg1.x > playableMapBR.x){
return (false);
};
if (_arg1.y < playableMapTL.y){
return (false);
};
if (_arg1.y > playableMapBR.y){
return (false);
};
return (true);
}
public function hidePreviewMarkers():void{
var _local1:MovieClip = MovieClip(getChildByName("previewMarkersInClip"));
if (_local1 != null){
_local1.visible = false;
};
}
}
}//package maps
Section 70
//Map1 (maps.Map1)
package maps {
import flash.display.*;
import levels.*;
public class Map1 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map1(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 71
//Map10 (maps.Map10)
package maps {
import flash.display.*;
import levels.*;
public class Map10 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map10(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 72
//Map2 (maps.Map2)
package maps {
import flash.display.*;
import levels.*;
public class Map2 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map2(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 73
//Map3 (maps.Map3)
package maps {
import flash.display.*;
import levels.*;
public class Map3 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map3(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 74
//Map4 (maps.Map4)
package maps {
import flash.display.*;
import levels.*;
public class Map4 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map4(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 75
//Map5 (maps.Map5)
package maps {
import flash.display.*;
import levels.*;
public class Map5 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map5(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 76
//Map6 (maps.Map6)
package maps {
import flash.display.*;
import levels.*;
public class Map6 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map6(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 77
//Map7 (maps.Map7)
package maps {
import flash.display.*;
import levels.*;
public class Map7 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map7(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 78
//Map8 (maps.Map8)
package maps {
import flash.display.*;
import levels.*;
public class Map8 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map8(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 79
//Map9 (maps.Map9)
package maps {
import flash.display.*;
import levels.*;
public class Map9 extends Map {
public var previewMarkersInClip:MovieClip;
public function Map9(_arg1:Level=null){
super(_arg1);
}
}
}//package maps
Section 80
//OmnitureAS3 (nflrz.omniture.OmnitureAS3)
package nflrz.omniture {
import flash.display.*;
import com.omniture.*;
import flash.net.*;
public class OmnitureAS3 extends MovieClip {
private var append:String;
private var linkTarget:String;
private var campaign:String;
private var actionSource:ActionSource;
private var siteName:String;
private var link:String;
private var gameName:String;
public function OmnitureAS3(_arg1:String, _arg2:String="EXTG"){
actionSource = new ActionSource();
gameName = _arg1;
siteName = getDomain();
link = "http://www.nflrush.com/supergames/";
campaign = _arg2;
append = "";
linkTarget = "_blank";
configActionSource();
if (siteName == "localhost"){
testingMode(true);
};
}
public function startGameClick():void{
actionSource.track();
trace("Actionsource startGameClick() called");
}
public function setLinkTarget(_arg1:String):void{
linkTarget = _arg1;
}
public function getDomain(){
var _local1:LocalConnection = new LocalConnection();
return (_local1.domain);
}
public function testingMode(_arg1:Boolean):void{
if (_arg1){
actionSource.account = "nflrushdev";
} else {
actionSource.account = "nflrushprod,nflglobal";
};
}
public function endPlateClick():void{
var _local1:String = (((((((link + "?campaign=") + campaign) + "_") + siteName) + "_") + gameName) + append);
var _local2:URLRequest = new URLRequest(_local1);
navigateToURL(_local2, linkTarget);
trace("Actionsource endPlateClick() called");
}
private function configActionSource(){
actionSource.pageName = (gameName + ":external");
actionSource.movieID = gameName;
actionSource.hier1 = ((("external|" + gameName) + "|") + siteName);
actionSource.hier2 = ((("external|" + siteName) + "|") + gameName);
actionSource.channel = "external";
actionSource.account = "nflrushprod,nflglobal";
actionSource.pageURL = "";
actionSource.charSet = "UTF-8";
actionSource.currencyCode = "USD";
actionSource.trackClickMap = true;
actionSource.debugTracking = true;
actionSource.trackLocal = true;
actionSource.visitorNamespace = "nfl";
addChild(actionSource);
}
public function appendToURL(_arg1:String):void{
append = _arg1;
}
public function setLink(_arg1:String):void{
link = _arg1;
}
}
}//package nflrz.omniture
Section 81
//bg_comp15_214 (nflrz_fla.bg_comp15_214)
package nflrz_fla {
import flash.display.*;
public dynamic class bg_comp15_214 extends MovieClip {
public function bg_comp15_214(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 82
//GameballHead_89 (nflrz_fla.GameballHead_89)
package nflrz_fla {
import flash.display.*;
public dynamic class GameballHead_89 extends MovieClip {
public function GameballHead_89(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 83
//InstructionsButton_82 (nflrz_fla.InstructionsButton_82)
package nflrz_fla {
import flash.display.*;
public dynamic class InstructionsButton_82 extends MovieClip {
public function InstructionsButton_82(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 84
//PlayAgainButton_88 (nflrz_fla.PlayAgainButton_88)
package nflrz_fla {
import flash.display.*;
public dynamic class PlayAgainButton_88 extends MovieClip {
public function PlayAgainButton_88(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 85
//PlayAgainButton2_9 (nflrz_fla.PlayAgainButton2_9)
package nflrz_fla {
import flash.display.*;
public dynamic class PlayAgainButton2_9 extends MovieClip {
public function PlayAgainButton2_9(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 86
//PlayButton2_80 (nflrz_fla.PlayButton2_80)
package nflrz_fla {
import flash.display.*;
public dynamic class PlayButton2_80 extends MovieClip {
public function PlayButton2_80(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 87
//PlayOnButton_93 (nflrz_fla.PlayOnButton_93)
package nflrz_fla {
import flash.display.*;
public dynamic class PlayOnButton_93 extends MovieClip {
public function PlayOnButton_93(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 88
//RusherHead_91 (nflrz_fla.RusherHead_91)
package nflrz_fla {
import flash.display.*;
public dynamic class RusherHead_91 extends MovieClip {
public function RusherHead_91(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 89
//StaminaStar_4 (nflrz_fla.StaminaStar_4)
package nflrz_fla {
import flash.display.*;
public dynamic class StaminaStar_4 extends MovieClip {
public function StaminaStar_4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 90
//StartMissionButton_29 (nflrz_fla.StartMissionButton_29)
package nflrz_fla {
import flash.display.*;
public dynamic class StartMissionButton_29 extends MovieClip {
public function StartMissionButton_29(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package nflrz_fla
Section 91
//Invisibility (powerups.Invisibility)
package powerups {
import levels.*;
public class Invisibility extends Powerup {
public function Invisibility(_arg1:Level){
super(_arg1, Powerup.POWERUP_TYPE_INVISIBILITY);
}
}
}//package powerups
Section 92
//Powerup (powerups.Powerup)
package powerups {
import flash.display.*;
import levels.*;
public class Powerup extends MovieClip {
protected var active:Boolean;
protected var type:String;
protected var level:Level;
public static const POWERUP_PICKUP_AREA_HALF_WIDTH:Number = 28;
public static const POWERUP_TYPE_STAMINA:String = "Stamina";
public static const POWERUP_TYPE_TIMEFREEZE:String = "TimeFreeze";
public static const POWERUP_TYPE_TELEPORT:String = "Teleport";
public static const POWERUP_PICKUP_AREA_HEIGHT:Number = 24;
public static const POWERUP_PICKUP_AREA_BOTTOM_CUSHION:Number = 4;
public static const POWERUP_TYPE_INVISIBILITY:String = "Invisibility";
public function Powerup(_arg1:Level, _arg2:String){
this.level = _arg1;
this.type = _arg2;
}
public function getType():String{
return (type);
}
public function deactivate():void{
active = false;
}
public function activate():void{
active = true;
}
public function isActive():Boolean{
return (active);
}
public function getLevel():Level{
return (level);
}
}
}//package powerups
Section 93
//Stamina (powerups.Stamina)
package powerups {
import levels.*;
public class Stamina extends Powerup {
public function Stamina(_arg1:Level){
super(_arg1, Powerup.POWERUP_TYPE_STAMINA);
}
}
}//package powerups
Section 94
//Teleport (powerups.Teleport)
package powerups {
import levels.*;
public class Teleport extends Powerup {
public function Teleport(_arg1:Level){
super(_arg1, Powerup.POWERUP_TYPE_TELEPORT);
}
}
}//package powerups
Section 95
//TimeFreeze (powerups.TimeFreeze)
package powerups {
import levels.*;
public class TimeFreeze extends Powerup {
public function TimeFreeze(_arg1:Level){
super(_arg1, Powerup.POWERUP_TYPE_TIMEFREEZE);
}
}
}//package powerups
Section 96
//Bullet (projectilesandfx.Bullet)
package projectilesandfx {
import flash.events.*;
import flash.display.*;
import levels.*;
import flash.geom.*;
import enemies.*;
import utils.*;
public class Bullet extends Projectile {
private var xOffset:Number;
private var yOffset:Number;
public static const BULLET_SCALE:Number = 0.5;
public static const COLLISION_HALF_RANGE:uint = 10;
public function Bullet(_arg1:Level, _arg2:Bot, _arg3:Point, _arg4:String, _arg5:uint, _arg6:uint, _arg7:Number){
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7);
bulletInitialize();
}
override public function startMoving():void{
addEventListener(Event.ENTER_FRAME, flyStraight, false, 0, true);
}
private function bulletInitialize():void{
scaleX = (scaleY = BULLET_SCALE);
var _local1:Number = Misc.getAngleBetween(startingPoint, new Point(tor.x, (tor.y + AIM_AT_TOR_Y_OFFSET)));
xOffset = (Math.cos(_local1) * speedScalar);
yOffset = (Math.sin(_local1) * speedScalar);
}
override public function stopMoving():void{
removeEventListener(Event.ENTER_FRAME, flyStraight);
}
private function checkForCharacterCollisions():void{
var _local1:MovieClip = tor.getBodyMarker();
var _local2:Point = tor.localToGlobal(new Point(_local1.x, _local1.y));
var _local3:Point = level.localToGlobal(new Point(x, y));
if (Math.abs((_local2.x - _local3.x)) < Math.abs(((_local1.width / 2) + COLLISION_HALF_RANGE))){
if (Math.abs((_local2.y - _local3.y)) < Math.abs(((_local1.height / 2) + COLLISION_HALF_RANGE))){
if (tor != null){
tor.loseStaminaQuartersToDamage(collisionDamageQuarters);
tor.startDamageFlashing();
cleanUp();
return;
};
};
};
}
private function flyStraight(_arg1:Event):void{
if (count++ > duration){
cleanUp();
} else {
x = (x + xOffset);
y = (y + yOffset);
checkForCharacterCollisions();
};
}
}
}//package projectilesandfx
Section 97
//Explosion (projectilesandfx.Explosion)
package projectilesandfx {
import flash.events.*;
import flash.display.*;
import levels.*;
public class Explosion extends MovieClip {
private var level:Level;
public function Explosion(_arg1:Level){
this.level = _arg1;
initialize();
}
private function checkForExplosionComplete(_arg1:Event):void{
if (currentFrame == totalFrames){
removeEventListener(Event.ENTER_FRAME, checkForExplosionComplete);
level.removeChild(this);
};
}
private function initialize():void{
addEventListener(Event.ENTER_FRAME, checkForExplosionComplete, false, 0, true);
}
}
}//package projectilesandfx
Section 98
//Missile (projectilesandfx.Missile)
package projectilesandfx {
import flash.events.*;
import flash.display.*;
import levels.*;
import flash.geom.*;
import enemies.*;
import utils.*;
public class Missile extends Projectile {
private var lastAngle:Number;
public static const MISSILE_SCALE:Number = 2;
public static const COLLISION_HALF_RANGE:Number = 24;
public static const ANGLE_RANDOMNESS_HALF_RANGE:Number = 0.2;
public static const LAST_ANGLE_WEIGHT:uint = 3;
public static const INITIAL_DIRECTION_DURATION:uint = 6;
public function Missile(_arg1:Level, _arg2:Bot, _arg3:Point, _arg4:String, _arg5:uint, _arg6:uint, _arg7:Number){
addFrameScript(0, frame1);
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7);
missileInitialize();
}
override public function startMoving():void{
addEventListener(Event.ENTER_FRAME, chaseTor, false, 0, true);
}
function frame1(){
stop();
}
private function missileInitialize():void{
scaleX = (scaleY = MISSILE_SCALE);
setRotationUsingDirection(initialDirection);
}
override public function stopMoving():void{
removeEventListener(Event.ENTER_FRAME, chaseTor);
}
private function checkForCharacterCollisions():void{
var _local4:Explosion;
var _local1:MovieClip = tor.getBodyMarker();
var _local2:Point = tor.localToGlobal(new Point(_local1.x, _local1.y));
var _local3:Point = level.localToGlobal(new Point(x, y));
if (Math.abs((_local2.x - _local3.x)) < Math.abs(((_local1.width / 2) + COLLISION_HALF_RANGE))){
if (Math.abs((_local2.y - _local3.y)) < Math.abs(((_local1.height / 2) + COLLISION_HALF_RANGE))){
tor.loseStaminaQuartersToDamage(collisionDamageQuarters);
tor.startDamageFlashing();
_local4 = new Explosion(level);
_local4.x = x;
_local4.y = y;
level.addChild(_local4);
level.setChildIndex(_local4, (level.numChildren - 1));
cleanUp();
return;
};
};
}
private function chaseTor(_arg1:Event):void{
var _local2:Number;
if (count++ > duration){
cleanUp();
} else {
if (count < INITIAL_DIRECTION_DURATION){
if (count == 1){
_local2 = Misc.getAngleBetween(new Point(x, y), new Point(tor.x, (tor.y + AIM_AT_TOR_Y_OFFSET)));
} else {
_local2 = lastAngle;
};
} else {
_local2 = lastAngle;
};
lastAngle = _local2;
setRotationUsingRadianAngle(_local2);
x = (x + (Math.cos(_local2) * speedScalar));
y = (y + (Math.sin(_local2) * speedScalar));
checkForCharacterCollisions();
};
}
private function setRotationUsingDirection(_arg1:String):void{
setRotationUsingRadianAngle(Misc.getAngleUsingDirection(_arg1));
}
private function setRotationUsingRadianAngle(_arg1:Number):void{
rotation = Misc.convertRadiansToDegrees(_arg1);
}
}
}//package projectilesandfx
Section 99
//Projectile (projectilesandfx.Projectile)
package projectilesandfx {
import flash.display.*;
import levels.*;
import flash.geom.*;
import characters.*;
import enemies.*;
public class Projectile extends MovieClip {
protected var level:Level;
protected var bot:Bot;
protected var startingPoint:Point;
protected var speedScalar:uint;
protected var duration:uint;
protected var collisionDamageQuarters:Number;
protected var tor:Tor;
protected var initialDirection:String;
protected var count:uint;
public static const PROJECTILE_MARKER_POINT_INDEX_N:uint = 4;
public static const PROJECTILE_MARKER_POINT_INDEX_S:uint = 0;
public static const PROJECTILE_MARKER_POINT_INDEX_NE:uint = 3;
public static const PROJECTILE_MARKER_POINT_INDEX_W:uint = 6;
public static const AIM_AT_TOR_Y_OFFSET:int = -18;
public static const PROJECTILE_MARKER_POINT_INDEX_SW:uint = 7;
public static const PROJECTILE_MARKER_POINT_INDEX_E:uint = 2;
public static const PROJECTILE_MARKER_POINT_INDEX_NW:uint = 5;
public static const PROJECTILE_MARKER_POINT_INDEX_SE:uint = 1;
public function Projectile(_arg1:Level, _arg2:Bot, _arg3:Point, _arg4:String, _arg5:uint, _arg6:uint, _arg7:Number){
this.level = _arg1;
this.bot = _arg2;
this.startingPoint = _arg3;
this.initialDirection = _arg4;
this.duration = _arg5;
this.speedScalar = _arg6;
this.collisionDamageQuarters = _arg7;
initialize();
}
public function stopMoving():void{
}
public function cleanUp():void{
stopMoving();
bot.stopTrackingProjectile(this);
level.removeChild(this);
}
protected function initialize():void{
count = 0;
x = startingPoint.x;
y = startingPoint.y;
bot.trackProjectile(this);
tor = level.getTor();
}
public function startMoving():void{
}
}
}//package projectilesandfx
Section 100
//BriefScreen (screens.briefs.BriefScreen)
package screens.briefs {
import flash.events.*;
import flash.display.*;
import ui.*;
import maps.*;
import managers.keyboardinput.*;
public class BriefScreen extends MovieClip {
private var map:Map;
private var buttonArray:Array;
private var briefNum:uint;
private var briefScreenKeyboardInputManager:BriefScreenKeyboardInputManager;
private var game:Game;
private var inGameOverlay:InGameOverlay;
private var startMissionButton:MovieClip;
private var currentlyHighlightedButton:uint;
public static const START_MISSION_INDEX:uint = 0;
public function BriefScreen(_arg1:Game, _arg2:uint){
this.game = _arg1;
this.briefNum = _arg2;
initialize();
}
public function startLevel(_arg1:MouseEvent=null):void{
game.getController().getSoundManager().playMenuButtonClickSound();
game.startCurrentLevel();
}
private function buttonRollOut(_arg1:MouseEvent):void{
if (MovieClip(_arg1.target) != MovieClip(buttonArray[currentlyHighlightedButton])){
MovieClip(_arg1.target).gotoAndStop("up");
};
}
public function removeAllListeners():void{
startMissionButton.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
startMissionButton.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
startMissionButton.removeEventListener(MouseEvent.MOUSE_DOWN, startLevel);
briefScreenKeyboardInputManager.stopListeningForInput();
}
private function buttonRollOver(_arg1:MouseEvent):void{
MovieClip(_arg1.target).gotoAndStop("over");
game.getController().getSoundManager().playMenuButtonRollOverSound();
}
public function cleanUp():void{
removeAllListeners();
}
public function getBriefNum():uint{
return (briefNum);
}
private function initialize():void{
startMissionButton = MovieClip(getChildByName("startMissionButtonClip"));
startMissionButton.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver, false, 0, true);
startMissionButton.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut, false, 0, true);
startMissionButton.addEventListener(MouseEvent.MOUSE_DOWN, startLevel, false, 0, true);
startMissionButton.buttonMode = true;
startMissionButton.useHandCursor = true;
buttonArray = new Array(1);
buttonArray[START_MISSION_INDEX] = startMissionButton;
currentlyHighlightedButton = START_MISSION_INDEX;
MovieClip(buttonArray[currentlyHighlightedButton]).gotoAndStop("over");
inGameOverlay = new InGameOverlay();
addChild(inGameOverlay);
setChildIndex(startMissionButton, (numChildren - 1));
map = Map(getChildByName("mapInClip"));
briefScreenKeyboardInputManager = new BriefScreenKeyboardInputManager(this);
briefScreenKeyboardInputManager.startListeningForInput();
}
}
}//package screens.briefs
Section 101
//BriefScreen1 (screens.briefs.BriefScreen1)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen1 extends BriefScreen {
public var mapInClip:Map1;
public var startMissionButtonClip:MovieClip;
public function BriefScreen1(_arg1:Game){
super(_arg1, 1);
}
}
}//package screens.briefs
Section 102
//BriefScreen10 (screens.briefs.BriefScreen10)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen10 extends BriefScreen {
public var mapInClip:Map10;
public var startMissionButtonClip:MovieClip;
public function BriefScreen10(_arg1:Game){
super(_arg1, 10);
}
}
}//package screens.briefs
Section 103
//BriefScreen2 (screens.briefs.BriefScreen2)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen2 extends BriefScreen {
public var mapInClip:Map2;
public var startMissionButtonClip:MovieClip;
public function BriefScreen2(_arg1:Game){
super(_arg1, 2);
}
}
}//package screens.briefs
Section 104
//BriefScreen3 (screens.briefs.BriefScreen3)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen3 extends BriefScreen {
public var mapInClip:Map3;
public var startMissionButtonClip:MovieClip;
public function BriefScreen3(_arg1:Game){
super(_arg1, 3);
}
}
}//package screens.briefs
Section 105
//BriefScreen4 (screens.briefs.BriefScreen4)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen4 extends BriefScreen {
public var mapInClip:Map4;
public var startMissionButtonClip:MovieClip;
public function BriefScreen4(_arg1:Game){
super(_arg1, 4);
}
}
}//package screens.briefs
Section 106
//BriefScreen5 (screens.briefs.BriefScreen5)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen5 extends BriefScreen {
public var mapInClip:Map5;
public var startMissionButtonClip:MovieClip;
public function BriefScreen5(_arg1:Game){
super(_arg1, 5);
}
}
}//package screens.briefs
Section 107
//BriefScreen6 (screens.briefs.BriefScreen6)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen6 extends BriefScreen {
public var mapInClip:Map6;
public var startMissionButtonClip:MovieClip;
public function BriefScreen6(_arg1:Game){
super(_arg1, 6);
}
}
}//package screens.briefs
Section 108
//BriefScreen7 (screens.briefs.BriefScreen7)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen7 extends BriefScreen {
public var mapInClip:Map7;
public var startMissionButtonClip:MovieClip;
public function BriefScreen7(_arg1:Game){
super(_arg1, 7);
}
}
}//package screens.briefs
Section 109
//BriefScreen8 (screens.briefs.BriefScreen8)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen8 extends BriefScreen {
public var mapInClip:Map8;
public var startMissionButtonClip:MovieClip;
public function BriefScreen8(_arg1:Game){
super(_arg1, 8);
}
}
}//package screens.briefs
Section 110
//BriefScreen9 (screens.briefs.BriefScreen9)
package screens.briefs {
import flash.display.*;
import maps.*;
public class BriefScreen9 extends BriefScreen {
public var mapInClip:Map9;
public var startMissionButtonClip:MovieClip;
public function BriefScreen9(_arg1:Game){
super(_arg1, 9);
}
}
}//package screens.briefs
Section 111
//FinalGameOverScreen (screens.FinalGameOverScreen)
package screens {
import flash.events.*;
import flash.display.*;
import ui.*;
import utils.*;
import managers.keyboardinput.*;
import flash.text.*;
public class FinalGameOverScreen extends GameOverScreenSloppySuperClass {
private var playAgainButton:MovieClip;
public var moreGames:SimpleButton;
private var finalGameOverScreenKeyboardInputManager:FinalGameOverScreenKeyboardInputManager;
public var playAgainButtonInClip:MovieClip;
public var scoreTextInClip:TextField;
private var inGameOverlay:InGameOverlay;
private var scoreText:TextField;
public function FinalGameOverScreen(_arg1:Game){
super(_arg1);
initialize();
}
private function rollOut(_arg1:MouseEvent):void{
MovieClip(_arg1.target).gotoAndStop("up");
}
public function visitRZ(_arg1:MouseEvent):void{
game.getController().ot.endPlateClick();
}
public function playAgainSelected(_arg1:MouseEvent=null):void{
game.getController().getSoundManager().playMenuButtonClickSound();
game.startNewGame();
}
private function removeAllListeners():void{
finalGameOverScreenKeyboardInputManager.stopListeningForInput();
playAgainButton.removeEventListener(MouseEvent.ROLL_OVER, rollOver);
playAgainButton.removeEventListener(MouseEvent.ROLL_OUT, rollOut);
playAgainButton.removeEventListener(MouseEvent.CLICK, playAgainSelected);
}
override public function cleanUp():void{
removeAllListeners();
game.getController().removeNRZDialogue();
}
private function initialize():void{
scoreText = TextField(getChildByName("scoreTextInClip"));
playAgainButton = MovieClip(getChildByName("playAgainButtonInClip"));
playAgainButton.buttonMode = true;
playAgainButton.useHandCursor = true;
playAgainButton.addEventListener(MouseEvent.ROLL_OVER, rollOver, false, 0, true);
playAgainButton.addEventListener(MouseEvent.ROLL_OUT, rollOut, false, 0, true);
playAgainButton.addEventListener(MouseEvent.CLICK, playAgainSelected, false, 0, true);
moreGames.addEventListener(MouseEvent.CLICK, visitRZ, false, 0, true);
inGameOverlay = new InGameOverlay();
addChild(inGameOverlay);
setChildIndex(playAgainButton, (numChildren - 1));
setChildIndex(moreGames, (numChildren - 1));
finalGameOverScreenKeyboardInputManager = new FinalGameOverScreenKeyboardInputManager(this);
finalGameOverScreenKeyboardInputManager.startListeningForInput();
}
private function rollOver(_arg1:MouseEvent):void{
MovieClip(_arg1.target).gotoAndStop("over");
}
override public function setScore(_arg1:uint):void{
if (_arg1 < 0){
_arg1 = 0;
};
scoreText.text = Misc.commaFormatIntOrUint(_arg1);
}
}
}//package screens
Section 112
//GameOverScreen (screens.GameOverScreen)
package screens {
import flash.events.*;
import flash.display.*;
import ui.*;
import utils.*;
import managers.keyboardinput.*;
import flash.text.*;
public class GameOverScreen extends GameOverScreenSloppySuperClass {
private var playAgainButton:MovieClip;
public var moreGames:SimpleButton;
public var playAgainButtonInClip:MovieClip;
public var scoreTextInClip:TextField;
private var inGameOverlay:InGameOverlay;
private var gameOverScreenKeyboardInputManager:GameOverScreenKeyboardInputManager;
private var scoreText:TextField;
public function GameOverScreen(_arg1:Game){
super(_arg1);
initialize();
}
private function rollOut(_arg1:MouseEvent):void{
MovieClip(_arg1.target).gotoAndStop("up");
}
public function visitRZ(_arg1:MouseEvent):void{
game.getController().ot.endPlateClick();
}
override public function cleanUp():void{
removeAllListeners();
}
private function removeAllListeners():void{
gameOverScreenKeyboardInputManager.stopListeningForInput();
playAgainButton.removeEventListener(MouseEvent.ROLL_OVER, rollOver);
playAgainButton.removeEventListener(MouseEvent.ROLL_OUT, rollOut);
playAgainButton.removeEventListener(MouseEvent.CLICK, playAgainSelected);
}
public function playAgainSelected(_arg1:MouseEvent=null):void{
game.getController().getSoundManager().playMenuButtonClickSound();
game.startNewGame();
}
private function initialize():void{
scoreText = TextField(getChildByName("scoreTextInClip"));
playAgainButton = MovieClip(getChildByName("playAgainButtonInClip"));
playAgainButton.buttonMode = true;
playAgainButton.useHandCursor = true;
playAgainButton.addEventListener(MouseEvent.ROLL_OVER, rollOver, false, 0, true);
playAgainButton.addEventListener(MouseEvent.ROLL_OUT, rollOut, false, 0, true);
playAgainButton.addEventListener(MouseEvent.CLICK, playAgainSelected, false, 0, true);
moreGames.addEventListener(MouseEvent.CLICK, visitRZ, false, 0, true);
inGameOverlay = new InGameOverlay();
addChild(inGameOverlay);
setChildIndex(playAgainButton, (numChildren - 1));
setChildIndex(moreGames, (numChildren - 1));
gameOverScreenKeyboardInputManager = new GameOverScreenKeyboardInputManager(this);
gameOverScreenKeyboardInputManager.startListeningForInput();
}
private function rollOver(_arg1:MouseEvent):void{
MovieClip(_arg1.target).gotoAndStop("over");
}
override public function setScore(_arg1:uint):void{
if (_arg1 < 0){
_arg1 = 0;
};
scoreText.text = Misc.commaFormatIntOrUint(_arg1);
}
}
}//package screens
Section 113
//GameOverScreenSloppySuperClass (screens.GameOverScreenSloppySuperClass)
package screens {
import flash.display.*;
public class GameOverScreenSloppySuperClass extends MovieClip {
protected var game:Game;
public function GameOverScreenSloppySuperClass(_arg1:Game){
this.game = _arg1;
}
public function setScore(_arg1:uint):void{
}
public function cleanUp():void{
}
}
}//package screens
Section 114
//InstructionsScreen (screens.InstructionsScreen)
package screens {
import flash.events.*;
import flash.display.*;
import ui.*;
import managers.keyboardinput.*;
public class InstructionsScreen extends MovieClip {
private var playButton:MovieClip;
private var buttonArray:Array;
private var inGameOverlay:InGameOverlay;
private var instructionsScreenKeyboardInputManager:InstructionsScreenKeyboardInputManager;
private var controller:Controller;
public var playButtonClip:MovieClip;
private var currentlyHighlightedButton:uint;
private static const PLAY_INDEX:uint = 0;
public function InstructionsScreen(_arg1:Controller){
this.controller = _arg1;
playButton = MovieClip(getChildByName("playButtonClip"));
playButton.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver, false, 0, true);
playButton.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut, false, 0, true);
playButton.addEventListener(MouseEvent.MOUSE_DOWN, playButtonSelected, false, 0, true);
playButton.buttonMode = true;
playButton.useHandCursor = true;
buttonArray = new Array(1);
buttonArray[PLAY_INDEX] = playButton;
currentlyHighlightedButton = PLAY_INDEX;
MovieClip(buttonArray[currentlyHighlightedButton]).gotoAndStop("over");
inGameOverlay = new InGameOverlay();
addChild(inGameOverlay);
setChildIndex(playButton, (numChildren - 1));
instructionsScreenKeyboardInputManager = new InstructionsScreenKeyboardInputManager(this);
instructionsScreenKeyboardInputManager.startListeningForInput();
}
public function playButtonSelected(_arg1:MouseEvent=null):void{
controller.getSoundManager().playMenuButtonClickSound();
controller.transitionFromInstructionsScreenToGame();
}
public function removeAllListeners():void{
instructionsScreenKeyboardInputManager.stopListeningForInput();
playButton.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
playButton.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
playButton.removeEventListener(MouseEvent.MOUSE_DOWN, playButtonSelected);
}
private function buttonRollOver(_arg1:MouseEvent):void{
MovieClip(_arg1.target).gotoAndStop("over");
controller.getSoundManager().playMenuButtonRollOverSound();
}
private function buttonRollOut(_arg1:MouseEvent):void{
if (MovieClip(_arg1.target) != MovieClip(buttonArray[currentlyHighlightedButton])){
MovieClip(_arg1.target).gotoAndStop("up");
};
}
}
}//package screens
Section 115
//IntroScreen (screens.IntroScreen)
package screens {
import flash.events.*;
import flash.display.*;
import ui.*;
import managers.keyboardinput.*;
public class IntroScreen extends MovieClip {
private var buttonArray:Array;
private var keyboardInputManager:IntroScreenKeyboardInputManager;
private var playButton:MovieClip;
private var inGameOverlay:InGameOverlay;
private var controller:Controller;
public var instructionsButtonClip:MovieClip;
public var playButtonClip:MovieClip;
private var instructionsButton:MovieClip;
public var moreGames:SimpleButton;
private var currentlyHighlightedButton:uint;
private static const INSTRUCTIONS_INDEX:uint = 0;
private static const PLAY_INDEX:uint = 1;
public function IntroScreen(_arg1:Controller){
inGameOverlay = new InGameOverlay();
super();
this.controller = _arg1;
instructionsButton = MovieClip(getChildByName("instructionsButtonClip"));
instructionsButton.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver, false, 0, true);
instructionsButton.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut, false, 0, true);
instructionsButton.addEventListener(MouseEvent.MOUSE_DOWN, instructionsButtonSelected, false, 0, true);
instructionsButton.buttonMode = true;
instructionsButton.useHandCursor = true;
moreGames.addEventListener(MouseEvent.CLICK, visitRZ, false, 0, true);
playButton = MovieClip(getChildByName("playButtonClip"));
playButton.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver, false, 0, true);
playButton.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut, false, 0, true);
playButton.addEventListener(MouseEvent.MOUSE_DOWN, playButtonSelected, false, 0, true);
playButton.buttonMode = true;
playButton.useHandCursor = true;
buttonArray = new Array(2);
buttonArray[INSTRUCTIONS_INDEX] = instructionsButton;
buttonArray[PLAY_INDEX] = playButton;
currentlyHighlightedButton = PLAY_INDEX;
MovieClip(buttonArray[currentlyHighlightedButton]).gotoAndStop("over");
inGameOverlay = new InGameOverlay();
addChild(inGameOverlay);
setChildIndex(instructionsButton, (numChildren - 1));
setChildIndex(playButton, (numChildren - 1));
setChildIndex(moreGames, (numChildren - 1));
keyboardInputManager = new IntroScreenKeyboardInputManager(this);
keyboardInputManager.startListeningForInput();
_arg1.getSoundManager().playMenuMusic();
}
public function playButtonSelected(_arg1:MouseEvent):void{
controller.getSoundManager().playMenuButtonClickSound();
controller.transitionFromIntroScreenToGame();
}
public function removeAllListeners():void{
keyboardInputManager.stopListeningForInput();
instructionsButton.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
instructionsButton.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
instructionsButton.removeEventListener(MouseEvent.MOUSE_DOWN, instructionsButtonSelected);
playButton.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
playButton.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
playButton.removeEventListener(MouseEvent.MOUSE_DOWN, playButtonSelected);
}
private function buttonRollOver(_arg1:MouseEvent):void{
MovieClip(_arg1.target).gotoAndStop("over");
controller.getSoundManager().playMenuButtonRollOverSound();
}
private function buttonRollOut(_arg1:MouseEvent):void{
if (MovieClip(_arg1.target) != MovieClip(buttonArray[currentlyHighlightedButton])){
MovieClip(_arg1.target).gotoAndStop("up");
};
}
public function selectHighlightedButton():void{
if (currentlyHighlightedButton == PLAY_INDEX){
playButtonSelected(null);
} else {
if (currentlyHighlightedButton == INSTRUCTIONS_INDEX){
instructionsButtonSelected(null);
};
};
}
public function visitRZ(_arg1:MouseEvent):void{
controller.ot.endPlateClick();
}
public function toggleHighlightedButton():void{
MovieClip(buttonArray[currentlyHighlightedButton]).gotoAndStop("out");
currentlyHighlightedButton++;
if (currentlyHighlightedButton > (buttonArray.length - 1)){
currentlyHighlightedButton = 0;
};
MovieClip(buttonArray[currentlyHighlightedButton]).gotoAndStop("over");
controller.getSoundManager().playMenuButtonRollOverSound();
}
private function instructionsButtonSelected(_arg1:MouseEvent):void{
controller.getSoundManager().playMenuButtonClickSound();
controller.transitionFromIntroScreenToInstructionsScreen();
}
}
}//package screens
Section 116
//LevelSummaryScreen (screens.LevelSummaryScreen)
package screens {
import flash.events.*;
import flash.display.*;
import levels.*;
import characters.*;
import flash.utils.*;
import managers.keyboardinput.*;
import flash.text.*;
public class LevelSummaryScreen extends MovieClip {
public var rusherHead_4:MovieClip;
private var level:Level;
private var totalNumRushers:uint;
private var gameballsReturned:uint;
public var playAgainButtonInClip:MovieClip;
private var rusherHeads:Array;
private var totalNumGameballs:uint;
private var gameballHeads:Array;
public var gameballHead_10:MovieClip;
public var gameballHead_11:MovieClip;
public var gameballHead_12:MovieClip;
private var autoAdvanceTimer:Timer;
private var levelSummaryScreenKeyboardInputManager:LevelSummaryScreenKeyboardInputManager;
public var playOnButtonInClip:MovieClip;
private var currentlyHighlightedButton:uint;
private var playOnButton:MovieClip;
private var buttonArray:Array;
public var rushersTextInClip:TextField;
private var rushersText:TextField;
public var gameballHead_1:MovieClip;
public var gameballHead_2:MovieClip;
public var gameballHead_3:MovieClip;
public var gameballHead_4:MovieClip;
public var gameballHead_5:MovieClip;
public var gameballHead_6:MovieClip;
public var gameballHead_7:MovieClip;
public var gameballHead_8:MovieClip;
public var gameballHead_9:MovieClip;
private var playAgainButton:MovieClip;
private var gameballsText:TextField;
public var gameballsTextInClip:TextField;
public var rusherHead_1:MovieClip;
public var rusherHead_2:MovieClip;
public var rusherHead_3:MovieClip;
private var rushersReturned:uint;
public static const TOTAL_NUM_GAMEBALL_HEADS_IN_CLIP:uint = 12;
public static const PLAY_AGAIN_INDEX:uint = 0;
public static const AUTO_ADVANCE_DELAY:uint = 5000;
public static const DEFAULT_Y_OFFSET:int = -164;
public static const TOTAL_NUM_RUSHER_HEADS_IN_CLIP:uint = 4;
public static const PLAY_ON_INDEX:uint = 1;
public function LevelSummaryScreen(_arg1:Level){
addFrameScript(17, frame18, 110, frame111);
this.level = _arg1;
initialInitialize();
}
private function initialInitialize():void{
level.getGame().getController().getSoundManager().stopGameMusic();
level.getGame().getController().getSoundManager().playFanfareSound();
}
private function fadeOutCharactersInSafetyZone():void{
var _local1:String;
var _local2:NonTorCharacter;
var _local3:Array = level.getGameballs();
var _local4:Array = level.getRushers();
for (_local1 in _local3) {
_local2 = NonTorCharacter(_local3[_local1]);
if (_local2.isInSafetyZone()){
_local2.startFadeOut();
};
};
for (_local1 in _local4) {
_local2 = NonTorCharacter(_local4[_local1]);
if (_local2.isInSafetyZone()){
_local2.startFadeOut();
};
};
autoAdvanceTimer = new Timer(AUTO_ADVANCE_DELAY, 1);
autoAdvanceTimer.addEventListener(TimerEvent.TIMER, advanceToNextLevel, false, 0, true);
autoAdvanceTimer.start();
}
function frame111(){
stop();
}
public function initialize():void{
var _local1:uint;
var _local2:MovieClip;
var _local3:MovieClip;
gameballsReturned = level.getNumGameballsReturned();
totalNumGameballs = level.getNumGameballs();
rushersReturned = level.getNumRushersReturned();
totalNumRushers = level.getNumRushers();
gameballHeads = new Array(TOTAL_NUM_GAMEBALL_HEADS_IN_CLIP);
rusherHeads = new Array(TOTAL_NUM_RUSHER_HEADS_IN_CLIP);
_local1 = 0;
while (_local1 < TOTAL_NUM_GAMEBALL_HEADS_IN_CLIP) {
_local2 = MovieClip(getChildByName(("gameballHead_" + (_local1 + 1).toString())));
if (_local1 < totalNumGameballs){
_local2.visible = true;
if (_local1 < gameballsReturned){
_local2.gotoAndStop("filled");
} else {
_local2.gotoAndStop("empty");
};
} else {
_local2.visible = false;
};
gameballHeads[_local1] = _local2;
_local1++;
};
_local1 = 0;
while (_local1 < TOTAL_NUM_RUSHER_HEADS_IN_CLIP) {
_local3 = MovieClip(getChildByName(("rusherHead_" + (_local1 + 1).toString())));
if (_local1 < totalNumRushers){
_local3.visible = true;
if (_local1 < rushersReturned){
_local3.gotoAndStop("filled");
} else {
_local3.gotoAndStop("empty");
};
} else {
_local3.visible = false;
};
rusherHeads[_local1] = _local3;
_local1++;
};
gameballsText = TextField(getChildByName("gameballsTextInClip"));
rushersText = TextField(getChildByName("rushersTextInClip"));
setGameballsText();
setRushersText();
playAgainButton = MovieClip(getChildByName("playAgainButtonInClip"));
playAgainButton.visible = false;
playOnButton = MovieClip(getChildByName("playOnButtonInClip"));
playOnButton.visible = false;
fadeOutCharactersInSafetyZone();
}
private function setRushersText():void{
rushersText.text = ((("Rushers: " + rushersReturned) + "/") + totalNumRushers);
}
private function setGameballsText():void{
gameballsText.text = ((("Gameballs: " + gameballsReturned) + "/") + totalNumGameballs);
}
private function advanceToNextLevel(_arg1:TimerEvent):void{
autoAdvanceTimer.removeEventListener(TimerEvent.TIMER, advanceToNextLevel);
if (autoAdvanceTimer != null){
autoAdvanceTimer.stop();
};
if (level.getLevelNum() == 10){
level.getGame().showGameOverScreen(true);
} else {
level.getGame().advanceToNextLevel();
};
}
public function removeAllListeners():void{
if (levelSummaryScreenKeyboardInputManager != null){
levelSummaryScreenKeyboardInputManager.stopListeningForInput();
};
}
public function selectHighlightedButton():void{
}
function frame18(){
initialize();
}
public function toggleHighlightedButton():void{
MovieClip(buttonArray[currentlyHighlightedButton]).gotoAndStop("out");
currentlyHighlightedButton++;
if (currentlyHighlightedButton > (buttonArray.length - 1)){
currentlyHighlightedButton = 0;
};
MovieClip(buttonArray[currentlyHighlightedButton]).gotoAndStop("over");
level.getGame().getController().getSoundManager().playMenuButtonRollOverSound();
}
}
}//package screens
Section 117
//CharacterAppearsSound (sounds.CharacterAppearsSound)
package sounds {
import flash.media.*;
public class CharacterAppearsSound extends Sound {
}
}//package sounds
Section 118
//CharacterPickupSound (sounds.CharacterPickupSound)
package sounds {
import flash.media.*;
public class CharacterPickupSound extends Sound {
}
}//package sounds
Section 119
//CollectCharactersSound (sounds.CollectCharactersSound)
package sounds {
import flash.media.*;
public class CollectCharactersSound extends Sound {
}
}//package sounds
Section 120
//DamageSound (sounds.DamageSound)
package sounds {
import flash.media.*;
public class DamageSound extends Sound {
}
}//package sounds
Section 121
//DangerSound (sounds.DangerSound)
package sounds {
import flash.media.*;
public class DangerSound extends Sound {
}
}//package sounds
Section 122
//DropOffInSafetyZoneSound (sounds.DropOffInSafetyZoneSound)
package sounds {
import flash.media.*;
public class DropOffInSafetyZoneSound extends Sound {
}
}//package sounds
Section 123
//FanfareSound (sounds.FanfareSound)
package sounds {
import flash.media.*;
public class FanfareSound extends Sound {
}
}//package sounds
Section 124
//GameMusic (sounds.GameMusic)
package sounds {
import flash.media.*;
public class GameMusic extends Sound {
}
}//package sounds
Section 125
//GameOverSound (sounds.GameOverSound)
package sounds {
import flash.media.*;
public class GameOverSound extends Sound {
}
}//package sounds
Section 126
//InvisibilityPowerupPickupSound (sounds.InvisibilityPowerupPickupSound)
package sounds {
import flash.media.*;
public class InvisibilityPowerupPickupSound extends Sound {
}
}//package sounds
Section 127
//MenuButtonClickSound (sounds.MenuButtonClickSound)
package sounds {
import flash.media.*;
public class MenuButtonClickSound extends Sound {
}
}//package sounds
Section 128
//MenuButtonRollOverSound (sounds.MenuButtonRollOverSound)
package sounds {
import flash.media.*;
public class MenuButtonRollOverSound extends Sound {
}
}//package sounds
Section 129
//MenuMusic (sounds.MenuMusic)
package sounds {
import flash.media.*;
public class MenuMusic extends Sound {
}
}//package sounds
Section 130
//PowerupPickupSound (sounds.PowerupPickupSound)
package sounds {
import flash.media.*;
public class PowerupPickupSound extends Sound {
}
}//package sounds
Section 131
//SmartSoundObject (sounds.SmartSoundObject)
package sounds {
import flash.events.*;
import flash.media.*;
public class SmartSoundObject {
private var loops:int;
private var sound:Sound;
private var volume:Number;
private var isPlaying:Boolean;
private var startTime:Number;
private var position:Number;
private var soundTransform:SoundTransform;
private var soundChannel:SoundChannel;
public static const MASTER_VOLUME:Number = 1;
public function SmartSoundObject(_arg1:Sound, _arg2:Number, _arg3:Boolean, _arg4:Number=0){
this.sound = _arg1;
this.volume = _arg2;
if (_arg3){
this.loops = 99999999;
} else {
this.loops = 0;
};
this.startTime = _arg4;
initialize();
}
private function stopListeningForComplete():void{
if (soundChannel != null){
soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete);
};
}
private function initialize():void{
isPlaying = false;
resetPosition();
soundTransform = new SoundTransform();
soundTransform.volume = (volume * MASTER_VOLUME);
}
private function resetPosition():void{
position = startTime;
}
public function smartIsPlaying():Boolean{
return (isPlaying);
}
public function smartPlay():void{
soundChannel = sound.play(position, loops, soundTransform);
isPlaying = true;
startListeningForComplete();
}
public function smartStop():void{
if (soundChannel != null){
soundChannel.stop();
isPlaying = false;
stopListeningForComplete();
};
}
public function smartPause():void{
position = soundChannel.position;
soundChannel.stop();
isPlaying = false;
stopListeningForComplete();
}
private function soundComplete(_arg1:Event):void{
isPlaying = false;
stopListeningForComplete();
}
private function startListeningForComplete():void{
if (soundChannel != null){
soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true);
};
}
}
}//package sounds
Section 132
//StaminaPowerupPickupSound (sounds.StaminaPowerupPickupSound)
package sounds {
import flash.media.*;
public class StaminaPowerupPickupSound extends Sound {
}
}//package sounds
Section 133
//TeleportPowerupPickupSound (sounds.TeleportPowerupPickupSound)
package sounds {
import flash.media.*;
public class TeleportPowerupPickupSound extends Sound {
}
}//package sounds
Section 134
//TimeFreezePowerupPickupSound (sounds.TimeFreezePowerupPickupSound)
package sounds {
import flash.media.*;
public class TimeFreezePowerupPickupSound extends Sound {
}
}//package sounds
Section 135
//TransportCarrierFlyInSound (sounds.TransportCarrierFlyInSound)
package sounds {
import flash.media.*;
public class TransportCarrierFlyInSound extends Sound {
}
}//package sounds
Section 136
//TransportCarrierTakeOffSound (sounds.TransportCarrierTakeOffSound)
package sounds {
import flash.media.*;
public dynamic class TransportCarrierTakeOffSound extends Sound {
}
}//package sounds
Section 137
//UrgencyBeepSound (sounds.UrgencyBeepSound)
package sounds {
import flash.media.*;
public class UrgencyBeepSound extends Sound {
}
}//package sounds
Section 138
//WhistleSound (sounds.WhistleSound)
package sounds {
import flash.media.*;
public class WhistleSound extends Sound {
}
}//package sounds
Section 139
//BorderRocks_Bottom1 (structures.alwaysontop.BorderRocks_Bottom1)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom1 extends MovieClip {
}
}//package structures.alwaysontop
Section 140
//BorderRocks_Bottom10 (structures.alwaysontop.BorderRocks_Bottom10)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom10 extends MovieClip {
}
}//package structures.alwaysontop
Section 141
//BorderRocks_Bottom2 (structures.alwaysontop.BorderRocks_Bottom2)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom2 extends MovieClip {
}
}//package structures.alwaysontop
Section 142
//BorderRocks_Bottom3 (structures.alwaysontop.BorderRocks_Bottom3)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom3 extends MovieClip {
}
}//package structures.alwaysontop
Section 143
//BorderRocks_Bottom4 (structures.alwaysontop.BorderRocks_Bottom4)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom4 extends MovieClip {
}
}//package structures.alwaysontop
Section 144
//BorderRocks_Bottom5 (structures.alwaysontop.BorderRocks_Bottom5)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom5 extends MovieClip {
}
}//package structures.alwaysontop
Section 145
//BorderRocks_Bottom6 (structures.alwaysontop.BorderRocks_Bottom6)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom6 extends MovieClip {
}
}//package structures.alwaysontop
Section 146
//BorderRocks_Bottom7 (structures.alwaysontop.BorderRocks_Bottom7)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom7 extends MovieClip {
}
}//package structures.alwaysontop
Section 147
//BorderRocks_Bottom8 (structures.alwaysontop.BorderRocks_Bottom8)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom8 extends MovieClip {
}
}//package structures.alwaysontop
Section 148
//BorderRocks_Bottom9 (structures.alwaysontop.BorderRocks_Bottom9)
package structures.alwaysontop {
import flash.display.*;
public class BorderRocks_Bottom9 extends MovieClip {
}
}//package structures.alwaysontop
Section 149
//BuildingO_Overlay (structures.BuildingO_Overlay)
package structures {
import flash.display.*;
public dynamic class BuildingO_Overlay extends MovieClip {
}
}//package structures
Section 150
//CollidableBlock (structures.CollidableBlock)
package structures {
import flash.display.*;
import levels.*;
import flash.geom.*;
public class CollidableBlock {
private var level:Level;
private var active:Boolean;
private var blockTop:Number;
private var block:MovieClip;
private var blockBottom:Number;
private var blockRight:Number;
private var blockLeft:Number;
private var centerPoint:Point;
public static const TOP_BLOCK_BUFFER:Number = 3;
public static const RIGHT_BLOCK_BUFFER:Number = 11;
public static const BOTTOM_BLOCK_BUFFER:Number = 5;
public static const LEFT_BLOCK_BUFFER:Number = 11;
public function CollidableBlock(_arg1:Level, _arg2:MovieClip){
this.level = _arg1;
this.block = _arg2;
initialize();
}
public function deactivate():void{
active = false;
block.visible = false;
}
public function getBlockRight():Number{
return (blockRight);
}
public function getCenterPoint():Point{
return (centerPoint);
}
public function getBlockLeft():Number{
return (blockLeft);
}
public function getBlock():MovieClip{
return (block);
}
private function initialize():void{
active = false;
blockTop = (block.y - TOP_BLOCK_BUFFER);
blockLeft = (block.x - LEFT_BLOCK_BUFFER);
blockRight = ((block.x + block.width) + RIGHT_BLOCK_BUFFER);
blockBottom = ((block.y + block.height) + BOTTOM_BLOCK_BUFFER);
centerPoint = new Point((block.x + (block.width / 2)), (block.y + (block.height / 2)));
}
public function getBlockBottom():Number{
return (blockBottom);
}
public function isActive():Boolean{
return (active);
}
public function activate():void{
active = true;
block.visible = true;
}
public function getBlockTop():Number{
return (blockTop);
}
}
}//package structures
Section 151
//DepthSensitiveObject (structures.DepthSensitiveObject)
package structures {
import flash.display.*;
import levels.*;
import flash.geom.*;
public class DepthSensitiveObject {
private var level:Level;
private var active:Boolean;
public var objectBaseY:Number;
private var centerPoint:Point;
private var object:MovieClip;
public function DepthSensitiveObject(_arg1:Level, _arg2:MovieClip){
this.level = _arg1;
this.object = _arg2;
initialize();
}
public function activate():void{
active = true;
object.visible = true;
}
public function getCenterPoint():Point{
return (centerPoint);
}
private function initialize():void{
centerPoint = new Point((object.x + (object.width / 2)), (object.y + (object.height / 2)));
objectBaseY = (object.y + object.height);
active = false;
}
public function deactivate():void{
active = false;
object.visible = false;
}
public function getObject():MovieClip{
return (object);
}
public function isActive():Boolean{
return (active);
}
public function getObjectBaseY():Number{
return (objectBaseY);
}
}
}//package structures
Section 152
//Freeway01 (structures.Freeway01)
package structures {
import flash.display.*;
public dynamic class Freeway01 extends MovieClip {
}
}//package structures
Section 153
//Freeway01Flipped (structures.Freeway01Flipped)
package structures {
import flash.display.*;
public dynamic class Freeway01Flipped extends MovieClip {
}
}//package structures
Section 154
//HidingSpot (structures.HidingSpot)
package structures {
import levels.*;
import flash.geom.*;
public class HidingSpot {
private var spot:Point;
private var level:Level;
private var id:uint;
private var entrance:Point;
private var occupied:Boolean;
public function HidingSpot(_arg1:Level, _arg2:uint):void{
this.level = _arg1;
this.id = _arg2;
initialize();
}
public function setOccupied(_arg1:Boolean):void{
this.occupied = _arg1;
}
public function setSpot(_arg1:Point):void{
this.spot = _arg1;
}
public function getEntrance():Point{
return (entrance);
}
public function isOccupied():Boolean{
return (occupied);
}
private function initialize():void{
setOccupied(false);
}
public function getId():uint{
return (id);
}
public function getSpot():Point{
return (spot);
}
public function setEntrance(_arg1:Point):void{
this.entrance = _arg1;
}
}
}//package structures
Section 155
//SafetyZone (structures.SafetyZone)
package structures {
import flash.display.*;
import levels.*;
import flash.geom.*;
import utils.*;
public class SafetyZone extends MovieClip {
private var level:Level;
private var zoneTop:Number;
private var zone:MovieClip;
private var zoneRight:Number;
private var zoneLeft:Number;
private var zoneBottom:Number;
private var centerPoint:Point;
public static const SAFETY_MARGIN:Number = 140;
public static const INNER_MARGIN:Number = 80;
public function SafetyZone(_arg1:Level, _arg2:MovieClip){
this.level = _arg1;
this.zone = _arg2;
initialize();
}
public function getZoneLeft():Number{
return (zoneLeft);
}
public function getZone():MovieClip{
return (zone);
}
public function getRandomPointInsideZone():Point{
return (new Point(Misc.getRandomNumber((zone.x + INNER_MARGIN), ((zone.x + zone.width) - INNER_MARGIN)), Misc.getRandomNumber((zone.y + INNER_MARGIN), ((zone.y + zone.height) - INNER_MARGIN))));
}
public function getCenterPoint():Point{
return (centerPoint);
}
public function getZoneTop():Number{
return (zoneTop);
}
public function getZoneBottom():Number{
return (zoneBottom);
}
public function getZoneRight():Number{
return (zoneRight);
}
private function initialize():void{
centerPoint = new Point((zone.x + (zone.width / 2)), (zone.y + (zone.height / 2)));
zoneTop = (zone.y - SAFETY_MARGIN);
zoneBottom = ((zone.y + zone.height) + SAFETY_MARGIN);
zoneLeft = (zone.x - SAFETY_MARGIN);
zoneRight = ((zone.x + zone.width) + SAFETY_MARGIN);
}
}
}//package structures
Section 156
//GameballSenseArrow (ui.GameballSenseArrow)
package ui {
import flash.events.*;
import flash.display.*;
import characters.*;
public class GameballSenseArrow extends MovieClip {
private var tor:Tor;
public static const ADDITIONAL_Y_OFFSET_FROM_TOR_WHEN_TRAVELLING_SOUTH:int = 6;
public static const FADE_IN_INCREMENT:Number = 0.2;
public static const FADE_OUT_INCREMENT:Number = 0.2;
public static const ADDITIONAL_Y_OFFSET_FROM_TOR_WHEN_TRAVELLING_NORTH:int = -2;
public static const Y_OFFSET_FROM_TOR:int = 16;
public function GameballSenseArrow(_arg1:Tor){
this.tor = _arg1;
initialize();
}
private function initialize():void{
visible = false;
alpha = 0.8;
addEventListener(Event.ENTER_FRAME, stayWithTor, false, 0, true);
}
public function fadeIn():void{
visible = true;
}
public function fadeOut():void{
visible = false;
}
public function cleanUp():void{
removeEventListener(Event.ENTER_FRAME, stayWithTor);
}
private function stayWithTor(_arg1:Event):void{
x = tor.x;
y = (tor.y + Y_OFFSET_FROM_TOR);
}
public function setRotation(_arg1:Number):void{
rotation = _arg1;
}
}
}//package ui
Section 157
//GameballsRemainingBubble (ui.GameballsRemainingBubble)
package ui {
import flash.events.*;
import flash.display.*;
import characters.*;
import flash.text.*;
public class GameballsRemainingBubble extends MovieClip {
private var numRemaining:uint;
public var numRemainingTextFieldInClip:TextField;
private var framesDisplayedCount:uint;
private var tor:Tor;
private var numRemainingTextField:TextField;
public static const FRAMES_TO_DISPLAY_BUBBLE:uint = 44;
public static const Y_POSITION_RELATIVE_TO_TOR:Number = -140;
public static const X_POSITION_RELATIVE_TO_TOR:Number = 10;
public function GameballsRemainingBubble(_arg1:Tor, _arg2:uint):void{
this.tor = _arg1;
this.numRemaining = _arg2;
initialize();
}
private function displayNumRemaining():void{
framesDisplayedCount = 0;
numRemainingTextField.text = String(numRemaining);
}
public function cleanUp():void{
removeEventListener(Event.ENTER_FRAME, updateDisplayCount);
}
private function updateDisplayCount(_arg1:Event):void{
if (framesDisplayedCount++ > FRAMES_TO_DISPLAY_BUBBLE){
tor.removeGameballsRemainingBubble();
};
}
public function updateNumRemaining(_arg1:uint):void{
this.numRemaining = _arg1;
displayNumRemaining();
}
private function initialize():void{
x = X_POSITION_RELATIVE_TO_TOR;
y = Y_POSITION_RELATIVE_TO_TOR;
numRemainingTextField = TextField(getChildByName("numRemainingTextFieldInClip"));
displayNumRemaining();
addEventListener(Event.ENTER_FRAME, updateDisplayCount, false, 0, true);
}
}
}//package ui
Section 158
//InGameOverlay (ui.InGameOverlay)
package ui {
import flash.display.*;
public class InGameOverlay extends MovieClip {
public function InGameOverlay(){
initialize();
}
private function initialize():void{
}
}
}//package ui
Section 159
//StatusDisplay (ui.StatusDisplay)
package ui {
import flash.display.*;
import levels.*;
import characters.*;
import flash.text.*;
public class StatusDisplay extends MovieClip {
public var starInClip_1:MovieClip;
private var level:Level;
public var rushersTextInClip:TextField;
private var rushersText:TextField;
public var gameballsTextInClip:TextField;
private var gameballsText:TextField;
private var staminaStars:Array;
public var starInClip_2:MovieClip;
public var starInClip_3:MovieClip;
public var starInClip_4:MovieClip;
public static const STATUS_DISPLAY_X:Number = 4;
public static const STATUS_DISPLAY_Y:Number = 396;
public function StatusDisplay(_arg1:Level){
this.level = _arg1;
initialize();
}
public function updateRushers(_arg1:uint):void{
rushersText.text = ((_arg1 + "/") + level.getNumRushers());
}
public function moveToTop():void{
Controller.ROOT.setChildIndex(this, (Controller.ROOT.numChildren - 1));
}
public function updateStaminaQuarters(_arg1:uint):void{
var _local4:uint;
var _local5:uint;
if (_arg1 > (staminaStars.length * 4)){
_arg1 = (staminaStars.length * 4);
};
var _local2:uint = Math.floor((_arg1 / 4));
var _local3:uint = (_arg1 % 4);
_local4 = 0;
while (_local4 < _local2) {
MovieClip(staminaStars[_local4]).gotoAndStop("filled4of4");
_local4++;
};
if (_local3 > 0){
MovieClip(staminaStars[_local2]).gotoAndStop((("filled" + _local3) + "of4"));
};
_local5 = ((staminaStars.length - _local2) - Math.ceil((_local3 / 4)));
_local4 = (staminaStars.length - _local5);
while (_local4 < staminaStars.length) {
MovieClip(staminaStars[_local4]).gotoAndStop("filled0of4");
_local4++;
};
}
private function initialize():void{
staminaStars = new Array(4);
var _local1:uint;
while (_local1 < 4) {
staminaStars[_local1] = MovieClip(getChildByName(("starInClip_" + (_local1 + 1))));
_local1++;
};
gameballsText = TextField(getChildByName("gameballsTextInClip"));
rushersText = TextField(getChildByName("rushersTextInClip"));
updateStaminaQuarters(Tor.STARTING_STAMINA_QUARTERS);
updateGameballs(0);
updateRushers(0);
x = STATUS_DISPLAY_X;
y = STATUS_DISPLAY_Y;
Controller.ROOT.addChild(this);
}
public function updateGameballs(_arg1:uint):void{
gameballsText.text = ((_arg1 + "/") + level.getNumGameballs());
}
}
}//package ui
Section 160
//TimeDisplay (ui.TimeDisplay)
package ui {
import flash.display.*;
import managers.*;
import flash.text.*;
public class TimeDisplay extends MovieClip {
private var timeManager:TimeManager;
private var timeText:TextField;
public var timeTextInClip:TextField;
public function TimeDisplay(_arg1:TimeManager){
this.timeManager = _arg1;
initialize();
}
public function setTime(_arg1:int):void{
timeText.text = String(_arg1);
}
private function initialize():void{
timeText = TextField(getChildByName("timeTextInClip"));
timeText.text = "";
}
}
}//package ui
Section 161
//ToggleSoundButton (ui.ToggleSoundButton)
package ui {
import flash.events.*;
import flash.display.*;
public class ToggleSoundButton extends MovieClip {
var soundEnabled:Boolean;
var controller:Controller;
public function ToggleSoundButton(_arg1:Controller){
addFrameScript(0, frame1);
this.controller = _arg1;
initialize();
}
private function initialize():void{
soundEnabled = true;
gotoAndStop("on_up");
buttonMode = true;
useHandCursor = true;
addEventListener(MouseEvent.ROLL_OVER, buttonRollOver, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, buttonRollOut, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, buttonMouseDown, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, buttonMouseUp, false, 0, true);
}
private function buttonMouseDown(_arg1:MouseEvent):void{
if (soundEnabled){
gotoAndStop("on_down");
} else {
gotoAndStop("off_down");
};
controller.getSoundManager().playMenuButtonClickSound();
}
public function moveToTop():void{
Controller.ROOT.setChildIndex(this, (Controller.ROOT.numChildren - 1));
}
private function buttonRollOver(_arg1:MouseEvent):void{
if (soundEnabled){
gotoAndStop("on_over");
} else {
gotoAndStop("off_over");
};
controller.getSoundManager().playMenuButtonRollOverSound();
}
function frame1(){
stop();
}
private function buttonMouseUp(_arg1:MouseEvent):void{
soundEnabled = !(soundEnabled);
if (soundEnabled){
gotoAndStop("on_over");
controller.getSoundManager().unmuteAllSounds();
} else {
gotoAndStop("off_over");
controller.getSoundManager().muteAllSounds();
};
}
private function buttonRollOut(_arg1:MouseEvent):void{
if (soundEnabled){
gotoAndStop("on_up");
} else {
gotoAndStop("off_up");
};
}
}
}//package ui
Section 162
//UrgencyBorder (ui.UrgencyBorder)
package ui {
import flash.events.*;
import flash.display.*;
import levels.*;
public class UrgencyBorder extends MovieClip {
private var level:Level;
private var urgencyEnabled:Boolean;
public function UrgencyBorder(_arg1:Level){
this.level = _arg1;
initialize();
}
private function playBeep():void{
level.getGame().getController().getSoundManager().playUrgencyBeep();
}
public function disable():void{
visible = false;
removeEventListener(Event.ENTER_FRAME, enterFrame);
stop();
urgencyEnabled = false;
}
private function initialize():void{
disable();
}
public function enable():void{
if (!urgencyEnabled){
visible = true;
addEventListener(Event.ENTER_FRAME, enterFrame, false, 0, true);
gotoAndPlay(1);
urgencyEnabled = true;
};
}
private function enterFrame(_arg1:Event):void{
if (currentFrame == 1){
playBeep();
};
}
}
}//package ui
Section 163
//Misc (utils.Misc)
package utils {
import managers.*;
import flash.geom.*;
import flash.utils.*;
public class Misc {
public static function commaFormatIntOrUint(_arg1:int):String{
var _local2:Boolean;
if (_arg1 < 0){
_local2 = true;
_arg1 = (_arg1 * -1);
};
var _local3:Number = _arg1.toString().length;
var _local4 = "";
var _local5:uint;
while (_local5 < _local3) {
if ((((((_local3 - _local5) % 3) == 0)) && (!((_local5 == 0))))){
_local4 = (_local4 + ",");
};
_local4 = (_local4 + _arg1.toString().charAt(_local5));
_local5++;
};
if (_local2){
_local4 = ("-" + _local4);
};
return (_local4);
}
public static function getRandomNumber(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
if (_arg1 > _arg2){
_local3 = _arg1;
_arg1 = _arg2;
_arg2 = _local3;
};
return (((Math.random() * (_arg2 - _arg1)) + _arg1));
}
public static function convertDegreesToRadians(_arg1:Number):Number{
return (((_arg1 * Math.PI) / 180));
}
public static function objectsBytesAreEquivalent(_arg1:Object, _arg2:Object):Boolean{
var _local3:ByteArray;
var _local4:ByteArray;
var _local5:uint;
var _local6:int;
if (getQualifiedClassName(_arg1) != getQualifiedClassName(_arg2)){
return (false);
};
_local3 = new ByteArray();
_local3.writeObject(_arg1);
_local4 = new ByteArray();
_local4.writeObject(_arg2);
_local5 = _local3.length;
if (_local3.length == _local4.length){
_local3.position = 0;
_local4.position = 0;
while (_local3.position < _local5) {
_local6 = _local3.readByte();
if (_local6 != _local4.readByte()){
return (false);
};
};
return (true);
};
return (false);
}
public static function removeObjectFromArrayUsingByteCheck(_arg1:Array, _arg2:Object):Array{
var _local3:uint;
while (_local3 < _arg1.length) {
if (objectsBytesAreEquivalent(_arg1[_local3], _arg2)){
_arg1.splice(_local3, 1);
} else {
_local3++;
};
};
return (_arg1);
}
public static function getQuickInaccurateDistanceBetween(_arg1:Point, _arg2:Point):Number{
var _local3:Number = (_arg2.x - _arg1.x);
var _local4:Number = (_arg2.y - _arg1.y);
return ((Math.abs(_local3) + Math.abs(_local4)));
}
public static function getAngleBetween(_arg1:Point, _arg2:Point):Number{
return (Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x)));
}
public static function removeObjectFromArray(_arg1:Array, _arg2:Object):Array{
var _local3:uint;
while (_local3 < _arg1.length) {
if (_arg1[_local3] == _arg2){
_arg1.splice(_local3, 1);
} else {
_local3++;
};
};
return (_arg1);
}
public static function convertRadiansToDegrees(_arg1:Number):Number{
return (((_arg1 * 180) / Math.PI));
}
public static function randomizeArray(_arg1:Array):void{
var _local3:*;
var _local4:*;
var _local2:* = 0;
while (_local2 < _arg1.length) {
_local3 = _arg1[_local2];
_local4 = Math.floor((Math.random() * _arg1.length));
_arg1[_local2] = _arg1[_local4];
_arg1[_local4] = _local3;
_local2++;
};
}
public static function getNormalizedAngleForAngle1BasedOnAngle2(_arg1:Number, _arg2:Number):Number{
if (Math.abs((_arg1 - _arg2)) <= Math.PI){
return (_arg1);
};
if (_arg1 < _arg2){
return ((_arg1 + (Math.PI * 2)));
};
return ((_arg1 - (Math.PI * 2)));
}
public static function getRandomInt(_arg1:int, _arg2:int):int{
return (Math.round(getRandomNumber(_arg1, _arg2)));
}
public static function getAngleBetweenInDegrees(_arg1:Point, _arg2:Point):Number{
return (convertRadiansToDegrees(getAngleBetween(_arg1, _arg2)));
}
public static function getAngleUsingDirection(_arg1:String):Number{
switch (_arg1){
case OrientationManager.E:
return (0);
case OrientationManager.SE:
return ((Math.PI * 0.25));
case OrientationManager.S:
return ((Math.PI * 0.5));
case OrientationManager.SW:
return ((Math.PI * 0.75));
case OrientationManager.W:
return (Math.PI);
case OrientationManager.NW:
return ((Math.PI * 1.25));
case OrientationManager.N:
return ((Math.PI * 1.5));
case OrientationManager.NE:
return ((Math.PI * 1.75));
default:
return (0);
};
}
public static function getEpochTime():Number{
return (new Date().time);
}
public static function getDistanceBetween(_arg1:Point, _arg2:Point):Number{
var _local3:Number = (_arg2.x - _arg1.x);
var _local4:Number = (_arg2.y - _arg1.y);
return (Math.pow(((_local3 * _local3) + (_local4 * _local4)), 0.5));
}
}
}//package utils
Section 164
//Controller (Controller)
package {
import flash.display.*;
import managers.*;
import screens.*;
import ui.*;
import nflrz.omniture.*;
public class Controller extends MovieClip {
public var ot:OmnitureAS3;
private var toggleSoundButton:ToggleSoundButton;
private var instructionsScreen:InstructionsScreen;
private var game:Game;
private var introScreen:IntroScreen;
public static const STAGE_WIDTH:Number = 750;
public static const STAGE_HEIGHT:Number = 400;
public static var ROOT:MovieClip;
public static var soundManager:SoundManager;
public static var STAGE:Stage;
public function Controller(){
initialize();
showIntroScreen();
}
public function submitScoreToNRZ(_arg1:Number):void{
}
private function startGame():void{
ot.startGameClick();
game = new Game(this);
}
public function transitionFromIntroScreenToGame():void{
removeIntroScreen();
startGame();
}
public function transitionFromIntroScreenToInstructionsScreen():void{
removeIntroScreen();
showInstructionsScreen();
toggleSoundButton.moveToTop();
}
private function showInstructionsScreen():void{
instructionsScreen = new InstructionsScreen(this);
ROOT.addChild(instructionsScreen);
}
private function removeIntroScreen():void{
introScreen.removeAllListeners();
ROOT.removeChild(introScreen);
introScreen = null;
}
private function removeInstructionsScreen():void{
instructionsScreen.removeAllListeners();
ROOT.removeChild(instructionsScreen);
instructionsScreen = null;
}
public function getSoundManager():SoundManager{
return (soundManager);
}
private function initialize():void{
ot = new OmnitureAS3("nflrzemergency");
STAGE = this.stage;
ROOT = MovieClip(this);
soundManager = new SoundManager();
toggleSoundButton = new ToggleSoundButton(this);
ROOT.addChild(toggleSoundButton);
}
public function removeNRZDialogue():void{
}
private function showIntroScreen():void{
introScreen = new IntroScreen(this);
ROOT.addChild(introScreen);
toggleSoundButton.moveToTop();
}
public function transitionFromInstructionsScreenToGame():void{
removeInstructionsScreen();
startGame();
toggleSoundButton.moveToTop();
}
public function getToggleSoundButton():ToggleSoundButton{
return (toggleSoundButton);
}
}
}//package
Section 165
//Game (Game)
package {
import managers.*;
import levels.*;
import screens.*;
import screens.briefs.*;
public class Game {
private var currentBrief:BriefScreen;
private var currentLevelNum:uint;
private var currentLevel:Level;
private var scoreManager:ScoreManager;
private var controller:Controller;
private var gameOverScreen:GameOverScreenSloppySuperClass;
public static const MAX_LEVEL_NUM:uint = 10;
public static const MIN_LEVEL_NUM:uint = 1;
public function Game(_arg1:Controller){
this.controller = _arg1;
initialize();
}
private function loadBrief(_arg1:uint):void{
switch (_arg1){
case 1:
currentBrief = new BriefScreen1(this);
break;
case 2:
currentBrief = new BriefScreen2(this);
break;
case 3:
currentBrief = new BriefScreen3(this);
break;
case 4:
currentBrief = new BriefScreen4(this);
break;
case 5:
currentBrief = new BriefScreen5(this);
break;
case 6:
currentBrief = new BriefScreen6(this);
break;
case 7:
currentBrief = new BriefScreen7(this);
break;
case 8:
currentBrief = new BriefScreen8(this);
break;
case 9:
currentBrief = new BriefScreen9(this);
break;
case 10:
currentBrief = new BriefScreen10(this);
default:
currentBrief = new BriefScreen10(this);
break;
};
Controller.ROOT.addChild(currentBrief);
controller.getToggleSoundButton().moveToTop();
if (controller.getSoundManager().isGameMusicPlaying()){
controller.getSoundManager().stopGameMusic();
};
if (!controller.getSoundManager().isMenuMusicPlaying()){
controller.getSoundManager().playMenuMusic();
};
}
private function unloadCurrentBriefAndCurrentLevel():void{
unloadCurrentBrief();
unloadCurrentLevel();
}
public function startCurrentLevel():void{
unloadCurrentBriefAndCurrentLevel();
switch (currentLevelNum){
case 1:
currentLevel = new Level1(this);
break;
case 2:
currentLevel = new Level2(this);
break;
case 3:
currentLevel = new Level3(this);
break;
case 4:
currentLevel = new Level4(this);
break;
case 5:
currentLevel = new Level5(this);
break;
case 6:
currentLevel = new Level6(this);
break;
case 7:
currentLevel = new Level7(this);
break;
case 8:
currentLevel = new Level8(this);
break;
case 9:
currentLevel = new Level9(this);
break;
case 10:
currentLevel = new Level10(this);
break;
default:
currentLevel = new Level10(this);
currentLevelNum = 10;
};
Controller.ROOT.addChild(currentLevel);
if (controller.getSoundManager().isMenuMusicPlaying()){
controller.getSoundManager().stopMenuMusic();
};
controller.getToggleSoundButton().moveToTop();
currentLevel.startLevel();
}
public function showGameOverScreen(_arg1:Boolean=false):void{
unloadCurrentBriefAndCurrentLevel();
if (_arg1){
gameOverScreen = GameOverScreenSloppySuperClass(new FinalGameOverScreen(this));
} else {
controller.getSoundManager().stopGameMusic();
controller.getSoundManager().stopMenuMusic();
controller.getSoundManager().playFanfareSound();
gameOverScreen = GameOverScreenSloppySuperClass(new GameOverScreen(this));
};
gameOverScreen.setScore(scoreManager.getScore());
Controller.ROOT.addChild(gameOverScreen);
}
private function initialize():void{
startNewGame();
}
public function getController():Controller{
return (controller);
}
private function removeGameOverScreen():void{
if (gameOverScreen != null){
gameOverScreen.cleanUp();
Controller.ROOT.removeChild(gameOverScreen);
gameOverScreen = null;
};
}
public function replayLevel():void{
unloadCurrentBriefAndCurrentLevel();
startCurrentLevel();
}
private function unloadCurrentBrief():void{
if (currentBrief != null){
currentBrief.cleanUp();
Controller.ROOT.removeChild(currentBrief);
currentBrief = null;
};
}
private function unloadCurrentLevel():void{
if (currentLevel != null){
currentLevel.cleanUp();
Controller.ROOT.removeChild(currentLevel);
currentLevel = null;
};
}
public function startNewGame():void{
controller.ot.startGameClick();
unloadCurrentBriefAndCurrentLevel();
scoreManager = new ScoreManager(this);
currentLevelNum = 1;
loadBrief(currentLevelNum);
removeGameOverScreen();
}
public function getScoreManager():ScoreManager{
return (scoreManager);
}
public function advanceToNextLevel():void{
unloadCurrentBriefAndCurrentLevel();
currentLevelNum++;
if (currentLevelNum > MAX_LEVEL_NUM){
currentLevelNum = MAX_LEVEL_NUM;
};
loadBrief(currentLevelNum);
}
public function jumpToLevel(_arg1:uint):void{
unloadCurrentBriefAndCurrentLevel();
if (_arg1 < MIN_LEVEL_NUM){
_arg1 = MIN_LEVEL_NUM;
} else {
if (_arg1 > MAX_LEVEL_NUM){
_arg1 = MAX_LEVEL_NUM;
};
};
currentLevelNum = _arg1;
loadBrief(currentLevelNum);
}
}
}//package