Section 1
//MindJoltAPI (com.mindjolt.api.as3.MindJoltAPI)
package com.mindjolt.api.as3 {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class MindJoltAPI extends MovieClip {
private var dispatcher:CustomDispatcher;
public static var service:Object;
public function MindJoltAPI(){
dispatcher = new CustomDispatcher();
dispatcher.doAction(1, 100);
dispatcher.addEventListener(_slot2.ACTION, createRoot);
}
private function createRoot(_arg1:Event):void{
if (root != null){
_arg1.currentTarget.removeEventListener(_slot2.ACTION, createRoot);
init();
};
}
private function init():void{
var _local1:Object;
var _local2:String;
var _local3:Loader;
_local1 = Object(parent.root).loaderInfo.parameters;
_local2 = "";
if (((!((_local1.mjPath == null))) && (isDomainAllowed()))){
_local2 = _local1.mjPath;
} else {
_local2 = "http://static.mindjolt.com/api/as3/scoreapi_as3_local.swf";
};
_local3 = new Loader();
_local3.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFinished);
_local3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFailed);
_local3.load(new URLRequest(_local2));
addChild(_local3);
}
private function loadFinished(_arg1:Event):void{
service = _arg1.currentTarget.content.service;
service.connect();
trace("[MindJoltAPI] service loaded");
}
private function isDomainAllowed():Boolean{
var _local1:String;
var _local2:LocalConnection;
var _local3:String;
_local1 = ".mindjolt.com";
_local2 = new LocalConnection();
_local3 = _local2.domain;
if (_local3.indexOf(_local1) == (_local3.length - _local1.length)){
return (true);
};
return (false);
}
private function loadFailed(_arg1:IOErrorEvent):void{
trace("[MindJoltAPI] unable to load service");
}
}
}//package com.mindjolt.api.as3
import flash.events.*;
import flash.utils.*;
class CustomDispatcher extends EventDispatcher {
public static var ACTION:String = "action";
private function CustomDispatcher(){
}
public function doAction(_arg1:Number, _arg2:Number):void{
var myTimer:Timer;
var propAction:Function;
var delay = _arg1;
var repeat = _arg2;
propAction = function (_arg1:TimerEvent):void{
dispatchEvent(new Event(_slot2.ACTION));
};
myTimer = new Timer(delay, repeat);
myTimer.addEventListener(TimerEvent.TIMER, propAction);
myTimer.start();
}
}
Section 2
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class AdLoader extends Sprite {
private var cpmstarLoader:Loader;
private var contentspotid:String;
public function AdLoader(_arg1:String){
this.contentspotid = _arg1;
addEventListener(Event.ADDED, addedHandler);
}
private function addedHandler(_arg1:Event):void{
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
var _local2 = "http://server.cpmstar.com/adviewas3.swf";
var _local3:DisplayObjectContainer = parent;
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler);
cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler);
cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid)));
addChild(cpmstarLoader);
}
private function dispatchHandler(_arg1:Event):void{
dispatchEvent(_arg1);
}
}
}//package CPMStar
Section 3
//MochiScores (mochi.MochiScores)
package mochi {
import flash.display.*;
import flash.text.*;
public class MochiScores {
public static var onCloseHandler:Object;
public static var onErrorHandler:Object;
private static var boardID:String;
public static function onClose(_arg1:Object=null):void{
if (_arg1 != null){
if (_arg1.error != null){
if (_arg1.error == true){
if (onErrorHandler != null){
if (_arg1.errorCode == null){
_arg1.errorCode = "IOError";
};
onErrorHandler(_arg1.errorCode);
MochiServices.doClose();
return;
};
};
};
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(_arg1:String):void{
MochiScores.boardID = _arg1;
MochiServices.send("scores_setBoardID", {boardID:_arg1});
}
public static function showLeaderboard(_arg1:Object=null):void{
var options = _arg1;
if (options != null){
if (options.clip != null){
if ((options.clip is Sprite)){
MochiServices.setContainer(options.clip);
};
delete options.clip;
} else {
MochiServices.setContainer();
};
MochiServices.stayOnTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (MochiScores.boardID != null){
options.boardID = MochiScores.boardID;
};
};
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2);
}
public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{
trace(" In Submit ");
MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4);
}
public static function requestList(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_requestList", null, _arg1, _arg2);
}
public static function scoresArrayToObjects(_arg1:Object):Object{
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
var _local7:String;
var _local8:String;
var _local2:Object = {};
for (_local7 in _arg1) {
if (typeof(_arg1[_local7]) == "object"){
if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){
_local2[_local7] = [];
_local5 = _arg1[_local7];
_local4 = 0;
while (_local4 < _local5.rows.length) {
_local6 = {};
_local3 = 0;
while (_local3 < _local5.cols.length) {
_local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3];
_local3++;
};
_local2[_local7].push(_local6);
_local4++;
};
} else {
_local2[_local7] = {};
for (_local8 in _arg1[_local7]) {
_local2[_local7][_local8] = _arg1[_local7][_local8];
};
};
} else {
_local2[_local7] = _arg1[_local7];
};
};
return (_local2);
}
}
}//package mochi
Section 4
//MochiServices (mochi.MochiServices)
package mochi {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiServices {
private static var _id:String;
private static var _container:Object;
private static var _clip:MovieClip;
private static var _loader:Loader;
private static var _timer:Timer;
private static var _startTime:Number;
private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf";
private static var _swfVersion:String;
private static var _listenChannel:LocalConnection;
private static var _listenChannelName:String = "__mochiservices";
private static var _sendChannel:LocalConnection;
private static var _sendChannelName:String;
private static var _rcvChannel:LocalConnection;
private static var _rcvChannelName:String;
private static var _connecting:Boolean = false;
private static var _connected:Boolean = false;
public static var onError:Object;
public static function get id():String{
return (_id);
}
public static function get clip():Object{
return (_container);
}
public static function get childClip():Object{
return (_clip);
}
public static function getVersion():String{
return ("1.31");
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
Security.allowDomain("*");
Security.allowInsecureDomain("*");
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
return (_local2);
}
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
_rcvChannelName = _arg1;
initComChannels();
};
};
}
public static function get connected():Boolean{
return (_connected);
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
if ((clip is DisplayObject)){
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
trace(_arg1);
};
};
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_listenChannel.close();
_rcvChannel.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{
var parent = _arg1;
var name = _arg2;
var depth = _arg3;
var doAdd = _arg4;
var mc:MovieClip = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
try {
parent[name] = mc;
} catch(e:Error) {
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
mc["_name"] = name;
return (mc);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
if (_clip.parent != null){
Sprite(_clip.parent).removeChild(_clip);
};
}
public static function bringToTop(_arg1:Event):void{
var e = _arg1;
if (MochiServices.clip != null){
if (MochiServices.childClip != null){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
};
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_arg1 != null){
if ((_arg1 is Sprite)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var id = _arg1;
var clip = _arg2;
var clipname:String = ("_mochiservices_com_" + id);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
MochiServices.allowDomains(_gatewayURL);
_clip = createEmptyMovieClip(clip, clipname, 10336, false);
_loader = new Loader();
_timer = new Timer(1000, 0);
_startTime = getTimer();
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
var f:Function = function (_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
var req:URLRequest = new URLRequest(_gatewayURL);
_loader.load(req);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_rcvChannel = new LocalConnection();
_rcvChannel.allowDomain("*", "localhost");
_rcvChannel.allowInsecureDomain("*", "localhost");
_rcvChannel.client = _clip;
_clip._nextcallbackID = 0;
_clip._callbacks = {};
listen();
return (_clip);
}
public static function connectWait(_arg1:TimerEvent):void{
if ((getTimer() - _startTime) > 10000){
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_timer.stop();
};
}
private static function onStatus(_arg1:StatusEvent):void{
switch (_arg1.level){
case "error":
_connected = false;
_listenChannel.connect(_listenChannelName);
break;
};
}
private static function listen():void{
_listenChannel = new LocalConnection();
_listenChannel.client = _clip;
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
_listenChannel.allowDomain("*", "localhost");
_listenChannel.allowInsecureDomain("*", "localhost");
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
private static function initComChannels():void{
if (!_connected){
_sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()});
_rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_clip.onReceive = function (_arg1:Object):void{
var methodName:String;
var pkg = _arg1;
var cb:String = pkg.callbackID;
var cblst:Object = this.client._callbacks[cb];
if (!cblst){
return;
};
var method:* = cblst.callbackMethod;
methodName = "";
var obj:Object = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString()));
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
trace(("Error invoking method on object: " + error.toString()));
};
};
};
delete this.client._callbacks[cb];
};
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
_rcvChannel.connect(_rcvChannelName);
trace("connected!");
_connecting = false;
_connected = true;
_listenChannel.close();
while (_clip._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (_clip != null){
if (_clip._queue != null){
while (_clip._queue.length > 0) {
_local2 = _clip._queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _clip._callbacks[_local2.callbackID];
};
delete _clip._callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
};
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
onError("NotConnected");
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_clip._nextcallbackID++;
};
};
}
}
}//package mochi
Section 5
//ag_intro_mc_28 (whiteboardTD2_fla.ag_intro_mc_28)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class ag_intro_mc_28 extends MovieClip {
public function ag_intro_mc_28(){
addFrameScript(0, frame1, 217, frame218);
}
function frame1(){
(parent as MovieClip).stop();
gotoAndPlay(2);
}
function frame218(){
(parent as MovieClip).play();
}
}
}//package whiteboardTD2_fla
Section 6
//AGteaser_mc_21 (whiteboardTD2_fla.AGteaser_mc_21)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class AGteaser_mc_21 extends MovieClip {
public var AGhome01:SimpleButton;
public var skipButton:SimpleButton;
public function AGteaser_mc_21(){
addFrameScript(0, frame1, 61, frame62, 114, frame115);
}
public function onSkipClick(_arg1:MouseEvent):void{
(parent as MovieClip).play();
}
public function onAGClick(_arg1:MouseEvent):void{
var _local2:URLRequest = new URLRequest("http://www.addictinggames.com");
navigateToURL(_local2);
}
function frame1(){
(parent as MovieClip).stop();
play();
skipButton.addEventListener(MouseEvent.CLICK, onSkipClick, false, 0, true);
}
function frame62(){
AGhome01.addEventListener(MouseEvent.CLICK, onAGClick, false, 0, true);
}
function frame115(){
(parent as MovieClip).play();
}
}
}//package whiteboardTD2_fla
Section 7
//animationMainMenu_144 (whiteboardTD2_fla.animationMainMenu_144)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class animationMainMenu_144 extends MovieClip {
public function animationMainMenu_144(){
addFrameScript(111, frame112);
}
function frame112(){
gotoAndPlay(98);
}
}
}//package whiteboardTD2_fla
Section 8
//armologo_4 (whiteboardTD2_fla.armologo_4)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class armologo_4 extends MovieClip {
public function armologo_4(){
addFrameScript(0, frame1);
}
public function onMiniLogoClick(_arg1:MouseEvent):void{
var _local2:URLRequest = new URLRequest("http://armorgames.com?referral=gameWhiteBoardTD");
navigateToURL(_local2);
}
function frame1(){
addEventListener(MouseEvent.CLICK, onMiniLogoClick, false, 0, true);
}
}
}//package whiteboardTD2_fla
Section 9
//ArmorAd_20 (whiteboardTD2_fla.ArmorAd_20)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class ArmorAd_20 extends MovieClip {
public function ArmorAd_20(){
addFrameScript(0, frame1);
}
public function onArmorClick(_arg1:MouseEvent):void{
var _local2:URLRequest = new URLRequest("http://armorgames.com?referral=gameWhiteBoardTD");
navigateToURL(_local2);
}
function frame1(){
addEventListener(MouseEvent.CLICK, onArmorClick, false, 0, true);
}
}
}//package whiteboardTD2_fla
Section 10
//BackToMenuButton_86 (whiteboardTD2_fla.BackToMenuButton_86)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class BackToMenuButton_86 extends MovieClip {
public var blue:MovieClip;
public var red:MovieClip;
public function BackToMenuButton_86(){
addFrameScript(0, frame1);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function over(_arg1:MouseEvent){
safeRemoveChild(blue);
addChild(red);
}
public function out(_arg1:MouseEvent){
safeRemoveChild(red);
addChild(blue);
}
function frame1(){
trace(" BackToMenuButton first frame ");
safeRemoveChild(red);
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
}
}
}//package whiteboardTD2_fla
Section 11
//BasicTower3TurretShape_100 (whiteboardTD2_fla.BasicTower3TurretShape_100)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTower3TurretShape_100 extends MovieClip {
public function BasicTower3TurretShape_100(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package whiteboardTD2_fla
Section 12
//BasicTower3TurretShapeReversed_181 (whiteboardTD2_fla.BasicTower3TurretShapeReversed_181)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTower3TurretShapeReversed_181 extends MovieClip {
public function BasicTower3TurretShapeReversed_181(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package whiteboardTD2_fla
Section 13
//BasicTowerBullet7_111 (whiteboardTD2_fla.BasicTowerBullet7_111)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTowerBullet7_111 extends MovieClip {
public function BasicTowerBullet7_111(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package whiteboardTD2_fla
Section 14
//BasicTowerTurret1_96 (whiteboardTD2_fla.BasicTowerTurret1_96)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTowerTurret1_96 extends MovieClip {
public var turret:MovieClip;
public var spawnPoint:MovieClip;
public function BasicTowerTurret1_96(){
addFrameScript(0, frame1);
}
function frame1(){
mouseChildren = false;
}
}
}//package whiteboardTD2_fla
Section 15
//BasicTowerTurret3_99 (whiteboardTD2_fla.BasicTowerTurret3_99)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTowerTurret3_99 extends MovieClip {
public var shape:MovieClip;
public var turret:MovieClip;
public function BasicTowerTurret3_99(){
addFrameScript(0, frame1, 25, frame26);
}
function frame1(){
mouseEnabled = false;
}
function frame26(){
stop();
mouseEnabled = false;
}
}
}//package whiteboardTD2_fla
Section 16
//BasicTowerTurret4_114 (whiteboardTD2_fla.BasicTowerTurret4_114)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTowerTurret4_114 extends MovieClip {
public var turret:MovieClip;
public function BasicTowerTurret4_114(){
addFrameScript(0, frame1);
}
function frame1(){
mouseChildren = false;
}
}
}//package whiteboardTD2_fla
Section 17
//BasicTowerTurret5_104 (whiteboardTD2_fla.BasicTowerTurret5_104)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTowerTurret5_104 extends MovieClip {
public var turret:MovieClip;
public function BasicTowerTurret5_104(){
addFrameScript(0, frame1);
}
function frame1(){
mouseChildren = false;
}
}
}//package whiteboardTD2_fla
Section 18
//BasicTowerTurret6_108 (whiteboardTD2_fla.BasicTowerTurret6_108)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTowerTurret6_108 extends MovieClip {
public var turret:MovieClip;
public function BasicTowerTurret6_108(){
addFrameScript(0, frame1);
}
function frame1(){
mouseChildren = false;
}
}
}//package whiteboardTD2_fla
Section 19
//BasicTowerTurret8_117 (whiteboardTD2_fla.BasicTowerTurret8_117)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BasicTowerTurret8_117 extends MovieClip {
public var turret:MovieClip;
public function BasicTowerTurret8_117(){
addFrameScript(0, frame1);
}
function frame1(){
mouseChildren = false;
}
}
}//package whiteboardTD2_fla
Section 20
//bodyFatguydude_160 (whiteboardTD2_fla.bodyFatguydude_160)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class bodyFatguydude_160 extends MovieClip {
public function bodyFatguydude_160(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package whiteboardTD2_fla
Section 21
//BulletSpawnPoint_92 (whiteboardTD2_fla.BulletSpawnPoint_92)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class BulletSpawnPoint_92 extends MovieClip {
public function BulletSpawnPoint_92(){
addFrameScript(1, frame2);
}
function frame2(){
stop();
}
}
}//package whiteboardTD2_fla
Section 22
//CircleUnvail_75 (whiteboardTD2_fla.CircleUnvail_75)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class CircleUnvail_75 extends MovieClip {
public function CircleUnvail_75(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package whiteboardTD2_fla
Section 23
//CostSymbol_121 (whiteboardTD2_fla.CostSymbol_121)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class CostSymbol_121 extends MovieClip {
public function CostSymbol_121(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package whiteboardTD2_fla
Section 24
//CPMHSLoader_177 (whiteboardTD2_fla.CPMHSLoader_177)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
import CPMStar.*;
import flash.text.*;
import flash.utils.*;
public dynamic class CPMHSLoader_177 extends MovieClip {
public var adBox:MovieClip;
public var nextbutton:MovieClip;
public var playbutton:MovieClip;
public var progressText:TextField;
public var armorBox:MovieClip;
public var useCPM:Boolean;
public var CPMStarContentSpotID:String;
public var mc:HighScore;
public var contTimer:Timer;
public var ad:DisplayObject;
public function CPMHSLoader_177(){
addFrameScript(0, frame1);
}
public function GO():void{
if (((((((((((useCPM) && (!((GameMenu.domain == "addictinggames.com"))))) && (!((GameMenu.domain == "shockwave.com"))))) && (!((GameMenu.domain == "andkon.com"))))) && (!((GameMenu.domain == "flashgamelicense.com"))))) && (!((GameMenu.domain == "kongregate.com"))))){
ad = new AdLoader(CPMStarContentSpotID);
adBox.addChild(ad);
addChild(armorBox);
removeChild(armorBox);
};
removeChild(playbutton);
if (contTimer == null){
contTimer = new Timer(3000, 1);
contTimer.addEventListener(TimerEvent.TIMER, oncontTimer, false, 0, true);
};
contTimer.start();
}
public function oncontTimer(_arg1:TimerEvent):void{
addChild(playbutton);
playbutton.addEventListener(MouseEvent.CLICK, onPlayButton, false, 0, true);
contTimer.stop();
}
public function onPlayButton(_arg1:MouseEvent):void{
var me = _arg1;
if (mc != null){
mc.resume();
};
try {
adBox.removeChild(ad);
} catch(er) {
};
}
function frame1(){
useCPM = true;
CPMStarContentSpotID = "98Q40A99052";
mc = (parent as HighScore);
contTimer = null;
ad = null;
}
}
}//package whiteboardTD2_fla
Section 25
//CPMPreloader_1 (whiteboardTD2_fla.CPMPreloader_1)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.media.*;
import CPMStar.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.net.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.xml.*;
public dynamic class CPMPreloader_1 extends MovieClip {
public var miniMan:MovieClip;
public var adBox:MovieClip;
public var nextbutton:MovieClip;
public var playbutton:MovieClip;
public var progressText:TextField;
public var armorBox:MovieClip;
public var useCPM:Boolean;
public var CPMStarContentSpotID:String;
public var ad:DisplayObject;
public var mc:MovieClip;
public function CPMPreloader_1(){
addFrameScript(0, frame1);
}
public function onNextButton(_arg1:MouseEvent):void{
var te = _arg1;
trace("On Next Button ");
try {
adBox.removeChild(ad);
} catch(er) {
};
ad = new AdLoader(CPMStarContentSpotID);
adBox.addChild(ad);
}
public function fEnter(_arg1:Event):void{
var _local2:Number = (100 * (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal));
trace(((((" this.getBytesLoaded = " + root.loaderInfo.bytesLoaded) + " ") + Math.floor((100 * (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal)))) + "%"));
trace((" this.getBytesTotal = " + root.loaderInfo.bytesTotal));
if (this.progressText == null){
removeEventListener(Event.ENTER_FRAME, fEnter);
return;
};
trace(("total = " + _local2));
this.progressText.text = (("Loading " + Math.floor(_local2)) + "%");
if (_local2 == 100){
addChild(playbutton);
playbutton.addEventListener(MouseEvent.CLICK, onPlayButton, false, 0, true);
removeEventListener(Event.ENTER_FRAME, fEnter);
};
}
public function onPlayButton(_arg1:MouseEvent):void{
var me = _arg1;
try {
adBox.removeChild(ad);
} catch(er) {
};
parent.removeChild(this);
(mc as Object).resume();
}
function frame1(){
useCPM = true;
CPMStarContentSpotID = "97Q1AE72307";
if (((((((((((useCPM) && (!((GameMenu.domain == "addictinggames.com"))))) && (!((GameMenu.domain == "shockwave.com"))))) && (!((GameMenu.domain == "andkon.com"))))) && (!((GameMenu.domain == "kongregate.com"))))) && (!((GameMenu.domain == "flashgamelicense.com"))))){
ad = new AdLoader(CPMStarContentSpotID);
adBox.addChild(ad);
nextbutton.addEventListener(MouseEvent.CLICK, onNextButton, false, 0, true);
removeChild(armorBox);
} else {
removeChild(nextbutton);
};
removeChild(playbutton);
mc = (parent as MovieClip);
if (mc != null){
mc.stop();
};
addEventListener(Event.ENTER_FRAME, fEnter);
}
}
}//package whiteboardTD2_fla
Section 26
//Credits_167 (whiteboardTD2_fla.Credits_167)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class Credits_167 extends MovieClip {
public function Credits_167(){
addFrameScript(0, frame1, 1133, frame1134);
}
public function onStageHandler(_arg1:Event){
trace(" Added to stage");
gotoAndPlay("go");
}
function frame1(){
addEventListener(Event.ADDED_TO_STAGE, onStageHandler);
stop();
}
function frame1134(){
(parent as GameMenu).reset();
parent.removeChild(this);
}
}
}//package whiteboardTD2_fla
Section 27
//critMain2_154 (whiteboardTD2_fla.critMain2_154)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class critMain2_154 extends MovieClip {
public function critMain2_154(){
addFrameScript(49, frame50);
}
function frame50(){
gotoAndPlay(34);
}
}
}//package whiteboardTD2_fla
Section 28
//critterR3_159 (whiteboardTD2_fla.critterR3_159)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class critterR3_159 extends MovieClip {
public function critterR3_159(){
addFrameScript(90, frame91);
}
function frame91(){
gotoAndPlay(75);
}
}
}//package whiteboardTD2_fla
Section 29
//eyecritter222copy_145 (whiteboardTD2_fla.eyecritter222copy_145)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class eyecritter222copy_145 extends MovieClip {
public function eyecritter222copy_145(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package whiteboardTD2_fla
Section 30
//face_161 (whiteboardTD2_fla.face_161)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class face_161 extends MovieClip {
public function face_161(){
addFrameScript(20, frame21);
}
function frame21(){
stop();
}
}
}//package whiteboardTD2_fla
Section 31
//facecopy_146 (whiteboardTD2_fla.facecopy_146)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class facecopy_146 extends MovieClip {
public function facecopy_146(){
addFrameScript(11, frame12);
}
function frame12(){
stop();
}
}
}//package whiteboardTD2_fla
Section 32
//facecopy3_148 (whiteboardTD2_fla.facecopy3_148)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class facecopy3_148 extends MovieClip {
public function facecopy3_148(){
addFrameScript(11, frame12);
}
function frame12(){
stop();
}
}
}//package whiteboardTD2_fla
Section 33
//gameover_81 (whiteboardTD2_fla.gameover_81)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class gameover_81 extends MovieClip {
public function gameover_81(){
addFrameScript(0, frame1, 173, frame174);
}
public function onStageHandler(_arg1:Event){
trace(" Added to stage");
gotoAndPlay(2);
}
function frame1(){
addEventListener(Event.ADDED_TO_STAGE, onStageHandler);
stop();
}
function frame174(){
stop();
}
}
}//package whiteboardTD2_fla
Section 34
//hcrti3_162 (whiteboardTD2_fla.hcrti3_162)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class hcrti3_162 extends MovieClip {
public function hcrti3_162(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package whiteboardTD2_fla
Section 35
//Importer_30 (whiteboardTD2_fla.Importer_30)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class Importer_30 extends MovieClip {
public function Importer_30(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 36
//Instructions_169 (whiteboardTD2_fla.Instructions_169)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class Instructions_169 extends MovieClip {
public function Instructions_169(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9);
}
public function onStageHandler(_arg1:Event){
trace(" Instructions added to stage");
gotoAndPlay("go");
}
function frame1(){
addEventListener(Event.ADDED_TO_STAGE, onStageHandler);
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame8(){
stop();
}
function frame9(){
(parent as GameMenu).reset();
parent.removeChild(this);
stop();
}
}
}//package whiteboardTD2_fla
Section 37
//Instructions_NextButton_170 (whiteboardTD2_fla.Instructions_NextButton_170)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class Instructions_NextButton_170 extends MovieClip {
public function Instructions_NextButton_170(){
addFrameScript(0, frame1);
}
public function continueFunction(_arg1:MouseEvent):void{
if (parent != null){
(parent as MovieClip).play();
};
}
function frame1(){
stop();
addEventListener(MouseEvent.CLICK, continueFunction, false, 0, true);
}
}
}//package whiteboardTD2_fla
Section 38
//MainTimeline (whiteboardTD2_fla.MainTimeline)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
import mochi.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.net.*;
public dynamic class MainTimeline extends MovieClip {
public var logo:MovieClip;
public var rate:TextField;
public var progressText:TextField;
public var gameMenu:GameMenu;
public var myMenu:ContextMenu;
public var memoryTimer:Timer;
public var url:String;
public var urlStart:Number;
public var urlEnd:Number;
public var domain:String;
public var LastDot:Number;
public var domEnd:Number;
public var domain2:String;
public var rateTimer:Timer;
public var frameCount:Number;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 4, frame5, 5, frame6, 6, frame7, 11, frame12);
}
public function fEnter(_arg1:Event):void{
var _local2:Number = (100 * (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal));
trace(((((" this.getBytesLoaded = " + root.loaderInfo.bytesLoaded) + " ") + Math.floor((100 * (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal)))) + "%"));
trace((" this.getBytesTotal = " + root.loaderInfo.bytesTotal));
if (this.progressText == null){
removeEventListener(Event.ENTER_FRAME, fEnter);
return;
};
if (Math.floor(_local2) == 100){
this.progressText.text = ".";
} else {
this.progressText.text = "l";
};
if (_local2 == 100){
removeEventListener(Event.ENTER_FRAME, fEnter);
};
}
public function onMemoryTimer(_arg1:TimerEvent){
var ev = _arg1;
}
public function resume():void{
if ((((((GameMenu.domain == "addictinggames.com")) || ((GameMenu.domain == "shockwave.com")))) || ((GameMenu.domain == "flashgamelicense.com")))){
play();
} else {
gotoAndPlay("GoArmor");
};
}
public function onLogoClick(_arg1:MouseEvent):void{
var _local2:URLRequest = new URLRequest("http://armorgames.com?referral=gameWhiteBoardTD");
navigateToURL(_local2);
}
public function onrateTimer(_arg1:TimerEvent):void{
rate.text = ("" + frameCount);
frameCount = 0;
if (stage.focus){
if (stage != stage.focus){
if (!stage.focus.root){
stage.focus = stage;
};
};
};
}
public function onFrameEnter(_arg1:Event){
frameCount++;
}
function frame1(){
myMenu = new ContextMenu();
myMenu.hideBuiltInItems();
this.contextMenu = myMenu;
addEventListener(Event.ENTER_FRAME, fEnter);
}
function frame2(){
memoryTimer = new Timer(30000);
memoryTimer.addEventListener(TimerEvent.TIMER, onMemoryTimer);
Key.initialize(stage);
stop();
HighScore.HSSprite = new MovieClip();
MochiServices.connect("312f47174804f526", root);
url = root.loaderInfo.loaderURL;
urlStart = (url.indexOf("://") + 3);
urlEnd = url.indexOf("/", urlStart);
domain = url.substring(urlStart, urlEnd);
LastDot = (domain.lastIndexOf(".") - 1);
domEnd = (domain.lastIndexOf(".", LastDot) + 1);
domain2 = domain.substring(domEnd, domain.length);
GameMenu.domain = domain2;
trace(("domain = " + domain2));
MochiBot.track(this, "90a415e1");
}
function frame5(){
stop();
}
function frame6(){
stop();
logo.addEventListener(MouseEvent.CLICK, onLogoClick, false, 0, true);
}
function frame7(){
play();
}
function frame12(){
stop();
rateTimer = new Timer(1000);
rateTimer.addEventListener(TimerEvent.TIMER, onrateTimer);
rateTimer.start();
frameCount = 0;
addEventListener(Event.ENTER_FRAME, onFrameEnter);
}
}
}//package whiteboardTD2_fla
Section 39
//partcritter22copy_147 (whiteboardTD2_fla.partcritter22copy_147)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class partcritter22copy_147 extends MovieClip {
public function partcritter22copy_147(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package whiteboardTD2_fla
Section 40
//SellButton_125 (whiteboardTD2_fla.SellButton_125)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class SellButton_125 extends MovieClip {
public var blue:MovieClip;
public var red:MovieClip;
public function SellButton_125(){
addFrameScript(0, frame1);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function over(_arg1:MouseEvent){
safeRemoveChild(blue);
addChild(red);
}
public function out(_arg1:MouseEvent){
safeRemoveChild(red);
addChild(blue);
}
function frame1(){
trace(" SellButton first frame ");
safeRemoveChild(red);
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
}
}
}//package whiteboardTD2_fla
Section 41
//SubmitButton_83 (whiteboardTD2_fla.SubmitButton_83)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class SubmitButton_83 extends MovieClip {
public var blue:MovieClip;
public var red:MovieClip;
public function SubmitButton_83(){
addFrameScript(0, frame1);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function over(_arg1:MouseEvent){
safeRemoveChild(blue);
addChild(red);
}
public function out(_arg1:MouseEvent){
safeRemoveChild(red);
addChild(blue);
}
function frame1(){
trace("Submit Button frame 1 ");
safeRemoveChild(red);
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
}
}
}//package whiteboardTD2_fla
Section 42
//textMenuUnderline_174 (whiteboardTD2_fla.textMenuUnderline_174)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class textMenuUnderline_174 extends MovieClip {
public function textMenuUnderline_174(){
addFrameScript(0, frame1, 10, frame11);
}
function frame1(){
stop();
}
function frame11(){
stop();
}
}
}//package whiteboardTD2_fla
Section 43
//TextReveal_82 (whiteboardTD2_fla.TextReveal_82)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class TextReveal_82 extends MovieClip {
public function TextReveal_82(){
addFrameScript(1, frame2, 120, frame121);
}
function frame2(){
}
function frame121(){
stop();
}
}
}//package whiteboardTD2_fla
Section 44
//towerT1_34 (whiteboardTD2_fla.towerT1_34)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT1_34 extends MovieClip {
public function towerT1_34(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 45
//towerT2_40 (whiteboardTD2_fla.towerT2_40)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT2_40 extends MovieClip {
public function towerT2_40(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 46
//towerT3_45 (whiteboardTD2_fla.towerT3_45)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT3_45 extends MovieClip {
public function towerT3_45(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 47
//towerT5_54 (whiteboardTD2_fla.towerT5_54)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT5_54 extends MovieClip {
public function towerT5_54(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 48
//towerT6_60 (whiteboardTD2_fla.towerT6_60)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT6_60 extends MovieClip {
public function towerT6_60(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 49
//towerT7_62 (whiteboardTD2_fla.towerT7_62)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT7_62 extends MovieClip {
public function towerT7_62(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 50
//towerT8_64 (whiteboardTD2_fla.towerT8_64)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT8_64 extends MovieClip {
public function towerT8_64(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 51
//towerT8copy_105 (whiteboardTD2_fla.towerT8copy_105)
package whiteboardTD2_fla {
import flash.display.*;
public dynamic class towerT8copy_105 extends MovieClip {
public function towerT8copy_105(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package whiteboardTD2_fla
Section 52
//UpgradeButton_124 (whiteboardTD2_fla.UpgradeButton_124)
package whiteboardTD2_fla {
import flash.display.*;
import flash.events.*;
public dynamic class UpgradeButton_124 extends MovieClip {
public var blue:MovieClip;
public var red:MovieClip;
public function UpgradeButton_124(){
addFrameScript(0, frame1);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function over(_arg1:MouseEvent){
safeRemoveChild(blue);
addChild(red);
}
public function out(_arg1:MouseEvent){
safeRemoveChild(red);
addChild(blue);
}
function frame1(){
trace(" UpgradeButton first frame ");
safeRemoveChild(red);
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
}
}
}//package whiteboardTD2_fla
Section 53
//Ah_Sound (Ah_Sound)
package {
import flash.media.*;
public dynamic class Ah_Sound extends Sound {
}
}//package
Section 54
//ahD_Sound (ahD_Sound)
package {
import flash.media.*;
public dynamic class ahD_Sound extends Sound {
}
}//package
Section 55
//ahhD_Sound (ahhD_Sound)
package {
import flash.media.*;
public dynamic class ahhD_Sound extends Sound {
}
}//package
Section 56
//antfarm_Sound (antfarm_Sound)
package {
import flash.media.*;
public dynamic class antfarm_Sound extends Sound {
}
}//package
Section 57
//arghD_Sound (arghD_Sound)
package {
import flash.media.*;
public dynamic class arghD_Sound extends Sound {
}
}//package
Section 58
//bang03_Sound (bang03_Sound)
package {
import flash.media.*;
public dynamic class bang03_Sound extends Sound {
}
}//package
Section 59
//BasicTower (BasicTower)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTower extends TowerInterface {
public var turret:BasicTowerTurret;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
private static var counter:Number = 0;
public function BasicTower(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:10, cannonRange:80, cannonDamage:3, cannonColor:levelOneColor});
cannonStats[2] = {cannonCost:20, cannonRange:100, cannonDamage:6, cannonColor:levelTwoColor};
cannonStats[3] = {cannonCost:50, cannonRange:120, cannonDamage:12, cannonColor:levelThreeColor};
cannonStats[4] = {cannonCost:120, cannonRange:140, cannonDamage:24, cannonColor:levelFourColor};
cannonStats[5] = {cannonCost:300, cannonRange:140, cannonDamage:50, cannonColor:levelFiveColor};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, cannonColor:0};
mouseEnabled = false;
removeChild(sellMe);
base.color.setColor(0);
cannonTitle = "Peon Tower";
cannonDesc = "Your basic hard working Peon Tower.";
buildSound = "Tower1_Build";
sellSound = "Tower1_Sell";
fireSound = "Tower1_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
public function ConstructionComplete():void{
if (shotTimer == null){
shotTimer = new Timer(((1500 + Math.floor((Math.random() * 100))) - 50));
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer.start();
};
base.color.setColor(cannonStats[cannonLevel].cannonColor);
cannonLevel = 1;
constructionComplete = true;
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
public function onShotTimer(_arg1:TimerEvent):void{
var bullet:BasicTowerBullet;
var ev = _arg1;
if (PauseBox.isPaused){
return;
};
var critLoc:Point;
var distance:Number = 0;
targetCritter = PlayGrid.staticThis.findRandomTargetInRange(new Point((this.x + 7.5), (this.y + 7.5)), cannonStats[cannonLevel].cannonRange);
if (targetCritter != null){
if (!pointing){
pointTimer.addEventListener(TimerEvent.TIMER, onPointTimer, false, 0, true);
pointing = true;
};
PointTurretAtTarget(turret, targetCritter);
firedOnce = true;
try {
turret.tower.play();
} catch(ob) {
trace("Somthing went wrong with turret animation T1 ");
};
bullet = new BasicTowerBullet();
bullet.x = 0;
bullet.y = 0;
bullet.gotoAndPlay(2);
turret.spawnPoint.addChild(bullet);
bullet.setTarget(targetCritter);
bullet.setPointDamage(cannonStats[cannonLevel].cannonDamage);
bullet.retargetRange = cannonStats[cannonLevel].cannonRange;
} else {
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
trace((((" Upgrading tower to level " + cannonLevel) + " color = ") + cannonStats[cannonLevel].cannonColor));
base.color.setColor(cannonStats[cannonLevel].cannonColor);
DisplayBoard.static_This.SetDisplay(this);
setSelection();
}
public function onPointTimer(_arg1:TimerEvent):void{
if (constructionComplete == false){
return;
};
PointTurretAtTarget(turret, targetCritter);
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower = new BasicTower();
_local1.gotoAndPlay("Construct");
return (_local1);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 60
//BasicTower2 (BasicTower2)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTower2 extends TowerInterface {
public var turret:MovieClip;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
private var lastShot:Number;// = 0
private static var counter:Number = 0;
public function BasicTower2(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:50, cannonRange:50, cannonDamage:30, damageRadius:20, cannonColor:levelOneColor});
cannonStats[2] = {cannonCost:100, cannonRange:60, cannonDamage:60, damageRadius:25, cannonColor:levelTwoColor};
cannonStats[3] = {cannonCost:200, cannonRange:75, cannonDamage:100, damageRadius:30, cannonColor:levelThreeColor};
cannonStats[4] = {cannonCost:800, cannonRange:100, cannonDamage:400, damageRadius:35, cannonColor:levelFourColor};
cannonStats[5] = {cannonCost:3200, cannonRange:100, cannonDamage:1600, damageRadius:35, cannonColor:levelFiveColor};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, damageRadius:30, cannonColor:0};
mouseEnabled = false;
safeRemoveChild(sellMe);
base.color.setColor(0);
base.mouseEnabled = false;
cannonTitle = "Impact Tower";
cannonDesc = "A usefull tower with area effect goodness.";
buildSound = "Tower2_Build";
sellSound = "Tower2_Sell";
fireSound = "Tower2_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
}
public function ConstructionComplete():void{
constructionComplete = true;
shotTimer = new Timer(1050);
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer.start();
cannonLevel = 1;
base.color.setColor(cannonStats[cannonLevel].cannonColor);
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
public function onShotTimer(_arg1:TimerEvent):void{
var currentTime:Number;
var bullet:BasicTowerBullet2;
var ev = _arg1;
if (PauseBox.isPaused){
return;
};
currentTime = getTimer();
if ((currentTime - 3000) < lastShot){
return;
};
var critLoc:Point;
var distance:Number = 0;
if (targetCritter != null){
if (targetCritter.dead){
targetCritter = null;
} else {
critLoc = new Point(targetCritter.x, targetCritter.y);
distance = Point.distance(critLoc, new Point(x, y));
if (distance > cannonStats[cannonLevel].cannonRange){
targetCritter = null;
};
};
};
if (targetCritter == null){
targetCritter = PlayGrid.staticThis.findFarthestTargetInRange(new Point((this.x + 7.5), (this.y + 7.5)), cannonStats[cannonLevel].cannonRange);
};
if (targetCritter != null){
if (!pointing){
pointTimer.addEventListener(TimerEvent.TIMER, onPointTimer, false, 0, true);
pointing = true;
};
try {
turret.turret.play();
} catch(ob) {
trace("Somthing went wrong with turret animation T2 ");
};
firedOnce = true;
lastShot = currentTime;
bullet = new BasicTowerBullet2();
bullet.x = 0;
bullet.y = 0;
bullet.gotoAndPlay(2);
turret.spawnPoint.addChild(bullet);
bullet.setTarget(targetCritter);
bullet.setPointDamage(cannonStats[cannonLevel].cannonDamage, cannonStats[cannonLevel].damageRadius);
bullet.retargetRange = cannonStats[cannonLevel].cannonRange;
} else {
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
base.color.setColor(cannonStats[cannonLevel].cannonColor);
DisplayBoard.static_This.SetDisplay(this);
setSelection();
}
public function onPointTimer(_arg1:TimerEvent):void{
if (constructionComplete == false){
return;
};
PointTurretAtTarget(turret, targetCritter);
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower2 = new BasicTower2();
_local1.gotoAndPlay("Construct");
return (_local1);
}
function frame1(){
base.gotoAndStop(1);
stop();
mouseChildren = false;
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 61
//BasicTower3 (BasicTower3)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTower3 extends TowerInterface {
public var turret:MovieClip;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
private static var counter:Number = 0;
public function BasicTower3(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
trace((" In BasicTower 3 create " + parent));
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:150, cannonRange:50, cannonDamage:8, damageRadius:30, cannonColor:levelOneColor});
cannonStats[2] = {cannonCost:300, cannonRange:70, cannonDamage:15, damageRadius:30, cannonColor:levelTwoColor};
cannonStats[3] = {cannonCost:600, cannonRange:90, cannonDamage:30, damageRadius:30, cannonColor:levelThreeColor};
cannonStats[4] = {cannonCost:2400, cannonRange:110, cannonDamage:120, damageRadius:30, cannonColor:levelFourColor};
cannonStats[5] = {cannonCost:10000, cannonRange:110, cannonDamage:480, damageRadius:30, cannonColor:levelFiveColor};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, damageRadius:30, cannonColor:0};
mouseEnabled = false;
safeRemoveChild(sellMe);
base.color.setColor(0);
cannonTitle = "Stick Man";
cannonDesc = "Never underestimate a stick man with a machine gun!";
buildSound = "Tower3_Build";
sellSound = "Tower3_Sell";
fireSound = "Tower3_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
}
public function ConstructionComplete():void{
constructionComplete = true;
shotTimer = new Timer(200);
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer.start();
base.color.setColor(cannonStats[cannonLevel].cannonColor);
cannonLevel = 1;
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
public function onShotTimer(_arg1:TimerEvent):void{
var bullet:BasicTowerBullet3;
var ev = _arg1;
if (PauseBox.isPaused){
return;
};
var critLoc:Point;
var distance:Number = 0;
if (targetCritter != null){
if (!pointing){
pointTimer.addEventListener(TimerEvent.TIMER, onPointTimer, false, 0, true);
pointing = true;
};
if (targetCritter.dead){
targetCritter = null;
} else {
critLoc = new Point(targetCritter.x, targetCritter.y);
distance = Point.distance(critLoc, new Point(x, y));
if (distance > cannonStats[cannonLevel].cannonRange){
targetCritter = null;
};
};
} else {
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
};
if (targetCritter == null){
targetCritter = PlayGrid.staticThis.findFarthestTargetInRange(new Point((this.x + 7.5), (this.y + 7.5)), cannonStats[cannonLevel].cannonRange);
};
if (targetCritter != null){
try {
turret.turret.play();
} catch(ob) {
trace("Somthing went wrong with turret animation T3 ");
};
firedOnce = true;
bullet = new BasicTowerBullet3();
PlayGrid.staticThis.addBullet(bullet);
bullet.x = (7.5 + x);
bullet.y = (7.5 + y);
bullet.gotoAndPlay(2);
bullet.setTarget(targetCritter);
bullet.setPointDamage(cannonStats[cannonLevel].cannonDamage, cannonStats[cannonLevel].damageRadius);
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
base.color.setColor(cannonStats[cannonLevel].cannonColor);
DisplayBoard.static_This.SetDisplay(this);
setSelection();
}
public function onPointTimer(_arg1:TimerEvent):void{
if (constructionComplete == false){
return;
};
PointTurretAtTarget(turret, targetCritter);
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower3 = new BasicTower3();
_local1.gotoAndPlay("Construct");
return (_local1);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 62
//BasicTower4 (BasicTower4)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTower4 extends TowerInterface {
public var turret:MovieClip;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
private var bulletArray:Array;
private static var counter:Number = 0;
public function BasicTower4(){
bulletArray = new Array();
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
trace((" In BasicTower 4 create " + parent));
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:450, cannonRange:40, cannonDamage:30, damageRadius:30, cannonColor:levelOneColor});
cannonStats[2] = {cannonCost:900, cannonRange:40, cannonDamage:60, damageRadius:30, cannonColor:levelTwoColor};
cannonStats[3] = {cannonCost:2000, cannonRange:40, cannonDamage:120, damageRadius:30, cannonColor:levelThreeColor};
cannonStats[4] = {cannonCost:10000, cannonRange:40, cannonDamage:600, damageRadius:30, cannonColor:levelFourColor};
cannonStats[5] = {cannonCost:30000, cannonRange:40, cannonDamage:2000, damageRadius:30, cannonColor:levelFiveColor};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, damageRadius:30, cannonColor:0};
mouseEnabled = false;
safeRemoveChild(sellMe);
bulletArray.push(new BasicTowerBullet4());
bulletArray.push(new BasicTowerBullet4());
bulletArray.push(new BasicTowerBullet4());
bulletArray.push(new BasicTowerBullet4());
base.color.setColor(0);
cannonTitle = "Inverted Lightning Rod";
cannonDesc = "Does serious damage over time to up to 4 targets.";
buildSound = "Tower4_Build";
sellSound = "Tower4_Sell";
fireSound = "Tower4_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
removeEventListener(Event.ENTER_FRAME, onFrame);
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
var _local1:Number = 0;
_local1 = 0;
while (_local1 < 4) {
PlayGrid.staticThis.removeBullet(bulletArray[_local1]);
_local1++;
};
}
public function ConstructionComplete():void{
constructionComplete = true;
addEventListener(Event.ENTER_FRAME, onFrame);
shotTimer = new Timer(200);
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer.start();
base.color.setColor(cannonStats[cannonLevel].cannonColor);
cannonLevel = 1;
turret.mouseEnabled = false;
mouseEnabled = false;
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
public function onShotTimer(_arg1:TimerEvent):void{
var bullet:BasicTowerBullet4;
var targetPoint:Point;
var xdiff:Number;
var ydiff:Number;
var angle:Number;
var ev = _arg1;
if (PauseBox.isPaused){
return;
};
var critLoc:Point;
var distance:Number = 0;
var targetedCritters:Array;
targetedCritters = PlayGrid.staticThis.findTargetsNearPoint(new Point((this.x + 7.5), (this.y + 7.5)), cannonStats[cannonLevel].cannonRange);
var bulletIndex:Number = 0;
bulletIndex = 0;
while (bulletIndex < 4) {
PlayGrid.staticThis.removeBullet(bulletArray[bulletIndex]);
bulletIndex = (bulletIndex + 1);
};
bulletIndex = 0;
while (bulletIndex < 4) {
try {
turret.turret.play();
} catch(ob) {
trace("Somthing went wrong with turret animation T4 ");
};
bullet = bulletArray[bulletIndex];
targetCritter = targetedCritters[bulletIndex];
if (targetCritter == null){
} else {
firedOnce = true;
bullet.x = (7.5 + x);
bullet.y = (7.5 + y);
bullet.gotoAndPlay(2);
bullet.setTarget(targetCritter);
bullet.setPointDamage((cannonStats[cannonLevel].cannonDamage / 5), cannonStats[cannonLevel].damageRadius);
targetPoint = new Point(0, 0);
targetPoint.offset(targetCritter.x, targetCritter.y);
xdiff = (x - targetPoint.x);
ydiff = (y - targetPoint.y);
angle = Math.atan2(ydiff, xdiff);
bullet.rotation = (((angle / (2 * Math.PI)) * 360) + 180);
PlayGrid.staticThis.addBullet(bullet);
};
bulletIndex = (bulletIndex + 1);
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
base.color.setColor(cannonStats[cannonLevel].cannonColor);
setSelection();
DisplayBoard.static_This.SetDisplay(this);
}
public function onFrame(_arg1:Event):void{
if (constructionComplete == false){
return;
};
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower4 = new BasicTower4();
_local1.gotoAndPlay("Construct");
return (_local1);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 63
//BasicTower5 (BasicTower5)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTower5 extends TowerInterface {
public var turret:MovieClip;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
var bullet:BasicTowerBullet5;// = null
private static var counter:Number = 0;
public function BasicTower5(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:500, cannonRange:30, cannonDamage:10, cannonColor:levelOneColor});
cannonStats[2] = {cannonCost:800, cannonRange:40, cannonDamage:8, cannonColor:levelTwoColor};
cannonStats[3] = {cannonCost:1100, cannonRange:50, cannonDamage:6, cannonColor:levelThreeColor};
cannonStats[4] = {cannonCost:1400, cannonRange:60, cannonDamage:5, cannonColor:levelFourColor};
cannonStats[5] = {cannonCost:1700, cannonRange:70, cannonDamage:4, cannonColor:levelFiveColor};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, cannonColor:0};
mouseEnabled = false;
removeChild(sellMe);
base.color.setColor(0);
cannonTitle = "Transporter Tower";
cannonDesc = "Transports critters to the start ONCE. Can save your respect, but cuts reward in half.";
buildSound = "Tower5_Build";
sellSound = "Tower5_Sell";
fireSound = "Tower5_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
public function ConstructionComplete():void{
if (shotTimer == null){
shotTimer = new Timer((cannonStats[cannonLevel].cannonDamage * 1000));
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer, false, 0, true);
shotTimer.start();
};
base.color.setColor(cannonStats[cannonLevel].cannonColor);
cannonLevel = 1;
constructionComplete = true;
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
public function onShotTimer(_arg1:TimerEvent):void{
if (PauseBox.isPaused){
return;
};
if (bullet == null){
bullet = new BasicTowerBullet5();
PlayGrid.staticThis.addBullet(bullet);
bullet.x = (7.5 + x);
bullet.y = (7.5 + y);
bullet.gotoAndPlay(2);
shotTimer.stop();
addEventListener(Event.ENTER_FRAME, onFrame, false, 0, true);
} else {
shotTimer.stop();
};
}
public function onFrame(_arg1:Event):void{
var ev = _arg1;
if (bullet == null){
trace(" Got onFrame without bullet !?");
return;
};
if (!bullet.readyToFire){
return;
};
var critLoc:Point;
var distance:Number = 0;
var targetCritter2:Critter = PlayGrid.staticThis.findClosestTargetInRange(new Point((this.x + 7.5), (this.y + 7.5)), cannonStats[cannonLevel].cannonRange);
if (targetCritter2 != null){
try {
turret.turret.play();
} catch(ob) {
trace("Somthing went wrong with turret animation T5 ");
};
firedOnce = true;
bullet.setTarget(targetCritter2);
bullet.setPointDamage(cannonStats[cannonLevel].cannonDamage);
bullet.retargetRange = cannonStats[cannonLevel].cannonRange;
shotTimer.start();
bullet = null;
removeEventListener(Event.ENTER_FRAME, onFrame);
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
base.color.setColor(cannonStats[cannonLevel].cannonColor);
DisplayBoard.static_This.SetDisplay(this);
setSelection();
shotTimer.stop();
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
shotTimer = new Timer((cannonStats[cannonLevel].cannonDamage * 1000));
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer, false, 0, true);
shotTimer.start();
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower5 = new BasicTower5();
_local1.gotoAndPlay("Construct");
return (_local1);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
removeEventListener(Event.ENTER_FRAME, onFrame);
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
if (bullet != null){
PlayGrid.staticThis.removeBullet(bullet);
bullet.setTarget(null);
};
}
function frame1(){
stop();
mouseChildren = false;
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 64
//BasicTower6 (BasicTower6)
package {
import flash.display.*;
import flash.geom.*;
public class BasicTower6 extends TowerInterface {
public var turret:MovieClip;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
private static var counter:Number = 0;
public function BasicTower6(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:100, cannonRange:50, cannonDamage:1, cannonColor:levelOneColor, benifit:1});
cannonStats[2] = {cannonCost:240, cannonRange:60, cannonDamage:2, cannonColor:levelTwoColor, benifit:2};
cannonStats[3] = {cannonCost:500, cannonRange:70, cannonDamage:4, cannonColor:levelThreeColor, benifit:4};
cannonStats[4] = {cannonCost:1000, cannonRange:80, cannonDamage:8, cannonColor:levelFourColor, benifit:8};
cannonStats[5] = {cannonCost:5000, cannonRange:80, cannonDamage:50, cannonColor:levelFiveColor, benifit:50};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, cannonColor:0, benifit:0};
mouseEnabled = false;
removeChild(sellMe);
base.color.setColor(0);
cannonTitle = "Cash Machine";
cannonDesc = "Gives extra money for critters killed in range. Sells back for full value.";
buildSound = "Tower6_Build";
sellSound = "Tower6_Sell";
fireSound = "Tower6_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
public function ConstructionComplete():void{
trace((((((" ConstructionComplete " + count) + " x = ") + x) + " y = ") + y));
base.color.setColor(cannonStats[cannonLevel].cannonColor);
cannonLevel = 1;
constructionComplete = true;
turret.mouseEnabled = false;
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
base.color.setColor(cannonStats[cannonLevel].cannonColor);
DisplayBoard.static_This.SetDisplay(this);
setSelection();
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower6 = new BasicTower6();
_local1.gotoAndPlay("Construct");
return (_local1);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 65
//BasicTower7 (BasicTower7)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTower7 extends TowerInterface {
public var bullet:MovieClip;
public var turret:MovieClip;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
private var lastSound:Number;
private static var counter:Number = 0;
public function BasicTower7(){
lastSound = getTimer();
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
trace((" In BasicTower 4 create " + parent));
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
safeRemoveChild(bullet);
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:100, cannonRange:20, cannonDamage:15, slowEffect:0.5, cannonColor:levelOneColor});
cannonStats[2] = {cannonCost:200, cannonRange:20, cannonDamage:30, slowEffect:0.45, cannonColor:levelTwoColor};
cannonStats[3] = {cannonCost:400, cannonRange:20, cannonDamage:60, slowEffect:0.4, cannonColor:levelThreeColor};
cannonStats[4] = {cannonCost:600, cannonRange:20, cannonDamage:120, slowEffect:0.35, cannonColor:levelFourColor};
cannonStats[5] = {cannonCost:1000, cannonRange:20, cannonDamage:240, slowEffect:0.3, cannonColor:levelFiveColor};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, slowEffect:0, cannonColor:0};
mouseEnabled = false;
safeRemoveChild(sellMe);
base.color.setColor(0);
cannonTitle = "Electric Floor";
cannonDesc = "Slows and does damage to critters who walk on it.";
buildSound = "Tower7_Build";
sellSound = "Tower7_Sell";
fireSound = "Tower7_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
removeEventListener(Event.ENTER_FRAME, onFrame);
if (shotTimer != null){
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
};
safeRemoveChild(bullet);
var _local1:Number = 0;
targetCritter = null;
}
override public function DeployToLocation(_arg1:Number, _arg2:Number):void{
var _local5:Point;
var _local3:Array = PlayGrid.staticThis.playGrid;
gotoAndPlay("Construct");
var _local4:Number = 0;
while (_local4 < shape.length) {
_local5 = new Point((shape[_local4].x + _arg1), (shape[_local4].y + _arg2));
trace(" Deploying Tower with blocked off ");
_local3[_local5.x][_local5.y].SetTower(this);
_local3[_local5.x][_local5.y].SetBlockedOnlyOff();
_local4++;
};
x = _local3[_arg1][_arg2].x;
y = _local3[_arg1][_arg2].y;
cannonGridX = _arg1;
cannonGridY = _arg2;
mouseEnabled = false;
}
public function ConstructionComplete():void{
constructionComplete = true;
addEventListener(Event.ENTER_FRAME, onFrame);
shotTimer = new Timer(200);
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer.start();
base.color.setColor(cannonStats[cannonLevel].cannonColor);
cannonLevel = 1;
turret.mouseEnabled = false;
mouseEnabled = false;
safeRemoveChild(bullet);
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
public function onShotTimer(_arg1:TimerEvent):void{
var _local6:Number;
if (PauseBox.isPaused){
return;
};
var _local2:Point;
var _local3:Number = 0;
var _local4:Array;
_local4 = PlayGrid.staticThis.findTargetsNearPoint(new Point((this.x + 7.5), (this.y + 7.5)), cannonStats[cannonLevel].cannonRange);
if (_local4.length > 0){
addChild(bullet);
} else {
safeRemoveChild(bullet);
};
var _local5:Number = 0;
_local5 = 0;
while (_local5 < _local4.length) {
firedOnce = true;
targetCritter = _local4[_local5];
if (targetCritter == null){
} else {
_local6 = getTimer();
if ((lastSound + 500) < _local6){
lastSound = _local6;
SoundSystem.PlaySound(fireSound);
};
targetCritter.applyDamage((cannonStats[cannonLevel].cannonDamage / 5));
targetCritter.setSlow(cannonStats[cannonLevel].slowEffect, 500);
};
_local5++;
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
base.color.setColor(cannonStats[cannonLevel].cannonColor);
setSelection();
DisplayBoard.static_This.SetDisplay(this);
}
public function onFrame(_arg1:Event):void{
if (constructionComplete == false){
return;
};
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower7 = new BasicTower7();
_local1.gotoAndPlay("Construct");
return (_local1);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 66
//BasicTower8 (BasicTower8)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTower8 extends TowerInterface {
public var turret:MovieClip;
public var base:TowerSquareBase;
public var sellMe:MovieClip;
private var count:Number;// = 0
private static var counter:Number = 0;
public function BasicTower8(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 29, frame30, 42, frame43);
super();
count = counter++;
shape.push(new Point(0, 0));
shape.push(new Point(1, 0));
shape.push(new Point(1, 1));
shape.push(new Point(0, 1));
turret.mouseEnabled = false;
cannonLevel = 0;
cannonStats[0] = (cannonStats[1] = {cannonCost:8800, cannonRange:75, cannonDamage:2000, cannonColor:levelOneColor});
cannonStats[2] = {cannonCost:22000, cannonRange:100, cannonDamage:4500, cannonColor:levelTwoColor};
cannonStats[3] = {cannonCost:55000, cannonRange:150, cannonDamage:9000, cannonColor:levelThreeColor};
cannonStats[4] = {cannonCost:130000, cannonRange:200, cannonDamage:20000, cannonColor:levelFourColor};
cannonStats[5] = {cannonCost:530000, cannonRange:200, cannonDamage:100000, cannonColor:levelFiveColor};
cannonStats[6] = {cannonCost:-1, cannonRange:0, cannonDamage:0, cannonColor:0};
mouseEnabled = false;
removeChild(sellMe);
base.color.setColor(0);
cannonTitle = "Boss Tower";
cannonDesc = "Watch out for the Boss Tower. Can dish serious damage.";
buildSound = "Tower8_Build";
sellSound = "Tower8_Sell";
fireSound = "Tower8_Fire";
}
override public function MarkForSale():void{
addChild(sellMe);
}
public function ConstructionComplete():void{
if (shotTimer == null){
shotTimer = new Timer(((1900 + Math.floor((Math.random() * 200))) - 100));
shotTimer.addEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer.start();
};
base.color.setColor(cannonStats[cannonLevel].cannonColor);
cannonLevel = 1;
constructionComplete = true;
if (isHighlighted){
DisplayBoard.static_This.SetDisplay(this);
};
}
public function onShotTimer(_arg1:TimerEvent):void{
var bullet:BasicTowerBullet8;
var ev = _arg1;
var critLoc:Point;
var distance:Number = 0;
if (PauseBox.isPaused){
return;
};
if (targetCritter != null){
if (targetCritter.dead){
targetCritter = null;
} else {
critLoc = new Point(targetCritter.x, targetCritter.y);
distance = Point.distance(critLoc, new Point(x, y));
if (distance > cannonStats[cannonLevel].cannonRange){
targetCritter = null;
};
};
};
if (targetCritter == null){
targetCritter = PlayGrid.staticThis.findFarthestTargetInRange(new Point(((this.x + 15) + 7.5), (this.y + 7.5)), cannonStats[cannonLevel].cannonRange);
};
if (targetCritter != null){
if (!pointing){
pointTimer.addEventListener(TimerEvent.TIMER, onPointTimer, false, 0, true);
pointing = true;
};
try {
turret.turret.play();
} catch(ob) {
trace("Somthing went wrong with turret animation T8 ");
};
firedOnce = true;
bullet = new BasicTowerBullet8();
PlayGrid.staticThis.addBullet(bullet);
bullet.x = ((15 + 7.5) + x);
bullet.y = (7.5 + y);
bullet.gotoAndPlay(2);
bullet.setTarget(targetCritter);
bullet.setPointDamage(cannonStats[cannonLevel].cannonDamage);
bullet.retargetRange = cannonStats[cannonLevel].cannonRange;
} else {
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
};
}
override public function Upgrade():void{
cannonLevel = (cannonLevel + 1);
base.color.setColor(cannonStats[cannonLevel].cannonColor);
DisplayBoard.static_This.SetDisplay(this);
setSelection();
}
override public function getCenterPoint():Point{
return (new Point(7.5, 7.5));
}
public function onPointTimer(_arg1:TimerEvent):void{
if (constructionComplete == false){
return;
};
PointTurretAtTarget(turret, targetCritter);
}
override public function DeployCopy():MovieClip{
var _local1:BasicTower8 = new BasicTower8();
_local1.gotoAndPlay("Construct");
return (_local1);
}
override public function RemoveFromBoard():void{
super.RemoveFromBoard();
if (pointing){
pointTimer.removeEventListener(TimerEvent.TIMER, onPointTimer);
pointing = false;
};
shotTimer.removeEventListener(TimerEvent.TIMER, onShotTimer);
shotTimer = null;
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
turret.gotoAndPlay("Construct");
}
function frame30(){
stop();
ConstructionComplete();
}
function frame43(){
stop();
}
}
}//package
Section 67
//BasicTowerBullet (BasicTowerBullet)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTowerBullet extends MovieClip {
public var targetCritter:Critter;// = null
public var pointDamage:Number;// = 0
public var retargetRange:Number;// = 0
public var fireSound:String;// = "Tower1_Fire"
private var thisCounter;// = 0
private var lastTime:Number;// = 0
private static var counter = 0;
public function BasicTowerBullet(){
addFrameScript(0, frame1, 1, frame2, 9, frame10);
}
public function setTarget(_arg1:Critter):void{
targetCritter = _arg1;
lastTime = 0;
}
public function shotReady(_arg1:Boolean=false):void{
var _local2:Point;
if (_arg1 == true){
_local2 = PlayGrid.staticThis.globalToLocal(this.localToGlobal(new Point(this.x, this.y)));
x = _local2.x;
y = _local2.y;
PlayGrid.staticThis.addBullet(this);
};
thisCounter = counter;
if (((!((targetCritter == null))) && (!(targetCritter.dead)))){
SoundSystem.PlaySound(fireSound);
};
addEventListener(Event.ENTER_FRAME, onFrame);
counter++;
}
public function onFrame(_arg1:Event):void{
var _local4:Point;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Boolean;
var _local8:Boolean;
if (lastTime == 0){
lastTime = getTimer();
};
var _local2:Number = getTimer();
var _local3:Number = (_local2 - lastTime);
if ((_local2 - lastTime) < 50){
return;
};
lastTime = _local2;
if (PauseBox.isPaused){
return;
};
if (((!((targetCritter == null))) && (targetCritter.dead))){
targetCritter = PlayGrid.staticThis.findFarthestTargetInRange(new Point(this.x, this.y), retargetRange);
};
if (targetCritter != null){
_local4 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local5 = (_local4.x > 0);
_local6 = (_local4.y > 0);
_local4.normalize(((190 / 1000) * _local3));
x = (x + _local4.x);
y = (y + _local4.y);
_local4 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local7 = (_local4.x > 0);
_local8 = (_local4.y > 0);
if (((((targetCritter.dead) || (!((_local5 == _local7))))) || (!((_local6 == _local8))))){
PlayGrid.staticThis.removeBullet(this);
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter.applyDamage(pointDamage);
targetCritter = null;
};
} else {
PlayGrid.staticThis.removeBullet(this);
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter = null;
};
}
public function setPointDamage(_arg1:Number){
pointDamage = _arg1;
}
function frame1(){
mouseEnabled = false;
stop();
}
function frame2(){
}
function frame10(){
if (shotReady != null){
shotReady(true);
} else {
trace(" No shot!?");
};
stop();
}
}
}//package
Section 68
//BasicTowerBullet2 (BasicTowerBullet2)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTowerBullet2 extends MovieClip {
public var targetCritter:Critter;// = null
public var pointDamage:Number;// = 0
private var readyToFire:Boolean;// = false
public var dmgRadius:Number;
public var retargetRange:Number;// = 0
public var fireSound:String;// = "Tower2_Fire"
private var thisCounter;// = 0
private var lastTime:Number;// = 0
private static var counter = 0;
public function BasicTowerBullet2(){
addFrameScript(0, frame1, 1, frame2, 34, frame35, 50, frame51);
}
public function setTarget(_arg1:Critter):void{
targetCritter = _arg1;
lastTime = 0;
readyToFire = false;
addEventListener(Event.ENTER_FRAME, onFrame);
}
public function shotReady(_arg1:Boolean):void{
var _local2:Point;
if (_arg1 == true){
_local2 = PlayGrid.staticThis.globalToLocal(this.localToGlobal(new Point(this.x, this.y)));
x = _local2.x;
y = _local2.y;
PlayGrid.staticThis.addBullet(this);
trace(" Reseting location ");
};
readyToFire = true;
thisCounter = counter;
counter++;
if (targetCritter != null){
SoundSystem.PlaySound(fireSound);
};
}
public function onFrame(_arg1:Event):void{
var _local4:Point;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Point;
var _local9:Boolean;
var _local10:Boolean;
var _local11:Boolean;
var _local12:Boolean;
var _local13:Array;
var _local14:Number;
if (lastTime == 0){
lastTime = getTimer();
};
var _local2:Number = getTimer();
var _local3:Number = (_local2 - lastTime);
if ((_local2 - lastTime) < 50){
return;
};
lastTime = _local2;
if (PauseBox.isPaused){
return;
};
if (((!((targetCritter == null))) && (targetCritter.dead))){
targetCritter = PlayGrid.staticThis.findFarthestTargetInRange(new Point(this.x, this.y), retargetRange);
};
if (targetCritter != null){
_local4 = new Point(0, 0);
_local4.offset(targetCritter.x, targetCritter.y);
_local5 = (x - _local4.x);
_local6 = (y - _local4.y);
_local7 = Math.atan2(_local6, _local5);
if (readyToFire){
rotation = (((_local7 / (2 * Math.PI)) * 360) + 180);
};
if (((readyToFire) || (targetCritter.dead))){
_local8 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local9 = (_local8.x > 0);
_local10 = (_local8.y > 0);
_local8.normalize(((190 / 1000) * _local3));
x = (x + _local8.x);
y = (y + _local8.y);
_local8 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local11 = (_local8.x > 0);
_local12 = (_local8.y > 0);
if (((((targetCritter.dead) || (!((_local9 == _local11))))) || (!((_local10 == _local12))))){
if (targetCritter.dead){
PlayGrid.staticThis.removeBullet(this);
} else {
gotoAndPlay("boom");
};
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter.applyDamage((pointDamage / 2));
_local13 = PlayGrid.staticThis.findTargetsNearPoint(new Point(targetCritter.x, targetCritter.y), dmgRadius);
_local14 = 0;
while (_local14 < _local13.length) {
_local13[_local14].applyDamage((pointDamage / 2));
_local14++;
};
targetCritter = null;
};
};
} else {
if (readyToFire){
PlayGrid.staticThis.removeBullet(this);
} else {
if (parent){
parent.removeChild(this);
};
};
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter = null;
};
}
public function setPointDamage(_arg1:Number, _arg2:Number){
pointDamage = _arg1;
dmgRadius = _arg2;
}
function frame1(){
stop();
}
function frame2(){
}
function frame35(){
mouseEnabled = false;
if (shotReady != null){
shotReady(true);
} else {
trace(" No shot!?");
};
stop();
}
function frame51(){
PlayGrid.staticThis.removeBullet(this);
}
}
}//package
Section 69
//BasicTowerBullet3 (BasicTowerBullet3)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTowerBullet3 extends MovieClip {
public var targetCritter:Critter;// = null
public var pointDamage:Number;// = 0
private var readyToFire:Boolean;// = false
public var dmgRadius:Number;
public var fireSound:String;// = "Tower3_Fire"
private var thisCounter;// = 0
private var lastTime:Number;// = 0
private static var counter = 0;
public function BasicTowerBullet3(){
addFrameScript(0, frame1, 1, frame2, 13, frame14, 50, frame51);
}
public function setTarget(_arg1:Critter):void{
targetCritter = _arg1;
addEventListener(Event.ENTER_FRAME, onFrame, false, 0, true);
lastTime = 0;
readyToFire = false;
}
public function shotReady():void{
readyToFire = true;
thisCounter = counter;
counter++;
if (((!((targetCritter == null))) && (!(targetCritter.dead)))){
SoundSystem.PlaySound(fireSound);
};
}
public function onFrame(_arg1:Event):void{
var _local4:Point;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Point;
var _local9:Boolean;
var _local10:Boolean;
var _local11:Boolean;
var _local12:Boolean;
if (lastTime == 0){
lastTime = getTimer();
};
var _local2:Number = getTimer();
var _local3:Number = (_local2 - lastTime);
if ((_local2 - lastTime) < 50){
return;
};
lastTime = _local2;
if (PauseBox.isPaused){
return;
};
if (targetCritter != null){
_local4 = new Point(0, 0);
_local4.offset(targetCritter.x, targetCritter.y);
_local5 = (x - _local4.x);
_local6 = (y - _local4.y);
_local7 = Math.atan2(_local6, _local5);
rotation = (((_local7 / (2 * Math.PI)) * 360) + 180);
if (((readyToFire) || (targetCritter.dead))){
_local8 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local9 = (_local8.x > 0);
_local10 = (_local8.y > 0);
_local8.normalize(((190 / 1000) * _local3));
x = (x + _local8.x);
y = (y + _local8.y);
_local8 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local11 = (_local8.x > 0);
_local12 = (_local8.y > 0);
if (((((targetCritter.dead) || (!((_local9 == _local11))))) || (!((_local10 == _local12))))){
PlayGrid.staticThis.removeBullet(this);
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter.applyDamage(pointDamage);
targetCritter = null;
};
};
};
}
public function setPointDamage(_arg1:Number, _arg2:Number){
pointDamage = _arg1;
dmgRadius = _arg2;
}
function frame1(){
mouseEnabled = false;
stop();
}
function frame2(){
}
function frame14(){
if (shotReady != null){
shotReady();
} else {
trace(" No shot!?");
};
stop();
}
function frame51(){
PlayGrid.staticThis.removeBullet(this);
}
}
}//package
Section 70
//BasicTowerBullet4 (BasicTowerBullet4)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTowerBullet4 extends MovieClip {
public var targetCritter:Critter;// = null
public var pointDamage:Number;// = 0
private var dmgRadius:Number;// = 0
private var targetHit:Boolean;// = false
public var fireSound:String;// = "Tower4_Fire"
private var lastTime:Number;// = 0
private static var lastSound:Number = 0;
public function BasicTowerBullet4(){
addFrameScript(0, frame1);
}
public function setTarget(_arg1:Critter):void{
targetCritter = _arg1;
addEventListener(Event.ENTER_FRAME, onFrame, false, 0, true);
lastTime = 0;
targetHit = false;
}
public function onFrame(_arg1:Event):void{
var _local4:Point;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (lastTime == 0){
lastTime = getTimer();
};
var _local2:Number = getTimer();
var _local3:Number = (_local2 - lastTime);
if ((_local2 - lastTime) < 50){
return;
};
lastTime = _local2;
if (PauseBox.isPaused){
return;
};
if (targetCritter != null){
_local4 = new Point(0, 0);
_local4.offset(targetCritter.x, targetCritter.y);
_local5 = (x - _local4.x);
_local6 = (y - _local4.y);
_local7 = Math.atan2(_local6, _local5);
rotation = (((_local7 / (2 * Math.PI)) * 360) + 180);
if (!targetHit){
_local8 = getTimer();
if ((lastSound + 700) < _local8){
lastSound = _local8;
SoundSystem.PlaySound(fireSound);
};
targetCritter.applyDamage(pointDamage);
pointDamage = 0;
targetHit = true;
};
if (targetCritter.dead){
targetCritter = null;
removeEventListener(Event.ENTER_FRAME, onFrame);
};
};
}
public function setPointDamage(_arg1:Number, _arg2:Number){
pointDamage = _arg1;
dmgRadius = _arg2;
}
function frame1(){
mouseEnabled = false;
}
}
}//package
Section 71
//BasicTowerBullet5 (BasicTowerBullet5)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTowerBullet5 extends MovieClip {
public var targetCritter:Critter;// = null
public var pointDamage:Number;// = 0
public var retargetRange:Number;// = 0
public var readyToFire:Boolean;// = false
public var fireSound:String;// = "Tower5_Fire"
private var thisCounter;// = 0
private var lastTime:Number;// = 0
private static var counter = 0;
public function BasicTowerBullet5(){
addFrameScript(49, frame50, 69, frame70);
}
public function setTarget(_arg1:Critter):void{
targetCritter = _arg1;
lastTime = 0;
addEventListener(Event.ENTER_FRAME, onFrame);
}
public function shotReady():void{
thisCounter = counter;
counter++;
readyToFire = true;
}
public function onFrame(_arg1:Event):void{
var _local4:Point;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Boolean;
var _local8:Boolean;
var _local9:dmgHighlight;
if (!readyToFire){
return;
};
if (lastTime == 0){
lastTime = getTimer();
};
var _local2:Number = getTimer();
var _local3:Number = (_local2 - lastTime);
if ((_local2 - lastTime) < 50){
return;
};
lastTime = _local2;
if (PauseBox.isPaused){
return;
};
if (((!((targetCritter == null))) && (targetCritter.dead))){
targetCritter = PlayGrid.staticThis.findFarthestTargetInRange(new Point(this.x, this.y), retargetRange);
};
if (targetCritter != null){
_local4 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local5 = (_local4.x > 0);
_local6 = (_local4.y > 0);
_local4.normalize(((190 / 1000) * _local3));
x = (x + _local4.x);
y = (y + _local4.y);
_local4 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local7 = (_local4.x > 0);
_local8 = (_local4.y > 0);
if (((((targetCritter.dead) || (!((_local5 == _local7))))) || (!((_local6 == _local8))))){
PlayGrid.staticThis.removeBullet(this);
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter.reward = Math.ceil((targetCritter.reward / 2));
if (targetCritter.hitByResetTower == false){
targetCritter.hitByResetTower = true;
trace(" Playing Sound ");
SoundSystem.PlaySound(fireSound);
PlayGrid.staticThis.resetCritter(targetCritter);
} else {
_local9 = new dmgHighlight();
_local9.x = targetCritter.x;
_local9.y = targetCritter.y;
_local9.dmg.text = "immune";
PlayGrid.staticThis.addChild(_local9);
_local9.play();
};
targetCritter = null;
};
} else {
PlayGrid.staticThis.removeBullet(this);
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter = null;
};
}
public function setPointDamage(_arg1:Number){
pointDamage = _arg1;
}
function frame50(){
mouseEnabled = false;
shotReady();
}
function frame70(){
gotoAndPlay("cycle");
}
}
}//package
Section 72
//BasicTowerBullet8 (BasicTowerBullet8)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class BasicTowerBullet8 extends MovieClip {
public var targetCritter:Critter;// = null
public var pointDamage:Number;// = 0
public var retargetRange:Number;// = 0
public var fireSound:String;// = "Tower8_Fire"
private var thisCounter;// = 0
private var lastTime:Number;// = 0
private static var counter = 0;
public function BasicTowerBullet8(){
addFrameScript(0, frame1, 1, frame2, 9, frame10);
}
public function setTarget(_arg1:Critter):void{
targetCritter = _arg1;
lastTime = 0;
}
public function shotReady():void{
thisCounter = counter;
if (((!((targetCritter == null))) && (!(targetCritter.dead)))){
SoundSystem.PlaySound(fireSound);
};
addEventListener(Event.ENTER_FRAME, onFrame);
counter++;
}
public function onFrame(_arg1:Event):void{
var _local4:Point;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Boolean;
var _local8:Boolean;
if (lastTime == 0){
lastTime = getTimer();
};
var _local2:Number = getTimer();
var _local3:Number = (_local2 - lastTime);
if ((_local2 - lastTime) < 50){
return;
};
lastTime = _local2;
if (PauseBox.isPaused){
return;
};
if (((!((targetCritter == null))) && (targetCritter.dead))){
targetCritter = PlayGrid.staticThis.findFarthestTargetInRange(new Point(this.x, this.y), retargetRange);
};
if (targetCritter != null){
_local4 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local5 = (_local4.x > 0);
_local6 = (_local4.y > 0);
_local4.normalize(((190 / 1000) * _local3));
x = (x + _local4.x);
y = (y + _local4.y);
_local4 = new Point((targetCritter.x - x), (targetCritter.y - y));
_local7 = (_local4.x > 0);
_local8 = (_local4.y > 0);
if (((((targetCritter.dead) || (!((_local5 == _local7))))) || (!((_local6 == _local8))))){
PlayGrid.staticThis.removeBullet(this);
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter.applyDamage(pointDamage);
targetCritter = null;
};
} else {
PlayGrid.staticThis.removeBullet(this);
removeEventListener(Event.ENTER_FRAME, onFrame);
targetCritter = null;
};
}
public function setPointDamage(_arg1:Number){
pointDamage = _arg1;
}
function frame1(){
stop();
}
function frame2(){
}
function frame10(){
mouseEnabled = false;
if (shotReady != null){
shotReady();
} else {
trace(" No shot!?");
};
stop();
}
}
}//package
Section 73
//BasicTowerTurret (BasicTowerTurret)
package {
import flash.display.*;
public dynamic class BasicTowerTurret extends MovieClip {
public var tower:MovieClip;
public var spawnPoint:MovieClip;
public function BasicTowerTurret(){
addFrameScript(0, frame1, 25, frame26);
}
function frame1(){
mouseChildren = false;
}
function frame26(){
stop();
}
}
}//package
Section 74
//BasicTowerTurret3reversed (BasicTowerTurret3reversed)
package {
import flash.display.*;
public dynamic class BasicTowerTurret3reversed extends MovieClip {
public var turret:MovieClip;
public function BasicTowerTurret3reversed(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package
Section 75
//betterelec1_Sound (betterelec1_Sound)
package {
import flash.media.*;
public dynamic class betterelec1_Sound extends Sound {
}
}//package
Section 76
//betterelec2_Sound (betterelec2_Sound)
package {
import flash.media.*;
public dynamic class betterelec2_Sound extends Sound {
}
}//package
Section 77
//BewaretheRedDot_Sound (BewaretheRedDot_Sound)
package {
import flash.media.*;
public dynamic class BewaretheRedDot_Sound extends Sound {
}
}//package
Section 78
//buzz_001_01_Sound (buzz_001_01_Sound)
package {
import flash.media.*;
public dynamic class buzz_001_01_Sound extends Sound {
}
}//package
Section 79
//charge_Sound (charge_Sound)
package {
import flash.media.*;
public dynamic class charge_Sound extends Sound {
}
}//package
Section 80
//circle_Sound (circle_Sound)
package {
import flash.media.*;
public dynamic class circle_Sound extends Sound {
}
}//package
Section 81
//Critter (Critter)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class Critter extends MovieClip {
public var currentGridBox:GridBox;// = null
public var lastGridBox:GridBox;// = null
public var speed:Number;// = 0.03
public var dead:Boolean;// = false
private var _hitpoints:Number;// = 1
public var maxhitPoints:Number;// = 1
public var reward:Number;// = 1
public var boxesTraveled:Number;// = 0
public var planedRotation:Number;// = 0
public var tempSlowRate:Number;// = 1
public var tempSlowEffectiveTime:Number;// = 0
public var hitByResetTower:Boolean;// = false
public var rotate;// = true
public var enterSound:String;// = "Critter1_In"
public var exitSound:String;// = "Critter1_Out"
public var dieSound:String;// = "Critter1_Die"
public var lastExit:Number;// = 0
private var lifeTimer:Timer;
private var lifeStat:Sprite;
private var over:Boolean;// = false
public var lastTime:Number;// = 0
public static var lastSound:Number = 0;
public function Critter(_arg1:StartGridBox=null){
lifeTimer = new Timer(1000);
lifeStat = new Sprite();
super();
if (_arg1 != null){
JumpToStart(_arg1);
};
boxesTraveled = (boxesTraveled + 1);
addEventListener(Event.ENTER_FRAME, EnterFrameHandler, false, 0, true);
planedRotation = rotation;
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false, 0, true);
Key.dispatcher.addEventListener("KEY_DOWN.32", showLifeBar, false, 0, true);
Key.dispatcher.addEventListener("KEY_UP.32", removeLifeBar, false, 0, true);
}
public function set hitpoints(_arg1:Number):void{
_hitpoints = _arg1;
if (_arg1 > maxhitPoints){
maxhitPoints = _arg1;
};
drawLifeBar();
}
public function get hitpoints():Number{
return (_hitpoints);
}
public function setSlow(_arg1:Number, _arg2:Number):void{
tempSlowRate = _arg1;
tempSlowEffectiveTime = (getTimer() + _arg2);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
private function drawLifeBar():void{
if (over == true){
lifeStat.graphics.clear();
lifeStat.graphics.beginFill(0xFF0000, 1);
lifeStat.graphics.lineStyle(1, 0, 1);
lifeStat.graphics.drawRect(-15, 0, (30 * (_hitpoints / maxhitPoints)), 5);
lifeStat.graphics.endFill();
lifeStat.graphics.drawRect(-15, 0, 30, 5);
};
}
private function showLifeBar(_arg1:Event){
onMouseOver(null);
}
private function removeLifeBar(_arg1:Event){
onMouseOut(null);
}
private function onMouseOver(_arg1:MouseEvent){
over = true;
drawLifeBar();
if (currentGridBox != null){
addChild(lifeStat);
};
}
private function onTimer(_arg1:TimerEvent):void{
if (over == false){
safeRemoveChild(lifeStat);
lifeTimer.removeEventListener(TimerEvent.TIMER, onTimer);
lifeTimer.stop();
};
}
private function onMouseOut(_arg1:MouseEvent){
over = false;
lifeTimer.addEventListener(TimerEvent.TIMER, onTimer, false, 0, true);
lifeTimer.start();
}
public function JumpToStart(_arg1:StartGridBox){
currentGridBox = _arg1.box;
lastGridBox = currentGridBox;
x = currentGridBox.x;
y = currentGridBox.y;
}
private function die(){
var _local1:Array;
var _local2:Number;
var _local3:Number;
var _local4:dmgHighlight;
var _local5:Number;
if (dead){
return;
};
currentGridBox = null;
lastGridBox = null;
removeEventListener(Event.ENTER_FRAME, EnterFrameHandler);
PlayGrid.staticThis.RemoveCritter(this, true);
dead = true;
Key.dispatcher.removeEventListener("KEY_DOWN.32", showLifeBar);
Key.dispatcher.removeEventListener("KEY_UP.32", removeLifeBar);
if (hitpoints <= 0){
_local1 = PlayGrid.staticThis.getMoneyTowersInRange(new Point(this.x, this.y));
_local2 = 0;
_local3 = 0;
_local3 = 0;
while (_local3 < _local1.length) {
_local2 = (_local2 + _local1[_local3].cannonStats[_local1[_local3].cannonLevel].benifit);
_local3++;
};
ScoreBoard.static_This.CurrentCash = (ScoreBoard.static_This.CurrentCash + (reward + _local2));
SoundSystem.PlaySound("moneyDrop");
ScoreBoard.static_This.CurrentScore = (ScoreBoard.static_This.CurrentScore + ((ScoreBoard.static_This.CurrentLevel * ScoreBoard.static_This.CurrentLevel) * PlayGrid.staticThis.currentCritters.length));
_local4 = new dmgHighlight();
_local4.x = x;
_local4.y = y;
_local4.dmg.text = ("" + (reward + _local2));
PlayGrid.staticThis.addChild(_local4);
_local4.play();
SoundSystem.PlaySound(dieSound);
ScoreBoard.static_This.lastLevel();
} else {
_local5 = getTimer();
if ((lastSound + 1000) < _local5){
SoundSystem.PlaySound(exitSound);
lastSound = _local5;
};
ScoreBoard.static_This.CurrentRespect = (ScoreBoard.static_This.CurrentRespect - 1);
ScoreBoard.static_This.lastLevel();
};
}
public function EnterFrameHandler(_arg1:Event):void{
var _local4:Boolean;
var _local5:Boolean;
var _local6:Point;
var _local7:Number;
var _local8:Boolean;
var _local9:Boolean;
var _local2:Number = getTimer();
var _local3:Number = (_local2 - lastTime);
if (lastTime == 0){
_local3 = 1;
};
lastTime = _local2;
if (currentGridBox == null){
return;
};
if (PauseBox.isPaused){
return;
};
if (((!((x == currentGridBox.x))) || (!((y == currentGridBox.y))))){
_local4 = (x < currentGridBox.x);
_local5 = (y < currentGridBox.y);
_local6 = new Point((currentGridBox.x - x), (currentGridBox.y - y));
_local7 = speed;
if (tempSlowEffectiveTime > getTimer()){
_local7 = (_local7 * tempSlowRate);
};
_local6.normalize((_local7 * _local3));
x = (x + _local6.x);
y = (y + _local6.y);
UpdateRotation(_local3);
_local8 = (x < currentGridBox.x);
_local9 = (y < currentGridBox.y);
if (((!((_local4 == _local8))) || (!((_local5 == _local9))))){
if (((!((currentGridBox.bestPath == null))) && ((currentGridBox.bestPath.length > 0)))){
lastGridBox = currentGridBox;
currentGridBox = currentGridBox.bestPath[0];
boxesTraveled = (boxesTraveled + 1);
} else {
if (currentGridBox.exitSquare){
x = currentGridBox.x;
y = currentGridBox.y;
die();
} else {
currentGridBox.bestPath = PlayGrid.staticThis.GetPathToExit(currentGridBox, true);
if ((((currentGridBox.bestPath == null)) || ((currentGridBox.bestPath.length == 0)))){
lastGridBox = null;
currentGridBox = null;
};
PlayGrid.staticThis.PropigatePath(currentGridBox.bestPath);
PlayGrid.staticThis.DrawAllPaths();
};
};
};
} else {
if (((!((currentGridBox.bestPath == null))) && ((currentGridBox.bestPath.length > 0)))){
currentGridBox = currentGridBox.bestPath[0];
boxesTraveled = (boxesTraveled + 1);
} else {
x = currentGridBox.x;
y = currentGridBox.y;
currentGridBox = null;
lastGridBox = null;
};
};
}
public function applyDamage(_arg1:Number){
hitpoints = (hitpoints - _arg1);
if (hitpoints < 1){
die();
};
}
public function UpdateRotation(_arg1:Number):void{
var _local4:Number;
var _local2:Number = 0;
if (currentGridBox.x > lastGridBox.x){
if (currentGridBox.y > lastGridBox.y){
_local2 = 45;
} else {
if (currentGridBox.y == lastGridBox.y){
_local2 = 0;
} else {
_local2 = -45;
};
};
} else {
if (currentGridBox.x == lastGridBox.x){
if (currentGridBox.y > lastGridBox.y){
_local2 = 90;
} else {
if (currentGridBox.y == lastGridBox.y){
_local2 = 0;
} else {
_local2 = -90;
};
};
} else {
if (currentGridBox.y > lastGridBox.y){
_local2 = 135;
} else {
if (currentGridBox.y == lastGridBox.y){
_local2 = 180;
} else {
_local2 = -135;
};
};
};
};
if (_local2 < 0){
_local2 = (_local2 + 360);
};
if (_local2 > 360){
_local2 = (_local2 - 360);
};
var _local3:Number = rotation;
if (_local3 < 0){
_local3 = (_local3 + 360);
};
_local3 = (_local3 % 360);
if (Math.abs((_local2 - _local3)) < 10){
planedRotation = _local2;
} else {
_local4 = ((speed * 10) * _arg1);
if (Math.abs((_local2 - _local3)) > 180){
if (_local3 < _local2){
if ((_local3 + _local4) > _local2){
planedRotation = _local2;
} else {
planedRotation = (planedRotation - _local4);
};
} else {
if ((_local3 - _local4) < _local2){
planedRotation = _local2;
} else {
planedRotation = (planedRotation + _local4);
};
};
} else {
if (_local3 > _local2){
if ((_local3 - _local4) < _local2){
planedRotation = _local2;
} else {
planedRotation = (planedRotation - _local4);
};
} else {
if ((_local3 + _local4) > _local2){
planedRotation = _local2;
} else {
planedRotation = (planedRotation + _local4);
};
};
};
};
if (Math.abs((planedRotation - rotation)) > 3){
if (rotate){
lifeStat.rotation = (planedRotation * -1);
rotation = planedRotation;
} else {
rotation = 0;
};
};
}
public function copy(){
trace(((" Somthing didn't get implemented right. " + this) + " didn't implement copy() "));
}
}
}//package
Section 82
//Critter1 (Critter1)
package {
public class Critter1 extends Critter {
public function Critter1(_arg1:StartGridBox=null){
super(_arg1);
hitpoints = 6;
speed = (40 / 1000);
enterSound = "Critter1_In";
exitSound = "Critter1_Out";
dieSound = "Critter1_Die";
}
override public function copy(){
return (new Critter1());
}
}
}//package
Section 83
//Critter2 (Critter2)
package {
public class Critter2 extends Critter {
public function Critter2(_arg1:StartGridBox=null){
super(_arg1);
hitpoints = 3;
speed = (80 / 1000);
enterSound = "Critter2_In";
exitSound = "Critter2_Out";
dieSound = "Critter2_Die";
rotate = false;
}
override public function copy(){
return (new Critter2());
}
}
}//package
Section 84
//Critter3 (Critter3)
package {
public class Critter3 extends Critter {
public function Critter3(_arg1:StartGridBox=null){
super(_arg1);
hitpoints = 9;
speed = (25 / 1000);
enterSound = "Critter3_In";
exitSound = "Critter3_Out";
dieSound = "Critter3_Die";
}
override public function copy(){
return (new Critter3());
}
}
}//package
Section 85
//CritterFactory (CritterFactory)
package {
public class CritterFactory {
public static var waves:Array = new Array();
public static var currentWave:Number = 0;
private static var BossCount:Number = 1;
private static var BossIndex:Number = 1;
public static var increaseRate:Number = 1.25;
public static var moneyDivide:Number = 9;
public static var healthMultiplier:Number = 1;
public static function CreateCritter(_arg1:Number, _arg2:StartGridBox=null):Critter{
switch (_arg1){
case 1:
return (new Critter1(_arg2));
case 2:
return (new Critter2(_arg2));
case 3:
return (new Critter3(_arg2));
case 4:
return (CreateCritter((Math.floor((Math.random() * 3)) + 1), _arg2));
};
return (new Critter1(_arg2));
}
public static function calculateLevelPower(_arg1:Number):Number{
var _local2:Number = _arg1.valueOf();
var _local3:Number = 1;
if (_local2 > 0){
_local3 = (_local3 + Math.pow((1 + (increaseRate * 1)), _local2));
};
if ((((healthMultiplier > 1)) && ((_arg1 > 0)))){
return ((_local3 * (1 + (_arg1 / 100))));
};
return ((_local3 * healthMultiplier));
}
public static function getWave():CritterWave{
var _local1:Number = (ScoreBoard.static_This.CurrentLevel - 1);
if (_local1 == 0){
BossCount = (BossIndex = 1);
};
var _local2:Number = ((_local1 % 4) + 1);
var _local3:Number = 1;
var _local4:Number = 20;
var _local5:Number = 5;
var _local6:Number = 5000;
var _local7:Number = 1;
var _local8:Number = 0;
_local8 = calculateLevelPower(_local1);
var _local9:Number = 1;
while (_local9 < 100) {
trace((((" level " + _local9) + " will be ") + calculateLevelPower(_local9)));
_local9++;
};
if (_local2 == 4){
_local3 = 6;
_local3 = (_local3 * _local8);
_local2 = BossIndex;
_local4 = BossCount;
_local6 = 2000;
_local5 = 1;
_local7 = (Math.ceil((_local3 / moneyDivide)) * 10);
BossIndex++;
if (BossIndex == 4){
BossIndex = 1;
};
} else {
_local3 = 1;
_local3 = (_local3 * _local8);
_local7 = Math.ceil((_local3 / moneyDivide));
};
var _local10:CritterWave = new CritterWave();
_local10.critterHealthMultiplier = _local3;
_local10.critterIndex = _local2;
_local10.crittersPerSet = _local5;
_local10.msBetweenSets = _local6;
_local10.numberOfCritters = _local4;
_local10.rewardPerCritter = _local7;
trace(("reward = " + _local10.rewardPerCritter));
return (_local10.copy());
}
public static function InitWaves(){
var _local1:CritterWave = new CritterWave();
_local1.critterHealthMultiplier = 1;
_local1.critterIndex = 1;
_local1.crittersPerSet = 2;
_local1.msBetweenSets = 3000;
_local1.numberOfCritters = 10;
_local1.rewardPerCritter = 1;
waves.push(_local1.copy());
_local1.critterHealthMultiplier = 1;
_local1.critterIndex = 2;
_local1.crittersPerSet = 4;
_local1.msBetweenSets = 3000;
_local1.numberOfCritters = 15;
_local1.rewardPerCritter = 1;
waves.push(_local1.copy());
_local1.critterHealthMultiplier = 1;
_local1.critterIndex = 3;
_local1.crittersPerSet = 3;
_local1.msBetweenSets = 2000;
_local1.numberOfCritters = 10;
_local1.rewardPerCritter = 1;
waves.push(_local1.copy());
_local1.critterHealthMultiplier = 10;
_local1.critterIndex = 1;
_local1.crittersPerSet = 1;
_local1.msBetweenSets = 2000;
_local1.numberOfCritters = 1;
_local1.rewardPerCritter = 20;
waves.push(_local1.copy());
}
}
}//package
Section 86
//CritterSelection (CritterSelection)
package {
import flash.display.*;
public class CritterSelection extends MovieClip {
public var theCritter:Critter3;
public var theRealCritter:MovieClip;// = null
public function CritterSelection(){
removeChild(theCritter);
theCritter = null;
}
public function setCritter(_arg1:Critter){
if (theRealCritter != null){
removeChild(theRealCritter);
};
theRealCritter = _arg1;
if (theRealCritter != null){
addChild(theRealCritter);
};
}
}
}//package
Section 87
//CritterStats (CritterStats)
package {
import flash.display.*;
import flash.text.*;
public class CritterStats extends MovieClip {
public var selection:CritterSelection;
public var desc:TextField;
private var settable:Boolean;// = true
public function CritterStats(){
selection.setCritter(null);
}
public function commafy(_arg1:Number):String{
var _local2:String = Math.floor(_arg1).toString();
var _local3:Array = [];
while (_local2.length > 3) {
_local3.unshift(_local2.slice((_local2.length - 3), _local2.length));
_local2 = _local2.slice(0, (_local2.length - 3));
};
_local3.unshift(_local2);
return (_local3.join(","));
}
public function SetDisplay(_arg1:Critter){
if (((!((_arg1 == null))) && ((settable == false)))){
return;
};
if (((!((_arg1 == null))) && ((settable == true)))){
selection.setCritter(_arg1.copy());
desc.text = ((("HP: " + commafy(_arg1.hitpoints)) + " Reward: ") + commafy(Math.floor(_arg1.reward)));
settable = false;
};
if (_arg1 == null){
settable = true;
};
}
}
}//package
Section 88
//CritterWave (CritterWave)
package {
public class CritterWave {
public var critterIndex:Number;// = 0
public var critters:Array;
public var numberOfCritters:Number;// = 1
public var crittersPerSet:Number;// = 1
public var msBetweenSets:Number;// = 1000
public var critterHealthMultiplier:Number;// = 1
public var rewardPerCritter;// = 1
public function CritterWave(){
critters = new Array();
super();
}
public function copy():CritterWave{
var _local1:CritterWave;
var _local2:Critter;
trace(" critter copy function ");
_local1 = new CritterWave();
_local1.critterHealthMultiplier = critterHealthMultiplier;
_local1.critterIndex = critterIndex;
_local1.crittersPerSet = crittersPerSet;
_local1.msBetweenSets = msBetweenSets;
_local1.numberOfCritters = numberOfCritters;
_local1.critters = new Array();
_local1.rewardPerCritter = rewardPerCritter;
while (_local1.critters.length < numberOfCritters) {
_local2 = CritterFactory.CreateCritter(critterIndex);
_local2.hitpoints = Math.ceil((_local2.hitpoints * critterHealthMultiplier));
_local2.reward = rewardPerCritter;
_local1.critters.push(_local2);
};
return (_local1);
}
}
}//package
Section 89
//Cursor_Marker (Cursor_Marker)
package {
import flash.display.*;
public dynamic class Cursor_Marker extends MovieClip {
public function Cursor_Marker(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
mouseChildren = false;
}
}
}//package
Section 90
//Cyborg_Zap_Sound (Cyborg_Zap_Sound)
package {
import flash.media.*;
public dynamic class Cyborg_Zap_Sound extends Sound {
}
}//package
Section 91
//DisplayBoard (DisplayBoard)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class DisplayBoard extends MovieClip {
public var description:TextField;
public var Sell:MovieClip;
public var UpgradeRange:TextField;
public var UpgradeDamage:TextField;
public var CurrentRange:TextField;
public var Arrows:MovieClip;
public var title:TextField;
public var CurrentCost:TextField;
public var reveal:MovieClip;
public var Upgrade:MovieClip;
public var UpgradeCost:TextField;
public var CurrentDamage:TextField;
private var Cannon:TowerInterface;// = null
public static var static_This:DisplayBoard;
public function DisplayBoard(){
addFrameScript(0, frame1);
trace(" DisplayBoard() Constructor ");
static_This = this;
Sell.addEventListener(MouseEvent.CLICK, sellButton);
Key.dispatcher.addEventListener("KEY_DOWN.83", sellButton);
Upgrade.addEventListener(MouseEvent.CLICK, upgradeButton);
Key.dispatcher.addEventListener("KEY_DOWN.85", upgradeButton);
}
public function upgradeButton(_arg1:Event):void{
var me = _arg1;
try {
this.getChildIndex(Upgrade);
} catch(er:ArgumentError) {
return;
};
if (Cannon != null){
PlayGrid.staticThis.UpgradeTower(Cannon);
};
}
public function sellButton(_arg1:Event):void{
var me = _arg1;
try {
this.getChildIndex(Sell);
} catch(er:ArgumentError) {
return;
};
if (Cannon != null){
PlayGrid.staticThis.SellTower(Cannon);
};
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function commafy(_arg1:Number):String{
var _local2:String = Math.floor(_arg1).toString();
var _local3:Array = [];
while (_local2.length > 3) {
_local3.unshift(_local2.slice((_local2.length - 3), _local2.length));
_local2 = _local2.slice(0, (_local2.length - 3));
};
_local3.unshift(_local2);
return (_local3.join(","));
}
public function SetDisplay(_arg1:TowerInterface){
if (Cannon != null){
Cannon.clearSelection();
};
Cannon = _arg1;
if (Cannon == null){
safeRemoveChild(Sell);
safeRemoveChild(Upgrade);
safeRemoveChild(UpgradeCost);
safeRemoveChild(UpgradeDamage);
safeRemoveChild(UpgradeRange);
safeRemoveChild(Arrows);
title.text = "";
description.text = "";
reveal.gotoAndPlay("reveal");
CurrentCost.text = "";
CurrentDamage.text = "";
CurrentRange.text = "";
return;
};
Cannon.setSelection();
var _local2:String = Cannon.cannonTitle;
if (Cannon.cannonLevel != 0){
_local2 = (_local2 + (" " + Cannon.cannonLevel));
};
var _local3:String = Cannon.cannonDesc;
var _local4:Object = Cannon.cannonStats[Cannon.cannonLevel];
var _local5:Object = Cannon.cannonStats[(Cannon.cannonLevel + 1)];
safeRemoveChild(Sell);
safeRemoveChild(Upgrade);
safeRemoveChild(UpgradeCost);
safeRemoveChild(UpgradeDamage);
safeRemoveChild(UpgradeRange);
safeRemoveChild(Arrows);
if (Cannon.cannonLevel != 0){
addChild(UpgradeCost);
addChild(UpgradeDamage);
addChild(UpgradeRange);
addChild(Arrows);
addChild(Sell);
};
CurrentCost.text = commafy(_local4.cannonCost);
CurrentDamage.text = commafy(_local4.cannonDamage);
CurrentRange.text = ("" + _local4.cannonRange);
if (((!((Cannon.cannonLevel == 0))) && (!((_local5.cannonCost == -1))))){
UpgradeCost.text = ("+" + commafy((_local5.cannonCost - _local4.cannonCost)));
UpgradeDamage.text = commafy(_local5.cannonDamage);
UpgradeRange.text = ("" + _local5.cannonRange);
addChild(Upgrade);
} else {
UpgradeCost.text = "maxed";
UpgradeDamage.text = "maxed";
UpgradeRange.text = "maxed";
};
if (((!((_local2 == title.text))) || (!((_local3 == description.text))))){
title.text = _local2;
description.text = _local3;
reveal.gotoAndPlay("reveal");
};
}
function frame1(){
stop();
}
}
}//package
Section 92
//dmgHighlight (dmgHighlight)
package {
import flash.display.*;
import flash.text.*;
public dynamic class dmgHighlight extends MovieClip {
public var dmg:TextField;
public function dmgHighlight(){
addFrameScript(14, frame15);
}
function frame15(){
parent.removeChild(this);
if (parent != null){
trace("remove Failed");
};
stop();
}
}
}//package
Section 93
//doesyourmotherknow_Sound (doesyourmotherknow_Sound)
package {
import flash.media.*;
public dynamic class doesyourmotherknow_Sound extends Sound {
}
}//package
Section 94
//doh1D_Sound (doh1D_Sound)
package {
import flash.media.*;
public dynamic class doh1D_Sound extends Sound {
}
}//package
Section 95
//doh2D_Sound (doh2D_Sound)
package {
import flash.media.*;
public dynamic class doh2D_Sound extends Sound {
}
}//package
Section 96
//dontsniffthemarkers_Sound (dontsniffthemarkers_Sound)
package {
import flash.media.*;
public dynamic class dontsniffthemarkers_Sound extends Sound {
}
}//package
Section 97
//drawtower1_Sound (drawtower1_Sound)
package {
import flash.media.*;
public dynamic class drawtower1_Sound extends Sound {
}
}//package
Section 98
//drawtower2_Sound (drawtower2_Sound)
package {
import flash.media.*;
public dynamic class drawtower2_Sound extends Sound {
}
}//package
Section 99
//drawtower3_Sound (drawtower3_Sound)
package {
import flash.media.*;
public dynamic class drawtower3_Sound extends Sound {
}
}//package
Section 100
//drawtower4_Sound (drawtower4_Sound)
package {
import flash.media.*;
public dynamic class drawtower4_Sound extends Sound {
}
}//package
Section 101
//drawtower5_Sound (drawtower5_Sound)
package {
import flash.media.*;
public dynamic class drawtower5_Sound extends Sound {
}
}//package
Section 102
//drawtower6_Sound (drawtower6_Sound)
package {
import flash.media.*;
public dynamic class drawtower6_Sound extends Sound {
}
}//package
Section 103
//Drop_Coin_1_HardSurface_Light_0_Sound (Drop_Coin_1_HardSurface_Light_0_Sound)
package {
import flash.media.*;
public dynamic class Drop_Coin_1_HardSurface_Light_0_Sound extends Sound {
}
}//package
Section 104
//easy_Sound (easy_Sound)
package {
import flash.media.*;
public dynamic class easy_Sound extends Sound {
}
}//package
Section 105
//FOLEY_COIN_QUARTER_DROP_ROCKS_01_Sound (FOLEY_COIN_QUARTER_DROP_ROCKS_01_Sound)
package {
import flash.media.*;
public dynamic class FOLEY_COIN_QUARTER_DROP_ROCKS_01_Sound extends Sound {
}
}//package
Section 106
//GameMain (GameMain)
package {
import flash.display.*;
import flash.ui.*;
public dynamic class GameMain extends MovieClip {
public var critstats:CritterStats;
public var displayBoard:DisplayBoard;
public var playGrid:PlayGrid;
public var nextButton:MovieClip;
public var GameOver:GameOverDisplay;
public var pauseBox:PauseBox;
private var parentRemember:DisplayObjectContainer;// = null
public var gameMode:String;
public static var static_this:GameMain = null;
public static var cursorImage:Cursor_Marker = null;
public function GameMain(){
cursorImage = new Cursor_Marker();
cursorImage.startDrag(true);
parent.addChild(cursorImage);
Mouse.hide();
trace(" Game Main ");
static_this = this;
playGrid.setNextButton(nextButton);
parentRemember = parent;
parent.removeChild(this);
safeRemoveChild(GameOver);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function NewGame(_arg1:String):void{
gameMode = _arg1;
switch (_arg1){
case GameMenu.Easy:
ScoreBoard.static_This.CurrentRespect = 20;
ScoreBoard.static_This.CurrentCash = 120;
ScoreBoard.static_This.LevelCap = 30;
CritterFactory.increaseRate = 0.25;
CritterFactory.healthMultiplier = 0.75;
CritterFactory.moneyDivide = 4.5;
HighScore.scoreTable = "b394ee2a182f86a8";
break;
case GameMenu.Medium:
ScoreBoard.static_This.CurrentRespect = 10;
ScoreBoard.static_This.CurrentCash = 80;
ScoreBoard.static_This.LevelCap = 50;
CritterFactory.increaseRate = 0.25;
CritterFactory.moneyDivide = 4.5;
CritterFactory.healthMultiplier = 1;
HighScore.scoreTable = "c8aae2b3bcaaac2a";
break;
case GameMenu.Hard:
ScoreBoard.static_This.CurrentRespect = 10;
ScoreBoard.static_This.CurrentCash = 60;
ScoreBoard.static_This.LevelCap = 50;
CritterFactory.increaseRate = 0.25;
CritterFactory.moneyDivide = 5.3;
CritterFactory.healthMultiplier = 1.15;
HighScore.scoreTable = "c9b7f9e3b485da60";
break;
case GameMenu.Endless:
ScoreBoard.static_This.CurrentRespect = 10;
ScoreBoard.static_This.CurrentCash = 60;
ScoreBoard.static_This.LevelCap = 0;
CritterFactory.increaseRate = 0.25;
CritterFactory.moneyDivide = 5.3;
CritterFactory.healthMultiplier = 1.15;
HighScore.scoreTable = "2be4929988014eed";
break;
};
ScoreBoard.static_This.CurrentScore = 0;
ScoreBoard.static_This.CurrentLevel = 0;
PlayGrid.staticThis.setGameType(_arg1);
parentRemember.addChild(this);
safeRemoveChild(GameOver);
addChild(displayBoard);
parent.addChild(cursorImage);
pauseBox.setPausedState(false);
}
public function BackToMenu():void{
trace((((((" here ," + parent) + " : ") + parentRemember) + " + ") + GameMenu.static_This));
try {
parent.removeChild(this);
} catch(Err:Error) {
};
GameMenu.static_This.reset();
safeRemoveChild(GameOver);
}
public function loadLeaderBoard(){
try {
parent.removeChild(this);
} catch(Err:Error) {
};
HighScore.static_This.reset();
safeRemoveChild(GameOver);
}
public function GameOverMan():void{
trace("Game Over Man ");
addChild(GameOver);
GameOver.UpdateDisplay();
safeRemoveChild(displayBoard);
pauseBox.setPausedState(true);
parent.addChild(cursorImage);
}
}
}//package
Section 107
//GameMenu (GameMenu)
package {
import flash.display.*;
import flash.net.*;
public class GameMenu extends MovieClip {
public var onlyAt:MovieClip;
public var Instructs:MovieClip;
public var header:MovieClip;
public var line1:menuTextButton;
public var line2:menuTextButton;
public var line3:menuTextButton;
public var line4:menuTextButton;
public var line5:menuTextButton;
public var creds:MovieClip;
public var CurrentMenu:Number;// = 1
private var parentRemember:DisplayObjectContainer;// = null
private var clickStarted:Boolean;// = false
public static const OpeningMenu:Number = 1;
public static const NewGameMenu:Number = 2;
public static const Intructions:Number = 3;
public static const Easy:String = "30 Easy Levels";
public static const Medium:String = "50 Normal Levels";
public static const Hard:String = "50 Hard Levels";
public static const Endless:String = "Endless Hard Levels";
public static var static_This:GameMenu;
public static var domain:String = "empty";
public function GameMenu(){
trace(" GameMenu() Constructor ");
parentRemember = parent;
parent.removeChild(this);
static_This = this;
reset();
safeRemoveChild(creds);
safeRemoveChild(Instructs);
}
public function reset():void{
parentRemember.addChild(this);
line1.init("line1", textClickHandler, startClicked, checkStarted);
line2.init("line2", textClickHandler, startClicked, checkStarted);
line3.init("line3", textClickHandler, startClicked, checkStarted);
line4.init("line4", textClickHandler, startClicked, checkStarted);
line5.init("line5", textClickHandler, startClicked, checkStarted);
addChild(header);
CurrentMenu = OpeningMenu;
LaunchMenu();
if (GameMain.cursorImage != null){
GameMain.cursorImage.parent.addChild(GameMain.cursorImage);
};
}
public function LaunchMenu(){
safeRemoveChild(line1);
safeRemoveChild(line2);
safeRemoveChild(line3);
safeRemoveChild(line4);
safeRemoveChild(line5);
switch (CurrentMenu){
case OpeningMenu:
addChild(line2);
addChild(line3);
addChild(line4);
addChild(line5);
line2.setText("New Game");
line3.setText("Instructions");
line4.setText("Credits");
line5.setText("More Great Games");
safeRemoveChild(onlyAt);
break;
case NewGameMenu:
trace(("domain = " + domain));
if (domain != "mindjolt.com"){
addChild(onlyAt);
};
addChild(line2);
addChild(line3);
addChild(line4);
if (domain != "mindjolt.com"){
addChild(line5);
};
line2.setText(Easy);
line3.setText(Medium);
line4.setText(Hard);
line5.setText(Endless);
trace((" Play Field Initialized = " + PlayGrid.staticThis));
break;
};
}
public function textClickHandler(_arg1:String):void{
var _local2:URLRequest;
var _local3:URLRequest;
trace("Menu Button");
trace(("called with " + _arg1));
clickStarted = false;
switch (CurrentMenu){
case OpeningMenu:
switch (_arg1){
case "New Game":
CurrentMenu = NewGameMenu;
LaunchMenu();
break;
case "Credits":
addChild(creds);
safeRemoveChild(line1);
safeRemoveChild(line2);
safeRemoveChild(line3);
safeRemoveChild(line4);
safeRemoveChild(line5);
safeRemoveChild(header);
break;
case "Instructions":
addChild(Instructs);
safeRemoveChild(line1);
safeRemoveChild(line2);
safeRemoveChild(line3);
safeRemoveChild(line4);
safeRemoveChild(line5);
safeRemoveChild(header);
break;
case "More Great Games":
_local2 = new URLRequest("http://armorgames.com?referral=gameWhiteBoardTD");
navigateToURL(_local2);
break;
};
break;
case NewGameMenu:
if (((!((domain == "armorgames.com"))) && ((_arg1 == Endless)))){
_local3 = new URLRequest(" http://armorgames.com/play/2231/whiteboard-tower-defense?referral=gameWhiteBoardTD");
navigateToURL(_local3);
} else {
GameMain.static_this.NewGame(_arg1);
parent.removeChild(this);
};
break;
};
}
public function checkStarted():Boolean{
return (!(clickStarted));
}
public function startClicked():Boolean{
if (clickStarted != true){
clickStarted = true;
trace(" returning true ");
return (true);
};
trace(" returning false ");
return (false);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
}
}//package
Section 108
//GameOverDisplay (GameOverDisplay)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import com.mindjolt.api.as3.*;
public class GameOverDisplay extends MovieClip {
public var Submit:MovieClip;
public var description:TextField;
public var Menu:MovieClip;
public var title:TextField;
public var reveal:MovieClip;
private var Highlighter:MovieClip;
private var Cannon:TowerInterface;// = null
private var score:Number;// = 0
public static var static_This:GameOverDisplay;
public function GameOverDisplay(){
Highlighter = new SelectionHighlight();
super();
addFrameScript(0, frame1);
trace(" GameOverDisplay() Constructor ");
trace((" Menu = " + Menu));
static_This = this;
Menu.addEventListener(MouseEvent.CLICK, backToMenuButton);
Submit.addEventListener(MouseEvent.CLICK, submitButton);
}
public function backToMenuButton(_arg1:MouseEvent=null):void{
GameMain.static_this.BackToMenu();
}
public function submitButton(_arg1:MouseEvent):void{
if (GameMenu.domain == "mindjolt.com"){
switch (GameMain.static_this.gameMode){
case GameMenu.Easy:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "easy");
break;
case GameMenu.Medium:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "normal");
break;
case GameMenu.Hard:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "hard");
break;
case GameMenu.Endless:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "endless");
break;
};
GameMain.static_this.BackToMenu();
return;
};
GameMain.static_this.loadLeaderBoard();
trace(" Put high score logic here ");
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function commafy(_arg1:Number):String{
var _local2:String = Math.floor(_arg1).toString();
var _local3:Array = [];
while (_local2.length > 3) {
_local3.unshift(_local2.slice((_local2.length - 3), _local2.length));
_local2 = _local2.slice(0, (_local2.length - 3));
};
_local3.unshift(_local2);
return (_local3.join(","));
}
public function UpdateDisplay(){
score = ScoreBoard.static_This.CurrentScore;
if (ScoreBoard.static_This.CurrentRespect <= 0){
title.text = " Game Over ";
SoundSystem.PlaySound("Lose");
} else {
title.text = " Congradulations ";
SoundSystem.PlaySound("Congrads");
};
description.text = ((((" Your game ended with a final score of: \n" + " ") + commafy(score)) + " points \n") + " \n");
if (GameMenu.domain == "mindjolt.com"){
switch (GameMain.static_this.gameMode){
case GameMenu.Easy:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "easy");
break;
case GameMenu.Medium:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "normal");
break;
case GameMenu.Hard:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "hard");
break;
case GameMenu.Endless:
MindJoltAPI.service.submitScore(ScoreBoard.static_This.CurrentScore, "endless");
break;
};
safeRemoveChild(Submit);
return;
};
}
function frame1(){
stop();
}
}
}//package
Section 109
//GridBox (GridBox)
package {
import flash.display.*;
import flash.events.*;
public class GridBox extends MovieClip {
public var searched:Boolean;// = false
public var blocked:Boolean;// = false
public var buildable:Boolean;// = true
public var neighbors:Array;
public var diagNeighbors:Array;
public var exitSquare:Boolean;// = false
public var startSquare:Boolean;// = false
public var bestPath:Array;// = null
public var gridX:Number;// = -1
public var gridY:Number;// = -1
public var placedTower:TowerInterface;// = null
public static const drawBlocks:Boolean = false;
public function GridBox(_arg1:Number=-1, _arg2:Number=-1){
neighbors = new Array();
diagNeighbors = new Array();
super();
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
if (_arg1 == -1){
return;
};
gridX = _arg1;
gridY = _arg2;
addEventListener(MouseEvent.MOUSE_DOWN, onClick);
addEventListener(MouseEvent.MOUSE_OVER, onOver);
}
public function SetTower(_arg1:TowerInterface):void{
if (placedTower != null){
trace(" Possible Error, overriding tower placement ");
};
placedTower = _arg1;
}
function SetAsExit():void{
exitSquare = true;
blocked = false;
if (drawBlocks){
gotoAndStop("Exit");
};
}
function SetAsStart():void{
startSquare = true;
blocked = false;
if (drawBlocks){
gotoAndStop("Start");
};
}
function SetAsSearched(_arg1:Boolean=true):void{
if (((exitSquare) || (blocked))){
return;
};
searched = _arg1;
}
function SetBestPath(_arg1:Array):void{
bestPath = _arg1;
}
function SetBlocked(_arg1:Boolean=true, _arg2:Boolean=false){
blocked = _arg1;
buildable = !(blocked);
if ((((_arg2 == true)) && ((blocked == true)))){
if (drawBlocks){
gotoAndStop("Blocked");
};
} else {
gotoAndStop("Empty");
};
}
function SetBlockedOnlyOff():void{
blocked = false;
trace(((("SetBLockedOnly, b = " + blocked) + " u = ") + buildable));
}
function onClick(_arg1:MouseEvent):void{
if (placedTower != null){
placedTower.handleClick(_arg1);
};
PlayGrid.staticThis.BoxClick(gridX, gridY);
if (placedTower == null){
trace(" Setting Display Null From GridBox ");
DisplayBoard.static_This.SetDisplay(null);
};
}
function onOver(_arg1:MouseEvent):void{
PlayGrid.staticThis.BoxOver(gridX, gridY, this);
}
public function meAndAllNeigborsHaveNoPath():Boolean{
if (((!((bestPath == null))) && (!((bestPath.length == 0))))){
return (false);
};
var _local1:Number = 0;
while (_local1 < neighbors.length) {
if (((!((neighbors[_local1].bestPath == null))) && (!((neighbors[_local1].bestPath.length == 0))))){
return (false);
};
_local1++;
};
return (true);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
}
}//package
Section 110
//hahaha_Sound (hahaha_Sound)
package {
import flash.media.*;
public dynamic class hahaha_Sound extends Sound {
}
}//package
Section 111
//HighScore (HighScore)
package {
import flash.display.*;
import mochi.*;
import flash.ui.*;
public class HighScore extends MovieClip {
public var CPMLoader:MovieClip;
private var parentRemember:DisplayObjectContainer;// = null
private var connected:Boolean;// = false
public static var static_This:HighScore;
public static var HSSprite:MovieClip = new MovieClip();
public static var scoreTable:String = "b394ee2a182f86a8";
public function HighScore(){
trace(" HighScore() Constructor ");
parentRemember = parent;
parent.removeChild(this);
static_This = this;
HSSprite.x = 0;
HSSprite.y = 0;
HSSprite.width = 640;
HSSprite.height = 480;
}
public function reset():void{
parentRemember.addChild(this);
CPMLoader.GO();
Mouse.show();
}
public function resume():void{
MochiScores.showLeaderboard({boardID:scoreTable, score:ScoreBoard.static_This.CurrentScore, onClose:backToMenu});
Mouse.show();
}
public function backToMenu():void{
parent.removeChild(this);
Mouse.hide();
GameMain.static_this.BackToMenu();
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
}
}//package
Section 112
//iknowyouare_Sound (iknowyouare_Sound)
package {
import flash.media.*;
public dynamic class iknowyouare_Sound extends Sound {
}
}//package
Section 113
//Key (Key)
package {
import flash.display.*;
import flash.events.*;
public class Key {
private static var initialized:Boolean = false;
private static var keysDown:Array = new Array();
public static var dispatcher:EventDispatcher = new EventDispatcher();
public static function initialize(_arg1:Stage){
if (!initialized){
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
_arg1.addEventListener(Event.DEACTIVATE, clearKeys);
_arg1.addEventListener(TextEvent.TEXT_INPUT, textInput);
initialized = true;
clearKeys(null);
};
}
public static function textInput(_arg1:TextEvent){
trace(("event.text = " + _arg1.text));
}
public static function isDown(_arg1:uint):Boolean{
if (!initialized){
throw (new Error("Key class has yet been initialized."));
};
return (keysDown[_arg1]);
}
private static function keyPressed(_arg1:KeyboardEvent):void{
if (keysDown[_arg1.keyCode] == false){
trace((" Dispatching event KEY_DOWN." + _arg1.keyCode));
keysDown[_arg1.keyCode] = true;
dispatcher.dispatchEvent(_arg1);
dispatcher.dispatchEvent(new Event(("KEY_DOWN." + _arg1.keyCode)));
};
}
private static function keyReleased(_arg1:KeyboardEvent):void{
if (keysDown[_arg1.keyCode] == true){
keysDown[_arg1.keyCode] = false;
dispatcher.dispatchEvent(_arg1);
dispatcher.dispatchEvent(new Event(("KEY_UP." + _arg1.keyCode)));
};
}
private static function clearKeys(_arg1:Event):void{
trace("Clearing keys");
var _local2:Number = 0;
while (_local2 < 0xFF) {
keysDown[_local2] = false;
_local2++;
};
}
}
}//package
Section 114
//little_sister_Sound (little_sister_Sound)
package {
import flash.media.*;
public dynamic class little_sister_Sound extends Sound {
}
}//package
Section 115
//menuTextButton (menuTextButton)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
public class menuTextButton extends MovieClip {
public var highlight:MovieClip;
public var underline:MovieClip;
public var text:TextField;
public var clickedHandler:Function;// = null
public var startclicked:Function;// = null
public var startedCheck:Function;// = null
public var mouseOverSound:Number;// = 0
public var debounceTimer:Timer;
public var mouseIsOver:Boolean;// = false
public function menuTextButton(){
debounceTimer = new Timer(250);
super();
underline.mouseEnabled = false;
highlight.mouseEnabled = false;
safeRemoveChild(underline);
safeRemoveChild(highlight);
addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
addEventListener(MouseEvent.MOUSE_OUT, mouseOff);
addEventListener(MouseEvent.CLICK, mouseClick);
highlight.reveal.circleDone = circleDone;
debounceTimer.addEventListener(TimerEvent.TIMER, mouseDebouceTimerHit, false, 0, true);
}
public function init(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Function){
setText(_arg1);
clickedHandler = _arg2;
startclicked = _arg3;
startedCheck = _arg4;
}
public function setText(_arg1:String):void{
text.text = _arg1;
}
public function circleDone():void{
safeRemoveChild(highlight);
if (clickedHandler != null){
clickedHandler(text.text);
};
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function mouseOver(_arg1:MouseEvent):void{
var _local2:Number = getTimer();
debounceTimer.stop();
if ((((mouseIsOver == false)) && (((mouseOverSound + 300) < _local2)))){
mouseOverSound = _local2;
if (startedCheck()){
mouseIsOver = true;
addChild(underline);
underline.mouseEnabled = false;
underline.gotoAndPlay("Reveal");
SoundSystem.PlaySound("Underscore");
};
};
}
public function mouseDebouceTimerHit(_arg1:TimerEvent){
mouseIsOver = false;
safeRemoveChild(underline);
}
public function mouseOff(_arg1:MouseEvent):void{
debounceTimer.start();
}
public function mouseClick(_arg1:MouseEvent):void{
if (startclicked()){
addChild(highlight);
highlight.mouseEnabled = false;
highlight.reveal.mouseEnabled = false;
highlight.reveal.gotoAndPlay("Reveal");
trace("Playing sound for click");
SoundSystem.PlaySound("Circle");
};
}
}
}//package
Section 116
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
if (Security.sandboxType == "localWithFile"){
return (null);
};
var _local3:MochiBot = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
var _local4 = "http://core.mochibot.com/my/core.swf";
var _local5:URLVariables = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
var _local6:String = _local3.root.loaderInfo.loaderURL;
if (_local3 != null){
if (_local3.root != null){
if (_local3.root.loaderInfo != null){
if (_local3.root.loaderInfo.loaderURL != null){
_local6 = _local3.root.loaderInfo.loaderURL;
};
};
};
};
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
var _local7:URLRequest = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
var _local8:Loader = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 117
//neenerneener02_Sound (neenerneener02_Sound)
package {
import flash.media.*;
public dynamic class neenerneener02_Sound extends Sound {
}
}//package
Section 118
//Oh_Sound (Oh_Sound)
package {
import flash.media.*;
public dynamic class Oh_Sound extends Sound {
}
}//package
Section 119
//oohD_Sound (oohD_Sound)
package {
import flash.media.*;
public dynamic class oohD_Sound extends Sound {
}
}//package
Section 120
//Ouch_Sound (Ouch_Sound)
package {
import flash.media.*;
public dynamic class Ouch_Sound extends Sound {
}
}//package
Section 121
//ouchD_Sound (ouchD_Sound)
package {
import flash.media.*;
public dynamic class ouchD_Sound extends Sound {
}
}//package
Section 122
//owD_Sound (owD_Sound)
package {
import flash.media.*;
public dynamic class owD_Sound extends Sound {
}
}//package
Section 123
//owie_Sound (owie_Sound)
package {
import flash.media.*;
public dynamic class owie_Sound extends Sound {
}
}//package
Section 124
//owieD_Sound (owieD_Sound)
package {
import flash.media.*;
public dynamic class owieD_Sound extends Sound {
}
}//package
Section 125
//PauseBox (PauseBox)
package {
import flash.display.*;
import flash.events.*;
public class PauseBox extends MovieClip {
public var notPaused:MovieClip;
public var paused:MovieClip;
public static var isPaused:Boolean = true;
public function PauseBox(){
setPausedState(false);
addEventListener(MouseEvent.CLICK, onClick);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function onClick(_arg1:MouseEvent){
trace(("on click " + isPaused));
setPausedState(!(isPaused));
}
public function setPausedState(_arg1:Boolean){
trace(("newState = " + _arg1));
if (_arg1 == true){
if (isPaused == true){
return;
};
safeRemoveChild(notPaused);
addChild(paused);
if (GameMain.static_this != null){
GameMain.static_this.dispatchEvent(new Event("PAUSE_GAME"));
};
isPaused = _arg1;
} else {
if (isPaused == false){
return;
};
safeRemoveChild(paused);
addChild(notPaused);
if (GameMain.static_this != null){
GameMain.static_this.dispatchEvent(new Event("UN_PAUSE_GAME"));
};
isPaused = _arg1;
};
}
}
}//package
Section 126
//PlayGrid (PlayGrid)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.ui.*;
public class PlayGrid extends MovieClip {
public var gridSizeX:Number;// = 25
public var gridSizeY:Number;// = 25
public var playGrid:Array;// = null
public var searchQueues:Array;// = null
public var completedPath:Array;// = null
public var startBoxes:Array;
public var currentPath:StartGridBox;// = null
public var currentCritters:Array;
public var currentTowers:Array;
public var mouseSelection:MovieClip;// = null
public var bullets:Array;
public var startButton:DisplayObject;// = null
public var gameType:String;
private var spawnTimer:Timer;// = null
private var spawnCount:Number;// = 0
var nextWave:CritterWave;// = null
private var eachSpawnTimer:Timer;// = null
private var cInd:Number;// = 0
public var sellTimer:Timer;
public var sellInProgress:Boolean;// = false
public var sellMe:TowerInterface;// = null
public static const drawPaths:Boolean = false;
public static var staticThis:PlayGrid = null;
public static var searchInProgress:Sprite = null;
public static var possiblePaths:Array = null;
public function PlayGrid(){
var _local2:StartGridBox;
startBoxes = new Array();
currentCritters = new Array();
currentTowers = new Array();
bullets = new Array();
sellTimer = new Timer(2000);
super();
staticThis = this;
playGrid = CreateArray2D(gridSizeX, gridSizeY, createGridBox);
TieNeigbors();
var _local1:Number = 0;
_local1 = 0;
while (_local1 < gridSizeX) {
playGrid[_local1][0].SetBlocked(true, true);
playGrid[_local1][(gridSizeY - 1)].SetBlocked(true, true);
_local1++;
};
_local1 = 0;
while (_local1 < gridSizeY) {
playGrid[0][_local1].SetBlocked(true, true);
playGrid[(gridSizeX - 2)][_local1].SetBlocked(true, true);
playGrid[(gridSizeX - 1)][_local1].SetBlocked(true, true);
_local1++;
};
_local1 = 10;
while (_local1 < 15) {
playGrid[(gridSizeX - 1)][_local1].SetAsExit();
playGrid[(gridSizeX - 2)][_local1].SetBlocked(false);
_local1++;
};
_local1 = 10;
while (_local1 < 15) {
playGrid[0][_local1].SetAsStart();
_local2 = new StartGridBox();
_local2.box = playGrid[0][_local1];
startBoxes.push(_local2);
_local1++;
};
x = ((x - (x % 15)) - 7.5);
y = ((y - (y % 15)) - 7.5);
checkPaths();
stage.addEventListener(MouseEvent.MOUSE_MOVE, rootMouseMoveListener);
stage.addEventListener(MouseEvent.MOUSE_DOWN, outOfBoundsClick);
addEventListener(Event.ADDED_TO_STAGE, onStageHandler, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, onStageRemoveListener, false, 0, true);
}
private function onStageHandler(_arg1:Event){
trace("onStageHandler");
Key.dispatcher.addEventListener("KEY_DOWN.13", onNextClickKeyboard, false, 0, true);
Key.dispatcher.addEventListener("KEY_DOWN.32", ClearCursorOnSpace, false, 0, true);
}
private function onStageRemoveListener(_arg1:Event){
trace("stageRemoveHandler");
Key.dispatcher.removeEventListener("KEY_DOWN.13", onNextClickKeyboard);
Key.dispatcher.removeEventListener("KEY_DOWN.32", ClearCursorOnSpace);
}
private function ClearCursorOnSpace(_arg1:Event):void{
if (mouseSelection != null){
mouseSelection.parent.removeChild(mouseSelection);
SetFollowMouse(null);
};
DisplayBoard.static_This.SetDisplay(null);
}
private function onMemoryTimer(_arg1:TimerEvent){
}
public function setNextButton(_arg1:DisplayObject){
startButton = _arg1;
startButton.addEventListener(MouseEvent.CLICK, onNextClick);
}
public function setGameType(_arg1:String):void{
gameType = _arg1;
while (currentTowers.length != 0) {
currentTowers[0].RemoveFromBoard();
safeRemoveChild(currentTowers[0]);
currentTowers.splice(0, 1);
};
while (currentCritters.length != 0) {
currentCritters[0].dead = true;
safeRemoveChild(currentCritters[0]);
currentCritters.splice(0, 1);
};
checkPaths();
if (spawnTimer != null){
spawnTimer.stop();
};
if (eachSpawnTimer != null){
eachSpawnTimer.stop();
};
GameMain.static_this.addChild(startButton);
spawnCount = 0;
GameMain.static_this.critstats.SetDisplay(null);
}
public function onNextClickKeyboard(_arg1:Event):void{
var ev = _arg1;
trace("onNextClickKeyboard");
var isChild:Boolean;
try {
GameMain.static_this.getChildIndex(startButton);
isChild = true;
} catch(Err:Error) {
};
trace(("onNextClickKeyboard isChild = " + isChild));
if (isChild == true){
onNextClick(null);
};
}
public function onNextClick(_arg1:MouseEvent):void{
Mouse.hide();
if (PauseBox.isPaused){
return;
};
ScoreBoard.static_This.CurrentLevel++;
if (ScoreBoard.static_This.CurrentLevel != 1){
ScoreBoard.static_This.CurrentScore = (ScoreBoard.static_This.CurrentScore + (ScoreBoard.static_This.CurrentRespect * 101));
ScoreBoard.static_This.CurrentScore = (ScoreBoard.static_This.CurrentScore + Math.floor((ScoreBoard.static_This.CurrentCash * 1.25)));
ScoreBoard.static_This.CurrentScore = (ScoreBoard.static_This.CurrentScore + (currentCritters.length * 1000));
};
nextWave = CritterFactory.getWave();
GameMain.static_this.safeRemoveChild(startButton);
spawnCount = nextWave.crittersPerSet;
spawnTimer = new Timer(nextWave.msBetweenSets);
spawnTimer.addEventListener(TimerEvent.TIMER, spawnSet, false, 0, true);
spawnTimer.start();
if (nextWave.crittersPerSet < 1){
nextWave.crittersPerSet = 1;
};
spawnSet(null);
}
public function resetCritter(_arg1:Critter):void{
_arg1.JumpToStart(startBoxes[Math.floor((Math.random() * startBoxes.length))]);
}
public function spawnSet(_arg1:TimerEvent):void{
if (PauseBox.isPaused){
return;
};
if (nextWave.critters.length > 0){
if (currentCritters.length == 0){
SoundSystem.PlaySound(nextWave.critters[0].enterSound);
};
};
eachSpawnTimer = new Timer(300);
eachSpawnTimer.addEventListener(TimerEvent.TIMER, spawnFunc, false, 0, true);
eachSpawnTimer.start();
cInd = 0;
}
public function spawnFunc(_arg1:TimerEvent):void{
if (PauseBox.isPaused){
return;
};
if (nextWave.critters.length == 0){
spawnTimer.removeEventListener(TimerEvent.TIMER, spawnSet);
spawnTimer.stop();
if (!ScoreBoard.static_This.lastLevel()){
GameMain.static_this.addChild(startButton);
};
GameMain.static_this.critstats.SetDisplay(null);
eachSpawnTimer.removeEventListener(TimerEvent.TIMER, spawnFunc);
eachSpawnTimer.stop();
return;
};
var _local2:Critter = nextWave.critters.pop();
GameMain.static_this.critstats.SetDisplay(_local2);
_local2.JumpToStart(startBoxes[Math.floor((startBoxes.length * Math.random()))]);
currentCritters.push(_local2);
addChild(_local2);
cInd++;
if (cInd >= spawnCount){
eachSpawnTimer.removeEventListener(TimerEvent.TIMER, spawnFunc);
eachSpawnTimer.stop();
};
}
public function checkPaths():Boolean{
TieNeigbors();
ApplyFunctionToArray2D(playGrid, clearPaths);
var _local1:Number = 0;
_local1 = 0;
while (_local1 < startBoxes.length) {
startBoxes[_local1].box.bestPath = GetPathToExit(startBoxes[_local1].box, false);
if (startBoxes[_local1].box.bestPath == null){
return (false);
};
if (startBoxes[_local1].pathSprite == null){
startBoxes[_local1].pathSprite = new Sprite();
addChild(startBoxes[_local1].pathSprite);
};
startBoxes[_local1].pathSprite.graphics.clear();
DrawPath(startBoxes[_local1].box.bestPath, startBoxes[_local1].pathSprite);
PropigatePath(startBoxes[_local1].box.bestPath);
_local1++;
};
return (true);
}
public function FinishAllPaths():void{
var _local2:Number;
return;
DrawAllPaths();
addChild(startBoxes[0].pathSprite);
}
public function DrawAllPaths():void{
var _local2:Number;
if (!drawPaths){
return;
};
var _local1:Number = 0;
if (startBoxes[0].pathSprite == null){
trace(" NO SPRITE");
};
startBoxes[0].pathSprite.graphics.lineStyle(3, 0xFF0000);
_local1 = 0;
while (_local1 < playGrid.length) {
_local2 = 0;
_local2 = 0;
while (_local2 < playGrid[_local1].length) {
if (((!((playGrid[_local1][_local2].bestPath == null))) && ((playGrid[_local1][_local2].bestPath.length > 0)))){
startBoxes[0].pathSprite.graphics.lineStyle(3, 0xFF0000);
startBoxes[0].pathSprite.graphics.moveTo(playGrid[_local1][_local2].x, playGrid[_local1][_local2].y);
startBoxes[0].pathSprite.graphics.lineTo(playGrid[_local1][_local2].bestPath[0].x, playGrid[_local1][_local2].bestPath[0].y);
};
_local2++;
};
_local1++;
};
}
public function DrawPath(_arg1:Array, _arg2:Sprite):void{
if (!drawPaths){
return;
};
if ((((((_arg1 == null)) || ((_arg2 == null)))) || ((_arg1.length == 0)))){
trace((((((" Aborting Path p=" + _arg1) + " spite = ") + _arg2) + " len = ") + _arg1.length));
return;
};
_arg2.graphics.lineStyle(3, 0xFF0000);
_arg2.graphics.moveTo(_arg1[0].x, _arg1[0].y);
var _local3:Number = 0;
while (_local3 < _arg1.length) {
_arg2.graphics.lineTo(_arg1[_local3].x, _arg1[_local3].y);
_local3++;
};
_arg2.mouseEnabled = false;
}
public function PropigatePath(_arg1:Array):void{
if (_arg1 == null){
return;
};
var _local2:Number = 0;
while (_local2 < (_arg1.length - 1)) {
_arg1[_local2].SetBestPath(_arg1.slice((_local2 + 1), (_local2 + 2)));
_local2++;
};
}
public function getShortestPath(_arg1:Array):Array{
var _local5:Number;
var _local6:Number;
var _local7:Point;
var _local8:Point;
var _local9:Number;
if (_arg1.length == 0){
return (null);
};
if (_arg1.length == 1){
return (_arg1[0]);
};
var _local2:Array;
var _local3:Number = 10000;
var _local4:Number = 0;
_local4 = 0;
while (_local4 < _arg1.length) {
_local5 = 0;
_local6 = 0;
_local5 = 1;
while (_local5 < _arg1[_local4].length) {
_local7 = new Point(_arg1[_local4][_local5].x, _arg1[_local4][_local5].y);
_local8 = new Point(_arg1[_local4][(_local5 - 1)].x, _arg1[_local4][(_local5 - 1)].y);
_local9 = Math.abs(_local7.subtract(_local8).length);
_local6 = (_local6 + _local9);
_local5++;
};
if (_local6 < _local3){
_local2 = _arg1[_local4];
_local3 = _local6.valueOf();
};
_local4++;
};
return (_local2);
}
public function createGridBox(_arg1:Number, _arg2:Number):GridBox{
return (new GridBox(_arg1, _arg2));
}
public function clearSearchedFlag(_arg1:GridBox){
_arg1.SetAsSearched(false);
}
public function clearPaths(_arg1:GridBox){
_arg1.SetAsSearched(false);
_arg1.SetBestPath(null);
}
public function CreateArray2D(_arg1:Number, _arg2:Number, _arg3:Function):Array{
var _local6:Number;
var _local4:Array = new Array(_arg1);
var _local5:Number = 0;
_local5 = 0;
while (_local5 < _arg1) {
_local4[_local5] = new Array(_arg2);
_local6 = 0;
_local6 = 0;
while (_local6 < _arg2) {
_local4[_local5][_local6] = _arg3(_local5, _local6);
_local4[_local5][_local6].x = (_local5 * 15);
_local4[_local5][_local6].y = (_local6 * 15);
addChild(_local4[_local5][_local6]);
_local6++;
};
_local5++;
};
return (_local4);
}
public function TieNeigbors(){
var _local2:Number;
var _local1:Number = 0;
_local1 = 0;
while (_local1 < playGrid.length) {
_local2 = 0;
_local2 = 0;
while (_local2 < playGrid[_local1].length) {
playGrid[_local1][_local2].neighbors = new Array();
playGrid[_local1][_local2].diagNeighbors = new Array();
if (_local1 > 0){
playGrid[_local1][_local2].neighbors.push(playGrid[(_local1 - 1)][_local2]);
};
if (_local1 < (playGrid.length - 1)){
playGrid[_local1][_local2].neighbors.push(playGrid[(_local1 + 1)][_local2]);
};
if (_local2 > 0){
playGrid[_local1][_local2].neighbors.push(playGrid[_local1][(_local2 - 1)]);
};
if (_local2 < (playGrid[_local1].length - 1)){
playGrid[_local1][_local2].neighbors.push(playGrid[_local1][(_local2 + 1)]);
};
if ((((_local1 > 0)) && ((_local2 > 0)))){
if ((((playGrid[(_local1 - 1)][_local2].blocked == false)) && ((playGrid[_local1][(_local2 - 1)].blocked == false)))){
playGrid[_local1][_local2].diagNeighbors.push(playGrid[(_local1 - 1)][(_local2 - 1)]);
};
};
if ((((_local1 > 0)) && ((_local2 < (playGrid[_local1].length - 1))))){
if ((((playGrid[(_local1 - 1)][_local2].blocked == false)) && ((playGrid[_local1][(_local2 + 1)].blocked == false)))){
playGrid[_local1][_local2].diagNeighbors.push(playGrid[(_local1 - 1)][(_local2 + 1)]);
};
};
if ((((_local1 < (playGrid.length - 1))) && ((_local2 > 0)))){
if ((((playGrid[(_local1 + 1)][_local2].blocked == false)) && ((playGrid[_local1][(_local2 - 1)].blocked == false)))){
playGrid[_local1][_local2].diagNeighbors.push(playGrid[(_local1 + 1)][(_local2 - 1)]);
};
};
if ((((_local1 < (playGrid.length - 1))) && ((_local2 < (playGrid[_local1].length - 1))))){
if ((((playGrid[(_local1 + 1)][_local2].blocked == false)) && ((playGrid[_local1][(_local2 + 1)].blocked == false)))){
playGrid[_local1][_local2].diagNeighbors.push(playGrid[(_local1 + 1)][(_local2 + 1)]);
};
};
_local2++;
};
_local1++;
};
}
public function ApplyFunctionToArray2D(_arg1:Array, _arg2:Function):void{
var _local4:Number;
var _local3:Number = 0;
_local3 = 0;
while (_local3 < _arg1.length) {
_local4 = 0;
_local4 = 0;
while (_local4 < _arg1[_local3].length) {
_arg2(_arg1[_local3][_local4]);
_local4++;
};
_local3++;
};
}
public function GetPathToExit(_arg1:GridBox, _arg2:Boolean=true):Array{
if (_arg1 == null){
trace("GetPathToExit:Start is null this function doesn't do null");
return (null);
};
ApplyFunctionToArray2D(playGrid, clearSearchedFlag);
var _local3:Array = new Array();
_local3[0] = new Array();
_local3[0].push(_arg1);
var _local4:Number = 10000;
var _local5:Array = new Array();
while (_local3.length > 0) {
var _temp1 = _local4;
_local4 = (_local4 - 1);
if (_temp1 <= 0){
break;
};
_local3 = SearchLocalLoop(_local3, _local5, _arg2);
};
return (getShortestPath(_local5));
}
public function RemoveCritter(_arg1:Critter, _arg2:Boolean){
var _local3:Number = 0;
while (_local3 < currentCritters.length) {
if (currentCritters[_local3] == _arg1){
currentCritters.splice(_local3, 1);
};
_local3++;
};
removeChild(_arg1);
_arg1.dead = true;
}
public function getMoneyTowersInRange(_arg1:Point):Array{
var _local4:BasicTower6;
var _local5:Number;
var _local2:Array = new Array();
var _local3:Number = 0;
_local3 = 0;
while (_local3 < currentTowers.length) {
_local4 = (currentTowers[_local3] as BasicTower6);
if (_local4 != null){
_local5 = Math.abs(new Point((_local4.x + 7.5), (_local4.y + 7.5)).subtract(_arg1).length);
if (_local4.cannonStats[_local4.cannonLevel].cannonRange > _local5){
_local2.push(currentTowers[_local3]);
};
};
_local3++;
};
return (_local2);
}
public function SetFollowMouse(_arg1:TowerInterface):void{
var _local2:Point;
if (_arg1 != null){
mouseSelection = _arg1;
_local2 = globalToLocal(new Point(stage.mouseX, stage.mouseY));
mouseSelection.x = (_local2.x - (_local2.x % 15));
mouseSelection.y = (_local2.y - (_local2.y % 15));
DisplayBoard.static_This.SetDisplay(_arg1);
addChild(_arg1);
if ((mouseSelection as TowerInterface)){
};
} else {
if (mouseSelection != null){
DisplayBoard.static_This.SetDisplay(null);
};
mouseSelection = null;
};
}
public function rootMouseMoveListener(_arg1:MouseEvent):void{
var _local2:Point;
if (mouseSelection != null){
_local2 = globalToLocal(new Point(((_arg1.stageX - 1) - (_arg1.stageX % 15)), ((_arg1.stageY + 1) - (_arg1.stageY % 15))));
};
}
public function boxShapeClear(_arg1:Array, _arg2:Number, _arg3:Number):Boolean{
var _local5:Point;
if (_arg2 >= (gridSizeX - 3)){
return (false);
};
var _local4:Number = 0;
while (_local4 < _arg1.length) {
_local5 = new Point((_arg1[_local4].x + _arg2), (_arg1[_local4].y + _arg3));
if (_local5.x > playGrid.length){
return (false);
};
if (_local5.x < 0){
return (false);
};
if (_local5.y > playGrid[0].length){
return (false);
};
if (_local5.y < 0){
return (false);
};
if (!playGrid[_local5.x][_local5.y].buildable){
return (false);
};
if (playGrid[_local5.x][_local5.y].exitSquare){
return (false);
};
if (playGrid[_local5.x][_local5.y].startSquare){
return (false);
};
_local4++;
};
return (true);
}
public function setBoxesInShape(_arg1:Array, _arg2:Number, _arg3:Number){
var _local5:Point;
var _local4:Number = 0;
while (_local4 < _arg1.length) {
_local5 = new Point((_arg1[_local4].x + _arg2), (_arg1[_local4].y + _arg3));
playGrid[_local5.x][_local5.y].SetBlocked();
_local4++;
};
}
public function clearBoxesInShape(_arg1:Array, _arg2:Number, _arg3:Number){
var _local5:Point;
var _local4:Number = 0;
while (_local4 < _arg1.length) {
_local5 = new Point((_arg1[_local4].x + _arg2), (_arg1[_local4].y + _arg3));
playGrid[_local5.x][_local5.y].SetBlocked(false);
_local4++;
};
}
public function outOfBoundsClick(_arg1:MouseEvent):void{
if (mouseSelection == null){
return;
};
var _local2:Point = this.localToGlobal(new Point(0, 0));
var _local3:Point = this.localToGlobal(new Point((playGrid[(playGrid.length - 1)][(playGrid[(playGrid.length - 1)].length - 1)].x + 15), (playGrid[(playGrid.length - 1)][(playGrid[(playGrid.length - 1)].length - 1)].y + 15)));
var _local4:Rectangle = new Rectangle(_local2.x, _local2.y, (_local3.x - _local2.x), (_local3.y - _local2.y));
if (_local4.contains(_arg1.stageX, _arg1.stageY)){
return;
};
mouseSelection.parent.removeChild(mouseSelection);
SetFollowMouse(null);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function UpgradeTower(_arg1:TowerInterface){
if (PauseBox.isPaused){
return;
};
var _local2:Number = (_arg1.cannonStats[(_arg1.cannonLevel + 1)].cannonCost - _arg1.cannonStats[_arg1.cannonLevel].cannonCost);
if (_local2 <= ScoreBoard.static_This.CurrentCash){
ScoreBoard.static_This.CurrentCash = (ScoreBoard.static_This.CurrentCash - _local2);
SoundSystem.PlaySound("Upgrade");
_arg1.Upgrade();
};
}
public function SellTower(_arg1:TowerInterface){
if (sellMe == _arg1){
return;
};
if (sellInProgress == true){
return;
};
if (PauseBox.isPaused){
return;
};
sellMe = _arg1;
sellMe.MarkForSale();
sellInProgress = true;
sellTimer.addEventListener(TimerEvent.TIMER, sellHandler);
sellTimer.start();
SoundSystem.PlaySound(sellMe.sellSound);
DisplayBoard.static_This.SetDisplay(null);
}
public function sellHandler(_arg1:TimerEvent){
sellInProgress = false;
sellTimer.stop();
sellTimer.removeEventListener(TimerEvent.TIMER, sellHandler);
var _local2:Number = 0;
trace("Selling Tower");
if (sellMe.firedOnce){
trace("the tower fired ");
_local2 = Math.round((sellMe.cannonStats[sellMe.cannonLevel].cannonCost * 0.75));
} else {
trace("the tower NEVER fired ");
_local2 = Math.round((sellMe.cannonStats[sellMe.cannonLevel].cannonCost * 1));
};
ScoreBoard.static_This.CurrentCash = (ScoreBoard.static_This.CurrentCash + _local2);
var _local3:dmgHighlight = new dmgHighlight();
_local3.x = sellMe.x;
_local3.y = sellMe.y;
_local3.dmg.text = ("" + _local2);
addChild(_local3);
_local3.play();
var _local4:Number = currentTowers.indexOf(sellMe);
if (_local4 != -1){
currentTowers.splice(_local4, 1);
};
sellMe.RemoveFromBoard();
safeRemoveChild(sellMe);
checkPaths();
}
public function BoxClick(_arg1:Number, _arg2:Number){
var _local6:TowerInterface;
var _local7:dmgHighlight;
if (mouseSelection == null){
return;
};
var _local3:Number = mouseSelection.cannonStats[1].cannonCost;
var _local4:GridBox = playGrid[_arg1][_arg2];
var _local5:Array = mouseSelection.GetShape();
if (_local3 <= ScoreBoard.static_This.CurrentCash){
if (!boxShapeClear(_local5, _local4.gridX, _local4.gridY)){
mouseSelection.parent.removeChild(mouseSelection);
SetFollowMouse(null);
return;
};
if (((mouseSelection as BasicTower7) == null)){
setBoxesInShape(_local5, _local4.gridX, _local4.gridY);
};
if (checkPaths() == false){
clearBoxesInShape(_local5, _local4.gridX, _local4.gridY);
checkPaths();
} else {
setBoxesInShape(_local5, _local4.gridX, _local4.gridY);
_local6 = mouseSelection.DeployCopy();
addChild(_local6);
currentTowers.push(_local6);
SoundSystem.PlaySound(_local6.buildSound);
_local6.DeployToLocation(_local4.gridX, _local4.gridY);
ScoreBoard.static_This.CurrentCash = (ScoreBoard.static_This.CurrentCash - _local3);
};
} else {
if (boxShapeClear(_local5, _local4.gridX, _local4.gridY)){
_local7 = new dmgHighlight();
_local7.x = mouseSelection.x;
_local7.y = mouseSelection.y;
_local7.dmg.text = "need $$";
addChild(_local7);
_local7.play();
};
mouseSelection.parent.removeChild(mouseSelection);
trace("Removing mouseSelection ");
SetFollowMouse(null);
};
}
public function BoxOver(_arg1:Number, _arg2:Number, _arg3:GridBox){
if (mouseSelection == null){
return;
};
mouseSelection.x = _arg3.x;
mouseSelection.y = _arg3.y;
if (!boxShapeClear(mouseSelection.GetShape(), _arg1, _arg2)){
mouseSelection.gotoAndStop("Blocked");
} else {
mouseSelection.gotoAndStop("Open");
};
}
public function addBullet(_arg1:DisplayObject){
addChild(_arg1);
}
public function removeBullet(_arg1:DisplayObject){
safeRemoveChild(_arg1);
}
public function findRandomTargetInRange(_arg1:Point, _arg2:Number):Critter{
var _local3:Number = 0;
var _local4:Point;
var _local5:Number = 0;
var _local6:Array = new Array();
_local3 = 0;
while (_local3 < currentCritters.length) {
_local4 = new Point(currentCritters[_local3].x, currentCritters[_local3].y);
_local5 = Point.distance(_local4, _arg1);
if (_local5 < _arg2){
_local6.push(currentCritters[_local3]);
};
_local3++;
};
if (_local6.length == 0){
return (null);
};
return (_local6[Math.floor((_local6.length * Math.random()))]);
}
public function findClosestTargetInRange(_arg1:Point, _arg2:Number):Critter{
var _local3:Number = 0;
var _local4:Point;
var _local5:Number = 0;
var _local6:Critter;
var _local7:Number = 10000;
_local3 = 0;
while (_local3 < currentCritters.length) {
_local4 = new Point(currentCritters[_local3].x, currentCritters[_local3].y);
_local5 = Point.distance(_local4, _arg1);
if (_local5 < _arg2){
if (_local6 == null){
_local6 = currentCritters[_local3];
} else {
if (_local5 < _local7){
_local6 = currentCritters[_local3];
_local7 = _local5;
};
};
};
_local3++;
};
return (_local6);
}
public function findFarthestTargetInRange(_arg1:Point, _arg2:Number):Critter{
var _local3:Number = 0;
var _local4:Point;
var _local5:Number = 0;
var _local6:Critter;
_local3 = 0;
while (_local3 < currentCritters.length) {
_local4 = new Point(currentCritters[_local3].x, currentCritters[_local3].y);
_local5 = Point.distance(_local4, _arg1);
if (_local5 < _arg2){
if (_local6 == null){
_local6 = currentCritters[_local3];
} else {
if (_local6.boxesTraveled < currentCritters[_local3].boxesTraveled){
_local6 = currentCritters[_local3];
};
};
};
_local3++;
};
return (_local6);
}
public function findTargetsNearPoint(_arg1:Point, _arg2:Number):Array{
var _local3:Number = 0;
var _local4:Point;
var _local5:Number = 0;
var _local6:Array = new Array();
_local3 = 0;
while (_local3 < currentCritters.length) {
_local4 = new Point(currentCritters[_local3].x, currentCritters[_local3].y);
_local5 = Point.distance(_local4, _arg1);
if (_local5 < _arg2){
_local6.push(currentCritters[_local3]);
};
_local3++;
};
return (_local6);
}
public static function SearchLocalLoop(_arg1:Array, _arg2:Array, _arg3:Boolean):Array{
var _local6:Array;
var _local7:Number;
var _local8:Array;
var _local9:Array;
var _local4:Number = 0;
var _local5:Array = new Array();
_local4 = 0;
while (_local4 < _arg1.length) {
_local6 = _arg1[_local4];
_local7 = 0;
_local7 = 0;
while (_local7 < _local6[(_local6.length - 1)].neighbors.length) {
if ((((_arg2.length > 0)) && ((_arg3 == true)))){
};
if ((((_local6[(_local6.length - 1)].neighbors[_local7].blocked == false)) && ((_local6[(_local6.length - 1)].neighbors[_local7].searched == false)))){
_local8 = new Array();
_local8 = _local8.concat(_local6);
if (_local6[(_local6.length - 1)].neighbors[_local7].exitSquare == true){
_local8.push(_local6[(_local6.length - 1)].neighbors[_local7]);
_arg2.push(_local8);
} else {
if (((_arg3) && (!((_local6[(_local6.length - 1)].neighbors[_local7].bestPath == null))))){
_local8.push(_local6[(_local6.length - 1)].neighbors[_local7]);
_local9 = _local8.concat(_local6[(_local6.length - 1)].neighbors[_local7].bestPath);
_arg2.push(_local9);
} else {
_local8.push(_local6[(_local6.length - 1)].neighbors[_local7]);
_local6[(_local6.length - 1)].neighbors[_local7].SetAsSearched();
_local5.push(_local8);
};
};
};
_local7++;
};
_local4++;
};
_local4 = 0;
while (_local4 < _arg1.length) {
_local6 = _arg1[_local4];
_local7 = 0;
while (_local7 < _local6[(_local6.length - 1)].diagNeighbors.length) {
if ((((_arg2.length > 0)) && ((_arg3 == true)))){
};
if ((((_local6[(_local6.length - 1)].diagNeighbors[_local7].blocked == false)) && ((_local6[(_local6.length - 1)].diagNeighbors[_local7].searched == false)))){
_local8 = new Array();
_local8 = _local8.concat(_local6);
if (_local6[(_local6.length - 1)].diagNeighbors[_local7].exitSquare == true){
_local8.push(_local6[(_local6.length - 1)].diagNeighbors[_local7]);
_arg2.push(_local8);
} else {
if (((_arg3) && (!((_local6[(_local6.length - 1)].diagNeighbors[_local7].bestPath == null))))){
_arg2.push(_local8.concat(_local6[(_local6.length - 1)].diagNeighbors[_local7].bestPath));
} else {
_local8.push(_local6[(_local6.length - 1)].diagNeighbors[_local7]);
_local6[(_local6.length - 1)].diagNeighbors[_local7].SetAsSearched();
_local5.push(_local8);
};
};
};
_local7++;
};
_local4++;
};
return (_local5);
}
}
}//package
Section 127
//QualityButton (QualityButton)
package {
import flash.display.*;
import flash.events.*;
public class QualityButton extends MovieClip {
public var medQuality:MovieClip;
public var highQuality:MovieClip;
public var lowQuality:MovieClip;
public var currentQuality:Number;// = 3
public function QualityButton(){
setQuality(2);
addEventListener(MouseEvent.CLICK, onClick);
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function onClick(_arg1:MouseEvent){
trace(("on click " + currentQuality));
setQuality((currentQuality + 1));
}
public function setQuality(_arg1:Number){
if (_arg1 > 2){
_arg1 = 1;
};
safeRemoveChild(lowQuality);
safeRemoveChild(medQuality);
safeRemoveChild(highQuality);
var _local2 = "";
switch (_arg1){
case 1:
addChild(lowQuality);
_local2 = StageQuality.LOW;
break;
case 2:
addChild(highQuality);
_local2 = StageQuality.MEDIUM;
break;
case 3:
addChild(highQuality);
_local2 = StageQuality.BEST;
break;
};
stage.quality = _local2;
currentQuality = _arg1;
}
}
}//package
Section 128
//rottenegg_Sound (rottenegg_Sound)
package {
import flash.media.*;
public dynamic class rottenegg_Sound extends Sound {
}
}//package
Section 129
//ScoreBoard (ScoreBoard)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class ScoreBoard extends MovieClip {
public var Score:TextField;
public var Cash:TextField;
public var Level:TextField;
public var MenuButton:MovieClip;
public var Respect:TextField;
private var _CurrentLevel:Number;// = 1
private var _CurrentRespect:Number;// = 1
private var _CurrentScore:Number;// = 1
private var _CurrentCash:Number;// = 1
private var _LevelCap:Number;// = 1
public static var static_This:ScoreBoard;
public function ScoreBoard(){
trace(" ScoreBoard() Constructor ");
static_This = this;
MenuButton.addEventListener(MouseEvent.CLICK, menuButton);
Redraw();
}
public function get CurrentLevel():Number{
return (_CurrentLevel);
}
public function get CurrentRespect():Number{
return (_CurrentRespect);
}
public function get CurrentScore():Number{
return (_CurrentScore);
}
public function get CurrentCash():Number{
return (_CurrentCash);
}
public function get LevelCap():Number{
return (_LevelCap);
}
public function set CurrentLevel(_arg1:Number):void{
if (_CurrentRespect <= 0){
return;
};
_CurrentLevel = _arg1;
Redraw();
}
public function set CurrentRespect(_arg1:Number):void{
if (_arg1 < 0){
return;
};
_CurrentRespect = _arg1;
Redraw();
}
public function set CurrentScore(_arg1:Number):void{
if (_CurrentRespect <= 0){
return;
};
_CurrentScore = _arg1;
Redraw();
}
public function set CurrentCash(_arg1:Number):void{
if (_CurrentRespect <= 0){
return;
};
_CurrentCash = _arg1;
Redraw();
}
public function set LevelCap(_arg1:Number):void{
_LevelCap = _arg1;
}
public function addMoney(_arg1:Event):void{
CurrentCash = (CurrentCash + 10000);
}
public function menuButton(_arg1:MouseEvent):void{
trace("Menu Button");
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function lastLevel():Boolean{
if (_LevelCap != 0){
if (_CurrentLevel >= _LevelCap){
if (PlayGrid.staticThis.currentCritters.length == 0){
GameMain.static_this.GameOverMan();
};
return (true);
};
};
return (false);
}
public function commafy(_arg1:Number):String{
var _local2:String = Math.floor(_arg1).toString();
var _local3:Array = [];
while (_local2.length > 3) {
_local3.unshift(_local2.slice((_local2.length - 3), _local2.length));
_local2 = _local2.slice(0, (_local2.length - 3));
};
_local3.unshift(_local2);
return (_local3.join(","));
}
private function Redraw(){
if (CurrentRespect == 0){
GameMain.static_this.GameOverMan();
};
Level.text = ("LVL " + _CurrentLevel);
Respect.text = ("" + _CurrentRespect);
Score.text = commafy(_CurrentScore);
Cash.text = commafy(_CurrentCash);
}
}
}//package
Section 130
//SelectionHighlight (SelectionHighlight)
package {
import flash.display.*;
public class SelectionHighlight extends MovieClip {
public var reveal:MovieClip;
}
}//package
Section 131
//shooting_Sound (shooting_Sound)
package {
import flash.media.*;
public dynamic class shooting_Sound extends Sound {
}
}//package
Section 132
//shot1_Sound (shot1_Sound)
package {
import flash.media.*;
public dynamic class shot1_Sound extends Sound {
}
}//package
Section 133
//shot25_Sound (shot25_Sound)
package {
import flash.media.*;
public dynamic class shot25_Sound extends Sound {
}
}//package
Section 134
//shot6_Sound (shot6_Sound)
package {
import flash.media.*;
public dynamic class shot6_Sound extends Sound {
}
}//package
Section 135
//shot7_Sound (shot7_Sound)
package {
import flash.media.*;
public dynamic class shot7_Sound extends Sound {
}
}//package
Section 136
//SoundSystem (SoundSystem)
package {
import flash.media.*;
import flash.utils.*;
public class SoundSystem {
private var channels:Array;
private static var SoundMap:Object = new Object();
private static var ChannelMap:Object = new Object();
private static var created:Boolean = false;
private static var backgroundChannel:SoundChannel = null;
private static var volume:Number = 1;
public function SoundSystem(){
channels = new Array();
super();
}
public static function init():void{
if (created){
return;
};
SoundMap["Critter1_In"] = [new waythrough_Sound(), new shooting_Sound(), new easy_Sound(), new charge_Sound()];
SoundMap["Critter1_Out"] = [new iknowyouare_Sound(), new rottenegg_Sound(), new neenerneener02_Sound()];
SoundMap["Critter1_Die"] = [new Oh_Sound(), new Ouch_Sound(), new owie_Sound()];
SoundMap["Critter2_In"] = [new waythrough_Sound(), new little_sister_Sound(), new easy_Sound()];
SoundMap["Critter2_Out"] = [new toocute_Sound(), new vegas_Sound(), new yamissedme02_Sound()];
SoundMap["Critter2_Die"] = [new Oh_Sound(), new Ouch_Sound(), new owie_Sound()];
SoundMap["Critter3_In"] = [new antfarm_Sound(), new BewaretheRedDot_Sound(), new thebiglie_Sound(), new dontsniffthemarkers_Sound(), new hahaha_Sound()];
SoundMap["Critter3_Out"] = [new stopplayinggamesandgetbacktowork_Sound(), new doesyourmotherknow_Sound(), new youvegottodobetterthanthat_Sound()];
SoundMap["Critter3_Die"] = [new ahD_Sound(), new ahhD_Sound(), new arghD_Sound(), new doh1D_Sound(), new doh2D_Sound(), new oohD_Sound(), new ouchD_Sound(), new owD_Sound(), new owieD_Sound(), new uhD_Sound(), new uuhD_Sound()];
SoundMap["Tower1_Build"] = [new drawtower1_Sound()];
SoundMap["Tower1_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower1_Fire"] = [new WTD001_Sound()];
SoundMap["Tower2_Build"] = [new drawtower1_Sound(), new drawtower2_Sound(), new drawtower3_Sound()];
SoundMap["Tower2_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower2_Fire"] = [new shot6_Sound()];
SoundMap["Tower3_Build"] = [new drawtower2_Sound(), new drawtower3_Sound(), new drawtower4_Sound()];
SoundMap["Tower3_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower3_Fire"] = [new shot7_Sound()];
SoundMap["Tower4_Build"] = [new drawtower3_Sound(), new drawtower4_Sound(), new drawtower5_Sound()];
SoundMap["Tower4_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower4_Fire"] = [new betterelec1_Sound(), new betterelec2_Sound()];
SoundMap["Tower5_Build"] = [new drawtower4_Sound(), new drawtower5_Sound(), new drawtower6_Sound()];
SoundMap["Tower5_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower5_Fire"] = [new Cyborg_Zap_Sound()];
SoundMap["Tower6_Build"] = [new drawtower2_Sound(), new drawtower4_Sound(), new drawtower6_Sound()];
SoundMap["Tower6_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower6_Fire"] = [new shot1_Sound()];
SoundMap["Tower7_Build"] = [new drawtower1_Sound(), new drawtower3_Sound(), new drawtower5_Sound()];
SoundMap["Tower7_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower7_Fire"] = [new buzz_001_01_Sound()];
SoundMap["Tower8_Build"] = [new drawtower2_Sound(), new drawtower5_Sound(), new drawtower6_Sound()];
SoundMap["Tower8_Sell"] = [new drawtower5_Sound()];
SoundMap["Tower8_Fire"] = [new shot25_Sound()];
SoundMap["Underscore"] = [new drawtower2_Sound()];
SoundMap["Circle"] = [new circle_Sound()];
SoundMap["Congrads"] = [new WooYaMP3_Sound()];
SoundMap["Lose"] = [new Ah_Sound()];
SoundMap["Upgrade"] = [new FOLEY_COIN_QUARTER_DROP_ROCKS_01_Sound()];
SoundMap["moneyDrop"] = [new Drop_Coin_1_HardSurface_Light_0_Sound()];
created = true;
}
public static function setVolume(_arg1:Number){
volume = _arg1;
}
public static function StartBackgroundMusic():void{
if (!created){
init();
};
}
public static function ToggleSound():void{
if (backgroundChannel != null){
backgroundChannel.stop();
backgroundChannel = null;
} else {
StartBackgroundMusic();
};
}
public static function PlaySound(_arg1:String):void{
var arr:Array;
var s:Sound;
var currentTime:Number;
var lastTime:Number;
var playChannel:SoundChannel;
var soundName = _arg1;
try {
if (!created){
init();
};
if (volume == 0){
return;
};
arr = (SoundMap[soundName] as Array);
if (arr == null){
trace(" Failed to find sound ");
return;
};
if (arr.length < 1){
trace(" no sounds to choose from ");
return;
};
s = (arr[Math.floor((Math.random() * arr.length))] as Sound);
if (s != null){
currentTime = getTimer();
lastTime = (ChannelMap[soundName] as Number);
if ((currentTime - lastTime) > 100){
playChannel = s.play(0, 0, new SoundTransform(volume));
ChannelMap[soundName] = new Number(currentTime.valueOf());
};
} else {
trace(" sound is null ");
};
} catch(Err:Error) {
};
}
}
}//package
Section 137
//squeaky_loop_1_Sound (squeaky_loop_1_Sound)
package {
import flash.media.*;
public dynamic class squeaky_loop_1_Sound extends Sound {
}
}//package
Section 138
//StartGridBox (StartGridBox)
package {
import flash.display.*;
public class StartGridBox {
public var box:GridBox;// = null
public var pathSprite:Sprite;// = null
}
}//package
Section 139
//stopplayinggamesandgetbacktowork_Sound (stopplayinggamesandgetbacktowork_Sound)
package {
import flash.media.*;
public dynamic class stopplayinggamesandgetbacktowork_Sound extends Sound {
}
}//package
Section 140
//textHighlightReveal (textHighlightReveal)
package {
import flash.display.*;
public dynamic class textHighlightReveal extends MovieClip {
public var circleDone:Function;// = null
public function textHighlightReveal(){
addFrameScript(0, frame1, 36, frame37);
trace(" textHighlightReveal() Constructor ");
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
function frame1(){
stop();
}
function frame37(){
stop();
circleDone();
}
}
}//package
Section 141
//thebiglie_Sound (thebiglie_Sound)
package {
import flash.media.*;
public dynamic class thebiglie_Sound extends Sound {
}
}//package
Section 142
//toocute_Sound (toocute_Sound)
package {
import flash.media.*;
public dynamic class toocute_Sound extends Sound {
}
}//package
Section 143
//TowerInterface (TowerInterface)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class TowerInterface extends MovieClip {
public var cannonTitle:String;// = "Basic Tower"
public var cannonDesc:String;// = "Your basic, run of the mill critter killing tower."
public var cannonLevel:Number;// = 0
public var cannonStats:Array;
public var pointing:Boolean;// = false
public var buildSound:String;// = "Tower1_Build"
public var sellSound:String;// = "Tower1_Sell"
public var fireSound:String;// = "Tower1_Fire"
private var Highlighter:MovieClip;
private var rangeIndicator:Sprite;
public var isHighlighted:Boolean;// = false
protected var shape:Array;
protected var shotTimer:Timer;// = null
protected var bullets:Array;
protected var targetCritter:Critter;// = null
protected var cannonGridX:Number;// = -1
protected var cannonGridY:Number;// = -1
protected var constructionComplete:Boolean;// = false
public var firedOnce:Boolean;// = false
private var lastRotation:Number;// = 1000
protected static const levelOneColor = 0;
protected static const levelTwoColor = 0xB900;
protected static const levelThreeColor = 153;
protected static const levelFourColor = 0x6600CC;
protected static const levelFiveColor = 0x990000;
public static var pointTimer:Timer = null;
public function TowerInterface(){
cannonStats = new Array();
Highlighter = new SelectionHighlight();
rangeIndicator = new Sprite();
shape = new Array();
bullets = new Array();
super();
mouseChildren = false;
}
public function DeployCopy():MovieClip{
return (new MovieClip());
}
public function Upgrade():void{
}
public function MarkForSale():void{
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
public function getCenterPoint():Point{
return (new Point(7.5, 7.5));
}
public function setSelection():void{
var _local1:Point;
if (pointTimer == null){
pointTimer = new Timer(50);
pointTimer.start();
};
isHighlighted = true;
_local1 = getCenterPoint();
rangeIndicator.mouseEnabled = false;
rangeIndicator.graphics.clear();
var _local2:Matrix = new Matrix();
_local2.createGradientBox((cannonStats[cannonLevel].cannonRange * 2), (cannonStats[cannonLevel].cannonRange * 2), 0, -(cannonStats[cannonLevel].cannonRange), -(cannonStats[cannonLevel].cannonRange));
rangeIndicator.graphics.beginGradientFill(GradientType.RADIAL, [11184895, 11184895, 11184895], [0, 0.6, 0.1], [0, 100, 0xFF], _local2);
rangeIndicator.graphics.lineStyle(2, 0xFF0000, 1);
rangeIndicator.graphics.drawCircle(0, 0, cannonStats[cannonLevel].cannonRange);
rangeIndicator.graphics.endFill();
rangeIndicator.x = _local1.x;
rangeIndicator.y = _local1.y;
addChild(rangeIndicator);
mouseChildren = false;
}
public function clearSelection():void{
isHighlighted = false;
safeRemoveChild(Highlighter);
safeRemoveChild(rangeIndicator);
mouseChildren = false;
}
public function DeployToLocation(_arg1:Number, _arg2:Number):void{
var _local5:Point;
var _local3:Array = PlayGrid.staticThis.playGrid;
gotoAndPlay("Construct");
var _local4:Number = 0;
while (_local4 < shape.length) {
_local5 = new Point((shape[_local4].x + _arg1), (shape[_local4].y + _arg2));
_local3[_local5.x][_local5.y].SetTower(this);
_local4++;
};
x = _local3[_arg1][_arg2].x;
y = _local3[_arg1][_arg2].y;
cannonGridX = _arg1;
cannonGridY = _arg2;
cannonLevel = 0;
mouseEnabled = false;
}
public function GetShape():Array{
return (shape);
}
public function handleClick(_arg1:MouseEvent):void{
if (DisplayBoard.static_This != null){
DisplayBoard.static_This.SetDisplay(this);
};
}
protected function PointTurretAtTarget(_arg1:DisplayObject, _arg2:Critter):void{
var _local4:Point;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local3:Point = new Point(0, 0);
if (_arg2){
_local3.offset(_arg2.x, _arg2.y);
_local4 = getCenterPoint();
_local5 = ((x + _local4.x) - _local3.x);
_local6 = ((y + _local4.y) - _local3.y);
_local7 = Math.atan2(_local6, _local5);
_local8 = (((_local7 / (2 * Math.PI)) * 360) + 180);
if (Math.abs((_local8 - lastRotation)) > 3){
lastRotation = (_arg1.rotation = (bullets.rotation = _local8));
};
};
}
public function RemoveFromBoard():void{
var _local3:Point;
if (cannonGridX == -1){
return;
};
var _local1:Array = PlayGrid.staticThis.playGrid;
var _local2:Number = 0;
while (_local2 < shape.length) {
_local3 = new Point((shape[_local2].x + cannonGridX), (shape[_local2].y + cannonGridY));
_local1[_local3.x][_local3.y].SetTower(null);
_local1[_local3.x][_local3.y].SetBlocked(false);
_local2++;
};
cannonGridX = -1;
cannonGridY = -1;
mouseEnabled = false;
}
}
}//package
Section 144
//TowerSelection1 (TowerSelection1)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection1 extends MovieClip {
public var tower:BasicTower;
var overTimer:Timer;
public function TowerSelection1(){
overTimer = new Timer(400, 1);
super();
trace("Tower Selection 1");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
var _local2:BasicTower = new BasicTower();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
}
}//package
Section 145
//TowerSelection2 (TowerSelection2)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection2 extends MovieClip {
public var tower:BasicTower2;
var overTimer:Timer;
public function TowerSelection2(){
overTimer = new Timer(400, 1);
super();
trace("Tower Selection 2");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mouseChildren = false;
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower2());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
trace("new BasicTower2 ");
var _local2:BasicTower2 = new BasicTower2();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
}
}//package
Section 146
//TowerSelection3 (TowerSelection3)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection3 extends MovieClip {
public var tower:BasicTower3;
var overTimer:Timer;
public function TowerSelection3(){
overTimer = new Timer(400, 1);
super();
trace("Tower Selection 3");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mouseChildren = false;
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower3());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
trace("new BasicTower3 ");
var _local2:BasicTower3 = new BasicTower3();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
}
}//package
Section 147
//TowerSelection4 (TowerSelection4)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection4 extends MovieClip {
public var tower:BasicTower4;
var overTimer:Timer;
public function TowerSelection4(){
overTimer = new Timer(400, 1);
super();
trace("Tower Selection 4");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mouseChildren = false;
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower4());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
trace("new BasicTower4 ");
var _local2:BasicTower4 = new BasicTower4();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
}
}//package
Section 148
//TowerSelection5 (TowerSelection5)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection5 extends MovieClip {
public var tower:BasicTower5;
public var mark:MovieClip;
var overTimer:Timer;
public function TowerSelection5(){
overTimer = new Timer(400, 1);
super();
addFrameScript(0, frame1);
trace("Tower Selection 5");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mouseChildren = false;
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower5());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
trace("new BasicTower5 ");
var _local2:BasicTower5 = new BasicTower5();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
function frame1(){
mark.mouseEnabled = false;
}
}
}//package
Section 149
//TowerSelection6 (TowerSelection6)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection6 extends MovieClip {
public var tower:BasicTower6;
var overTimer:Timer;
public function TowerSelection6(){
overTimer = new Timer(400, 1);
super();
trace("Tower Selection 5");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mouseChildren = false;
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower6());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
trace("new BasicTower6 ");
var _local2:BasicTower6 = new BasicTower6();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
}
}//package
Section 150
//TowerSelection7 (TowerSelection7)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection7 extends MovieClip {
public var tower:BasicTower7;
var overTimer:Timer;
public function TowerSelection7(){
overTimer = new Timer(400, 1);
super();
trace("Tower Selection 7");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mouseChildren = false;
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower7());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
trace("new BasicTower7 ");
var _local2:BasicTower7 = new BasicTower7();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
}
}//package
Section 151
//TowerSelection8 (TowerSelection8)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class TowerSelection8 extends MovieClip {
public var tower:BasicTower8;
var overTimer:Timer;
public function TowerSelection8(){
overTimer = new Timer(400, 1);
super();
trace("Tower Selection 8");
addEventListener(MouseEvent.CLICK, onMouseClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mouseChildren = false;
overTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeOut);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function onTimeOut(_arg1:TimerEvent):void{
if (PlayGrid.staticThis.mouseSelection == null){
DisplayBoard.static_This.SetDisplay(new BasicTower8());
};
}
public function onMouseOut(_arg1:MouseEvent):void{
overTimer.stop();
overTimer.reset();
}
public function onMouseOver(_arg1:MouseEvent):void{
overTimer.reset();
overTimer.start();
}
public function onMouseClick(_arg1:MouseEvent):void{
if (PauseBox.isPaused){
return;
};
trace("new BasicTower8 ");
var _local2:BasicTower8 = new BasicTower8();
PlayGrid.staticThis.SetFollowMouse(_local2);
}
}
}//package
Section 152
//TowerSquareBase (TowerSquareBase)
package {
import flash.display.*;
public dynamic class TowerSquareBase extends MovieClip {
public var color:TurretColor;
public function TowerSquareBase(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
color.mouseEnabled = false;
}
}
}//package
Section 153
//TurretColor (TurretColor)
package {
import flash.display.*;
import flash.events.*;
public class TurretColor extends MovieClip {
private var lastColor:Number;// = -1
public function TurretColor(){
addFrameScript(0, frame1);
}
private function onStage(_arg1:Event){
var _local2:TowerInterface = (parent.parent as TowerInterface);
setColor(_local2.cannonStats[_local2.cannonLevel].cannonColor);
}
public function setColor(_arg1:Number):void{
if (_arg1 == lastColor){
return;
};
lastColor = _arg1;
graphics.clear();
graphics.beginFill(_arg1);
graphics.drawRect(-50, -50, 100, 100);
graphics.endFill();
}
function frame1(){
mouseEnabled = false;
}
}
}//package
Section 154
//uhD_Sound (uhD_Sound)
package {
import flash.media.*;
public dynamic class uhD_Sound extends Sound {
}
}//package
Section 155
//uuhD_Sound (uuhD_Sound)
package {
import flash.media.*;
public dynamic class uuhD_Sound extends Sound {
}
}//package
Section 156
//vegas_Sound (vegas_Sound)
package {
import flash.media.*;
public dynamic class vegas_Sound extends Sound {
}
}//package
Section 157
//VolumeControl (VolumeControl)
package {
import flash.display.*;
import flash.events.*;
public class VolumeControl extends MovieClip {
public var bar1:MovieClip;
public var bar2:MovieClip;
public var bar3:MovieClip;
private var currentvolume:Number;// = 3
public function VolumeControl(){
addEventListener(MouseEvent.CLICK, changeVolume, false, 0, true);
}
private function changeVolume(_arg1:MouseEvent):void{
currentvolume = (currentvolume + 1);
if (currentvolume >= 4){
currentvolume = 0;
};
setVolume();
}
public function safeRemoveChild(_arg1:DisplayObject){
var obj = _arg1;
try {
removeChild(obj);
} catch(Err:Error) {
};
}
private function setVolume():void{
safeRemoveChild(bar1);
safeRemoveChild(bar2);
safeRemoveChild(bar3);
if (currentvolume > 0){
addChild(bar1);
};
if (currentvolume > 1){
addChild(bar2);
};
if (currentvolume > 2){
addChild(bar3);
};
switch (currentvolume){
case 0:
SoundSystem.setVolume(0);
break;
case 1:
SoundSystem.setVolume(0.25);
break;
case 2:
SoundSystem.setVolume(0.5);
break;
case 3:
SoundSystem.setVolume(1);
break;
};
}
}
}//package
Section 158
//waythrough_Sound (waythrough_Sound)
package {
import flash.media.*;
public dynamic class waythrough_Sound extends Sound {
}
}//package
Section 159
//woohoo03_Sound (woohoo03_Sound)
package {
import flash.media.*;
public dynamic class woohoo03_Sound extends Sound {
}
}//package
Section 160
//WooYaMP3_Sound (WooYaMP3_Sound)
package {
import flash.media.*;
public dynamic class WooYaMP3_Sound extends Sound {
}
}//package
Section 161
//WTD001_Sound (WTD001_Sound)
package {
import flash.media.*;
public dynamic class WTD001_Sound extends Sound {
}
}//package
Section 162
//yamissedme02_Sound (yamissedme02_Sound)
package {
import flash.media.*;
public dynamic class yamissedme02_Sound extends Sound {
}
}//package
Section 163
//youvegottodobetterthanthat_Sound (youvegottodobetterthanthat_Sound)
package {
import flash.media.*;
public dynamic class youvegottodobetterthanthat_Sound extends Sound {
}
}//package